|
1 | 1 | --- |
| 2 | +deferred_work_file: '{implementation_artifacts}/deferred-work.md' |
2 | 3 | --- |
3 | 4 |
|
4 | | -# Step 4: Present |
| 5 | +# Step 4: Present and Act |
5 | 6 |
|
6 | 7 | ## RULES |
7 | 8 |
|
8 | 9 | - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}` |
9 | | -- Do NOT auto-fix anything. Present findings and let the user decide next steps. |
| 10 | +- When `{spec_file}` is set, always write findings to the story file before offering action choices. |
| 11 | +- `decision-needed` findings must be resolved before handling `patch` findings. |
10 | 12 |
|
11 | 13 | ## INSTRUCTIONS |
12 | 14 |
|
13 | | -1. Group remaining findings by category. |
| 15 | +### 1. Clean review shortcut |
14 | 16 |
|
15 | | -2. Present to the user in this order (include a section only if findings exist in that category): |
| 17 | +If zero findings remain after triage (all dismissed or none raised): state that and end the workflow. |
16 | 18 |
|
17 | | - - **Intent Gaps**: "These findings suggest the captured intent is incomplete. Consider clarifying intent before proceeding." |
18 | | - - List each with title + detail. |
| 19 | +### 2. Write findings to the story file |
19 | 20 |
|
20 | | - - **Bad Spec**: "These findings suggest the spec should be amended. Consider regenerating or amending the spec with this context:" |
21 | | - - List each with title + detail + suggested spec amendment. |
| 21 | +If `{spec_file}` exists and contains a Tasks/Subtasks section, append a `### Review Findings` subsection. Write all findings in this order: |
22 | 22 |
|
23 | | - - **Patch**: "These are fixable code issues:" |
24 | | - - List each with title + detail + location (if available). |
| 23 | +1. **`decision-needed`** findings (unchecked): |
| 24 | + `- [ ] [Review][Decision] <Title> — <Detail>` |
25 | 25 |
|
26 | | - - **Defer**: "Pre-existing issues surfaced by this review (not caused by current changes):" |
27 | | - - List each with title + detail. |
| 26 | +2. **`patch`** findings (unchecked): |
| 27 | + `- [ ] [Review][Patch] <Title> [<file>:<line>]` |
28 | 28 |
|
29 | | -3. Summary line: **X** intent_gap, **Y** bad_spec, **Z** patch, **W** defer findings. **R** findings rejected as noise. |
| 29 | +3. **`defer`** findings (checked off, marked deferred): |
| 30 | + `- [x] [Review][Defer] <Title> [<file>:<line>] — deferred, pre-existing` |
30 | 31 |
|
31 | | -4. If clean review (zero findings across all layers after triage): state that N findings were raised but all were classified as noise, or that no findings were raised at all (as applicable). |
| 32 | +Also append each `defer` finding to `{deferred_work_file}` under a heading `## Deferred from: code review ({date})`. If `{spec_file}` is set, include its basename in the heading (e.g., `code review of story-3.3 (2026-03-18)`). One bullet per finding with description. |
32 | 33 |
|
33 | | -5. Offer the user next steps (recommendations, not automated actions): |
34 | | - - If `patch` findings exist: "These can be addressed in a follow-up implementation pass or manually." |
35 | | - - If `intent_gap` or `bad_spec` findings exist: "Consider running the planning workflow to clarify intent or amend the spec before continuing." |
36 | | - - If only `defer` findings remain: "No action needed for this change. Deferred items are noted for future attention." |
| 34 | +### 3. Present summary |
37 | 35 |
|
38 | | -Workflow complete. |
| 36 | +Announce what was written: |
| 37 | + |
| 38 | +> **Code review complete.** <D> `decision-needed`, <P> `patch`, <W> `defer`, <R> dismissed as noise. |
| 39 | +
|
| 40 | +If `{spec_file}` is set, add: `Findings written to the review findings section in {spec_file}.` |
| 41 | +Otherwise add: `Findings are listed above. No story file was provided, so nothing was persisted.` |
| 42 | + |
| 43 | +### 4. Resolve decision-needed findings |
| 44 | + |
| 45 | +If `decision_needed` findings exist, present each one with its detail and the options available. The user must decide — the correct fix is ambiguous without their input. Walk through each finding (or batch related ones) and get the user's call. Once resolved, each becomes a `patch`, `defer`, or is dismissed. |
| 46 | + |
| 47 | +If the user chooses to defer, ask: Quick one-line reason for deferring this item? (helps future reviews): — then append that reason to both the story file bullet and the `{deferred_work_file}` entry. |
| 48 | + |
| 49 | +**HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option. |
| 50 | + |
| 51 | +### 5. Handle `patch` findings |
| 52 | + |
| 53 | +If `patch` findings exist (including any resolved from step 4), HALT. Ask the user: |
| 54 | + |
| 55 | +If `{spec_file}` is set, present all three options (if >3 `patch` findings exist, also show option 0): |
| 56 | + |
| 57 | +> **How would you like to handle the <Z> `patch` findings?** |
| 58 | +> 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many) |
| 59 | +> 1. **Fix them automatically** — I will apply fixes now |
| 60 | +> 2. **Leave as action items** — they are already in the story file |
| 61 | +> 3. **Walk through each** — let me show details before deciding |
| 62 | +
|
| 63 | +If `{spec_file}` is **not** set, present only options 1 and 3 (omit option 2 — findings were not written to a file). If >3 `patch` findings exist, also show option 0: |
| 64 | + |
| 65 | +> **How would you like to handle the <Z> `patch` findings?** |
| 66 | +> 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many) |
| 67 | +> 1. **Fix them automatically** — I will apply fixes now |
| 68 | +> 2. **Walk through each** — let me show details before deciding |
| 69 | +
|
| 70 | +**HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option. |
| 71 | + |
| 72 | +- **Option 0** (only when >3 findings): Apply all non-controversial patches without per-finding confirmation. Skip any finding that requires judgment. Present a summary of changes made and any skipped findings. |
| 73 | +- **Option 1**: Apply each fix. After all patches are applied, present a summary of changes made. If `{spec_file}` is set, check off the items in the story file. |
| 74 | +- **Option 2** (only when `{spec_file}` is set): Done — findings are already written to the story. |
| 75 | +- **Walk through each**: Present each finding with full detail, diff context, and suggested fix. After walkthrough, re-offer the applicable options above. |
| 76 | + |
| 77 | + **HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option. |
| 78 | + |
| 79 | +**✅ Code review actions complete** |
| 80 | + |
| 81 | +- Decision-needed resolved: <D> |
| 82 | +- Patches handled: <P> |
| 83 | +- Deferred: <W> |
| 84 | +- Dismissed: <R> |
0 commit comments