agentsclimarketplace

Ase task reboot

Skill rse/ase/plugin/skills/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

Install
npx -y skills add rse/ase --skill ase-task-reboot

Assembled 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

  1. Determine Task:

    1. 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.

    2. React on task id:

      1. <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 ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>") tool from the ase MCP server to switch the task, and then only output the following <template/>:

        <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given** </template> </if>
      2. <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>
  2. Determine Operation:

    1. Call the ase_task_load(id: "<ase-task-id/>") tool of the ase MCP server to load the current task plan content and set <text/> to the text output field of the ase_task_load tool call.

      • If <text/> starts with ERROR: or WARNING:: Set <task-content></task-content> (set task content to empty). Set <words/> to "0".

      • If <text/> starts NOT with ERROR: and NOT with WARNING:: 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>
    2. <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>
  3. Reboot Task Plan:

    1. Start with <instruction></instruction> (set instruction to empty).

    2. <if condition="<task-content/> contains neither '- **WHAT**:' nor '- **WHY**:'"> Set <instruction><task-content/></instruction> (set instruction to task content). </if>
    3. <if condition="<task-content/> contains '- **WHAT**: <text/>'"> Set <instruction><text/></instruction> (set instruction to extracted text). </if>
    4. <if condition="<task-content/> contains '- **WHY**: <text/>' and <instruction/> is empty"> Set <instruction><text/></instruction> (set instruction to extracted text). </if>
    5. <if condition="<task-content/> contains '- **WHY**: <text/>' and <instruction/> is NOT empty"> Set <instruction><instruction/>, BECAUSE <text/></instruction> (append extracted text to instruction). </if>
    6. <if condition="<task-content/> contains '⎈ Created: <text/>'"> Set <timestamp-created><text/></timestamp-created> (set timestamp-created to extracted text) </if>
    7. <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:
      <template>
      ⧉ **ASE**: ☻ skill: **ase-task-reboot**, ▶ ERROR: empty instruction -- nothing to reboot from
      </template>
      
      </if> </if>
    8. 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/>.

    9. <expand name="task-save-content" arg1="plan rebooted"></expand>

    10. Only output the following <template/> and continue processing:

      <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ⇌ instruction: **<instruction/>**, ▶ status: **instruction given** </template>
  4. Decide Next Step:

    1. 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>

    2. Check the tool <result/> and dispatch accordingly:

      • If <result/> is DONE or CANCEL: Only output the following <template/> and then STOP.

        <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- done** </template>
      • If <result/> is 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 tool Skill(skill: "ase:ase-task-edit", args: "<args/>") to invoke the ase:ase-task-edit skill in order to edit the updated plan. Immediately stop processing the current skill once the Skill tool was used.

        <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to edit** </template>
      • If <result/> is 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 tool Skill(skill: "ase:ase-task-implement", args: "<args/>") to invoke the ase:ase-task-implement skill in order to implement the updated plan. Immediately stop processing the current skill once the Skill tool was used.

        <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to implementation** </template>
      • If <result/> is 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 tool Skill(skill: "ase:ase-task-preflight", args: "<args/>") to invoke the ase:ase-task-preflight skill in order to preflight the updated plan. Immediately stop processing the current skill once the Skill tool was used.

        <template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ✪ plan: **<words/>** words, ▶ status: **plan rebooted -- hand-off to pre-flight** </template>

What ships with it: 1 file

1.9 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.