frappe-builder 1.1.0-dev.10

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 (425) hide show
  1. package/.fb/state.db +0 -0
  2. package/AGENTS.md +167 -0
  3. package/README.md +89 -0
  4. package/_bmad/_config/agent-manifest.csv +10 -0
  5. package/_bmad/_config/agents/bmm-analyst.customize.yaml +41 -0
  6. package/_bmad/_config/agents/bmm-architect.customize.yaml +41 -0
  7. package/_bmad/_config/agents/bmm-dev.customize.yaml +41 -0
  8. package/_bmad/_config/agents/bmm-pm.customize.yaml +41 -0
  9. package/_bmad/_config/agents/bmm-qa.customize.yaml +41 -0
  10. package/_bmad/_config/agents/bmm-quick-flow-solo-dev.customize.yaml +41 -0
  11. package/_bmad/_config/agents/bmm-sm.customize.yaml +41 -0
  12. package/_bmad/_config/agents/bmm-tech-writer.customize.yaml +41 -0
  13. package/_bmad/_config/agents/bmm-ux-designer.customize.yaml +41 -0
  14. package/_bmad/_config/bmad-help.csv +47 -0
  15. package/_bmad/_config/files-manifest.csv +369 -0
  16. package/_bmad/_config/ides/claude-code.yaml +5 -0
  17. package/_bmad/_config/manifest.yaml +28 -0
  18. package/_bmad/_config/skill-manifest.csv +41 -0
  19. package/_bmad/_config/task-manifest.csv +1 -0
  20. package/_bmad/_config/tool-manifest.csv +1 -0
  21. package/_bmad/_config/workflow-manifest.csv +1 -0
  22. package/_bmad/_memory/config.yaml +11 -0
  23. package/_bmad/_memory/tech-writer-sidecar/documentation-standards.md +224 -0
  24. package/_bmad/bmm/agents/analyst.md +69 -0
  25. package/_bmad/bmm/agents/architect.md +59 -0
  26. package/_bmad/bmm/agents/bmad-skill-manifest.yaml +39 -0
  27. package/_bmad/bmm/agents/dev.md +66 -0
  28. package/_bmad/bmm/agents/pm.md +63 -0
  29. package/_bmad/bmm/agents/qa.md +89 -0
  30. package/_bmad/bmm/agents/quick-flow-solo-dev.md +61 -0
  31. package/_bmad/bmm/agents/sm.md +67 -0
  32. package/_bmad/bmm/agents/tech-writer/bmad-skill-manifest.yaml +3 -0
  33. package/_bmad/bmm/agents/tech-writer/tech-writer.md +67 -0
  34. package/_bmad/bmm/agents/ux-designer.md +58 -0
  35. package/_bmad/bmm/config.yaml +16 -0
  36. package/_bmad/bmm/data/project-context-template.md +26 -0
  37. package/_bmad/bmm/module-help.csv +32 -0
  38. package/_bmad/bmm/teams/default-party.csv +20 -0
  39. package/_bmad/bmm/teams/team-fullstack.yaml +12 -0
  40. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +6 -0
  41. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +1 -0
  42. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md +10 -0
  43. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md +170 -0
  44. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +158 -0
  45. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +193 -0
  46. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md +196 -0
  47. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +199 -0
  48. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +213 -0
  49. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +159 -0
  50. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md +55 -0
  51. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/SKILL.md +88 -0
  52. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/artifact-analyzer.md +60 -0
  53. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/opportunity-reviewer.md +44 -0
  54. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/skeptic-reviewer.md +44 -0
  55. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/web-researcher.md +49 -0
  56. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-manifest.json +17 -0
  57. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +1 -0
  58. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/contextual-discovery.md +57 -0
  59. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/draft-and-review.md +86 -0
  60. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/finalize.md +75 -0
  61. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/guided-elicitation.md +70 -0
  62. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/resources/brief-template.md +60 -0
  63. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md +6 -0
  64. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +1 -0
  65. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +137 -0
  66. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
  67. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
  68. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
  69. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +234 -0
  70. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +444 -0
  71. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md +29 -0
  72. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/workflow.md +49 -0
  73. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/SKILL.md +6 -0
  74. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +1 -0
  75. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/research.template.md +29 -0
  76. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-01-init.md +184 -0
  77. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
  78. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
  79. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
  80. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
  81. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +478 -0
  82. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/workflow.md +49 -0
  83. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/SKILL.md +6 -0
  84. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +1 -0
  85. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/research.template.md +29 -0
  86. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +137 -0
  87. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +239 -0
  88. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
  89. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
  90. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +233 -0
  91. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +487 -0
  92. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/workflow.md +50 -0
  93. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  94. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  95. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  96. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  97. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  98. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +476 -0
  99. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +29 -0
  100. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md +6 -0
  101. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +1 -0
  102. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +135 -0
  103. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +127 -0
  104. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +190 -0
  105. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +217 -0
  106. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +220 -0
  107. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +235 -0
  108. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +253 -0
  109. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +255 -0
  110. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +225 -0
  111. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +225 -0
  112. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +242 -0
  113. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +249 -0
  114. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +238 -0
  115. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +265 -0
  116. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +171 -0
  117. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +13 -0
  118. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/workflow.md +36 -0
  119. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/SKILL.md +6 -0
  120. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +1 -0
  121. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +242 -0
  122. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +204 -0
  123. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +245 -0
  124. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +250 -0
  125. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +165 -0
  126. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/workflow.md +63 -0
  127. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/SKILL.md +6 -0
  128. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +1 -0
  129. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +15 -0
  130. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +197 -0
  131. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/project-types.csv +11 -0
  132. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +221 -0
  133. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
  134. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
  135. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
  136. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
  137. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
  138. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
  139. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
  140. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
  141. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
  142. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
  143. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
  144. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
  145. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
  146. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/workflow.md +62 -0
  147. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  148. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  149. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  150. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +224 -0
  151. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  152. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  153. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  154. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  155. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  156. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  157. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  158. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  159. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  160. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  161. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  162. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  163. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +232 -0
  164. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +65 -0
  165. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/SKILL.md +6 -0
  166. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +1 -0
  167. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
  168. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
  169. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
  170. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
  171. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
  172. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +126 -0
  173. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +4 -0
  174. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/workflow.md +49 -0
  175. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md +6 -0
  176. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/architecture-decision-template.md +12 -0
  177. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +1 -0
  178. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +13 -0
  179. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/project-types.csv +7 -0
  180. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md +153 -0
  181. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +173 -0
  182. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md +224 -0
  183. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +329 -0
  184. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +318 -0
  185. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +359 -0
  186. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +379 -0
  187. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +359 -0
  188. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +76 -0
  189. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/workflow.md +38 -0
  190. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/SKILL.md +6 -0
  191. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +1 -0
  192. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +255 -0
  193. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +212 -0
  194. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
  195. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +131 -0
  196. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
  197. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/workflow.md +53 -0
  198. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/SKILL.md +6 -0
  199. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +1 -0
  200. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-01-gather-context.md +61 -0
  201. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +41 -0
  202. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-03-triage.md +50 -0
  203. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +38 -0
  204. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/workflow.md +54 -0
  205. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/SKILL.md +6 -0
  206. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +1 -0
  207. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/checklist.md +288 -0
  208. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/workflow.md +267 -0
  209. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/SKILL.md +6 -0
  210. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +1 -0
  211. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/checklist.md +357 -0
  212. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md +88 -0
  213. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/template.md +49 -0
  214. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/workflow.md +380 -0
  215. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md +6 -0
  216. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +1 -0
  217. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/checklist.md +80 -0
  218. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/workflow.md +450 -0
  219. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/SKILL.md +6 -0
  220. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +1 -0
  221. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/workflow.md +1479 -0
  222. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/SKILL.md +6 -0
  223. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +1 -0
  224. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/checklist.md +33 -0
  225. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +56 -0
  226. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/workflow.md +263 -0
  227. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md +6 -0
  228. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +1 -0
  229. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md +261 -0
  230. package/_bmad/bmm/workflows/bmad-document-project/SKILL.md +6 -0
  231. package/_bmad/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +1 -0
  232. package/_bmad/bmm/workflows/bmad-document-project/checklist.md +245 -0
  233. package/_bmad/bmm/workflows/bmad-document-project/documentation-requirements.csv +12 -0
  234. package/_bmad/bmm/workflows/bmad-document-project/instructions.md +128 -0
  235. package/_bmad/bmm/workflows/bmad-document-project/templates/deep-dive-template.md +345 -0
  236. package/_bmad/bmm/workflows/bmad-document-project/templates/index-template.md +169 -0
  237. package/_bmad/bmm/workflows/bmad-document-project/templates/project-overview-template.md +103 -0
  238. package/_bmad/bmm/workflows/bmad-document-project/templates/project-scan-report-schema.json +160 -0
  239. package/_bmad/bmm/workflows/bmad-document-project/templates/source-tree-template.md +135 -0
  240. package/_bmad/bmm/workflows/bmad-document-project/workflow.md +27 -0
  241. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-instructions.md +299 -0
  242. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
  243. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-instructions.md +1107 -0
  244. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md +34 -0
  245. package/_bmad/bmm/workflows/bmad-generate-project-context/SKILL.md +6 -0
  246. package/_bmad/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +1 -0
  247. package/_bmad/bmm/workflows/bmad-generate-project-context/project-context-template.md +21 -0
  248. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-01-discover.md +186 -0
  249. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-02-generate.md +321 -0
  250. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-03-complete.md +278 -0
  251. package/_bmad/bmm/workflows/bmad-generate-project-context/workflow.md +43 -0
  252. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md +6 -0
  253. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +1 -0
  254. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/checklist.md +33 -0
  255. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md +136 -0
  256. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +6 -0
  257. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +1 -0
  258. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md +169 -0
  259. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md +114 -0
  260. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md +107 -0
  261. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md +107 -0
  262. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md +94 -0
  263. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md +144 -0
  264. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md +38 -0
  265. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/SKILL.md +6 -0
  266. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +1 -0
  267. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-01-clarify-and-route.md +51 -0
  268. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-02-plan.md +35 -0
  269. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-03-implement.md +33 -0
  270. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-04-review.md +50 -0
  271. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +17 -0
  272. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md +90 -0
  273. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +79 -0
  274. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +6 -0
  275. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +1 -0
  276. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md +185 -0
  277. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md +140 -0
  278. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md +123 -0
  279. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md +195 -0
  280. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md +74 -0
  281. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md +73 -0
  282. package/_bmad/cis/config.yaml +12 -0
  283. package/_bmad/cis/module-help.csv +6 -0
  284. package/_bmad/cis/skills/bmad-cis-agent-brainstorming-coach/SKILL.md +51 -0
  285. package/_bmad/cis/skills/bmad-cis-agent-brainstorming-coach/bmad-skill-manifest.yaml +11 -0
  286. package/_bmad/cis/skills/bmad-cis-agent-creative-problem-solver/SKILL.md +51 -0
  287. package/_bmad/cis/skills/bmad-cis-agent-creative-problem-solver/bmad-skill-manifest.yaml +11 -0
  288. package/_bmad/cis/skills/bmad-cis-agent-design-thinking-coach/SKILL.md +52 -0
  289. package/_bmad/cis/skills/bmad-cis-agent-design-thinking-coach/bmad-skill-manifest.yaml +11 -0
  290. package/_bmad/cis/skills/bmad-cis-agent-innovation-strategist/SKILL.md +51 -0
  291. package/_bmad/cis/skills/bmad-cis-agent-innovation-strategist/bmad-skill-manifest.yaml +11 -0
  292. package/_bmad/cis/skills/bmad-cis-agent-presentation-master/SKILL.md +62 -0
  293. package/_bmad/cis/skills/bmad-cis-agent-presentation-master/bmad-skill-manifest.yaml +11 -0
  294. package/_bmad/cis/skills/bmad-cis-agent-storyteller/SKILL.md +56 -0
  295. package/_bmad/cis/skills/bmad-cis-agent-storyteller/bmad-skill-manifest.yaml +11 -0
  296. package/_bmad/cis/skills/bmad-cis-agent-storyteller/stories-told.md +7 -0
  297. package/_bmad/cis/skills/bmad-cis-agent-storyteller/story-preferences.md +7 -0
  298. package/_bmad/cis/skills/bmad-cis-design-thinking/SKILL.md +6 -0
  299. package/_bmad/cis/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +1 -0
  300. package/_bmad/cis/skills/bmad-cis-design-thinking/design-methods.csv +31 -0
  301. package/_bmad/cis/skills/bmad-cis-design-thinking/template.md +111 -0
  302. package/_bmad/cis/skills/bmad-cis-design-thinking/workflow.md +242 -0
  303. package/_bmad/cis/skills/bmad-cis-innovation-strategy/SKILL.md +6 -0
  304. package/_bmad/cis/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +1 -0
  305. package/_bmad/cis/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +31 -0
  306. package/_bmad/cis/skills/bmad-cis-innovation-strategy/template.md +189 -0
  307. package/_bmad/cis/skills/bmad-cis-innovation-strategy/workflow.md +315 -0
  308. package/_bmad/cis/skills/bmad-cis-problem-solving/SKILL.md +6 -0
  309. package/_bmad/cis/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +1 -0
  310. package/_bmad/cis/skills/bmad-cis-problem-solving/solving-methods.csv +31 -0
  311. package/_bmad/cis/skills/bmad-cis-problem-solving/template.md +165 -0
  312. package/_bmad/cis/skills/bmad-cis-problem-solving/workflow.md +291 -0
  313. package/_bmad/cis/skills/bmad-cis-storytelling/SKILL.md +6 -0
  314. package/_bmad/cis/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +1 -0
  315. package/_bmad/cis/skills/bmad-cis-storytelling/story-types.csv +26 -0
  316. package/_bmad/cis/skills/bmad-cis-storytelling/template.md +113 -0
  317. package/_bmad/cis/skills/bmad-cis-storytelling/workflow.md +321 -0
  318. package/_bmad/core/config.yaml +9 -0
  319. package/_bmad/core/module-help.csv +11 -0
  320. package/_bmad/core/skills/bmad-advanced-elicitation/SKILL.md +6 -0
  321. package/_bmad/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +1 -0
  322. package/_bmad/core/skills/bmad-advanced-elicitation/methods.csv +51 -0
  323. package/_bmad/core/skills/bmad-advanced-elicitation/workflow.md +135 -0
  324. package/_bmad/core/skills/bmad-brainstorming/SKILL.md +6 -0
  325. package/_bmad/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +1 -0
  326. package/_bmad/core/skills/bmad-brainstorming/brain-methods.csv +62 -0
  327. package/_bmad/core/skills/bmad-brainstorming/steps/step-01-session-setup.md +214 -0
  328. package/_bmad/core/skills/bmad-brainstorming/steps/step-01b-continue.md +124 -0
  329. package/_bmad/core/skills/bmad-brainstorming/steps/step-02a-user-selected.md +229 -0
  330. package/_bmad/core/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +239 -0
  331. package/_bmad/core/skills/bmad-brainstorming/steps/step-02c-random-selection.md +211 -0
  332. package/_bmad/core/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +266 -0
  333. package/_bmad/core/skills/bmad-brainstorming/steps/step-03-technique-execution.md +401 -0
  334. package/_bmad/core/skills/bmad-brainstorming/steps/step-04-idea-organization.md +305 -0
  335. package/_bmad/core/skills/bmad-brainstorming/template.md +15 -0
  336. package/_bmad/core/skills/bmad-brainstorming/workflow.md +53 -0
  337. package/_bmad/core/skills/bmad-distillator/SKILL.md +178 -0
  338. package/_bmad/core/skills/bmad-distillator/agents/distillate-compressor.md +116 -0
  339. package/_bmad/core/skills/bmad-distillator/agents/round-trip-reconstructor.md +68 -0
  340. package/_bmad/core/skills/bmad-distillator/bmad-skill-manifest.yaml +15 -0
  341. package/_bmad/core/skills/bmad-distillator/resources/compression-rules.md +51 -0
  342. package/_bmad/core/skills/bmad-distillator/resources/distillate-format-reference.md +227 -0
  343. package/_bmad/core/skills/bmad-distillator/resources/splitting-strategy.md +78 -0
  344. package/_bmad/core/skills/bmad-editorial-review-prose/SKILL.md +6 -0
  345. package/_bmad/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +1 -0
  346. package/_bmad/core/skills/bmad-editorial-review-prose/workflow.md +81 -0
  347. package/_bmad/core/skills/bmad-editorial-review-structure/SKILL.md +6 -0
  348. package/_bmad/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +1 -0
  349. package/_bmad/core/skills/bmad-editorial-review-structure/workflow.md +174 -0
  350. package/_bmad/core/skills/bmad-help/SKILL.md +6 -0
  351. package/_bmad/core/skills/bmad-help/bmad-skill-manifest.yaml +1 -0
  352. package/_bmad/core/skills/bmad-help/workflow.md +88 -0
  353. package/_bmad/core/skills/bmad-index-docs/SKILL.md +6 -0
  354. package/_bmad/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +1 -0
  355. package/_bmad/core/skills/bmad-index-docs/workflow.md +61 -0
  356. package/_bmad/core/skills/bmad-party-mode/SKILL.md +6 -0
  357. package/_bmad/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +1 -0
  358. package/_bmad/core/skills/bmad-party-mode/steps/step-01-agent-loading.md +138 -0
  359. package/_bmad/core/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +187 -0
  360. package/_bmad/core/skills/bmad-party-mode/steps/step-03-graceful-exit.md +167 -0
  361. package/_bmad/core/skills/bmad-party-mode/workflow.md +190 -0
  362. package/_bmad/core/skills/bmad-review-adversarial-general/SKILL.md +6 -0
  363. package/_bmad/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +1 -0
  364. package/_bmad/core/skills/bmad-review-adversarial-general/workflow.md +32 -0
  365. package/_bmad/core/skills/bmad-review-edge-case-hunter/SKILL.md +6 -0
  366. package/_bmad/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +1 -0
  367. package/_bmad/core/skills/bmad-review-edge-case-hunter/workflow.md +62 -0
  368. package/_bmad/core/skills/bmad-shard-doc/SKILL.md +6 -0
  369. package/_bmad/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +1 -0
  370. package/_bmad/core/skills/bmad-shard-doc/workflow.md +100 -0
  371. package/_bmad/core/tasks/bmad-create-prd/SKILL.md +6 -0
  372. package/_bmad/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +1 -0
  373. package/_bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv +15 -0
  374. package/_bmad/core/tasks/bmad-create-prd/data/prd-purpose.md +197 -0
  375. package/_bmad/core/tasks/bmad-create-prd/data/project-types.csv +11 -0
  376. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01-init.md +178 -0
  377. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md +161 -0
  378. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md +208 -0
  379. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md +142 -0
  380. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md +158 -0
  381. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-03-success.md +214 -0
  382. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md +201 -0
  383. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-05-domain.md +194 -0
  384. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md +211 -0
  385. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md +222 -0
  386. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md +216 -0
  387. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-09-functional.md +219 -0
  388. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md +230 -0
  389. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-11-polish.md +221 -0
  390. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-12-complete.md +115 -0
  391. package/_bmad/core/tasks/bmad-create-prd/templates/prd-template.md +10 -0
  392. package/_bmad/core/tasks/bmad-create-prd/workflow.md +62 -0
  393. package/config/allowed-commands.ts +39 -0
  394. package/config/defaults.ts +19 -0
  395. package/config/loader.ts +105 -0
  396. package/dist/cli.mjs +67 -0
  397. package/dist/init-BYJy3ztn.mjs +159 -0
  398. package/extensions/frappe-gates.ts +160 -0
  399. package/extensions/frappe-session.ts +324 -0
  400. package/extensions/frappe-state.ts +235 -0
  401. package/extensions/frappe-tools.ts +278 -0
  402. package/extensions/frappe-ui.ts +119 -0
  403. package/extensions/frappe-workflow.ts +85 -0
  404. package/gates/coverage-check.ts +37 -0
  405. package/gates/frappe-native-check.ts +65 -0
  406. package/gates/permission-check.ts +65 -0
  407. package/gates/query-check.ts +40 -0
  408. package/gates/server-side-check.ts +67 -0
  409. package/gates/style-check.ts +92 -0
  410. package/gates/types.ts +13 -0
  411. package/package.json +47 -0
  412. package/project-context.md +146 -0
  413. package/state/db.ts +85 -0
  414. package/state/fsm.ts +68 -0
  415. package/state/journal.ts +164 -0
  416. package/state/schema.ts +41 -0
  417. package/tools/agent-tools.ts +60 -0
  418. package/tools/bench-tools.ts +63 -0
  419. package/tools/context-sandbox.ts +31 -0
  420. package/tools/debug-tools.ts +12 -0
  421. package/tools/feature-tools.ts +126 -0
  422. package/tools/frappe-context7.ts +70 -0
  423. package/tools/frappe-query-tools.ts +47 -0
  424. package/tools/project-tools.ts +107 -0
  425. package/tsdown.config.ts +7 -0
