ase-task-implement
SkillProductivityImplement current or given task plan. Use when the user calls to "implement", "realize" or "apply" the "task", "plan", "spec", or "specification".
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-implement skill
What this skill tells your AI
The instructions your AI receives, as published by rse/ase in plugin/skills/ase-task-implement/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-dialog.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-tenets.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-code.md
Procedure
-
Determine Task:
-
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 task id:
-
-
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. -
Internalize the tenets stated by the plan:
-
-
Prepare WorkTree:
-
Set . The worktree is never named by its own option value: it always carries the unique task id, so the worktree directory and its branch stay unambiguously tied to the very task plan implemented in them. The task id is a plain identifier by construction, hence it is directly usable as both a directory and a branch name. Do not output anything.
-
Determine the worktree directory by calling the
ase_worktree_path(id: "<worktree-name/>", create: true)tool of theaseMCP server and capturing its output into .You MUST NEVER assemble this path yourself, as only this tool rejects a path leading through a symbolic link, through a non-directory, or out of the repository -- a path
git worktree addwould otherwise silently follow and thereby write outside the repository. -
Determine the existing worktrees and existing branches by running the corresponding commands (taken exactly as given) and capturing their outputs:
git worktree list --porcelaingit branch --listDirectly after this error , 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):
-
Create the worktree by running the corresponding command (taken exactly as given), which creates the directory and -- named after its last path component -- the branch from
HEAD. The.asedirectory is usually git-ignored, so the worktree itself never shows up as a change:git worktree add "<worktree-dir/>" -
Only output the following :
-
-
Create Implementation:
-
Perform a final implementation of the task plan by modifying the artifacts with a corresponding, complete change set.
-
Update the frontmatter of as follows, creating each of the
Properties:,Status:, andModified:keys the plan does not carry yet at its position in the key order of the plan :-
Add the value
implementedto theProperties:key if it is still absent, keeping all already present values. -
Add the value
verifiedto theProperties:key as well, but only if the verification phase was actually performed and succeeded -- hence never for a plan whose## VERIFICATIONsection is deliberately omitted. -
Set the
Status:key toCOMPLETED, but only if the change set was applied completely and successfully -- this traverses theapprove,start, andcompletetransitions of the state machine of the plan in one go, starting from theDRAFTEDstate which a freshly authored plan carries. Otherwise leave theStatus:key untouched, as an incomplete run transitioned nowhere. -
Refresh the
Modified:key with the current time in ISO-style format, determined by calling thease_timestamp(format: "yyyy-LL-dd HH:mm")tool of theaseMCP server.
Apart from the frontmatter keys above, the plan body MUST stay exactly as loaded.
Finally call the
ase_task_save(id: "<ase-task-id/>", text: "<task-content/>")tool of theaseMCP server to persist the updated task plan. Thisase_task_saveMCP tool call is the only permitted way to persist the plan -- NEVER write the plan file viaWrite/Editor by executing a shell command. Do not output anything in this sub-step. -
-
Only output the following :
-
-
Decide Next Step:
-
Determine next step:
Next Step: How would you like to proceed with the plan? DONE: Stop processing and PRESERVE task plan. DELETE: Stop processing and DELETE the task plan.
-
Check the tool and dispatch accordingly:
-
If is
DONEorCANCEL: Only output the following and then STOP. -
If is
DELETE: Set (empty). Do not forward any remaining--nextlist tokens, because thease:ase-task-deleteskill accepts only an optional[<id>]argument and no--nextoption; remaining tokens are intentionally discarded. Only output the following and then call the toolSkill(skill: "ase:ase-task-delete", args: "<args/>")to invoke thease:ase-task-deleteskill in order to delete the updated plan. Immediately stop processing the current skill once theSkilltool was used.
-
-
Signals
- GitHub stars
- 52
- Forks
- 5
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ase-task-implement- Source
- github.com/rse/ase