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.
- package/CHANGELOG.md +179 -0
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/_shared/auto-design.md +129 -0
- package/_shared/layout-convention.md +198 -0
- package/_shared/quality-profile.md +134 -0
- package/_shared/recommendation-hardening.md +166 -0
- package/_shared/scope-expansion-control.md +176 -0
- package/_shared/spec-first-ordering.md +79 -0
- package/_shared/zero-ambiguity-gate.md +311 -0
- package/agent-templates/codebase-scout.md +17 -0
- package/agent-templates/concurrency-auditor.md +5 -0
- package/agent-templates/design-challenger.md +26 -0
- package/agent-templates/financial-integrity-auditor.md +5 -0
- package/agent-templates/perf-auditor.md +23 -0
- package/agent-templates/phase-reviewer.md +54 -0
- package/agent-templates/plan-task-executor-opus.md +46 -0
- package/agent-templates/plan-task-executor.md +43 -0
- package/agent-templates/preflight-auditor.md +45 -0
- package/agent-templates/security-auditor.md +42 -0
- package/agent-templates/semantics-reviewer.md +5 -0
- package/agent-templates/spec-test-author.md +29 -0
- package/agents/concurrency-auditor.md +15 -0
- package/agents/correctness-reviewer.md +66 -0
- package/agents/demanding-executor.md +58 -0
- package/agents/design-challenger.md +38 -0
- package/agents/executor.md +55 -0
- package/agents/explorer.md +29 -0
- package/agents/financial-integrity-auditor.md +15 -0
- package/agents/performance-auditor.md +35 -0
- package/agents/preflight-auditor.md +57 -0
- package/agents/security-auditor.md +54 -0
- package/agents/semantics-reviewer.md +15 -0
- package/agents/spec-test-author.md +41 -0
- package/bin/codeops-worktree +244 -0
- package/bin/index.mjs +106 -0
- package/bin/install-agents.mjs +453 -0
- package/bin/install-skills.mjs +466 -0
- package/bin/lib/opencode-install.mjs +185 -0
- package/install.sh +55 -0
- package/package.json +73 -0
- package/plugin/index.ts +181 -0
- package/references/domains/compiler-and-language.md +28 -0
- package/references/domains/data-and-migration.md +22 -0
- package/references/domains/distributed-and-concurrent.md +26 -0
- package/references/domains/financial-system.md +28 -0
- package/references/domains/selection.md +19 -0
- package/references/domains/web-application.md +23 -0
- package/schemas/codeops-config.schema.json +56 -0
- package/scripts/check-version.mjs +163 -0
- package/scripts/codeops-migrate.sh +355 -0
- package/scripts/codeops-roadmap-compact.sh +232 -0
- package/scripts/codeops-roadmap-sync.sh +275 -0
- package/scripts/codeops_outcomes.py +155 -0
- package/scripts/codeops_plan.py +239 -0
- package/scripts/codeops_plan_migrate.py +318 -0
- package/scripts/codeops_worktree_snapshot.py +99 -0
- package/scripts/install_agents.py +288 -0
- package/scripts/release.mjs +533 -0
- package/skills/analyze-project/SKILL.md +28 -0
- package/skills/clean-comments/SKILL.md +22 -0
- package/skills/exec-plan/SKILL.md +267 -0
- package/skills/exec-plan/commit-modes.md +113 -0
- package/skills/exec-plan/execution-protocol.md +471 -0
- package/skills/git-commit/SKILL.md +35 -0
- package/skills/github-issues/SKILL.md +38 -0
- package/skills/grill-me/SKILL.md +342 -0
- package/skills/make-plan/SKILL.md +282 -0
- package/skills/make-plan/quality-checklist.md +96 -0
- package/skills/make-plan/templates.md +535 -0
- package/skills/make-plan/zero-ambiguity-gate.md +19 -0
- package/skills/make-requirements/SKILL.md +268 -0
- package/skills/make-requirements/discovery-phases.md +255 -0
- package/skills/make-requirements/review-and-add.md +73 -0
- package/skills/make-requirements/templates.md +296 -0
- package/skills/make-requirements/zero-ambiguity-gate.md +18 -0
- package/skills/outcome-review/SKILL.md +34 -0
- package/skills/preflight/SKILL.md +310 -0
- package/skills/preflight/dimensions.md +181 -0
- package/skills/preflight/report-format.md +300 -0
- package/skills/retro-requirements/SKILL.md +218 -0
- package/skills/retro-requirements/confidence-classification.md +45 -0
- package/skills/retro-requirements/phases.md +609 -0
- package/skills/retro-requirements/triage-gate.md +135 -0
- package/skills/roadmap/SKILL.md +381 -0
- package/skills/roadmap/stage-hooks.md +80 -0
- package/skills/roadmap/template.md +200 -0
- package/skills/setup-codeops/SKILL.md +94 -0
- package/skills/setup-codeops/migration.md +106 -0
- package/skills/setup-codeops/scaffold.md +99 -0
- package/skills/setup-routing/SKILL.md +102 -0
- package/skills/setup-routing/routing.md +44 -0
- package/skills/techdocs/SKILL.md +199 -0
- package/skills/techdocs/authoring-and-update.md +178 -0
- package/skills/techdocs/templates.md +655 -0
- package/skills/techdocs/vitepress-setup.md +143 -0
- package/skills/upgrade-plan/SKILL.md +75 -0
- package/skills/upgrade-plan/content-quality-gate.md +35 -0
- package/skills/upgrade-plan/upgrade-checklists.md +107 -0
- package/standards/coding-standards-full.md +124 -0
- package/standards/coding-standards.md +64 -0
- 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`.
|