AgentStack
SKILL verified Apache-2.0 Self-run

Ase Task Edit

skill-rse-ase-ase-task-edit · by rse

>

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-rse-ase-ase-task-edit

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Ase Task Edit? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

@${CLAUDESKILLDIR}/../../meta/ase-control.md @${CLAUDESKILLDIR}/../../meta/ase-skill.md @${CLAUDESKILLDIR}/../../meta/ase-dialog.md @${CLAUDESKILLDIR}/../../meta/ase-getopt.md

Iteratively Edit a Task Plan

$ARGUMENTS

Establish and refine the task plan purely through a chat-driven loop. The user steers each round via an interactive dialog that offers continued refinement, finalization, or hand-off to implementation or preflight.

@${CLAUDESKILLDIR}/../../meta/ase-format-task.md

Procedure ---------

Treat the as a refinement instruction for the plan, and update in-place by applying the requested to the plan.

When refining the plan this way, preserve the overall structure of the plan and only modify what the user actually requested. Do not rewrite unrelated sections of the plan.

Calculate the number of words of . Set true.

Create a new plan from scratch and store the result as by closely following the defined plan format and injecting into it all the information from the and all decisions you derived from the .

If a CHANGELOG.md file exists in the project (or in any affected sub-package), the plan MUST include, as part of its ## CHANGES section, an explicit bullet point describing the addition of a corresponding new entry to that CHANGELOG.md file, aligned with its existing style and conventions.

is equal true"> You MUST completely omit the ## VERIFICATION section (including its heading and all of its bullet points) from .

Call the ase_timestamp(format: "yyyy-LL-dd HH:mm") tool of the ase MCP server and use the text field of its response for fresh and information. Then insert the current , , and information and calculate the number of words of . Set true.

  1. Determine Task and Instruction:
  1. Set initially.

Inherit the always existing from the current context. Inherit the always existing from the current context. Do not output anything.

  1. React on task and/or instruction:
  1. matches the regexp ^[a-zA-Z][a-zA-Z0-9_-]*$

"> Set (set task id to instruction) and (set instruction empty), call the ase_task_id(id: "", session: "") tool from the ase MCP server to switch the task, and then only output the following :

ASE: ◉ task: **, ▶ status: task given**

  1. has the format : where

matches the regexp ^[a-zA-Z][a-zA-Z0-9_-]*$ and is empty "> Set (set instruction to empty) and (set task id to id) and call the ase_task_id(id: "", session: "") tool from the ase MCP server to switch the task, and then only output the following :

ASE: ◉ task: **, ▶ status: task given**

  1. has the format : where

matches the regexp ^[a-zA-Z][a-zA-Z0-9_-]*$ and is not empty "> Set (set instruction to text) and (set task id to id) and call the ase_task_id(id: "", session: "") tool from the ase MCP server to switch the task, and then only output the following :

ASE: ◉ task: **, ▶ status: task givenASE: ◉ task: , ⇌ instruction: , ▶ status: instruction given**

  1. is not empty

"> Only output the following :

ASE: ◉ task: **, ▶ status: task inheritedASE: ◉ task: , ⇌ instruction: , ▶ status: instruction given**

  1. is empty

"> Only output the following :

ASE: ◉ task: **, ▶ status: task inherited**

  1. Determine Plan:
  1. Determine any existing plan content:

is equal true and a ase_task_save(id: '', ...) tool call exists earlier in the current session "> Set to the text argument of the most recent ase_task_save(id: '', ...) tool call, without calling ase_task_load again. Set plan reused. Do not output anything.

Call the ase_task_load(id: "") tool of the ase MCP server to load any existing plan content and set to the text output field of this ase_task_load tool call. Do not output anything related to this MCP tool call. Set plan loaded.

Set false.

  • If starts with ERROR::

Silently ignore the MCP error. Set to empty. Set to "0". Do not output anything.

  • If starts NOT with ERROR::

Set (set content to text). Calculate the number of words of . Only output the following :

ASE: ◉ task: **, ✪ plan: words, ▶ status: **

  1. is empty AND is empty">

Ask the user interactively, without a special tool, for the initial plan content with a single question:

**No plan content yet. What is the task you want to plan?**

Then set to the response of the user and only output the following :

ASE: ◉ task: **, ⇌ instruction: , ▶ status: instruction given**

  1. is not empty AND

is not empty AND is not equal "> Determine previous-plan handling:

  • If matches the regex ^(OVERWRITE|REFINE|PRESERVE)$:

Honor the pre-selection what to do with the previous plan. Set .

  • If is equal to none:

In the following, you MUST NOT use your built-in tool! Instead, you MUST just show a custom dialog according to the expanded custom-dialog definition. You MUST closely follow this definition:

Previous Plan: Should the previous plan content be overwritten, refined, or preserved? OVERWRITE: Continue operation, overwrite previous plan. REFINE: Continue operation, refine previous plan. PRESERVE: Cancel operation, preserve previous plan.

Check the tool and dispatch accordingly:

  • If is CANCEL or PRESERVE:

