diff --git a/plugin/meta/ase-common-code.md b/plugin/meta/ase-common-code.md
index 17aa24fc..3fd6c31d 100644
--- a/plugin/meta/ase-common-code.md
+++ b/plugin/meta/ase-common-code.md
@@ -148,8 +148,14 @@ Set --int-reuse-task .
Set --next
+
+ Set --mode all
+
Call the tool `Skill(skill: "ase:ase-task-implement", args: " ")`
to *implement* the freshly composed plan, bypassing `ase-task-edit`.
+ The `--quick`/`-Q` one-shot forwards `--mode all` so
+ `ase-task-implement` runs the plan in a single pass, without
+ the interactive step-mode dialog.
3.
diff --git a/plugin/skills/ase-code-resolve/help.md b/plugin/skills/ase-code-resolve/help.md
index f859104a..40a51570 100644
--- a/plugin/skills/ase-code-resolve/help.md
+++ b/plugin/skills/ase-code-resolve/help.md
@@ -60,8 +60,11 @@ entirely and applies the change set to the affected artifacts itself.
Shorthand alias for `-a -d -n IMPLEMENT,DELETE`: automatically pick
the recommended resolution approach, compose the plan *without* the
`## VERIFICATION` section, immediately hand off to `ase-task-implement`,
- and finally `ase-task-delete` the now-consumed plan. This gives a
- single, fast *one-shot* resolution mode.
+ and finally `ase-task-delete` the now-consumed plan. The hand-off
+ additionally forwards `--mode all`, so `ase-task-implement` applies
+ the plan in a single pass *without* the interactive step-mode
+ dialog. This gives a single, fast, fully non-interactive *one-shot*
+ resolution mode.
`--next`|`-n` *option*[,...]:
Automatically choose the next step after composing the plan.
diff --git a/plugin/skills/ase-task-implement/SKILL.md b/plugin/skills/ase-task-implement/SKILL.md
index 7488d6bd..9c69b754 100644
--- a/plugin/skills/ase-task-implement/SKILL.md
+++ b/plugin/skills/ase-task-implement/SKILL.md
@@ -1,6 +1,6 @@
---
name: ase-task-implement
-argument-hint: "[--help|-h] [--next|-n [,...]] [--worktree|-w] []"
+argument-hint: "[--help|-h] [--next|-n [,...]] [--mode|-m all|steps] [--worktree|-w] []"
description: >
Implement current or given task plan.
Use when the user calls to "implement", "realize" or "apply" the
@@ -21,7 +21,7 @@ Implement a Task Plan
+ arg2="--next|-n=(none|DONE|DELETE)... --worktree|-w --int-reuse-task --mode|-m=(ask|all|steps)">
$ARGUMENTS
@@ -156,7 +156,70 @@ Procedure
⧉ **ASE**: ◉ task: ** **, ◉ worktree: **.ase/worktree/ **, ▶ status: **worktree created**
-4. **Create Implementation:**
+4. **Determine Mode:**
+
+ 1.
+ A previous `steps` mode run was interrupted (paused for
+ discussion or ended with the session), so *resume* it: set
+ steps *without* any user dialog, set to
+ the total number of checkbox items and to the number
+ of still open checkbox items (`- [ ]`) of this section, only
+ output the following , and then directly continue
+ with step 5 (the implementation loop):
+
+
+ ⧉ **ASE**: ◉ task: ** **, ▶ status: **resuming step mode ( / steps open)**
+
+
+
+ 2.
+ Honor the pre-selected mode: set .
+ Do not output anything.
+
+
+ 3.
+ No user dialog is possible in headless contexts, so default to
+ the single-pass mode: set all .
+ Do not output anything.
+
+
+ 4.
+ Let the *user interactively choose* the implementation mode.
+
+ 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:
+
+
+ Mode: How should the plan be implemented?
+ ALL: One complete change set in a single pass.
+ STEPS: Small review-ready increments, pausing for review after each.
+
+
+ Check the tool and dispatch accordingly:
+
+ - If is `ALL`:
+ Set all .
+
+ - If is `STEPS`:
+ Set steps .
+
+ - If is `CANCEL`:
+ Only output the following and then immediately
+ *STOP* processing the entire current skill:
+
+
+ ⧉ **ASE**: ◉ task: ** **, ✪ plan: ** ** words, ▶ status: **implementation cancelled**
+
+
+
+5. **Create Implementation:**
+
+
1. Perform a *final implementation* of the task plan
by modifying the *artifacts* with a corresponding, complete
@@ -253,7 +316,235 @@ Procedure
-5. **Decide Next Step:**
+
+
+
+
+ 1. **Derive Step List:**
+
+
+
+ 1. *Restructure* the task plan in into small,
+ self-contained, individually verifiable *increments*, each
+ the *smallest landable unit*: one reviewable diff (about
+ one class or one feature cut) bundling the code belonging
+ together plus its corresponding test, ending "compiles +
+ tests green + report" -- *never* "all files at once".
+ Respect the dependency order, but the plan order is no
+ dogma: sensible restructuring is encouraged. Where the
+ plan calls for them, use the two special increment
+ *types*: `[measure]` probes whose *measured* result
+ decides whether a dependent increment is built or
+ cancelled, and `[live]` verifications where the *user*
+ runs the application and reports logs/screenshots back
+ (their diagnosis loops belong to the increment). Like in
+ `all` mode, the plan text in always overrules
+ the optional `IMPLEMENTATION DRAFT` hints.
+
+ Do not output anything in this step.
+
+ 2. *Persist* the step list (critical: progress *MUST* survive
+ discussion pauses and session restarts): append the
+ following new section to the plan in and call
+ the `ase_task_save(id: " ", text: " ")`
+ tool of the `ase` MCP server to save the updated plan:
+
+
+ ## IMPLEMENTATION STEPS
+
+ - **BASELINE**: pre-existing failures:
+
+ - [ ] 1. --
+ - [ ] 2. [measure] --
+
+
+ The **BASELINE** bullet names the build/test failures
+ existing *before* the first increment (extend it when
+ verification reveals further pre-existing ones); the
+ optional `[measure]`/`[live]` tag marks the increment type.
+
+ Do not output anything in this step.
+
+ 3. Only output the following (with one trailing
+ line per step):
+
+
+ ⧉ **ASE**: ◉ task: ** **, ✪ plan: ** ** words, ▶ status: **restructured into review-ready steps**
+ ➤ .
+
+
+
+
+ 2. **Implementation Loop:**
+
+ The loop is a *contract*, not a schedule -- four rules bind
+ *every* iteration:
+
+ - *One increment at a time*: *never* implement past the
+ next review gate, however trivial the next increment
+ seems.
+
+ - *Implementing is the default*: the gate reviews *results*
+ and never re-asks permission to implement; ask separately
+ only on genuine *scope changes*.
+
+ - *Git remains with the user*: *never* commit, and stage
+ only when the user explicitly chooses `STAGE` at a review
+ gate -- otherwise leave *all* changes unstaged for the
+ user to review, stage, and commit.
+
+ - *Resequencing is allowed, silence is not*: when contact
+ with the code shows an increment is mis-cut or mis-ordered,
+ reorder/split/merge the step list and record the
+ rationale as an indented note below the affected item
+ (e.g. "moved after step 7, because ...") via
+ `ase_task_save`. Deferred work *MUST* name its target
+ increment.
+
+ Set to the total number of checkbox items of the
+ `## IMPLEMENTATION STEPS` section in .
+ For each still *open* increment (checkbox `- [ ]`, in
+ ascending order), perform the following sub-items:
+
+ 1. *Implement* only increment by modifying the
+ corresponding *artifacts*.
+
+
+ Verify the increment according to the `## VERIFICATION`
+ section, as far as applicable, matching the increment
+ *type*: unit tests for behavior, architecture/structure
+ tests for structural increments, the recorded measurement
+ for `[measure]`, the user-reported evidence for `[live]`.
+ Also check *harness realism*: does the harness reflect
+ the live conditions (advancing clock, concurrency,
+ reconnects)?
+
+
+ The task plan deliberately *omits* the `## VERIFICATION`
+ section: *strictly skip* the entire verification phase,
+ exactly as specified for `all` mode above (no build, no
+ tests, no linter, no type-checker, no program execution,
+ no other verification).
+
+
+ Then *compose* the of increment :
+ 2-5 bullet lines telling what was changed (functionally,
+ not as a file list), the affected artifacts, the
+ verification result (e.g. "tests 12/12 green" or
+ "verification skipped per plan"), and any *findings* worth
+ remembering (including deferred work with its named target
+ increment).
+
+
+ The measured result *gates* the dependent increments: mark
+ a cancelled increment's checkbox as `- [x]`, strike its
+ title through (`~~...~~`), and record the measured
+ rationale as an indented note below it.
+
+
+ Then set the checkbox of increment to `- [x]` in
+ , insert the as indented bullet
+ lines directly below it, and call the `ase_task_save(id:
+ " ", text: " ")` tool of the `ase`
+ MCP server again to persist progress and summary.
+
+ Do not output anything in this step.
+
+ 2. Only output the following *step report* , where
+ the table lists the changed *production* files (one row
+ per file), is `A` (added), `M` (modified), or
+ `D` (deleted), is a one-clause change description,
+ and is the verification result:
+
+
+ ⧉ **ASE**: ◉ task: ** **, ➤ step: ** / ** -- ** **, ▶ status: **step implemented**
+
+ | Status | File | What |
+ | --------- | --------- | ------- |
+ | | ` ` | |
+
+ ● **Tests**:
+ ● **Verification**: (pre-existing failures: )
+ ● **Staging**: all changes left unstaged -- staging/committing remains with you
+
+
+ 3.
+ *Review gate*: let the *user interactively choose* how to
+ proceed.
+
+ You *MUST* have output the step report of the
+ previous sub-item as regular text *BEFORE* the dialog is
+ shown -- it is the basis for the user's review decision.
+ If it was not output yet, output it now.
+
+ Set to a one-line condensation (at most about
+ 25 words, no line breaks) of the just emitted step report,
+ ending with the verification result.
+
+ 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:
+
+
+ Step / : -- How to proceed?
+ CONTINUE: Implement the next step.
+ STAGE: Stage this step's not-yet-staged files, then implement the next step.
+ DISCUSS: Pause here; re-invoke ase-task-implement to resume.
+ DONE: Stop and PRESERVE the plan including step progress.
+
+
+ Check the tool and dispatch accordingly:
+
+ - If is `CONTINUE`:
+ Continue the loop with the next open increment.
+
+ - If is `STAGE`:
+ *Stage* exactly the files of increment (the step
+ report's production files plus its test files) that
+ are not already staged, via `git add [...]`
+ (*never* `git add -A`), then continue the loop with
+ the next open increment.
+
+ - If is `DISCUSS` or `CANCEL`:
+ Only output the following and then
+ immediately *STOP* processing the entire current
+ skill (the user discusses freely in the chat;
+ re-invoking `ase-task-implement` later resumes at the
+ first open increment):
+
+
+ ⧉ **ASE**: ◉ task: ** **, ➤ step: ** / **, ▶ status: **paused for discussion -- re-invoke ase-task-implement to resume**
+
+
+ - If is `DONE`:
+ Only output the following and then
+ immediately *STOP* processing the entire current skill
+ (the plan including the step progress is preserved):
+
+
+ ⧉ **ASE**: ◉ task: ** **, ➤ step: ** / **, ▶ status: **stopped -- plan and step progress preserved**
+
+
+
+ 3. Once no increment is open anymore: *remove* the
+ entire `## IMPLEMENTATION STEPS` section from the plan in
+ again (the plan returns to its canonical format) and
+ call the `ase_task_save(id: " ", text: " ")`
+ tool of the `ase` MCP server to save the updated plan.
+
+ Only output the following :
+
+
+ ⧉ **ASE**: ◉ task: ** **, ✪ plan: ** ** words, ▶ status: **plan implemented**
+
+
+
+
+6. **Decide Next Step:**
1. *Determine next step*:
@@ -288,4 +579,3 @@ Procedure
⧉ **ASE**: ◉ task: ** **, ▶ status: **plan implemented -- hand-off to delete task**
-
diff --git a/plugin/skills/ase-task-implement/help.md b/plugin/skills/ase-task-implement/help.md
index 184e6024..e9deecce 100644
--- a/plugin/skills/ase-task-implement/help.md
+++ b/plugin/skills/ase-task-implement/help.md
@@ -8,6 +8,7 @@
`ase-task-implement`
[`--help`|`-h`]
[`--next`|`-n` *option*[,...]]
+ [`--mode`|`-m` *mode*]
[`--worktree`|`-w`]
[*id*]
@@ -32,12 +33,60 @@ before any artifact is touched, in addition to the always applying
**GENERIC TENETS**. If a plan carries no such key, the kind is
*inferred* from the plan content, defaulting to `CRAFTING`.
+The implementation can be performed in one of two *modes*. In mode
+`all`, the plan is implemented as one complete change set in a single
+pass. In mode `steps`, the plan is first *restructured* into small,
+self-contained, individually verifiable increments - each one the
+*smallest landable unit*: a reviewable diff of related code plus its
+corresponding test, ending "compiles + tests green + report". Besides
+regular code increments, `[measure]` increments are probes whose
+measured result decides whether a dependent increment is built or
+cancelled, and `[live]` increments are live verifications where the
+user runs the application and reports logs/screenshots back.
+
+The increment list is persisted as an `IMPLEMENTATION STEPS` section
+(a numbered checkbox list plus a `BASELINE` bullet naming the known
+pre-existing failures) inside the task plan itself, so progress
+survives discussion pauses and even session restarts. The section is a *living ledger*:
+increments may be resequenced, split, or merged when contact with the
+code demands it (rationale recorded beneath the affected item), and
+deferred work must name its target increment. After each increment,
+its checkbox is ticked, a step summary with findings is recorded
+beneath it, the plan is saved, and a *standardized step report* is
+emitted: a table of the changed production files (Status / File /
+What), tests named separately, the verification result citing the
+known pre-existing failures, and the explicit staging status. The
+skill *never* commits and stages only on an explicit `STAGE` gate
+choice - Git sovereignty remains with the user. Via a custom dialog
+carrying a one-line condensation of the report, the user then
+decides: `CONTINUE` (next increment), `STAGE` (stage the increment's
+not-yet-staged files, then continue), `DISCUSS` (pause for a free
+discussion in the chat), or `DONE` (stop and preserve plan and
+progress). The gate reviews *results*: implementing the next
+increment is the default; the skill asks again only on genuine scope
+changes.
+
+If the loaded plan already contains an `IMPLEMENTATION STEPS` section
+with at least one open checkbox, the skill *resumes* mode `steps` at
+the first open increment without asking for a mode again - this is the
+re-entry path after `DISCUSS` or a session restart. Once the last
+increment is implemented, the `IMPLEMENTATION STEPS` section is removed
+from the plan again, returning it to its canonical format.
+
+If the mode is neither pre-selected via `--mode` nor implied by a
+resumable `IMPLEMENTATION STEPS` section, the user is asked
+interactively for the mode (in headless contexts, mode `all` is used).
+
If the task plan deliberately *omits* the `## VERIFICATION` section
(as produced by `ase-code-craft`, `ase-code-refactor`,
`ase-code-resolve`, or `ase-task-edit` when invoked with `--dry`),
the entire verification phase is strictly skipped: no build, tests,
linter, type-checker, or program execution is performed once the
-source files have been modified.
+source files have been modified. In mode `steps`, this rule applies
+per increment. Otherwise the verification matches the increment type
+(unit, architecture/structure, measurement, or live verification) and
+checks *harness realism*: whether the test harness reflects the live
+conditions (advancing clock, concurrency, reconnects).
With `--worktree`|`-w`, the change set is *not* applied to the current
working copy: a *fresh Git WorkTree* `.ase/worktree/` and its
@@ -63,7 +112,17 @@ delete the task plan, unless `--next` pre-selects this choice.
downstream `ase-task-delete` skill accepts no `--next` option.
Recognized tokens at this skill: `none` (default, interactive
answer required), `DONE` (preserve task plan and stop), or
- `DELETE` (hand off to `ase-task-delete`).
+ `DELETE` (hand off to `ase-task-delete`). The tokens apply only to
+ the *final* next-step dialog - the per-increment review gates of
+ mode `steps` are deliberately interactive, so `--mode steps --next
+ ...` is a valid combination (the tokens are consumed at the end).
+
+`--mode`|`-m` *mode*:
+ Select the implementation mode: `ask` (default, ask the user
+ interactively; in headless contexts mode `all` is used), `all`
+ (one complete change set in a single pass), or `steps`
+ (restructure into small review-ready increments and pause for
+ review after each one).
`--worktree`|`-w`:
Apply the change set inside a dedicated *Git WorkTree* instead of
@@ -100,6 +159,12 @@ Implement the task `hello` inside the isolated Git WorkTree
❯ /ase-task-implement --worktree hello
```
+Implement the current task plan in small review-ready increments:
+
+```text
+❯ /ase-task-implement --mode steps
+```
+
## SEE ALSO
[`ase-task-edit`](../ase-task-edit/help.md), [`ase-task-preflight`](../ase-task-preflight/help.md), [`ase-task-reboot`](../ase-task-reboot/help.md),