@nklisch/pi-agile-workflow 0.15.3 → 0.16.3
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 +117 -65
- package/docs/PRINCIPLES.md +84 -18
- package/docs/SPEC.md +70 -2
- package/docs/VISION.md +33 -12
- package/hooks/scripts/prompt-context.py +7 -1
- package/hooks/scripts/test_prompt_context.py +16 -0
- 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 +138 -91
- package/skills/convert/SKILL.md +55 -11
- package/skills/epic-design/SKILL.md +37 -70
- package/skills/feature-design/SKILL.md +52 -68
- package/skills/fix/SKILL.md +52 -34
- package/skills/gate-cruft/SKILL.md +69 -24
- package/skills/gate-docs/SKILL.md +12 -5
- package/skills/gate-patterns/SKILL.md +7 -3
- package/skills/gate-refactor/SKILL.md +18 -6
- package/skills/gate-security/SKILL.md +16 -7
- package/skills/gate-tests/SKILL.md +86 -71
- package/skills/implement/SKILL.md +79 -58
- package/skills/implement-orchestrator/SKILL.md +274 -587
- package/skills/perf-design/SKILL.md +11 -12
- package/skills/principles/SKILL.md +175 -379
- package/skills/principles/references/advisory-review.md +76 -0
- package/skills/principles/references/code-design.md +164 -0
- package/skills/principles/references/models.md +42 -63
- package/skills/prose-author/SKILL.md +9 -4
- package/skills/refactor-design/SKILL.md +26 -17
- package/skills/review/SKILL.md +169 -64
- package/skills/review/references/substrate-side-effects.md +17 -10
- package/skills/scope/SKILL.md +20 -7
- 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
package/skills/review/SKILL.md
CHANGED
|
@@ -44,45 +44,82 @@ Load only the reference needed for the selected lane:
|
|
|
44
44
|
| `review --all` | Drain every item at `stage: review`. |
|
|
45
45
|
| `review <NL filter>` | Drain a filtered subset of the review queue. Interpret the filter against item bodies, tags, and parent chains. |
|
|
46
46
|
| `review <branch/commit/range/PR/wip>` | Out-of-band review. Review the target diff and print a verdict. |
|
|
47
|
-
| `
|
|
47
|
+
| `review --review-weight <level> <target>` | Set independent-review effort: `none`, `light`, `standard`, `thorough`, or `maximum`. An explicit selector wins over caller notes and project configuration. |
|
|
48
|
+
| `deep review <target>` / `review --deep <target>` | Request deep risk coverage; reviewer topology still respects the effective review weight. |
|
|
48
49
|
|
|
49
50
|
In batch modes (`--all` / NL filter), loop through the matched set and output a
|
|
50
51
|
single consolidated summary at the end: verdicts per item plus total finding
|
|
51
52
|
counts.
|
|
52
53
|
|
|
53
|
-
## Review Lanes
|
|
54
|
+
## Review Weight And Lanes
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
Resolve one effective `review_weight` before choosing a lane. The valid scale is
|
|
57
|
+
`none | light | standard | thorough | maximum`; reject unknown values at the
|
|
58
|
+
boundary. Precedence is:
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
1. explicit `--review-weight <level>` or an unambiguous natural-language caller selector
|
|
61
|
+
2. an autopilot/production-skill caller note carrying the effective level
|
|
62
|
+
3. `review_weight` in `.work/CONVENTIONS.md`
|
|
63
|
+
4. `standard`
|
|
64
|
+
|
|
65
|
+
The weight is an effort budget, not a verdict and not a fixed orchestration
|
|
66
|
+
recipe. Risk, evidence, and item tier determine how to spend it; current models
|
|
67
|
+
choose the exact topology within the stated ceiling/intent. Record the effective
|
|
68
|
+
weight, its source, selected lane, and decisive risk/evidence signals in Review
|
|
69
|
+
Notes.
|
|
70
|
+
|
|
71
|
+
| Weight | High-level review intent |
|
|
72
|
+
|---|---|
|
|
73
|
+
| `none` | No independent reviewer. Perform an administrative review of the target's own green verification and acceptance evidence; close only when both are sufficient. |
|
|
74
|
+
| `light` | Stories remain verification-only. Larger items receive at most one focused fresh-context pass. |
|
|
75
|
+
| `standard` | Balanced risk-based default: fast low-risk stories, focused Standard work out of band, and fresh-context Deep review for features, epics, and escalated stories. |
|
|
76
|
+
| `thorough` | Increase independent coverage with additional fresh-context passes or reviewers where the risk surface benefits; keep complementary before adversarial. |
|
|
77
|
+
| `maximum` | For features/epics, use multi-model, multi-pass complementary → adversarial review when those capabilities exist. Dynamically escalate stories according to risk rather than reviewing every story identically. |
|
|
78
|
+
|
|
79
|
+
Lane selection is `weight + risk + evidence + kind-as-heuristic`. Resolve mode
|
|
80
|
+
first, gather enough context to identify risk, then choose:
|
|
81
|
+
|
|
82
|
+
| Starting point | Default lane | Evidence or risk adjustment |
|
|
59
83
|
|---|---|---|
|
|
60
|
-
| **story item** | **Fast** |
|
|
61
|
-
| **out-of-band target** | **Standard** |
|
|
62
|
-
| **feature / epic item** | **Deep** |
|
|
63
|
-
| **explicit `--deep` target** | **Deep** |
|
|
84
|
+
| **story item** | **Fast** | Keep Fast only with recorded green verification and no escalation signal. Escalate to Deep for a caller-interface change, security or correctness surface, cross-cutting scope, a touched foundation-doc claim, or explicit `--deep`. |
|
|
85
|
+
| **out-of-band target** | **Standard** | Use Deep only when explicitly requested; otherwise calibrate the Standard lens walk to the observed risk. |
|
|
86
|
+
| **feature / epic item** | **Deep** | Kind signals aggregate contract risk; green child evidence informs the review but does not replace the parent's own review. |
|
|
87
|
+
| **explicit `--deep` target** | **Deep** | Request the strongest depth the effective weight permits; depth overrides the kind heuristic, not an explicit weight ceiling. |
|
|
88
|
+
|
|
89
|
+
Risk is not inferred from size alone. A tiny authentication or public-contract
|
|
90
|
+
change can require Deep; a broad mechanical change can remain Standard when its
|
|
91
|
+
evidence and contracts make that safe. `none` is the explicit exception to
|
|
92
|
+
independent fresh-context review: it still performs the item's own acceptance
|
|
93
|
+
check and records a verdict, so it never turns child completion into automatic
|
|
94
|
+
parent approval.
|
|
64
95
|
|
|
65
96
|
### Fast Lane
|
|
66
97
|
|
|
67
|
-
|
|
98
|
+
A genuinely low-risk story uses the fast lane; `none` also uses this
|
|
99
|
+
administrative shape for every tier:
|
|
68
100
|
|
|
69
|
-
1. Read the
|
|
101
|
+
1. Read the item body, recorded implementation scope, and acceptance criteria.
|
|
70
102
|
2. Confirm an implementation/verification record exists and reports green build
|
|
71
|
-
and tests.
|
|
72
|
-
3.
|
|
103
|
+
and tests (or an explicit reason the change needs no executable checks).
|
|
104
|
+
3. Confirm the recorded evidence addresses the item's acceptance criteria.
|
|
105
|
+
4. Check explicitly for the escalation signals above. At `standard` or higher,
|
|
106
|
+
switch a risky story to Deep before issuing a verdict. At `none` or `light`,
|
|
107
|
+
stay within the selected effort ceiling and record the unexamined risk.
|
|
108
|
+
5. If verification and acceptance evidence are green, load
|
|
73
109
|
[substrate-side-effects.md](references/substrate-side-effects.md) and advance
|
|
74
|
-
`review -> done` with a one-line record
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
110
|
+
`review -> done` with a one-line record naming the weight and evidence.
|
|
111
|
+
6. If evidence is absent or failing, run only cheap verification that fits the
|
|
112
|
+
selected weight or bounce `review -> implementing` with a
|
|
113
|
+
`## Review findings` note.
|
|
78
114
|
|
|
79
|
-
Skip the lens walk
|
|
80
|
-
|
|
115
|
+
Skip the lens walk only when evidence and the effective weight permit it. Kind
|
|
116
|
+
alone never grants an advance, and `none` never means "done because children
|
|
117
|
+
are done."
|
|
81
118
|
|
|
82
119
|
### Standard Lane
|
|
83
120
|
|
|
84
|
-
Standalone reviews use the standard lane
|
|
85
|
-
[target-resolution.md](references/target-resolution.md) and
|
|
121
|
+
Standalone reviews use the standard lane unless the caller explicitly requests
|
|
122
|
+
Deep. Load [target-resolution.md](references/target-resolution.md) and
|
|
86
123
|
[review-lenses.md](references/review-lenses.md), read enough surrounding code to
|
|
87
124
|
understand the change, then print the structured review. Do not create `.work`
|
|
88
125
|
items, advance stages, archive files, or commit metadata unless the user
|
|
@@ -90,37 +127,48 @@ explicitly converts the findings into substrate work.
|
|
|
90
127
|
|
|
91
128
|
### Deep Lane
|
|
92
129
|
|
|
93
|
-
Feature, epic, and explicit deep reviews use the deep lane
|
|
130
|
+
Feature, epic, escalated-story, and explicit deep reviews use the deep lane when
|
|
131
|
+
the effective weight permits independent review. Load
|
|
94
132
|
[deep-review.md](references/deep-review.md) plus any target or lens reference it
|
|
95
|
-
points to.
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
133
|
+
points to. The evaluation must run in fresh context: use a different-class peer
|
|
134
|
+
when reachable; otherwise use the strongest same-harness fresh-context
|
|
135
|
+
sub-agent prompted with the reviewer posture. If the selected weight calls for
|
|
136
|
+
fresh review and neither is available, record the limitation and block rather
|
|
137
|
+
than approving from the host context. Deep reviews never become inline
|
|
138
|
+
self-review; this requirement overrides any older inline-fallback wording in a
|
|
139
|
+
lane reference.
|
|
140
|
+
|
|
141
|
+
Calibrate depth from the weight table instead of treating Deep as one fixed
|
|
142
|
+
recipe. `light` caps a larger item's review at one fresh pass; `standard`
|
|
143
|
+
balances coverage against observed risk; `thorough` adds complementary and
|
|
144
|
+
adversarial coverage where useful; `maximum` seeks multi-model, multi-pass
|
|
145
|
+
complementary → adversarial convergence for features/epics and dynamically
|
|
146
|
+
escalates risky stories. These are ceilings and intent, not mandatory agent
|
|
147
|
+
counts. Preserve complementary-before-adversarial order whenever both run (see
|
|
148
|
+
[../principles/references/models.md](../principles/references/models.md) §6).
|
|
105
149
|
|
|
106
150
|
## Workflow
|
|
107
151
|
|
|
108
|
-
### Phase 0: Resolve Mode And Depth
|
|
152
|
+
### Phase 0: Resolve Mode, Weight, And Depth
|
|
109
153
|
|
|
110
154
|
Default to substrate mode when the target looks like a work item id, when any
|
|
111
155
|
item is at `stage: review`, or when autopilot delegated the review. Use
|
|
112
156
|
standalone mode when the user names a branch, commit, commit range, PR number,
|
|
113
157
|
`wip`, working tree, or otherwise asks for an out-of-band code review.
|
|
114
158
|
|
|
159
|
+
Resolve and validate effective `review_weight` using the precedence above before
|
|
160
|
+
any mutation. Explicit caller selection always wins.
|
|
161
|
+
|
|
115
162
|
If both interpretations are plausible, prefer substrate mode but ask the user
|
|
116
163
|
before mutating `.work`. If the caller is autopilot or a harness goal, do not
|
|
117
164
|
ask: choose substrate mode and the next review item.
|
|
118
165
|
|
|
119
|
-
Depth:
|
|
120
|
-
- **Fast**: story
|
|
121
|
-
|
|
122
|
-
- **
|
|
123
|
-
|
|
166
|
+
Depth after applying the weight ceiling:
|
|
167
|
+
- **Fast/administrative**: low-risk story with green evidence, any story at
|
|
168
|
+
`light`, or any tier at `none`.
|
|
169
|
+
- **Standard**: out-of-band target unless explicitly deep.
|
|
170
|
+
- **Deep**: feature/epic item, risk-escalated story, explicit `--deep`, or a
|
|
171
|
+
robustness request when the weight permits fresh-context evaluation.
|
|
124
172
|
|
|
125
173
|
### Phase 1: Identify The Target
|
|
126
174
|
|
|
@@ -139,8 +187,10 @@ Standalone mode:
|
|
|
139
187
|
|
|
140
188
|
Substrate mode:
|
|
141
189
|
- Read the item file.
|
|
142
|
-
- Internalize the brief, design, implementation notes,
|
|
143
|
-
|
|
190
|
+
- Internalize the brief, design, implementation notes, acceptance criteria, and
|
|
191
|
+
verification evidence.
|
|
192
|
+
- For a feature or epic, read direct child bodies and their review evidence;
|
|
193
|
+
children inform but never replace the parent's own review.
|
|
144
194
|
|
|
145
195
|
Standalone mode:
|
|
146
196
|
- Read the user's stated target.
|
|
@@ -156,8 +206,11 @@ All modes:
|
|
|
156
206
|
|
|
157
207
|
### Phase 3: Determine The Change Scope
|
|
158
208
|
|
|
159
|
-
|
|
160
|
-
|
|
209
|
+
For Standard and Deep lanes, load
|
|
210
|
+
[target-resolution.md](references/target-resolution.md). Use it to gather the
|
|
211
|
+
diff, PR metadata, commit messages, or epic aggregate scope. Fast uses the
|
|
212
|
+
recorded implementation scope and verification instead of re-analyzing the
|
|
213
|
+
diff.
|
|
161
214
|
|
|
162
215
|
If the non-epic diff is empty:
|
|
163
216
|
- Autopilot substrate mode: advance only if the item has complete green
|
|
@@ -176,22 +229,36 @@ Standard lane:
|
|
|
176
229
|
|
|
177
230
|
Deep lane:
|
|
178
231
|
- Load [deep-review.md](references/deep-review.md).
|
|
179
|
-
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
232
|
+
- Run the evaluation in fresh context at the effective weight; do not approve
|
|
233
|
+
inline when the selected weight requires a fresh reviewer and none is available.
|
|
234
|
+
- Apply the core lenses plus the applicable deep dimensions.
|
|
235
|
+
|
|
236
|
+
### Phase 5: Adjudicate And Classify Findings
|
|
237
|
+
|
|
238
|
+
The host/receiving agent owns classification. Treat fresh-reviewer severities as
|
|
239
|
+
proposals, verify concrete claims, and weigh each finding against repository
|
|
240
|
+
context: acceptance criteria, supported deployment and users, likelihood, blast
|
|
241
|
+
radius, recoverability, existing safeguards, and delay cost. Reviewer confidence,
|
|
242
|
+
model strength, or repeated mention does not make a finding blocking.
|
|
243
|
+
|
|
244
|
+
- **Blocker**: a credible, material current-cycle risk to required correctness,
|
|
245
|
+
security, data integrity, public contracts, acceptance criteria, release
|
|
246
|
+
safety, or trustworthy verification. It must be fixed or kept active before
|
|
247
|
+
advancing. Examples include a demonstrated correctness bug, exploitable
|
|
248
|
+
vulnerability, unintended breaking change, material foundation-doc drift, or
|
|
249
|
+
a test that proves required behavior is wrong.
|
|
250
|
+
- **Important**: valid work below the current-cycle blocker bar. Park it in the
|
|
251
|
+
unbound backlog with the risk rationale and advance the reviewed item. Examples
|
|
252
|
+
include unlikely low-consequence edges, worthwhile hardening, nonessential
|
|
253
|
+
tests, design cleanup, naming, or refactor opportunities.
|
|
254
|
+
- **Nit**: optional polish that does not warrant a substrate item.
|
|
255
|
+
- **Rejected**: unsupported, inapplicable, or cost-disproportionate advice;
|
|
256
|
+
record a brief reason when it came from an independent reviewer.
|
|
257
|
+
|
|
258
|
+
Rarity alone is not dismissal: a corner case with severe consequences may still
|
|
259
|
+
block. Conversely, a real issue does not block merely because a reviewer found
|
|
260
|
+
it. If there are zero receiver-confirmed blockers and zero important findings,
|
|
261
|
+
say so plainly. Do not pad the review with invented concerns.
|
|
195
262
|
|
|
196
263
|
### Phase 6: Finish
|
|
197
264
|
|
|
@@ -205,10 +272,39 @@ Standalone mode:
|
|
|
205
272
|
|
|
206
273
|
Substrate mode:
|
|
207
274
|
- Load [substrate-side-effects.md](references/substrate-side-effects.md).
|
|
208
|
-
- File
|
|
209
|
-
|
|
210
|
-
-
|
|
211
|
-
|
|
275
|
+
- File receiver-accepted findings according to their disposition: current-cycle
|
|
276
|
+
blockers active, important findings in the unbound backlog, and nits nowhere.
|
|
277
|
+
- Advance the item if there are no receiver-confirmed blockers, or bounce it if
|
|
278
|
+
blockers exist.
|
|
279
|
+
- Append the review record and commit the reviewed item's transition.
|
|
280
|
+
- After an approval reaches `done`, run Conservative Parent Roll-Up below.
|
|
281
|
+
|
|
282
|
+
### Conservative Parent Roll-Up
|
|
283
|
+
|
|
284
|
+
A child's approval is evidence that an ancestor may be ready for review; it is
|
|
285
|
+
never approval of the ancestor itself. After advancing any item to `done`:
|
|
286
|
+
|
|
287
|
+
1. Find its immediate parent. If there is none, stop.
|
|
288
|
+
2. Count all direct children across active and terminal tiers. If any child is
|
|
289
|
+
non-terminal, stop the entire roll-up at this ancestor.
|
|
290
|
+
3. If the parent is `implementing`, advance it to `review`, append a `Children
|
|
291
|
+
complete` note, and commit that transition. If it is already `review`, leave
|
|
292
|
+
the stage unchanged. Never change an implementing/review parent directly to
|
|
293
|
+
`done` just because its children are done.
|
|
294
|
+
4. Run this skill on the parent using the normal weight/risk/evidence lane
|
|
295
|
+
selection. Features and epics therefore receive their own Deep review when
|
|
296
|
+
independent review is enabled, or their own administrative acceptance review
|
|
297
|
+
at `none`.
|
|
298
|
+
5. Only an Approve or Approve-with-comments verdict may advance the parent to
|
|
299
|
+
`done`; commit that review transition. A bounce or block stops roll-up.
|
|
300
|
+
6. Once the parent is approved and `done`, repeat from step 1 for its parent.
|
|
301
|
+
|
|
302
|
+
This recursion can complete story → feature → epic in one review invocation,
|
|
303
|
+
but every ancestor crosses its own real `review` stage and receives its own
|
|
304
|
+
selected review lane at the same effective weight. Preserve active parent bodies
|
|
305
|
+
while walking the chain; terminal retention/archive handling applies only where
|
|
306
|
+
the substrate-side-effects contract says the item is no longer needed for an
|
|
307
|
+
active parent.
|
|
212
308
|
|
|
213
309
|
## Output
|
|
214
310
|
|
|
@@ -234,12 +330,17 @@ Approve | Approve with comments | Request changes | Block
|
|
|
234
330
|
### Nits
|
|
235
331
|
- Nit: <brief note> (`file:line`)
|
|
236
332
|
|
|
333
|
+
### Rejected proposals
|
|
334
|
+
- <reviewer proposal>: <repository-context rationale>
|
|
335
|
+
|
|
237
336
|
## Notes
|
|
238
|
-
<mode, depth, skipped lenses, limitations, or anything else worth recording>
|
|
337
|
+
<mode, depth, risk context, skipped lenses, limitations, or anything else worth recording>
|
|
239
338
|
```
|
|
240
339
|
|
|
241
340
|
If no findings above nit level in substrate mode: "This change looks good.
|
|
242
341
|
Nothing blocking or significant to flag. Item advanced to `stage: done`."
|
|
342
|
+
Also report each ancestor moved to `review`, approved to `done`, bounced, or
|
|
343
|
+
left waiting on a non-terminal child.
|
|
243
344
|
|
|
244
345
|
If no findings above nit level in standalone mode: "This change looks good.
|
|
245
346
|
Nothing blocking or significant to flag."
|
|
@@ -264,4 +365,8 @@ Nothing blocking or significant to flag."
|
|
|
264
365
|
- Foundation-doc drift is a blocker, not a nit. Rolling foundation is a hard
|
|
265
366
|
rule.
|
|
266
367
|
- Do not advance an item past review unless the verdict is Approve or Approve
|
|
267
|
-
with comments. Pushing through blockers defeats
|
|
368
|
+
with comments. Pushing through receiver-confirmed material blockers defeats
|
|
369
|
+
the point of the stage; parking lower-risk findings does not.
|
|
370
|
+
- Child completion never substitutes for a parent's review. Roll-up may move an
|
|
371
|
+
implementing parent to `review`, but only that parent's selected lane may move
|
|
372
|
+
it to `done`.
|
|
@@ -8,15 +8,21 @@ commit unless the user explicitly asks for that side effect.
|
|
|
8
8
|
|
|
9
9
|
## Triage Findings Into Items
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
The receiving agent first adjudicates reviewer proposals under
|
|
12
|
+
`principles/SKILL.md` Part IV. Reviewer severity labels are not authoritative.
|
|
13
|
+
For each accepted finding above nit level, preserve the chosen disposition so it
|
|
14
|
+
does not disappear into prose:
|
|
15
|
+
|
|
16
|
+
- **Blocker**: a receiver-confirmed material current-cycle risk. Either fix
|
|
17
|
+
inline if small, or create a story in `.work/active/stories/` with
|
|
18
|
+
`stage: implementing` and tags such as `[bug]`, `[security]`, `[tests]`, or the
|
|
19
|
+
appropriate category. It prevents the reviewed item from advancing.
|
|
20
|
+
- **Important**: valid work below the blocker bar. Park it as an unbound backlog
|
|
21
|
+
item in `.work/backlog/` with the contextual risk rationale; do not scope it
|
|
22
|
+
active merely because it is substantial or a reviewer called it blocking.
|
|
23
|
+
- **Nit**: keep in review notes only; nits do not warrant items.
|
|
24
|
+
- **Rejected**: create no item; record a brief reason in the review record when
|
|
25
|
+
independent review proposed it.
|
|
20
26
|
|
|
21
27
|
Review-created items use `gate_origin: null`; gate-produced findings set
|
|
22
28
|
`gate_origin`.
|
|
@@ -140,8 +146,9 @@ Append this section to the reviewed item:
|
|
|
140
146
|
**Blockers**: <list with item ids> (or "none")
|
|
141
147
|
**Important**: <list with item ids> (or "none")
|
|
142
148
|
**Nits**: <inline notes - not items>
|
|
149
|
+
**Rejected**: <reviewer proposals and brief reasons> (or "none")
|
|
143
150
|
|
|
144
|
-
**Notes**: <mode, depth, skipped lenses, limitations, or anything else worth recording>
|
|
151
|
+
**Notes**: <mode, depth, risk context, skipped lenses, limitations, or anything else worth recording>
|
|
145
152
|
```
|
|
146
153
|
|
|
147
154
|
## Commit
|
package/skills/scope/SKILL.md
CHANGED
|
@@ -170,18 +170,21 @@ second confirmation round.
|
|
|
170
170
|
|
|
171
171
|
### Phase B8: Promote each confirmed cluster
|
|
172
172
|
|
|
173
|
-
For each cluster, run the single-idea-mode Phases 3-6 inline:
|
|
173
|
+
For each cluster, run the single-idea-mode Phase 1.9 and Phases 3-6 inline:
|
|
174
174
|
|
|
175
|
-
1. **
|
|
175
|
+
1. **Frame simplification opportunities** — record what the cluster can delete,
|
|
176
|
+
consolidate, replace, or make unnecessary; separate cohesive cleanup from
|
|
177
|
+
unrelated backlog work.
|
|
178
|
+
2. **Declare dependencies** — within-cluster (child stories under a feature)
|
|
176
179
|
and cross-cluster (one feature depends on another's output). Use
|
|
177
180
|
`work-view --blocking` for cycle detection.
|
|
178
|
-
|
|
181
|
+
3. **Foundation-doc roll-forward** (large clusters only) — full Phase 4 of
|
|
179
182
|
single-idea mode, scoped to that cluster's impact.
|
|
180
|
-
|
|
183
|
+
4. **Write item files** — the parent (epic or feature) plus any child files.
|
|
181
184
|
Use `git mv` to move backlog files into the new structure where they map
|
|
182
185
|
1:1; reference the backlog idea in the parent's brief and `git rm` the
|
|
183
186
|
backlog file where it was absorbed without a direct child.
|
|
184
|
-
|
|
187
|
+
5. **Commit per cluster** — `scope: <cluster-id> (<kind>, <size>)` with a
|
|
185
188
|
foundation-doc roll-forward note where applicable.
|
|
186
189
|
|
|
187
190
|
Promote leftovers per the Phase B7 decision (one commit per promoted leftover,
|
|
@@ -267,7 +270,7 @@ interfaces).
|
|
|
267
270
|
Aim for 2-5 questions. Zero is fine if the user's brief and foundation docs
|
|
268
271
|
already pin every strategic choice. For small (story) and medium (feature)
|
|
269
272
|
scope, the bar is higher — only ask if a strategic ambiguity genuinely
|
|
270
|
-
affects framing; otherwise
|
|
273
|
+
affects framing; otherwise continue through Phases 1.8 and 1.9 without questions.
|
|
271
274
|
|
|
272
275
|
Use `structured question tool` to ask. Capture answers in the item body under a
|
|
273
276
|
`## Strategic decisions` section so the downstream design family inherits
|
|
@@ -306,7 +309,14 @@ journey before the item is written.
|
|
|
306
309
|
|
|
307
310
|
Skip this phase if `ux-ui-design` is not installed.
|
|
308
311
|
|
|
309
|
-
Then proceed to Phase
|
|
312
|
+
Then proceed to Phase 1.9.
|
|
313
|
+
|
|
314
|
+
### Phase 1.9: Frame simplification opportunities
|
|
315
|
+
|
|
316
|
+
Record what the idea could delete, consolidate, replace, or make unnecessary—code,
|
|
317
|
+
tests, checks, abstractions, compatibility paths, configuration, or whole subsystems.
|
|
318
|
+
Fold cohesive cleanup into the brief, note independent `[refactor]`/`[cleanup]`
|
|
319
|
+
children, and park unrelated work. Removing guarantees requires a strategic decision.
|
|
310
320
|
|
|
311
321
|
### Phase 2: Size the scope
|
|
312
322
|
|
|
@@ -414,6 +424,9 @@ updated: YYYY-MM-DD
|
|
|
414
424
|
## Brief
|
|
415
425
|
<one to three paragraphs describing what this is and why it exists>
|
|
416
426
|
|
|
427
|
+
## Simplification opportunity
|
|
428
|
+
<what this work may delete, consolidate, replace, or deliberately retain; "none identified" is valid>
|
|
429
|
+
|
|
417
430
|
<!-- Subsequent sections (Design, Implementation Notes, etc.) accumulate as
|
|
418
431
|
work progresses. -->
|
|
419
432
|
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.16.3
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|