bmad-plus 0.12.0 → 0.12.2

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 (160) hide show
  1. package/CHANGELOG.md +612 -554
  2. package/README.md +557 -577
  3. package/osint-agent-package/agents/osint-investigator.md +12 -0
  4. package/osint-agent-package/skills/bmad-osint-investigate/osint/SKILL.md +491 -482
  5. package/osint-agent-package/skills/bmad-osint-investigate/osint/assets/dossier-template.md +126 -126
  6. package/osint-agent-package/skills/bmad-osint-investigate/osint/assets/lawful-basis-record.md +48 -48
  7. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/content-extraction.md +100 -100
  8. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/gdpr-osint.md +48 -48
  9. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/platforms.md +130 -130
  10. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/psychoprofile.md +69 -69
  11. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/tools.md +281 -281
  12. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/mcp-client.py +136 -136
  13. package/package.json +104 -91
  14. package/readme-international/README.de.md +596 -589
  15. package/readme-international/README.es.md +613 -606
  16. package/readme-international/README.fr.md +611 -604
  17. package/src/bmad-plus/agents/agent-shadow/SKILL.md +18 -0
  18. package/src/bmad-plus/data/role-triggers.yaml +52 -0
  19. package/src/bmad-plus/module.yaml +283 -283
  20. package/src/bmad-plus/packs/pack-animated/animated-website-agent.md +325 -325
  21. package/src/bmad-plus/packs/pack-animated/templates/animated-website-workflow.md +55 -55
  22. package/src/bmad-plus/packs/pack-backup/backup-agent.md +71 -71
  23. package/src/bmad-plus/packs/pack-backup/templates/backup-workflow.md +51 -51
  24. package/src/bmad-plus/packs/pack-dev-studio/README.md +162 -162
  25. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/analyst-agent.md +73 -73
  26. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/document-project.md +61 -61
  27. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/domain-research.md +95 -95
  28. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/market-research.md +95 -95
  29. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/prfaq.md +134 -134
  30. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/product-brief.md +80 -80
  31. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/tech-writer-agent.md +73 -73
  32. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/technical-research.md +95 -95
  33. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/architect-agent.md +73 -73
  34. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-architecture.md +73 -73
  35. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-epics-stories.md +92 -92
  36. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/generate-project-context.md +80 -80
  37. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/implementation-readiness.md +90 -90
  38. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01-init.md +153 -153
  39. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01b-continue.md +173 -173
  40. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-02-context.md +224 -224
  41. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-03-starter.md +329 -329
  42. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-04-decisions.md +318 -318
  43. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-05-patterns.md +359 -359
  44. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-06-structure.md +379 -379
  45. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-07-validation.md +361 -361
  46. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-08-complete.md +81 -81
  47. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/checkpoint-preview.md +67 -67
  48. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-01-gather-context.md +85 -85
  49. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-02-review.md +35 -35
  50. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-03-triage.md +49 -49
  51. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-04-present.md +131 -131
  52. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review.md +89 -89
  53. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/correct-course.md +300 -300
  54. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/create-story.md +428 -428
  55. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-agent.md +73 -73
  56. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story-checklist.md +80 -80
  57. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story.md +484 -484
  58. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/investigate.md +193 -193
  59. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/qa-e2e-tests.md +175 -175
  60. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/quick-dev.md +110 -110
  61. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/retrospective.md +1511 -1511
  62. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-planning.md +298 -298
  63. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-status.md +296 -296
  64. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-prd.md +29 -29
  65. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-ux-design.md +74 -74
  66. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/edit-prd.md +29 -29
  67. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/pm-agent.md +73 -73
  68. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/prd.md +89 -89
  69. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/ux-designer-agent.md +73 -73
  70. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/validate-prd.md +29 -29
  71. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/advanced-elicitation.md +141 -141
  72. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/adversarial-review.md +37 -37
  73. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/bmad-help.md +75 -75
  74. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/brainstorming.md +6 -6
  75. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/customize.md +110 -110
  76. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/distillator.md +176 -176
  77. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/edge-case-hunter.md +67 -67
  78. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-prose.md +86 -86
  79. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-structure.md +179 -179
  80. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/index-docs.md +66 -66
  81. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/party-mode.md +127 -127
  82. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/shard-doc.md +105 -105
  83. package/src/bmad-plus/packs/pack-dev-studio/dev-studio-orchestrator.md +120 -120
  84. package/src/bmad-plus/packs/pack-dev-studio/shared/architecture-decision-template.md +12 -12
  85. package/src/bmad-plus/packs/pack-dev-studio/shared/bwml-spec.md +328 -328
  86. package/src/bmad-plus/packs/pack-dev-studio/shared/module-help.csv +32 -32
  87. package/src/bmad-plus/packs/pack-dev-studio/upstream-sync.yaml +81 -81
  88. package/src/bmad-plus/packs/pack-memory/shared/memory-protocol.md +14 -0
  89. package/src/bmad-plus/packs/pack-seo/SKILL.md +171 -171
  90. package/src/bmad-plus/packs/pack-seo/checklist.md +140 -140
  91. package/src/bmad-plus/packs/pack-seo/pagespeed-playbook.md +320 -320
  92. package/src/bmad-plus/packs/pack-seo/ref/audit-schema.json +187 -187
  93. package/src/bmad-plus/packs/pack-seo/ref/cwv-thresholds.md +87 -87
  94. package/src/bmad-plus/packs/pack-seo/ref/eeat-criteria.md +123 -123
  95. package/src/bmad-plus/packs/pack-seo/ref/geo-signals.md +167 -167
  96. package/src/bmad-plus/packs/pack-seo/ref/hreflang-rules.md +153 -153
  97. package/src/bmad-plus/packs/pack-seo/ref/quality-gates.md +133 -133
  98. package/src/bmad-plus/packs/pack-seo/ref/schema-catalog.md +91 -91
  99. package/src/bmad-plus/packs/pack-seo/ref/schema-templates.json +356 -356
  100. package/src/bmad-plus/packs/pack-seo/requirements.txt +17 -0
  101. package/src/bmad-plus/packs/pack-seo/scripts/seo_apis.py +456 -0
  102. package/src/bmad-plus/packs/pack-seo/scripts/seo_crawl.py +359 -0
  103. package/src/bmad-plus/packs/pack-seo/scripts/seo_fetch.py +304 -0
  104. package/src/bmad-plus/packs/pack-seo/scripts/seo_parse.py +255 -0
  105. package/src/bmad-plus/packs/pack-seo/scripts/seo_report.py +410 -0
  106. package/src/bmad-plus/packs/pack-seo/scripts/seo_screenshot.py +202 -0
  107. package/src/bmad-plus/packs/pack-seo/seo-chief.md +294 -294
  108. package/src/bmad-plus/packs/pack-seo/seo-judge.md +241 -241
  109. package/src/bmad-plus/packs/pack-seo/seo-scout.md +171 -171
  110. package/src/bmad-plus/packs/pack-seo/templates/seo-audit-workflow.md +241 -241
  111. package/src/bmad-plus/packs/pack-shield/README.md +6 -6
  112. package/src/bmad-plus/packs/pack-shield/SKILL.md +2 -2
  113. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/csrd-agent.md +11 -11
  114. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/section508-agent.md +11 -11
  115. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/wcag-agent.md +11 -11
  116. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/eu-ai-act-agent.md +11 -11
  117. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/iso42001-agent.md +11 -11
  118. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/nist-ai-rmf-agent.md +11 -11
  119. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/cis-controls-agent.md +11 -11
  120. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/ism-agent.md +11 -11
  121. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/iso27001-agent.md +11 -11
  122. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nis2-agent.md +11 -11
  123. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-800-53-agent.md +11 -11
  124. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-csf-agent.md +11 -11
  125. package/src/bmad-plus/packs/pack-shield/categories/defense-export/cmmc-agent.md +11 -11
  126. package/src/bmad-plus/packs/pack-shield/categories/defense-export/ear-agent.md +11 -11
  127. package/src/bmad-plus/packs/pack-shield/categories/defense-export/itar-agent.md +11 -11
  128. package/src/bmad-plus/packs/pack-shield/categories/defense-export/tsa-agent.md +11 -11
  129. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/dora-agent.md +11 -11
  130. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/fedramp-agent.md +11 -11
  131. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/hipaa-agent.md +11 -11
  132. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +11 -11
  133. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/soc2-agent.md +11 -11
  134. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/swift-csp-agent.md +11 -11
  135. package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +1 -1
  136. package/tools/build/check-counts.js +628 -0
  137. package/tools/build/generated-adapters/.codex/AGENTS.md +1 -1
  138. package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +1 -1
  139. package/tools/build/generated-adapters/.opencode/AGENTS.md +1 -1
  140. package/tools/build/generated-adapters/AGENTS.md +1 -1
  141. package/tools/build/generated-adapters/CLAUDE.md +1 -1
  142. package/tools/build/generated-adapters/CONVENTIONS.md +1 -1
  143. package/tools/build/generated-adapters/GEMINI.md +1 -1
  144. package/tools/cli/commands/autoconfig.js +470 -472
  145. package/tools/cli/commands/doctor.js +233 -233
  146. package/tools/cli/commands/install.js +598 -495
  147. package/tools/cli/commands/memory-journal-cmd.js +311 -311
  148. package/tools/cli/commands/memory.js +195 -195
  149. package/tools/cli/commands/scan.js +348 -364
  150. package/tools/cli/commands/uninstall.js +101 -101
  151. package/tools/cli/commands/update.js +134 -134
  152. package/tools/cli/i18n.js +845 -845
  153. package/tools/cli/lib/README-memory-journal.md +125 -125
  154. package/tools/cli/lib/ide-config.js +267 -259
  155. package/tools/cli/lib/memory-init.js +204 -113
  156. package/tools/cli/lib/packs.js +209 -209
  157. package/tools/cli/lib/path-hash.js +39 -0
  158. package/tools/cli/lib/python-provision.js +508 -508
  159. package/tools/cli/lib/stack-detect.js +102 -102
  160. package/tools/cli/lib/validate.js +50 -50
