bmad-plus 0.7.5 → 0.9.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 (281) hide show
  1. package/CHANGELOG.md +479 -425
  2. package/LICENSE +21 -21
  3. package/README.md +557 -447
  4. package/osint-agent-package/README.md +88 -88
  5. package/osint-agent-package/SETUP_KEYS.md +108 -108
  6. package/osint-agent-package/agents/osint-investigator.md +80 -80
  7. package/osint-agent-package/install.ps1 +87 -87
  8. package/osint-agent-package/install.sh +76 -76
  9. package/osint-agent-package/skills/bmad-osint-investigate/SKILL.md +147 -147
  10. package/osint-agent-package/skills/bmad-osint-investigate/osint/SKILL.md +452 -452
  11. package/osint-agent-package/skills/bmad-osint-investigate/osint/assets/dossier-template.md +116 -116
  12. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/content-extraction.md +100 -100
  13. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/enrichment-databases-fr.md +148 -148
  14. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/platforms.md +130 -130
  15. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/psychoprofile.md +69 -69
  16. package/osint-agent-package/skills/bmad-osint-investigate/osint/references/tools.md +281 -281
  17. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/_http.py +101 -101
  18. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/apify.py +266 -260
  19. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/brightdata.py +101 -101
  20. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/diagnose.py +141 -141
  21. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/exa.py +79 -79
  22. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/jina.py +71 -71
  23. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/mcp-client.py +136 -136
  24. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/parallel.py +85 -85
  25. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/perplexity.py +102 -102
  26. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/tavily.py +72 -72
  27. package/osint-agent-package/skills/bmad-osint-investigate/osint/scripts/volley.py +208 -208
  28. package/osint-agent-package/skills/bmad-osint-investigator/SKILL.md +15 -15
  29. package/package.json +62 -57
  30. package/readme-international/README.de.md +584 -426
  31. package/readme-international/README.es.md +601 -518
  32. package/readme-international/README.fr.md +599 -516
  33. package/src/bmad-plus/agents/agent-architect-dev/SKILL.md +96 -96
  34. package/src/bmad-plus/agents/agent-architect-dev/bmad-skill-manifest.yaml +13 -13
  35. package/src/bmad-plus/agents/agent-maker/SKILL.md +201 -201
  36. package/src/bmad-plus/agents/agent-maker/bmad-skill-manifest.yaml +13 -13
  37. package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +137 -137
  38. package/src/bmad-plus/agents/agent-orchestrator/bmad-skill-manifest.yaml +13 -13
  39. package/src/bmad-plus/agents/agent-quality/SKILL.md +83 -83
  40. package/src/bmad-plus/agents/agent-quality/bmad-skill-manifest.yaml +13 -13
  41. package/src/bmad-plus/agents/agent-shadow/SKILL.md +71 -71
  42. package/src/bmad-plus/agents/agent-shadow/bmad-skill-manifest.yaml +13 -13
  43. package/src/bmad-plus/agents/agent-strategist/SKILL.md +80 -80
  44. package/src/bmad-plus/agents/agent-strategist/bmad-skill-manifest.yaml +13 -13
  45. package/src/bmad-plus/data/role-triggers.yaml +209 -209
  46. package/src/bmad-plus/module-help.csv +10 -10
  47. package/src/bmad-plus/module.yaml +283 -280
  48. package/src/bmad-plus/{agents → packs}/pack-animated/animated-website-agent.md +325 -325
  49. package/src/bmad-plus/{agents → packs}/pack-animated/templates/animated-website-workflow.md +55 -55
  50. package/src/bmad-plus/{agents → packs}/pack-backup/backup-agent.md +71 -71
  51. package/src/bmad-plus/{agents → packs}/pack-backup/templates/backup-workflow.md +51 -51
  52. package/src/bmad-plus/packs/pack-dev-studio/README.md +162 -162
  53. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/analyst-agent.md +73 -73
  54. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/document-project.md +61 -61
  55. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/domain-research.md +95 -95
  56. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/market-research.md +95 -95
  57. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/prfaq.md +134 -134
  58. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/product-brief.md +80 -80
  59. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/tech-writer-agent.md +73 -73
  60. package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/technical-research.md +95 -95
  61. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/architect-agent.md +73 -73
  62. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-architecture.md +73 -73
  63. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-epics-stories.md +92 -92
  64. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/generate-project-context.md +80 -80
  65. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/implementation-readiness.md +90 -90
  66. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01-init.md +153 -153
  67. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01b-continue.md +173 -173
  68. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-02-context.md +224 -224
  69. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-03-starter.md +329 -329
  70. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-04-decisions.md +318 -318
  71. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-05-patterns.md +359 -359
  72. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-06-structure.md +379 -379
  73. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-07-validation.md +361 -361
  74. package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-08-complete.md +81 -81
  75. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/checkpoint-preview.md +67 -67
  76. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-01-gather-context.md +85 -85
  77. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-02-review.md +35 -35
  78. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-03-triage.md +49 -49
  79. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-04-present.md +131 -131
  80. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review.md +89 -89
  81. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/correct-course.md +300 -300
  82. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/create-story.md +428 -428
  83. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-agent.md +73 -73
  84. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story-checklist.md +80 -80
  85. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story.md +484 -484
  86. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/investigate.md +193 -193
  87. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/qa-e2e-tests.md +175 -175
  88. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/quick-dev.md +110 -110
  89. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/retrospective.md +1511 -1511
  90. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-planning.md +298 -298
  91. package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-status.md +296 -296
  92. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-prd.md +29 -29
  93. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-ux-design.md +74 -74
  94. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/edit-prd.md +29 -29
  95. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/pm-agent.md +73 -73
  96. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/prd.md +89 -89
  97. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/ux-designer-agent.md +73 -73
  98. package/src/bmad-plus/packs/pack-dev-studio/categories/planning/validate-prd.md +29 -29
  99. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/advanced-elicitation.md +141 -141
  100. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/adversarial-review.md +37 -37
  101. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/bmad-help.md +75 -75
  102. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/brainstorming.md +6 -6
  103. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/customize.md +110 -110
  104. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/distillator.md +176 -176
  105. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/edge-case-hunter.md +67 -67
  106. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-prose.md +86 -86
  107. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-structure.md +179 -179
  108. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/index-docs.md +66 -66
  109. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/party-mode.md +127 -127
  110. package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/shard-doc.md +105 -105
  111. package/src/bmad-plus/packs/pack-dev-studio/dev-studio-orchestrator.md +120 -120
  112. package/src/bmad-plus/packs/pack-dev-studio/shared/architecture-decision-template.md +12 -12
  113. package/src/bmad-plus/packs/pack-dev-studio/shared/bwml-spec.md +328 -328
  114. package/src/bmad-plus/packs/pack-dev-studio/shared/module-help.csv +32 -32
  115. package/src/bmad-plus/packs/pack-dev-studio/upstream-sync.yaml +81 -81
  116. package/src/bmad-plus/packs/pack-memory/README.md +106 -106
  117. package/src/bmad-plus/packs/pack-memory/memory-orchestrator.md +79 -79
  118. package/src/bmad-plus/packs/pack-memory/shared/karpathy-guardrails.md +86 -86
  119. package/src/bmad-plus/packs/pack-memory/shared/memory-protocol.md +143 -143
  120. package/src/bmad-plus/packs/pack-memory/templates/context.md +39 -39
  121. package/src/bmad-plus/packs/pack-memory/templates/decisions.md +25 -25
  122. package/src/bmad-plus/packs/pack-memory/templates/identity.yaml +39 -39
  123. package/src/bmad-plus/packs/pack-memory/templates/lessons.md +31 -31
  124. package/src/bmad-plus/packs/pack-memory/templates/patterns.md +24 -24
  125. package/src/bmad-plus/packs/pack-memory/templates/session-handoff.md +25 -25
  126. package/src/bmad-plus/packs/pack-memory/zecher-agent.md +157 -157
  127. package/src/bmad-plus/{agents → packs}/pack-seo/SKILL.md +171 -171
  128. package/src/bmad-plus/packs/pack-seo/bmad-skill-manifest.yaml +13 -0
  129. package/src/bmad-plus/{agents → packs}/pack-seo/checklist.md +140 -140
  130. package/src/bmad-plus/{agents → packs}/pack-seo/pagespeed-playbook.md +320 -320
  131. package/src/bmad-plus/{agents → packs}/pack-seo/ref/audit-schema.json +187 -187
  132. package/src/bmad-plus/{agents → packs}/pack-seo/ref/cwv-thresholds.md +87 -87
  133. package/src/bmad-plus/{agents → packs}/pack-seo/ref/eeat-criteria.md +123 -123
  134. package/src/bmad-plus/{agents → packs}/pack-seo/ref/geo-signals.md +167 -167
  135. package/src/bmad-plus/{agents → packs}/pack-seo/ref/hreflang-rules.md +153 -153
  136. package/src/bmad-plus/{agents → packs}/pack-seo/ref/quality-gates.md +133 -133
  137. package/src/bmad-plus/{agents → packs}/pack-seo/ref/schema-catalog.md +91 -91
  138. package/src/bmad-plus/{agents → packs}/pack-seo/ref/schema-templates.json +356 -356
  139. package/src/bmad-plus/{agents → packs}/pack-seo/seo-chief.md +294 -294
  140. package/src/bmad-plus/{agents → packs}/pack-seo/seo-judge.md +241 -241
  141. package/src/bmad-plus/{agents → packs}/pack-seo/seo-scout.md +171 -171
  142. package/src/bmad-plus/{agents → packs}/pack-seo/templates/seo-audit-workflow.md +241 -241
  143. package/src/bmad-plus/packs/pack-shield/README.md +110 -110
  144. package/src/bmad-plus/packs/pack-shield/SKILL.md +82 -0
  145. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/csrd-agent.md +262 -262
  146. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/section508-agent.md +179 -179
  147. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/wcag-agent.md +201 -201
  148. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/eu-ai-act-agent.md +97 -97
  149. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/iso42001-agent.md +251 -251
  150. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/nist-ai-rmf-agent.md +133 -133
  151. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/cis-controls-agent.md +221 -221
  152. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/ism-agent.md +150 -150
  153. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/iso27001-agent.md +167 -167
  154. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nis2-agent.md +83 -83
  155. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-800-53-agent.md +250 -250
  156. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-csf-agent.md +218 -218
  157. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/ccpa-agent.md +94 -94
  158. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/dpdpa-agent.md +136 -136
  159. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/gdpr-agent.md +296 -296
  160. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/iso27701-agent.md +134 -134
  161. package/src/bmad-plus/packs/pack-shield/categories/data-privacy/lgpd-agent.md +129 -129
  162. package/src/bmad-plus/packs/pack-shield/categories/defense-export/cmmc-agent.md +127 -127
  163. package/src/bmad-plus/packs/pack-shield/categories/defense-export/ear-agent.md +272 -272
  164. package/src/bmad-plus/packs/pack-shield/categories/defense-export/itar-agent.md +202 -202
  165. package/src/bmad-plus/packs/pack-shield/categories/defense-export/tsa-agent.md +367 -367
  166. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/dora-agent.md +510 -510
  167. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/fedramp-agent.md +247 -247
  168. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/hipaa-agent.md +173 -173
  169. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +239 -239
  170. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/soc2-agent.md +266 -266
  171. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/swift-csp-agent.md +164 -164
  172. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-classifier.md +131 -131
  173. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-fria.md +155 -155
  174. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-incidents.md +187 -187
  175. package/src/bmad-plus/packs/pack-shield/categories/workflows/ai-act-roles.md +113 -113
  176. package/src/bmad-plus/packs/pack-shield/categories/workflows/breach-sentinel.md +197 -197
  177. package/src/bmad-plus/packs/pack-shield/categories/workflows/cookie-policy-gen.md +180 -180
  178. package/src/bmad-plus/packs/pack-shield/categories/workflows/dpia-sentinel.md +235 -235
  179. package/src/bmad-plus/packs/pack-shield/categories/workflows/legitimate-interest.md +159 -159
  180. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-advisor.md +133 -133
  181. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-notice-gen.md +160 -160
  182. package/src/bmad-plus/packs/pack-shield/categories/workflows/privacy-policy-gen.md +135 -135
  183. package/src/bmad-plus/packs/pack-shield/references/ccpa/ccpa-gdpr-comparison.md +117 -117
  184. package/src/bmad-plus/packs/pack-shield/references/ccpa/consumer-rights-workflows.md +177 -177
  185. package/src/bmad-plus/packs/pack-shield/references/cis-controls/framework-mappings.md +162 -162
  186. package/src/bmad-plus/packs/pack-shield/references/cis-controls/implementation-guidance.md +235 -235
  187. package/src/bmad-plus/packs/pack-shield/references/cis-controls/safeguards-detail.md +252 -252
  188. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-assessment.md +170 -170
  189. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-levels.md +113 -113
  190. package/src/bmad-plus/packs/pack-shield/references/cmmc/cmmc-practices.md +211 -211
  191. package/src/bmad-plus/packs/pack-shield/references/csrd/compliance-program.md +281 -281
  192. package/src/bmad-plus/packs/pack-shield/references/csrd/double-materiality.md +253 -253
  193. package/src/bmad-plus/packs/pack-shield/references/csrd/esrs-standards.md +401 -401
  194. package/src/bmad-plus/packs/pack-shield/references/dora/article-reference.md +441 -441
  195. package/src/bmad-plus/packs/pack-shield/references/dora/incident-classification.md +297 -297
  196. package/src/bmad-plus/packs/pack-shield/references/dora/rts-its-guide.md +306 -306
  197. package/src/bmad-plus/packs/pack-shield/references/dora/third-party-risk.md +349 -349
  198. package/src/bmad-plus/packs/pack-shield/references/dpdpa/gdpr-comparison.md +173 -173
  199. package/src/bmad-plus/packs/pack-shield/references/dpdpa/rights-and-obligations.md +426 -426
  200. package/src/bmad-plus/packs/pack-shield/references/dpdpa/rules-2025.md +599 -599
  201. package/src/bmad-plus/packs/pack-shield/references/dpdpa/sections-reference.md +319 -319
  202. package/src/bmad-plus/packs/pack-shield/references/ear/ccl-eccn-guide.md +250 -250
  203. package/src/bmad-plus/packs/pack-shield/references/ear/compliance-program.md +280 -280
  204. package/src/bmad-plus/packs/pack-shield/references/ear/license-exceptions.md +207 -207
  205. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/gpai-governance.md +267 -267
  206. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/obligations-high-risk.md +287 -287
  207. package/src/bmad-plus/packs/pack-shield/references/eu-ai-act/risk-classification.md +182 -182
  208. package/src/bmad-plus/packs/pack-shield/references/fedramp/appendices-guide.md +209 -209
  209. package/src/bmad-plus/packs/pack-shield/references/fedramp/control-families.md +281 -281
  210. package/src/bmad-plus/packs/pack-shield/references/fedramp/poam-guide.md +93 -93
  211. package/src/bmad-plus/packs/pack-shield/references/fedramp/readiness-checklist.md +134 -134
  212. package/src/bmad-plus/packs/pack-shield/references/fedramp/sap-sar-guide.md +86 -86
  213. package/src/bmad-plus/packs/pack-shield/references/fedramp/ssp-guide.md +129 -129
  214. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/documents.md +192 -192
  215. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/dpa-template.md +121 -121
  216. package/src/bmad-plus/packs/pack-shield/references/gdpr-compliance/privacy-notice.md +87 -87
  217. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/breach-notification.md +293 -293
  218. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/privacy-rule.md +276 -276
  219. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/security-rule.md +299 -299
  220. package/src/bmad-plus/packs/pack-shield/references/hipaa-compliance/templates.md +568 -568
  221. package/src/bmad-plus/packs/pack-shield/references/ism/control-applicability.md +181 -181
  222. package/src/bmad-plus/packs/pack-shield/references/ism/guidelines-overview.md +183 -183
  223. package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2013.md +203 -203
  224. package/src/bmad-plus/packs/pack-shield/references/iso27001/annex-a-2022.md +132 -132
  225. package/src/bmad-plus/packs/pack-shield/references/iso27001/control-mapping.md +153 -153
  226. package/src/bmad-plus/packs/pack-shield/references/iso27701/annex-a-controls.md +195 -195
  227. package/src/bmad-plus/packs/pack-shield/references/iso27701/regulatory-mapping.md +229 -229
  228. package/src/bmad-plus/packs/pack-shield/references/iso27701/transition-guide.md +219 -219
  229. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-ai-risk-assessment.md +258 -258
  230. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-clauses-requirements.md +279 -279
  231. package/src/bmad-plus/packs/pack-shield/references/iso42001/iso42001-controls-annex-a.md +155 -155
  232. package/src/bmad-plus/packs/pack-shield/references/itar/compliance-program.md +174 -174
  233. package/src/bmad-plus/packs/pack-shield/references/itar/licensing-guide.md +146 -146
  234. package/src/bmad-plus/packs/pack-shield/references/itar/usml-categories.md +93 -93
  235. package/src/bmad-plus/packs/pack-shield/references/lgpd/anpd-enforcement.md +147 -147
  236. package/src/bmad-plus/packs/pack-shield/references/lgpd/compliance-program.md +272 -272
  237. package/src/bmad-plus/packs/pack-shield/references/lgpd/lgpd-articles.md +271 -271
  238. package/src/bmad-plus/packs/pack-shield/references/nis2/article-21-measures.md +153 -153
  239. package/src/bmad-plus/packs/pack-shield/references/nis2/iso27001-nis2-mapping.md +68 -68
  240. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/assessment-rmf.md +349 -349
  241. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/baselines-tailoring.md +277 -277
  242. package/src/bmad-plus/packs/pack-shield/references/nist-800-53/control-families.md +450 -450
  243. package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-core.md +361 -361
  244. package/src/bmad-plus/packs/pack-shield/references/nist-ai-rmf/rmf-profiles.md +192 -192
  245. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-10-to-20-mapping.md +143 -143
  246. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-20-functions-categories.md +278 -278
  247. package/src/bmad-plus/packs/pack-shield/references/nist-csf/csf-implementation-tiers.md +135 -135
  248. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-requirements.md +366 -366
  249. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-saq-guide.md +217 -217
  250. package/src/bmad-plus/packs/pack-shield/references/pci-compliance/pci-dss-v4-changes.md +190 -190
  251. package/src/bmad-plus/packs/pack-shield/references/section-508/wcag-mapping.md +160 -160
  252. package/src/bmad-plus/packs/pack-shield/references/soc2/controls.md +241 -241
  253. package/src/bmad-plus/packs/pack-shield/references/soc2/evidence.md +236 -236
  254. package/src/bmad-plus/packs/pack-shield/references/soc2/policies.md +254 -254
  255. package/src/bmad-plus/packs/pack-shield/references/soc2/vendor.md +276 -276
  256. package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-assessment.md +202 -202
  257. package/src/bmad-plus/packs/pack-shield/references/swift-csp/swift-controls.md +545 -545
  258. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-crmp-requirements.md +359 -359
  259. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-directives-overview.md +187 -187
  260. package/src/bmad-plus/packs/pack-shield/references/tsa-compliance/tsa-incident-reporting.md +187 -187
  261. package/src/bmad-plus/packs/pack-shield/references/wcag/criteria-detail.md +510 -510
  262. package/src/bmad-plus/packs/pack-shield/shared/audit-report-template.md +103 -103
  263. package/src/bmad-plus/packs/pack-shield/shared/cross-framework-mapper.md +103 -103
  264. package/src/bmad-plus/packs/pack-shield/shared/gap-analysis-template.md +83 -83
  265. package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +229 -229
  266. package/src/bmad-plus/packs/pack-shield/upstream-sync.yaml +68 -68
  267. package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +99 -99
  268. package/src/bmad-plus/skills/bmad-plus-parallel/SKILL.md +93 -93
  269. package/src/bmad-plus/skills/bmad-plus-sync/SKILL.md +69 -69
  270. package/tools/bmad-plus-npx.js +3 -5
  271. package/tools/cli/commands/autoconfig.js +508 -489
  272. package/tools/cli/commands/doctor.js +219 -222
  273. package/tools/cli/commands/install.js +548 -739
  274. package/tools/cli/commands/memory.js +194 -194
  275. package/tools/cli/commands/scan.js +362 -350
  276. package/tools/cli/commands/uninstall.js +96 -96
  277. package/tools/cli/commands/update.js +116 -174
  278. package/tools/cli/i18n.js +845 -763
  279. package/tools/cli/lib/memory-init.js +114 -0
  280. package/tools/cli/lib/pack-copy.js +84 -0
  281. package/tools/cli/lib/packs.js +114 -0
