bmad-method 6.10.1-next.2 → 6.10.1-next.21

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 (156) hide show
  1. package/.claude-plugin/marketplace.json +52 -27
  2. package/package.json +4 -3
  3. package/removals.txt +5 -0
  4. package/src/bmm-skills/1-analysis/bmad-agent-analyst/customize.toml +19 -4
  5. package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +1 -1
  6. package/src/bmm-skills/1-analysis/bmad-product-brief/customize.toml +5 -3
  7. package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +2 -0
  8. package/src/bmm-skills/2-plan-workflows/bmad-prd/customize.toml +5 -3
  9. package/src/{core-skills → bmm-skills/2-plan-workflows}/bmad-spec/SKILL.md +18 -3
  10. package/src/{core-skills → bmm-skills/2-plan-workflows}/bmad-spec/assets/spec-template.md +1 -1
  11. package/src/bmm-skills/2-plan-workflows/bmad-spec/assets/stories-schema.md +44 -0
  12. package/src/{core-skills → bmm-skills/2-plan-workflows}/bmad-spec/customize.toml +3 -4
  13. package/src/bmm-skills/2-plan-workflows/bmad-ux/customize.toml +4 -2
  14. package/src/bmm-skills/3-solutioning/bmad-architecture/SKILL.md +2 -2
  15. package/src/bmm-skills/3-solutioning/bmad-architecture/customize.toml +4 -2
  16. package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +3 -0
  17. package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +2 -4
  18. package/src/bmm-skills/4-implementation/bmad-code-review/customize.toml +52 -0
  19. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-01-gather-context.md +0 -1
  20. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +10 -24
  21. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-03-triage.md +3 -4
  22. package/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md +33 -12
  23. package/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml +75 -0
  24. package/src/bmm-skills/4-implementation/bmad-dev-auto/spec-template.md +4 -4
  25. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +22 -4
  26. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md +5 -6
  27. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md +8 -4
  28. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-04-review.md +13 -19
  29. package/src/bmm-skills/4-implementation/bmad-dev-story/customize.toml +3 -0
  30. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +6 -108
  31. package/src/bmm-skills/4-implementation/bmad-quick-dev/customize.toml +73 -0
  32. package/src/bmm-skills/4-implementation/bmad-quick-dev/render.py +381 -0
  33. package/src/bmm-skills/4-implementation/bmad-quick-dev/spec-template.md +2 -2
  34. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md +11 -13
  35. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-02-plan.md +4 -9
  36. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-03-implement.md +12 -4
  37. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +8 -20
  38. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-05-present.md +4 -4
  39. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +12 -13
  40. package/src/bmm-skills/4-implementation/bmad-quick-dev/sync-sprint-status.md +6 -6
  41. package/src/bmm-skills/4-implementation/bmad-quick-dev/workflow.md +85 -0
  42. package/src/bmm-skills/module-help.csv +2 -4
  43. package/src/bmm-skills/module.yaml +2 -5
  44. package/src/bmm-skills/v6-shims/README.md +24 -0
  45. package/src/bmm-skills/{3-solutioning → v6-shims}/bmad-create-architecture/SKILL.md +1 -1
  46. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-create-prd/SKILL.md +3 -3
  47. package/src/bmm-skills/v6-shims/bmad-domain-research/SKILL.md +14 -0
  48. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-edit-prd/SKILL.md +3 -3
  49. package/src/bmm-skills/v6-shims/bmad-market-research/SKILL.md +14 -0
  50. package/src/bmm-skills/v6-shims/bmad-technical-research/SKILL.md +14 -0
  51. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-validate-prd/SKILL.md +3 -3
  52. package/src/core-skills/bmad-advanced-elicitation/SKILL.md +26 -103
  53. package/src/core-skills/bmad-advanced-elicitation/customize.toml +54 -0
  54. package/src/core-skills/bmad-advanced-elicitation/scripts/pick_methods.py +233 -0
  55. package/src/core-skills/bmad-advanced-elicitation/scripts/tests/test_pick_methods.py +228 -0
  56. package/src/core-skills/bmad-brainstorming/SKILL.md +3 -3
  57. package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +2 -0
  58. package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +1 -1
  59. package/src/core-skills/bmad-brainstorming/scripts/brain.py +36 -6
  60. package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +22 -0
  61. package/src/core-skills/bmad-customize/SKILL.md +2 -2
  62. package/src/core-skills/bmad-deep-recon/SKILL.md +82 -0
  63. package/src/core-skills/bmad-deep-recon/assets/research.template.md +18 -0
  64. package/src/core-skills/bmad-deep-recon/customize.toml +212 -0
  65. package/src/core-skills/bmad-deep-recon/references/draft.md +8 -0
  66. package/src/core-skills/bmad-deep-recon/references/finalize.md +11 -0
  67. package/src/core-skills/bmad-deep-recon/references/html-briefing.md +16 -0
  68. package/src/core-skills/bmad-deep-recon/references/lifecycle.md +11 -0
  69. package/src/core-skills/bmad-deep-recon/references/process.md +10 -0
  70. package/src/core-skills/bmad-deep-recon/references/run.md +73 -0
  71. package/src/core-skills/bmad-deep-recon/references/selection.md +13 -0
  72. package/src/core-skills/bmad-deep-recon/references/synthesis.md +16 -0
  73. package/src/core-skills/bmad-deep-recon/references/verification.md +29 -0
  74. package/src/core-skills/bmad-deep-recon/scripts/recon_kit.py +322 -0
  75. package/src/core-skills/bmad-deep-recon/scripts/tests/test_recon_kit.py +144 -0
  76. package/src/core-skills/bmad-deep-recon/types/academic-lit.md +19 -0
  77. package/src/core-skills/bmad-deep-recon/types/competitive.md +19 -0
  78. package/src/core-skills/bmad-deep-recon/types/domain.md +19 -0
  79. package/src/core-skills/bmad-deep-recon/types/market.md +19 -0
  80. package/src/core-skills/bmad-deep-recon/types/technical.md +19 -0
  81. package/src/core-skills/bmad-deep-recon/types/user-voice.md +19 -0
  82. package/src/core-skills/bmad-forge-idea/SKILL.md +2 -2
  83. package/src/core-skills/bmad-forge-idea/scripts/resolve_personas.py +4 -1
  84. package/src/core-skills/bmad-help/SKILL.md +1 -1
  85. package/src/core-skills/bmad-party-mode/SKILL.md +2 -2
  86. package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +11 -3
  87. package/src/core-skills/bmad-review/SKILL.md +49 -0
  88. package/src/core-skills/bmad-review/customize.toml +141 -0
  89. package/src/core-skills/bmad-review/references/editorial-common.md +56 -0
  90. package/src/core-skills/bmad-review/references/lens-adversarial.md +18 -0
  91. package/src/core-skills/bmad-review/references/lens-edge-case-hunter.md +54 -0
  92. package/src/core-skills/bmad-review/references/lens-prose.md +7 -0
  93. package/src/core-skills/bmad-review/references/lens-structure.md +9 -0
  94. package/src/core-skills/{bmad-review-verification-gap/SKILL.md → bmad-review/references/lens-verification-gap.md} +15 -39
  95. package/src/core-skills/bmad-review/references/structure-models.md +44 -0
  96. package/src/core-skills/bmad-review/scripts/tests/test_word_metrics.py +62 -0
  97. package/src/core-skills/bmad-review/scripts/word_metrics.py +102 -0
  98. package/src/core-skills/module-help.csv +3 -7
  99. package/src/core-skills/module.yaml +5 -0
  100. package/src/core-skills/v6-shims/README.md +25 -0
  101. package/src/core-skills/v6-shims/bmad-editorial-review/SKILL.md +6 -0
  102. package/src/core-skills/v6-shims/bmad-editorial-review/customize.toml +31 -0
  103. package/src/core-skills/v6-shims/bmad-editorial-review-prose/SKILL.md +6 -0
  104. package/src/core-skills/v6-shims/bmad-editorial-review-structure/SKILL.md +6 -0
  105. package/src/core-skills/v6-shims/bmad-review-adversarial-general/SKILL.md +6 -0
  106. package/src/core-skills/v6-shims/bmad-review-edge-case-hunter/SKILL.md +6 -0
  107. package/src/core-skills/v6-shims/bmad-review-verification-gap/SKILL.md +6 -0
  108. package/tools/installer/ide/platform-codes.yaml +7 -0
  109. package/tools/installer/modules/custom-module-manager.js +12 -6
  110. package/tools/installer/modules/external-manager.js +12 -8
  111. package/tools/installer/modules/git-env.js +47 -0
  112. package/tools/skill-validator.md +11 -1
  113. package/tools/validate-skills.js +33 -0
  114. package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +0 -96
  115. package/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +0 -41
  116. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  117. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  118. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  119. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  120. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  121. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -450
  122. package/src/bmm-skills/1-analysis/research/bmad-domain-research/research.template.md +0 -29
  123. package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +0 -96
  124. package/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +0 -41
  125. package/src/bmm-skills/1-analysis/research/bmad-market-research/research.template.md +0 -29
  126. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -184
  127. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  128. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  129. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  130. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  131. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -484
  132. package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +0 -96
  133. package/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +0 -41
  134. package/src/bmm-skills/1-analysis/research/bmad-technical-research/research.template.md +0 -29
  135. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  136. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  137. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  138. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  139. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  140. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -493
  141. package/src/core-skills/bmad-brainstorming/analysis/catalog-analysis.md +0 -239
  142. package/src/core-skills/bmad-brainstorming/analysis/method-matrix.csv +0 -109
  143. package/src/core-skills/bmad-editorial-review-prose/SKILL.md +0 -86
  144. package/src/core-skills/bmad-editorial-review-structure/SKILL.md +0 -179
  145. package/src/core-skills/bmad-index-docs/SKILL.md +0 -66
  146. package/src/core-skills/bmad-review-adversarial-general/SKILL.md +0 -37
  147. package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +0 -73
  148. package/src/core-skills/bmad-review-edge-case-hunter/references/deletion-check.md +0 -14
  149. package/src/core-skills/bmad-shard-doc/SKILL.md +0 -105
  150. /package/src/{core-skills → bmm-skills/2-plan-workflows}/bmad-spec/assets/headless-schemas.md +0 -0
  151. /package/src/bmm-skills/{3-solutioning → v6-shims}/bmad-create-architecture/customize.toml +0 -0
  152. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-create-prd/customize.toml +0 -0
  153. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-edit-prd/customize.toml +0 -0
  154. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-validate-prd/customize.toml +0 -0
  155. /package/src/core-skills/bmad-advanced-elicitation/{methods.csv → assets/methods.csv} +0 -0
  156. /package/src/core-skills/bmad-party-mode/scripts/tests/{test-resolve_party.py → test_resolve_party.py} +0 -0
