bmad-method-quarkus 1.0.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 (380) hide show
  1. package/.claude-plugin/marketplace.json +53 -0
  2. package/AGENTS.md +12 -0
  3. package/LICENSE +30 -0
  4. package/README.md +94 -0
  5. package/README_CN.md +108 -0
  6. package/README_VN.md +109 -0
  7. package/bmad-modules.yaml +133 -0
  8. package/package.json +123 -0
  9. package/removals.txt +87 -0
  10. package/src/bmm-skills/agents/bmad-agent-analyst/SKILL.md +76 -0
  11. package/src/bmm-skills/agents/bmad-agent-analyst/customize.toml +105 -0
  12. package/src/bmm-skills/agents/bmad-agent-architect/SKILL.md +76 -0
  13. package/src/bmm-skills/agents/bmad-agent-architect/customize.toml +65 -0
  14. package/src/bmm-skills/agents/bmad-agent-dev/SKILL.md +76 -0
  15. package/src/bmm-skills/agents/bmad-agent-dev/customize.toml +83 -0
  16. package/src/bmm-skills/agents/bmad-agent-pm/SKILL.md +76 -0
  17. package/src/bmm-skills/agents/bmad-agent-pm/customize.toml +75 -0
  18. package/src/bmm-skills/agents/bmad-agent-ux-designer/SKILL.md +76 -0
  19. package/src/bmm-skills/agents/bmad-agent-ux-designer/customize.toml +60 -0
  20. package/src/bmm-skills/agents/bmad-quarkus-architect/.memlog.md +12 -0
  21. package/src/bmm-skills/agents/bmad-quarkus-architect/.memlog.md:Zone.Identifier +0 -0
  22. package/src/bmm-skills/agents/bmad-quarkus-architect/SKILL.md +86 -0
  23. package/src/bmm-skills/agents/bmad-quarkus-architect/SKILL.md:Zone.Identifier +0 -0
  24. package/src/bmm-skills/agents/bmad-quarkus-architect/customize.toml +37 -0
  25. package/src/bmm-skills/agents/bmad-quarkus-architect/customize.toml:Zone.Identifier +0 -0
  26. package/src/bmm-skills/agents/bmad-quarkus-architect/references/enrich-stories.md +19 -0
  27. package/src/bmm-skills/agents/bmad-quarkus-architect/references/enrich-stories.md:Zone.Identifier +0 -0
  28. package/src/bmm-skills/agents/bmad-quarkus-architect/references/prompt-quality-canon.md +79 -0
  29. package/src/bmm-skills/agents/bmad-quarkus-architect/references/prompt-quality-canon.md:Zone.Identifier +0 -0
  30. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/SKILL.md +80 -0
  31. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/SKILL.md:Zone.Identifier +0 -0
  32. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/assets/module-help.csv +9 -0
  33. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/assets/module-help.csv:Zone.Identifier +0 -0
  34. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/assets/module.yaml +16 -0
  35. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/assets/module.yaml:Zone.Identifier +0 -0
  36. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/cleanup-legacy.py +287 -0
  37. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/cleanup-legacy.py:Zone.Identifier +0 -0
  38. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/merge-config.py +441 -0
  39. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/merge-config.py:Zone.Identifier +0 -0
  40. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/merge-help-csv.py +246 -0
  41. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/bqa-setup/scripts/merge-help-csv.py:Zone.Identifier +0 -0
  42. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-error-handling-i18n/SKILL.md +181 -0
  43. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-error-handling-i18n/SKILL.md:Zone.Identifier +0 -0
  44. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-grpc-services/SKILL.md +141 -0
  45. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-grpc-services/SKILL.md:Zone.Identifier +0 -0
  46. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-hexagonal-core/SKILL.md +392 -0
  47. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-hexagonal-core/SKILL.md:Zone.Identifier +0 -0
  48. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-kafka-messaging/SKILL.md +148 -0
  49. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-kafka-messaging/SKILL.md:Zone.Identifier +0 -0
  50. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-observability-otel/SKILL.md +180 -0
  51. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-observability-otel/SKILL.md:Zone.Identifier +0 -0
  52. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-openapi-tmforum/SKILL.md +128 -0
  53. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-openapi-tmforum/SKILL.md:Zone.Identifier +0 -0
  54. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-sql-jdbc-agroal/SKILL.md +245 -0
  55. package/src/bmm-skills/agents/bmad-quarkus-architect/skills/quarkus-sql-jdbc-agroal/SKILL.md:Zone.Identifier +0 -0
  56. package/src/bmm-skills/module-help.csv +19 -0
  57. package/src/bmm-skills/module.yaml +92 -0
  58. package/src/bmm-skills/plan/bmad-architecture/SKILL.md +85 -0
  59. package/src/bmm-skills/plan/bmad-architecture/assets/spine-template.md +79 -0
  60. package/src/bmm-skills/plan/bmad-architecture/customize.toml +102 -0
  61. package/src/bmm-skills/plan/bmad-architecture/references/headless.md +26 -0
  62. package/src/bmm-skills/plan/bmad-architecture/references/reviewer-gate.md +13 -0
  63. package/src/bmm-skills/plan/bmad-architecture/scripts/lint_spine.py +257 -0
  64. package/src/bmm-skills/plan/bmad-architecture/scripts/tests/test_lint_spine.py +270 -0
  65. package/src/bmm-skills/plan/bmad-create-epics-and-stories/SKILL.md +93 -0
  66. package/src/bmm-skills/plan/bmad-create-epics-and-stories/customize.toml +41 -0
  67. package/src/bmm-skills/plan/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +263 -0
  68. package/src/bmm-skills/plan/bmad-create-epics-and-stories/steps/step-02-design-epics.md +242 -0
  69. package/src/bmm-skills/plan/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
  70. package/src/bmm-skills/plan/bmad-create-epics-and-stories/steps/step-04-final-validation.md +143 -0
  71. package/src/bmm-skills/plan/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
  72. package/src/bmm-skills/plan/bmad-generate-project-context/SKILL.md +10 -0
  73. package/src/bmm-skills/plan/bmad-prd/SKILL.md +94 -0
  74. package/src/bmm-skills/plan/bmad-prd/assets/headless-schemas.md +76 -0
  75. package/src/bmm-skills/plan/bmad-prd/assets/prd-template.md +165 -0
  76. package/src/bmm-skills/plan/bmad-prd/assets/prd-validation-checklist.md +135 -0
  77. package/src/bmm-skills/plan/bmad-prd/assets/validation-report-template.html +325 -0
  78. package/src/bmm-skills/plan/bmad-prd/customize.toml +149 -0
  79. package/src/bmm-skills/plan/bmad-prd/references/headless.md +39 -0
  80. package/src/bmm-skills/plan/bmad-prd/references/validate.md +97 -0
  81. package/src/bmm-skills/plan/bmad-prfaq/SKILL.md +135 -0
  82. package/src/bmm-skills/plan/bmad-prfaq/agents/artifact-analyzer.md +60 -0
  83. package/src/bmm-skills/plan/bmad-prfaq/agents/web-researcher.md +49 -0
  84. package/src/bmm-skills/plan/bmad-prfaq/assets/prfaq-template.md +62 -0
  85. package/src/bmm-skills/plan/bmad-prfaq/bmad-manifest.json +16 -0
  86. package/src/bmm-skills/plan/bmad-prfaq/customize.toml +41 -0
  87. package/src/bmm-skills/plan/bmad-prfaq/references/customer-faq.md +55 -0
  88. package/src/bmm-skills/plan/bmad-prfaq/references/internal-faq.md +51 -0
  89. package/src/bmm-skills/plan/bmad-prfaq/references/press-release.md +60 -0
  90. package/src/bmm-skills/plan/bmad-prfaq/references/verdict.md +83 -0
  91. package/src/bmm-skills/plan/bmad-product-brief/SKILL.md +91 -0
  92. package/src/bmm-skills/plan/bmad-product-brief/assets/brief-template.md +41 -0
  93. package/src/bmm-skills/plan/bmad-product-brief/customize.toml +101 -0
  94. package/src/bmm-skills/plan/bmad-project-context/SKILL.md +110 -0
  95. package/src/bmm-skills/plan/bmad-project-context/customize.toml +24 -0
  96. package/src/bmm-skills/plan/bmad-project-context/references/best-practices.md +65 -0
  97. package/src/bmm-skills/plan/bmad-project-context/references/template.md +55 -0
  98. package/src/bmm-skills/plan/bmad-spec/SKILL.md +160 -0
  99. package/src/bmm-skills/plan/bmad-spec/assets/headless-schemas.md +33 -0
  100. package/src/bmm-skills/plan/bmad-spec/assets/spec-template.md +49 -0
  101. package/src/bmm-skills/plan/bmad-spec/assets/stories-schema.md +44 -0
  102. package/src/bmm-skills/plan/bmad-spec/customize.toml +52 -0
  103. package/src/bmm-skills/plan/bmad-sprint-planning/SKILL.md +62 -0
  104. package/src/bmm-skills/plan/bmad-sprint-planning/customize.toml +41 -0
  105. package/src/bmm-skills/plan/bmad-sprint-planning/references/fix-sprint-status.md +30 -0
  106. package/src/bmm-skills/plan/bmad-sprint-planning/references/generate-tracking.md +25 -0
  107. package/src/bmm-skills/plan/bmad-sprint-planning/references/readiness-gate.md +20 -0
  108. package/src/bmm-skills/plan/bmad-sprint-planning/references/status-view.md +14 -0
  109. package/src/bmm-skills/plan/bmad-sprint-planning/references/validate.md +10 -0
  110. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/__pycache__/sprint_plan.cpython-311.pyc +0 -0
  111. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/sprint_plan.py +697 -0
  112. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-311-pytest-9.1.1.pyc +0 -0
  113. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/tests/test_sprint_plan.py +524 -0
  114. package/src/bmm-skills/plan/bmad-sprint-planning/sprint-status-template.yaml +71 -0
  115. package/src/bmm-skills/plan/bmad-ux/SKILL.md +90 -0
  116. package/src/bmm-skills/plan/bmad-ux/assets/color-themes.md +9 -0
  117. package/src/bmm-skills/plan/bmad-ux/assets/design-directions.md +9 -0
  118. package/src/bmm-skills/plan/bmad-ux/assets/design-example-editorial.md +158 -0
  119. package/src/bmm-skills/plan/bmad-ux/assets/design-example-mobile.md +93 -0
  120. package/src/bmm-skills/plan/bmad-ux/assets/design-example-shadcn.md +109 -0
  121. package/src/bmm-skills/plan/bmad-ux/assets/excalidraw-wireframe.md +19 -0
  122. package/src/bmm-skills/plan/bmad-ux/assets/experience-example-mobile.md +112 -0
  123. package/src/bmm-skills/plan/bmad-ux/assets/experience-example-shadcn.md +133 -0
  124. package/src/bmm-skills/plan/bmad-ux/assets/headless-schemas.md +84 -0
  125. package/src/bmm-skills/plan/bmad-ux/assets/key-screens.md +29 -0
  126. package/src/bmm-skills/plan/bmad-ux/assets/validation-report-template.html +319 -0
  127. package/src/bmm-skills/plan/bmad-ux/customize.toml +102 -0
  128. package/src/bmm-skills/plan/bmad-ux/references/creative-tools.md +19 -0
  129. package/src/bmm-skills/plan/bmad-ux/references/design-md-spec.md +50 -0
  130. package/src/bmm-skills/plan/bmad-ux/references/headless.md +37 -0
  131. package/src/bmm-skills/plan/bmad-ux/references/validate.md +115 -0
  132. package/src/bmm-skills/ship/bmad-build/SKILL.md +13 -0
  133. package/src/bmm-skills/ship/bmad-build/compile-epic-context.md +62 -0
  134. package/src/bmm-skills/ship/bmad-build/customize.toml +164 -0
  135. package/src/bmm-skills/ship/bmad-build/references/deletion-check.md +14 -0
  136. package/src/bmm-skills/ship/bmad-build/review-prompts/edge-case-hunter.md +88 -0
  137. package/src/bmm-skills/ship/bmad-build/review-prompts/verification-gap.md +113 -0
  138. package/src/bmm-skills/ship/bmad-build/spec-template.md +89 -0
  139. package/src/bmm-skills/ship/bmad-build/step-01-clarify-and-route.md +105 -0
  140. package/src/bmm-skills/ship/bmad-build/step-02-plan.md +47 -0
  141. package/src/bmm-skills/ship/bmad-build/step-03-implement.md +49 -0
  142. package/src/bmm-skills/ship/bmad-build/step-04-review.md +55 -0
  143. package/src/bmm-skills/ship/bmad-build/step-05-present.md +75 -0
  144. package/src/bmm-skills/ship/bmad-build/step-oneshot.md +77 -0
  145. package/src/bmm-skills/ship/bmad-build/sync-sprint-status.md +19 -0
  146. package/src/bmm-skills/ship/bmad-build/workflow.md +84 -0
  147. package/src/bmm-skills/ship/bmad-build-auto/SKILL.md +13 -0
  148. package/src/bmm-skills/ship/bmad-build-auto/compile-epic-context.md +62 -0
  149. package/src/bmm-skills/ship/bmad-build-auto/customize.toml +121 -0
  150. package/src/bmm-skills/ship/bmad-build-auto/references/deletion-check.md +14 -0
  151. package/src/bmm-skills/ship/bmad-build-auto/review-prompts/edge-case-hunter.md +88 -0
  152. package/src/bmm-skills/ship/bmad-build-auto/review-prompts/verification-gap.md +113 -0
  153. package/src/bmm-skills/ship/bmad-build-auto/spec-template.md +99 -0
  154. package/src/bmm-skills/ship/bmad-build-auto/step-01-clarify-and-route.md +83 -0
  155. package/src/bmm-skills/ship/bmad-build-auto/step-02-plan.md +27 -0
  156. package/src/bmm-skills/ship/bmad-build-auto/step-03-implement.md +44 -0
  157. package/src/bmm-skills/ship/bmad-build-auto/step-04-review.md +96 -0
  158. package/src/bmm-skills/ship/bmad-build-auto/workflow.md +104 -0
  159. package/src/bmm-skills/ship/bmad-checkpoint-preview/SKILL.md +68 -0
  160. package/src/bmm-skills/ship/bmad-checkpoint-preview/customize.toml +41 -0
  161. package/src/bmm-skills/ship/bmad-checkpoint-preview/generate-trail.md +38 -0
  162. package/src/bmm-skills/ship/bmad-checkpoint-preview/step-01-orientation.md +105 -0
  163. package/src/bmm-skills/ship/bmad-checkpoint-preview/step-02-walkthrough.md +89 -0
  164. package/src/bmm-skills/ship/bmad-checkpoint-preview/step-03-detail-pass.md +106 -0
  165. package/src/bmm-skills/ship/bmad-checkpoint-preview/step-04-testing.md +74 -0
  166. package/src/bmm-skills/ship/bmad-checkpoint-preview/step-05-wrapup.md +30 -0
  167. package/src/bmm-skills/ship/bmad-code-review/SKILL.md +90 -0
  168. package/src/bmm-skills/ship/bmad-code-review/customize.toml +113 -0
  169. package/src/bmm-skills/ship/bmad-code-review/references/deletion-check.md +14 -0
  170. package/src/bmm-skills/ship/bmad-code-review/review-prompts/edge-case-hunter.md +88 -0
  171. package/src/bmm-skills/ship/bmad-code-review/review-prompts/verification-gap.md +113 -0
  172. package/src/bmm-skills/ship/bmad-code-review/steps/step-01-gather-context.md +87 -0
  173. package/src/bmm-skills/ship/bmad-code-review/steps/step-02-review.md +32 -0
  174. package/src/bmm-skills/ship/bmad-code-review/steps/step-03-triage.md +50 -0
  175. package/src/bmm-skills/ship/bmad-code-review/steps/step-04-present.md +132 -0
  176. package/src/bmm-skills/ship/bmad-correct-course/SKILL.md +300 -0
  177. package/src/bmm-skills/ship/bmad-correct-course/checklist.md +288 -0
  178. package/src/bmm-skills/ship/bmad-correct-course/customize.toml +41 -0
  179. package/src/bmm-skills/ship/bmad-qa-generate-e2e-tests/SKILL.md +176 -0
  180. package/src/bmm-skills/ship/bmad-qa-generate-e2e-tests/checklist.md +33 -0
  181. package/src/bmm-skills/ship/bmad-qa-generate-e2e-tests/customize.toml +41 -0
  182. package/src/bmm-skills/ship/bmad-retrospective/SKILL.md +94 -0
  183. package/src/bmm-skills/ship/bmad-retrospective/customize.toml +41 -0
  184. package/src/bmm-skills/ship/bmad-retrospective/references/acceptance-verdict.md +55 -0
  185. package/src/bmm-skills/ship/bmad-retrospective/references/aggregate-views.md +17 -0
  186. package/src/bmm-skills/ship/bmad-retrospective/references/evidence-gathering.md +30 -0
  187. package/src/bmm-skills/ship/bmad-retrospective/references/retro-document.md +84 -0
  188. package/src/bmm-skills/ship/bmad-retrospective/references/team-discussion.md +22 -0
  189. package/src/bmm-skills/ship/bmad-retrospective/scripts/__pycache__/sprint_status.cpython-311.pyc +0 -0
  190. package/src/bmm-skills/ship/bmad-retrospective/scripts/git_evidence.py +304 -0
  191. package/src/bmm-skills/ship/bmad-retrospective/scripts/sprint_status.py +746 -0
  192. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-311-pytest-9.1.1.pyc +0 -0
  193. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-311-pytest-9.1.1.pyc +0 -0
  194. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/fixtures/sprint-status-template.yaml +71 -0
  195. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/test_git_evidence.py +750 -0
  196. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/test_sprint_status.py +1579 -0
  197. package/src/bmm-skills/v6-shims/README.md +28 -0
  198. package/src/bmm-skills/v6-shims/bmad-create-architecture/SKILL.md +30 -0
  199. package/src/bmm-skills/v6-shims/bmad-create-architecture/customize.toml +41 -0
  200. package/src/bmm-skills/v6-shims/bmad-create-prd/SKILL.md +30 -0
  201. package/src/bmm-skills/v6-shims/bmad-create-prd/customize.toml +41 -0
  202. package/src/bmm-skills/v6-shims/bmad-create-story/SKILL.md +434 -0
  203. package/src/bmm-skills/v6-shims/bmad-create-story/checklist.md +357 -0
  204. package/src/bmm-skills/v6-shims/bmad-create-story/customize.toml +41 -0
  205. package/src/bmm-skills/v6-shims/bmad-create-story/discover-inputs.md +88 -0
  206. package/src/bmm-skills/v6-shims/bmad-create-story/template.md +49 -0
  207. package/src/bmm-skills/v6-shims/bmad-dev-auto/SKILL.md +19 -0
  208. package/src/bmm-skills/v6-shims/bmad-dev-story/SKILL.md +502 -0
  209. package/src/bmm-skills/v6-shims/bmad-dev-story/checklist.md +80 -0
  210. package/src/bmm-skills/v6-shims/bmad-dev-story/customize.toml +44 -0
  211. package/src/bmm-skills/v6-shims/bmad-document-project/SKILL.md +14 -0
  212. package/src/bmm-skills/v6-shims/bmad-domain-research/SKILL.md +14 -0
  213. package/src/bmm-skills/v6-shims/bmad-edit-prd/SKILL.md +30 -0
  214. package/src/bmm-skills/v6-shims/bmad-edit-prd/customize.toml +42 -0
  215. package/src/bmm-skills/v6-shims/bmad-market-research/SKILL.md +14 -0
  216. package/src/bmm-skills/v6-shims/bmad-quick-dev/SKILL.md +19 -0
  217. package/src/bmm-skills/v6-shims/bmad-sprint-status/SKILL.md +26 -0
  218. package/src/bmm-skills/v6-shims/bmad-sprint-status/customize.toml +41 -0
  219. package/src/bmm-skills/v6-shims/bmad-technical-research/SKILL.md +14 -0
  220. package/src/bmm-skills/v6-shims/bmad-validate-prd/SKILL.md +30 -0
  221. package/src/bmm-skills/v6-shims/bmad-validate-prd/customize.toml +42 -0
  222. package/src/core-skills/bmad-advanced-elicitation/SKILL.md +65 -0
  223. package/src/core-skills/bmad-advanced-elicitation/assets/methods.csv +72 -0
  224. package/src/core-skills/bmad-advanced-elicitation/customize.toml +54 -0
  225. package/src/core-skills/bmad-advanced-elicitation/scripts/pick_methods.py +233 -0
  226. package/src/core-skills/bmad-advanced-elicitation/scripts/tests/test_pick_methods.py +228 -0
  227. package/src/core-skills/bmad-brainstorming/SKILL.md +80 -0
  228. package/src/core-skills/bmad-brainstorming/assets/brain-icons.json +166 -0
  229. package/src/core-skills/bmad-brainstorming/assets/brain-methods.csv +109 -0
  230. package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +328 -0
  231. package/src/core-skills/bmad-brainstorming/customize.toml +84 -0
  232. package/src/core-skills/bmad-brainstorming/references/converge.md +24 -0
  233. package/src/core-skills/bmad-brainstorming/references/finalize.md +26 -0
  234. package/src/core-skills/bmad-brainstorming/references/headless.md +54 -0
  235. package/src/core-skills/bmad-brainstorming/references/in-chat-techniques.md +18 -0
  236. package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +10 -0
  237. package/src/core-skills/bmad-brainstorming/references/mode-facilitator.md +11 -0
  238. package/src/core-skills/bmad-brainstorming/references/mode-partner.md +16 -0
  239. package/src/core-skills/bmad-brainstorming/references/resume.md +5 -0
  240. package/src/core-skills/bmad-brainstorming/scripts/brain.py +770 -0
  241. package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +239 -0
  242. package/src/core-skills/bmad-customize/SKILL.md +111 -0
  243. package/src/core-skills/bmad-customize/scripts/list_customizable_skills.py +231 -0
  244. package/src/core-skills/bmad-customize/scripts/tests/test_list_customizable_skills.py +249 -0
  245. package/src/core-skills/bmad-deep-recon/SKILL.md +82 -0
  246. package/src/core-skills/bmad-deep-recon/assets/research.template.md +18 -0
  247. package/src/core-skills/bmad-deep-recon/customize.toml +212 -0
  248. package/src/core-skills/bmad-deep-recon/references/draft.md +8 -0
  249. package/src/core-skills/bmad-deep-recon/references/finalize.md +11 -0
  250. package/src/core-skills/bmad-deep-recon/references/html-briefing.md +16 -0
  251. package/src/core-skills/bmad-deep-recon/references/lifecycle.md +11 -0
  252. package/src/core-skills/bmad-deep-recon/references/process.md +10 -0
  253. package/src/core-skills/bmad-deep-recon/references/run.md +73 -0
  254. package/src/core-skills/bmad-deep-recon/references/selection.md +13 -0
  255. package/src/core-skills/bmad-deep-recon/references/synthesis.md +16 -0
  256. package/src/core-skills/bmad-deep-recon/references/verification.md +29 -0
  257. package/src/core-skills/bmad-deep-recon/scripts/recon_kit.py +322 -0
  258. package/src/core-skills/bmad-deep-recon/scripts/tests/test_recon_kit.py +144 -0
  259. package/src/core-skills/bmad-deep-recon/types/academic-lit.md +19 -0
  260. package/src/core-skills/bmad-deep-recon/types/competitive.md +19 -0
  261. package/src/core-skills/bmad-deep-recon/types/domain.md +19 -0
  262. package/src/core-skills/bmad-deep-recon/types/market.md +19 -0
  263. package/src/core-skills/bmad-deep-recon/types/technical.md +19 -0
  264. package/src/core-skills/bmad-deep-recon/types/user-voice.md +19 -0
  265. package/src/core-skills/bmad-forge-idea/SKILL.md +107 -0
  266. package/src/core-skills/bmad-forge-idea/customize.toml +42 -0
  267. package/src/core-skills/bmad-forge-idea/scripts/resolve_personas.py +275 -0
  268. package/src/core-skills/bmad-forge-idea/scripts/tests/test_resolve_personas.py +138 -0
  269. package/src/core-skills/bmad-help/SKILL.md +75 -0
  270. package/src/core-skills/bmad-party-mode/SKILL.md +60 -0
  271. package/src/core-skills/bmad-party-mode/customize.toml +211 -0
  272. package/src/core-skills/bmad-party-mode/references/create-party.md +70 -0
  273. package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +13 -0
  274. package/src/core-skills/bmad-party-mode/references/mode-auto.md +13 -0
  275. package/src/core-skills/bmad-party-mode/references/mode-subagent.md +31 -0
  276. package/src/core-skills/bmad-party-mode/references/party-memory.md +51 -0
  277. package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +282 -0
  278. package/src/core-skills/bmad-party-mode/scripts/tests/test_resolve_party.py +146 -0
  279. package/src/core-skills/bmad-review/SKILL.md +49 -0
  280. package/src/core-skills/bmad-review/customize.toml +141 -0
  281. package/src/core-skills/bmad-review/references/editorial-common.md +56 -0
  282. package/src/core-skills/bmad-review/references/lens-adversarial.md +19 -0
  283. package/src/core-skills/bmad-review/references/lens-edge-case-hunter.md +54 -0
  284. package/src/core-skills/bmad-review/references/lens-prose.md +7 -0
  285. package/src/core-skills/bmad-review/references/lens-structure.md +9 -0
  286. package/src/core-skills/bmad-review/references/lens-verification-gap.md +92 -0
  287. package/src/core-skills/bmad-review/references/structure-models.md +44 -0
  288. package/src/core-skills/bmad-review/scripts/tests/test_word_metrics.py +62 -0
  289. package/src/core-skills/bmad-review/scripts/word_metrics.py +102 -0
  290. package/src/core-skills/module-help.csv +10 -0
  291. package/src/core-skills/module.yaml +38 -0
  292. package/src/core-skills/v6-shims/README.md +25 -0
  293. package/src/core-skills/v6-shims/bmad-editorial-review/SKILL.md +6 -0
  294. package/src/core-skills/v6-shims/bmad-editorial-review/customize.toml +31 -0
  295. package/src/core-skills/v6-shims/bmad-editorial-review-prose/SKILL.md +6 -0
  296. package/src/core-skills/v6-shims/bmad-editorial-review-structure/SKILL.md +6 -0
  297. package/src/core-skills/v6-shims/bmad-review-adversarial-general/SKILL.md +6 -0
  298. package/src/core-skills/v6-shims/bmad-review-edge-case-hunter/SKILL.md +6 -0
  299. package/src/core-skills/v6-shims/bmad-review-verification-gap/SKILL.md +6 -0
  300. package/src/scripts/__pycache__/config_utils.cpython-311.pyc +0 -0
  301. package/src/scripts/config_utils.py +119 -0
  302. package/src/scripts/memlog.py +224 -0
  303. package/src/scripts/render_skill.py +401 -0
  304. package/src/scripts/resolve_config.py +74 -0
  305. package/src/scripts/resolve_customization.py +99 -0
  306. package/src/scripts/tests/__pycache__/test_config_utils.cpython-311.pyc +0 -0
  307. package/src/scripts/tests/__pycache__/test_resolve_config.cpython-311.pyc +0 -0
  308. package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-311.pyc +0 -0
  309. package/src/scripts/tests/test_config_utils.py +85 -0
  310. package/src/scripts/tests/test_memlog.py +306 -0
  311. package/src/scripts/tests/test_resolve_config.py +89 -0
  312. package/src/scripts/tests/test_resolve_customization.py +77 -0
  313. package/tools/bundle-web-bundles.js +117 -0
  314. package/tools/format-workflow-md.js +263 -0
  315. package/tools/installer/README.md +60 -0
  316. package/tools/installer/bmad-cli.js +105 -0
  317. package/tools/installer/cli-utils.js +57 -0
  318. package/tools/installer/commands/install.js +149 -0
  319. package/tools/installer/commands/status.js +65 -0
  320. package/tools/installer/commands/uninstall.js +167 -0
  321. package/tools/installer/core/config.js +73 -0
  322. package/tools/installer/core/existing-install.js +121 -0
  323. package/tools/installer/core/install-paths.js +132 -0
  324. package/tools/installer/core/installer.js +1767 -0
  325. package/tools/installer/core/legacy-warnings.js +151 -0
  326. package/tools/installer/core/manifest-generator.js +859 -0
  327. package/tools/installer/core/manifest.js +433 -0
  328. package/tools/installer/core/uv-check.js +195 -0
  329. package/tools/installer/core/wsl-node-check.js +109 -0
  330. package/tools/installer/file-ops.js +204 -0
  331. package/tools/installer/fs-native.js +116 -0
  332. package/tools/installer/ide/_config-driven.js +972 -0
  333. package/tools/installer/ide/manager.js +324 -0
  334. package/tools/installer/ide/platform-codes.js +80 -0
  335. package/tools/installer/ide/platform-codes.yaml +343 -0
  336. package/tools/installer/ide/shared/installed-skills.js +50 -0
  337. package/tools/installer/ide/shared/path-utils.js +219 -0
  338. package/tools/installer/ide/shared/skill-manifest.js +57 -0
  339. package/tools/installer/install-messages.yaml +37 -0
  340. package/tools/installer/list-options.js +210 -0
  341. package/tools/installer/message-loader.js +83 -0
  342. package/tools/installer/modules/channel-plan.js +203 -0
  343. package/tools/installer/modules/channel-resolver.js +241 -0
  344. package/tools/installer/modules/custom-module-manager.js +924 -0
  345. package/tools/installer/modules/external-manager.js +671 -0
  346. package/tools/installer/modules/git-env.js +47 -0
  347. package/tools/installer/modules/module-help-schema.js +13 -0
  348. package/tools/installer/modules/official-modules.js +2257 -0
  349. package/tools/installer/modules/plugin-resolver.js +398 -0
  350. package/tools/installer/modules/version-resolver.js +336 -0
  351. package/tools/installer/project-root.js +224 -0
  352. package/tools/installer/prompts.js +791 -0
  353. package/tools/installer/set-overrides.js +330 -0
  354. package/tools/installer/ui.js +2167 -0
  355. package/tools/installer/yaml-format.js +245 -0
  356. package/tools/javascript-conventions.md +5 -0
  357. package/tools/migrate-custom-module-paths.js +124 -0
  358. package/tools/skill-validator.md +378 -0
  359. package/tools/validate-published-implementation-model.mjs +68 -0
  360. package/tools/validate-sidebar-order.js +388 -0
  361. package/tools/validate-skills.js +735 -0
  362. package/tools/validate-svg-changes.sh +356 -0
  363. package/web-bundles/README.md +46 -0
  364. package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +86 -0
  365. package/web-bundles/brainstorming-coach/SKILL.md +83 -0
  366. package/web-bundles/brainstorming-coach/brain-methods.csv +62 -0
  367. package/web-bundles/bundles.json +139 -0
  368. package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +88 -0
  369. package/web-bundles/market-and-industry-research/SKILL.md +59 -0
  370. package/web-bundles/prd-coach/INSTRUCTIONS.md +86 -0
  371. package/web-bundles/prd-coach/SKILL.md +101 -0
  372. package/web-bundles/prd-coach/prd-template.md +165 -0
  373. package/web-bundles/prd-coach/prd-validation-checklist.md +135 -0
  374. package/web-bundles/prfaq-coach/INSTRUCTIONS.md +86 -0
  375. package/web-bundles/prfaq-coach/SKILL.md +139 -0
  376. package/web-bundles/product-brief-coach/INSTRUCTIONS.md +86 -0
  377. package/web-bundles/product-brief-coach/SKILL.md +113 -0
  378. package/web-bundles/ux-coach/INSTRUCTIONS.md +92 -0
  379. package/web-bundles/ux-coach/SKILL.md +187 -0
  380. package/web-bundles/ux-coach/ux-validation.md +100 -0
