ma-agents 3.12.2 → 3.13.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 (255) hide show
  1. package/bin/cli.js +11 -6
  2. package/docs/architecture.md +18 -0
  3. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +1 -1
  4. package/lib/bmad-cache/bmb/_git_preserved/hooks/commit-msg.sample +52 -2
  5. package/lib/bmad-cache/bmb/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  6. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  7. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.idx +0 -0
  8. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.pack +0 -0
  9. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-8f8b045fef5af6911495cf3b2a89f1ed75e120f7.rev +0 -0
  10. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  11. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  12. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  13. package/lib/bmad-cache/bmb/package-lock.json +2 -2
  14. package/lib/bmad-cache/bmb/package.json +1 -1
  15. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/assets/module-help.csv +1 -1
  16. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-config.py +33 -0
  17. package/lib/bmad-cache/bmb/samples/bmad-agent-dream-weaver/scripts/merge-help-csv.py +28 -0
  18. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +1 -1
  19. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/cleanup-legacy.py +28 -0
  20. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +33 -0
  21. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +28 -0
  22. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/assets/module-help.csv +1 -1
  23. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/cleanup-legacy.py +28 -0
  24. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-config.py +33 -0
  25. package/lib/bmad-cache/bmb/skills/bmad-bmb-setup/scripts/merge-help-csv.py +28 -0
  26. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/assets/Dockerfile +29 -0
  27. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/docker_setup.py +115 -0
  28. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/generate_report.py +184 -0
  29. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/pty_runner.py +171 -0
  30. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_evals.py +492 -0
  31. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/run_triggers.py +366 -0
  32. package/lib/bmad-cache/bmb/skills/bmad-eval-runner/scripts/utils.py +260 -0
  33. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/assets/module-help.csv +1 -1
  34. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/cleanup-legacy.py +28 -0
  35. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-config.py +33 -0
  36. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/setup-skill-template/scripts/merge-help-csv.py +28 -0
  37. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-config.py +33 -0
  38. package/lib/bmad-cache/bmb/skills/bmad-module-builder/assets/standalone-module-template/merge-help-csv.py +28 -0
  39. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/tests/test-validate-module.py +74 -1
  40. package/lib/bmad-cache/bmb/skills/bmad-module-builder/scripts/validate-module.py +24 -13
  41. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/assets/sample-customize-product-brief.toml +48 -33
  42. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/extract-report-json.py +287 -0
  43. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-html-report.py +57 -8
  44. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/prepass-prompt-metrics.py +7 -7
  45. package/lib/bmad-cache/bmb/skills/module-help.csv +1 -1
  46. package/lib/bmad-cache/bmb/website/public/img/eval-test-types.png +0 -0
  47. package/lib/bmad-cache/cache-manifest.json +17 -18
  48. package/lib/bmad-cache/cis/_git_preserved/hooks/commit-msg.sample +52 -2
  49. package/lib/bmad-cache/cis/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  50. package/lib/bmad-cache/cis/_git_preserved/index +0 -0
  51. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.idx +0 -0
  52. package/lib/bmad-cache/cis/_git_preserved/objects/pack/{pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.pack → pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.pack} +0 -0
  53. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-18c8290560a98bcb7bf0676e6cc9b2ac5ca2823e.rev +0 -0
  54. package/lib/bmad-cache/cis/_git_preserved/packed-refs +1 -1
  55. package/lib/bmad-cache/cis/_git_preserved/refs/heads/main +1 -1
  56. package/lib/bmad-cache/cis/_git_preserved/refs/tags/v0.2.1 +1 -0
  57. package/lib/bmad-cache/cis/_git_preserved/shallow +1 -1
  58. package/lib/bmad-cache/cis/package-lock.json +2 -2
  59. package/lib/bmad-cache/cis/package.json +1 -1
  60. package/lib/bmad-cache/cis/src/module-help.csv +1 -1
  61. package/lib/bmad-cache/gds/.claude-plugin/marketplace.json +4 -7
  62. package/lib/bmad-cache/gds/README.md +3 -1
  63. package/lib/bmad-cache/gds/_git_preserved/hooks/commit-msg.sample +52 -2
  64. package/lib/bmad-cache/gds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  65. package/lib/bmad-cache/gds/_git_preserved/index +0 -0
  66. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.idx +0 -0
  67. package/lib/bmad-cache/gds/_git_preserved/objects/pack/{pack-9427a146a90c00bb542cba038874bf9671ba4dc0.pack → pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.pack} +0 -0
  68. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-dcb7c556d9bb6b6b70d2301e094eaac6d7300552.rev +0 -0
  69. package/lib/bmad-cache/gds/_git_preserved/packed-refs +1 -1
  70. package/lib/bmad-cache/gds/_git_preserved/refs/heads/main +1 -1
  71. package/lib/bmad-cache/gds/_git_preserved/shallow +1 -1
  72. package/lib/bmad-cache/gds/package.json +1 -1
  73. package/lib/bmad-cache/gds/src/agents/gds-agent-game-designer/customize.toml +5 -5
  74. package/lib/bmad-cache/gds/src/agents/gds-agent-game-dev/customize.toml +5 -5
  75. package/lib/bmad-cache/gds/src/agents/gds-agent-game-solo-dev/customize.toml +0 -5
  76. package/lib/bmad-cache/gds/src/module-help.csv +6 -12
  77. package/lib/bmad-cache/gds/src/module.yaml +1 -1
  78. package/lib/bmad-cache/gds/src/workflows/1-preproduction/gds-create-game-brief/customize.toml +97 -22
  79. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/assets/validation-report-template.html +190 -0
  80. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/customize.toml +99 -0
  81. package/lib/bmad-cache/gds/src/workflows/2-design/gds-gdd/scripts/render-validation-html.py +290 -0
  82. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/assets/validation-report-template.html +190 -0
  83. package/lib/bmad-cache/gds/src/workflows/2-design/gds-prd/customize.toml +84 -0
  84. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/assets/validation-report-template.html +319 -0
  85. package/lib/bmad-cache/gds/src/workflows/2-design/gds-ux/customize.toml +101 -0
  86. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/architecture-patterns.yaml +1 -0
  87. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/decision-catalog.yaml +88 -0
  88. package/lib/bmad-cache/gds/src/workflows/3-technical/gds-game-architecture/engine-mcps.yaml +124 -2
  89. package/lib/bmad-cache/gds/src/workflows/4-production/gds-investigate/customize.toml +62 -0
  90. package/lib/bmad-cache/tea/.claude-plugin/marketplace.json +1 -1
  91. package/lib/bmad-cache/tea/.github/workflows/docs.yaml +3 -3
  92. package/lib/bmad-cache/tea/.github/workflows/quality.yaml +10 -10
  93. package/lib/bmad-cache/tea/AGENTS.md +31 -0
  94. package/lib/bmad-cache/tea/CHANGELOG.md +42 -1
  95. package/lib/bmad-cache/tea/README.md +8 -5
  96. package/lib/bmad-cache/tea/_git_preserved/hooks/commit-msg.sample +52 -2
  97. package/lib/bmad-cache/tea/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  98. package/lib/bmad-cache/tea/_git_preserved/index +0 -0
  99. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.idx +0 -0
  100. package/lib/bmad-cache/tea/_git_preserved/objects/pack/{pack-f0df537f2649464ff6c5aee241165eb9c8664227.pack → pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.pack} +0 -0
  101. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-9e4197e37df7763dd7a05c2965ee921dfd2eb617.rev +0 -0
  102. package/lib/bmad-cache/tea/_git_preserved/packed-refs +1 -1
  103. package/lib/bmad-cache/tea/_git_preserved/refs/heads/main +1 -1
  104. package/lib/bmad-cache/tea/_git_preserved/refs/tags/v1.19.0 +1 -0
  105. package/lib/bmad-cache/tea/_git_preserved/shallow +1 -1
  106. package/lib/bmad-cache/tea/docs/explanation/engagement-models.md +15 -16
  107. package/lib/bmad-cache/tea/docs/explanation/knowledge-base-system.md +2 -0
  108. package/lib/bmad-cache/tea/docs/explanation/risk-based-testing.md +1 -1
  109. package/lib/bmad-cache/tea/docs/explanation/tea-overview.md +88 -52
  110. package/lib/bmad-cache/tea/docs/explanation/testing-as-engineering.md +13 -12
  111. package/lib/bmad-cache/tea/docs/glossary/index.md +2 -2
  112. package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-for-enterprise.md +19 -18
  113. package/lib/bmad-cache/tea/docs/how-to/brownfield/use-tea-with-existing-tests.md +1 -1
  114. package/lib/bmad-cache/tea/docs/how-to/workflows/run-nfr-assess.md +32 -26
  115. package/lib/bmad-cache/tea/docs/how-to/workflows/run-test-design.md +20 -14
  116. package/lib/bmad-cache/tea/docs/how-to/workflows/run-trace.md +3 -3
  117. package/lib/bmad-cache/tea/docs/index.md +13 -11
  118. package/lib/bmad-cache/tea/docs/reference/commands.md +37 -13
  119. package/lib/bmad-cache/tea/docs/reference/knowledge-base.md +2 -2
  120. package/lib/bmad-cache/tea/package-lock.json +2 -2
  121. package/lib/bmad-cache/tea/package.json +1 -1
  122. package/lib/bmad-cache/tea/src/agents/bmad-tea/customize.toml +20 -15
  123. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/confidence-gate.md +73 -0
  124. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/knowledge/test-quality.md +1 -0
  125. package/lib/bmad-cache/tea/src/agents/bmad-tea/resources/tea-index.csv +2 -1
  126. package/lib/bmad-cache/tea/src/module-help.csv +2 -2
  127. package/lib/bmad-cache/tea/src/workflows/testarch/README.md +5 -4
  128. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/role-paths.yaml +1 -1
  129. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/data/tea-resources-index.yaml +1 -1
  130. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +2 -2
  131. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +1 -1
  132. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-teach-me-testing/templates/certificate-template.md +1 -1
  133. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-atdd/resources/tea-index.csv +1 -1
  134. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-automate/resources/tea-index.csv +1 -1
  135. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-ci/resources/tea-index.csv +1 -1
  136. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-framework/resources/tea-index.csv +1 -1
  137. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/SKILL.md +3 -3
  138. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/checklist.md +11 -11
  139. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/instructions.md +4 -2
  140. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/nfr-report-template.md +5 -5
  141. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/resources/tea-index.csv +1 -1
  142. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +1 -1
  143. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-01b-resume.md +1 -1
  144. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +14 -3
  145. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +7 -7
  146. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04a-subagent-security.md +4 -4
  147. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04b-subagent-performance.md +4 -4
  148. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04c-subagent-reliability.md +4 -4
  149. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04d-subagent-scalability.md +4 -4
  150. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +4 -4
  151. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +1 -1
  152. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow-plan.md +1 -1
  153. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-nfr/workflow.yaml +3 -3
  154. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/checklist.md +23 -3
  155. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/resources/tea-index.csv +1 -1
  156. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +7 -0
  157. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +16 -2
  158. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +20 -4
  159. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +2 -0
  160. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +17 -0
  161. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +15 -0
  162. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-design/test-design-template.md +16 -0
  163. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-test-review/resources/tea-index.csv +1 -1
  164. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/checklist.md +1 -1
  165. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/resources/tea-index.csv +1 -1
  166. package/lib/bmad-cache/tea/src/workflows/testarch/bmad-testarch-trace/trace-template.md +1 -1
  167. package/lib/bmad-cache/tea/test/test-installation-components.js +49 -0
  168. package/lib/bmad-cache/tea/website/astro.config.mjs +2 -2
  169. package/lib/bmad-cache/wds/README.md +1 -1
  170. package/lib/bmad-cache/wds/_git_preserved/hooks/commit-msg.sample +52 -2
  171. package/lib/bmad-cache/wds/_git_preserved/hooks/fsmonitor-watchman.sample +2 -8
  172. package/lib/bmad-cache/wds/_git_preserved/index +0 -0
  173. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.idx +0 -0
  174. package/lib/bmad-cache/wds/_git_preserved/objects/pack/{pack-96877c1c09123cccb1f91c1412184b11d2b492ad.pack → pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.pack} +0 -0
  175. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-656c3d8d5426e73043b6a7f45eedaab74e3c419e.rev +0 -0
  176. package/lib/bmad-cache/wds/_git_preserved/packed-refs +1 -1
  177. package/lib/bmad-cache/wds/_git_preserved/refs/heads/main +1 -1
  178. package/lib/bmad-cache/wds/_git_preserved/refs/tags/v0.4.3 +1 -0
  179. package/lib/bmad-cache/wds/_git_preserved/shallow +1 -1
  180. package/lib/bmad-cache/wds/eslint.config.mjs +1 -1
  181. package/lib/bmad-cache/wds/package.json +1 -1
  182. package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/customize.toml +80 -0
  183. package/lib/bmad-cache/wds/src/agents/wds-agent-mimir-builder/customize.toml +52 -0
  184. package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/customize.toml +70 -0
  185. package/lib/bmad-cache/wds/src/module-help.csv +19 -19
  186. package/lib/bmad-cache/wds/src/module.yaml +28 -0
  187. package/lib/bmad-cache/wds/src/scripts/README.md +155 -0
  188. package/lib/bmad-cache/wds/src/scripts/wds-add-object.js +202 -0
  189. package/lib/bmad-cache/wds/src/scripts/wds-add-spacing.js +158 -0
  190. package/lib/bmad-cache/wds/src/scripts/wds-init-page.js +229 -0
  191. package/lib/bmad-cache/wds/src/scripts/wds-init-scenario.js +120 -0
  192. package/lib/bmad-cache/wds/src/scripts/wds-nav.js +201 -0
  193. package/lib/bmad-cache/wds/src/scripts/wds-validate.js +301 -0
  194. package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/workflow.xml +450 -0
  195. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/workflow-specify.xml +387 -0
  196. package/lib/bmad-extension/.claude-plugin/marketplace.json.template +1 -1
  197. package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +2 -2
  198. package/lib/bmad.js +91 -7
  199. package/lib/installer.js +28 -6
  200. package/lib/mil498-templates/OCD.md +169 -169
  201. package/lib/mil498-templates/README.md +4 -4
  202. package/lib/mil498-templates/SDD.md +163 -163
  203. package/lib/mil498-templates/SDP.md +307 -307
  204. package/lib/mil498-templates/SRS.md +219 -219
  205. package/lib/mil498-templates/SSDD.md +154 -154
  206. package/lib/mil498-templates/SSS.md +225 -225
  207. package/lib/mil498-templates/STD.md +188 -188
  208. package/lib/templates/instruction-block-git.template.md +25 -0
  209. package/package.json +5 -4
  210. package/scripts/build-bmad-cache.js +143 -42
  211. package/skills/git-workflow-skill/skill.json +21 -21
  212. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.idx +0 -0
  213. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.pack +0 -0
  214. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-6ecd9fc6445b1281449c5ec49a6c5794708e662e.rev +0 -0
  215. package/lib/bmad-cache/bmb/_git_preserved/refs/remotes/origin/HEAD +0 -1
  216. package/lib/bmad-cache/bmb/_git_preserved/refs/tags/v1.7.0 +0 -1
  217. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/generate-convert-report.py +0 -406
  218. package/lib/bmad-cache/bmb/skills/bmad-workflow-builder/scripts/tests/test_generate_convert_report.py +0 -243
  219. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.idx +0 -0
  220. package/lib/bmad-cache/cis/_git_preserved/objects/pack/pack-42ffc048f54e58ce94c6331bc6be97ebbb7936f2.rev +0 -0
  221. package/lib/bmad-cache/cis/_git_preserved/refs/remotes/origin/HEAD +0 -1
  222. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.idx +0 -0
  223. package/lib/bmad-cache/gds/_git_preserved/objects/pack/pack-9427a146a90c00bb542cba038874bf9671ba4dc0.rev +0 -0
  224. package/lib/bmad-cache/gds/_git_preserved/refs/remotes/origin/HEAD +0 -1
  225. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-gdd/customize.toml +0 -41
  226. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/customize.toml +0 -41
  227. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/domain-complexity.csv +0 -15
  228. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-prd/data/project-types.csv +0 -11
  229. package/lib/bmad-cache/gds/src/workflows/2-design/gds-create-ux-design/customize.toml +0 -41
  230. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-gdd/customize.toml +0 -41
  231. package/lib/bmad-cache/gds/src/workflows/2-design/gds-edit-prd/customize.toml +0 -41
  232. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-gdd/customize.toml +0 -41
  233. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/customize.toml +0 -41
  234. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/domain-complexity.csv +0 -15
  235. package/lib/bmad-cache/gds/src/workflows/2-design/gds-validate-prd/data/project-types.csv +0 -11
  236. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.idx +0 -0
  237. package/lib/bmad-cache/tea/_git_preserved/objects/pack/pack-f0df537f2649464ff6c5aee241165eb9c8664227.rev +0 -0
  238. package/lib/bmad-cache/tea/_git_preserved/refs/remotes/origin/HEAD +0 -1
  239. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.idx +0 -0
  240. package/lib/bmad-cache/wds/_git_preserved/objects/pack/pack-96877c1c09123cccb1f91c1412184b11d2b492ad.rev +0 -0
  241. package/lib/bmad-cache/wds/_git_preserved/refs/remotes/origin/HEAD +0 -1
  242. package/lib/bmad-cache/wds/src/agents/wds-agent-freya-ux/bmad-skill-manifest.yaml +0 -12
  243. package/lib/bmad-cache/wds/src/agents/wds-agent-saga-analyst/bmad-skill-manifest.yaml +0 -12
  244. package/lib/bmad-cache/wds/src/workflows/wds-0-alignment-signoff/bmad-skill-manifest.yaml +0 -1
  245. package/lib/bmad-cache/wds/src/workflows/wds-0-project-setup/bmad-skill-manifest.yaml +0 -1
  246. package/lib/bmad-cache/wds/src/workflows/wds-1-project-brief/bmad-skill-manifest.yaml +0 -1
  247. package/lib/bmad-cache/wds/src/workflows/wds-2-trigger-mapping/bmad-skill-manifest.yaml +0 -1
  248. package/lib/bmad-cache/wds/src/workflows/wds-3-scenarios/bmad-skill-manifest.yaml +0 -1
  249. package/lib/bmad-cache/wds/src/workflows/wds-4-ux-design/bmad-skill-manifest.yaml +0 -1
  250. package/lib/bmad-cache/wds/src/workflows/wds-5-agentic-development/bmad-skill-manifest.yaml +0 -1
  251. package/lib/bmad-cache/wds/src/workflows/wds-6-asset-generation/bmad-skill-manifest.yaml +0 -1
  252. package/lib/bmad-cache/wds/src/workflows/wds-7-design-system/bmad-skill-manifest.yaml +0 -1
  253. package/lib/bmad-cache/wds/src/workflows/wds-8-product-evolution/bmad-skill-manifest.yaml +0 -1
  254. /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-create-gdd → gds-gdd/assets}/game-types.csv +0 -0
  255. /package/lib/bmad-cache/gds/src/workflows/2-design/{gds-validate-gdd/data → gds-gdd/assets}/genre-complexity.csv +0 -0