@@ -1,66 +0,0 @@
1
- ---
2
- name: bmad-index-docs
3
- description: 'Generates or updates an index.md to reference all docs in the folder. Use if user requests to create or update an index of all files in a specific folder'
4
- ---
5
-
6
- # Index Docs
7
-
8
- **Goal:** Generate or update an index.md to reference all docs in a target folder.
9
-
10
-
11
- ## EXECUTION
12
-
13
- ### Step 1: Scan Directory
14
-
15
- - List all files and subdirectories in the target location
16
-
17
- ### Step 2: Group Content
18
-
19
- - Organize files by type, purpose, or subdirectory
20
-
21
- ### Step 3: Generate Descriptions
22
-
23
- - Read each file to understand its actual purpose and create brief (3-10 word) descriptions based on the content, not just the filename
24
-
25
- ### Step 4: Create/Update Index
26
-
27
- - Write or update index.md with organized file listings
28
-
29
-
30
- ## OUTPUT FORMAT
31
-
32
- ```markdown
33
- # Directory Index
34
-
35
- ## Files
36
-
37
- - **[filename.ext](./filename.ext)** - Brief description
38
- - **[another-file.ext](./another-file.ext)** - Brief description
39
-
40
- ## Subdirectories
41
-
42
- ### subfolder/
43
-
44
- - **[file1.ext](./subfolder/file1.ext)** - Brief description
45
- - **[file2.ext](./subfolder/file2.ext)** - Brief description
46
-
47
- ### another-folder/
48
-
49
- - **[file3.ext](./another-folder/file3.ext)** - Brief description
50
- ```
51
-
52
-
53
- ## HALT CONDITIONS
54
-
55
- - HALT if target directory does not exist or is inaccessible
56
- - HALT if user does not have write permissions to create index.md
57
-
58
-
59
- ## VALIDATION
60
-
61
- - Use relative paths starting with ./
62
- - Group similar files together
63
- - Read file contents to generate accurate descriptions - don't guess from filenames
64
- - Keep descriptions concise but informative (3-10 words)
65
- - Sort alphabetically within groups
66
- - Skip hidden files (starting with .) unless specified
@@ -1,37 +0,0 @@
1
- ---
2
- name: bmad-review-adversarial-general
3
- description: 'Perform a Cynical Review and produce a findings report. Use when the user requests a critical review of something'
4
- ---
5
-
6
- # Adversarial Review (General)
7
-
8
- **Goal:** Cynically review content and produce findings.
9
-
10
- **Your Role:** You are a cynical, jaded reviewer with zero patience for sloppy work. The content was submitted by a clueless weasel and you expect to find problems. Be skeptical of everything. Look for what's missing, not just what's wrong. Use a precise, professional tone — no profanity or personal attacks.
11
-
12
- **Inputs:**
13
- - **content** — Content to review: diff, spec, story, doc, or any artifact
14
- - **also_consider** (optional) — Areas to keep in mind during review alongside normal adversarial analysis
15
-
16
-
17
- ## EXECUTION
18
-
19
- ### Step 1: Receive Content
20
-
21
- - Load the content to review from provided input or context
22
- - If content to review is empty, ask for clarification and abort
23
- - Identify content type (diff, branch, uncommitted changes, document, etc.)
24
-
25
- ### Step 2: Adversarial Analysis
26
-
27
- Review with extreme skepticism — assume problems exist. Find at least ten issues to fix or improve in the provided content.
28
-
29
- ### Step 3: Present Findings
30
-
31
- Output findings as a Markdown list: descriptions only, no severity, priority, or ranking.
32
-
33
-
34
- ## HALT CONDITIONS
35
-
36
- - HALT if zero findings — this is suspicious, re-analyze or ask for guidance
37
- - HALT if content is empty or unreadable
@@ -1,73 +0,0 @@
1
- ---
2
- name: bmad-review-edge-case-hunter
3
- description: 'Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven. Use when you need exhaustive edge-case analysis of code, specs, or diffs.'
4
- ---
5
-
6
- # Edge Case Hunter Review
7
-
8
- **Goal:** You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
9
- When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff.
10
- When no diff is provided (full file or function), treat the entire provided content as the scope.
11
- Ignore the rest of the codebase unless the provided content explicitly references external functions.
12
- A brief secondary deletion check runs as Step 4 when the diff removes code.
13
-
14
- **Inputs:**
15
- - **content** — Content to review: diff, full file, or function
16
- - **also_consider** (optional) — Areas to keep in mind during review alongside normal edge-case analysis
17
-
18
- **MANDATORY: Execute steps in the Execution section IN EXACT ORDER. DO NOT skip steps or change the sequence. When a halt condition triggers, follow its specific instruction exactly. Each action within a step is a REQUIRED action to complete that step.**
19
-
20
- **Your method is exhaustive path enumeration — mechanically walk every branch, not hunt by intuition. Report ONLY paths and conditions that lack handling — discard handled ones silently. Do NOT editorialize or add filler. Do not assign severity labels, rankings, or priority levels.**
21
-
22
-
23
- ## EXECUTION
24
-
25
- ### Step 1: Receive Content
26
-
27
- - Load the content to review strictly from provided input
28
- - If content is empty, or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
29
- - Identify content type (diff, full file, or function) to determine scope rules
30
-
31
- ### Step 2: Exhaustive Path Analysis
32
-
33
- **Walk every branching path and boundary condition within scope — report only unhandled ones.**
34
-
35
- - If `also_consider` input was provided, incorporate those areas into the analysis
36
- - Walk all branching paths: control flow (conditionals, loops, error handlers, early returns) and domain boundaries (where values, states, or conditions transition). Derive the relevant edge classes from the content itself — don't rely on a fixed checklist. Examples: missing else/default, unguarded inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
37
- - Consider implicit branches: the diff special-cases or changes the handling of one or more members of a fixed set of values — enums, status codes, sentinels, type tags, flags, value ranges. The rest of the set is implicit branches (e.g. the diff changes the `RED` and `YELLOW` cases of a `RED`/`YELLOW`/`GREEN` enum; `GREEN` is the implicit branch)
38
- - For each path: determine whether the content handles it
39
- - Collect only the unhandled paths as findings — discard handled ones silently
40
-
41
- ### Step 3: Validate Completeness
42
-
43
- - Revisit every edge class from Step 2 — e.g., missing else/default, null/empty inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
44
- - Add any newly found unhandled paths to findings; discard confirmed-handled ones
45
-
46
- ### Step 4: Deletion Check
47
-
48
- If the diff removed or replaced meaningful code (ignore pure renames and whitespace): load `references/deletion-check.md` and follow it.
49
-
50
- ### Step 5: Present Findings
51
-
52
- Output all findings as a single JSON array following the Output Format specification exactly.
53
-
54
-
55
- ## OUTPUT FORMAT
56
-
57
- Return ONLY a valid JSON array of objects. Each edge-case finding contains exactly these four fields:
58
-
59
- ```json
60
- [{
61
- "location": "file:start-end (or file:line when single line, or file:hunk when exact line unavailable)",
62
- "trigger_condition": "one-line description (max 15 words)",
63
- "guard_snippet": "minimal code sketch that closes the gap (single-line escaped string, no raw newlines or unescaped quotes)",
64
- "potential_consequence": "what could actually go wrong (max 15 words)"
65
- }]
66
- ```
67
-
68
- No extra text, no explanations, no markdown wrapping. An empty array `[]` is valid when nothing is found. Deletion findings from Step 4, if any, go in the same array with the extra fields defined in `references/deletion-check.md`.
69
-
70
-
71
- ## HALT CONDITIONS
72
-
73
- - If content is empty or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
@@ -1,14 +0,0 @@
1
- # Deletion Check
2
-
3
- Secondary pass for the Edge Case Hunter — runs only when the diff removed meaningful code. Subordinate to the edge-case pass; findings are usually few or none.
4
-
5
- For each chunk of removed or replaced code (ignore pure renames and whitespace), ask: did it carry behavior or a contract that the change neither re-established nor intentionally retired? Add a finding for any resulting regression, orphaned reference, or newly-dead code. Skip anything already covered by your edge-case findings.
6
-
7
- Append each finding to the same JSON array as the edge-case findings, with the four standard fields plus:
8
-
9
- - `kind`: `"deletion"`
10
- - `confidence`: `"high"`, `"medium"`, or `"low"` — these are inferences; rate them
11
-
12
- For a deletion finding the standard fields read as: `location` = the removed item; `trigger_condition` = the behavior or contract it enforced; `guard_snippet` = where or how to re-establish it; `potential_consequence` = the regression or orphan.
13
-
14
- Add nothing if nothing qualifies.
@@ -1,105 +0,0 @@
1
- ---
2
- name: bmad-shard-doc
3
- description: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections. Use if the user says perform shard document'
4
- ---
5
-
6
- # Shard Document
7
-
8
- **Goal:** Split large markdown documents into smaller, organized files based on level 2 sections using `npx @kayvan/markdown-tree-parser`.
9
-
10
- ## CRITICAL RULES
11
-
12
- - MANDATORY: Execute ALL steps in the EXECUTION section IN EXACT ORDER
13
- - DO NOT skip steps or change the sequence
14
- - HALT immediately when halt-conditions are met
15
- - Each action within a step is a REQUIRED action to complete that step
16
-
17
- ## EXECUTION
18
-
19
- ### Step 1: Get Source Document
20
-
21
- - Ask user for the source document path if not provided already
22
- - Verify file exists and is accessible
23
- - Verify file is markdown format (.md extension)
24
- - If file not found or not markdown: HALT with error message
25
-
26
- ### Step 2: Get Destination Folder
27
-
28
- - Determine default destination: same location as source file, folder named after source file without .md extension
29
- - Example: `/path/to/architecture.md` --> `/path/to/architecture/`
30
- - Ask user for the destination folder path (`[y]` to confirm use of default: `[suggested-path]`, else enter a new path)
31
- - If user accepts default: use the suggested destination path
32
- - If user provides custom path: use the custom destination path
33
- - Verify destination folder exists or can be created
34
- - Check write permissions for destination
35
- - If permission denied: HALT with error message
36
-
37
- ### Step 3: Execute Sharding
38
-
39
- - Inform user that sharding is beginning
40
- - Execute command: `npx @kayvan/markdown-tree-parser explode [source-document] [destination-folder]`
41
- - Capture command output and any errors
42
- - If command fails: HALT and display error to user
43
-
44
- ### Step 4: Verify Output
45
-
46
- - Check that destination folder contains sharded files
47
- - Verify index.md was created in destination folder
48
- - Count the number of files created
49
- - If no files created: HALT with error message
50
-
51
- ### Step 5: Report Completion
52
-
53
- - Display completion report to user including:
54
- - Source document path and name
55
- - Destination folder path
56
- - Number of section files created
57
- - Confirmation that index.md was created
58
- - Any tool output or warnings
59
- - Inform user that sharding completed successfully
60
-
61
- ### Step 6: Handle Original Document
62
-
63
- > **Critical:** Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion.
64
-
65
- Present user with options for the original document:
66
-
67
- > What would you like to do with the original document `[source-document-name]`?
68
- >
69
- > Options:
70
- > - `[d]` Delete - Remove the original (recommended - shards can always be recombined)
71
- > - `[m]` Move to archive - Move original to a backup/archive location
72
- > - `[k]` Keep - Leave original in place (NOT recommended - defeats sharding purpose)
73
- >
74
- > Your choice (d/m/k):
75
-
76
- #### If user selects `d` (delete)
77
-
78
- - Delete the original source document file
79
- - Confirm deletion to user: "Original document deleted: [source-document-path]"
80
- - Note: The document can be reconstructed from shards by concatenating all section files in order
81
-
82
- #### If user selects `m` (move)
83
-
84
- - Determine default archive location: same directory as source, in an `archive` subfolder
85
- - Example: `/path/to/architecture.md` --> `/path/to/archive/architecture.md`
86
- - Ask: Archive location (`[y]` to use default: `[default-archive-path]`, or provide custom path)
87
- - If user accepts default: use default archive path
88
- - If user provides custom path: use custom archive path
89
- - Create archive directory if it does not exist
90
- - Move original document to archive location
91
- - Confirm move to user: "Original document moved to: [archive-path]"
92
-
93
- #### If user selects `k` (keep)
94
-
95
- - Display warning to user:
96
- - Keeping both original and sharded versions is NOT recommended
97
- - The discover_inputs protocol may load the wrong version
98
- - Updates to one will not reflect in the other
99
- - Duplicate content taking up space
100
- - Consider deleting or archiving the original document
101
- - Confirm user choice: "Original document kept at: [source-document-path]"
102
-
103
- ## HALT CONDITIONS
104
-
105
- - HALT if npx command fails or produces no output files