diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md index 08034cd0..d7185cc0 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/checklist.md @@ -23,3 +23,11 @@ - [ ] Acceptance criteria satisfied - [ ] Tech-spec updated (if applicable) - [ ] Summary provided to user + +## Adversarial Review + +- [ ] Diff constructed (tracked changes from {baseline_commit} + new untracked files) +- [ ] Adversarial review executed (subagent preferred) +- [ ] Findings presented with severity and classification +- [ ] User chose handling approach (walk through / auto-fix / skip) +- [ ] Findings resolved or acknowledged diff --git a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md index b1635173..60f037aa 100644 --- a/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md +++ b/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/instructions.md @@ -15,6 +15,8 @@ +Record current HEAD as baseline for later review. Run `git rev-parse HEAD` and store the result as {baseline_commit}. + Check if {project_context} exists. If yes, load it - this is your foundational reference for ALL implementation decisions (patterns, conventions, architecture). Parse user input: @@ -170,7 +172,7 @@ Use holistic judgment, not mechanical keyword matching. - + Verify: all tasks [x], tests passing, AC satisfied, patterns followed @@ -185,17 +187,89 @@ Use holistic judgment, not mechanical keyword matching. **Tests:** {{test_summary}} **AC Status:** {{ac_status}} ---- +Running adversarial code review... + -**Before committing (Recommended): Copy this code review prompt to a different LLM** +Proceed immediately to step 5 + + + + +Construct diff of all changes since workflow started and capture as {diff_output}: + +**Tracked file changes:** + +```bash +git diff {baseline_commit} ``` -You are a cynical, jaded code reviewer with zero patience for sloppy work. These uncommitted changes were submitted by a clueless weasel and you expect to find problems. Find at least five issues to fix or improve in it. Number them. Be skeptical of everything. -``` + +**New files created by this workflow:** +Only include untracked files that YOU actually created during steps 2-4. Do not include pre-existing untracked files. For each new file you created, include its full content as a "new file" addition. + +Combine both into {diff_output} for review. Do NOT `git add` anything - this is read-only inspection. + +Execute adversarial review using this hierarchy (try in order until one succeeds): + +1. **Spawn subagent** (preferred) - pass the diff output along with this prompt: + + ``` + You are a cynical, jaded code reviewer with zero patience for sloppy work. This diff was submitted by a clueless weasel and you expect to find problems. Find at least five issues to fix or improve. Number them. Be skeptical of everything. + + + {diff_output} + + ``` + +2. **CLI fallback** - pipe diff to `claude --print` with same prompt + +3. **Inline self-review** - Review the diff output yourself using the cynical reviewer persona above + + + + HALT - Zero findings is suspicious. Adversarial review should always find something. Request user guidance. + + +Process findings: + +- Assign IDs: F1, F2, F3... +- Assign severity: 🔴 Critical | 🟠 High | 🟡 Medium | 🟢 Low +- Classify each: **real** (confirmed issue) | **noise** (false positive) | **uncertain** (needs discussion) + + +**Adversarial Review Findings** + +| ID | Severity | Classification | Finding | +| --- | -------- | -------------- | ------- | +| F1 | 🟠 | real | ... | +| F2 | 🟡 | noise | ... | +| ... | -You must explain what was implemented based on {user_skill_level} +How would you like to handle these findings? + +**[1] Walk through** - Discuss each finding individually +**[2] Auto-fix** - Automatically fix issues classified as "real" +**[3] Skip** - Acknowledge and proceed to commit + + + Present each finding one by one. For each, ask: fix now / skip / discuss + Apply fixes as approved + + + + Automatically fix all findings classified as "real" + Report what was fixed + + + + Acknowledge findings were reviewed and user chose to skip + + +**Review complete. Ready to commit.** + +Explain what was implemented based on {user_skill_level}