Ase task reboot
Agentic Software Engineering (ASE)
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.
What its author says it does
Copied from the file, not written here
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".
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.
-
-