@@ -12,7 +12,7 @@
12
12
  "name": "bmad-game-dev-studio",
13
13
  "source": "./",
14
14
  "description": "A comprehensive game development module with agents and workflows for preproduction, design, architecture, production, and testing across Unity, Unreal, and Godot. Part of the BMad Method ecosystem.",
15
- "version": "0.4.0",
15
+ "version": "0.6.0",
16
16
  "author": {
17
17
  "name": "Brian (BMad) Madison"
18
18
  },
@@ -25,14 +25,10 @@
25
25
  "./src/workflows/1-preproduction/gds-brainstorm-game",
26
26
  "./src/workflows/1-preproduction/gds-create-game-brief",
27
27
  "./src/workflows/1-preproduction/research/gds-domain-research",
28
- "./src/workflows/2-design/gds-create-gdd",
29
28
  "./src/workflows/2-design/gds-create-narrative",
30
- "./src/workflows/2-design/gds-create-prd",
31
29
  "./src/workflows/2-design/gds-create-ux-design",
32
- "./src/workflows/2-design/gds-edit-gdd",
33
- "./src/workflows/2-design/gds-edit-prd",
34
- "./src/workflows/2-design/gds-validate-gdd",
35
- "./src/workflows/2-design/gds-validate-prd",
30
+ "./src/workflows/2-design/gds-gdd",
31
+ "./src/workflows/2-design/gds-prd",
36
32
  "./src/workflows/3-technical/gds-check-implementation-readiness",
