opencode-codeops 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/CHANGELOG.md +179 -0
  2. package/LICENSE +21 -0
  3. package/README.md +171 -0
  4. package/_shared/auto-design.md +129 -0
  5. package/_shared/layout-convention.md +198 -0
  6. package/_shared/quality-profile.md +134 -0
  7. package/_shared/recommendation-hardening.md +166 -0
  8. package/_shared/scope-expansion-control.md +176 -0
  9. package/_shared/spec-first-ordering.md +79 -0
  10. package/_shared/zero-ambiguity-gate.md +311 -0
  11. package/agent-templates/codebase-scout.md +17 -0
  12. package/agent-templates/concurrency-auditor.md +5 -0
  13. package/agent-templates/design-challenger.md +26 -0
  14. package/agent-templates/financial-integrity-auditor.md +5 -0
  15. package/agent-templates/perf-auditor.md +23 -0
  16. package/agent-templates/phase-reviewer.md +54 -0
  17. package/agent-templates/plan-task-executor-opus.md +46 -0
  18. package/agent-templates/plan-task-executor.md +43 -0
  19. package/agent-templates/preflight-auditor.md +45 -0
  20. package/agent-templates/security-auditor.md +42 -0
  21. package/agent-templates/semantics-reviewer.md +5 -0
  22. package/agent-templates/spec-test-author.md +29 -0
  23. package/agents/concurrency-auditor.md +15 -0
  24. package/agents/correctness-reviewer.md +66 -0
  25. package/agents/demanding-executor.md +58 -0
  26. package/agents/design-challenger.md +38 -0
  27. package/agents/executor.md +55 -0
  28. package/agents/explorer.md +29 -0
  29. package/agents/financial-integrity-auditor.md +15 -0
  30. package/agents/performance-auditor.md +35 -0
  31. package/agents/preflight-auditor.md +57 -0
  32. package/agents/security-auditor.md +54 -0
  33. package/agents/semantics-reviewer.md +15 -0
  34. package/agents/spec-test-author.md +41 -0
  35. package/bin/codeops-worktree +244 -0
  36. package/bin/index.mjs +106 -0
  37. package/bin/install-agents.mjs +453 -0
  38. package/bin/install-skills.mjs +466 -0
  39. package/bin/lib/opencode-install.mjs +185 -0
  40. package/install.sh +55 -0
  41. package/package.json +73 -0
  42. package/plugin/index.ts +181 -0
  43. package/references/domains/compiler-and-language.md +28 -0
  44. package/references/domains/data-and-migration.md +22 -0
  45. package/references/domains/distributed-and-concurrent.md +26 -0
  46. package/references/domains/financial-system.md +28 -0
  47. package/references/domains/selection.md +19 -0
  48. package/references/domains/web-application.md +23 -0
  49. package/schemas/codeops-config.schema.json +56 -0
  50. package/scripts/check-version.mjs +163 -0
  51. package/scripts/codeops-migrate.sh +355 -0
  52. package/scripts/codeops-roadmap-compact.sh +232 -0
  53. package/scripts/codeops-roadmap-sync.sh +275 -0
  54. package/scripts/codeops_outcomes.py +155 -0
  55. package/scripts/codeops_plan.py +239 -0
  56. package/scripts/codeops_plan_migrate.py +318 -0
  57. package/scripts/codeops_worktree_snapshot.py +99 -0
  58. package/scripts/install_agents.py +288 -0
  59. package/scripts/release.mjs +533 -0
  60. package/skills/analyze-project/SKILL.md +28 -0
  61. package/skills/clean-comments/SKILL.md +22 -0
  62. package/skills/exec-plan/SKILL.md +267 -0
  63. package/skills/exec-plan/commit-modes.md +113 -0
  64. package/skills/exec-plan/execution-protocol.md +471 -0
  65. package/skills/git-commit/SKILL.md +35 -0
  66. package/skills/github-issues/SKILL.md +38 -0
  67. package/skills/grill-me/SKILL.md +342 -0
  68. package/skills/make-plan/SKILL.md +282 -0
  69. package/skills/make-plan/quality-checklist.md +96 -0
  70. package/skills/make-plan/templates.md +535 -0
  71. package/skills/make-plan/zero-ambiguity-gate.md +19 -0
  72. package/skills/make-requirements/SKILL.md +268 -0
  73. package/skills/make-requirements/discovery-phases.md +255 -0
  74. package/skills/make-requirements/review-and-add.md +73 -0
  75. package/skills/make-requirements/templates.md +296 -0
  76. package/skills/make-requirements/zero-ambiguity-gate.md +18 -0
  77. package/skills/outcome-review/SKILL.md +34 -0
  78. package/skills/preflight/SKILL.md +310 -0
  79. package/skills/preflight/dimensions.md +181 -0
  80. package/skills/preflight/report-format.md +300 -0
  81. package/skills/retro-requirements/SKILL.md +218 -0
  82. package/skills/retro-requirements/confidence-classification.md +45 -0
  83. package/skills/retro-requirements/phases.md +609 -0
  84. package/skills/retro-requirements/triage-gate.md +135 -0
  85. package/skills/roadmap/SKILL.md +381 -0
  86. package/skills/roadmap/stage-hooks.md +80 -0
  87. package/skills/roadmap/template.md +200 -0
  88. package/skills/setup-codeops/SKILL.md +94 -0
  89. package/skills/setup-codeops/migration.md +106 -0
  90. package/skills/setup-codeops/scaffold.md +99 -0
  91. package/skills/setup-routing/SKILL.md +102 -0
  92. package/skills/setup-routing/routing.md +44 -0
  93. package/skills/techdocs/SKILL.md +199 -0
  94. package/skills/techdocs/authoring-and-update.md +178 -0
  95. package/skills/techdocs/templates.md +655 -0
  96. package/skills/techdocs/vitepress-setup.md +143 -0
  97. package/skills/upgrade-plan/SKILL.md +75 -0
  98. package/skills/upgrade-plan/content-quality-gate.md +35 -0
  99. package/skills/upgrade-plan/upgrade-checklists.md +107 -0
  100. package/standards/coding-standards-full.md +124 -0
  101. package/standards/coding-standards.md +64 -0
  102. package/standards/output-style.md +17 -0
