ase-task-dissect
SkillProductivityDissect the current or given task plan, treated as an epic, domain-wise and logically into cohesive parts and materialize each part as its own separate task plan. Use when the user calls to "dissect", "split", "break up", or "decompose" a large "task" or "plan".
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the ase-task-dissect skill
What this skill tells your AI
The instructions your AI receives, as published by rse/ase in plugin/skills/ase-task-dissect/SKILL.md and read by ahel’s review.
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
$ARGUMENTS
@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-dissect.md
Procedure
-
Determine Task and Hint:
-
Set initially, with any leading and trailing whitespace stripped. Inherit the always existing from the current context. Inherit the always existing from the current context. Do not output anything.
-
React on the task id:
The lone token is the task id (with an optional and ignored trailing
:), never a hint. Set (set task id to instruction, with any trailing:stripped) and (set instruction empty), call thease_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")tool from theaseMCP server to switch the task, and then only output the following :Set (set instruction to text) and (set task id to id), call the
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 : -
React on the dissection hint:
Set (set the dissection hint to the remaining instruction), with any leading and trailing whitespace stripped.
-
-
Determine Operation:
-
Determine the current task plan content:
-
If the is still empty, complain and tell the user to use the
ase-code-resolve,ase-code-refactor,ase-code-craft, orase-task-editskills first to create a task plan. Then immediately stop processing this skill.
-
-
Dissect Task Plan:
-
Derive the parts of the epic:
<expand name="dissect-derive" arg1="ase-task-dissect" arg2="" arg3=""
the individual bullet points of the
## CHANGESand## VERIFICATIONsections of the loaded planEach
## VERIFICATIONbullet point MUST land in the very part which carries the## CHANGESbullet points it verifies.A single bullet point is not the smallest unit here: a bullet point which itself covers multiple domains or concerns MAY be split per rule 3 into two or more bullet point fragments, each of which is a complete bullet point of its own, is formed exclusively from the wording of the original bullet point, and is then assigned to a part like an ordinary bullet point. A split
## VERIFICATIONbullet point follows the## CHANGESbullet points its fragments verify, so its fragments MAY land in different parts. -
Report the parts:
-
-
Materialize Sub-Task Plans:
You MUST NOT modify, re-save, or delete the epic plan of itself -- it always stays untouched.
-
Detect target collisions, strictly before writing anything:
Call the
ase_task_list(verbose: false)tool of theaseMCP server and set to theidfields of the returnedtasksarray. Do not output anything related to this MCP tool call. Set to all of which are already present in .Directly after this , and before stopping, give the corrective hint by expanding the following (which, depending on the configured , may expand into nothing and hence emit no output at all):
-
Compose and persist one sub-task plan per part:
Call the
ase_timestamp(format: "yyyy-LL-dd HH:mm")tool of theaseMCP server once and use thetextfield of its response for both the and information of all parts.Then, for every part in , in their derived order:
-
Compose a complete task plan by closely following the plan , where:
- the is ,
- the is
DRAFTEDand the isnone, as every part is a newly created plan, - the is taken over from the epic verbatim,
or inferred from the part content if the epic carries no
Kind:key, - the is derived from the part's ,
- the
## CONTEXTsection carries a part-local and , derived from the part's own input elements plus the## CONTEXTsection of the epic, - the
## CHANGESsection carries exactly the## CHANGESbullet points assigned to this part, keeping their original wording, and - the
## VERIFICATIONsection carries exactly the## VERIFICATIONbullet points assigned to this part, keeping their original wording.
For a bullet point which was split into fragments, the part carries only its own fragment: the keeps the original wording of the portion this fragment covers, with no re-interpretation and no added scope, and the
**<aspect/>**label is narrowed to exactly that portion. Across all parts, the fragments of a split bullet point MUST still reproduce the original bullet point completely and without duplication. -
Call the
ase_task_save(id: "<part-id/>", text: "<part-content/>")tool of theaseMCP server to persist the sub-task plan -- this MCP tool call is the only permitted way to persist it, NEVER write the plan file viaWrite/Editor by executing a shell command. Do not output anything related to this MCP tool call except the following :
-
-
Report the overall result with the following :
-
Give Final Hints:
Finally, give the closing hints by expanding the following (which, depending on the configured , may each expand into nothing and hence emit no output at all):
Signals
- GitHub stars
- 52
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ase-task-dissect- Source
- github.com/rse/ase