|
1 | 1 | --- |
2 | 2 | name: review-change |
3 | 3 | user-invocable: true |
4 | | -version: 1.6.0 |
| 4 | +version: 1.7.0 |
5 | 5 | argument-hint: <path-or-glob> |
6 | 6 | model: opus |
7 | 7 | effort: high |
@@ -95,51 +95,58 @@ Every axis maps to a skill of the workflow's **own internal review pack** |
95 | 95 | Findings get axis `spec-drift` in the table. Catching drift at a phase |
96 | 96 | checkpoint is far cheaper than at the `audit-pr` merge gate. (No SPEC found → |
97 | 97 | note it and skip.) |
98 | | -3. **Applicable pack passes.** For each axis the matrix + footprint mark as |
| 98 | +3. **Workflow-discipline check (mechanical, every review).** On the branch |
| 99 | + under review, verify and file findings under axis `workflow`: |
| 100 | + commits follow `<type>(<scope>): <summary>`; phase labels in touched |
| 101 | + planning docs are `P1, P2, …` (never `S1`/"Steps"); the phase's per-phase |
| 102 | + docs were updated (TASKS ticks, progress entry); no commit landed on the |
| 103 | + default branch; artifacts are in the project's declared docs language. |
| 104 | + Run the greps/`git log` — don't infer compliance. |
| 105 | +4. **Applicable pack passes.** For each axis the matrix + footprint mark as |
99 | 106 | relevant, run the workflow's own internal skill for it (`review-code`, |
100 | 107 | `review-security`, `review-verify`, `review-debt`, `review-design`, |
101 | 108 | `review-a11y`, `review-brand`, `review-perf`, `review-seo`) — composed in-turn |
102 | 109 | (this same conversation), each returning its fixed-format table + PASS|FAIL. |
103 | 110 | **Skip the rest** and say which you skipped and why. The pack ships with the |
104 | 111 | workflow, so an applicable pass can never be "missing". |
105 | | -4. **Optional extras.** If the project recorded additional platform review skills |
| 112 | +5. **Optional extras.** If the project recorded additional platform review skills |
106 | 113 | (stack-specific linters, framework skills) and they are installed, run them |
107 | 114 | **in addition** — their findings merge into the same table. Never treat an |
108 | 115 | absent extra as a gap; the pack already covered the axis. |
109 | | -5. **Synthesize.** Merge all findings into **one** decision table, deduped by |
| 116 | +6. **Synthesize.** Merge all findings into **one** decision table, deduped by |
110 | 117 | `file:line`. Keep `review-implementation`'s columns (Sev, Class, WHY, impl risk, |
111 | 118 | long-term impact, premature-opt?, route) and add an **Axis** column. |
112 | | -6. **Manual-verification checklist.** List what automated review **cannot** confirm |
| 119 | +7. **Manual-verification checklist.** List what automated review **cannot** confirm |
113 | 120 | and a human must check — visual correctness, real-device/locale behavior, UX |
114 | 121 | feel, perf under load, anything marked *verify*. Be explicit so the dev has zero |
115 | 122 | doubt about what to eyeball. |
116 | | -7. **Triage everything not fixed now.** For **every** finding you don't route to |
| 123 | +8. **Triage everything not fixed now.** For **every** finding you don't route to |
117 | 124 | `fix-now` (postpone / ignore / intentional-tradeoff), run it through |
118 | 125 | `triage-issue` (compose in-turn — i.e. within this same conversation/run; equal |
119 | 126 | tier) to decide and record its home: a |
120 | 127 | tracked issue with a trigger, a documented decision (`decisions.md` / a comment), |
121 | 128 | or a justified drop. **No non-fix-now finding may end without a destination** — the |
122 | 129 | point is to never silently lose one, and to catch the few that actually deserve an |
123 | 130 | issue or a doc note. |
124 | | -8. **Report — return exactly this structure** (fixed output contract; nothing |
| 131 | +9. **Report — return exactly this structure** (fixed output contract; nothing |
125 | 132 | more, nothing less): |
126 | 133 |
|
127 | 134 | ``` |
128 | 135 | REVIEW CHANGE — scope: <scope> |
129 | 136 | Axes run: <list> Skipped: <list + why> |
130 | 137 |
|
131 | | - <the synthesized decision table (step 5)> |
| 138 | + <the synthesized decision table (step 6)> |
132 | 139 |
|
133 | 140 | Manual verification (a human must check): |
134 | 141 | - <item> … |
135 | 142 |
|
136 | | - Non-fix-now destinations (step 7): <n> triaged — <issue #s / decisions / drops> |
| 143 | + Non-fix-now destinations (step 8): <n> triaged — <issue #s / decisions / drops> |
137 | 144 |
|
138 | 145 | Summary: <1-2 sentences> |
139 | 146 | Decision: PASS | FAIL (FAIL while any fix-now finding is open) |
140 | 147 | ``` |
141 | 148 |
|
142 | | -9. **Next step.** Close with the `→ Next:` block: |
| 149 | +10. **Next step.** Close with the `→ Next:` block: |
143 | 150 |
|
144 | 151 | ``` |
145 | 152 | → Next: /audit-pr — merge gate (when the table is clean) |
@@ -171,7 +178,7 @@ For a change to a backend export module (no UI surface): |
171 | 178 |
|
172 | 179 | ## Routing |
173 | 180 |
|
174 | | -Every non-`fix-now` finding is routed **through `triage-issue`** (step 7) so its |
| 181 | +Every non-`fix-now` finding is routed **through `triage-issue`** (step 8) so its |
175 | 182 | disposition is a decision, not a default: |
176 | 183 |
|
177 | 184 | - **fix-now** → `plan-fix` → `execute-phase --fix`, or fold into the current phase |
|
0 commit comments