ase-task-implement

SkillProductivity

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

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

  1. Determine Task:

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

    2. React on task id:

  2. Determine Operation:

    1. Determine the current task plan content:

    2. If the is still 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.

    3. Internalize the tenets stated by the plan:

  3. Prepare WorkTree:

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

    2. Determine the worktree directory by calling the ase_worktree_path(id: "<worktree-name/>", create: true) tool of the ase MCP 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 add would otherwise silently follow and thereby write outside the repository.

    3. Determine the existing worktrees and existing branches by running the corresponding commands (taken exactly as given) and capturing their outputs:

      git worktree list --porcelain

      git branch --list

      Directly 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):

    4. 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 .ase directory is usually git-ignored, so the worktree itself never shows up as a change:

      git worktree add "<worktree-dir/>"

    5. Only output the following :

  4. Create Implementation:

    1. Perform a final implementation of the task plan by modifying the artifacts with a corresponding, complete change set.

    2. Update the frontmatter of as follows, creating each of the Properties:, Status:, and Modified: keys the plan does not carry yet at its position in the key order of the plan :

      • Add the value implemented to the Properties: key if it is still absent, keeping all already present values.

      • Add the value verified to the Properties: key as well, but only if the verification phase was actually performed and succeeded -- hence never for a plan whose ## VERIFICATION section is deliberately omitted.

      • Set the Status: key to COMPLETED, but only if the change set was applied completely and successfully -- this traverses the approve, start, and complete transitions of the state machine of the plan in one go, starting from the DRAFTED state which a freshly authored plan carries. Otherwise leave the Status: key untouched, as an incomplete run transitioned nowhere.

      • Refresh the Modified: key with the current time in ISO-style format, determined by calling the ase_timestamp(format: "yyyy-LL-dd HH:mm") tool of the ase MCP 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 the ase MCP server to persist the updated task plan. This ase_task_save MCP tool call is the only permitted way to persist the plan -- NEVER write the plan file via Write/Edit or by executing a shell command. Do not output anything in this sub-step.

    3. Only output the following :

  5. Decide Next Step:

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

    2. Check the tool and dispatch accordingly:

      • If is DONE or CANCEL: Only output the following and then STOP.

      • If is DELETE: Set (empty). Do not forward any remaining --next list tokens, because the ase:ase-task-delete skill accepts only an optional [<id>] argument and no --next option; remaining tokens are intentionally discarded. Only output the following and then call the tool Skill(skill: "ase:ase-task-delete", args: "<args/>") to invoke the ase:ase-task-delete skill in order to delete the updated plan. Immediately stop processing the current skill once the Skill tool 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