Only output the following and then immediately STOP processing this skill:

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan preserved**

  • If is OVERWRITE:

Only output the following and continue processing:

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan overwrittenASE: ◉ task: , ⇌ instruction: , ▶ status: instruction given**

  • If is REFINE:

Only output the following and continue processing:

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan refinedASE: ◉ task: , ⇌ instruction: , ▶ status: instruction given**

  • If matches OTHER: :

Set (append the user's free-text hint to the existing instruction).

Only output the following and continue processing:

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan refinedASE: ◉ task: , ⇌ instruction: , ▶ status: instruction given**

  1. matches the case-insensitive regex ^\s*#+\s*TASK\b AND is empty">

Set (set instruction to content). Set (set content to empty). Set true. Do not output anything.

  1. is empty AND is not empty">

Only output the following and continue processing:

ASE: ◉ task: **, ⇌ instruction: , ▶ status: instruction givenASE: ◉ task: , ✪ plan: words, ▶ status: plan generated**

  1. Iterative Plan Refinement Loop:

REPEAT the following steps from 3.1 up to and including 3.4 in a LOOP until the user selects DONE, GRILL, IMPLEMENT, or PREFLIGHT, or declines/cancels in the dialog of step 3.4:

  1. Update timestamp:

contains '⚙ Modified:' AND is 'true'"> Update with the current time in ISO-style format, which has to be determined by calling the ase_timestamp(format: "yyyy-LL-dd HH:mm") tool of the ase MCP server and use the text field of its response. Update the ⚙ Modified: ... line of with the new ⚙ Modified: . Do not output anything.

  1. Persist plan:

is 'true'"> Call the ase_task_save(id: "", text: "") tool of the ase MCP server to persist the current plan, and then set false again. Calculate the number of words of . Do not output anything related to this MCP tool call except the following :

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan saved**

  1. Render plan: Treat as verbatim Markdown.

Only output the following , so the user can read the plan and react to it. If is longer than 90 lines and a ## IMPLEMENTATION DRAFT section (from the companion skill ase-task-preflight) exists, replace the entire content of the ## IMPLEMENTATION DRAFT section with [...]. Else, do not truncate, summarize, or partially show the plan. Use the following :

  1. Determine next step:
  • If is not equal to none:

Treat as a comma-separated chronological list of pre-selected next-step tokens. Split it on ,, take the first token as , and store the remaining tokens (joined back with ,, or none if empty) into so subsequent loop iterations or downstream skills can consume the tail.

  • If matches the regex ^(DONE|GRILL|IMPLEMENT|PREFLIGHT)$:

Honor the pre-selected token. Set .

Set (clear the instruction, as any instruction carried in via the arguments was already applied to the plan in step 2 before this loop), so that a later OTHER: refinement correctly starts from a fresh refinement instruction below.

  • else:

Only output the following and then immediately STOP processing the entire current skill:

ASE: ☻ skill: ase-task-edit, ▶ ERROR: invalid --next token: ****

  • If is equal to none:

In the following, you MUST NOT use your built-in tool! Instead, you MUST just show a custom dialog according to the expanded custom-dialog definition. You MUST closely follow this definition:

Next Step: How would you like to proceed with the plan? DONE: Mark plan finalized, exit planning loop. GRILL: Hand off plan to grilling. PREFLIGHT: Hand off plan to pre-flighting. IMPLEMENT: Hand off plan to implementation.

Check the tool and dispatch accordingly:

  • If is DONE:

Break out of the loop, only output the following and then STOP. Do not implement the plan.

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan finalized -- done**

  • If is GRILL:

Break out of the loop. Set (set args to empty).

Set --int-reuse-task.

is not equal none"> Set --next

Only output the following and then call the Skill(skill: "ase:ase-task-grill", args: "") tool to grill the finalized plan.

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan finalized -- hand-off to grilling**

  • If is PREFLIGHT:

Break out of the loop. Set (set args to empty).

Set --int-reuse-task.

is not equal none"> Set --next

Only output the following and then call the Skill(skill: "ase:ase-task-preflight", args: "") tool to apply the finalized plan.

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan finalized -- hand-off to pre-flight**

  • If is IMPLEMENT:

Break out of the loop. Set (set args to empty).

Set --int-reuse-task.

is not equal none"> Set --next

Only output the following and then call the Skill(skill: "ase:ase-task-implement", args: "") tool to apply the finalized plan.

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan finalized -- hand-off to implementation**

  • If matches OTHER: :

Set (replace existing instruction).

Finally, only output the following and then continue the loop at step 3.1!

ASE: ◉ task: **, ⇌ instruction: , ▶ status: plan refined**

  • If is CANCEL:

Break out of the loop, only output the following and then STOP. Do not implement the plan.

ASE: ◉ task: **, ✪ plan: words, ▶ status: plan refinement cancelled**

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

  • Author: rse
  • Source: rse/ase
  • License: Apache-2.0
  • Homepage: https://ase.tools

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.