@jakkrichm/create-nexus-devflow 2.12.2 → 2.12.4
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/dist/lib/current-work.d.ts +6 -1
- package/dist/lib/current-work.js +41 -4
- package/dist/lib/current-work.js.map +1 -1
- package/dist/lib/history.js +28 -15
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/project-config.d.ts +5 -1
- package/dist/lib/project-config.js +11 -2
- package/dist/lib/project-config.js.map +1 -1
- package/dist/lib/review.d.ts +4 -1
- package/dist/lib/review.js +35 -4
- package/dist/lib/review.js.map +1 -1
- package/dist/lib/run-state.d.ts +1 -1
- package/dist/lib/run-state.js +1 -9
- package/dist/lib/run-state.js.map +1 -1
- package/dist/lib/status.d.ts +3 -1
- package/dist/lib/status.js +25 -6
- package/dist/lib/status.js.map +1 -1
- package/dist/scripts/prepare-template.js +22 -7
- package/dist/scripts/prepare-template.js.map +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/adopt/SKILL.md +40 -5
- package/template/.agents/skills/audit/SKILL.md +65 -18
- package/template/.agents/skills/audit/reference/independent-review.md +31 -4
- package/template/.agents/skills/autopilot/SKILL.md +62 -18
- package/template/.agents/skills/ci/SKILL.md +8 -1
- package/template/.agents/skills/complete/SKILL.md +27 -2
- package/template/.agents/skills/continuous/SKILL.md +9 -4
- package/template/.agents/skills/doctor/SKILL.md +8 -4
- package/template/.agents/skills/feature/SKILL.md +9 -1
- package/template/.agents/skills/fix/SKILL.md +2 -1
- package/template/.agents/skills/implement/SKILL.md +47 -3
- package/template/.agents/skills/onboard/SKILL.md +62 -11
- package/template/.agents/skills/overview/SKILL.md +14 -0
- package/template/.agents/skills/rollback/SKILL.md +3 -1
- package/template/.agents/skills/status/SKILL.md +14 -4
- package/template/.claude/skills/adopt/SKILL.md +40 -5
- package/template/.claude/skills/audit/SKILL.md +65 -18
- package/template/.claude/skills/audit/reference/independent-review.md +31 -4
- package/template/.claude/skills/autopilot/SKILL.md +62 -18
- package/template/.claude/skills/ci/SKILL.md +8 -1
- package/template/.claude/skills/complete/SKILL.md +27 -2
- package/template/.claude/skills/continuous/SKILL.md +9 -4
- package/template/.claude/skills/doctor/SKILL.md +8 -4
- package/template/.claude/skills/feature/SKILL.md +9 -1
- package/template/.claude/skills/fix/SKILL.md +2 -1
- package/template/.claude/skills/implement/SKILL.md +47 -3
- package/template/.claude/skills/onboard/SKILL.md +62 -11
- package/template/.claude/skills/overview/SKILL.md +14 -0
- package/template/.claude/skills/rollback/SKILL.md +3 -1
- package/template/.claude/skills/status/SKILL.md +14 -4
- package/template/AGENTS.md +4 -2
- package/template/devflow/build-plan.md +18 -0
- package/template/devflow/config.json +5 -2
- package/template/devflow/context/ai-interaction.md +2 -0
- package/template/devflow/analysis/REQ-20260903-001-sync-upstream-ai-blueprint/codebase-impact.md +0 -46
- package/template/devflow/analysis/REQ-20260904-001-sync-upstream-ai-blueprint/codebase-impact.md +0 -47
- package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/clarifications.md +0 -34
- package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/parsed.md +0 -66
- package/template/devflow/inbox/REQ-20260903-001-sync-upstream-ai-blueprint/raw/upstream-v152-diff.md +0 -16
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/clarifications.md +0 -28
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/parsed.md +0 -59
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/raw/upstream-diff.txt +0 -23
|
@@ -20,6 +20,11 @@ same quality gates, but it does not stop after every normal review point. A
|
|
|
20
20
|
single user request is permission to run one bounded loop until the feature is
|
|
21
21
|
ready for review, blocked, or unsafe to continue.
|
|
22
22
|
|
|
23
|
+
It combines `/feature` or `/fix` with `/implement` and continues through the
|
|
24
|
+
spec-review stop retained by the normal workflow. That human spec approval is
|
|
25
|
+
the main control Autopilot intentionally removes. It does not remove the final
|
|
26
|
+
review packet or the option to walk through the completed code.
|
|
27
|
+
|
|
23
28
|
It does **not** replace the normal workflow. `/feature`, `/implement`, `/check`,
|
|
24
29
|
and `/complete` remain the conservative default.
|
|
25
30
|
|
|
@@ -103,28 +108,26 @@ declared and capture interactive evidence with `browseros-neo` when available.
|
|
|
103
108
|
If either path is unavailable, record the limitation in the review packet and do
|
|
104
109
|
not install a runner or claim browser proof implicitly.
|
|
105
110
|
|
|
106
|
-
## Step 2 -
|
|
111
|
+
## Step 2 - spec or fix definition
|
|
112
|
+
|
|
113
|
+
If starting a planned feature:
|
|
107
114
|
|
|
108
|
-
|
|
109
|
-
|
|
115
|
+
1. Read `devflow/context/project-overview.md` and `devflow/build-plan.md`.
|
|
116
|
+
2. Follow `/feature`'s sizing logic. If the feature is too large for one spec,
|
|
117
|
+
split it in `devflow/build-plan.md` into `Na`, `Nb`, `Nc` and target only
|
|
118
|
+
the first sub-feature.
|
|
119
|
+
3. Write the spec to `devflow/context/{xxx-slug}/spec.md` and set its status to
|
|
120
|
+
`specified`. Fill all required sections, including the small build steps and
|
|
121
|
+
acceptance criteria.
|
|
110
122
|
|
|
111
|
-
If
|
|
123
|
+
If starting an ad-hoc fix:
|
|
112
124
|
|
|
113
|
-
1.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
3. Red-team the spec before building:
|
|
117
|
-
- missing unhappy paths
|
|
118
|
-
- oversized steps
|
|
119
|
-
- undefined contracts
|
|
120
|
-
- missing design reference
|
|
121
|
-
- scope creep
|
|
122
|
-
- vague done-whens
|
|
123
|
-
- missing testing plan when `AGENTS.md` declares a test command
|
|
124
|
-
4. Apply the spec fixes.
|
|
125
|
+
1. Pull the bug description or failure context.
|
|
126
|
+
2. Follow `/fix`'s definition rules and write `devflow/context/{xxx-slug}/spec.md`.
|
|
127
|
+
3. Set `Type: Fix` and write a short, focused task list.
|
|
125
128
|
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
If resuming an existing feature, verify `devflow/context/{xxx-slug}/spec.md` is
|
|
130
|
+
usable and resume from the first unchecked step.
|
|
128
131
|
|
|
129
132
|
## Step 3 - branch
|
|
130
133
|
|
|
@@ -161,6 +164,10 @@ Work through the spec's steps in order:
|
|
|
161
164
|
Do not batch the whole feature into one large diff. If a step gets too large,
|
|
162
165
|
split the step in `devflow/context/{xxx-slug}/spec.md` and continue with the first smaller step.
|
|
163
166
|
|
|
167
|
+
Do not pause for user approval after each passing step, regardless of the
|
|
168
|
+
configured `workflow.stepReview` value. The review happens at the final packet
|
|
169
|
+
unless a hard stop is hit.
|
|
170
|
+
|
|
164
171
|
## Step 5 - acceptance check
|
|
165
172
|
|
|
166
173
|
After all implementation steps are checked, run the `/check` behavior for the
|
|
@@ -177,6 +184,38 @@ feature audit, not a repository-wide cleanup pass. Findings are recorded in
|
|
|
177
184
|
`devflow/context/{xxx-slug}/findings.md` with durable IDs and statuses, as `/audit`
|
|
178
185
|
defines; the ledger reports status and never scopes what the audit examines.
|
|
179
186
|
|
|
187
|
+
Apply `qualityGates.regular.independentReview` before a same-session audit:
|
|
188
|
+
|
|
189
|
+
- `manual` does not activate the gate.
|
|
190
|
+
- `when-sensitive` requires it only when the work touches authentication,
|
|
191
|
+
authorization, secrets, payments, personal data, destructive actions, dependencies,
|
|
192
|
+
deployment, or another sensitive boundary.
|
|
193
|
+
- `always` requires it for every work item.
|
|
194
|
+
|
|
195
|
+
The selected review runs after all implementation steps, final Verify, required
|
|
196
|
+
Check, and the verified spec, before the final review packet and `/complete`.
|
|
197
|
+
`review.independentExecution` chooses the manual fresh-session handoff or an
|
|
198
|
+
automatic isolated reviewer; it does not change when the gate is selected.
|
|
199
|
+
|
|
200
|
+
When selected, do not review the builder's work in this session. Ensure all work
|
|
201
|
+
is in an approved clean checkpoint, then follow Phase A of
|
|
202
|
+
`/audit independent current`. With automatic execution, spawn and wait for the
|
|
203
|
+
isolated reviewer, then validate its normal receipt. With manual execution, stop
|
|
204
|
+
with the handoff. Autopilot may use its existing configured checkpoint authority
|
|
205
|
+
when checkpoint commits are enabled; otherwise show the exact review-checkpoint
|
|
206
|
+
candidate and ask before committing. On resume, continue only when a fresh
|
|
207
|
+
reviewer wrote a current `passed` receipt. Repair `changes-requested` P0/P1
|
|
208
|
+
findings within the normal scope and attempt limit, then obtain a new checkpoint
|
|
209
|
+
and prepare a new review. A passing independent receipt satisfies the configured
|
|
210
|
+
Audit gate.
|
|
211
|
+
|
|
212
|
+
The request records `Requested execution`; the receipt records `Actual
|
|
213
|
+
execution`. Require the execution and reviewer-context pairing defined by the
|
|
214
|
+
project-local review contract, including actual manual plus `fresh session` when
|
|
215
|
+
an automatic request explicitly falls back.
|
|
216
|
+
On resume, a pending request without `Requested execution` is legacy manual-only.
|
|
217
|
+
Never add execution fields or run a subagent against it.
|
|
218
|
+
|
|
180
219
|
For every finding:
|
|
181
220
|
|
|
182
221
|
1. Validate it against the actual code, spec, tests, `coding-standards.md`, and
|
|
@@ -216,6 +255,11 @@ Stop and produce a concise review packet:
|
|
|
216
255
|
- unresolved risks or skipped checks
|
|
217
256
|
- exact next action
|
|
218
257
|
|
|
258
|
+
Always offer a read-only walkthrough of the completed code after the packet.
|
|
259
|
+
Follow the spec's build steps, explain the key files, symbols, flow, and
|
|
260
|
+
non-obvious decisions, then offer a focused deep dive. Keep `/try` distinct as
|
|
261
|
+
the manual product-review path.
|
|
262
|
+
|
|
219
263
|
If everything is green, the next action is usually: review the diff, then run
|
|
220
264
|
`/try` if you want a manual walkthrough, then `/complete`.
|
|
221
265
|
|
|
@@ -113,6 +113,12 @@ Run the exact documented `Verify` command locally. The individual build, test,
|
|
|
113
113
|
or typecheck commands may still be run separately for diagnosis, but the final
|
|
114
114
|
proof must use Verify because that is what GitHub will run.
|
|
115
115
|
|
|
116
|
+
A passing local run proves the recipe against the current working copy. It does
|
|
117
|
+
not prove dependency installation or command behavior from a fresh checkout.
|
|
118
|
+
Until the workflow is pushed and reports green on GitHub, describe the setup as
|
|
119
|
+
prepared locally, not CI verified. The first successful GitHub run is the
|
|
120
|
+
authoritative clean-checkout proof.
|
|
121
|
+
|
|
116
122
|
If Verify fails, report the failing subcommand and stop. Do not weaken the
|
|
117
123
|
command, remove a legitimate check, or describe CI as ready.
|
|
118
124
|
|
|
@@ -128,7 +134,8 @@ Finish with a concise setup report:
|
|
|
128
134
|
- checks included and checks omitted
|
|
129
135
|
- test gate status
|
|
130
136
|
- workflow path and triggers
|
|
131
|
-
- local Verify result
|
|
137
|
+
- local Verify result and whether CI is only prepared locally or confirmed by a
|
|
138
|
+
successful GitHub run
|
|
132
139
|
- files changed
|
|
133
140
|
- any overlap, uncertainty, or follow-up
|
|
134
141
|
|
|
@@ -54,6 +54,31 @@ Use `qualityGates.regular` for this work item:
|
|
|
54
54
|
- **Check:** `manual` runs only when explicitly requested; `when-behavioral` runs when done-whens need observed runtime behavior; `always` runs for every work item.
|
|
55
55
|
- **Try guide:** `manual` runs only when explicitly requested; `when-user-facing` generates guide when change affects UI/UX; `always` generates one for every work item.
|
|
56
56
|
|
|
57
|
+
### Independent review execution
|
|
58
|
+
|
|
59
|
+
After final Verify and required Check pass, set the active spec to `verified`.
|
|
60
|
+
If a selected or previously initiated independent review does not already have a
|
|
61
|
+
current passing receipt:
|
|
62
|
+
|
|
63
|
+
1. Use an existing current pending request and its immutable target when one is
|
|
64
|
+
present. Otherwise show the exact product, test, and verified-spec candidate
|
|
65
|
+
for the immutable review checkpoint. Obtain explicit commit approval under
|
|
66
|
+
the normal Git rules, then create or use that clean checkpoint. Configuration,
|
|
67
|
+
including `review.independentExecution: "automatic"`, never grants permission
|
|
68
|
+
to commit. A pending request without `Requested execution` is legacy and
|
|
69
|
+
manual-only; never add execution fields or run a subagent against it.
|
|
70
|
+
2. Prepare Phase A of `/audit independent current` when no current request
|
|
71
|
+
exists. Record `Requested execution` from `review.independentExecution`.
|
|
72
|
+
3. For requested `automatic`, start the generic isolated current-runtime child
|
|
73
|
+
from the installed project-local Audit skill, wait, and validate the normal
|
|
74
|
+
receipt. Freeze parent product, test, spec, and config changes while it runs.
|
|
75
|
+
4. For requested `manual`, or when automatic isolation, identity, model, or
|
|
76
|
+
completion is unavailable, preserve the pending request, set activity to
|
|
77
|
+
`ready`, and stop with the manual fresh-session handoff.
|
|
78
|
+
5. Continue Complete only with a current passing receipt whose requested and
|
|
79
|
+
actual execution fields match the allowed review contract. Never self-review
|
|
80
|
+
or silently skip the gate.
|
|
81
|
+
|
|
57
82
|
## Step 0 - final safety pass
|
|
58
83
|
|
|
59
84
|
Before logging or committing, run a short safety pass and report blockers only:
|
|
@@ -82,13 +107,13 @@ Check whether the spec is a feature, fix, or rollback. A fix is marked
|
|
|
82
107
|
`Type: Fix` and has no build-plan number. A rollback is marked `Type: Rollback`
|
|
83
108
|
and records the exact target feature, archive, commit, and parent.
|
|
84
109
|
|
|
85
|
-
- **Feature** - archive `devflow/context/{xxx-slug}/spec.md` to `devflow/history/features/{xxx-slug}.md`, check it off in `devflow/build-plan.md` (and its parent item once all sub-items are checked), and record an entry into `devflow/history/HISTORY.md`.
|
|
110
|
+
- **Feature** - archive `devflow/context/{xxx-slug}/spec.md` to `devflow/history/features/{xxx-slug}.md`, check it off in `devflow/build-plan.md` (and its parent item once all sub-items are checked), recompute the overview fingerprint using `/overview`'s checkbox-normalized hash contract and update `devflow:source-hash` in `devflow/context/project-overview.md`, and record an entry into `devflow/history/HISTORY.md`.
|
|
86
111
|
- **Fix** - archive `devflow/context/{xxx-slug}/spec.md` to `devflow/history/fixes/{xxx-slug}.md`, and record an entry into `devflow/history/HISTORY.md`.
|
|
87
112
|
- **Rollback** - archive `devflow/context/{xxx-slug}/spec.md` to `devflow/history/rollbacks/YYYY-MM-DD-{xxx-slug}.md`, preserving the original completed feature archive. Uncheck the target item in `devflow/build-plan.md` and record in `devflow/history/HISTORY.md`.
|
|
88
113
|
|
|
89
114
|
**Archive resolved findings & review receipts.**
|
|
90
115
|
- If `devflow/context/{xxx-slug}/findings.md` holds findings, append `## Findings` to the archive file with resolved entries.
|
|
91
|
-
- If `devflow/context/{xxx-slug}/review.md` holds a completed passing receipt, append `## Independent
|
|
116
|
+
- If `devflow/context/{xxx-slug}/review.md` holds a completed passing receipt, append a `## Independent review` section to the archive file with the receipt fields, commands, safe evidence references, findings, and remaining risk from `review.md`. Preserve the full target and base SHAs, spec hash, base ref, builder adapter and model, requested reviewer, model, and execution, actual reviewer adapter, model, and execution, Check result, fresh-context declaration, and review time. Do not archive a stale, pending, changes-requested, or malformed record.
|
|
92
117
|
|
|
93
118
|
**Clean up run workspace.** Delete the task directory `devflow/context/{xxx-slug}/`. In Pure Multi-Run architecture, completed work leaves zero residual stubs in `devflow/context/`.
|
|
94
119
|
|
|
@@ -24,6 +24,7 @@ Where this sits in the workflow:
|
|
|
24
24
|
### ขอบเขตสิทธิ์ที่ได้รับอนุญาตเฉพาะในเครื่อง Local:
|
|
25
25
|
- สร้างและสลับ Feature Branch ในเครื่อง Local
|
|
26
26
|
- บันทึก Checkpoint Commits ย่อยบน Branch
|
|
27
|
+
- สร้าง required immutable independent-review checkpoints
|
|
27
28
|
- บันทึก Feature Commit สุดท้าย
|
|
28
29
|
- Squash-merge ฟีเจอร์ที่เสร็จสมบูรณ์ลง Default Branch ของ Local
|
|
29
30
|
- ลบ Feature Branch เฉพาะใน Local หลังรวมโค้ดสำเร็จ
|
|
@@ -93,10 +94,14 @@ Where this sits in the workflow:
|
|
|
93
94
|
- **Try Guide**: `manual` (ข้ามอัตโนมัติ), `when-user-facing` (สร้าง Try Guide เมื่อเป็น UI/CLI), `always` (สร้างทุกฟีเจอร์)
|
|
94
95
|
|
|
95
96
|
ทุก product/spec edit ทำให้ receipt เดิมหมดอายุ เมื่อ Independent Review gate
|
|
96
|
-
ทำงาน ให้รัน Verify
|
|
97
|
-
`
|
|
98
|
-
|
|
99
|
-
Mode
|
|
97
|
+
ทำงาน ให้รัน Verify และสร้าง immutable checkpoint (ได้รับอนุญาตภายใต้ Continuous Mode authority แม้ checkpointCommits จะ disabled) จากนั้นปฏิบัติตาม `/audit independent current`
|
|
98
|
+
หาก `review.independentExecution` เป็น `automatic` ให้ spawn และรอ isolated reviewer child พร้อมตรวจสอบ receipt ให้ผ่านก่อนดำเนินการต่อ
|
|
99
|
+
หากเป็น `manual` หรือ runtime ไม่สามารถพิสูจน์ isolation, identity, model ได้ ให้ตั้งสถานะเป็น `ready` และหยุดด้วย manual handoff
|
|
100
|
+
Continuous Mode จะไม่ทำการ audit งานของตัวเองโดยเด็ดขาด
|
|
101
|
+
|
|
102
|
+
คำขอจะบันทึก `Requested execution` และ receipt จะบันทึก `Actual execution`
|
|
103
|
+
การจับคู่ของ execution และ reviewer context จะต้องถูกต้องตามสัญญา review
|
|
104
|
+
หากเป็น legacy request ที่ไม่มี `Requested execution` ให้ถือว่าเป็น legacy manual-only ห้ามเติมฟิลด์หรือรัน subagent กับมัน
|
|
100
105
|
|
|
101
106
|
สำหรับฟีเจอร์ browser-facing ให้รัน `npm run test:browser` เมื่อมี
|
|
102
107
|
`test:browser` script และเก็บ interactive evidence ผ่าน `browseros-neo` เมื่อ
|
|
@@ -58,10 +58,14 @@ Gather these, then summarize. Do not dump file contents.
|
|
|
58
58
|
- Read `devflow/config.json` when present. Missing is healthy and means
|
|
59
59
|
built-in defaults. When present, require a regular non-symbolic-link JSON
|
|
60
60
|
file with `schemaVersion: 1`. Reject unknown keys and unsupported values.
|
|
61
|
-
Report the effective workflow, git, verification,
|
|
62
|
-
Continuous quality-gate, and Continuous Mode settings. Confirm each audit,
|
|
63
|
-
independent-review, check, and try-guide gate uses its supported values
|
|
64
|
-
defaults to `
|
|
61
|
+
Report the effective workflow, git, verification, review execution, regular
|
|
62
|
+
quality-gate, Continuous quality-gate, and Continuous Mode settings. Confirm each audit,
|
|
63
|
+
independent-review, check, and try-guide gate uses its supported values.
|
|
64
|
+
Independent review defaults to `when-sensitive` for both workflows; audit,
|
|
65
|
+
check, and try guide default to `manual`. Confirm
|
|
66
|
+
`review.independentExecution` is `manual` or `automatic` and defaults to
|
|
67
|
+
`automatic`. Do not claim automatic capability is available from installed
|
|
68
|
+
project files alone.
|
|
65
69
|
An invalid config is a setup blocker for mutating workflow skills because
|
|
66
70
|
they must not guess which policy to follow.
|
|
67
71
|
2. **Tool adapters**
|
|
@@ -127,7 +127,15 @@ build plan starts high-level.
|
|
|
127
127
|
## Step 3 - write the spec
|
|
128
128
|
|
|
129
129
|
For the one (sub-)feature being built now, allocate sequential ID (`xxx-slug`) and create a dedicated workspace at `devflow/context/{xxx-slug}/`. Write the full living spec to
|
|
130
|
-
`devflow/context/{xxx-slug}/spec.md`, following `reference/feature-spec-template.md`. Also initialize `stage.md` and `findings.md` in that folder.
|
|
130
|
+
`devflow/context/{xxx-slug}/spec.md`, following `reference/feature-spec-template.md`. Also initialize `stage.md` and `findings.md` in that folder. The first heading and build-plan identity must use this canonical form:
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
# Feature: <title>
|
|
134
|
+
|
|
135
|
+
**From build-plan:** feature <id>
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Fill every section:
|
|
131
139
|
- Goal, Problem Statement, and In/Out of scope
|
|
132
140
|
- Acceptance Criteria (AC-1, AC-2, ...)
|
|
133
141
|
- Small build steps as atomic 2-5 min checklist items (`- [ ]`, supporting `[TDD-Red]`, `[TDD-Green]`, `[TDD-Refactor]` triplets for functional logic)
|
|
@@ -32,7 +32,8 @@ or with a description, for example `/fix F-03`.
|
|
|
32
32
|
|
|
33
33
|
Pull context from `devflow/context/project-overview.md` and `devflow/context/coding-standards.md`,
|
|
34
34
|
calculate the next sequential running ID (e.g. `059-fix-slug`),
|
|
35
|
-
then write a short spec to `devflow/context/{xxx-slug}/spec.md`. Also initialize `stage.md` and `findings.md` in that folder.
|
|
35
|
+
then write a short spec to `devflow/context/{xxx-slug}/spec.md`. Also initialize `stage.md` and `findings.md` in that folder. Its first heading must be exactly
|
|
36
|
+
`# Fix: <title>`, and it must retain the `**Type:** Fix` contract below. Keep it lighter than a feature spec:
|
|
36
37
|
|
|
37
38
|
- **Title** - the bug or change in a few words.
|
|
38
39
|
- **Type:** Fix (so `/complete` logs it to `devflow/history/fixes/`, not `devflow/history/features/`).
|
|
@@ -153,6 +153,29 @@ Never batch the whole thing into one diff. If a step's diff is too big to read,
|
|
|
153
153
|
split it. The documented `Verify` command, or the fallback build and tests, must
|
|
154
154
|
pass before any commit.
|
|
155
155
|
|
|
156
|
+
After final Verify and required Check pass, set the active spec to `verified`
|
|
157
|
+
with every completed box checked. Then resolve independent review before the
|
|
158
|
+
final packet:
|
|
159
|
+
|
|
160
|
+
1. If `qualityGates.regular.independentReview` does not select review and no
|
|
161
|
+
request already exists, proceed directly to the final review packet.
|
|
162
|
+
2. Otherwise show the exact product, test, and verified-spec candidate for the
|
|
163
|
+
immutable review checkpoint. Obtain explicit commit approval when the exact
|
|
164
|
+
checkpoint does not already exist, then create or use it. Configuration,
|
|
165
|
+
including `review.independentExecution: "automatic"`, never grants commit
|
|
166
|
+
permission, even when normal checkpoint commits are disabled.
|
|
167
|
+
3. Follow `/audit independent current` to prepare or reuse the request and record
|
|
168
|
+
`Requested execution`. For requested `automatic`, start and wait for the
|
|
169
|
+
generic isolated current-runtime child instructed from the project-local
|
|
170
|
+
Audit skill, then validate the receipt. For requested `manual`, or when
|
|
171
|
+
automatic capability is unavailable, preserve the request and stop with the
|
|
172
|
+
manual fresh-session handoff. Treat an existing request without `Requested
|
|
173
|
+
execution` as legacy manual-only: never add execution fields or run a
|
|
174
|
+
subagent against it.
|
|
175
|
+
4. Continue to the final packet only with a current passing receipt whose
|
|
176
|
+
requested execution, actual execution, and reviewer context form an allowed
|
|
177
|
+
pairing. Never self-review or silently skip a selected gate.
|
|
178
|
+
|
|
156
179
|
## Step 3 - hand off to /complete
|
|
157
180
|
|
|
158
181
|
Before handing off, check `devflow/context/{xxx-slug}/findings.md`. A P0 or P1 finding
|
|
@@ -182,9 +205,30 @@ When every step is built and `Verify`, or the fallback build and tests, passes
|
|
|
182
205
|
- known risks, skipped checks, or follow-up notes
|
|
183
206
|
- next action, usually `/complete`
|
|
184
207
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
208
|
+
After the final packet, always offer these choices:
|
|
209
|
+
|
|
210
|
+
1. Walk me through the implementation.
|
|
211
|
+
2. Request changes.
|
|
212
|
+
3. Continue to the exact next workflow command.
|
|
213
|
+
|
|
214
|
+
The final walkthrough is available with either `workflow.stepReview` value and
|
|
215
|
+
regardless of `workflow.checkpointCommits`. It is a read-only code tour, not the
|
|
216
|
+
manual product-review path produced by `/try`, and it is not verification.
|
|
217
|
+
|
|
218
|
+
When the user chooses the walkthrough, begin with a short map of the completed
|
|
219
|
+
feature, then follow the spec's build steps. For each step, explain its purpose,
|
|
220
|
+
key files and symbols, important data or control flow, and non-obvious decisions.
|
|
221
|
+
Use file and line links when the client supports them. Do not narrate every line
|
|
222
|
+
or reload broad project context. End by offering a focused deep dive into one
|
|
223
|
+
named area. If the feature spans too many distinct areas for one useful pass,
|
|
224
|
+
name the sections first and let the user choose where to begin. Remain read-only
|
|
225
|
+
unless the user separately requests changes.
|
|
226
|
+
|
|
227
|
+
Never create an ordinary step, product, or work-level commit from this skill.
|
|
228
|
+
The sole exception is exactly one immutable independent-review checkpoint after
|
|
229
|
+
showing its exact candidate and receiving current explicit commit approval.
|
|
230
|
+
Configuration never supplies that approval. Never merge, push, deploy, publish,
|
|
231
|
+
or start unrelated work from this skill.
|
|
188
232
|
|
|
189
233
|
## Rules
|
|
190
234
|
|
|
@@ -164,7 +164,14 @@ than pretending a pattern exists.
|
|
|
164
164
|
## Step 4 - check AI interaction rules and workflow configuration
|
|
165
165
|
|
|
166
166
|
`devflow/config.json` is the user-owned workflow policy for this project. Keep
|
|
167
|
-
it lean and machine-readable:
|
|
167
|
+
it lean and machine-readable: edit only supported keys, such as branch prefixes,
|
|
168
|
+
logic-test strictness, regular or Continuous quality gates, review execution, or
|
|
169
|
+
Continuous Mode limits. Independent review defaults to `when-sensitive` for
|
|
170
|
+
regular and Continuous work, and its execution defaults to `automatic`. Audit,
|
|
171
|
+
check, and try guide default to `manual`. Preserve these defaults unless the user
|
|
172
|
+
chooses different policies. A `manual` independent-review gate disables
|
|
173
|
+
automatic selection for that workflow without disabling explicit independent
|
|
174
|
+
audits. Never put stack choices, conventions, custom
|
|
168
175
|
commands, product requirements, communication prose, secrets, or permission for
|
|
169
176
|
commits, merges, pushes, deployments, publication, destructive actions, failed
|
|
170
177
|
checks, or finding waivers into config.
|
|
@@ -172,12 +179,12 @@ checks, or finding waivers into config.
|
|
|
172
179
|
Unless the user already chose these values, ask one short **Implementation
|
|
173
180
|
style** question using the current tool's selectable prompt when available:
|
|
174
181
|
|
|
175
|
-
1. **Efficient (Recommended)** - one feature-level review packet
|
|
176
|
-
checkpoint prompts. Write
|
|
177
|
-
`workflow.checkpointCommits: "disabled"`.
|
|
182
|
+
1. **Efficient (Recommended)** - one feature-level review packet, a final code
|
|
183
|
+
walkthrough option, and no step checkpoint prompts. Write
|
|
184
|
+
`workflow.stepReview: "feature"` and `workflow.checkpointCommits: "disabled"`.
|
|
178
185
|
2. **Guided** - pause for approval after every step and offer optional checkpoint
|
|
179
|
-
commits
|
|
180
|
-
`workflow.checkpointCommits: "enabled"`.
|
|
186
|
+
commits, followed by the same final code walkthrough option. Write
|
|
187
|
+
`workflow.stepReview: "every"` and `workflow.checkpointCommits: "enabled"`.
|
|
181
188
|
3. **Custom** - ask separately when review should happen and whether checkpoint
|
|
182
189
|
commits should be offered, then write the selected low-level values.
|
|
183
190
|
|
|
@@ -185,6 +192,8 @@ These are onboarding presets, not a third configuration field.
|
|
|
185
192
|
Never write an `implementationStyle` key. Show the current two values before asking, preserve
|
|
186
193
|
them if the user chooses not to change them, and explain that either value can be
|
|
187
194
|
edited later. A later `/implement` run reads the current configuration.
|
|
195
|
+
The final code walkthrough is not a configuration setting and remains available
|
|
196
|
+
with every implementation style.
|
|
188
197
|
|
|
189
198
|
Read `devflow/context/ai-interaction.md` and update only obvious mismatches.
|
|
190
199
|
Usually the default review loop should stay intact. Flag preferences for the user
|
|
@@ -197,6 +206,13 @@ instead of guessing, such as:
|
|
|
197
206
|
changing only `stepReview` restores the approval pauses, not checkpoint prompts
|
|
198
207
|
- whether branches should use a different naming pattern
|
|
199
208
|
- whether `/check` should require browser evidence for UI work
|
|
209
|
+
- whether audit, independent review, check, or try guides should stay manual, run only for their
|
|
210
|
+
documented conditional case, or run for every regular or Continuous work item
|
|
211
|
+
- whether a selected independent review should use the default automatic
|
|
212
|
+
isolated reviewer or `review.independentExecution: "manual"` for a
|
|
213
|
+
fresh-session handoff. Explain that automatic execution uses a fresh isolated
|
|
214
|
+
reviewer only when the active adapter can expose its exact identity and model,
|
|
215
|
+
and otherwise stops with the manual handoff
|
|
200
216
|
|
|
201
217
|
If no changes are needed, say so.
|
|
202
218
|
|
|
@@ -250,16 +266,51 @@ DevFlow visibility?
|
|
|
250
266
|
Keeps AGENTS.md public as the lightweight project agent guide.
|
|
251
267
|
```
|
|
252
268
|
|
|
253
|
-
Recommend option 1 by default.
|
|
269
|
+
Recommend option 1 by default.
|
|
270
|
+
- If option 1 (Commit) is chosen, ensure the project's `.gitignore` ignores transient run files and raw documents:
|
|
271
|
+
```gitignore
|
|
272
|
+
# DevFlow Transient Runtime Data, Research & Scratch Files
|
|
273
|
+
devflow/runs/*
|
|
274
|
+
!devflow/runs/.gitkeep
|
|
275
|
+
devflow/discoveries/*
|
|
276
|
+
!devflow/discoveries/.gitkeep
|
|
277
|
+
devflow/reports/*
|
|
278
|
+
!devflow/reports/.gitkeep
|
|
279
|
+
devflow/research/*
|
|
280
|
+
!devflow/research/.gitkeep
|
|
281
|
+
devflow/scratch/*
|
|
282
|
+
!devflow/scratch/.gitkeep
|
|
283
|
+
devflow/decisions/*
|
|
284
|
+
!devflow/decisions/.gitkeep
|
|
285
|
+
!devflow/decisions/README.md
|
|
286
|
+
devflow/inbox/*/raw/*
|
|
287
|
+
devflow/inbox/raw/*
|
|
288
|
+
devflow/analysis/*
|
|
289
|
+
!devflow/analysis/.gitkeep
|
|
290
|
+
devflow/tmp/*
|
|
291
|
+
devflow/temp/*
|
|
292
|
+
devflow/brainstorm/*
|
|
293
|
+
devflow/brainstorms/*
|
|
294
|
+
devflow/backups/*
|
|
295
|
+
devflow/.state/
|
|
296
|
+
devflow/.vendor/
|
|
297
|
+
.nexus/
|
|
298
|
+
prototypes/*
|
|
299
|
+
!prototypes/.gitkeep
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
If the user chooses option 2 (Local-only / Zero-Visibility):
|
|
254
303
|
|
|
255
304
|
- Add this block to `.gitignore`, preserving existing entries:
|
|
256
305
|
|
|
257
306
|
```gitignore
|
|
258
|
-
# DevFlow local workflow files
|
|
307
|
+
# DevFlow local workflow files (Zero-Visibility)
|
|
259
308
|
.agents/
|
|
260
309
|
.claude/
|
|
261
310
|
devflow/
|
|
262
311
|
CLAUDE.md
|
|
312
|
+
.nexus/
|
|
313
|
+
prototypes/
|
|
263
314
|
```
|
|
264
315
|
|
|
265
316
|
- Keep `AGENTS.md` tracked. It remains the lightweight public project guide for
|
|
@@ -273,10 +324,10 @@ Recommend option 1 by default. If the user chooses option 2:
|
|
|
273
324
|
- Explain that DevFlow state, specs, findings, and history will not travel
|
|
274
325
|
with the repo; another machine needs DevFlow reinstalled or restored
|
|
275
326
|
locally.
|
|
276
|
-
- If any of `.agents/`, `.claude/`, `devflow/`, or
|
|
277
|
-
`
|
|
327
|
+
- If any of `.agents/`, `.claude/`, `devflow/`, `CLAUDE.md`, `.nexus/`, or
|
|
328
|
+
`prototypes/` are already tracked, say `.gitignore` will not hide tracked files.
|
|
278
329
|
Ask before running
|
|
279
|
-
`git rm --cached -r .agents .claude devflow CLAUDE.md`, and
|
|
330
|
+
`git rm --cached -r .agents .claude devflow CLAUDE.md .nexus prototypes`, and
|
|
280
331
|
only run it if the user explicitly approves. Never delete the local files.
|
|
281
332
|
|
|
282
333
|
Then report which selected tools and adapter folders are needed:
|
|
@@ -63,6 +63,20 @@ The compiler writes:
|
|
|
63
63
|
|
|
64
64
|
The generated output follows `devflow/reference/project-overview-template.md`.
|
|
65
65
|
|
|
66
|
+
After the title, write a plan fingerprint in this exact form:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
<!-- devflow:source-hash <sha256> -->
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Before hashing, normalize only build-plan completion markers by replacing each
|
|
73
|
+
`- [x]` or `- [X]` marker with `- [ ]`, while preserving indentation and every
|
|
74
|
+
other byte. Compute `<sha256>` from the exact UTF-8 bytes of `project-plan.md`,
|
|
75
|
+
one zero byte, then the normalized UTF-8 bytes of `build-plan.md`. This lets
|
|
76
|
+
`/status` detect real plan changes after cloning, copying, or updating without
|
|
77
|
+
treating completed features as overview drift. Replace the previous marker every
|
|
78
|
+
time this skill regenerates the overview.
|
|
79
|
+
|
|
66
80
|
## Step 3 - output and report
|
|
67
81
|
|
|
68
82
|
After compilation:
|
|
@@ -116,7 +116,9 @@ remediation or explicitly plan the dependent rollbacks.
|
|
|
116
116
|
## Step 4 - write the rollback spec
|
|
117
117
|
|
|
118
118
|
Allocate sequential ID (`xxx-slug`) and create `devflow/context/{xxx-slug}/`. Write `devflow/context/{xxx-slug}/spec.md` using
|
|
119
|
-
`reference/rollback-spec-template.md`. Also initialize `stage.md` and `findings.md` in that folder.
|
|
119
|
+
`reference/rollback-spec-template.md`. Also initialize `stage.md` and `findings.md` in that folder. Its first heading must be exactly
|
|
120
|
+
`# Rollback: Feature <id> - <title>`, and it must retain the existing
|
|
121
|
+
`**Type:** Rollback` contract. Fill in:
|
|
120
122
|
|
|
121
123
|
- target feature and archive
|
|
122
124
|
- target commit and parent commit as full 40-character SHA values
|
|
@@ -35,9 +35,14 @@ Read these, distill them into a few lines, then stop. Do not dump file contents.
|
|
|
35
35
|
3. **Findings** - `devflow/context/{xxx-slug}/findings.md`. Count findings by status and
|
|
36
36
|
report open and fixed counts next to build-plan progress. Call out any P0 or
|
|
37
37
|
P1 still `open` or `fixed` by ID, since those block `/complete`.
|
|
38
|
-
4. **Overview freshness** - if `devflow/context/project-overview.md` is missing
|
|
39
|
-
or
|
|
40
|
-
|
|
38
|
+
4. **Overview freshness** - if `devflow/context/project-overview.md` is missing
|
|
39
|
+
or has no `devflow:source-hash`, mention that `/overview` should run before
|
|
40
|
+
new feature work. Otherwise use `/overview`'s hash contract: exact project-plan
|
|
41
|
+
bytes, one zero byte, then build-plan bytes with line-start `- [x]` and
|
|
42
|
+
`- [X]` markers normalized to `- [ ]`. Treat a matching legacy exact-byte hash
|
|
43
|
+
as current for backward compatibility. Recommend `/overview` only when the
|
|
44
|
+
recorded hash matches neither value. Do not use filesystem timestamps;
|
|
45
|
+
`/complete` legitimately makes `build-plan.md` newer when it checks off work.
|
|
41
46
|
5. **Git** - current branch, whether the working tree is clean or has uncommitted
|
|
42
47
|
changes, roughly how many files changed, last commit subject, and whether the
|
|
43
48
|
branch is ahead of its remote. If the directory is not a git repo, say so and
|
|
@@ -50,7 +55,12 @@ Read these, distill them into a few lines, then stop. Do not dump file contents.
|
|
|
50
55
|
A missing file simply means no activity has been recorded. Invalid activity
|
|
51
56
|
state is a warning, not a blocker for the underlying workflow; point to
|
|
52
57
|
`/doctor` to inspect and offer the approved generated-state reset.
|
|
53
|
-
8. **Onboarding check** -
|
|
58
|
+
8. **Onboarding & Configuration check** - Read `devflow/config.json` when present.
|
|
59
|
+
Report effective regular and Continuous quality gates, plus `review.independentExecution`.
|
|
60
|
+
Explain that independent review defaults to `when-sensitive` for both workflows and
|
|
61
|
+
execution defaults to `automatic`, which uses an isolated reviewer only when
|
|
62
|
+
the current adapter supports it. Audit, check, and try guide default to `manual`.
|
|
63
|
+
Before recommending `/overview`, check whether `AGENTS.md`
|
|
54
64
|
still contains the `<!-- devflow:onboarding-required -->` marker or standard template commands.
|
|
55
65
|
When it does, onboarding is incomplete and `/onboard` is the next action.
|
|
56
66
|
9. **Independent review and browser evidence** - read
|
|
@@ -144,16 +144,51 @@ DevFlow visibility?
|
|
|
144
144
|
Keeps AGENTS.md public as the lightweight project agent guide.
|
|
145
145
|
```
|
|
146
146
|
|
|
147
|
-
Recommend option 1 by default.
|
|
147
|
+
Recommend option 1 by default.
|
|
148
|
+
- If option 1 (Commit) is chosen, ensure the project's `.gitignore` ignores transient run files and raw documents:
|
|
149
|
+
```gitignore
|
|
150
|
+
# DevFlow Transient Runtime Data, Research & Scratch Files
|
|
151
|
+
devflow/runs/*
|
|
152
|
+
!devflow/runs/.gitkeep
|
|
153
|
+
devflow/discoveries/*
|
|
154
|
+
!devflow/discoveries/.gitkeep
|
|
155
|
+
devflow/reports/*
|
|
156
|
+
!devflow/reports/.gitkeep
|
|
157
|
+
devflow/research/*
|
|
158
|
+
!devflow/research/.gitkeep
|
|
159
|
+
devflow/scratch/*
|
|
160
|
+
!devflow/scratch/.gitkeep
|
|
161
|
+
devflow/decisions/*
|
|
162
|
+
!devflow/decisions/.gitkeep
|
|
163
|
+
!devflow/decisions/README.md
|
|
164
|
+
devflow/inbox/*/raw/*
|
|
165
|
+
devflow/inbox/raw/*
|
|
166
|
+
devflow/analysis/*
|
|
167
|
+
!devflow/analysis/.gitkeep
|
|
168
|
+
devflow/tmp/*
|
|
169
|
+
devflow/temp/*
|
|
170
|
+
devflow/brainstorm/*
|
|
171
|
+
devflow/brainstorms/*
|
|
172
|
+
devflow/backups/*
|
|
173
|
+
devflow/.state/
|
|
174
|
+
devflow/.vendor/
|
|
175
|
+
.nexus/
|
|
176
|
+
prototypes/*
|
|
177
|
+
!prototypes/.gitkeep
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
If the user chooses option 2 (Local-only / Zero-Visibility):
|
|
148
181
|
|
|
149
182
|
- Add this block to `.gitignore`, preserving existing entries:
|
|
150
183
|
|
|
151
184
|
```gitignore
|
|
152
|
-
# DevFlow local workflow files
|
|
185
|
+
# DevFlow local workflow files (Zero-Visibility)
|
|
153
186
|
.agents/
|
|
154
187
|
.claude/
|
|
155
188
|
devflow/
|
|
156
189
|
CLAUDE.md
|
|
190
|
+
.nexus/
|
|
191
|
+
prototypes/
|
|
157
192
|
```
|
|
158
193
|
|
|
159
194
|
- Keep `AGENTS.md` tracked. It remains the lightweight public project guide for
|
|
@@ -169,10 +204,10 @@ Recommend option 1 by default. If the user chooses option 2:
|
|
|
169
204
|
locally.
|
|
170
205
|
- Because adoption runs right after the DevFlow files were added to an
|
|
171
206
|
existing repository, they are more likely to already be staged or committed
|
|
172
|
-
than in a fresh install. If any of `.agents/`, `.claude/`, `devflow/`,
|
|
173
|
-
`CLAUDE.md` are already tracked, say `.gitignore` will not hide tracked files.
|
|
207
|
+
than in a fresh install. If any of `.agents/`, `.claude/`, `devflow/`,
|
|
208
|
+
`CLAUDE.md`, `.nexus/`, or `prototypes/` are already tracked, say `.gitignore` will not hide tracked files.
|
|
174
209
|
Ask before running
|
|
175
|
-
`git rm --cached -r .agents .claude devflow CLAUDE.md`, and
|
|
210
|
+
`git rm --cached -r .agents .claude devflow CLAUDE.md .nexus prototypes`, and
|
|
176
211
|
only run it if the user explicitly approves. Never delete the local files.
|
|
177
212
|
|
|
178
213
|
## Step 6 - review gate, then hand off
|