bmad-method 6.2.3-next.8 → 6.3.0

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.
Files changed (76) hide show
  1. package/.claude-plugin/marketplace.json +0 -3
  2. package/README.md +8 -9
  3. package/README_CN.md +1 -1
  4. package/README_VN.md +110 -0
  5. package/package.json +1 -1
  6. package/removals.txt +17 -0
  7. package/src/bmm-skills/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +1 -1
  8. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/data/prd-purpose.md +197 -0
  9. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +1 -1
  10. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +1 -1
  11. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +1 -1
  12. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +1 -1
  13. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +1 -3
  14. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +1 -1
  15. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +1 -1
  16. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +1 -1
  17. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/workflow.md +1 -1
  18. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/workflow.md +1 -1
  19. package/src/bmm-skills/4-implementation/bmad-agent-dev/SKILL.md +5 -0
  20. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/SKILL.md +29 -0
  21. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/generate-trail.md +38 -0
  22. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-01-orientation.md +105 -0
  23. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-02-walkthrough.md +89 -0
  24. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-03-detail-pass.md +106 -0
  25. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-04-testing.md +74 -0
  26. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-05-wrapup.md +24 -0
  27. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-01-gather-context.md +38 -15
  28. package/src/bmm-skills/4-implementation/bmad-correct-course/checklist.md +2 -2
  29. package/src/bmm-skills/4-implementation/bmad-correct-course/workflow.md +8 -8
  30. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/checklist.md +1 -1
  31. package/src/bmm-skills/4-implementation/bmad-quick-dev/compile-epic-context.md +62 -0
  32. package/src/bmm-skills/4-implementation/bmad-quick-dev/spec-template.md +1 -1
  33. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md +33 -6
  34. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-02-plan.md +20 -8
  35. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-03-implement.md +2 -0
  36. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +16 -4
  37. package/src/bmm-skills/4-implementation/bmad-quick-dev/workflow.md +1 -5
  38. package/src/bmm-skills/4-implementation/bmad-retrospective/workflow.md +134 -134
  39. package/src/bmm-skills/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +1 -1
  40. package/src/bmm-skills/4-implementation/bmad-sprint-planning/workflow.md +3 -3
  41. package/src/bmm-skills/4-implementation/bmad-sprint-status/workflow.md +2 -2
  42. package/src/bmm-skills/module-help.csv +2 -0
  43. package/src/core-skills/bmad-help/SKILL.md +4 -2
  44. package/src/core-skills/bmad-party-mode/SKILL.md +121 -2
  45. package/src/core-skills/module-help.csv +1 -0
  46. package/tools/installer/cli-utils.js +18 -9
  47. package/tools/installer/commands/install.js +1 -1
  48. package/tools/installer/core/existing-install.js +2 -8
  49. package/tools/installer/core/install-paths.js +0 -3
  50. package/tools/installer/core/installer.js +180 -463
  51. package/tools/installer/core/manifest-generator.js +8 -14
  52. package/tools/installer/core/manifest.js +94 -102
  53. package/tools/installer/ide/_config-driven.js +149 -38
  54. package/tools/installer/ide/shared/skill-manifest.js +1 -16
  55. package/tools/installer/install-messages.yaml +19 -26
  56. package/tools/installer/modules/community-manager.js +377 -0
  57. package/tools/installer/modules/custom-module-manager.js +644 -0
  58. package/tools/installer/modules/external-manager.js +65 -49
  59. package/tools/installer/modules/official-modules.js +117 -65
  60. package/tools/installer/modules/plugin-resolver.js +398 -0
  61. package/tools/installer/modules/registry-client.js +66 -0
  62. package/tools/installer/{external-official-modules.yaml → modules/registry-fallback.yaml} +3 -12
  63. package/tools/installer/ui.js +549 -666
  64. package/src/bmm-skills/4-implementation/bmad-agent-qa/SKILL.md +0 -61
  65. package/src/bmm-skills/4-implementation/bmad-agent-qa/bmad-skill-manifest.yaml +0 -11
  66. package/src/bmm-skills/4-implementation/bmad-agent-quick-flow-solo-dev/SKILL.md +0 -53
  67. package/src/bmm-skills/4-implementation/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +0 -11
  68. package/src/bmm-skills/4-implementation/bmad-agent-sm/SKILL.md +0 -55
  69. package/src/bmm-skills/4-implementation/bmad-agent-sm/bmad-skill-manifest.yaml +0 -11
  70. package/src/core-skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  71. package/src/core-skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  72. package/src/core-skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  73. package/src/core-skills/bmad-party-mode/workflow.md +0 -183
  74. package/tools/installer/core/custom-module-cache.js +0 -260
  75. package/tools/installer/custom-handler.js +0 -112
  76. package/tools/installer/modules/custom-modules.js +0 -197