@@ -1,209 +1,209 @@
1
- /**
2
- * BMAD+ Shared PACKS Module — AUTO-GENERATED, DO NOT EDIT.
3
- * Source of truth: registry.yaml (repo root).
4
- * Regenerate: node tools/build/generate.js --out tools/cli/lib/packs.js
5
- *
6
- * Author: Laurent Rochetta
7
- */
8
-
9
- const PACKS = {
10
- "core": {
11
- "name": "Core",
12
- "icon": "b",
13
- "agents": [
14
- "agent-strategist",
15
- "agent-architect-dev",
16
- "agent-quality",
17
- "agent-orchestrator"
18
- ],
19
- "skills": [
20
- "bmad-plus-autopilot",
21
- "bmad-plus-parallel",
22
- "bmad-plus-sync"
23
- ],
24
- "data": [
25
- "role-triggers.yaml"
26
- ],
27
- "packDir": "pack-core",
28
- "packSrcDir": "packs",
29
- "required": true,
30
- "desc": "Core agents & skills"
31
- },
32
- "osint": {
33
- "name": "OSINT",
34
- "icon": "j",
35
- "agents": [
36
- "agent-shadow"
37
- ],
38
- "skills": [],
39
- "externalPackage": "osint-agent-package",
40
- "packDir": "pack-osint",
41
- "packSrcDir": "packs",
42
- "desc": "OSINT & investigation"
43
- },
44
- "maker": {
45
- "name": "Maker",
46
- "icon": "f",
47
- "agents": [
48
- "agent-maker"
49
- ],
50
- "skills": [],
51
- "data": [],
52
- "packDir": "pack-maker",
53
- "packSrcDir": "packs",
54
- "desc": "Agent creation toolkit"
55
- },
56
- "shield": {
57
- "name": "Shield",
58
- "icon": "m",
59
- "agents": [
60
- "shield-orchestrator"
61
- ],
62
- "skills": [],
63
- "packDir": "pack-shield",
64
- "packSrcDir": "packs",
65
- "desc": "GRC compliance (25+ frameworks)"
66
- },
67
- "seo": {
68
- "name": "SEO",
69
- "icon": "k",
70
- "agents": [
71
- "seo-scout",
72
- "seo-chief",
73
- "seo-judge"
74
- ],
75
- "skills": [],
76
- "packDir": "pack-seo",
77
- "packSrcDir": "packs",
78
- "desc": "SEO audit & optimization"
79
- },
80
- "memory": {
81
- "name": "Memory",
82
- "icon": "x",
83
- "agents": [
84
- "zecher"
85
- ],
86
- "skills": [],
87
- "packDir": "pack-memory",
88
- "packSrcDir": "packs",
89
- "desc": "Persistent cross-session memory"
90
- },
91
- "dev-studio": {
92
- "name": "Dev Studio",
93
- "icon": "v",
94
- "agents": [
95
- "dev-studio-orchestrator"
96
- ],
97
- "skills": [
98
- "dev-studio"
99
- ],
100
- "packDir": "pack-dev-studio",
101
- "packSrcDir": "packs",
102
- "desc": "SDLC automation (6 agents, 56+ skills)"
103
- },
104
- "backup": {
105
- "name": "Backup",
106
- "icon": "y",
107
- "agents": [
108
- "backup-agent"
109
- ],
110
- "skills": [],
111
- "packDir": "pack-backup",
112
- "packSrcDir": "packs",
113
- "desc": "Backup & restore"
114
- },
115
- "animated": {
116
- "name": "Animated",
117
- "icon": "z",
118
- "agents": [
119
- "animated-website-agent"
120
- ],
121
- "skills": [],
122
- "packDir": "pack-animated",
123
- "packSrcDir": "packs",
124
- "desc": "Animated website agents"
125
- }
126
- };
127
-
128
- const PACK_ORDER = [
129
- "core",
130
- "osint",
131
- "maker",
132
- "shield",
133
- "seo",
134
- "memory",
135
- "dev-studio",
136
- "backup",
137
- "animated"
138
- ];
139
-
140
- const EXPECTED_AGENTS = {
141
- "core": {
142
- "agents": [
143
- "agent-strategist",
144
- "agent-architect-dev",
145
- "agent-quality",
146
- "agent-orchestrator"
147
- ],
148
- "packDir": null
149
- },
150
- "osint": {
151
- "agents": [
152
- "agent-shadow"
153
- ],
154
- "packDir": null
155
- },
156
- "maker": {
157
- "agents": [
158
- "agent-maker"
159
- ],
160
- "packDir": null
161
- },
162
- "shield": {
163
- "agents": [],
164
- "packDir": "pack-shield",
165
- "packAgents": [
166
- "shield-orchestrator.md"
167
- ]
168
- },
169
- "seo": {
170
- "agents": [],
171
- "packDir": "pack-seo",
172
- "packAgents": [
173
- "seo-scout.md",
174
- "seo-chief.md",
175
- "seo-judge.md"
176
- ]
177
- },
178
- "memory": {
179
- "agents": [],
180
- "packDir": "pack-memory",
181
- "packAgents": [
182
- "zecher-agent.md",
183
- "memory-orchestrator.md"
184
- ]
185
- },
186
- "dev-studio": {
187
- "agents": [],
188
- "packDir": "pack-dev-studio",
189
- "packAgents": [
190
- "dev-studio-orchestrator.md"
191
- ]
192
- },
193
- "backup": {
194
- "agents": [],
195
- "packDir": "pack-backup",
196
- "packAgents": [
197
- "backup-agent.md"
198
- ]
199
- },
200
- "animated": {
201
- "agents": [],
202
- "packDir": "pack-animated",
203
- "packAgents": [
204
- "animated-website-agent.md"
205
- ]
206
- }
207
- };
208
-
209
- module.exports = { PACKS, PACK_ORDER, EXPECTED_AGENTS };
1
+ /**
2
+ * BMAD+ Shared PACKS Module — AUTO-GENERATED, DO NOT EDIT.
3
+ * Source of truth: registry.yaml (repo root).
4
+ * Regenerate: node tools/build/generate.js --out tools/cli/lib/packs.js
5
+ *
6
+ * Author: Laurent Rochetta
7
+ */
8
+
9
+ const PACKS = {
10
+ "core": {
11
+ "name": "Core",
12
+ "icon": "b",
13
+ "agents": [
14
+ "agent-strategist",
15
+ "agent-architect-dev",
16
+ "agent-quality",
17
+ "agent-orchestrator"
18
+ ],
19
+ "skills": [
20
+ "bmad-plus-autopilot",
21
+ "bmad-plus-parallel",
22
+ "bmad-plus-sync"
23
+ ],
24
+ "data": [
25
+ "role-triggers.yaml"
26
+ ],
27
+ "packDir": "pack-core",
28
+ "packSrcDir": "packs",
29
+ "required": true,
30
+ "desc": "Core agents & skills"
31
+ },
32
+ "osint": {
33
+ "name": "OSINT",
34
+ "icon": "j",
35
+ "agents": [
36
+ "agent-shadow"
37
+ ],
38
+ "skills": [],
39
+ "externalPackage": "osint-agent-package",
40
+ "packDir": "pack-osint",
41
+ "packSrcDir": "packs",
42
+ "desc": "OSINT & investigation"
43
+ },
44
+ "maker": {
45
+ "name": "Maker",
46
+ "icon": "f",
47
+ "agents": [
48
+ "agent-maker"
49
+ ],
50
+ "skills": [],
51
+ "data": [],
52
+ "packDir": "pack-maker",
53
+ "packSrcDir": "packs",
54
+ "desc": "Agent creation toolkit"
55
+ },
56
+ "shield": {
57
+ "name": "Shield",
58
+ "icon": "m",
59
+ "agents": [
60
+ "shield-orchestrator"
61
+ ],
62
+ "skills": [],
63
+ "packDir": "pack-shield",
64
+ "packSrcDir": "packs",
65
+ "desc": "GRC compliance (25+ frameworks)"
66
+ },
67
+ "seo": {
68
+ "name": "SEO",
69
+ "icon": "k",
70
+ "agents": [
71
+ "seo-scout",
72
+ "seo-chief",
73
+ "seo-judge"
74
+ ],
75
+ "skills": [],
76
+ "packDir": "pack-seo",
77
+ "packSrcDir": "packs",
78
+ "desc": "SEO audit & optimization"
79
+ },
80
+ "memory": {
81
+ "name": "Memory",
82
+ "icon": "x",
83
+ "agents": [
84
+ "zecher"
85
+ ],
86
+ "skills": [],
87
+ "packDir": "pack-memory",
88
+ "packSrcDir": "packs",
89
+ "desc": "Persistent cross-session memory"
90
+ },
91
+ "dev-studio": {
92
+ "name": "Dev Studio",
93
+ "icon": "v",
94
+ "agents": [
95
+ "dev-studio-orchestrator"
96
+ ],
97
+ "skills": [
98
+ "dev-studio"
99
+ ],
100
+ "packDir": "pack-dev-studio",
101
+ "packSrcDir": "packs",
102
+ "desc": "SDLC automation (6 agents, 56+ skills)"
103
+ },
104
+ "backup": {
105
+ "name": "Backup",
106
+ "icon": "y",
107
+ "agents": [
108
+ "backup-agent"
109
+ ],
110
+ "skills": [],
111
+ "packDir": "pack-backup",
112
+ "packSrcDir": "packs",
113
+ "desc": "Backup & restore"
114
+ },
115
+ "animated": {
116
+ "name": "Animated",
117
+ "icon": "z",
118
+ "agents": [
119
+ "animated-website-agent"
120
+ ],
121
+ "skills": [],
122
+ "packDir": "pack-animated",
123
+ "packSrcDir": "packs",
124
+ "desc": "Animated website agents"
125
+ }
126
+ };
127
+
128
+ const PACK_ORDER = [
129
+ "core",
130
+ "osint",
131
+ "maker",
132
+ "shield",
133
+ "seo",
134
+ "memory",
135
+ "dev-studio",
136
+ "backup",
137
+ "animated"
138
+ ];
139
+
140
+ const EXPECTED_AGENTS = {
141
+ "core": {
142
+ "agents": [
143
+ "agent-strategist",
144
+ "agent-architect-dev",
145
+ "agent-quality",
146
+ "agent-orchestrator"
147
+ ],
148
+ "packDir": null
149
+ },
150
+ "osint": {
151
+ "agents": [
152
+ "agent-shadow"
153
+ ],
154
+ "packDir": null
155
+ },
156
+ "maker": {
157
+ "agents": [
158
+ "agent-maker"
159
+ ],
160
+ "packDir": null
161
+ },
162
+ "shield": {
163
+ "agents": [],
164
+ "packDir": "pack-shield",
165
+ "packAgents": [
166
+ "shield-orchestrator.md"
167
+ ]
168
+ },
169
+ "seo": {
170
+ "agents": [],
171
+ "packDir": "pack-seo",
172
+ "packAgents": [
173
+ "seo-scout.md",
174
+ "seo-chief.md",
175
+ "seo-judge.md"
176
+ ]
177
+ },
178
+ "memory": {
179
+ "agents": [],
180
+ "packDir": "pack-memory",
181
+ "packAgents": [
182
+ "zecher-agent.md",
183
+ "memory-orchestrator.md"
184
+ ]
185
+ },
186
+ "dev-studio": {
187
+ "agents": [],
188
+ "packDir": "pack-dev-studio",
189
+ "packAgents": [
190
+ "dev-studio-orchestrator.md"
191
+ ]
192
+ },
193
+ "backup": {
194
+ "agents": [],
195
+ "packDir": "pack-backup",
196
+ "packAgents": [
197
+ "backup-agent.md"
198
+ ]
199
+ },
200
+ "animated": {
201
+ "agents": [],
202
+ "packDir": "pack-animated",
203
+ "packAgents": [
204
+ "animated-website-agent.md"
205
+ ]
206
+ }
207
+ };
208
+
209
+ module.exports = { PACKS, PACK_ORDER, EXPECTED_AGENTS };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * BMAD+ Path Hashing — shared project-identity hashing for the global brain index.
3
+ *
4
+ * Single source of truth: memory-init.js and scan.js MUST produce identical
5
+ * hashes for the same project, or the brain index double-counts it (one entry
6
+ * per drive-letter casing on Windows).
7
+ *
8
+ * Author: Laurent Rochetta
9
+ */
10
+
11
+ const path = require('node:path');
12
+ const crypto = require('node:crypto');
13
+
14
+ /**
15
+ * Normalize a filesystem path for stable hashing.
16
+ * On Windows the same project can be referenced as `D:\proj` or `d:\proj`
17
+ * (case-insensitive drive) with mixed separators. Resolving + lowercasing the
18
+ * drive letter ensures the same project produces the same index key and is not
19
+ * double-indexed.
20
+ * @param {string} p - Raw filesystem path
21
+ * @returns {string} Normalized path suitable for hashing
22
+ */
23
+ function normalizePathForHash(p) {
24
+ let resolved = path.resolve(p);
25
+ // Lowercase a leading Windows drive letter (e.g. "D:" → "d:").
26
+ resolved = resolved.replace(/^([A-Za-z]):/, (_m, drive) => drive.toLowerCase() + ':');
27
+ return resolved;
28
+ }
29
+
30
+ /**
31
+ * Stable 8-hex-char identity hash for a project directory.
32
+ * @param {string} projectDir - Raw project path (normalized internally)
33
+ * @returns {string} 8-character hex hash
34
+ */
35
+ function projectHash(projectDir) {
36
+ return crypto.createHash('sha256').update(normalizePathForHash(projectDir)).digest('hex').slice(0, 8);
37
+ }
38
+
39
+ module.exports = { normalizePathForHash, projectHash };