@@ -0,0 +1,267 @@
1
+ ---
2
+ name: exec-plan
3
+ description: >-
4
+ Executes an implementation plan created by the make-plan skill. Use when the user says
5
+ "exec-plan", "run the plan", "execute the plan", "implement the named feature plan",
6
+ or "continue the plan for a feature". Accepts a feature name and an optional commit-mode
7
+ flag: --ask-commit (default, ask after each verified task), --no-commit (never commit),
8
+ or --auto-commit (commit + push after each verified task). Reads the feature's execution plan,
9
+ finds the next incomplete task, and runs the per-task loop (implement, update the execution
10
+ plan immediately, verify, then commit per mode) following specification-first task ordering.
11
+ Under the repo's CodeOps quality policy, a risk-derived quality loop reviews each executed
12
+ phase (reviewer + auditor agents); critical/major findings require an authorized ruling in
13
+ every commit mode, using the user in normal mode or eligible delegated resolution in auto-design.
14
+ ---
15
+
16
+ # exec-plan — Execute an Implementation Plan
17
+
18
+ > **CodeOps Artifact Schema**: 1
19
+
20
+ ## Auto-design option
21
+
22
+ If `$ARGUMENTS` contains exactly one exact standalone `--auto-design` token before the first `--` sentinel, remove it before resolving targets, paths, or modes; zero occurrences means normal mode, more than one is invalid, and tokens at or after the sentinel are target content; announce `Auto-design active — eligible technical decisions are
23
+ delegated and recorded`; then read and apply
24
+ [../../_shared/auto-design.md](../../_shared/auto-design.md). Resolve eligible runtime technical
25
+ ambiguities under that policy, update owning artifacts and stale downstream state, and re-run
26
+ gates before resuming. Propagate only to explicitly invoked supported children; an unsupported child fails closed. This mode does not grant action permission, commit permission, or scope
27
+ expansion and does not imply `--auto-commit`. **Normal mode:** without the exact token, every
28
+ material runtime choice still requires an explicit user decision; historical delegated records
29
+ must not infer delegated authority.
30
+
31
+ ## Scope exploration option
32
+
33
+ If `$ARGUMENTS` contains exactly one exact standalone `--explore-scope` token before the first `--` sentinel, remove it before resolving targets, paths, or modes; zero occurrences means strict scope, more than one is invalid, and tokens at or after the sentinel are target content; announce `Scope exploration active — optional additions will be proposed for your decision`; then read and apply
34
+ [../../_shared/scope-expansion-control.md](../../_shared/scope-expansion-control.md). Strict scope is the default:
35
+ do not report or implement optional additions raised during execution or review.
36
+ Exploration may create `SE-*` proposals, but only the user may choose `Keep` and authorize a plan
37
+ update.
38
+
39
+ Execute the implementation plan at `plans/$ARGUMENTS/99-execution-plan.md`. The first
40
+ argument is the feature name; an optional flag selects the commit mode.
41
+
42
+ ## Execution-entry gate
43
+
44
+ Before modifying implementation files, directly confirm the plan has its required documents, the
45
+ ambiguity register has no open material item, specification tests precede implementation, and no
46
+ critical/major preflight finding remains unresolved. Also confirm every material support surface
47
+ has specific complexity approval in an applicable AR/PF/RV decision.
48
+ `99-execution-plan.md` is the only mutable task-progress authority:
49
+
50
+ For a plan created before `00-index.md` gained its Minimum-Sufficient Baseline, derive the original
51
+ goal and smallest viable design from its existing requirements, specifications, repository
52
+ patterns, and approved decisions. Keep that session baseline in every dispatch packet. If it is not
53
+ clear, use the runtime ambiguity gate; do not force a document migration or guess.
54
+
55
+ - `[ ]` is not started;
56
+ - `[~]` is implemented with verification pending;
57
+ - `[x]` is verified; and
58
+ - `[!]` is blocked and includes `Blocked: <short reason>` on the task line.
59
+
60
+ Never advance sibling tasks. Implement, immediately mark `[~]`, verify, then mark `[x]` only on
61
+ success. The primary agent updates the checklist after every delegated result.
62
+
63
+ A runtime ambiguity blocks affected plan tasks: record it in the ambiguity register and mark each
64
+ affected task `[!]` with a short visible reason. In normal mode, present options and obtain the user's explicit decision. With active
65
+ auto-design, resolve and record an eligible technical ambiguity under the shared policy; reserved
66
+ authority still pauses for the user. If resolution requires changing an upstream artifact outside
67
+ the selected plan's documents, present the exact expanded modification set and obtain the user's
68
+ approval before editing because auto-design does not expand scope. Resolve the ambiguity, update
69
+ the affected plan artifacts, and only then resume.
70
+
71
+ Before treating a runtime discovery or reviewer remediation as executable, classify it under the
72
+ shared scope-expansion protocol. A necessary correction retains the ordinary ambiguity/finding
73
+ gate. An optional change is silent in strict scope or a non-executable `SE-*` proposal in
74
+ exploration mode; accepting the related finding is not scope authorization.
75
+
76
+ This skill covers **execution only**. To create a plan, use the make-plan skill.
77
+
78
+ ## Resolve the plan path first (layout-aware)
79
+
80
+ Determine the layout via **[../../_shared/layout-convention.md](../../_shared/layout-convention.md)**:
81
+
82
+ - **Flat layout** (no marker): the plan is at `plans/$ARGUMENTS/99-execution-plan.md` — as flat layout always has.
83
+ - **Nested layout** (marker present): the plan is under a feature —
84
+ `codeops/features/<f>/plans/<plan>/99-execution-plan.md`. If the target feature/plan is ambiguous,
85
+ **ask the user** (never guess). A non-trivial **task** mini-plan lives at the same nested path and
86
+ executes identically (see "Lightweight tasks" above). Everywhere below that says
87
+ `plans/$ARGUMENTS/` means this resolved plan path.
88
+
89
+ ## Commit modes
90
+
91
+ | Flag | Behavior |
92
+ |------|----------|
93
+ | *(none)* / `--ask-commit` | **Default.** After each verified task, ask the user whether to commit. |
94
+ | `--no-commit` | Never commit, never ask. Pure implementation. |
95
+ | `--auto-commit` | Automatically commit + push (via the `git-commit` skill in push mode) after each verified task. |
96
+
97
+ Full prompt wording, end-of-plan reminders, and commit-message format live in
98
+ [commit-modes.md](commit-modes.md) — read it before the first commit decision.
99
+
100
+ ## Lightweight tasks (both layouts)
101
+
102
+ A **non-trivial task** has a single mini-plan at the resolved task path (flat:
103
+ `plans/<task-slug>/99-execution-plan.md`; nested:
104
+ `codeops/features/<f>/plans/<task-slug>/99-execution-plan.md`). Execute it **exactly like a feature
105
+ plan** — same per-task loop, same real-time update mandate, same commit modes — it is just a
106
+ smaller `99-execution-plan.md` (objective + checklist + verify, no `00–07` set). Specification-first
107
+ ordering still applies *when the task warrants tests* (e.g. a bugfix's regression test).
108
+
109
+ A complexity escalation ends the mini-plan path before any approval can become executable. Mark
110
+ the affected task `[!]`, preserve any implementation diff without marking it verified, and switch
111
+ to make-plan's full standalone-plan path. Its `00-ambiguity-register.md` owns the complete stop
112
+ packet and direct user decision. Do not accept or store a complexity approval only in the
113
+ mini-plan; resume execution only from the resulting full plan after its gates pass. This also
114
+ applies when the escalation is first found by the post-task review.
115
+
116
+ A **trivial task** has **no plan document** to run: do the work directly, then record it as a
117
+ `T-NN` roadmap row + the commit (no execution-plan loop). The task model and routing rule live in
118
+ **[../../_shared/layout-convention.md](../../_shared/layout-convention.md)** — the lane exists in both
119
+ layouts (flat gained it in 3.2.0).
120
+
121
+ ## Execution mode — inline first
122
+
123
+ Phases run **inline** on the session model by default; a phase is dispatched as ONE pinned-model
124
+ executor only when its routing tag maps to a cheaper model AND the phase amortizes the executor
125
+ bootstrap. Per-task or parallel dispatch happens only on the user's explicit request (it costs
126
+ more tokens, not fewer). Full rules in [execution-protocol.md](execution-protocol.md).
127
+
128
+ ## Execution protocol (summary)
129
+
130
+ Read [execution-protocol.md](execution-protocol.md) for the full step-by-step protocol,
131
+ the specification-first ordering rules, the real-time update mandate, and the session
132
+ summary template. The essentials:
133
+
134
+ ### Step 1 — Load the plan
135
+
136
+ 1. Read `plans/$ARGUMENTS/99-execution-plan.md`.
137
+ 2. Find incomplete tasks — both `[ ]` and implemented-but-unverified `[~]`; read supporting specs
138
+ in `plans/$ARGUMENTS/`.
139
+ 3. Determine the starting point: a `[~]` task is resumed first (re-verify, then promote or keep
140
+ fixing); otherwise the first `[ ]` task.
141
+ 4. If the plan is missing/empty/already complete, **STOP** — see the load table in
142
+ [execution-protocol.md](execution-protocol.md). Generally suggest the make-plan skill.
143
+
144
+ **Schema check:** a legacy `CodeOps Skills Version` stamp or missing schema triggers a read-only
145
+ upgrade assessment; ask before migration or execution with recorded compatibility risk. Never
146
+ silently upgrade.
147
+
148
+ ### Step 2 — Execute tasks (per-task loop)
149
+
150
+ For each task, in order:
151
+
152
+ 1. **Run the minimum-sufficient checkpoint, then implement.** Compare the intended work with the
153
+ original goal and smallest viable solution. If it triggers the shared Complexity Escalation
154
+ Gate in `../../_shared/zero-ambiguity-gate.md`, mark the task `[!]`, run the independent
155
+ challenge, show the full visible stop packet, and wait for explicit user approval before adding
156
+ the larger machinery. Auto-design cannot approve it. Otherwise implement the task following the
157
+ technical specs in `plans/$ARGUMENTS/`.
158
+ 2. **🚨 Immediately update `99-execution-plan.md`** — completion marks are **two-stage**: mark the
159
+ task `[~]` with an implemented-timestamp in its phase task list (or, in a pre-3.3.0 plan, in
160
+ the Master Progress Checklist — see the protocol's dual-format detection) and bump the Progress
161
+ counter / Last Updated stamp as soon as implementation finishes (crash-safe), promote it to
162
+ `[x]` only after its verification passes. A task never shows `[x]` with a failing verify.
163
+ 3. **Verify** — run your project's verify command (from the project's AGENTS.md, or detected
164
+ project conventions), output captured per the protocol's **Verify-output capture rule**
165
+ (PASS one-liner; on failure the last 50 log lines + log path). Pass → promote `[~]` → `[x]`;
166
+ fail → fix and re-verify (mark stays `[~]`). Immediately after every `[x]` promotion, run the
167
+ protocol's read-only progress-bar command for the selected plan and show its exact output in the
168
+ next commentary update. Only `[x]` contributes to the displayed completion count.
169
+ 4. **Commit** per the active commit mode (see [commit-modes.md](commit-modes.md)) — the commit
170
+ gate keys off `[x]`.
171
+ 5. **Techdocs check (after each phase):** if the phase introduced architectural changes and
172
+ techdocs exist, do an incremental update via the techdocs skill.
173
+ 6. Continue until all tasks are complete. (OpenCode auto-compacts context — no manual
174
+ threshold handling is needed.)
175
+
176
+ > **🚨 Specification-first task ordering — non-negotiable.** Within each feature:
177
+ > `spec tests → verify red → implement → verify green → impl tests → full verify`.
178
+ > Never write implementation code before its spec tests exist, and never edit a spec test to
179
+ > match the implementation (the implementation is wrong, not the test). Details and the
180
+ > compressed single-session form are in [execution-protocol.md](execution-protocol.md).
181
+
182
+ > **🚨 Zero-ambiguity during execution.** If you hit any detail not covered by the plan docs or
183
+ > `00-ambiguity-register.md`, STOP and record it. In normal mode, present options and wait for an
184
+ > explicit user decision. With active auto-design, resolve an eligible technical choice under the
185
+ > shared policy or escalate a reserved choice. Record the authorized resolution in
186
+ > `00-ambiguity-register.md` (tag `(runtime)`), update affected plan documents, then resume.
187
+ > Never guess.
188
+
189
+ > **🚨 Complexity escalation during execution.** A material new layer, dependency, harness,
190
+ > framework, infrastructure surface, cross-cutting refactor, or future-proofing is a reserved stop
191
+ > even when the plan leaves implementation freedom. Apply the shared gate's prominent packet and
192
+ > challenger requirement. Record an approved runtime escalation in the Ambiguity Register as
193
+ > `Technical (complexity escalation)`.
194
+
195
+ > **Grounded Options & Recommendations (coding standards → Working style) apply here.** Before presenting options/findings/recommendations: filter out non-viable ones (no strawmen; ≥2 only when ≥2 are genuinely viable, else present the single viable path and name what was rejected), second-guess each, verify any code-modifying option against the actual current code (cite `file:line`), and lead with a recommendation backed by grounded reasoning. Match ceremony to stakes. In normal mode, the user decides; active auto-design resolves eligible technical decisions and escalates reserved ones. Apply the recommendation-hardening protocol (`_shared/recommendation-hardening.md`) to consequential recommendations; escalate to an independent challenger only when the decision is genuinely high-stakes.
196
+
197
+ ### Step 3 — Session wrap-up
198
+
199
+ 1. Finish the current task before stopping.
200
+ 2. **🚨 First, update `99-execution-plan.md`** with all completed tasks (before anything else).
201
+ 3. Run the verify command.
202
+ 4. Handle the commit per the active commit mode.
203
+ 5. Report a session summary (must state `Execution Plan Updated: ✅`). Template in
204
+ [execution-protocol.md](execution-protocol.md).
205
+
206
+ To resume in a later session, just run `/exec-plan $ARGUMENTS` again — the execution plan is the
207
+ source of truth and tells the skill where to pick up.
208
+
209
+ ## Quality loop (profile-gated)
210
+
211
+ Every non-trivial executed phase (and task mini-plan) ends with a post-phase quality review under
212
+ strict defaults unless an allowed adaptive-mode policy explicitly disables it. Activation rules,
213
+ lenses, supersession, dispatch packets, and budget caps are defined
214
+ once in **[../../_shared/quality-profile.md](../../_shared/quality-profile.md)** — this skill
215
+ links to them, never restates them.
216
+
217
+ The flow: the protocol records a phase-start ref when the phase begins; after the phase's last
218
+ task verifies, the correctness reviewer and any active auditors are dispatched **in parallel** on
219
+ the phase diff, their findings are merged and presented in severity-grouped batches, and each
220
+ ruling is recorded in the durable finding artifact.
221
+
222
+ > **🚨 Finding gate (load-bearing).** In normal mode, 🔴 CRITICAL and 🟠 MAJOR findings PAUSE
223
+ > execution for the user's ruling in ALL commit modes. With active auto-design, select and record
224
+ > an eligible technical fix, but never waive or dismiss a finding; reserved decisions still pause
225
+ > for the user. Auto-commit never bypasses the applicable authority gate. 🟡 MINOR findings are
226
+ > report-only. Accepted fixes are implemented, verified, follow-up-committed per the commit mode,
227
+ > and (after 🔴/🟠 fixes) re-reviewed ONCE on the fix diff — never a third time.
228
+ > Reviewers receive the active scope mode. Optional remediations are omitted in strict scope and
229
+ > become separate `SE-*` proposals during exploration; they are never accepted merely by a finding
230
+ > ruling or auto-design resolution.
231
+ > Escaped, unapproved complexity is at least a 🟠 MAJOR finding. It uses the shared Complexity
232
+ > Escalation Gate and cannot be waived by `quality.independentReview: false` once detected.
233
+
234
+ Step-by-step mechanics — the phase-start ref, spec-author dispatch, the post-phase quality step,
235
+ and emission points — live in [execution-protocol.md](execution-protocol.md).
236
+
237
+ ## Roadmap sync
238
+
239
+ If a roadmap exists (`plans/00-roadmap.md` flat, or the feature's
240
+ `codeops/features/<f>/00-roadmap.md` nested), keep it in sync via the roadmap skill (update-first,
241
+ before verify/commit/next): set the RD/task row to `Executing` (🔄) on start, `Done` (✅) on
242
+ completion, and `Blocked` (⛔) with a nested `↳ DEF-n` sub-row when a blocking dependency is
243
+ discovered. **Nested layout:** after each per-feature transition, **cascade** to the portfolio
244
+ `codeops/00-roadmap.md` (re-roll that feature's row) before proceeding — per the roadmap skill's
245
+ cascade mandate. If no roadmap exists, these hooks are inert.
246
+
247
+ ## Error handling
248
+
249
+ Brief rules for verification failure, plan deviation, and mid-task interruption are in
250
+ [execution-protocol.md](execution-protocol.md) — consult it when something goes wrong.
251
+
252
+ ## Post-completion hooks (all tasks done)
253
+
254
+ 1. Handle the end-of-plan commit per the active commit mode (see [commit-modes.md](commit-modes.md)).
255
+ 2. **Techdocs:** if techdocs exist, do a comprehensive update via the techdocs skill; otherwise
256
+ ask whether to create them.
257
+ 3. **Re-analyze:** ask whether to re-analyze the project and update the project's AGENTS.md via
258
+ the `analyze-project` skill.
259
+ 4. **Roadmap:** set the RD row to `Done` via the roadmap skill if a roadmap exists.
260
+
261
+ ## Conventions
262
+
263
+ - Follow your project's coding and testing standards (the project's AGENTS.md, or detected
264
+ project conventions). If no AGENTS.md exists, detect build/test/verify commands from manifest
265
+ files and use only facts you can read — do not invent settings.
266
+ - Commit using the `git-commit` skill (commit only) or the `git-commit` skill in push mode (commit + push), or a normal git commit.
267
+ - Related skills: make-plan (creation), upgrade-plan (outdated plans), preflight, roadmap, techdocs.
@@ -0,0 +1,113 @@
1
+ # Commit Modes (Reference)
2
+
3
+ How the exec-plan skill handles commits. SKILL.md links here. Read this before the first commit
4
+ decision.
5
+
6
+ **By default, the skill NEVER commits or pushes automatically.** The user should always have the
7
+ chance to review changes before they hit the repository. Files are always saved to disk
8
+ regardless of commit mode, so no work is ever lost — only the git operation is gated.
9
+
10
+ Commit using the `git-commit` skill (commit only) or the `git-commit` skill in push mode (commit + push), or a normal git commit.
11
+
12
+ ---
13
+
14
+ ## The three modes
15
+
16
+ | Mode | Flag | Behavior |
17
+ |------|------|----------|
18
+ | **Ask (default)** | *(no flag)* or `--ask-commit` | After each verified task, ask the user whether/how to commit. |
19
+ | **No-commit** | `--no-commit` | Never commit, never ask. Pure implementation. The user handles git. |
20
+ | **Auto-commit** | `--auto-commit` | Automatically commit + push via the `git-commit` skill in push mode after each verified task. No prompts. |
21
+
22
+ The commit step is only triggered when ALL of these are true:
23
+
24
+ 1. ✅ The task/session is successfully complete.
25
+ 2. ✅ All verification passes.
26
+ 3. ✅ The execution plan shows the task at `[x]` (verified complete — the two-stage marks are in
27
+ [execution-protocol.md](execution-protocol.md); a `[~]` task is never committed).
28
+
29
+ **Never commit** when verification is failing, a task is still `[~]` (implemented but not
30
+ verified), or the mode is `--no-commit`.
31
+
32
+ **Quality-loop interaction (profile-gated).** When the repo's quality profile activates the
33
+ post-phase quality step (see [execution-protocol.md](execution-protocol.md)), fixes accepted
34
+ from review findings are committed as **follow-up commits** under the same rules as task
35
+ commits. A 🔴 CRITICAL / 🟠 MAJOR finding pauses execution for the user's ruling in EVERY
36
+ mode — auto-commit automates the git operation, never the ruling.
37
+
38
+ ---
39
+
40
+ ## Ask-commit mode (default) — prompt protocol
41
+
42
+ After each task completes and verification passes, ask the user:
43
+
44
+ > "Task X.X.X complete, verification passing. How would you like to proceed?"
45
+
46
+ Offer these options:
47
+
48
+ 1. **Commit and push** — commit + push via the `git-commit` skill in push mode, then continue to the next task.
49
+ 2. **Commit only (no push)** — commit via the `git-commit` skill, then continue to the next task.
50
+ 3. **Skip, continue to next task** — no commit; ask again after the next task.
51
+ 4. **Skip all, commit at the end** — no commit, and **stop asking** for the rest of the plan.
52
+ At plan completion, present the end-of-plan commit prompt below.
53
+
54
+ If the user picks option 4, remember the preference and don't prompt again until the plan is done.
55
+
56
+ ### End-of-plan commit reminder (ask mode)
57
+
58
+ When all tasks are complete and there are uncommitted changes, ask:
59
+
60
+ > "All tasks complete. You have uncommitted changes. How would you like to proceed?"
61
+
62
+ 1. **Commit and push** — commit + push all changes via the `git-commit` skill in push mode.
63
+ 2. **Commit only (no push)** — commit all changes via the `git-commit` skill.
64
+ 3. **Don't commit** — leave changes uncommitted; the user handles git manually.
65
+
66
+ ---
67
+
68
+ ## No-commit mode
69
+
70
+ When `--no-commit` is specified:
71
+
72
+ - ✅ Implement tasks, run verification, update the execution plan — everything as normal.
73
+ - ✅ No git operations whatsoever (no staging, commits, or pushes).
74
+ - ✅ No commit prompts.
75
+ - ✅ Session summaries note `Commit mode: no-commit — no commits made`.
76
+ - ✅ At plan completion, one informational note: "Plan complete. Commit mode was no-commit —
77
+ changes are uncommitted."
78
+
79
+ ---
80
+
81
+ ## Auto-commit mode
82
+
83
+ When `--auto-commit` is specified:
84
+
85
+ - ✅ After each verified task, automatically commit + push via the `git-commit` skill in push mode.
86
+ - ✅ No prompts — fully automated. **Exception:** a quality-gate pause (🔴/🟠 finding from the
87
+ post-phase quality step) still stops for the user's ruling; auto-commit resumes after it.
88
+ - ✅ Follow the commit message format below.
89
+ - ✅ End-of-plan: changes are already committed per-task — no additional commit action needed.
90
+
91
+ ---
92
+
93
+ ## Commit message format
94
+
95
+ When committing (ask mode approved, or auto-commit), use this message format. The Conventional
96
+ Commits **type comes from the task's nature** — `feat` for new capability, `fix` for a bugfix,
97
+ `test` for test-only tasks, `docs` for documentation, `refactor`/`chore` for restructuring and
98
+ plumbing — never a hardcoded `feat` for everything:
99
+
100
+ ```
101
+ [type]([scope]): [task description]
102
+
103
+ - [Specific change 1]
104
+ - [Specific change 2]
105
+ - Verification: passing
106
+
107
+ Ref: plans/[feature-name]/99-execution-plan.md
108
+ Task: [X.X.X]
109
+ ```
110
+
111
+ the `git-commit` skill handles staging, the message file, and the commit/push for you. If you
112
+ commit with a plain `git commit` instead, write the message above to a file and pass it with
113
+ `-F` rather than cramming it into `-m`.