@@ -0,0 +1,105 @@
1
+ # Step 1: Orientation
2
+
3
+ Display: `[Orientation] → Walkthrough → Detail Pass → Testing`
4
+
5
+ ## Follow Global Step Rules in SKILL.md
6
+
7
+ ## FIND THE CHANGE
8
+
9
+ The conversation context before this skill was triggered IS your starting point — not a blank slate. Check in this order — stop as soon as the change is identified:
10
+
11
+ 1. **Explicit argument**
12
+ Did the user pass a PR, commit SHA, branch, or spec file this message?
13
+ - PR reference → resolve to branch/commit via `gh pr view`. If resolution fails, ask for a SHA or branch.
14
+ - Spec file, commit, or branch → use directly.
15
+
16
+ 2. **Recent conversation**
17
+ Do the last few messages reveal what change the user wants reviewed? Look for spec paths, commit refs, branches, PRs, or descriptions of a change. Use the same routing as above.
18
+
19
+ 3. **Sprint tracking**
20
+ Check for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for stories with status `review`:
21
+ - Exactly one → suggest it and confirm with the user.
22
+ - Multiple → present as numbered options.
23
+ - None → fall through.
24
+
25
+ 4. **Current git state**
26
+ Check current branch and HEAD. Confirm: "I see HEAD is `<short-sha>` on `<branch>` — is this the change you want to review?"
27
+
28
+ 5. **Ask**
29
+ If none of the above identified a change, ask:
30
+ - What changed and why?
31
+ - Which commit, branch, or PR should I look at?
32
+ - Do you have a spec, bug report, or anything else that explains what this change is supposed to do?
33
+
34
+ If after 3 exchanges you still can't identify a change, HALT.
35
+
36
+ Never ask extra questions beyond what the cascade prescribes. If a step above already identified the change, skip the remaining steps.
37
+
38
+ ## ENRICH
39
+
40
+ Once a change is identified from any source above, fill in the complementary artifact:
41
+
42
+ - If you have a spec, look for `baseline_commit` in its frontmatter to determine the diff baseline.
43
+ - If you have a commit or branch, check `{implementation_artifacts}` for a spec whose `baseline_commit` is an ancestor of that commit/branch (i.e., the spec describes work done on top of that baseline).
44
+ - If you found both a spec and a commit/branch, use both.
45
+
46
+ ## DETERMINE WHAT YOU HAVE
47
+
48
+ Set `change_type` to match how the user referred to the change — `PR`, `commit`, `branch`, or their own words (e.g. `auth refactor`). Default to `change` if ambiguous.
49
+
50
+ Set `review_mode` — pick the first match:
51
+
52
+ 1. **`full-trail`** — ENRICH found a spec with a `## Suggested Review Order` section. Intent source: spec's Intent section.
53
+ 2. **`spec-only`** — ENRICH found a spec but it has no Suggested Review Order. Intent source: spec's Intent section.
54
+ 3. **`bare-commit`** — no spec found. Intent source: commit message. If the commit message is terse (under 10 words), scan the diff for the primary change pattern and draft a one-sentence intent. Flag it as `[inferred]` in the output so the user can correct it.
55
+
56
+ ## PRODUCE ORIENTATION
57
+
58
+ ### Intent Summary
59
+
60
+ - If intent comes from a spec's Intent section, display it verbatim regardless of length — it's already written to be concise.
61
+ - For other sources (commit messages, bug reports, user description): if ≤200 tokens, display verbatim. If longer, distill to ≤200 tokens. Link to the full source when one exists (e.g. a file path or URL).
62
+ - Format: `> **Intent:** {summary}`
63
+
64
+ ### Surface Area Stats
65
+
66
+ Best-effort stats derived from the diff. Try these baselines in order:
67
+
68
+ 1. `baseline_commit` from the spec's frontmatter.
69
+ 2. Branch merge-base against `main` (or the default branch).
70
+ 3. `HEAD~1..HEAD` (latest commit only — tell the user).
71
+ 4. If git is unavailable or all of the above fail, skip stats and note: "Could not compute stats."
72
+
73
+ Use `git diff --stat` and `git diff --numstat` for file-level counts, and scan the full diff content for the richer metrics.
74
+
75
+ Display as:
76
+
77
+ ```
78
+ N files changed · M modules touched · ~L lines of logic · B boundary crossings · P new public interfaces
79
+ ```
80
+
81
+ - **Files changed**: count from `git diff --stat`.
82
+ - **Modules touched**: distinct top-level directories with changes (from `--stat` file paths).
83
+ - **Lines of logic**: added/modified lines excluding blanks, imports, formatting. Scan diff content; `~` because approximate.
84
+ - **Boundary crossings**: changes spanning more than one top-level module. `0` if single module.
85
+ - **New public interfaces**: new exports, endpoints, public methods found in the diff. `0` if none.
86
+
87
+ Omit any metric you cannot compute rather than guessing.
88
+
89
+ ### Present
90
+
91
+ ```
92
+ [Orientation] → Walkthrough → Detail Pass → Testing
93
+
94
+ > **Intent:** {intent_summary}
95
+
96
+ {stats line}
97
+ ```
98
+
99
+ ## FALLBACK TRAIL GENERATION
100
+
101
+ If review mode is not `full-trail`, read fully and follow `./generate-trail.md` to build one from the diff. Then return here and continue to NEXT. If trail generation fails (e.g., git unavailable), the original review mode is preserved — step-02 handles this with its non-trail path.
102
+
103
+ ## NEXT
104
+
105
+ Read fully and follow `./step-02-walkthrough.md`
@@ -0,0 +1,89 @@
1
+ # Step 2: Walkthrough
2
+
3
+ Display: `Orientation → [Walkthrough] → Detail Pass → Testing`
4
+
5
+ ## Follow Global Step Rules in SKILL.md
6
+
7
+ - Organize by **concern**, not by file. A concern is a cohesive design intent — e.g., "input validation," "state management," "API contract." One file may appear under multiple concerns; one concern may span multiple files.
8
+ - The walkthrough activates **design judgment**, not correctness checking. Frame each concern as "here's what this change does and why" — the human evaluates whether it's the right approach for the system.
9
+
10
+ ## BUILD THE WALKTHROUGH
11
+
12
+ ### Identify Concerns
13
+
14
+ **With Suggested Review Order** (`full-trail` mode — the normal path, including when step-01 generated a trail):
15
+
16
+ 1. Read the Suggested Review Order stops from the spec (or from conversation context if generated by step-01 fallback).
17
+ 2. Resolve each stop to a file in the current repo. Output in `path:line` format per the standing rule.
18
+ 3. Read the diff to understand what each stop actually does.
19
+ 4. Group stops by concern. Stops that share a design intent belong together even if they're in different files. A stop may appear under multiple concerns if it serves multiple purposes.
20
+
21
+ **Without Suggested Review Order** (fallback when trail generation failed, e.g., git unavailable):
22
+
23
+ 1. Get the diff against the appropriate baseline (same rules as step 1).
24
+ 2. Identify concerns by reading the diff for cohesive design intents:
25
+ - Functional groupings — what user-facing behavior does each cluster of changes support?
26
+ - Architectural layers — does the change cross boundaries (API → service → data)?
27
+ - Design decisions — where did the author choose between alternatives?
28
+ 3. For each concern, identify the key code locations as `path:line` stops.
29
+
30
+ ### Order for Comprehension
31
+
32
+ Sequence concerns top-down: start with the highest-level intent (the "what and why"), then drill into supporting implementation. Within each concern, order stops so each one builds on the previous. The reader should never encounter a reference to something they haven't seen yet.
33
+
34
+ If the change has a natural entry point (e.g., a new public API, a config change, a UI entry point), lead with it.
35
+
36
+ ### Write Each Concern
37
+
38
+ For each concern, produce:
39
+
40
+ 1. **Heading** — a short phrase naming the design intent (not a file name, not a module name).
41
+ 2. **Why** — 1–2 sentences: what problem this concern addresses, why this approach was chosen over alternatives. If the spec documents rejected alternatives, reference them here.
42
+ 3. **Stops** — each stop on its own line: `path:line` followed by a brief phrase (not a sentence) describing what this location does for the concern. Keep framing under 15 words per stop.
43
+
44
+ Target 2–5 concerns for a typical change. A single-concern change is fine — don't invent groupings. A change with more than 7 concerns is a signal the scope may be too large, but present it anyway.
45
+
46
+ ## PRESENT
47
+
48
+ Output the full walkthrough as a single message with this structure:
49
+
50
+ ```
51
+ Orientation → [Walkthrough] → Detail Pass → Testing
52
+ ```
53
+
54
+ Then each concern group using this format:
55
+
56
+ ```
57
+ ### {Concern Heading}
58
+
59
+ {Why — 1–2 sentences}
60
+
61
+ - `path:line` — {brief framing}
62
+ - `path:line` — {brief framing}
63
+ - ...
64
+ ```
65
+
66
+ End the message with:
67
+
68
+ ```
69
+ ---
70
+
71
+ Take your time — click through the stops, read the diff, trace the logic. While you are reviewing, you can:
72
+ - "run advanced elicitation on the error handling"
73
+ - "party mode on whether this schema migration is safe"
74
+ - or just ask anything
75
+
76
+ When you're ready, say **next** and I'll surface the highest-risk spots.
77
+ ```
78
+
79
+ ## EARLY EXIT
80
+
81
+ If at any point the human signals they want to make a decision about this {change_type} (e.g., "let's ship it", "this needs a rethink", "I'm done reviewing", or anything suggesting they're ready to decide), confirm their intent:
82
+
83
+ - If they want to **approve and ship** → read fully and follow `./step-05-wrapup.md`
84
+ - If they want to **reject and rework** → read fully and follow `./step-05-wrapup.md`
85
+ - If you misread them → acknowledge and continue the current step.
86
+
87
+ ## NEXT
88
+
89
+ Default: read fully and follow `./step-03-detail-pass.md`
@@ -0,0 +1,106 @@
1
+ # Step 3: Detail Pass
2
+
3
+ Display: `Orientation → Walkthrough → [Detail Pass] → Testing`
4
+
5
+ ## Follow Global Step Rules in SKILL.md
6
+
7
+ - The detail pass surfaces what the human should **think about**, not what the code got wrong. Machine hardening already handled correctness. This activates risk awareness.
8
+ - The LLM detects risk category by pattern. The human judges significance. Do not assign severity scores or numeric rankings — ordering by blast radius (below) is sequencing for readability, not a severity judgment.
9
+ - If no high-risk spots exist, say so explicitly. Do not invent findings.
10
+
11
+ ## IDENTIFY RISK SPOTS
12
+
13
+ Scan the diff for changes touching risk-sensitive patterns. Look for 2–5 spots where a mistake would have the highest blast radius — not the most complex code, but the code where being wrong costs the most.
14
+
15
+ Risk categories to detect:
16
+
17
+ - `[auth]` — authentication, authorization, session, token, permission, access control
18
+ - `[public API]` — new/changed endpoints, exports, public methods, interface contracts
19
+ - `[schema]` — database migrations, schema changes, data model modifications, serialization
20
+ - `[billing]` — payment, pricing, subscription, metering, usage tracking
21
+ - `[infra]` — deployment, CI/CD, environment variables, config files, infrastructure
22
+ - `[security]` — input validation, sanitization, crypto, secrets, CORS, CSP
23
+ - `[config]` — feature flags, environment-dependent behavior, defaults
24
+ - `[other]` — anything risk-sensitive that doesn't fit the above (e.g., concurrency, data privacy, backwards compatibility). Use a descriptive tag.
25
+
26
+ Sequence spots so the highest blast radius comes first (how much breaks if this is wrong), not by diff order or file order. If more than 5 spots qualify, show the top 5 and note: "N additional spots omitted — ask if you want the full list."
27
+
28
+ If the change has no spots matching these patterns, state: "No high-risk spots found in this change — the diff speaks for itself." Do not force findings.
29
+
30
+ ## SURFACE MACHINE HARDENING FINDINGS
31
+
32
+ Check whether the spec has a `## Spec Change Log` section with entries (populated by adversarial review loops).
33
+
34
+ - **If entries exist:** Read them. Surface findings that are instructive for the human reviewer — not bugs that were already fixed, but decisions the review loop flagged that the human should be aware of. Format: brief summary of what was flagged and what was decided.
35
+ - **If no entries or no spec:** Skip this section entirely. Do not mention it.
36
+
37
+ ## PRESENT
38
+
39
+ Output as a single message:
40
+
41
+ ```
42
+ Orientation → Walkthrough → [Detail Pass] → Testing
43
+ ```
44
+
45
+ ### Risk Spots
46
+
47
+ For each spot, one line:
48
+
49
+ ```
50
+ - `path:line` — [tag] reason-phrase
51
+ ```
52
+
53
+ Example:
54
+
55
+ ```
56
+ - `src/auth/middleware.ts:42` — [auth] New token validation bypasses rate limiter
57
+ - `migrations/003_add_index.sql:7` — [schema] Index on high-write table, check lock behavior
58
+ - `api/routes/billing.ts:118` — [billing] Metering calculation changed, verify idempotency
59
+ ```
60
+
61
+ ### Machine Hardening (only if findings exist)
62
+
63
+ ```
64
+ ### Machine Hardening
65
+
66
+ - Finding summary — what was flagged, what was decided
67
+ - ...
68
+ ```
69
+
70
+ ### Closing menu
71
+
72
+ End the message with:
73
+
74
+ ```
75
+ ---
76
+
77
+ You've seen the design and the risk landscape. From here:
78
+ - **"dig into [area]"** — I'll deep-dive that specific area with correctness focus
79
+ - **"next"** — I'll suggest how to observe the behavior
80
+ ```
81
+
82
+ ## EARLY EXIT
83
+
84
+ If at any point the human signals they want to make a decision about this {change_type} (e.g., "let's ship it", "this needs a rethink", "I'm done reviewing", or anything suggesting they're ready to decide), confirm their intent:
85
+
86
+ - If they want to **approve and ship** → read fully and follow `./step-05-wrapup.md`
87
+ - If they want to **reject and rework** → read fully and follow `./step-05-wrapup.md`
88
+ - If you misread them → acknowledge and continue the current step.
89
+
90
+ ## TARGETED RE-REVIEW
91
+
92
+ When the human says "dig into [area]" (e.g., "dig into the auth changes", "dig into the schema migration"):
93
+
94
+ 1. If the specified area does not map to any code in the diff, say so: "I don't see [area] in this change — did you mean something else?" Return to the closing menu.
95
+ 2. Identify all code locations in the diff relevant to the specified area.
96
+ 3. Read each location in full context (not just the diff hunk — read surrounding code).
97
+ 4. Shift to **correctness mode**: trace edge cases, check boundary conditions, verify error handling, look for off-by-one errors, race conditions, resource leaks.
98
+ 5. Present findings as a compact list — each finding is `path:line` + what you found + why it matters.
99
+ 6. If nothing concerning is found, say so: "Looked closely at [area] — nothing concerning. The implementation is solid."
100
+ 7. After presenting, show only the closing menu (not the full risk spots list again).
101
+
102
+ The human can trigger multiple targeted re-reviews. Each time, present new findings and the closing menu only.
103
+
104
+ ## NEXT
105
+
106
+ Read fully and follow `./step-04-testing.md`
@@ -0,0 +1,74 @@
1
+ # Step 4: Testing
2
+
3
+ Display: `Orientation → Walkthrough → Detail Pass → [Testing]`
4
+
5
+ ## Follow Global Step Rules in SKILL.md
6
+
7
+ - This is **experiential**, not analytical. The detail pass asked "did you think about X?" — this says "you could see X with your own eyes."
8
+ - Do not prescribe. The human decides whether observing the behavior is worth their time. Frame suggestions as options, not obligations.
9
+ - Do not duplicate CI, test suites, or automated checks. Assume those exist and work. This is about manual observation — the kind of confidence-building no automated test provides.
10
+ - If the change has no user-visible behavior, say so explicitly. Do not invent observations.
11
+
12
+ ## IDENTIFY OBSERVABLE BEHAVIOR
13
+
14
+ Scan the diff and spec for changes that produce behavior a human could directly observe. Categories to look for:
15
+
16
+ - **UI changes** — new screens, modified layouts, changed interactions, error states
17
+ - **CLI/terminal output** — new commands, changed output, new flags or options
18
+ - **API responses** — new endpoints, changed payloads, different status codes
19
+ - **State changes** — database records, file system artifacts, config effects
20
+ - **Error paths** — bad input, missing dependencies, edge conditions
21
+
22
+ For each observable behavior, determine:
23
+
24
+ 1. **What to do** — the specific action (command to run, button to click, request to send)
25
+ 2. **What to expect** — the observable result that confirms the change works
26
+ 3. **Why bother** — one phrase connecting this observation to the change's intent (omit if obvious from context)
27
+
28
+ Target 2–5 suggestions for a typical change. If more than 5 qualify, prioritize by how much confidence the observation provides relative to effort. A change with zero observable behavior is fine — do not pad with trivial observations.
29
+
30
+ ## PRESENT
31
+
32
+ Output as a single message:
33
+
34
+ ```
35
+ Orientation → Walkthrough → Detail Pass → [Testing]
36
+ ```
37
+
38
+ Then the testing suggestions using this format:
39
+
40
+ ```
41
+ ### How to See It Working
42
+
43
+ **{Brief description}**
44
+ Do: {specific action}
45
+ Expect: {observable result}
46
+
47
+ **{Brief description}**
48
+ Do: {specific action}
49
+ Expect: {observable result}
50
+ ```
51
+
52
+ Include code blocks for commands or requests where helpful.
53
+
54
+ If the change has no observable behavior, replace the suggestions with:
55
+
56
+ ```
57
+ ### How to See It Working
58
+
59
+ This change is internal — no user-visible behavior to observe. The diff and tests tell the full story.
60
+ ```
61
+
62
+ ### Closing
63
+
64
+ End the message with:
65
+
66
+ ```
67
+ ---
68
+
69
+ You've seen the change and how to verify it. When you're ready to make a call, just say so.
70
+ ```
71
+
72
+ ## NEXT
73
+
74
+ When the human signals they're ready to make a decision about this {change_type}, read fully and follow `./step-05-wrapup.md`
@@ -0,0 +1,24 @@
1
+ # Step 5: Wrap-Up
2
+
3
+ Display: `Orientation → Walkthrough → Detail Pass → Testing → [Wrap-Up]`
4
+
5
+ ## Follow Global Step Rules in SKILL.md
6
+
7
+ ## PROMPT FOR DECISION
8
+
9
+ ```
10
+ ---
11
+
12
+ Review complete. What's the call on this {change_type}?
13
+ - **Approve** — ship it (I can help with interactive patching first if needed)
14
+ - **Rework** — back to the drawing board (revert, revise the spec, try a different approach)
15
+ - **Discuss** — something's still on your mind
16
+ ```
17
+
18
+ HALT — do not proceed until the user makes their choice.
19
+
20
+ ## ACT ON DECISION
21
+
22
+ - **Approve**: Acknowledge briefly. If the human wants to patch something before shipping, help apply the fix interactively. If reviewing a PR, offer to approve via `gh pr review --approve` — but confirm with the human before executing, since this is a visible action on a shared resource.
23
+ - **Rework**: Ask what went wrong — was it the approach, the spec, or the implementation? Help the human decide on next steps (revert commit, open an issue, revise the spec, etc.). Help draft specific, actionable feedback tied to `path:line` locations if the change is a PR from someone else.
24
+ - **Discuss**: Open conversation — answer questions, explore concerns, dig into any aspect. After discussion, return to the decision prompt above.
@@ -15,18 +15,37 @@ story_key: '' # set at runtime when discovered from sprint status
15
15
 
16
16
  ## INSTRUCTIONS
17
17
 
18
- 1. **Detect review intent from invocation text.** Check the triggering prompt for phrases that map to a review mode:
19
- - "staged" / "staged changes" → Staged changes only
20
- - "uncommitted" / "working tree" / "all changes" → Uncommitted changes (staged + unstaged)
21
- - "branch diff" / "vs main" / "against main" / "compared to {branch}" → Branch diff (extract base branch if mentioned)
22
- - "commit range" / "last N commits" / "{sha}..{sha}" Specific commit range
23
- - "this diff" / "provided diff" / "paste" User-provided diff (do not match bare "diff" — it appears in other modes)
24
- - When multiple phrases match, prefer the most specific match (e.g., "branch diff" over bare "diff").
25
- - **If a clear match is found:** Announce the detected mode (e.g., "Detected intent: review staged changes only") and proceed directly to constructing `{diff_output}` using the corresponding sub-case from instruction 3. Skip to instruction 4 (spec question).
26
- - **If no match from invocation text, check sprint tracking.** Look for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for any story with status `review`. Handle as follows:
27
- - **Exactly one `review` story:** Set `{story_key}` to the story's key (e.g., `1-2-user-auth`). Suggest it: "I found story {{story-id}} in `review` status. Would you like to review its changes? [Y] Yes / [N] No, let me choose". If confirmed, use the story context to determine the diff source (branch name derived from story slug, or uncommitted changes). If declined, clear `{story_key}` and fall through to instruction 2.
28
- - **Multiple `review` stories:** Present them as numbered options alongside a manual choice option. Wait for user selection. If the user selects a story, set `{story_key}` to the selected story's key and use the selected story's context to determine the diff source as in the single-story case above, and proceed to instruction 3. If the user selects the manual choice, clear `{story_key}` and fall through to instruction 2.
29
- - **If no match and no sprint tracking:** Fall through to instruction 2.
18
+ 1. **Find the review target.** The conversation context before this skill was triggered IS your starting point — not a blank slate. Check in this order — stop as soon as the review target is identified:
19
+
20
+ **Tier 1 Explicit argument.**
21
+ Did the user pass a PR, commit SHA, branch, spec file, or diff source this message?
22
+ - PR reference → resolve to branch/commit via `gh pr view`. If resolution fails, ask for a SHA or branch.
23
+ - Commit or branchuse directly.
24
+ - Spec file set `{spec_file}` to the provided path. Check its frontmatter for `baseline_commit`. If found, use as diff baseline. If not found, continue the cascade (a spec alone does not identify a diff source).
25
+ - Also scan the argument for diff-mode keywords that narrow the scope:
26
+ - "staged" / "staged changes" Staged changes only
27
+ - "uncommitted" / "working tree" / "all changes" Uncommitted changes (staged + unstaged)
28
+ - "branch diff" / "vs main" / "against main" / "compared to <branch>" Branch diff (extract base branch if mentioned)
29
+ - "commit range" / "last N commits" / "<from-sha>..<to-sha>" Specific commit range
30
+ - "this diff" / "provided diff" / "paste" → User-provided diff (do not match bare "diff" — it appears in other modes)
31
+ - When multiple keywords match, prefer the most specific (e.g., "branch diff" over bare "diff").
32
+
33
+ **Tier 2 — Recent conversation.**
34
+ Do the last few messages reveal what the user wants to be reviewed? Look for spec paths, commit refs, branches, PRs, or descriptions of a change. Apply the same diff-mode keyword scan and routing as Tier 1.
35
+
36
+ **Tier 3 — Sprint tracking.**
37
+ Look for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for stories with status `review`:
38
+ - **Exactly one `review` story:** Set `{story_key}` to the story's key (e.g., `1-2-user-auth`). Suggest it: "I found story <story-id> in `review` status. Would you like to review its changes? [Y] Yes / [N] No, let me choose". If confirmed, use the story context to determine the diff source (branch name derived from story slug, or uncommitted changes). If declined, clear `{story_key}` and fall through.
39
+ - **Multiple `review` stories:** Present them as numbered options alongside a manual choice option. Wait for user selection. If a story is selected, set `{story_key}` and use its context to determine the diff source. If manual choice is selected, clear `{story_key}` and fall through.
40
+ - **None:** Fall through.
41
+
42
+ **Tier 4 — Current git state.**
43
+ If version control is unavailable, skip to Tier 5. Otherwise, check the current branch and HEAD. If the branch is not `main` (or the default branch), confirm: "I see HEAD is `<short-sha>` on `<branch>` — do you want to review this branch's changes?" If confirmed, treat as a branch diff against `main`. If declined, fall through.
44
+
45
+ **Tier 5 — Ask.**
46
+ Fall through to instruction 2.
47
+
48
+ Never ask extra questions beyond what the cascade prescribes. If a tier above already identified the target, skip the remaining tiers and proceed to instruction 3 (construct diff).
30
49
 
31
50
  2. HALT. Ask the user: **What do you want to review?** Present these options:
32
51
  - **Uncommitted changes** (staged + unstaged)
@@ -36,15 +55,19 @@ story_key: '' # set at runtime when discovered from sprint status
36
55
  - **Provided diff or file list** (user pastes or provides a path)
37
56
 
38
57
  3. Construct `{diff_output}` from the chosen source.
58
+ - For **staged changes only**: run `git diff --cached`.
59
+ - For **uncommitted changes** (staged + unstaged): run `git diff HEAD`.
39
60
  - For **branch diff**: verify the base branch exists before running `git diff`. If it does not exist, HALT and ask the user for a valid branch.
40
61
  - For **commit range**: verify the range resolves. If it does not, HALT and ask the user for a valid range.
41
62
  - For **provided diff**: validate the content is non-empty and parseable as a unified diff. If it is not parseable, HALT and ask the user to provide a valid diff.
42
63
  - For **file list**: validate each path exists in the working tree. Construct `{diff_output}` by running `git diff HEAD -- <path1> <path2> ...`. If any paths are untracked (new files not yet staged), use `git diff --no-index /dev/null <path>` to include them. If the diff is empty (files have no uncommitted changes and are not untracked), ask the user whether to review the full file contents or to specify a different baseline.
43
64
  - After constructing `{diff_output}`, verify it is non-empty regardless of source type. If empty, HALT and tell the user there is nothing to review.
44
65
 
45
- 4. Ask the user: **Is there a spec or story file that provides context for these changes?**
46
- - If yes: set `{spec_file}` to the path provided, verify the file exists and is readable, then set `{review_mode}` = `"full"`.
47
- - If no: set `{review_mode}` = `"no-spec"`.
66
+ 4. **Set the spec context.**
67
+ - If `{spec_file}` is already set (from Tier 1 or Tier 2): verify the file exists and is readable, then set `{review_mode}` = `"full"`.
68
+ - Otherwise, ask the user: **Is there a spec or story file that provides context for these changes?**
69
+ - If yes: set `{spec_file}` to the path provided, verify the file exists and is readable, then set `{review_mode}` = `"full"`.
70
+ - If no: set `{review_mode}` = `"no-spec"`.
48
71
 
49
72
  5. If `{review_mode}` = `"full"` and the file at `{spec_file}` has a `context` field in its frontmatter listing additional docs, load each referenced document. Warn the user about any docs that cannot be found.
50
73
 
@@ -217,8 +217,8 @@
217
217
  <check-item id="5.5">
218
218
  <prompt>Establish agent handoff plan</prompt>
219
219
  <action>Identify which roles/agents will execute the changes:</action>
220
- - Development team (for implementation)
221
- - Product Owner / Scrum Master (for backlog changes)
220
+ - Developer agent (for implementation)
221
+ - Product Owner / Developer (for backlog changes)
222
222
  - Product Manager / Architect (for strategic changes)
223
223
  <action>Define responsibilities for each role</action>
224
224
  <status>[ ] Done / [ ] N/A / [ ] Action-needed</status>
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Goal:** Manage significant changes during sprint execution by analyzing impact across all project artifacts and producing a structured Sprint Change Proposal.
4
4
 
5
- **Your Role:** You are a Scrum Master navigating change management. Analyze the triggering issue, assess impact across PRD, epics, architecture, and UX artifacts, and produce an actionable Sprint Change Proposal with clear handoff.
5
+ **Your Role:** You are a Developer navigating change management. Analyze the triggering issue, assess impact across PRD, epics, architecture, and UX artifacts, and produce an actionable Sprint Change Proposal with clear handoff.
6
6
 
7
7
  ---
8
8
 
@@ -192,8 +192,8 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
192
192
  <action>Section 5: Implementation Handoff</action>
193
193
 
194
194
  - Categorize change scope:
195
- - Minor: Direct implementation by dev team
196
- - Moderate: Backlog reorganization needed (PO/SM)
195
+ - Minor: Direct implementation by Developer agent
196
+ - Moderate: Backlog reorganization needed (PO/DEV)
197
197
  - Major: Fundamental replan required (PM/Architect)
198
198
  - Specify handoff recipients and their responsibilities
199
199
  - Define success criteria for implementation
@@ -219,8 +219,8 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
219
219
  <action>Finalize Sprint Change Proposal document</action>
220
220
  <action>Determine change scope classification:</action>
221
221
 
222
- - **Minor**: Can be implemented directly by development team
223
- - **Moderate**: Requires backlog reorganization and PO/SM coordination
222
+ - **Minor**: Can be implemented directly by Developer agent
223
+ - **Moderate**: Requires backlog reorganization and PO/DEV coordination
224
224
  - **Major**: Needs fundamental replan with PM/Architect involvement
225
225
 
226
226
  <action>Provide appropriate handoff based on scope:</action>
@@ -228,12 +228,12 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
228
228
  </check>
229
229
 
230
230
  <check if="Minor scope">
231
- <action>Route to: Development team for direct implementation</action>
231
+ <action>Route to: Developer agent for direct implementation</action>
232
232
  <action>Deliverables: Finalized edit proposals and implementation tasks</action>
233
233
  </check>
234
234
 
235
235
  <check if="Moderate scope">
236
- <action>Route to: Product Owner / Scrum Master agents</action>
236
+ <action>Route to: Product Owner / Developer agents</action>
237
237
  <action>Deliverables: Sprint Change Proposal + backlog reorganization plan</action>
238
238
  </check>
239
239
 
@@ -261,7 +261,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
261
261
  - Implementation handoff plan
262
262
 
263
263
  <action>Report workflow completion to user with personalized message: "Correct Course workflow complete, {user_name}!"</action>
264
- <action>Remind user of success criteria and next steps for implementation team</action>
264
+ <action>Remind user of success criteria and next steps for Developer agent</action>
265
265
  </step>
266
266
 
267
267
  </workflow>
@@ -1,4 +1,4 @@
1
- # Quinn Automate - Validation Checklist
1
+ # QA Automate - Validation Checklist
2
2
 
3
3
  ## Test Generation
4
4
 
@@ -0,0 +1,62 @@
1
+ # Compile Epic Context
2
+
3
+ **Task**
4
+ Given an epic number, the epics file, the planning artifacts directory, and a desired output path, compile a clean, focused, developer-ready context file (`epic-<N>-context.md`).
5
+
6
+ **Steps**
7
+
8
+ 1. Read the epics file and extract the target epic's title, goal, and list of stories.
9
+ 2. Scan the planning artifacts directory for the standard files (PRD, architecture, UX/design, product brief).
10
+ 3. Pull only the information relevant to this epic.
11
+ 4. Write the compiled context to the exact output path using the format below.
12
+
13
+ ## Exact Output Format
14
+
15
+ Use these headings:
16
+
17
+ ```markdown
18
+ # Epic {N} Context: {Epic Title}
19
+
20
+ <!-- Compiled from planning artifacts. Edit freely. Regenerate with compile-epic-context if planning docs change. -->
21
+
22
+ ## Goal
23
+
24
+ {One clear paragraph: what this epic achieves and why it matters.}
25
+
26
+ ## Stories
27
+
28
+ - Story X.Y: Brief title only
29
+ - ...
30
+
31
+ ## Requirements & Constraints
32
+
33
+ {Relevant functional/non-functional requirements and success criteria for this epic (describe by purpose, not source).}
34
+
35
+ ## Technical Decisions
36
+
37
+ {Key architecture decisions, constraints, patterns, data models, and conventions relevant to this epic.}
38
+
39
+ ## UX & Interaction Patterns
40
+
41
+ {Relevant UX flows, interaction patterns, and design constraints (omit section entirely if nothing relevant).}
42
+
43
+ ## Cross-Story Dependencies
44
+
45
+ {Dependencies between stories in this epic or with other epics/systems (omit if none).}
46
+ ```
47
+
48
+ ## Rules
49
+
50
+ - **Scope aggressively.** Include only what a developer working on any story in this epic actually needs. When in doubt, leave it out — the developer can always read the full planning doc.
51
+ - **Describe by purpose, not by source.** Write "API responses must include pagination metadata" not "Per PRD section 3.2.1, pagination is required." Planning doc internals will change; the constraint won't.
52
+ - **No full copies.** Never quote source documents, section numbers, or paste large blocks verbatim. Always distill.
53
+ - **No story-level details.** The story list is for orientation only. Individual story specs handle the details.
54
+ - **Nothing derivable from the codebase.** Don't document what a developer can learn by reading the code.
55
+ - **Be concise and actionable.** Target 800–1500 tokens total. This file loads into quick-dev's context alongside other material.
56
+ - **Never hallucinate content.** If source material doesn't say something, don't invent it.
57
+ - **Omit empty sections entirely**, except Goal and Stories, which are always required.
58
+
59
+ ## Error handling
60
+
61
+ - **If the epics file is missing or the target epic is not found:** write nothing and report the problem to the calling agent. Goal and Stories cannot be populated without a usable epics file.
62
+ - **If planning artifacts are missing or empty:** still produce the file with Goal and Stories populated from the epics file, and note the gap in the Goal section. Never hallucinate content to fill missing sections.
@@ -3,7 +3,7 @@ title: '{title}'
3
3
  type: 'feature' # feature | bugfix | refactor | chore
4
4
  created: '{date}'
5
5
  status: 'draft' # draft | ready-for-dev | in-progress | in-review | done
6
- context: [] # optional: max 3 project-wide standards/docs. NO source code files.
6
+ context: [] # optional: `{project-root}/`-prefixed paths to project-wide standards/docs the implementation agent should load. Keep short only what isn't already distilled into the spec body.
7
7
  ---
8
8
 
9
9
  <!-- Target: 900–1300 tokens. Above 1600 = high risk of context rot.