@nklisch/pi-agile-workflow 0.15.3 → 0.16.1
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +8 -0
- package/docs/ARCHITECTURE.md +97 -57
- package/docs/SPEC.md +53 -2
- package/docs/VISION.md +24 -8
- package/package.json +1 -1
- package/scripts/tests/convert-content-integrity.test.sh +4 -4
- package/scripts/tests/convert-review-weight.test.sh +61 -0
- package/scripts/work-view.sh +1 -1
- package/skills/autopilot/SKILL.md +103 -71
- package/skills/convert/SKILL.md +28 -8
- package/skills/epic-design/SKILL.md +19 -70
- package/skills/feature-design/SKILL.md +18 -57
- package/skills/fix/SKILL.md +52 -34
- package/skills/implement/SKILL.md +61 -50
- package/skills/implement-orchestrator/SKILL.md +274 -587
- package/skills/perf-design/SKILL.md +11 -12
- package/skills/principles/SKILL.md +120 -378
- package/skills/principles/references/advisory-review.md +69 -0
- package/skills/principles/references/code-design.md +107 -0
- package/skills/principles/references/models.md +42 -63
- package/skills/prose-author/SKILL.md +9 -4
- package/skills/refactor-design/SKILL.md +3 -4
- package/skills/review/SKILL.md +132 -46
- package/work-view/crates/cli/.work-view-version +1 -1
- package/work-view/dist/aarch64-apple-darwin/work-view +0 -0
- package/work-view/dist/aarch64-unknown-linux-musl/work-view +0 -0
- package/work-view/dist/x86_64-apple-darwin/work-view +0 -0
- package/work-view/dist/x86_64-unknown-linux-musl/work-view +0 -0
|
@@ -45,8 +45,9 @@ running inline, use the same categories in the final summary:
|
|
|
45
45
|
|
|
46
46
|
- **Complete** when no in-scope active item remains at `drafting`,
|
|
47
47
|
`implementing`, or `review`.
|
|
48
|
-
- **Blocked** when in-scope items remain but none are ready
|
|
49
|
-
blocker
|
|
48
|
+
- **Blocked** when in-scope items remain but none are ready or an item has a
|
|
49
|
+
genuine hard blocker that autonomous diagnosis and correction cannot resolve.
|
|
50
|
+
Review bounce count alone is never a blocker.
|
|
50
51
|
- **Interrupted** when the user stops the run. Finish the current safe
|
|
51
52
|
transition, commit if anything changed, summarize the remaining queue, and
|
|
52
53
|
let the harness/user decide whether to continue the goal later.
|
|
@@ -56,6 +57,9 @@ running inline, use the same categories in the final summary:
|
|
|
56
57
|
- `autopilot <epic-id>` - drain items under `<epic-id>` transitively via the
|
|
57
58
|
parent chain until the scoped queue is done or blocked.
|
|
58
59
|
- `autopilot --all` - drain all `.work/active/` items.
|
|
60
|
+
- `autopilot --review-weight <level> <scope>` - set review effort to `none`,
|
|
61
|
+
`light`, `standard`, `thorough`, or `maximum` for item reviews and final
|
|
62
|
+
completion review. An unambiguous natural-language equivalent is also valid.
|
|
59
63
|
- `autopilot <free-text>` - interpret as a scope directive, such as "finish the
|
|
60
64
|
dangling work", "wrap up phase 14", or "drain everything tagged refactor".
|
|
61
65
|
Log the interpretation in the run summary. When scope is ambiguous, prefer the
|
|
@@ -97,16 +101,23 @@ Build the scope from the argument:
|
|
|
97
101
|
Only active items are candidates. Backlog items must be promoted through
|
|
98
102
|
`scope` before autopilot can touch them.
|
|
99
103
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
Resolve worker capability and review weight at kickoff without a routine tier
|
|
105
|
+
question.
|
|
106
|
+
|
|
107
|
+
For worker capability, honor an explicit goal/argument/caller choice first, then
|
|
108
|
+
a stable `.work/CONVENTIONS.md` choice. Otherwise choose from scope and risk:
|
|
109
|
+
bounded familiar work can use baseline capability; cross-cutting, contract, or
|
|
110
|
+
uncertain work warrants raised capability; architectural, security-critical, or
|
|
111
|
+
high-consequence work warrants the highest available capability. This is
|
|
112
|
+
judgment, not a fixed item-kind mapping. Record the effective choice and reason
|
|
113
|
+
in the run summary and pass it in the Phase 4 caller note.
|
|
114
|
+
|
|
115
|
+
For `review_weight`, validate the five-level scale and resolve in this order:
|
|
116
|
+
explicit `--review-weight` or unambiguous natural-language selector,
|
|
117
|
+
`.work/CONVENTIONS.md`, then the default `standard`. Explicit caller selection
|
|
118
|
+
always wins. Record the effective weight and source in the run summary and pass
|
|
119
|
+
it in every Phase 4 caller note so production and review skills use one value
|
|
120
|
+
through parent roll-up and final completion review.
|
|
110
121
|
|
|
111
122
|
### Phase 2: Build The Queue
|
|
112
123
|
|
|
@@ -147,18 +158,19 @@ this caller note in every delegated prompt:
|
|
|
147
158
|
|
|
148
159
|
> Delegated by an active agile-workflow autopilot goal for `<scope>`. Resolve
|
|
149
160
|
> ambiguities with judgment, log rationale in the item body, and do not ask
|
|
150
|
-
> strategic questions unless a hard halt condition applies.
|
|
151
|
-
> for this run: `<
|
|
152
|
-
>
|
|
153
|
-
>
|
|
154
|
-
>
|
|
155
|
-
>
|
|
156
|
-
>
|
|
157
|
-
>
|
|
158
|
-
>
|
|
159
|
-
>
|
|
160
|
-
>
|
|
161
|
-
>
|
|
161
|
+
> strategic questions unless a hard halt condition applies. Worker capability
|
|
162
|
+
> for this run: `<effective capability>` — selected because `<risk/scope reason>`;
|
|
163
|
+
> use it for dispatch and do not re-ask. Review weight for this run:
|
|
164
|
+
> `<none|light|standard|thorough|maximum>` (source: `<explicit|project|default>`);
|
|
165
|
+
> pass it unchanged to review, including ancestor roll-up. Apply the risk-driven
|
|
166
|
+
> advisory policy from `principles/SKILL.md` Part IV in direct and autopilot
|
|
167
|
+
> modes: use independent review only when the risk and review weight warrant it,
|
|
168
|
+
> and label review cross-model only when a different model class is actually
|
|
169
|
+
> selected. Peer failures during design are non-blocking. Preserve
|
|
170
|
+
> complementary→adversarial order when both phases run. For reviewer posture and
|
|
171
|
+
> host-native roles, load `principles/references/subagents.md`; for capability
|
|
172
|
+
> mapping, load `principles/references/models.md`. A top-tier reasoning peer may
|
|
173
|
+
> take 10 to 30 minutes; quiet output after a few minutes is not a hang.
|
|
162
174
|
|
|
163
175
|
Routing:
|
|
164
176
|
|
|
@@ -185,40 +197,50 @@ Routing:
|
|
|
185
197
|
Requires the `agentic-research` plugin; without it, treat as a plain implementing item ->
|
|
186
198
|
`implement-orchestrator`, mirroring the drafting row's degrade.)
|
|
187
199
|
- `stage: implementing`, non-epic (and NOT `tags: [prose]` or `[research]`) -> `implement-orchestrator <scope>`
|
|
188
|
-
- `stage: review` -> `review
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
200
|
+
- `stage: review` -> `review --review-weight <effective weight> <id>`. Review
|
|
201
|
+
selects effort and lane from weight + risk + evidence + kind-as-heuristic:
|
|
202
|
+
low-risk stories can close on green verification, while features, epics, and
|
|
203
|
+
risk-escalated stories receive the fresh-context coverage permitted by the
|
|
204
|
+
weight. The review skill also rolls approved children through eligible
|
|
205
|
+
ancestors, but never skips an ancestor's own review.
|
|
206
|
+
|
|
207
|
+
Production skills now continue through review to `done` by default (unless an
|
|
208
|
+
explicit stop-at-review override applies), so autopilot may return to a queue
|
|
209
|
+
where the delegated item and eligible ancestors are already terminal. This is
|
|
210
|
+
expected, not a mandatory user handoff. The delegated skill owns its internal
|
|
211
|
+
workflow and transitions; after it returns, rebuild the queue from disk rather
|
|
212
|
+
than relying on cached state.
|
|
199
213
|
|
|
200
214
|
If a delegated skill reports a hard blocker without a stage transition, append
|
|
201
215
|
a `## Blocker` section to the item body, commit that note, and continue with
|
|
202
216
|
other ready items. The final goal outcome is blocked if unresolved blockers
|
|
203
217
|
remain in scope.
|
|
204
218
|
|
|
205
|
-
### Phase 5: Review
|
|
219
|
+
### Phase 5: Review Convergence Loop
|
|
206
220
|
|
|
207
|
-
Track per-item
|
|
221
|
+
A review bounce is corrective work, not a human handoff. Track per-item bounces
|
|
222
|
+
only as diagnostic history:
|
|
208
223
|
|
|
209
224
|
```text
|
|
210
225
|
bounces[<item-id>] = times this item has gone implementing -> review -> implementing
|
|
211
226
|
```
|
|
212
227
|
|
|
213
|
-
|
|
228
|
+
After every bounce:
|
|
214
229
|
|
|
215
|
-
1.
|
|
216
|
-
2.
|
|
217
|
-
3.
|
|
218
|
-
|
|
230
|
+
1. Confirm the review left concrete, durable findings in the item body.
|
|
231
|
+
2. Rebuild the queue so the item naturally re-enters implementation.
|
|
232
|
+
3. Implement the findings, run the relevant verification, and send the item
|
|
233
|
+
through review again.
|
|
234
|
+
4. Continue until review approves the item or autonomous work reaches a genuine
|
|
235
|
+
hard blocker under `principles/SKILL.md` Part III.
|
|
219
236
|
|
|
220
|
-
|
|
221
|
-
|
|
237
|
+
There is no fixed bounce limit. If the same substantive finding survives more
|
|
238
|
+
than one correction pass, treat recurrence as evidence that the attempted fix or
|
|
239
|
+
design model is wrong: re-read the item and foundation docs, diagnose the root
|
|
240
|
+
cause, revise the item design or implementation notes when needed, and use a
|
|
241
|
+
fresh implementation or review context when that would add independent
|
|
242
|
+
judgment. Do not park the item at `review`, label it stuck, or require human
|
|
243
|
+
intervention solely because a counter reached two (or any other number).
|
|
222
244
|
|
|
223
245
|
### Phase 6: Refactor Cadence (`--all` Only)
|
|
224
246
|
|
|
@@ -249,10 +271,11 @@ Do not stop because of elapsed time, context size, or "long run" concerns. The
|
|
|
249
271
|
harness owns continuation. Your job is to keep applying the queue policy until a
|
|
250
272
|
real stop rule fires.
|
|
251
273
|
|
|
252
|
-
### Phase 8: Final
|
|
274
|
+
### Phase 8: Final Completion Review Loop
|
|
253
275
|
|
|
254
276
|
This is the last step before reporting `complete`. It runs in addition to any
|
|
255
|
-
design-time
|
|
277
|
+
design-time advisory passes from delegated skills and is calibrated by the same
|
|
278
|
+
effective `review_weight`; the phase itself is never skipped.
|
|
256
279
|
|
|
257
280
|
When the scoped queue appears drained:
|
|
258
281
|
|
|
@@ -263,25 +286,30 @@ When the scoped queue appears drained:
|
|
|
263
286
|
- commits associated with advanced items
|
|
264
287
|
- notable design decisions, implementation deviations, blockers resolved,
|
|
265
288
|
and verification results reported by delegated skills
|
|
266
|
-
2.
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
289
|
+
2. Calibrate the completion review from the weight without turning it into a
|
|
290
|
+
rigid dispatch recipe:
|
|
291
|
+
- `none`: run no independent reviewer; administratively verify the completion
|
|
292
|
+
bundle has green verification and acceptance evidence for every in-scope
|
|
293
|
+
item, plus internally consistent terminal substrate state.
|
|
294
|
+
- `light`: use at most one focused fresh-context pass over the bundle.
|
|
295
|
+
- `standard`: use balanced risk-based fresh-context review.
|
|
296
|
+
- `thorough`: increase complementary and adversarial fresh-context coverage.
|
|
297
|
+
- `maximum`: seek multi-model, multi-pass complementary → adversarial review.
|
|
298
|
+
Ask for bugs, missed acceptance criteria, unreviewed risks, foundation-doc
|
|
299
|
+
drift, and substrate-state inconsistencies that would make "complete"
|
|
300
|
+
premature. Exact reviewer count and pass depth remain model judgment within
|
|
301
|
+
the weight's ceiling/intent.
|
|
302
|
+
3. When independent review runs, use a different-class peer when reachable;
|
|
303
|
+
otherwise spawn a generic same-harness fresh-context reviewer from
|
|
304
|
+
`principles/references/subagents.md` with the strongest appropriate
|
|
305
|
+
capability. Label it cross-model only if the selected model class differs
|
|
306
|
+
from the host. A top-tier reviewer may take 10 to 30 minutes; quiet output
|
|
307
|
+
after a few minutes is not a hang.
|
|
308
|
+
4. If the effective weight requires fresh-context review and no such path is
|
|
309
|
+
available or the selected path fails, do not report completion; mark the run
|
|
310
|
+
blocked on final review and include the reason. `none` requires complete
|
|
311
|
+
administrative evidence instead of a fresh reviewer; missing evidence blocks
|
|
312
|
+
rather than becoming an invented pass.
|
|
285
313
|
5. For every substantive accepted finding:
|
|
286
314
|
- Small and clearly safe fix: fix it immediately, run verification, commit,
|
|
287
315
|
and rebuild the queue.
|
|
@@ -308,20 +336,24 @@ Narrate briefly as items advance. Final summary:
|
|
|
308
336
|
- Goal scope and interpretation
|
|
309
337
|
- Items advanced to done
|
|
310
338
|
- Items reviewed and approved
|
|
311
|
-
- Items reviewed and bounced
|
|
312
|
-
-
|
|
339
|
+
- Items reviewed and bounced, including recurring findings and how they converged
|
|
340
|
+
- Genuinely blocked item ids and blocker reasons
|
|
313
341
|
- Refactor cadences run (`--all` only)
|
|
314
342
|
- Implement-orchestrator bundle summary, if reported
|
|
315
|
-
-
|
|
316
|
-
|
|
343
|
+
- Effective worker capability and selection rationale
|
|
344
|
+
- Effective review weight and source
|
|
345
|
+
- Final completion-review status: administrative, cross-model, same-harness
|
|
346
|
+
fresh-context, or failed; include accepted findings fixed/filed and rejected
|
|
347
|
+
findings summary
|
|
317
348
|
- Goal outcome: complete, blocked, or interrupted
|
|
318
349
|
|
|
319
350
|
## Guardrails
|
|
320
351
|
|
|
321
352
|
- Never use structured question tool while an autopilot goal is actively driving the
|
|
322
353
|
delegated work. Resolve with judgment and log rationale.
|
|
323
|
-
- Do not report `complete` until Phase 8 has run successfully
|
|
324
|
-
|
|
354
|
+
- Do not report `complete` until Phase 8 has run successfully at the effective
|
|
355
|
+
review weight and all accepted findings have been fixed or filed back into the
|
|
356
|
+
queue.
|
|
325
357
|
- Commit after every item state change or blocker note.
|
|
326
358
|
- Do not push, force-push, or release; the user controls publication.
|
|
327
359
|
- Do not touch `.work/backlog/` except to report that backlog items are out of
|
package/skills/convert/SKILL.md
CHANGED
|
@@ -447,6 +447,9 @@ Run an interactive interview via structured question tool. Six questions, in ord
|
|
|
447
447
|
leak to future agents. Offer `retain-bodies` only for projects that deliberately keep full terminal
|
|
448
448
|
bodies on disk (same `archived_atop`/late-binding semantics, bodies just not pruned).
|
|
449
449
|
|
|
450
|
+
Review weight is deliberately not another interview question. Bootstrap writes the balanced default
|
|
451
|
+
in Phase 5; callers can change the project convention later or override it per invocation.
|
|
452
|
+
|
|
450
453
|
### Phase 4: Create substrate skeleton
|
|
451
454
|
|
|
452
455
|
```bash
|
|
@@ -467,11 +470,23 @@ environment, locate the plugin source via the active skill/plugin path or manife
|
|
|
467
470
|
|
|
468
471
|
### Phase 5: Write CONVENTIONS.md
|
|
469
472
|
|
|
470
|
-
Write `.work/CONVENTIONS.md` from the interview answers, following the format in SPEC.md.
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
473
|
+
Write `.work/CONVENTIONS.md` from the interview answers, following the format in SPEC.md. Also add
|
|
474
|
+
this non-interactive project default:
|
|
475
|
+
|
|
476
|
+
```markdown
|
|
477
|
+
## Review weight
|
|
478
|
+
review_weight: standard
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
Allowed values are `none | light | standard | thorough | maximum`. The setting is optional: when it
|
|
482
|
+
is absent, review and autopilot resolve it to `standard`. Keep the level semantics and selection
|
|
483
|
+
policy in `principles/SKILL.md` Part IV and `review/SKILL.md`; do not duplicate their review matrix or
|
|
484
|
+
model guidance here.
|
|
485
|
+
|
|
486
|
+
The `## Terminal-tier retention` section is **value-only** — write the bare
|
|
487
|
+
`delete-refs`/`retain-bodies` value the user chose, not the merged prose (the prose lives in SPEC.md,
|
|
488
|
+
never duplicated per project). This bare-value form is exactly what a later sync classifies as
|
|
489
|
+
`match`, so a freshly bootstrapped repo never self-reports terminal-retention drift.
|
|
475
490
|
|
|
476
491
|
### Phase 6: Write the canonical AGENTS.md section
|
|
477
492
|
|
|
@@ -1047,6 +1062,10 @@ path list), plus deeper checks:
|
|
|
1047
1062
|
- `.claude/rules/patterns.md` state (legacy content vs AGENTS shim)
|
|
1048
1063
|
- `.work/CONVENTIONS.md` load-bearing tag entries (see below). The rest of
|
|
1049
1064
|
CONVENTIONS is user-owned and untouched.
|
|
1065
|
+
- `.work/CONVENTIONS.md` `review_weight` — preserve any existing value unchanged; review validates
|
|
1066
|
+
the five-value boundary when it consumes the setting. Absence is also valid and resolves to
|
|
1067
|
+
`standard`, so sync neither inserts the default into older projects nor asks a migration question.
|
|
1068
|
+
The allowed values and canonical policy are in Phase 5.
|
|
1050
1069
|
- `.work/CONVENTIONS.md` **Terminal-tier retention** state (the merged convention — see
|
|
1051
1070
|
"Terminal-tier retention drift" below). The per-project CONVENTIONS template is **value-only** (a
|
|
1052
1071
|
`## Terminal-tier retention` heading + a bare `delete-refs`/`retain-bodies` value); the merged
|
|
@@ -1337,9 +1356,10 @@ These are NEVER touched in sync mode:
|
|
|
1337
1356
|
user confirmation, are: (a) load-bearing tag entries (`refactor`, `perf`) when they match a known
|
|
1338
1357
|
prior plugin default verbatim, and (b) the `## Terminal-tier retention` convention when it is
|
|
1339
1358
|
`missing`/`partial`/a bespoke `## Done-item archival` overlap (add / reconcile / converge). A bare
|
|
1340
|
-
`delete-refs`/`retain-bodies` value is `match` and is left untouched.
|
|
1341
|
-
|
|
1342
|
-
|
|
1359
|
+
`delete-refs`/`retain-bodies` value is `match` and is left untouched. `review_weight` is optional
|
|
1360
|
+
and is never added, reset, or rewritten by sync; preserve an existing value byte-for-byte, while
|
|
1361
|
+
absence continues to mean `standard`. Everything else in CONVENTIONS — release mapping, project
|
|
1362
|
+
tags, slug conventions, gate config, any user prose — is untouched.
|
|
1343
1363
|
- Everything under `.work/active/`, `.work/backlog/`, `.work/releases/`,
|
|
1344
1364
|
`.work/archive/`
|
|
1345
1365
|
- User-authored rule references under `.agents/skills/refactor-conventions/`.
|
|
@@ -248,76 +248,25 @@ decomposition. Child briefs note "mockups pending — see parent epic" so
|
|
|
248
248
|
|
|
249
249
|
Skip this phase entirely if `ux-ui-design` is not installed.
|
|
250
250
|
|
|
251
|
-
### Phase 4.7:
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
codebase. Skip anything that's safely a downstream feature-design call
|
|
271
|
-
(function signatures, exact file paths, per-unit test approach).
|
|
272
|
-
|
|
273
|
-
Aim for the smallest set of questions that meaningfully resolve direction
|
|
274
|
-
— typically 2-5. Zero is fine if the epic body and foundation docs already
|
|
275
|
-
pin every directional choice.
|
|
276
|
-
|
|
277
|
-
**Cross-model advisory review under autopilot.** If this skill is running as a
|
|
278
|
-
delegation from active autopilot, the epic has large/risky architectural
|
|
279
|
-
decisions, and the body does not already contain useful `## Design decisions`
|
|
280
|
-
from a prior `--only-questions` pass, apply the cross-model advisory review
|
|
281
|
-
policy from `principles/SKILL.md` before resolving the questions yourself.
|
|
282
|
-
|
|
283
|
-
Use one focused `peer` pass only when a different model class is available.
|
|
284
|
-
Ask for missing questions, risks, ambiguous constraints, and alternatives for
|
|
285
|
-
this epic's decomposition — not for a final verdict. Do not run the multi-pass
|
|
286
|
-
`peer-review` loop during routine autopilot design. If peeragent is
|
|
287
|
-
unavailable, the peer would use the same model class, or the invocation fails,
|
|
288
|
-
continue with host judgment and note that the advisory pass was skipped.
|
|
289
|
-
If the peeragent target is Claude Opus, allow 10 to 30 minutes for a large
|
|
290
|
-
review; no return after a few minutes is not evidence that it has hung.
|
|
291
|
-
|
|
292
|
-
Summarize the useful output under `## Other agent review` in the epic body and
|
|
293
|
-
fold accepted questions/risks into the decisions you log. Do not paste the peer
|
|
294
|
-
transcript into the item.
|
|
295
|
-
|
|
296
|
-
If this skill is running **as a delegation from an active autopilot run or
|
|
297
|
-
harness goal**, resolve each question with judgment (prioritize: consistent
|
|
298
|
-
with foundation docs > simpler option > defers irreversible decisions) and log
|
|
299
|
-
under `## Design decisions` in the epic body:
|
|
300
|
-
|
|
301
|
-
```markdown
|
|
302
|
-
## Design decisions
|
|
303
|
-
- **<question>**: <choice> — <one-line rationale>
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
In every other invocation — including direct user invocation under harness
|
|
307
|
-
auto mode (`permissions.defaultMode: "auto"`) — ask the user via
|
|
308
|
-
`structured question tool` before locking in, then write the answers under `## Design
|
|
309
|
-
decisions` in the epic body. Harness-level "work without pausing" reminders
|
|
310
|
-
do **not** suppress these checkpoints. See `principles/SKILL.md` Part III
|
|
311
|
-
for the full caller-awareness rule.
|
|
312
|
-
|
|
313
|
-
The child feature briefs you write in Phase 6 should reference the relevant
|
|
314
|
-
design decisions so each feature's later design pass inherits the locked-in
|
|
315
|
-
direction.
|
|
316
|
-
|
|
317
|
-
The exception under autopilot: a 50/50 between two large irreversible
|
|
318
|
-
choices (e.g., SQL vs document store for this epic's persistence layer).
|
|
319
|
-
Append a `## Blocker` section and return without advancing — autopilot will
|
|
320
|
-
skip and surface the blocker.
|
|
251
|
+
### Phase 4.7: Resolve high-level design decisions
|
|
252
|
+
|
|
253
|
+
Identify the epic-specific product, architecture, scope, and decomposition
|
|
254
|
+
decisions that must align its child features. Ignore points settled by the epic,
|
|
255
|
+
foundation docs, code, or an existing `## Design decisions` section, and leave
|
|
256
|
+
function signatures, file paths, and unit-level tests to feature design. Zero
|
|
257
|
+
open decisions is valid.
|
|
258
|
+
|
|
259
|
+
Apply `principles/SKILL.md` Part III exactly: resolve routine, reversible points
|
|
260
|
+
with judgment and a logged rationale; reserve structured questions for product
|
|
261
|
+
direction, external contracts, and expensive hard-to-reverse choices. Apply
|
|
262
|
+
Part IV's risk-driven advisory policy in both direct and autopilot modes; do not
|
|
263
|
+
restate reviewer topology here.
|
|
264
|
+
|
|
265
|
+
Record decisions under `## Design decisions`. When autopilot is the active
|
|
266
|
+
driver, it never asks; use evidence and the least irreversible sound choice.
|
|
267
|
+
Only contradictory state that Part III identifies as a hard halt blocks
|
|
268
|
+
advancement. Child briefs reference the decisions relevant to their later design
|
|
269
|
+
passes.
|
|
321
270
|
|
|
322
271
|
### Phase 5: Pre-mortem
|
|
323
272
|
|
|
@@ -201,68 +201,29 @@ agent rules (tag semantics, test integrity, review policy). Treat AGENTS as
|
|
|
201
201
|
canonical if they disagree. Recency improves adherence. Confirm your approach
|
|
202
202
|
aligns with project conventions.
|
|
203
203
|
|
|
204
|
-
### Phase 4.5:
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
Skip anything the brief, parent epic body, foundation docs, or codebase
|
|
219
|
-
already pin. Skip anything that's safely an implementation-time call.
|
|
220
|
-
|
|
221
|
-
Aim for the smallest set of questions that meaningfully resolve direction
|
|
222
|
-
— typically 2-5. Zero is fine if everything's already pinned.
|
|
223
|
-
|
|
224
|
-
**Cross-model advisory review under autopilot.** If this skill is running as a
|
|
225
|
-
delegation from active autopilot, the feature has large/risky architectural
|
|
226
|
-
decisions, and the body does not already contain useful `## Design decisions`
|
|
227
|
-
from a prior `--only-questions` pass, apply the cross-model advisory review
|
|
228
|
-
policy from `principles/SKILL.md` before resolving the questions yourself.
|
|
229
|
-
|
|
230
|
-
Use one focused `peer` pass only when a different model class is available.
|
|
231
|
-
Ask for missing questions, risks, ambiguous constraints, and alternatives for
|
|
232
|
-
this feature's design — not for a final verdict. Do not run the multi-pass
|
|
233
|
-
`peer-review` loop during routine autopilot design. If peeragent is
|
|
234
|
-
unavailable, the peer would use the same model class, or the invocation fails,
|
|
235
|
-
continue with host judgment and note that the advisory pass was skipped.
|
|
236
|
-
If the peeragent target is Claude Opus, allow 10 to 30 minutes for a large
|
|
237
|
-
review; no return after a few minutes is not evidence that it has hung.
|
|
238
|
-
|
|
239
|
-
Summarize the useful output under `## Other agent review` in the feature body
|
|
240
|
-
and fold accepted questions/risks into the decisions you log. Do not paste the
|
|
241
|
-
peer transcript into the item.
|
|
242
|
-
|
|
243
|
-
If this skill is running **as a delegation from an active autopilot run or
|
|
244
|
-
harness goal**, resolve each question with judgment (prioritize: consistent
|
|
245
|
-
with foundation docs > simpler option > defers irreversible decisions) and log
|
|
246
|
-
under `## Design decisions` in the body:
|
|
204
|
+
### Phase 4.5: Resolve design decisions
|
|
205
|
+
|
|
206
|
+
Identify concrete decisions raised by this feature's requirements, architecture,
|
|
207
|
+
scope, integrations, and UX. Ignore points already settled by the brief, parent,
|
|
208
|
+
foundation docs, code, or an existing `## Design decisions` section, and defer
|
|
209
|
+
safe implementation details. Zero open decisions is valid.
|
|
210
|
+
|
|
211
|
+
Apply `principles/SKILL.md` Part III exactly: resolve routine, reversible points
|
|
212
|
+
with judgment and a logged rationale; reserve structured questions for product
|
|
213
|
+
direction, external contracts, and expensive hard-to-reverse choices. Apply
|
|
214
|
+
Part IV's risk-driven advisory policy in both direct and autopilot modes; do not
|
|
215
|
+
restate reviewer topology here.
|
|
216
|
+
|
|
217
|
+
Record decisions in the feature body:
|
|
247
218
|
|
|
248
219
|
```markdown
|
|
249
220
|
## Design decisions
|
|
250
|
-
- **<
|
|
221
|
+
- **<decision>**: <choice> — <one-line rationale>
|
|
251
222
|
```
|
|
252
223
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
In every other invocation — including direct user invocation under harness
|
|
258
|
-
auto mode (`permissions.defaultMode: "auto"`) — ask the user via
|
|
259
|
-
`structured question tool` before locking in. Harness-level "work without pausing"
|
|
260
|
-
reminders do **not** suppress these checkpoints. See `principles/SKILL.md`
|
|
261
|
-
Part III for the full caller-awareness rule.
|
|
262
|
-
|
|
263
|
-
The exception under autopilot: a 50/50 between two large irreversible choices
|
|
264
|
-
(e.g., SQL vs document store). Append a `## Blocker` section and return
|
|
265
|
-
without advancing — autopilot will skip and surface the blocker.
|
|
224
|
+
When autopilot is the active driver, it never asks; use evidence and the least
|
|
225
|
+
irreversible sound choice. Only contradictory state that Part III identifies as
|
|
226
|
+
a hard halt blocks advancement.
|
|
266
227
|
|
|
267
228
|
### Phase 4.6: UI surface fallback (runs when ux-ui-design is installed)
|
|
268
229
|
|