Ase task reboot
Reboot the current or given task plan by re-creating it from scratch. Use when the user calls to "reboot", "recreate" or "refresh" the "task", "plan", "spec", or "specification".From its SKILL.md
npx -y skills add rse/ase --skill ase-task-rebootAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
9.1 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<skill name="ase-task-reboot"> Reboot a Task Plan </skill><expand name="getopt" arg1="ase-task-reboot" arg2="--next|-n=(none|DONE|EDIT|IMPLEMENT|PREFLIGHT)..."> $ARGUMENTS </expand>
<objective> *Reboot* the task plan by crafting it from scratch, based on the existing *WHAT* and *WHY*. </objective>@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md
Procedure
-
Determine Task:
-
Set <instruction><getopt-arguments/></instruction> initially, with any leading and trailing whitespace stripped. Inherit the always existing <ase-task-id/> from the current context. Inherit the always existing <ase-session-id/> from the current context. Do not output anything.
-
React on task id:
-
<if condition=" <instruction/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` "> Set <ase-task-id><instruction/></ase-task-id> (set task id to instruction) and <instruction></instruction> (set instruction empty), call the
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given** </template> </if>ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")tool from theaseMCP server to switch the task, and then only output the following <template/>: - <elseif condition="<instruction/> is NOT empty"> The argument is neither empty nor a valid task id. As this skill only accepts an optional `[<id>]` argument and *never* a free-text instruction, only output the following <template/> and then immediately *STOP* processing the entire current skill: <template> ⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: expected single `[<id>]` argument </template> </elseif>
-
-
-
Determine Operation:
-
Call the
ase_task_load(id: "<ase-task-id/>")tool of theaseMCP server to load the current task plan content and set <text/> to thetextoutput field of thease_task_loadtool call.-
If <text/> starts with
ERROR:orWARNING:: Set <task-content></task-content> (set task content to empty). Set <words/> to "0". -
If <text/> starts NOT with
ERROR:and NOT withWARNING:: Set <task-content><text/></task-content> (set task content to text). Calculate the number of words <words/> of <task-content/>.
Only output the following <template/>:
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan loaded** </template> -
- <if condition="<task-content/> is empty"> Complain and tell the user to use the `ase-code-resolve`, `ase-code-refactor`, `ase-code-craft`, or `ase-task-edit` skills first to create a task plan. Then immediately stop processing this skill. </if>
-
-
Reboot Task Plan:
-
Start with <instruction></instruction> (set instruction to empty).
- <if condition="<task-content/> contains neither '- **WHAT**:' nor '- **WHY**:'"> Set <instruction><task-content/></instruction> (set instruction to task content). </if>
- <if condition="<task-content/> contains '- **WHAT**: <text/>'"> Set <instruction><text/></instruction> (set instruction to extracted text). </if>
- <if condition="<task-content/> contains '- **WHY**: <text/>' and <instruction/> is empty"> Set <instruction><text/></instruction> (set instruction to extracted text). </if>
- <if condition="<task-content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty"> Set <instruction><instruction/>, BECAUSE <text/></instruction> (append extracted text to instruction). </if>
- <if condition="<task-content/> contains '⎈ Created: <text/>'"> Set <timestamp-created><text/></timestamp-created> (set timestamp-created to extracted text) </if>
-
<if condition="<instruction/> is empty or contains only whitespace">
The WHAT/WHY extraction yielded no usable text (e.g. a
`- **WHAT**:` line existed but captured empty text, so the
whole-content fallback above did not fire). Fall back to the
full previous plan content: set <instruction><task-content/></instruction>
(set instruction to task content).
<if condition="<instruction/> is still empty or contains only whitespace">
There is nothing to reboot from. Only output the following
<template/> and then immediately *STOP* processing the entire
current skill:
</if> </if><template> ⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: empty instruction -- nothing to reboot from </template> -
Create a new plan from scratch and store the result as <task-content/> by closely following the defined plan format <format/> and injecting into it all the information from the <instruction/> and all decisions you derived from the <instruction/>.
-
<expand name="task-save-content" arg1="plan rebooted"></expand>
-
Only output the following <template/> and continue processing:
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given** </template>
-
-
Decide Next Step:
-
Determine next step:
<expand name="task-next-select" arg1="ase-task-reboot" arg2="DONE|EDIT|IMPLEMENT|PREFLIGHT"> Next Step: How would you like to proceed with the plan? DONE: Stop processing. EDIT: Hand off plan to editing. IMPLEMENT: Hand off plan to implementation. PREFLIGHT: Hand off plan to pre-flighting. </expand>
-
Check the tool <result/> and dispatch accordingly:
-
If <result/> is
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- done** </template>DONEorCANCEL: Only output the following <template/> and then STOP. -
If <result/> is
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to edit** </template>EDIT: Set <args>--int-reuse-task</args>. <if condition="<getopt-option-next/> is not equal `none`"> Set <args><args/> --next <getopt-option-next/></args> </if> Only output the following <template/> and then call the toolSkill(skill: "ase:ase-task-edit", args: "<args/>")to invoke thease:ase-task-editskill in order to edit the updated plan. Immediately stop processing the current skill once theSkilltool was used. -
If <result/> is
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to implementation** </template>IMPLEMENT: Set <args>--int-reuse-task</args>. <if condition="<getopt-option-next/> is not equal `none`"> Set <args><args/> --next <getopt-option-next/></args> </if> Only output the following <template/> and then call the toolSkill(skill: "ase:ase-task-implement", args: "<args/>")to invoke thease:ase-task-implementskill in order to implement the updated plan. Immediately stop processing the current skill once theSkilltool was used. -
If <result/> is
<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to pre-flight** </template>PREFLIGHT: Set <args>--int-reuse-task</args>. <if condition="<getopt-option-next/> is not equal `none`"> Set <args><args/> --next <getopt-option-next/></args> </if> Only output the following <template/> and then call the toolSkill(skill: "ase:ase-task-preflight", args: "<args/>")to invoke thease:ase-task-preflightskill in order to preflight the updated plan. Immediately stop processing the current skill once theSkilltool was used.
-
-
What ships with it: 1 file
1.9 KB alongside SKILL.md
- help.md1.9 KB