37
33
  "./src/workflows/3-technical/gds-create-epics-and-stories",
38
34
  "./src/workflows/3-technical/gds-game-architecture",
@@ -41,6 +37,7 @@
41
37
  "./src/workflows/4-production/gds-correct-course",
42
38
  "./src/workflows/4-production/gds-create-story",
43
39
  "./src/workflows/4-production/gds-dev-story",
40
+ "./src/workflows/4-production/gds-investigate",
44
41
  "./src/workflows/4-production/gds-retrospective",
45
42
  "./src/workflows/4-production/gds-sprint-planning",
46
43
  "./src/workflows/4-production/gds-sprint-status",
@@ -6,7 +6,7 @@
6
6
  [![uv](https://img.shields.io/badge/uv-package%20manager-blueviolet?logo=uv)](https://docs.astral.sh/uv/)
7
7
  [![Discord](https://img.shields.io/badge/Discord-Join%20Community-7289da?logo=discord&logoColor=white)](https://discord.gg/gk8jAdXWmj)
8
8
 
9
- **BMGD brings BMad's structured development to game development.** Create working prototypes quickly in Unity, Unreal, Godot—or any engine you choose.
9
+ **BMGD brings BMad's structured development to game development.** Create working prototypes quickly in Unity, Unreal, Godot, Roblox—or any engine you choose.
10
10
 
11
11
  ![BMGD Logo](docs/bmgd-logo.png)
12
12
 
@@ -21,6 +21,7 @@ BMGD has first-class support for:
21
21
  - [Unity](https://unity.com) — C# scripting, industry-standard for many game types
22
22
  - [Unreal Engine](https://www.unrealengine.com/) — Blueprint and C++, AAA powerhouse
23
23
  - [Godot](https://godotengine.org/) — Open-source, GDScript, rapidly growing
24
+ - [Roblox](https://www.roblox.com/create) — Luau scripting, platform-native game development
24
25
 
25
26
  But you're not limited to these—BMGD works with any platform, from pure C to custom engines.
26
27
 
@@ -42,6 +43,7 @@ BMGD supports **21 game types**, including:
42
43
  - **Product Research** — Market analysis, competitor research, positioning
43
44
  - **Game Design Document** — Comprehensive GDD with mechanics, progression, and balance
44
45
  - **Narrative Design** — Story structure, characters, dialogue, world-building
46
+ - **UX Design** — Two peer specs: `DESIGN.md` (visual identity) and `EXPERIENCE.md` (UI/HUD behavior, input schemes, player journeys)
45
47
  - **Technical Architecture** — Engine patterns, performance considerations
46
48
  - **Production Planning** — Epic-driven sprints, story tracking, retrospectives
47
49
  - **Quick Prototyping** — Skip the planning, jump straight into building
@@ -15,10 +15,60 @@
15
15
  # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
16
16
  # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
17
17
 
18
- # This example catches duplicate Signed-off-by lines.
18
+ # This example catches duplicate Signed-off-by lines and messages that
19
+ # would confuse 'git am'.
20
+
21
+ ret=0
19
22
 
20
23
  test "" = "$(grep '^Signed-off-by: ' "$1" |
21
24
  sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
22
25
  echo >&2 Duplicate Signed-off-by lines.
23
- exit 1
26
+ ret=1
24
27
  }
28
+
29
+ comment_re="$(
30
+ {
31
+ git config --get-regexp "^core\.comment(char|string)\$" ||
32
+ echo '#'
33
+ } | sed -n -e '
34
+ ${
35
+ s/^[^ ]* //
36
+ s|[][*./\]|\\&|g
37
+ s/^auto$/[#;@!$%^&|:]/
38
+ p
39
+ }'
40
+ )"
41
+ scissors_line="^${comment_re} -\{8,\} >8 -\{8,\}\$"
42
+ comment_line="^${comment_re}.*"
43
+ blank_line='^[ ]*$'
44
+ # Disallow lines starting with "diff -" or "Index: " in the body of the
45
+ # message. Stop looking if we see a scissors line.
46
+ line="$(sed -n -e "
47
+ # Skip comments and blank lines at the start of the file.
48
+ /${scissors_line}/q
49
+ /${comment_line}/d
50
+ /${blank_line}/d
51
+ # The first paragraph will become the subject header so
52
+ # does not need to be checked.
53
+ : subject
54
+ n
55
+ /${scissors_line}/q
56
+ /${blank_line}/!b subject
57
+ # Check the body of the message for problematic
58
+ # prefixes.
59
+ : body
60
+ n
61
+ /${scissors_line}/q
62
+ /${comment_line}/b body
63
+ /^diff -/{p;q;}
64
+ /^Index: /{p;q;}
65
+ b body
66
+ " "$1")"
67
+ if test -n "$line"
68
+ then
69
+ echo >&2 "Message contains a diff that will confuse 'git am'."
70
+ echo >&2 "To fix this indent the diff."
71
+ ret=1
72
+ fi
73
+
74
+ exit $ret
@@ -29,8 +29,6 @@ if ($version ne 2) {
29
29
 
30
30
  my $git_work_tree = get_working_dir();
31
31
 
32
- my $retry = 1;
33
-
34
32
  my $json_pkg;
35
33
  eval {
36
34
  require JSON::XS;
@@ -123,8 +121,7 @@ sub watchman_query {
123
121
  sub is_work_tree_watched {
124
122
  my ($output) = @_;
125
123
  my $error = $output->{error};
126
- if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
127
- $retry--;
124
+ if ($error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
128
125
  my $response = qx/watchman watch "$git_work_tree"/;
129
126
  die "Failed to make watchman watch '$git_work_tree'.\n" .
130
127
  "Falling back to scanning...\n" if $? != 0;
@@ -142,15 +139,12 @@ sub is_work_tree_watched {
142
139
  # Watchman query just to get it over with now so we won't pay
143
140
  # the cost in git to look up each individual file.
144
141
  my $o = watchman_clock();
145
- $error = $output->{error};
142
+ $error = $o->{error};
146
143
 
147
144
  die "Watchman: $error.\n" .
148
145
  "Falling back to scanning...\n" if $error;
149
146
 
150
147
  output_result($o->{clock}, ("/"));
151
- $last_update_token = $o->{clock};
152
-
153
- eval { launch_watchman() };
154
148
  return 0;
155
149
  }
156
150
 
@@ -1,2 +1,2 @@
1
1
  # pack-refs with: peeled fully-peeled sorted
2
- 943bd180af9ad7204b9b11f582fbd31225aa8534 refs/remotes/origin/main
2
+ 46c3a6cddf882af1f918187d6e5748c1edfd9c52 refs/remotes/origin/main
@@ -1 +1 @@
1
- 943bd180af9ad7204b9b11f582fbd31225aa8534
1
+ 46c3a6cddf882af1f918187d6e5748c1edfd9c52
@@ -1 +1 @@
1
- 943bd180af9ad7204b9b11f582fbd31225aa8534
1
+ 46c3a6cddf882af1f918187d6e5748c1edfd9c52
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "bmad-game-dev-studio",
4
- "version": "0.4.0",
4
+ "version": "0.6.0",
5
5
  "private": true,
6
6
  "description": "A BMad MEthod Core Module that offers a substantial stand alone module for Game Development across multiple supported platforms",
7
7
  "keywords": [
@@ -45,8 +45,8 @@ skill = "gds-create-game-brief"
45
45
 
46
46
  [[agent.menu]]
47
47
  code = "GDD"
48
- description = "Create a Game Design Document"
49
- skill = "gds-create-gdd"
48
+ description = "Create, update, or validate a Game Design Document"
49
+ skill = "gds-gdd"
50
50
 
51
51
  [[agent.menu]]
52
52
  code = "ND"
@@ -54,6 +54,6 @@ description = "Design narrative elements and story"
54
54
  skill = "gds-create-narrative"
55
55
 
56
56
  [[agent.menu]]
57
- code = "QP"
58
- description = "Rapid game prototyping test mechanics and ideas quickly"
59
- skill = "gds-quick-prototype"
57
+ code = "CU"
58
+ description = "Plan game UX, UI, HUD, and player journeys"
59
+ skill = "gds-ux"
@@ -58,11 +58,6 @@ code = "QD"
58
58
  description = "Clarify, plan, implement, review, and present any intent end-to-end"
59
59
  skill = "gds-quick-dev"
60
60
 
61
- [[agent.menu]]
62
- code = "QP"
63
- description = "Rapid game prototyping — test mechanics and ideas quickly"
64
- skill = "gds-quick-prototype"
65
-
66
61
  [[agent.menu]]
67
62
  code = "CS"
68
63
  description = "Create a story with full context for developer implementation"
@@ -123,6 +118,11 @@ code = "TR"
123
118
  description = "Review test quality and coverage"
124
119
  skill = "gds-test-review"
125
120
 
121
+ [[agent.menu]]
122
+ code = "IN"
123
+ description = "Forensic case investigation — trace a bug, reconstruct an incident, or model unfamiliar code"
124
+ skill = "gds-investigate"
125
+
126
126
  [[agent.menu]]
127
127
  code = "AE"
128
128
  description = "Advanced elicitation — challenge the LLM to get better results"
@@ -34,11 +34,6 @@ principles = [
34
34
  "The core loop must be fun before anything else matters.",
35
35
  ]
36
36
 
37
- [[agent.menu]]
38
- code = "QP"
39
- description = "Rapid prototype to test if the mechanic is fun — start here for new ideas"
40
- skill = "gds-quick-prototype"
41
-
42
37
  [[agent.menu]]
43
38
  code = "QD"
44
39
  description = "Clarify, plan, implement, review, and present any intent end-to-end"
@@ -1,22 +1,15 @@
1
- module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
1
+ module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
2
2
  Game Dev Studio,_meta,,,,,,,,,false,https://game-dev-studio-docs.bmad-method.org/llms.txt,
3
3
  Game Dev Studio,gds-document-project,Document Project,DP,Analyze an existing game project to produce useful documentation.,,,anytime,,,false,project_knowledge,project documentation
4
- Game Dev Studio,gds-quick-prototype,Quick Prototype,QP,Rapid game prototyping to test mechanics and ideas quickly.,,,anytime,,,false,,
5
4
  Game Dev Studio,gds-quick-dev,Quick Dev,QD,Clarify plan implement review and present any user intent or change request in a single workflow.,,,anytime,,,false,implementation_artifacts,spec
6
5
  Game Dev Studio,gds-correct-course,Correct Course,CC,Navigate significant changes during game dev sprint when implementation is off-track.,,,anytime,,,false,planning_artifacts,change proposal
7
6
  Game Dev Studio,gds-brainstorm-game,Brainstorm Game,BG,Facilitate game brainstorming sessions with game-specific context and techniques.,,,1-preproduction,,,false,output_folder,brainstorming session
8
- Game Dev Studio,gds-market-research,Market Research,MR,Game market analysis competitive landscape player needs and trends.,,,1-preproduction,,,false,planning_artifacts,research documents
9
7
  Game Dev Studio,gds-domain-research,Domain Research,DR,Game industry domain deep dive subject matter expertise and terminology.,,,1-preproduction,,,false,planning_artifacts,research documents
10
- Game Dev Studio,gds-technical-research,Technical Research,TR,Technical feasibility game engine options and implementation approaches.,,,1-preproduction,,,false,planning_artifacts,research documents
11
8
  Game Dev Studio,gds-create-game-brief,Game Brief,GB,Interactive game brief creation that guides users through defining their game vision.,,,1-preproduction,,,false,output_folder,game brief
12
- Game Dev Studio,gds-create-gdd,Game Design Document,GDD,Create a GDD with mechanics systems progression and implementation guidance.,,,2-design,,,false,planning_artifacts,gdd
13
- Game Dev Studio,gds-validate-gdd,Validate GDD,VG,Validate an existing GDD against standards. Delegates to gds-validate-prd until GDD-specific checks are authored.,,,2-design,gds-create-gdd,,false,planning_artifacts,gdd validation report
14
- Game Dev Studio,gds-edit-gdd,Edit GDD,EG,Improve and enhance an existing GDD. Delegates to gds-edit-prd until GDD-specific edit flow is authored.,,,2-design,gds-validate-gdd,,false,planning_artifacts,updated gdd
15
- Game Dev Studio,gds-create-narrative,Narrative Design,ND,Create comprehensive narrative documentation including story structure character arcs and world-building. Use for story-driven games.,,,2-design,gds-create-gdd,,false,planning_artifacts,narrative design
16
- Game Dev Studio,gds-create-ux-design,Create UX Design,CU,"Guidance through realizing the plan for your game UX/UI, strongly recommended if UI is a primary piece of the proposed game.",,,2-design,gds-create-gdd,,false,planning_artifacts,ux design
17
- Game Dev Studio,gds-create-prd,Create PRD,CP,Create a PRD from GDD or from scratch for use with external tools like bmad-assist.,,,2-design,gds-create-gdd,,false,planning_artifacts,prd
18
- Game Dev Studio,gds-validate-prd,Validate PRD,VP,Validate PRD against standards for external tool compatibility.,,,2-design,gds-create-prd,,false,planning_artifacts,prd validation report
19
- Game Dev Studio,gds-edit-prd,Edit PRD,EP,Improve and enhance an existing PRD.,,,2-design,gds-validate-prd,,false,planning_artifacts,updated prd
9
+ Game Dev Studio,gds-gdd,Game Design Document,GDD,"Create, update, or validate a game's GDD the primary design artifact covering pillars, mechanics, progression, levels, art, audio, and development epics.",,,2-design,,,false,planning_artifacts,gdd
10
+ Game Dev Studio,gds-create-narrative,Narrative Design,ND,Create comprehensive narrative documentation including story structure character arcs and world-building. Use for story-driven games.,,,2-design,gds-gdd,,false,planning_artifacts,narrative design
11
+ Game Dev Studio,gds-ux,Game UX Design,CU,"Plan game UX with DESIGN.md and EXPERIENCE.md spines covering UI, HUD, input schemes, and player journeys.",,,2-design,gds-gdd,,false,planning_artifacts,ux design
12
+ Game Dev Studio,gds-prd,Game PRD,PRD,"Create, update, or validate a game project's PRD often derived from a GDD or prepared for external-tool integration.",,,2-design,gds-gdd,,false,planning_artifacts,prd
20
13
  Game Dev Studio,gds-generate-project-context,Project Context,PC,Create optimized project-context.md for chosen agentic tool consistency.,,,3-technical,,,false,,
21
14
  Game Dev Studio,gds-game-architecture,Game Architecture,GA,Produce a scale-adaptive game architecture with engine systems networking and technical design.,,,3-technical,,,true,planning_artifacts,game architecture
22
15
  Game Dev Studio,gds-create-epics-and-stories,Create Epics and Stories,CE,Create the Epics and Stories listing from GDD requirements. These are the specs that drive development.,,,3-technical,gds-game-architecture,,true,planning_artifacts,epics and stories
@@ -29,6 +22,7 @@ Game Dev Studio,gds-create-story,Create Story,CS,Create Story with comprehensive
29
22
  Game Dev Studio,gds-dev-story,Dev Story,DS,Execute Dev Story workflow implementing tasks and tests.,,,4-production,gds-create-story,,true,,
30
23
  Game Dev Studio,gds-code-review,Code Review,CR,Perform thorough clean context QA code review on stories flagged Ready for Review.,,,4-production,gds-dev-story,,false,,
31
24
  Game Dev Studio,gds-retrospective,Retrospective,ER,Facilitate team retrospective after a game development epic is completed.,,,4-production,gds-code-review,,false,implementation_artifacts,retrospective
25
+ Game Dev Studio,gds-investigate,Investigate,IN,"Forensic case investigation with evidence-graded findings — trace a bug, reconstruct an incident, or model unfamiliar code.",,,4-production,,,false,implementation_artifacts,investigation case file
32
26
  Game Dev Studio,gds-test-automate,Test Automate,TA,Generate automated game tests.,,,gametest,,,false,,
33
27
  Game Dev Studio,gds-e2e-scaffold,E2E Scaffold,ES,Scaffold E2E testing infrastructure.,,,gametest,gds-test-automate,,false,,
34
28
  Game Dev Studio,gds-playtest-plan,Playtest Plan,PP,Create structured playtesting plan.,,,gametest,gds-e2e-scaffold,,false,planning_artifacts,playtest plan
@@ -3,7 +3,7 @@ name: "BMGD: BMad Game Dev Studio"
3
3
  header: "BMad Game Development Studio Module"
4
4
  subheader: ""
5
5
  default_selected: false
6
- module_version: 0.3.0
6
+ module_version: 0.6.0
7
7
 
8
8
  # Variables from Core Config inserted:
9
9
  ## user_name
@@ -1,41 +1,116 @@
1
1
  # DO NOT EDIT -- overwritten on every update.
2
2
  #
3
- # Workflow customization surface for gds-create-game-brief. Mirrors the
4
- # agent customization shape under the [workflow] namespace.
3
+ # Workflow customization surface for gds-create-game-brief.
4
+ #
5
+ # Override files (not edited here):
6
+ # {project-root}/_bmad/custom/gds-create-game-brief.toml (team)
7
+ # {project-root}/_bmad/custom/gds-create-game-brief.user.toml (personal)
5
8
 
6
9
  [workflow]
7
10
 
8
11
  # --- Configurable below. Overrides merge per BMad structural rules: ---
9
- # scalars: override wins • arrays (persistent_facts, activation_steps_*): append
10
- # arrays-of-tables with `code`/`id`: replace matching items, append new ones.
12
+ # scalars: override wins • arrays: append
11
13
 
12
14
  # Steps to run before the standard activation (config load, greet).
13
- # Overrides append. Use for pre-flight loads, compliance checks, etc.
14
-
15
+ # Use for pre-flight loads, compliance checks, etc.
15
16
  activation_steps_prepend = []
16
17
 
17
18
  # Steps to run after greet but before the workflow begins.
18
- # Overrides append. Use for context-heavy setup that should happen
19
- # once the user has been acknowledged.
20
-
19
+ # Use for context-heavy setup that should happen once the user has been acknowledged.
21
20
  activation_steps_append = []
22
21
 
23
22
  # Persistent facts the workflow keeps in mind for the whole run
24
- # (standards, compliance constraints, stylistic guardrails).
25
- # Distinct from the runtime memory sidecar these are static context
26
- # loaded on activation. Overrides append.
23
+ # (studio standards, platform constraints, stylistic guardrails).
24
+ # Each entry is either a literal sentence, a skill prefixed with `skill:`, or a
25
+ # `file:`-prefixed path/glob whose contents are loaded as facts. Empty by default.
27
26
  #
28
- # Each entry is either:
29
- # - a literal sentence, e.g. "Game briefs must anchor on a single core fantasy players can describe in one sentence."
30
- # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
- # (glob patterns are supported; the file's contents are loaded and treated as facts).
27
+ # Common opt-ins (set in team/user override TOML):
28
+ # "file:{project-root}/**/project-context.md" # load project context if gds-generate-project-context produced one
29
+ # "skill:acme-studio:brand-and-rating-guidelines" # a skill that contains studio info
30
+ # "Every game brief must anchor on a single core fantasy players can describe in one sentence."
31
+ persistent_facts = []
32
+
33
+ # Executed when the workflow completes (after the user has been told the
34
+ # brief is ready). Accepts either a string scalar (single instruction)
35
+ # or an array of instructions executed in order. Empty for none.
36
+ on_complete = ""
37
+
38
+ # Default game-brief structure. Treated as a starting point — the LLM adapts it
39
+ # to the game, purpose, and genre. Override the path in team/user TOML to enforce
40
+ # a different structure (e.g. live-service, narrative-heavy, mobile-F2P).
41
+ brief_template = "assets/brief-template.md"
32
42
 
33
- persistent_facts = [
34
- "file:{project-root}/**/project-context.md",
43
+ # Run folder location. The brief and optional addendum land inside
44
+ # `{brief_output_path}/{run_folder_pattern}/`. Resume-check scans
45
+ # `{brief_output_path}` for prior unfinished runs.
46
+ brief_output_path = "{planning_artifacts}/briefs"
47
+ run_folder_pattern = "brief-{project_name}-{date}"
48
+
49
+ # Polish passes applied to human-consumed docs at finalize. Each entry is a
50
+ # `skill:`, `file:`, or plain-text directive run as a parallel subagent against
51
+ # the draft; findings are applied before the user sees it. Encodes standards,
52
+ # not options.
53
+ #
54
+ # Examples:
55
+ # "skill:bmad-editorial-review-prose"
56
+ # "file:{project-root}/_bmad/style-guides/studio-voice.md"
57
+ # "Convert all dates to ISO 8601 format."
58
+ #
59
+ # Suggested order (broader passes first, narrower last):
60
+ # 1. Structural (cuts, reorganization, section sizing)
61
+ # 2. Content/voice/conventions (studio standards, tone, terminology, rating)
62
+ # 3. Prose mechanics (grammar, clarity, typos)
63
+ #
64
+ # Override the array in team/user TOML to add additional standards. Append-only:
65
+ # base entries cannot be removed or replaced (resolver has no removal mechanism).
66
+ polish_passes = [
67
+ "skill:bmad-editorial-review-structure",
68
+ "skill:bmad-editorial-review-prose",
35
69
  ]
36
70
 
37
- # Scalar: executed when the workflow reaches Step 8 (Success & Handoff),
38
- # after the final outputs are produced. Override wins.
39
- # Leave empty for no custom post-completion behavior.
71
+ # Reviewer panel applied at finalize, after polish_passes. Each entry is a
72
+ # `skill:`, `file:`, or plain-text directive run as a parallel subagent that
73
+ # critiques the draft and returns findings (it does not silently rewrite).
74
+ # Prefix an entry with `required:` to make it a hard gate — the workflow will
75
+ # not present the brief as final until that reviewer passes or the user waives
76
+ # it. `finalize_reviewers` is an alias surface for the same gate. Empty by default.
77
+ #
78
+ # Examples (set in team/user override TOML):
79
+ # "skill:acme-studio:greenlight-review"
80
+ # "required:Confirm the core fantasy is stated in a single sentence and the MVP is truly minimal."
81
+ # "When the brief targets a rated platform, cross-check content against corp:rating_reference."
82
+ reviewers = []
83
+ finalize_reviewers = []
40
84
 
41
- on_complete = ""
85
+ # Name or directive of the single reviewer treated as the required gate when
86
+ # not expressed inline via a `required:` prefix above. Empty by default.
87
+ required_reviewer = ""
88
+
89
+ # External-source registry. Natural-language directives describing knowledge
90
+ # bases, MCP tools, or internal systems the LLM may consult during the workflow
91
+ # when a relevant need surfaces. The LLM does NOT query these preemptively — it
92
+ # consults them on demand (during Discovery, validation, drafting, etc.). Each
93
+ # entry names the tool, the conditions for using it, and any fields it needs.
94
+ # If a named MCP tool is unavailable at runtime, the LLM falls back to standard
95
+ # behavior and notes the gap. Empty by default.
96
+ #
97
+ # Examples (set in team/user override TOML):
98
+ # "When researching genre context, consult corp:kb_search (database='game-design-docs') before web search."
99
+ # "For player-sentiment signal during Discovery, query corp:wishlist_search with project={project_name}."
100
+ # "When validating platform-rating claims, cross-check against corp:rating_reference."
101
+ external_sources = []
102
+
103
+ # External-handoff routing. Natural-language directives the LLM applies at
104
+ # Finalize to route outputs beyond local files (Confluence, Notion, Google
105
+ # Drive, ticket systems, etc.). Each entry names the MCP tool, the destination,
106
+ # and the fields it needs. Handoffs run after the artifact is polished and
107
+ # before the final user-facing message. URLs or IDs returned by the destination
108
+ # are captured and surfaced to the user. If a named tool is unavailable at
109
+ # runtime, the handoff is skipped and flagged in the JSON status; local files
110
+ # always exist regardless. Fires automatically — users can opt out in their
111
+ # prompt for a specific run. Empty by default.
112
+ #
113
+ # Examples (set in team/user override TOML):
114
+ # "After finalize, upload brief.md and addendum.md to Confluence via corp:confluence_upload (space_key='GAME', parent_page='Game Briefs', label='brief', author={user_name})."
115
+ # "Post a ready-for-review ping to Slack via corp:slack_post (channel='#game-design', text='New game brief: '+{confluence_url})."
116
+ external_handoffs = []
@@ -0,0 +1,190 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>GDD Validation: $prd_name</title>
6
+ <style>
7
+ :root {
8
+ --bg: #fafaf9;
9
+ --surface: #ffffff;
10
+ --border: #e7e5e4;
11
+ --text: #1c1917;
12
+ --muted: #78716c;
13
+ --pass: #22c55e;
14
+ --warn: #eab308;
15
+ --fail: #ef4444;
16
+ --na: #94a3b8;
17
+ --sev-low: #64748b;
18
+ --sev-medium: #ca8a04;
19
+ --sev-high: #ea580c;
20
+ --sev-critical: #dc2626;
21
+ --grade-exc: #16a34a;
22
+ --grade-good: #65a30d;
23
+ --grade-fair: #d97706;
24
+ --grade-poor: #dc2626;
25
+ }
26
+ * { box-sizing: border-box; }
27
+ html, body { margin: 0; padding: 0; }
28
+ body {
29
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
30
+ background: var(--bg);
31
+ color: var(--text);
32
+ line-height: 1.55;
33
+ font-size: 15px;
34
+ }
35
+ .container { max-width: 960px; margin: 0 auto; padding: 32px 24px 64px; }
36
+
37
+ header.report-header {
38
+ display: flex;
39
+ align-items: center;
40
+ justify-content: space-between;
41
+ gap: 24px;
42
+ padding-bottom: 16px;
43
+ border-bottom: 1px solid var(--border);
44
+ margin-bottom: 24px;
45
+ }
46
+ .title h1 { margin: 0; font-size: 22px; font-weight: 600; letter-spacing: -0.01em; }
47
+ .title .subtitle { color: var(--muted); font-size: 13px; margin-top: 4px; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
48
+ .grade {
49
+ padding: 10px 18px;
50
+ border-radius: 8px;
51
+ font-weight: 600;
52
+ color: white;
53
+ font-size: 15px;
54
+ white-space: nowrap;
55
+ }
56
+ .grade-excellent { background: var(--grade-exc); }
57
+ .grade-good { background: var(--grade-good); }
58
+ .grade-fair { background: var(--grade-fair); }
59
+ .grade-poor { background: var(--grade-poor); }
60
+
61
+ .synthesis {
62
+ background: var(--surface);
63
+ border: 1px solid var(--border);
64
+ border-left: 3px solid var(--muted);
65
+ border-radius: 8px;
66
+ padding: 16px 20px;
67
+ margin-bottom: 24px;
68
+ color: var(--text);
69
+ font-size: 15px;
70
+ }
71
+ .synthesis:empty { display: none; }
72
+
73
+ .scoreboard {
74
+ background: var(--surface);
75
+ border: 1px solid var(--border);
76
+ border-radius: 8px;
77
+ padding: 18px 20px;
78
+ margin-bottom: 24px;
79
+ }
80
+ .score-bar { margin: 0 0 14px; line-height: 0; }
81
+ .score-stats { display: flex; gap: 22px; font-size: 14px; flex-wrap: wrap; }
82
+ .score-stats span { display: inline-flex; align-items: center; gap: 6px; }
83
+ .score-stats .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
84
+ .dot-pass { background: var(--pass); }
85
+ .dot-warn { background: var(--warn); }
86
+ .dot-fail { background: var(--fail); }
87
+ .dot-na { background: var(--na); }
88
+ .total-count { margin-left: auto; color: var(--muted); }
89
+
90
+ section.category { margin-bottom: 16px; }
91
+ section.category details {
92
+ background: var(--surface);
93
+ border: 1px solid var(--border);
94
+ border-radius: 8px;
95
+ overflow: hidden;
96
+ }
97
+ section.category summary {
98
+ padding: 14px 20px;
99
+ cursor: pointer;
100
+ user-select: none;
101
+ list-style: none;
102
+ }
103
+ section.category summary::-webkit-details-marker { display: none; }
104
+ section.category summary::before {
105
+ content: "▸";
106
+ display: inline-block;
107
+ margin-right: 10px;
108
+ color: var(--muted);
109
+ transition: transform 0.15s ease;
110
+ }
111
+ section.category details[open] summary::before { transform: rotate(90deg); }
112
+ section.category summary h2 { display: inline; margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -0.005em; }
113
+ section.category .count { color: var(--muted); font-weight: 400; margin-left: 6px; font-size: 14px; }
114
+
115
+ article.finding { padding: 16px 20px; border-top: 1px solid var(--border); }
116
+ article.finding-fail { background: rgba(239, 68, 68, 0.025); }
117
+ article.finding header {
118
+ display: flex;
119
+ align-items: center;
120
+ gap: 10px;
121
+ flex-wrap: wrap;
122
+ margin-bottom: 8px;
123
+ }
124
+ .badge {
125
+ font-size: 10.5px;
126
+ padding: 3px 8px;
127
+ border-radius: 4px;
128
+ font-weight: 600;
129
+ text-transform: uppercase;
130
+ letter-spacing: 0.04em;
131
+ line-height: 1.4;
132
+ }
133
+ .badge-pass { background: rgba(34, 197, 94, 0.12); color: #15803d; }
134
+ .badge-warn { background: rgba(234, 179, 8, 0.14); color: #854d0e; }
135
+ .badge-fail { background: rgba(239, 68, 68, 0.12); color: #b91c1c; }
136
+ .badge-na { background: rgba(148, 163, 184, 0.16); color: #475569; }
137
+ .badge-sev-low { background: rgba(100, 116, 139, 0.12); color: var(--sev-low); }
138
+ .badge-sev-medium { background: rgba(202, 138, 4, 0.14); color: var(--sev-medium); }
139
+ .badge-sev-high { background: rgba(234, 88, 12, 0.14); color: var(--sev-high); }
140
+ .badge-sev-critical { background: rgba(220, 38, 38, 0.14); color: var(--sev-critical); }
141
+ .finding-id { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; color: var(--muted); }
142
+ .finding-title { margin: 0; font-size: 15px; font-weight: 500; flex: 1; min-width: 200px; }
143
+ .finding-location, .finding-note, .finding-fix { margin-top: 6px; font-size: 14px; color: var(--text); }
144
+ .finding-location strong, .finding-fix strong { color: var(--muted); font-weight: 500; }
145
+
146
+ footer.report-footer {
147
+ margin-top: 40px;
148
+ padding-top: 16px;
149
+ border-top: 1px solid var(--border);
150
+ font-size: 12px;
151
+ color: var(--muted);
152
+ font-family: ui-monospace, "SF Mono", Menlo, monospace;
153
+ }
154
+ footer .meta { display: flex; gap: 24px; flex-wrap: wrap; }
155
+ </style>
156
+ </head>
157
+ <body>
158
+ <div class="container">
159
+ <header class="report-header">
160
+ <div class="title">
161
+ <h1>$prd_name — GDD Validation Report</h1>
162
+ <div class="subtitle">$prd_path</div>
163
+ </div>
164
+ <div class="grade $grade_class">$grade</div>
165
+ </header>
166
+
167
+ <div class="synthesis">$overall_synthesis</div>
168
+
169
+ <div class="scoreboard">
170
+ <div class="score-bar">$score_svg</div>
171
+ <div class="score-stats">
172
+ <span><span class="dot dot-pass"></span>$passed pass</span>
173
+ <span><span class="dot dot-warn"></span>$warned warn</span>
174
+ <span><span class="dot dot-fail"></span>$failed fail</span>
175
+ <span><span class="dot dot-na"></span>$na n/a</span>
176
+ <span class="total-count">$total items checked</span>
177
+ </div>
178
+ </div>
179
+
180
+ $categories_html
181
+
182
+ <footer class="report-footer">
183
+ <div class="meta">
184
+ <span>Checklist: $checklist_path</span>
185
+ <span>Generated: $timestamp</span>
186
+ </div>
187
+ </footer>
188
+ </div>
189
+ </body>
190
+ </html>