@@ -1,153 +1,153 @@
1
- # Hreflang — Audit Rules & Best Practices (March 2026)
2
-
3
- > Author: Laurent Rochetta | BMAD+ SEO Engine v2.0
4
-
5
- ## What is Hreflang?
6
-
7
- `hreflang` tells search engines which language/region version of a page to serve.
8
- Errors cause wrong language indexing, duplicate content penalties, and lost organic traffic.
9
-
10
- ---
11
-
12
- ## Implementation Methods
13
-
14
- | Method | Best For | Max Pages |
15
- |--------|----------|-----------|
16
- | `<link>` in `<head>` | Small sites (<50 pages) | ~50 |
17
- | HTTP header `Link:` | Non-HTML files (PDFs) | ~50 |
18
- | Sitemap `<xhtml:link>` | Large sites (50+) | Unlimited |
19
-
20
- > **Recommendation**: Use sitemap for sites with 50+ pages. HTTP headers for non-HTML resources.
21
-
22
- ---
23
-
24
- ## Validation Rules
25
-
26
- ### Rule 1: Valid Language Codes
27
- - Use **ISO 639-1** (2-letter): `en`, `fr`, `de`, `es`, `ja`, `zh`
28
- - Optional **ISO 3166-1 Alpha-2** for region: `en-US`, `en-GB`, `fr-FR`, `fr-CA`, `pt-BR`
29
- - **Case insensitive** but convention is lowercase lang, uppercase country
30
-
31
- | ✅ Valid | ❌ Invalid | Why |
32
- |---------|-----------|-----|
33
- | `en` | `english` | Must be ISO 639-1 |
34
- | `fr-FR` | `fr-FRA` | Country must be 2-letter |
35
- | `zh-Hans` | `cn` | `cn` is not a valid language code |
36
- | `x-default` | `default` | Must use exact `x-default` |
37
-
38
- ### Rule 2: Self-Referencing (MANDATORY)
39
- Every page MUST include a hreflang tag pointing to itself.
40
-
41
- ```html
42
- <!-- On the English page (example.com/en/) -->
43
- <link rel="alternate" hreflang="en" href="https://example.com/en/" />
44
- <link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
45
- <link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
46
- ```
47
-
48
- **Error if missing**: Google may ignore all hreflang tags on that page.
49
-
50
- ### Rule 3: Return Tags (MANDATORY)
51
- If page A links to page B with hreflang, page B MUST link back to page A.
52
-
53
- ```
54
- Page A (en) → hreflang="fr" → Page B (fr)
55
- Page B (fr) → hreflang="en" → Page A (en) ← MANDATORY
56
- ```
57
-
58
- **Error if missing**: Called "orphan hreflang" — Google ignores the one-way tag.
59
-
60
- ### Rule 4: x-default (STRONGLY RECOMMENDED)
61
- Designate a fallback page for users whose language/region doesn't match any variant.
62
-
63
- ```html
64
- <link rel="alternate" hreflang="x-default" href="https://example.com/" />
65
- ```
66
-
67
- Common choices for x-default:
68
- - Language selector/redirect page
69
- - English version (most common)
70
- - Homepage of the main domain
71
-
72
- ### Rule 5: Canonical + Hreflang Consistency
73
- - Each hreflang URL **must be the canonical version** (not a redirect, not a URL with parameters)
74
- - If a page has `rel="canonical"` pointing elsewhere, hreflang tags on that page are **ignored**
75
- - Canonical and hreflang must agree: don't have hreflang point to a URL that canonicalizes to a different URL
76
-
77
- ### Rule 6: Absolute URLs Only
78
- ```html
79
- <!-- ✅ Correct -->
80
- <link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
81
-
82
- <!-- ❌ Wrong -->
83
- <link rel="alternate" hreflang="fr" href="/fr/page" />
84
- ```
85
-
86
- ### Rule 7: No Hreflang on Non-200 Pages
87
- - Don't include hreflang tags on pages that return 3xx, 4xx, or 5xx
88
- - Don't point hreflang to pages that redirect
89
-
90
- ---
91
-
92
- ## Common Error Patterns
93
-
94
- ### Error 1: Missing Return Tags
95
- **Symptom**: hreflang is configured on the main language but not on alternate versions.
96
- **Fix**: Add reciprocal hreflang tags on ALL language variants.
97
-
98
- ### Error 2: Wrong Canonical + Hreflang
99
- **Symptom**: Page A hreflang → Page B, but Page B canonical → Page C.
100
- **Fix**: Align canonical and hreflang targets.
101
-
102
- ### Error 3: Missing Self-Reference
103
- **Symptom**: Page lists other language versions but not itself.
104
- **Fix**: Add `hreflang` tag with the current page's own language/URL.
105
-
106
- ### Error 4: Inconsistent URLs
107
- **Symptom**: hreflang uses `http://` but site is on `https://`, or trailing slash mismatch.
108
- **Fix**: Use exact canonical URL (protocol, www/non-www, trailing slash).
109
-
110
- ### Error 5: Language vs Region Confusion
111
- **Symptom**: Using `hreflang="fr"` for France and `hreflang="fr"` for Canada.
112
- **Fix**: Use `hreflang="fr-FR"` and `hreflang="fr-CA"` to differentiate.
113
-
114
- ### Error 6: Missing x-default
115
- **Symptom**: Users in unsupported regions see random language version.
116
- **Fix**: Add `x-default` pointing to language selector or English version.
117
-
118
- ---
119
-
120
- ## Sitemap Implementation (Recommended for 50+ pages)
121
-
122
- ```xml
123
- <?xml version="1.0" encoding="UTF-8"?>
124
- <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
125
- xmlns:xhtml="http://www.w3.org/1999/xhtml">
126
- <url>
127
- <loc>https://example.com/en/page</loc>
128
- <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page"/>
129
- <xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page"/>
130
- <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page"/>
131
- <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page"/>
132
- </url>
133
- </urlset>
134
- ```
135
-
136
- ---
137
-
138
- ## Audit Checklist
139
-
140
- | # | Check | Priority |
141
- |---|-------|----------|
142
- | 1 | All hreflang language codes are valid ISO 639-1 | 🔴 Critical |
143
- | 2 | All hreflang country codes are valid ISO 3166-1 | 🔴 Critical |
144
- | 3 | Every page has self-referencing hreflang | 🔴 Critical |
145
- | 4 | All hreflang tags have return tags | 🔴 Critical |
146
- | 5 | All hreflang URLs are absolute | 🔴 Critical |
147
- | 6 | x-default is specified | 🟠 High |
148
- | 7 | Hreflang URLs match canonical URLs | 🟠 High |
149
- | 8 | No hreflang on non-200 pages | 🟠 High |
150
- | 9 | No hreflang pointing to redirecting URLs | 🟠 High |
151
- | 10 | Consistent protocol (https) and www/non-www | 🟡 Medium |
152
- | 11 | Language/region differentiation correct | 🟡 Medium |
153
- | 12 | Sitemap implementation for 50+ pages | 🟡 Medium |
1
+ # Hreflang — Audit Rules & Best Practices (March 2026)
2
+
3
+ > Author: Laurent Rochetta | BMAD+ SEO Engine v2.0
4
+
5
+ ## What is Hreflang?
6
+
7
+ `hreflang` tells search engines which language/region version of a page to serve.
8
+ Errors cause wrong language indexing, duplicate content penalties, and lost organic traffic.
9
+
10
+ ---
11
+
12
+ ## Implementation Methods
13
+
14
+ | Method | Best For | Max Pages |
15
+ |--------|----------|-----------|
16
+ | `<link>` in `<head>` | Small sites (<50 pages) | ~50 |
17
+ | HTTP header `Link:` | Non-HTML files (PDFs) | ~50 |
18
+ | Sitemap `<xhtml:link>` | Large sites (50+) | Unlimited |
19
+
20
+ > **Recommendation**: Use sitemap for sites with 50+ pages. HTTP headers for non-HTML resources.
21
+
22
+ ---
23
+
24
+ ## Validation Rules
25
+
26
+ ### Rule 1: Valid Language Codes
27
+ - Use **ISO 639-1** (2-letter): `en`, `fr`, `de`, `es`, `ja`, `zh`
28
+ - Optional **ISO 3166-1 Alpha-2** for region: `en-US`, `en-GB`, `fr-FR`, `fr-CA`, `pt-BR`
29
+ - **Case insensitive** but convention is lowercase lang, uppercase country
30
+
31
+ | ✅ Valid | ❌ Invalid | Why |
32
+ |---------|-----------|-----|
33
+ | `en` | `english` | Must be ISO 639-1 |
34
+ | `fr-FR` | `fr-FRA` | Country must be 2-letter |
35
+ | `zh-Hans` | `cn` | `cn` is not a valid language code |
36
+ | `x-default` | `default` | Must use exact `x-default` |
37
+
38
+ ### Rule 2: Self-Referencing (MANDATORY)
39
+ Every page MUST include a hreflang tag pointing to itself.
40
+
41
+ ```html
42
+ <!-- On the English page (example.com/en/) -->
43
+ <link rel="alternate" hreflang="en" href="https://example.com/en/" />
44
+ <link rel="alternate" hreflang="fr" href="https://example.com/fr/" />
45
+ <link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
46
+ ```
47
+
48
+ **Error if missing**: Google may ignore all hreflang tags on that page.
49
+
50
+ ### Rule 3: Return Tags (MANDATORY)
51
+ If page A links to page B with hreflang, page B MUST link back to page A.
52
+
53
+ ```
54
+ Page A (en) → hreflang="fr" → Page B (fr)
55
+ Page B (fr) → hreflang="en" → Page A (en) ← MANDATORY
56
+ ```
57
+
58
+ **Error if missing**: Called "orphan hreflang" — Google ignores the one-way tag.
59
+
60
+ ### Rule 4: x-default (STRONGLY RECOMMENDED)
61
+ Designate a fallback page for users whose language/region doesn't match any variant.
62
+
63
+ ```html
64
+ <link rel="alternate" hreflang="x-default" href="https://example.com/" />
65
+ ```
66
+
67
+ Common choices for x-default:
68
+ - Language selector/redirect page
69
+ - English version (most common)
70
+ - Homepage of the main domain
71
+
72
+ ### Rule 5: Canonical + Hreflang Consistency
73
+ - Each hreflang URL **must be the canonical version** (not a redirect, not a URL with parameters)
74
+ - If a page has `rel="canonical"` pointing elsewhere, hreflang tags on that page are **ignored**
75
+ - Canonical and hreflang must agree: don't have hreflang point to a URL that canonicalizes to a different URL
76
+
77
+ ### Rule 6: Absolute URLs Only
78
+ ```html
79
+ <!-- ✅ Correct -->
80
+ <link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />
81
+
82
+ <!-- ❌ Wrong -->
83
+ <link rel="alternate" hreflang="fr" href="/fr/page" />
84
+ ```
85
+
86
+ ### Rule 7: No Hreflang on Non-200 Pages
87
+ - Don't include hreflang tags on pages that return 3xx, 4xx, or 5xx
88
+ - Don't point hreflang to pages that redirect
89
+
90
+ ---
91
+
92
+ ## Common Error Patterns
93
+
94
+ ### Error 1: Missing Return Tags
95
+ **Symptom**: hreflang is configured on the main language but not on alternate versions.
96
+ **Fix**: Add reciprocal hreflang tags on ALL language variants.
97
+
98
+ ### Error 2: Wrong Canonical + Hreflang
99
+ **Symptom**: Page A hreflang → Page B, but Page B canonical → Page C.
100
+ **Fix**: Align canonical and hreflang targets.
101
+
102
+ ### Error 3: Missing Self-Reference
103
+ **Symptom**: Page lists other language versions but not itself.
104
+ **Fix**: Add `hreflang` tag with the current page's own language/URL.
105
+
106
+ ### Error 4: Inconsistent URLs
107
+ **Symptom**: hreflang uses `http://` but site is on `https://`, or trailing slash mismatch.
108
+ **Fix**: Use exact canonical URL (protocol, www/non-www, trailing slash).
109
+
110
+ ### Error 5: Language vs Region Confusion
111
+ **Symptom**: Using `hreflang="fr"` for France and `hreflang="fr"` for Canada.
112
+ **Fix**: Use `hreflang="fr-FR"` and `hreflang="fr-CA"` to differentiate.
113
+
114
+ ### Error 6: Missing x-default
115
+ **Symptom**: Users in unsupported regions see random language version.
116
+ **Fix**: Add `x-default` pointing to language selector or English version.
117
+
118
+ ---
119
+
120
+ ## Sitemap Implementation (Recommended for 50+ pages)
121
+
122
+ ```xml
123
+ <?xml version="1.0" encoding="UTF-8"?>
124
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
125
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
126
+ <url>
127
+ <loc>https://example.com/en/page</loc>
128
+ <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page"/>
129
+ <xhtml:link rel="alternate" hreflang="fr" href="https://example.com/fr/page"/>
130
+ <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page"/>
131
+ <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page"/>
132
+ </url>
133
+ </urlset>
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Audit Checklist
139
+
140
+ | # | Check | Priority |
141
+ |---|-------|----------|
142
+ | 1 | All hreflang language codes are valid ISO 639-1 | 🔴 Critical |
143
+ | 2 | All hreflang country codes are valid ISO 3166-1 | 🔴 Critical |
144
+ | 3 | Every page has self-referencing hreflang | 🔴 Critical |
145
+ | 4 | All hreflang tags have return tags | 🔴 Critical |
146
+ | 5 | All hreflang URLs are absolute | 🔴 Critical |
147
+ | 6 | x-default is specified | 🟠 High |
148
+ | 7 | Hreflang URLs match canonical URLs | 🟠 High |
149
+ | 8 | No hreflang on non-200 pages | 🟠 High |
150
+ | 9 | No hreflang pointing to redirecting URLs | 🟠 High |
151
+ | 10 | Consistent protocol (https) and www/non-www | 🟡 Medium |
152
+ | 11 | Language/region differentiation correct | 🟡 Medium |
153
+ | 12 | Sitemap implementation for 50+ pages | 🟡 Medium |
@@ -1,133 +1,133 @@
1
- # Quality Gates — Content Thresholds (March 2026)
2
-
3
- > Author: Laurent Rochetta | BMAD+ SEO Engine v2.0
4
-
5
- ## Word Count Minimums by Page Type
6
-
7
- | Page Type | Minimum | Notes |
8
- |-----------|---------|-------|
9
- | Homepage | 500 | Brand clarity + key offerings |
10
- | Service page | 800 | Comprehensive service description |
11
- | Blog / article | 1,500 | Deep topical coverage |
12
- | Product page | 300+ (400+ complex) | Depends on product complexity |
13
- | Category page | 200 | Plus product listings |
14
- | Location page | 500–600 | Must be 60%+ unique per location |
15
- | Comparison page | 1,200 | Feature matrix + analysis |
16
- | Landing page | 400 | Conversion-focused |
17
- | About page | 500 | Company story + credentials |
18
- | FAQ page | 1,000 | Comprehensive Q&A coverage |
19
-
20
- > **Word count is NOT a ranking factor.** These are topical coverage floors. A thorough 500-word page beats a padded 2,000-word one.
21
-
22
- ---
23
-
24
- ## Location Page Quality Gates
25
-
26
- | Threshold | Action |
27
- |-----------|--------|
28
- | 1–29 location pages | ✅ Normal — ensure 60%+ unique content per page |
29
- | 30+ location pages | ⚠️ WARNING — enforce 60%+ unique content, audit for thin/duplicate |
30
- | 50+ location pages | 🛑 HARD STOP — require user justification before proceeding |
31
-
32
- ### Unique Content Requirements per Location
33
- - Unique local testimonials or case studies
34
- - Location-specific service details
35
- - Local area information and context
36
- - Original photos (not stock)
37
- - Unique meta title and description
38
-
39
- ---
40
-
41
- ## Programmatic Page Quality Gates
42
-
43
- | Threshold | Action |
44
- |-----------|--------|
45
- | 1–99 programmatic pages | ✅ Normal — verify template quality |
46
- | 100+ pages | ⚠️ WARNING — audit for thin content and cannibalization |
47
- | 500+ pages | 🛑 HARD STOP — full audit required before generating more |
48
-
49
- ### Programmatic Content Requirements
50
- - Each page must provide unique value (not just data swap)
51
- - Internal linking automation between related pages
52
- - Canonical strategy to prevent index bloat
53
- - Minimum 200 words of unique contextual content per page
54
- - Quality varies by template — audit samples before scale
55
-
56
- ---
57
-
58
- ## Title Tag Guidelines
59
-
60
- | Criterion | Requirement |
61
- |-----------|-------------|
62
- | Length | 50–60 characters (display limit ~600px) |
63
- | Primary keyword | Include near the beginning |
64
- | Brand name | Append with " | Brand" or " — Brand" |
65
- | Uniqueness | Every page must have a unique title |
66
- | Accuracy | Must reflect actual page content |
67
-
68
- ---
69
-
70
- ## Meta Description Guidelines
71
-
72
- | Criterion | Requirement |
73
- |-----------|-------------|
74
- | Length | 150–160 characters |
75
- | Call to action | Include when appropriate |
76
- | Primary keyword | Include naturally |
77
- | Uniqueness | Every page must have a unique description |
78
- | Accuracy | Must match page content (Google may rewrite if not) |
79
-
80
- ---
81
-
82
- ## Heading Hierarchy Rules
83
-
84
- | Rule | Requirement |
85
- |------|-------------|
86
- | H1 count | Exactly 1 per page |
87
- | H1 content | Should contain primary keyword, be descriptive |
88
- | Hierarchy | H1 → H2 → H3 (no skipping levels) |
89
- | Heading frequency | One heading every 200–300 words |
90
- | Heading style | Descriptive, not generic ("Our Services" → "Professional SEO Audit Services") |
91
-
92
- ---
93
-
94
- ## Image Optimization Standards
95
-
96
- | Criterion | Standard | Priority |
97
- |-----------|----------|----------|
98
- | Alt text | Descriptive, meaningful, includes keywords naturally | High |
99
- | Dimensions | Width and height attributes specified | High (CLS) |
100
- | Format | WebP or AVIF preferred, JPEG/PNG acceptable | Medium |
101
- | File size | <200KB for standard, <500KB for hero images | Medium |
102
- | Lazy loading | `loading="lazy"` for below-fold images | Medium |
103
- | Preload | `<link rel="preload">` for hero/LCP images | High |
104
- | Srcset | Responsive sizes for different viewports | Medium |
105
-
106
- ---
107
-
108
- ## Internal Linking Standards
109
-
110
- | Metric | Target |
111
- |--------|--------|
112
- | Links per 1,000 words | 3–5 relevant internal links |
113
- | Anchor text | Descriptive (not "click here") |
114
- | Orphan pages | 0 (every page linked from at least one other) |
115
- | Click depth | Important pages within 3 clicks of homepage |
116
- | Broken links | 0 internal 404s |
117
-
118
- ---
119
-
120
- ## Thin Content Detection
121
-
122
- A page is flagged as "thin content" when:
123
- 1. Word count is below the minimum for its page type
124
- 2. Content is predominantly duplicate or near-duplicate of another page
125
- 3. Content is auto-generated without unique value-add
126
- 4. Page provides no actionable information
127
-
128
- ### Doorway Page Prevention
129
- Never recommend creating pages that:
130
- - Exist solely to funnel users to another page
131
- - Have nearly identical content with only location/keyword swaps
132
- - Provide no standalone value
133
- - Target many similar keyword variations with minimal differences
1
+ # Quality Gates — Content Thresholds (March 2026)
2
+
3
+ > Author: Laurent Rochetta | BMAD+ SEO Engine v2.0
4
+
5
+ ## Word Count Minimums by Page Type
6
+
7
+ | Page Type | Minimum | Notes |
8
+ |-----------|---------|-------|
9
+ | Homepage | 500 | Brand clarity + key offerings |
10
+ | Service page | 800 | Comprehensive service description |
11
+ | Blog / article | 1,500 | Deep topical coverage |
12
+ | Product page | 300+ (400+ complex) | Depends on product complexity |
13
+ | Category page | 200 | Plus product listings |
14
+ | Location page | 500–600 | Must be 60%+ unique per location |
15
+ | Comparison page | 1,200 | Feature matrix + analysis |
16
+ | Landing page | 400 | Conversion-focused |
17
+ | About page | 500 | Company story + credentials |
18
+ | FAQ page | 1,000 | Comprehensive Q&A coverage |
19
+
20
+ > **Word count is NOT a ranking factor.** These are topical coverage floors. A thorough 500-word page beats a padded 2,000-word one.
21
+
22
+ ---
23
+
24
+ ## Location Page Quality Gates
25
+
26
+ | Threshold | Action |
27
+ |-----------|--------|
28
+ | 1–29 location pages | ✅ Normal — ensure 60%+ unique content per page |
29
+ | 30+ location pages | ⚠️ WARNING — enforce 60%+ unique content, audit for thin/duplicate |
30
+ | 50+ location pages | 🛑 HARD STOP — require user justification before proceeding |
31
+
32
+ ### Unique Content Requirements per Location
33
+ - Unique local testimonials or case studies
34
+ - Location-specific service details
35
+ - Local area information and context
36
+ - Original photos (not stock)
37
+ - Unique meta title and description
38
+
39
+ ---
40
+
41
+ ## Programmatic Page Quality Gates
42
+
43
+ | Threshold | Action |
44
+ |-----------|--------|
45
+ | 1–99 programmatic pages | ✅ Normal — verify template quality |
46
+ | 100+ pages | ⚠️ WARNING — audit for thin content and cannibalization |
47
+ | 500+ pages | 🛑 HARD STOP — full audit required before generating more |
48
+
49
+ ### Programmatic Content Requirements
50
+ - Each page must provide unique value (not just data swap)
51
+ - Internal linking automation between related pages
52
+ - Canonical strategy to prevent index bloat
53
+ - Minimum 200 words of unique contextual content per page
54
+ - Quality varies by template — audit samples before scale
55
+
56
+ ---
57
+
58
+ ## Title Tag Guidelines
59
+
60
+ | Criterion | Requirement |
61
+ |-----------|-------------|
62
+ | Length | 50–60 characters (display limit ~600px) |
63
+ | Primary keyword | Include near the beginning |
64
+ | Brand name | Append with " | Brand" or " — Brand" |
65
+ | Uniqueness | Every page must have a unique title |
66
+ | Accuracy | Must reflect actual page content |
67
+
68
+ ---
69
+
70
+ ## Meta Description Guidelines
71
+
72
+ | Criterion | Requirement |
73
+ |-----------|-------------|
74
+ | Length | 150–160 characters |
75
+ | Call to action | Include when appropriate |
76
+ | Primary keyword | Include naturally |
77
+ | Uniqueness | Every page must have a unique description |
78
+ | Accuracy | Must match page content (Google may rewrite if not) |
79
+
80
+ ---
81
+
82
+ ## Heading Hierarchy Rules
83
+
84
+ | Rule | Requirement |
85
+ |------|-------------|
86
+ | H1 count | Exactly 1 per page |
87
+ | H1 content | Should contain primary keyword, be descriptive |
88
+ | Hierarchy | H1 → H2 → H3 (no skipping levels) |
89
+ | Heading frequency | One heading every 200–300 words |
90
+ | Heading style | Descriptive, not generic ("Our Services" → "Professional SEO Audit Services") |
91
+
92
+ ---
93
+
94
+ ## Image Optimization Standards
95
+
96
+ | Criterion | Standard | Priority |
97
+ |-----------|----------|----------|
98
+ | Alt text | Descriptive, meaningful, includes keywords naturally | High |
99
+ | Dimensions | Width and height attributes specified | High (CLS) |
100
+ | Format | WebP or AVIF preferred, JPEG/PNG acceptable | Medium |
101
+ | File size | <200KB for standard, <500KB for hero images | Medium |
102
+ | Lazy loading | `loading="lazy"` for below-fold images | Medium |
103
+ | Preload | `<link rel="preload">` for hero/LCP images | High |
104
+ | Srcset | Responsive sizes for different viewports | Medium |
105
+
106
+ ---
107
+
108
+ ## Internal Linking Standards
109
+
110
+ | Metric | Target |
111
+ |--------|--------|
112
+ | Links per 1,000 words | 3–5 relevant internal links |
113
+ | Anchor text | Descriptive (not "click here") |
114
+ | Orphan pages | 0 (every page linked from at least one other) |
115
+ | Click depth | Important pages within 3 clicks of homepage |
116
+ | Broken links | 0 internal 404s |
117
+
118
+ ---
119
+
120
+ ## Thin Content Detection
121
+
122
+ A page is flagged as "thin content" when:
123
+ 1. Word count is below the minimum for its page type
124
+ 2. Content is predominantly duplicate or near-duplicate of another page
125
+ 3. Content is auto-generated without unique value-add
126
+ 4. Page provides no actionable information
127
+
128
+ ### Doorway Page Prevention
129
+ Never recommend creating pages that:
130
+ - Exist solely to funnel users to another page
131
+ - Have nearly identical content with only location/keyword swaps
132
+ - Provide no standalone value
133
+ - Target many similar keyword variations with minimal differences