@@ -0,0 +1,115 @@
1
+ # Step 12: Workflow Completion
2
+
3
+ **Final Step - Complete the PRD**
4
+
5
+ ## MANDATORY EXECUTION RULES (READ FIRST):
6
+
7
+ - ✅ THIS IS A FINAL STEP - Workflow completion required
8
+ - 📖 CRITICAL: ALWAYS read the complete step file before taking any action
9
+ - 🛑 NO content generation - this is a wrap-up step
10
+ - 📋 FINALIZE document and update workflow status
11
+ - 💬 FOCUS on completion, validation options, and next steps
12
+ - 🎯 UPDATE workflow status files with completion information
13
+ - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
14
+
15
+ ## EXECUTION PROTOCOLS:
16
+
17
+ - 🎯 Show your analysis before taking any action
18
+ - 💾 Update the main workflow status file with completion information (if exists)
19
+ - 📖 Offer validation workflow options to user
20
+ - 🚫 DO NOT load additional steps after this one
21
+
22
+ ## TERMINATION STEP PROTOCOLS:
23
+
24
+ - This is a FINAL step - workflow completion required
25
+ - Update workflow status file with finalized document
26
+ - Suggest validation and next workflow steps
27
+ - Mark workflow as complete in status tracking
28
+
29
+ ## CONTEXT BOUNDARIES:
30
+
31
+ - Complete and polished PRD document is available from all previous steps
32
+ - Workflow frontmatter shows all completed steps including polish
33
+ - All collaborative content has been generated, saved, and optimized
34
+ - Focus on completion, validation options, and next steps
35
+
36
+ ## YOUR TASK:
37
+
38
+ Complete the PRD workflow, update status files, offer validation options, and suggest next steps for the project.
39
+
40
+ ## WORKFLOW COMPLETION SEQUENCE:
41
+
42
+ ### 1. Announce Workflow Completion
43
+
44
+ Inform user that the PRD is complete and polished:
45
+ - Celebrate successful completion of comprehensive PRD
46
+ - Summarize all sections that were created
47
+ - Highlight that document has been polished for flow and coherence
48
+ - Emphasize document is ready for downstream work
49
+
50
+ ### 2. Workflow Status Update
51
+
52
+ Update the main workflow status file if there is one:
53
+
54
+ - Check workflow configuration for a status file (if one exists)
55
+ - Update workflow_status["prd"] = "{outputFile}"
56
+ - Save file, preserving all comments and structure
57
+ - Mark current timestamp as completion time
58
+
59
+ ### 3. Validation Workflow Options
60
+
61
+ Offer validation workflows to ensure PRD is ready for implementation:
62
+
63
+ **Available Validation Workflows:**
64
+
65
+ **Option 1: Check Implementation Readiness** (`skill:bmad-check-implementation-readiness`)
66
+ - Validates PRD has all information needed for development
67
+ - Checks epic coverage completeness
68
+ - Reviews UX alignment with requirements
69
+ - Assesses epic quality and readiness
70
+ - Identifies gaps before architecture/design work begins
71
+
72
+ **When to use:** Before starting technical architecture or epic breakdown
73
+
74
+ **Option 2: Skip for Now**
75
+ - Proceed directly to next workflows (architecture, UX, epics)
76
+ - Validation can be done later if needed
77
+ - Some teams prefer to validate during architecture reviews
78
+
79
+ ### 4. Suggest Next Workflows
80
+
81
+ PRD complete. Invoke the `bmad-help` skill.
82
+
83
+ ### 5. Final Completion Confirmation
84
+
85
+ - Confirm completion with user and summarize what has been accomplished
86
+ - Document now contains: Executive Summary, Success Criteria, User Journeys, Domain Requirements (if applicable), Innovation Analysis (if applicable), Project-Type Requirements, Functional Requirements (capability contract), Non-Functional Requirements, and has been polished for flow and coherence
87
+ - Ask if they'd like to run validation workflow or proceed to next workflows
88
+
89
+ ## SUCCESS METRICS:
90
+
91
+ ✅ PRD document contains all required sections and has been polished
92
+ ✅ All collaborative content properly saved and optimized
93
+ ✅ Workflow status file updated with completion information (if exists)
94
+ ✅ Validation workflow options clearly presented
95
+ ✅ Clear next step guidance provided to user
96
+ ✅ Document quality validation completed
97
+ ✅ User acknowledges completion and understands next options
98
+
99
+ ## FAILURE MODES:
100
+
101
+ ❌ Not updating workflow status file with completion information (if exists)
102
+ ❌ Not offering validation workflow options
103
+ ❌ Missing clear next step guidance for user
104
+ ❌ Not confirming document completeness with user
105
+ ❌ Workflow not properly marked as complete in status tracking (if applicable)
106
+ ❌ User unclear about what happens next or what validation options exist
107
+
108
+ ❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
109
+ ❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
110
+
111
+ ## FINAL REMINDER to give the user:
112
+
113
+ The polished PRD serves as the foundation for all subsequent product development activities. All design, architecture, and development work should trace back to the requirements and vision documented in this PRD - update it also as needed as you continue planning.
114
+
115
+ **Congratulations on completing the Product Requirements Document for {{project_name}}!** 🎉
@@ -0,0 +1,10 @@
1
+ ---
2
+ stepsCompleted: []
3
+ inputDocuments: []
4
+ workflowType: 'prd'
5
+ ---
6
+
7
+ # Product Requirements Document - {{project_name}}
8
+
9
+ **Author:** {{user_name}}
10
+ **Date:** {{date}}
@@ -0,0 +1,62 @@
1
+ ---
2
+ main_config: '{project-root}/_bmad/bmm/config.yaml'
3
+ outputFile: '{planning_artifacts}/prd.md'
4
+ ---
5
+
6
+ # PRD Create Workflow
7
+
8
+ **Goal:** Create comprehensive PRDs through structured workflow facilitation.
9
+
10
+ **Your Role:** Product-focused PM facilitator collaborating with an expert peer.
11
+
12
+ You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
13
+
14
+ ## WORKFLOW ARCHITECTURE
15
+
16
+ This uses **step-file architecture** for disciplined execution:
17
+
18
+ ### Core Principles
19
+
20
+ - **Micro-file Design**: Each step is a self contained instruction file that is a part of an overall workflow that must be followed exactly
21
+ - **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
22
+ - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
23
+ - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document
24
+ - **Append-Only Building**: Build documents by appending content as directed to the output file
25
+
26
+ ### Step Processing Rules
27
+
28
+ 1. **READ COMPLETELY**: Always read the entire step file before taking any action
29
+ 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
30
+ 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
31
+ 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
32
+ 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
33
+ 6. **LOAD NEXT**: When directed, read fully and follow the next step file
34
+
35
+ ### Critical Rules (NO EXCEPTIONS)
36
+
37
+ - 🛑 **NEVER** load multiple step files simultaneously
38
+ - 📖 **ALWAYS** read entire step file before execution
39
+ - 🚫 **NEVER** skip steps or optimize the sequence
40
+ - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
41
+ - 🎯 **ALWAYS** follow the exact instructions in the step file
42
+ - ⏸️ **ALWAYS** halt at menus and wait for user input
43
+ - 📋 **NEVER** create mental todo lists from future steps
44
+
45
+ ## INITIALIZATION SEQUENCE
46
+
47
+ ### 1. Configuration Loading
48
+
49
+ Load and read full config from {main_config} and resolve:
50
+
51
+ - `project_name`, `output_folder`, `planning_artifacts`, `user_name`
52
+ - `communication_language`, `document_output_language`, `user_skill_level`
53
+ - `date` as system-generated current datetime
54
+
55
+ ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`.
56
+ ✅ YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`.
57
+
58
+ ### 2. Route to Create Workflow
59
+
60
+ "**Create Mode: Creating a new PRD from scratch.**"
61
+
62
+ Read fully and follow: `./steps-c/step-01-init.md`
@@ -0,0 +1,39 @@
1
+ import { homedir } from "node:os";
2
+ import { join } from "node:path";
3
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
4
+
5
+ const CONFIG_DIR = join(homedir(), ".frappe-builder");
6
+ const WHITELIST_PATH = join(CONFIG_DIR, "allowed-commands.json");
7
+
8
+ export const DEFAULT_BENCH_COMMANDS: string[] = [
9
+ "bench migrate",
10
+ "bench build",
11
+ "bench install",
12
+ "bench update",
13
+ "bench run-tests",
14
+ "bench restart",
15
+ "bench clear-cache",
16
+ "bench console",
17
+ ];
18
+
19
+ /**
20
+ * Loads the bench command whitelist from ~/.frappe-builder/allowed-commands.json.
21
+ * On first run (file missing): writes defaults to disk and returns them.
22
+ * On malformed JSON: logs warning and returns defaults — never throws.
23
+ */
24
+ export function loadAllowedCommands(): string[] {
25
+ if (!existsSync(WHITELIST_PATH)) {
26
+ mkdirSync(CONFIG_DIR, { recursive: true });
27
+ writeFileSync(WHITELIST_PATH, JSON.stringify(DEFAULT_BENCH_COMMANDS, null, 2), "utf-8");
28
+ return [...DEFAULT_BENCH_COMMANDS];
29
+ }
30
+ try {
31
+ const raw = readFileSync(WHITELIST_PATH, "utf-8");
32
+ const parsed = JSON.parse(raw);
33
+ if (!Array.isArray(parsed)) throw new Error("Expected JSON array");
34
+ return parsed.map(String);
35
+ } catch {
36
+ console.warn("[WHITELIST WARNING: allowed-commands.json is malformed — using defaults]");
37
+ return [...DEFAULT_BENCH_COMMANDS];
38
+ }
39
+ }
@@ -0,0 +1,19 @@
1
+ export interface SpawnRule {
2
+ trigger: string;
3
+ delegate: string;
4
+ }
5
+
6
+ export interface AppConfig {
7
+ autoGitCheckpoint: boolean;
8
+ allowSubAgents: boolean;
9
+ requirePermission: boolean;
10
+ rules: SpawnRule[];
11
+ frappeMcpUrl?: string; // URL of Frappe MCP server for frappe_query (e.g. "http://localhost:8000")
12
+ }
13
+
14
+ export const defaults: AppConfig = {
15
+ autoGitCheckpoint: true,
16
+ allowSubAgents: false, // opt-in — disabled by default
17
+ requirePermission: true, // always prompt unless explicitly disabled
18
+ rules: [],
19
+ };
@@ -0,0 +1,105 @@
1
+ import { homedir } from "node:os";
2
+ import { join } from "node:path";
3
+ import { readFileSync, existsSync, mkdirSync } from "node:fs";
4
+ import { defaults } from "./defaults.js";
5
+ import type { AppConfig } from "./defaults.js";
6
+
7
+ // ── Credential config types (NFR6, NFR9) ────────────────────────────────────
8
+
9
+ export interface GlobalConfig {
10
+ llm_api_key: string;
11
+ llm_provider?: string;
12
+ [key: string]: unknown;
13
+ }
14
+
15
+ export interface ProjectConfig {
16
+ site_url: string;
17
+ api_key: string;
18
+ api_secret: string;
19
+ [key: string]: unknown;
20
+ }
21
+
22
+ export interface CredentialConfig {
23
+ global: GlobalConfig;
24
+ project: ProjectConfig;
25
+ sessionLogDir: string;
26
+ }
27
+
28
+ /** Always ~/.frappe-builder/sessions/ — never the project directory (NFR9). */
29
+ export const SESSION_LOG_DIR = join(homedir(), ".frappe-builder", "sessions");
30
+
31
+ const GITIGNORE_ERROR =
32
+ "Site credentials file is not gitignored. Add .frappe-builder-config.json to .gitignore before proceeding.";
33
+
34
+ /**
35
+ * Validates that {projectRoot}/.gitignore lists .frappe-builder-config.json.
36
+ * Throws with the exact AC error message if missing or absent.
37
+ */
38
+ export function validateGitignore(projectRoot: string): void {
39
+ const gitignorePath = join(projectRoot, ".gitignore");
40
+ if (!existsSync(gitignorePath)) {
41
+ throw new Error(GITIGNORE_ERROR);
42
+ }
43
+ const contents = readFileSync(gitignorePath, "utf8");
44
+ const lines = contents.split("\n").map((l) => l.trim());
45
+ if (!lines.includes(".frappe-builder-config.json")) {
46
+ throw new Error(GITIGNORE_ERROR);
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Reads LLM API keys from ~/.frappe-builder/config.json (user-global, never project).
52
+ * Creates ~/.frappe-builder/ on first run. Returns empty defaults if file absent.
53
+ */
54
+ export function loadGlobalConfig(): GlobalConfig {
55
+ const configDir = join(homedir(), ".frappe-builder");
56
+ mkdirSync(configDir, { recursive: true });
57
+ const configPath = join(configDir, "config.json");
58
+ if (!existsSync(configPath)) return { llm_api_key: "" };
59
+ try {
60
+ return JSON.parse(readFileSync(configPath, "utf8")) as GlobalConfig;
61
+ } catch {
62
+ return { llm_api_key: "" };
63
+ }
64
+ }
65
+
66
+ /**
67
+ * Reads Frappe site credentials from {projectRoot}/.frappe-builder-config.json.
68
+ * Returns empty defaults if file absent (caller should surface a warning).
69
+ */
70
+ export function loadProjectConfig(projectRoot: string): ProjectConfig {
71
+ const configPath = join(projectRoot, ".frappe-builder-config.json");
72
+ if (!existsSync(configPath)) return { site_url: "", api_key: "", api_secret: "" };
73
+ try {
74
+ return JSON.parse(readFileSync(configPath, "utf8")) as ProjectConfig;
75
+ } catch {
76
+ return { site_url: "", api_key: "", api_secret: "" };
77
+ }
78
+ }
79
+
80
+ /**
81
+ * Full credential loader: validates gitignore, loads global + project configs.
82
+ * Throws if .frappe-builder-config.json is not gitignored.
83
+ * API keys are only ever read from ~/.frappe-builder/ — never from projectRoot.
84
+ */
85
+ export function loadCredentials(projectRoot: string): CredentialConfig {
86
+ validateGitignore(projectRoot);
87
+ const global = loadGlobalConfig();
88
+ const project = loadProjectConfig(projectRoot);
89
+ return { global, project, sessionLogDir: SESSION_LOG_DIR };
90
+ }
91
+
92
+ /**
93
+ * Loads ~/.frappe-builder/config.json and merges with defaults.
94
+ * Never throws — returns defaults on any read/parse failure.
95
+ */
96
+ export function loadConfig(): AppConfig {
97
+ const configPath = join(homedir(), ".frappe-builder", "config.json");
98
+ if (!existsSync(configPath)) return { ...defaults };
99
+ try {
100
+ const raw = JSON.parse(readFileSync(configPath, "utf-8")) as Partial<AppConfig>;
101
+ return { ...defaults, ...raw };
102
+ } catch {
103
+ return { ...defaults };
104
+ }
105
+ }
package/dist/cli.mjs ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from "node:module";
3
+ import { fileURLToPath } from "node:url";
4
+ import { resolve } from "node:path";
5
+ import { spawnSync } from "node:child_process";
6
+ import { existsSync } from "node:fs";
7
+ //#region src/cli.ts
8
+ /**
9
+ * src/cli.ts — frappe-builder CLI entry point
10
+ *
11
+ * Commands:
12
+ * frappe-builder init — interactive setup wizard (run once per project)
13
+ * frappe-builder — start a pi session with frappe-builder extensions loaded
14
+ */
15
+ const cmd = process.argv[2];
16
+ if (cmd === "init") {
17
+ const { runInit } = await import("./init-BYJy3ztn.mjs");
18
+ await runInit();
19
+ process.exit(0);
20
+ }
21
+ if (cmd === "--help" || cmd === "-h") {
22
+ console.log(`
23
+ Usage: frappe-builder [command]
24
+
25
+ Commands:
26
+ init Configure frappe-builder for this project (run once per project)
27
+ (none) Start a frappe-builder session
28
+
29
+ Options:
30
+ --help, -h Show this help message
31
+ `);
32
+ process.exit(0);
33
+ }
34
+ if (!existsSync(resolve(process.cwd(), ".frappe-builder-config.json"))) {
35
+ console.error("frappe-builder is not configured in this directory.");
36
+ console.error("Run: frappe-builder init");
37
+ process.exit(1);
38
+ }
39
+ const pkgRoot = resolve(fileURLToPath(import.meta.url), "..", "..");
40
+ const extensions = [
41
+ "frappe-session",
42
+ "frappe-state",
43
+ "frappe-workflow",
44
+ "frappe-tools",
45
+ "frappe-gates",
46
+ "frappe-ui"
47
+ ].map((name) => resolve(pkgRoot, "extensions", `${name}.ts`));
48
+ const agentsFile = resolve(pkgRoot, "AGENTS.md");
49
+ const require = createRequire(import.meta.url);
50
+ let piCli;
51
+ try {
52
+ piCli = require.resolve("@mariozechner/pi-coding-agent/dist/cli.js");
53
+ } catch {
54
+ console.error("Could not locate pi CLI.");
55
+ console.error("Try reinstalling: npm install -g frappe-builder@dev");
56
+ process.exit(1);
57
+ }
58
+ const extArgs = extensions.flatMap((e) => ["-e", e]);
59
+ const result = spawnSync(process.execPath, [
60
+ piCli,
61
+ ...extArgs,
62
+ "--append-system-prompt",
63
+ agentsFile
64
+ ], { stdio: "inherit" });
65
+ process.exit(result.status ?? 0);
66
+ //#endregion
67
+ export {};
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/env node
2
+ import { join } from "node:path";
3
+ import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
4
+ import { homedir } from "node:os";
5
+ import { createInterface } from "node:readline";
6
+ //#region src/init.ts
7
+ /**
8
+ * src/init.ts — interactive setup wizard for frappe-builder
9
+ *
10
+ * Handles: global config (~/.frappe-builder/config.json),
11
+ * project config (.frappe-builder-config.json),
12
+ * and .gitignore patching.
13
+ *
14
+ * No imports from state/, extensions/, or gates/.
15
+ * Uses Node.js built-ins only — no external prompt libraries.
16
+ */
17
+ let cancelled = false;
18
+ process.on("SIGINT", () => {
19
+ cancelled = true;
20
+ });
21
+ function promptLine(question) {
22
+ return new Promise((resolve) => {
23
+ if (cancelled) {
24
+ resolve("");
25
+ return;
26
+ }
27
+ const rl = createInterface({
28
+ input: process.stdin,
29
+ output: process.stdout
30
+ });
31
+ rl.question(question, (answer) => {
32
+ rl.close();
33
+ resolve(answer);
34
+ });
35
+ });
36
+ }
37
+ async function promptYN(question) {
38
+ const answer = await promptLine(question + " (y/N): ");
39
+ return answer.trim().toLowerCase() === "y" || answer.trim().toLowerCase() === "yes";
40
+ }
41
+ function writeAtomic(filePath, content) {
42
+ const tmp = filePath + ".tmp";
43
+ writeFileSync(tmp, content, "utf-8");
44
+ renameSync(tmp, filePath);
45
+ }
46
+ /** Patches .gitignore to include the exact entry if not already present. */
47
+ function patchGitignore(projectRoot, entry) {
48
+ const gitignorePath = join(projectRoot, ".gitignore");
49
+ if (!existsSync(gitignorePath)) {
50
+ writeFileSync(gitignorePath, entry + "\n", "utf-8");
51
+ return "created";
52
+ }
53
+ const content = readFileSync(gitignorePath, "utf-8");
54
+ if (content.split("\n").includes(entry)) return "already-present";
55
+ writeFileSync(gitignorePath, content.endsWith("\n") ? content + entry + "\n" : content + "\n" + entry + "\n", "utf-8");
56
+ return "patched";
57
+ }
58
+ async function runInit(opts = {}) {
59
+ const projectRoot = opts.projectRoot ?? process.cwd();
60
+ const globalConfigDir = join(homedir(), ".frappe-builder");
61
+ const globalConfigPath = join(globalConfigDir, "config.json");
62
+ const projectConfigPath = join(projectRoot, ".frappe-builder-config.json");
63
+ console.log("\n=== frappe-builder Setup ===\n");
64
+ console.log(`[Global config: ${globalConfigPath}]`);
65
+ let globalConfig = {};
66
+ let globalAction = "written";
67
+ if (existsSync(globalConfigPath)) {
68
+ try {
69
+ globalConfig = JSON.parse(readFileSync(globalConfigPath, "utf-8"));
70
+ } catch {}
71
+ if (!cancelled) {
72
+ const overwrite = await promptYN(`Overwrite existing ${globalConfigPath}?`);
73
+ if (cancelled) {
74
+ printCancelled();
75
+ return;
76
+ }
77
+ if (!overwrite) {
78
+ globalAction = "skipped";
79
+ console.log(" Keeping existing global config.\n");
80
+ }
81
+ }
82
+ }
83
+ if (!cancelled && globalAction === "written") {
84
+ const llmKey = await promptLine("LLM API key (leave blank to skip): ");
85
+ if (cancelled) {
86
+ printCancelled();
87
+ return;
88
+ }
89
+ globalConfig.llm_api_key = llmKey.trim();
90
+ }
91
+ console.log(`\n[Project config: ${projectConfigPath}]`);
92
+ let projectConfig = {};
93
+ let projectAction = "written";
94
+ if (existsSync(projectConfigPath)) {
95
+ try {
96
+ projectConfig = JSON.parse(readFileSync(projectConfigPath, "utf-8"));
97
+ } catch {}
98
+ if (!cancelled) {
99
+ const overwrite = await promptYN(`Overwrite existing ${projectConfigPath}?`);
100
+ if (cancelled) {
101
+ printCancelled();
102
+ return;
103
+ }
104
+ if (!overwrite) {
105
+ projectAction = "skipped";
106
+ console.log(" Keeping existing project config.\n");
107
+ }
108
+ }
109
+ }
110
+ if (!cancelled && projectAction === "written") {
111
+ const siteUrl = await promptLine("Frappe site URL (e.g. http://site1.localhost): ");
112
+ if (cancelled) {
113
+ printCancelled();
114
+ return;
115
+ }
116
+ const apiKey = await promptLine("Frappe API key: ");
117
+ if (cancelled) {
118
+ printCancelled();
119
+ return;
120
+ }
121
+ const apiSecret = await promptLine("Frappe API secret: ");
122
+ if (cancelled) {
123
+ printCancelled();
124
+ return;
125
+ }
126
+ projectConfig = {
127
+ site_url: siteUrl.trim(),
128
+ api_key: apiKey.trim(),
129
+ api_secret: apiSecret.trim()
130
+ };
131
+ }
132
+ const written = [];
133
+ const skipped = [];
134
+ if (globalAction === "written") {
135
+ mkdirSync(globalConfigDir, { recursive: true });
136
+ writeAtomic(globalConfigPath, JSON.stringify(globalConfig, null, 2) + "\n");
137
+ written.push(`~/.frappe-builder/config.json`);
138
+ } else skipped.push(`~/.frappe-builder/config.json`);
139
+ if (projectAction === "written") {
140
+ writeAtomic(projectConfigPath, JSON.stringify(projectConfig, null, 2) + "\n");
141
+ written.push(`.frappe-builder-config.json`);
142
+ } else skipped.push(`.frappe-builder-config.json`);
143
+ const gitignoreResult = patchGitignore(projectRoot, ".frappe-builder-config.json");
144
+ if (gitignoreResult === "patched") written.push(".gitignore (patched)");
145
+ else if (gitignoreResult === "created") written.push(".gitignore (created)");
146
+ else skipped.push(".gitignore (entry already present)");
147
+ console.log("\nFiles written:");
148
+ for (const f of written) console.log(` ✓ ${f}`);
149
+ if (skipped.length > 0) {
150
+ console.log("Skipped:");
151
+ for (const f of skipped) console.log(` - ${f}`);
152
+ }
153
+ console.log("\nReady. Run: frappe-builder\n");
154
+ }
155
+ function printCancelled() {
156
+ console.log("\nSetup cancelled. No files were written.\n");
157
+ }
158
+ //#endregion
159
+ export { runInit };