@@ -0,0 +1,19 @@
1
+ # Sync Sprint Status
2
+
3
+ Shared sub-step for updating `sprint-status.yaml` during build. Called from any route (plan-code-review, one-shot, future routes) with a `target_status` parameter.
4
+
5
+ ## Preconditions
6
+
7
+ Skip this entire file (return to caller) if ANY of:
8
+ - `story_key` is unset
9
+ - `{{.implementation_artifacts}}/sprint-status.yaml` does not exist on disk
10
+
11
+ ## Instructions
12
+
13
+ 1. Load the FULL `{{.implementation_artifacts}}/sprint-status.yaml` file.
14
+ 2. Find the `development_status` entry matching `{story_key}`. If not found, warn the user once (`"{story_key} not found in sprint-status; skipping sprint sync"`) and return to caller.
15
+ 3. **Idempotency check.** If `development_status[{story_key}]` is already at `target_status` or a later state (`review` is later than `in-progress`; `done` is later than both), return to caller — no write needed. Never regress a story's status.
16
+ 4. Set `development_status[{story_key}]` to `{target_status}`.
17
+ 5. **Epic lift (only when `target_status` = `in-progress`).** Derive the parent epic key as `epic-{N}` from the leading numeric segment of `{story_key}` (e.g., `3-2-digest-delivery` → `epic-3`). If that entry exists and is `backlog`, set it to `in-progress`. Leave it alone otherwise. Skip this sub-step entirely when `target_status` is not `in-progress`.
18
+ 6. Refresh `last_updated` to the current date.
19
+ 7. Save the file, preserving ALL comments and structure including STATUS DEFINITIONS and WORKFLOW NOTES.
@@ -0,0 +1,84 @@
1
+ # Build New Preview Workflow
2
+
3
+ **Goal:** Turn user intent into a hardened, reviewable artifact.
4
+
5
+ **CRITICAL:** If a step directs you to another snapshot file, read it fully and follow it. No exceptions.
6
+
7
+ Subagents, when the capability is available, are an important part of this workflow. Use them as directed by the workflow steps.
8
+ If you need an explicit user instruction to run them, ask once now for the whole workflow run.
9
+
10
+ ## READY FOR DEVELOPMENT STANDARD
11
+
12
+ A specification is "Ready for Development" when:
13
+
14
+ - **Actionable**: Every task has a file path and specific action.
15
+ - **Logical**: Tasks ordered by dependency.
16
+ - **Testable**: All ACs use Given/When/Then.
17
+ - **Complete**: No placeholders or TBDs.
18
+ - **Sufficient**: No known requirement, acceptance, dependency, or implementation gaps remain unresolved.
19
+ - **Coherent**: No unresolved ambiguities or internal contradictions.
20
+
21
+ ## SCOPE STANDARD
22
+
23
+ A specification should target a **single user-facing goal** within **900–1600 tokens**:
24
+
25
+ - **Single goal**: One cohesive feature, even if it spans multiple layers/files. Multi-goal means >=2 **top-level independent shippable deliverables** — each could be reviewed, tested, and merged as a separate PR without breaking the others. Never count surface verbs, "and" conjunctions, or noun phrases. Never split cross-layer implementation details inside one user goal.
26
+ - Split: "add dark mode toggle AND refactor auth to JWT AND build admin dashboard"
27
+ - Don't split: "add validation and display errors" / "support drag-and-drop AND paste AND retry"
28
+ - **900–1600 tokens**: Optimal range for LLM consumption. Below 900 risks ambiguity; above 1600 risks context-rot in implementation agents.
29
+ - **Neither limit is a gate.** Both are proposals with user override.
30
+
31
+ ## Conventions
32
+
33
+ - Every operational cross-file reference in this workflow is an absolute snapshot path. Open it directly; do not resolve it relative to a skill directory.
34
+ - `{project-root}`-prefixed paths resolve from the project working directory.
35
+ - Whenever this workflow captures or records a version-control revision, obtain the full canonical identifier directly from version control and preserve it verbatim.
36
+
37
+ ## On Activation
38
+
39
+ ### Step 1: Execute Prepend Steps
40
+
41
+ Execute each of these steps in order before proceeding (`_None._` means skip):
42
+
43
+ {workflow.activation_steps_prepend}
44
+
45
+ ### Step 2: Load Persistent Facts
46
+
47
+ Treat every entry below as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` -- load the referenced contents as facts. All other entries are facts verbatim (`_None._` means none):
48
+
49
+ {workflow.persistent_facts}
50
+
51
+ ### Step 3: Execute Append Steps
52
+
53
+ Execute each of these steps in order (`_None._` means skip):
54
+
55
+ {workflow.activation_steps_append}
56
+
57
+ ## WORKFLOW ARCHITECTURE
58
+
59
+ This uses **step-file architecture** for disciplined execution:
60
+
61
+ - **Micro-file Design**: Each step is self-contained and followed exactly
62
+ - **Just-In-Time Loading**: Only load the current step file
63
+ - **Sequential Enforcement**: Complete steps in order, no skipping
64
+ - **State Tracking**: Persist progress via spec frontmatter and in-memory variables
65
+ - **Append-Only Building**: Build artifacts incrementally
66
+
67
+ ### Step Processing Rules
68
+
69
+ 1. **READ COMPLETELY**: Read the entire step file before acting
70
+ 2. **FOLLOW SEQUENCE**: Execute sections in order
71
+ 3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human
72
+ 4. **LOAD NEXT**: When directed, read fully and follow the next step file
73
+
74
+ ### Critical Rules (NO EXCEPTIONS)
75
+
76
+ - **NEVER** load multiple step files simultaneously
77
+ - **ALWAYS** read entire step file before execution
78
+ - **NEVER** skip steps or optimize the sequence
79
+ - **ALWAYS** follow the exact instructions in the step file
80
+ - **ALWAYS** halt at checkpoints and wait for human input
81
+
82
+ ## FIRST STEP
83
+
84
+ Read fully and follow: `[[bmad-snapshot:step-01-clarify-and-route.md]]` to begin the workflow.
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: bmad-build-auto
3
+ description: 'One iteration of an unattended development loop. Use when invoked by name.'
4
+ ---
5
+
6
+ Run the following command exactly once without changing the current working directory. Replace `{project-root}` with the absolute path to the project root and `{skill-root}` with the absolute path to this skill's directory:
7
+
8
+ ```bash
9
+ uv run --no-cache "{project-root}/_bmad/scripts/render_skill.py" --project-root "{project-root}" --skill "{skill-root}"
10
+ ```
11
+
12
+ - On success, read and follow the one absolute `workflow.md` instruction printed to stdout.
13
+ - On failure (including `uv` being unavailable), report the command output and HALT. Do not run any workflow source directly.
@@ -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
+ <!-- Generated from planning artifacts. 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 bmad-build-auto'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. Under Requirements & Constraints, write: "Planning artifacts were unavailable; only epics-file context was used." Never hallucinate content to fill missing sections.
@@ -0,0 +1,121 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Default customization values for bmad-build-auto.
4
+ # Override in _bmad/custom/bmad-build-auto.toml or
5
+ # _bmad/custom/bmad-build-auto.user.toml.
6
+ #
7
+ # Merge rules:
8
+ # - Strings replace the default.
9
+ # - Lists append to the default list.
10
+ # - Tables merge key by key.
11
+ # - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
12
+
13
+ [workflow]
14
+
15
+ # Extra instructions to run before config is loaded.
16
+
17
+ activation_steps_prepend = []
18
+
19
+ # Extra instructions to run after config is loaded and before step 01.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Facts kept in context for the whole run.
24
+ # Entries are literal text or file references prefixed with "file:".
25
+ # File entries may use globs and are loaded during activation.
26
+
27
+ persistent_facts = [
28
+ "file:{project-root}/**/project-context.md",
29
+ ]
30
+
31
+ # Instruction run by HALT after writing the terminal result.
32
+ # Empty means no extra terminal behavior.
33
+
34
+ on_complete = ""
35
+
36
+ # Handoff for the implementation subagent in step 03. The whole execution
37
+ # recipe — a subagent by default, but an override may run it any other way
38
+ # (a different model, an external coding tool via bash). {spec_file} is
39
+ # substituted at run time.
40
+
41
+ implementation_handoff = """
42
+ Launch a subagent with no prior conversation context, with this prompt:
43
+
44
+ > Read {spec_file} fully and implement it — the spec is the sole source of truth. Load every file listed in its frontmatter `context:` before you start.
45
+ >
46
+ > When done, report what you changed, how you verified it, and anything left incomplete or risky.
47
+ """
48
+
49
+ # Review layers for the review step. `instruction` is the layer's whole
50
+ # execution recipe — subagents by default, but an override may run anything
51
+ # (e.g. an external reviewer via bash). {diff_output} is substituted at run
52
+ # time. `when` (optional) gates a layer; empty `instruction` disables it.
53
+
54
+ [[workflow.review_layers]]
55
+ id = "blind-hunter"
56
+ name = "Blind Hunter"
57
+ instruction = """
58
+ Launch a context-free subagent with this prompt:
59
+
60
+ Conduct a review of CONTENT.
61
+ Look for what's missing, not only what's wrong.
62
+ Find at least ten issues to fix or improve.
63
+ Output a Markdown list of findings only — no severity, priority, or ranking.
64
+ If the content is empty, stop and say so.
65
+ If you have zero findings, re-check and keep thinking; do not stop with an empty list.
66
+
67
+ CONTENT:
68
+ {diff_output}
69
+
70
+ Do not invoke any skill. Return only the review result.
71
+
72
+ """
73
+
74
+ [[workflow.review_layers]]
75
+ id = "edge-case-hunter"
76
+ name = "Edge Case Hunter"
77
+ instruction = """
78
+ Launch a context-free subagent with this prompt:
79
+
80
+ Read `{skill-root}/review-prompts/edge-case-hunter.md` completely and follow it as your review instructions.
81
+
82
+ Review content:
83
+
84
+ {diff_output}
85
+
86
+ Do not invoke any skill. If the instruction file is unreadable, report that exact failure and stop. Return only the review result.
87
+
88
+ """
89
+
90
+ [[workflow.review_layers]]
91
+ id = "verification-gap"
92
+ name = "Verification Gap Reviewer"
93
+ instruction = """
94
+ Launch a context-free subagent with this prompt:
95
+
96
+ Read `{skill-root}/review-prompts/verification-gap.md` completely and follow it as your review instructions.
97
+
98
+ Review content:
99
+
100
+ {diff_output}
101
+
102
+ Do not invoke any skill. If the instruction file is unreadable, report that exact failure and stop. Return only the review result.
103
+
104
+ """
105
+
106
+ [[workflow.review_layers]]
107
+ id = "intent-alignment"
108
+ name = "Intent Alignment Auditor"
109
+ instruction = """
110
+ Launch a subagent with this prompt:
111
+
112
+ You are an intent-alignment auditor. You have no other context about how this change was produced. Here is the verbatim intent this work started from:
113
+
114
+ {verbatim_intent}
115
+
116
+ Here is the diff:
117
+
118
+ {diff_output}
119
+
120
+ Your task is strictly descriptive — do not prescribe additional work. Report: (1) the defensible readings of the intent, enumerated; (2) which reading this diff implements; (3) where the readings and the diff diverge — specifically, which surface the intent's expectations live at versus which surface the diff's changes and its tests exercise.
121
+ """
@@ -0,0 +1,14 @@
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.
@@ -0,0 +1,88 @@
1
+ # Edge Case Hunter Review
2
+
3
+ **Goal:** You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
4
+ 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.
5
+ When no diff is provided (full file or function), treat the entire provided content as the scope.
6
+ Ignore the rest of the codebase unless the provided content explicitly references external functions.
7
+ A brief secondary deletion check runs as Step 4 when the diff removes code.
8
+
9
+ **Inputs:**
10
+ - **content** — Content to review: diff, full file, or function
11
+ - **also_consider** (optional) — Areas to keep in mind during review alongside normal edge-case analysis
12
+
13
+ **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.**
14
+
15
+ **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.**
16
+
17
+
18
+ ## EXECUTION
19
+
20
+ ### Step 1: Receive Content
21
+
22
+ - Load the content to review strictly from the parent message that launched you (not from this instruction file)
23
+ - 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
24
+ - Identify content type (diff, full file, or function) to determine scope rules
25
+
26
+ ### Step 2: Exhaustive Path Analysis
27
+
28
+ **Walk every branching path and boundary condition within scope — report only unhandled ones.**
29
+
30
+ - If `also_consider` input was provided, incorporate those areas into the analysis
31
+ - 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
32
+ - 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)
33
+ - For each path: determine whether the content handles it
34
+ - Collect only the unhandled paths as findings — discard handled ones silently
35
+
36
+ ### Step 3: Validate Completeness
37
+
38
+ - 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
39
+ - Add any newly found unhandled paths to findings; discard confirmed-handled ones
40
+
41
+ ### Step 4: Deletion Check
42
+
43
+ If the diff removed or replaced meaningful code (ignore pure renames and whitespace): load `references/deletion-check.md` and follow it.
44
+
45
+ ### Step 5: Present Findings
46
+
47
+ Output all findings as a single JSON array following the Output Format specification exactly.
48
+
49
+
50
+ ## OUTPUT FORMAT
51
+
52
+ Return ONLY a valid JSON array of objects. Each edge-case finding contains exactly these four fields:
53
+
54
+ ```json
55
+ [{
56
+ "location": "file:start-end (or file:line when single line, or file:hunk when exact line unavailable)",
57
+ "trigger_condition": "one-line description (max 15 words)",
58
+ "guard_snippet": "minimal code sketch that closes the gap (single-line escaped string, no raw newlines or unescaped quotes)",
59
+ "potential_consequence": "what could actually go wrong (max 15 words)"
60
+ }]
61
+ ```
62
+
63
+ 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`.
64
+
65
+
66
+ ## HALT CONDITIONS
67
+
68
+ - 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
69
+ <reference path="references/deletion-check.md">
70
+ # Deletion Check
71
+
72
+ 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.
73
+
74
+ 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.
75
+
76
+ Append each finding to the same JSON array as the edge-case findings, with the four standard fields plus:
77
+
78
+ - `kind`: `"deletion"`
79
+ - `confidence`: `"high"`, `"medium"`, or `"low"` — these are inferences; rate them
80
+
81
+ 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.
82
+
83
+ Add nothing if nothing qualifies.
84
+ </reference>
85
+
86
+ ## CONTENT SOURCE
87
+
88
+ Review the content supplied under "Review content:" in the message that launched you.
@@ -0,0 +1,113 @@
1
+ # Verification Gap Review
2
+
3
+ **Goal:** Find changed behavior that could break without reliable verification catching it. Ask one question — "if the behavior this change is supposed to produce broke where it's actually used, would verification fail?" Do not hunt for correctness bugs, but report genuine problems you notice while tracing verification.
4
+
5
+ The main verification gap shapes are:
6
+
7
+ 1. **Regression gap:** the changed code regresses where it's used, and no test covering that use would fail.
8
+ 2. **Missing-adoption gap:** a place that should now use the new behavior doesn't; it handles the same case its own way, or not at all, and no test would flag the omission.
9
+ 3. **Broken-verification gap:** a test appears to cover the changed behavior, but would not actually protect it because it is skipped, flaky, not run in the normal verification path, or too weak to observe the regression.
10
+
11
+ ## Evidence Rules
12
+
13
+ - Read a test before claiming what it covers, runs, asserts, or misses.
14
+ - Before claiming no test exists, search the whole repo by the symbol under test and by import references; expected file locations are not enough.
15
+ - Never assert what you did not verify. If a finding cannot be grounded, drop it.
16
+ - In a finding, say what you actually checked — "none of the tests I read cover this" — and show how far you looked. Say a test doesn't exist anywhere only when the symbol/import-reference search actually shows that.
17
+ - Do not assign severity, confidence, priority, or ranking.
18
+
19
+ ## Review Sequence
20
+
21
+ ### Step 1: Screen for behavioral change
22
+
23
+ Screen each part of the change separately. If a part is non-behavioral, skip it. Call a part non-behavioral only when the changed code does not alter return values, thrown errors, caller-visible side effects, or observable state (including iteration order and emitted messages). Once a part meets that test, move on; do not inspect callers or tests for extra confirmation.
24
+
25
+ Common non-behavioral examples: formatting, comments, whitespace; pure renames; trivial getters/setters and pass-throughs; type-only or compiler-enforced changes with no runtime effect; etc.
26
+
27
+ Only outcomes produced by deterministic code are worth automatically testing; tests are useless on static source text and brittle on LLM output. Skip those parts.
28
+
29
+ If every part is skipped, output the clean result (see Output Format).
30
+
31
+ ### Step 2: Find the behavior that changed
32
+
33
+ Identify what behavior changed compared to the previous version: output, side effect, branch, error path, schema/event shape, config default, validation/authorization rule, external contract, etc. If the change affects more than one behavior, handle each separately.
34
+
35
+ Treat broad-impact changes as behavioral even when no single changed line looks important: dependency, toolchain, build/config, data-file, etc.
36
+
37
+ ### Step 3: Trace where that behavior is used
38
+
39
+ Trace the changed behavior to the places that observe it. Start with direct callers and registered entry points (routes, commands, DI), contract consumers (schemas, events, APIs, database readers), and reverse-dependency info if already available.
40
+
41
+ Follow a path only while the changed behavior is reachable and unverified. Stop when a test at that boundary would fail, the consumer does not observe the changed behavior, or the next hop is guesswork (dynamic dispatch, reflection, outside-repo consumers, etc.). Prefer the nearest observable boundary, often one to three hops away, especially across contract, integration, or service edges. If there are more than five similar consumers, group obvious repeats and check representative paths; expand only when a consumer observes the behavior differently.
42
+
43
+ ### Step 4: Qualify the consumer, then check its test
44
+
45
+ For each consumer, name the smallest realistic regression this consumer would observe: invert the branch, drop the default, omit the field, return the old error code, skip the integration call, etc. This is the Demonstration. If no such regression exists, drop the path; untested downstream code is not a finding.
46
+
47
+ A `Missing-adoption gap` qualifies not by the adoption failure alone but by a supersession signal: the change gives clear evidence the new behavior is meant to replace the local one — PR intent, naming or docs, a replaced sibling site, deleted duplicate logic, or a test defining the new rule — and the local site shares the same observable contract. Without a supersession signal and a shared observable contract, it is a refactor suggestion, not a verification-gap finding. Once both hold, check whether any test for that site would flag the non-adoption; missing coverage of the non-adoption is the gap itself, not a disqualifier.
48
+
49
+ Find and read the relevant test. Ask whether the Demonstration would make an assertion fail.
50
+
51
+ - If yes, the behavior is verified. No finding.
52
+ - For a regression-style Demonstration: if no test runs the path, the test is skipped/flaky/not run normally, or the test runs the code without checking the changed result, report a `Regression gap` or `Broken-verification gap`.
53
+ - For a qualifying Missing-adoption case: if none of the site tests you found assert it adopts the new behavior, report a `Missing-adoption gap`.
54
+
55
+ A test counts only if it runs normally and an assertion observes the changed output, branch, or contract. These do not count: no execution; source-text assertions that match a file's wording instead of running it; success/no-throw/snapshot-only checks; mock/log-call checks; human-only checks; tests that mock away the integration; e2e tests that pass through without checking the changed output; stale assertions or fixtures.
56
+
57
+ For example, `expect(x ?? DEFAULT).toBe(DEFAULT)` passes when `x` is missing.
58
+
59
+ Common patterns:
60
+
61
+ - **Caller-path gap** — helper test covers the branch, but caller values skip it.
62
+ - **Contract drift** — payload/schema/event changes must be verified at the consumer.
63
+ - **Migration compatibility** — tests only create new-format rows or fresh schemas.
64
+ - **Phantom exception** — handled partial-failure path has no test.
65
+ - **Missing-adoption gap** — sibling site should use the new rule/helper and does not.
66
+ - **Removed verification** — deleted test or weakened assertion leaves behavior unpinned; removing a source-text assertion is not this, since it never counted.
67
+
68
+ ### Step 5: Confirm each finding is real
69
+
70
+ Before writing a finding, re-open the specific tests or search results the finding relies on. Verify the Demonstration would not make any test you checked fail, or that the absence claim is backed by the symbol/import-reference search. Do not claim more than you verified; drop any finding you cannot ground.
71
+
72
+ Explain why the test misses the bug using what the test sets up and checks.
73
+
74
+ Do not report: compiler/type-checker-enforced cases; behavior already verified by an integration, contract, or e2e test; implementation-detail or mock-only tests; low coverage or a missing test file by itself; legacy untested code the change did not affect.
75
+
76
+ Report genuine problems you noticed while tracing verification, even if they are not verification gaps. Put them under `Other findings` in the output. This permits reporting what you already reached, not extra hunting.
77
+
78
+ ## OUTPUT FORMAT
79
+
80
+ Emit each verification-gap finding as one block. No general advice, no severity or confidence.
81
+
82
+ ```markdown
83
+ ### <one-line title naming the gap>
84
+
85
+ - **Changed surface:** the exact behavior or contract that changed — `file:line`.
86
+ - **Impacted consumer or site:** named concretely with `file:line` (e.g. "the `createInvoice` mutation used by the billing dashboard at `billing/dashboard.ts:88`," not "callers of this function").
87
+ - **Existing test evidence:**
88
+ - `Regression gap`: what the relevant test actually asserts, with `file:line`; or, if none, the symbol/import-reference searches run and their result.
89
+ - `Missing-adoption gap`: tests for the impacted site, and whether any assert it adopts the new behavior.
90
+ - `Broken-verification gap`: the apparent test or verification path, and why it does not count.
91
+ - **Missing verification:** the precise assertion or check that's absent.
92
+ - **Demonstration:**
93
+ - `Regression gap` / `Broken-verification gap`: the concrete regression that would ship undetected, and why the tests you checked would not fail.
94
+ - `Missing-adoption gap`: the case the site mishandles by not adopting the new behavior, and that none of the tests you read assert adoption.
95
+ - **Consequence:** the concrete thing that ships wrong — a regression the checked evidence would not catch, or a site that should use the new behavior and doesn't.
96
+ - **Suggested test shape:** (optional) the kind of test that would close the gap, fit to the repo's own way of verifying — don't impose a generic test pyramid.
97
+ ```
98
+
99
+ If you noticed genuine non-gap problems while tracing verification, append:
100
+
101
+ ```markdown
102
+ ## Other findings
103
+
104
+ - <description only; no severity, confidence, priority, or ranking>
105
+ ```
106
+
107
+ When you find no verification gaps and no other findings, output exactly this single line, not an empty response:
108
+
109
+ `No verification gaps found.`
110
+
111
+ ## CONTENT SOURCE
112
+
113
+ Review the content supplied under "Review content:" in the message that launched you. If none is supplied, stop with exactly: `No verification gaps found.`
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: '{title}'
3
+ type: 'feature' # feature | bugfix | refactor | chore
4
+ created: '{date}'
5
+ status: 'draft' # draft | ready-for-dev | in-progress | in-review | done | blocked
6
+ review_loop_iteration: 0 # incremented by step-04 before each review loopback
7
+ followup_review_recommended: false # set by step-04 on status: done — true if the LLM decided another review pass is worthwhile
8
+ 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.
9
+ warnings: [] # optional: machine-readable warnings for orchestration, e.g. oversized, multiple-goals
10
+ deferred: [] # append-only machine-readable deferred review findings; each item carries summary/evidence and optional location/severity
11
+ ---
12
+
13
+ <!-- Aim for 900–1600 tokens. If larger, add `oversized` to frontmatter `warnings` and continue.
14
+ Never over-specify "how" — use boundaries + examples instead.
15
+ Cohesive cross-layer stories (DB+BE+UI) stay in ONE file.
16
+ IMPORTANT: Remove all HTML comments when filling this template. -->
17
+
18
+ <intent-contract>
19
+
20
+ ## Intent
21
+
22
+ <!-- What is broken or missing, and why it matters. Then the high-level approach — the "what", not the "how". -->
23
+
24
+ **Problem:** ONE_TO_TWO_SENTENCES
25
+
26
+ **Approach:** ONE_TO_TWO_SENTENCES
27
+
28
+ ## Boundaries & Constraints
29
+
30
+ <!-- Three tiers: Always = invariant rules. Block If = decisions that cannot be made unattended. Never = out of scope + forbidden approaches. -->
31
+
32
+ **Always:** INVARIANT_RULES
33
+
34
+ **Block If:** DECISIONS_REQUIRING_HUMAN_INPUT
35
+ <!-- Agent: if any of these trigger during execution, HALT with status blocked and the blocking condition. -->
36
+
37
+ **Never:** NON_GOALS_AND_FORBIDDEN_APPROACHES
38
+
39
+ ## I/O & Edge-Case Matrix
40
+
41
+ <!-- If no meaningful I/O scenarios exist, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
42
+
43
+ | Scenario | Input / State | Expected Output / Behavior | Error Handling |
44
+ |----------|--------------|---------------------------|----------------|
45
+ | HAPPY_PATH | INPUT | OUTCOME | No error expected |
46
+ | ERROR_CASE | INPUT | OUTCOME | ERROR_HANDLING |
47
+
48
+ </intent-contract>
49
+
50
+ ## Code Map
51
+
52
+ <!-- Agent-populated during planning. Annotated paths prevent blind codebase searching. -->
53
+
54
+ - `FILE` -- ROLE_OR_RELEVANCE
55
+ - `FILE` -- ROLE_OR_RELEVANCE
56
+
57
+ ## Tasks & Acceptance
58
+
59
+ <!-- Tasks: backtick-quoted file path -- action -- rationale. Prefer one task per file; group tightly-coupled changes when splitting would be artificial. -->
60
+ <!-- If an I/O Matrix is present, include a task to unit-test its edge cases. -->
61
+ <!-- AC covers system-level behaviors not captured by the I/O Matrix. Do not duplicate I/O scenarios here. -->
62
+
63
+ **Execution:**
64
+ - `FILE` -- ACTION -- RATIONALE
65
+
66
+ **Acceptance Criteria:**
67
+ - Given PRECONDITION, when ACTION, then EXPECTED_RESULT
68
+
69
+ ## Spec Change Log
70
+
71
+ <!-- Append-only. Populated by step-04 during review loops. Do not modify or delete existing entries.
72
+ Each entry records: what finding triggered the change, what was amended, what known-bad state
73
+ the amendment avoids, and any KEEP instructions (what worked well and must survive re-derivation).
74
+ Empty until the first bad_spec loopback. -->
75
+
76
+ ## Review Triage Log
77
+
78
+ <!-- Append-only. Populated by step-04 on EVERY review pass, including loopbacks and blocked exits.
79
+ Each entry records triage decision counts for intent_gap, bad_spec, patch, defer, and reject,
80
+ with per-category severity breakdowns using low/medium/high, plus the findings addressed in
81
+ that pass. Empty until the first review pass. -->
82
+
83
+ ## Design Notes
84
+
85
+ <!-- If the approach is straightforward, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
86
+ <!-- Design rationale and golden examples only when non-obvious. Keep examples to 5–10 lines. -->
87
+
88
+ DESIGN_RATIONALE_AND_EXAMPLES
89
+
90
+ ## Verification
91
+
92
+ <!-- If no build, test, or lint commands apply, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
93
+ <!-- How the agent confirms its own work. Prefer CLI commands. When no CLI check applies, state what to inspect manually. -->
94
+
95
+ **Commands:**
96
+ - `COMMAND` -- expected: SUCCESS_CRITERIA
97
+
98
+ **Manual checks (if no CLI):**
99
+ - WHAT_TO_INSPECT_AND_EXPECTED_STATE