bmad-plus 0.12.1 → 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 (156) hide show
  1. package/CHANGELOG.md +612 -580
  2. package/README.md +90 -115
  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 -594
  15. package/readme-international/README.es.md +613 -611
  16. package/readme-international/README.fr.md +611 -609
  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-seo/SKILL.md +171 -171
  89. package/src/bmad-plus/packs/pack-seo/checklist.md +140 -140
  90. package/src/bmad-plus/packs/pack-seo/pagespeed-playbook.md +320 -320
  91. package/src/bmad-plus/packs/pack-seo/ref/audit-schema.json +187 -187
  92. package/src/bmad-plus/packs/pack-seo/ref/cwv-thresholds.md +87 -87
  93. package/src/bmad-plus/packs/pack-seo/ref/eeat-criteria.md +123 -123
  94. package/src/bmad-plus/packs/pack-seo/ref/geo-signals.md +167 -167
  95. package/src/bmad-plus/packs/pack-seo/ref/hreflang-rules.md +153 -153
  96. package/src/bmad-plus/packs/pack-seo/ref/quality-gates.md +133 -133
  97. package/src/bmad-plus/packs/pack-seo/ref/schema-catalog.md +91 -91
  98. package/src/bmad-plus/packs/pack-seo/ref/schema-templates.json +356 -356
  99. package/src/bmad-plus/packs/pack-seo/requirements.txt +17 -0
  100. package/src/bmad-plus/packs/pack-seo/scripts/seo_apis.py +456 -0
  101. package/src/bmad-plus/packs/pack-seo/scripts/seo_crawl.py +359 -0
  102. package/src/bmad-plus/packs/pack-seo/scripts/seo_fetch.py +304 -0
  103. package/src/bmad-plus/packs/pack-seo/scripts/seo_parse.py +255 -0
  104. package/src/bmad-plus/packs/pack-seo/scripts/seo_report.py +410 -0
  105. package/src/bmad-plus/packs/pack-seo/scripts/seo_screenshot.py +202 -0
  106. package/src/bmad-plus/packs/pack-seo/seo-chief.md +294 -294
  107. package/src/bmad-plus/packs/pack-seo/seo-judge.md +241 -241
  108. package/src/bmad-plus/packs/pack-seo/seo-scout.md +171 -171
  109. package/src/bmad-plus/packs/pack-seo/templates/seo-audit-workflow.md +241 -241
  110. package/src/bmad-plus/packs/pack-shield/README.md +6 -6
  111. package/src/bmad-plus/packs/pack-shield/SKILL.md +2 -2
  112. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/csrd-agent.md +11 -11
  113. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/section508-agent.md +11 -11
  114. package/src/bmad-plus/packs/pack-shield/categories/accessibility-esg/wcag-agent.md +11 -11
  115. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/eu-ai-act-agent.md +11 -11
  116. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/iso42001-agent.md +11 -11
  117. package/src/bmad-plus/packs/pack-shield/categories/ai-governance/nist-ai-rmf-agent.md +11 -11
  118. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/cis-controls-agent.md +11 -11
  119. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/ism-agent.md +11 -11
  120. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/iso27001-agent.md +11 -11
  121. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nis2-agent.md +11 -11
  122. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-800-53-agent.md +11 -11
  123. package/src/bmad-plus/packs/pack-shield/categories/cybersecurity/nist-csf-agent.md +11 -11
  124. package/src/bmad-plus/packs/pack-shield/categories/defense-export/cmmc-agent.md +11 -11
  125. package/src/bmad-plus/packs/pack-shield/categories/defense-export/ear-agent.md +11 -11
  126. package/src/bmad-plus/packs/pack-shield/categories/defense-export/itar-agent.md +11 -11
  127. package/src/bmad-plus/packs/pack-shield/categories/defense-export/tsa-agent.md +11 -11
  128. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/dora-agent.md +11 -11
  129. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/fedramp-agent.md +11 -11
  130. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/hipaa-agent.md +11 -11
  131. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/pci-dss-agent.md +11 -11
  132. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/soc2-agent.md +11 -11
  133. package/src/bmad-plus/packs/pack-shield/categories/industry-compliance/swift-csp-agent.md +11 -11
  134. package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +1 -1
  135. package/tools/build/check-counts.js +628 -0
  136. package/tools/build/generated-adapters/.codex/AGENTS.md +1 -1
  137. package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +1 -1
  138. package/tools/build/generated-adapters/.opencode/AGENTS.md +1 -1
  139. package/tools/build/generated-adapters/AGENTS.md +1 -1
  140. package/tools/build/generated-adapters/CLAUDE.md +1 -1
  141. package/tools/build/generated-adapters/CONVENTIONS.md +1 -1
  142. package/tools/build/generated-adapters/GEMINI.md +1 -1
  143. package/tools/cli/commands/autoconfig.js +470 -470
  144. package/tools/cli/commands/doctor.js +233 -233
  145. package/tools/cli/commands/install.js +598 -501
  146. package/tools/cli/commands/memory-journal-cmd.js +311 -311
  147. package/tools/cli/commands/memory.js +195 -195
  148. package/tools/cli/commands/scan.js +348 -348
  149. package/tools/cli/commands/uninstall.js +101 -101
  150. package/tools/cli/commands/update.js +134 -134
  151. package/tools/cli/i18n.js +845 -845
  152. package/tools/cli/lib/README-memory-journal.md +125 -125
  153. package/tools/cli/lib/ide-config.js +267 -259
  154. package/tools/cli/lib/python-provision.js +508 -508
  155. package/tools/cli/lib/stack-detect.js +102 -102
  156. package/tools/cli/lib/validate.js +50 -50
package/CHANGELOG.md CHANGED
@@ -1,580 +1,612 @@
1
- # Changelog
2
-
3
- All notable changes to BMAD+ will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [Unreleased]
9
-
10
- ## [0.12.1] - 2026-07-12
11
-
12
- ### Added
13
- - **Portfolio brain detection** (`memory-init.js`): brain resolution now honors, in order, the `BMAD_PLUS_BRAIN` env var a `_brain/` directory in the project dir **or any ancestor** (portfolio brain shared by sibling projects under a workspace root) → `~/.bmad-plus/brain` → `~/.claude/memory`. Previously `~/.bmad-plus/brain` always won once it existed, silently splitting memory away from an existing workspace-level brain. `.brain-link` now records a `brain_type` (`portfolio` / `bmad-global` / `claude-memory`). `resolveBrain()` is exported with 4 new unit tests; `pack-memory/shared/memory-protocol.md` documents the portfolio-brain rule.
14
-
15
- ### Fixed
16
- - **Brain detection state machine (`memory-init.js`) — five defects (audit MEM-01..05 + JS-08):** the `projects/` index was written into `~/.bmad-plus/brain` unconditionally while identity/global-memory creation was skipped whenever any brain was detected, leaving a permanent identity-less "half brain" (now: idempotent `ensureGlobalBrain()` self-heals on every touch); `.brain-link` is now written on creation too (was: detection branch only — non-idempotent re-runs); brain candidates must be directories and `~/.claude/memory` must be non-empty (was: a stray *file* named `_brain` could be linked as a brain); project indexing now only targets the global brain when it is the linked brain (portfolio installs no longer write orphan entries); path hashing unified in `tools/cli/lib/path-hash.js` shared with `scan.js` (drive-letter casing no longer double-indexes projects); `initMemory` takes an injectable `homeDir` and the test suite runs against a temp home (was: every `npm test` polluted the real user brain — 454 junk entries live-confirmed); the install-time call is try/catch-wrapped so a read-only home warns instead of aborting pre-manifest. 15 unit tests. See `audit/2026-07-10/14-addendum-memory-init.md`.
17
- - **GitHub Actions red on master since v0.10.0:** `package-lock.json` was missing `@emnapi/core`/`@emnapi/runtime` entries required by npm 10 (Node 20 runners) — an npm 10 vs 11 ideal-tree divergence invisible to local (npm 11) validation, including fresh clones. Lock regenerated with `npm@10`; **CI + Platform now green on master for the first time**. New standing rule: locks are regenerated with `npx npm@10 install --package-lock-only` and validated with both npm 10 and npm 11 `ci --dry-run`.
18
- - `platform.yml`: the two adapter drift gates (`generate-adapters.js --check` and `--check --adopt`) joined the spine as blocking checks; the eval self-check job now installs its `pyyaml` dependency (it had none on the runner and failed every push).
19
- - Dependabot: removed the dead `docker` entry for `/monitor` (no Dockerfile there — the update job failed every weekly cycle).
20
-
21
- ### Security — supply chain
22
- - `mcp-server/Dockerfile`: base image now **pinned by multi-arch index digest** (`python:3.11.15-slim@sha256:b27df584…`) — closes the PHASE-1 "Dockerfile digest pin" residual and picks up ~18 months of CPython security patches (3.11.9 → 3.11.15).
23
- - GitHub Actions bumped and SHA-pinned across all workflows: `checkout` v7.0.0, `setup-node` v6.4.0, `setup-python` v6.3.0.
24
- - Python pins raised: mcp-server `uvicorn` 0.49.0, `gitpython` 3.1.50, `pyyaml` 6.0.3, `requests>=2.34.2`; seo-audit-360 `requests>=2.34.2`, `beautifulsoup4` 4.15.0, `lxml` 6.1.1; Google extensions `google-auth` 2.55.1, `google-auth-oauthlib` 1.4.0, `google-analytics-data` 0.23.0, `google-api-python-client` 2.198.0. Validated in clean venvs (install + import/parse smoke).
25
-
26
- ### Changed — dependency governance
27
- - npm: `eslint` 9 10 (flat config; `@eslint/js` now a declared devDependency it was consumed transitively and broke under eslint 10), `js-yaml` 4 5.2.1 (CJS export intact, full suite green), `fs-extra` 11.3.6.
28
- - **Removed `chalk`**declared but never imported (the CLI uses picocolors); removal beats chasing the ESM-only v5.
29
- - Declined with rationale (dependabot `ignore` rules added): `commander` 15 (ESM-only, requires Node ≥22.12; CLI is CommonJS on Node 20), fastmcp/chromadb/sentence-transformers at ALL levels (deliberate pins — breaking across minors, zero CI coverage; joint upgrade tracked as the mcp-server ML-stack modernization task), `pypdf` majors (5.x removed `PdfMerger`, used by `gamma_report.py`), docker `python` major/minor. Dependabot queue: 26+9 PRs → **0 open**.
30
-
31
- ### Verified
32
- - `npm test` 333/333 (16 suites); lint 0 errors under eslint 10; both `npx npm@10 ci --dry-run` and `npm ci --dry-run` green; CI + Platform workflows green on GOLDEN master.
33
-
34
- ## [0.12.0] — 2026-07-02
35
-
36
- ### Added Load-bearing activation (north-star Pillars 3, 4, 5)
37
- - **Pillar 4 executable:** `evals/_runner/providers.py` — a provider-neutral model gateway (anthropic / openai / generic-HTTP adapters selected by `BMAD_EVAL_PROVIDER`, default deterministic **mock** so `--self-check` and CI never hit the network). `run_agent(spec, model)` now routes through it; the eval harness genuinely runs (3/3 specs pass).
38
- - **Pillar 3 portable via MCP:** `mcp-server/tools/memory_tools.py` exposes `memory.recall` / `memory.write` / `memory.reinforce` as MCP tools that shell out to the same `bmad mem --json` CLI (single source of truth) — MCP-capable CLIs and the CLI can never diverge. Registered additively in `server.py`.
39
- - **Pillar 5 adopt mode:** `tools/build/generate-adapters.js --adopt` can generate the REAL repo-root adapters + AGENTS.md spine from the registry; hand-authored instructions live in `tools/build/adapters.config.js` and are injected so no tool loses content. `.gitattributes` pins LF on the adopted files (avoids the CRLF drift class). Root adoption is opt-in and NOT applied in this release.
40
-
41
- ### Fixed
42
- - Adapter `--check` is now EOL-insensitive; `.gitattributes` pins LF on `tools/build/**` + registry so a Windows clone doesn't false-positive drift. Verified from a **fresh clone**: `npm ci` + `npm test` (333/333) + both drift-checks green.
43
-
44
- ### Verified
45
- - `npm test` **333 passed / 16 suites**; `build:check` + `generate-adapters --check` no drift; `run.py --self-check` 3/3; edited Python parses.
46
-
47
- ## [0.11.0] 2026-07-02
48
-
49
- ### AddedKarpathy loop CLI + multi-CLI adapters (north-star Pillars 3 & 5)
50
- - **`bmad mem` command (Pillar 3):** `recall <query>` / `write` / `reinforce` expose the memory-journal (append/recall + Elo reward + governance guard) from the CLI, so the learning loop is usable from any driving tool. `tests/unit/memory-journal-cmd.test.js`.
51
- - **Multi-CLI adapter generator (Pillar 5):** `tools/build/generate-adapters.js` generates the per-CLI wrappers (CLAUDE.md, GEMINI.md, `.codex/AGENTS.md`, `.cursor/rules`, `.opencode/AGENTS.md`, CONVENTIONS.md) from `registry.yaml` counts/names computed, never typed — with a `--check` drift gate. Generated previews live under `tools/build/generated-adapters/`. `tests/unit/generate-adapters.test.js`.
52
-
53
- ### Changed — Compliance (govern, don't cut)
54
- - **CG-02 — OSINT pack governed:** added a mandatory **Phase −1 Lawful Basis Gate** to the OSINT skill (lawful basis Art. 6, Art. 9 condition for psychoprofiles, purpose, retention, DSAR) + a lawful-basis/ROPA record template + a GDPR-OSINT reference + a governance block in the dossier template. The capability is kept in full; lawful use is now explicit and auditable. See `audit/2026-07-01/CG-RESOLUTION.md`.
55
- - **CG-01 trademark:** `bmad-plus` name kept by owner decision.
56
-
57
- ### Verified
58
- - `npm test` **325 passed / 16 suites**; `npm run build:check` no drift; `generate-adapters.js --check` no drift.
59
-
60
- ## [0.10.0]2026-07-02
61
-
62
- ### Added Platform-spine foundations (north-star Phase 2)
63
- Built as **new files only** (no existing core file modified); test suite grew from 176/10 to **258 passed / 13 suites**. Cut nothing; multi-tool/multi-model preserved.
64
-
65
- - **Registry-as-SSOT (Pillar 1) — ACTIVE:** `registry.yaml` (repo root) is now the single source of truth for all 9 packs. `tools/cli/lib/packs.js` is **generated from it** (`npm run build`), no longer hand-maintained. `tools/build/generate.js` provides the generator + `npm run build:check` drift gate; `tests/unit/generate.test.js` (14 tests) proves the generated `PACKS`/`PACK_ORDER`/`EXPECTED_AGENTS` strictly equal the shipped module. This kills the 5-place pack-registry drift at its root.
66
- - **Python provisioning (Pillar 2):** `tools/cli/lib/python-provision.js` — detect python≥3.11, pick uv/pipx/venv, create isolated env, install requirements, verify entry (shell-safe, testable).
67
- - **Karpathy learning layer (Pillar 3):** `tools/cli/lib/memory-journal.js` — `journal.ndjson` append/recall, Elo/decayed reward update (eval+acceptance+ci), governance guard (promotions PROPOSED, never auto-applied).
68
- - **Eval harness (Pillar 4 the moat):** `evals/` schema + Forge/Shield/Sentinel golden specs + fixtures + `run.py --self-check`, provider-neutral model backend seam.
69
- - **CI:** `.github/workflows/platform.yml` — registry drift-check + eval self-check, blocking, SHA-pinned.
70
-
71
- Pillar 1 is wired (packs.js generated + `npm run build`/`build:check`). Remaining integration (provisioning called from install, memory exposed via MCP, generated multi-CLI adapters) lands next as its own tested commit — see `audit/2026-07-01/PHASE-2-STATUS.md`.
72
-
73
- ## [0.9.2] 2026-07-01
74
-
75
- ### Security — Phase 1 remediation (exploitable findings)
76
- - **RCE closed** (`ci_cd.py`): command allowlist now uses exact-token matching (shlex.split) + realpath/commonpath containment instead of prefix/`startswith` defeats argument injection (`make -f attacker.mk`) and sibling-path bypass; `shell=False` throughout; dead Makefile fallback removed.
77
- - **SSRF hardened** (`seo_fetch.py`): fails **closed** on DNS error, blocks private/loopback/reserved/link-local IPs (incl. IPv4-mapped IPv6), re-validates every redirect hop manually.
78
- - **Stored + DOM XSS closed** (`seo_report.py`, `dashboard.html`): all audited/external values HTML-escaped in the report; dashboard renders via `textContent`/`createElement` + `addEventListener` instead of `innerHTML`/inline `onclick`.
79
- - **MCP server** (`server.py`): constant-time `hmac.compare_digest` for token + dashboard password; app assembled in module-level `create_app()` so `uvicorn server:app` runs with auth intact; dead `verify_mcp_token` removed; rate-limit map eviction.
80
- - **XXE**: `seo_crawl.py` hard-fails without `defusedxml` (no unsafe stdlib fallback).
81
-
82
- ### Supply chain
83
- - `requests>=2.32.4` (CVE-2024-35195) across all requirements files.
84
- - `PyPDF2`→`pypdf==4.3.1` (dep + consumer import in `gamma_report.py`).
85
- - `defusedxml==0.7.1` added; Dockerfile non-root user + tag pin; docker-compose off `:latest`; GitHub Actions pinned to commit SHAs; Dependabot covers pip + docker + github-actions.
86
-
87
- ### Fixed — robustness
88
- - Non-destructive install (backs up existing CLAUDE/GEMINI/AGENTS.md); marker-based uninstall; IDE-scoped autoconfig; `doctor` no longer emits false "Missing agent" warnings; guarded manifest `JSON.parse`; Windows-safe project-path hashing; hardened `validateUserName`; lazy RAG model load; async gamma polling; repo-URL validation; `git_ops` path confinement.
89
-
90
- ### Notes
91
- - Documented residual follow-ups (SSRF crawler-class redirect hops, DNS-rebinding IP pinning, Dockerfile digest pin) are tracked in `audit/2026-07-01/PHASE-1-STATUS.md`.
92
- - Verified: `npm test` 176/176, `npm run lint` 0 errors, all edited Python parses; SEO report smoke-tested (renders + XSS escaped).
93
-
94
- ## [0.9.1] — 2026-07-01
95
-
96
- ### FixedCredibility (honest status)
97
- - **Real CI on push/PR** (`.github/workflows/ci.yml`): lint + test + npm audit, all blocking. Previously the only workflow ran at release-tag and swallowed failures with `|| echo`.
98
- - **Test harness repaired**: mock ESM `@clack/prompts` so Jest loads the autoconfig suite `npm test` now genuinely passes (176 tests, 10/10 suites). It did not before.
99
- - **Lint restored**: added flat `eslint.config.js` (ESLint v9); removed legacy `.eslintrc.json` + deprecated `--ext`. `npm run lint` runs with 0 errors.
100
- - **Lockfile resynced** to the correct version with full devDependency tree `npm ci` works from a clean clone.
101
- - Publish workflow no longer masks `npm publish` failures; npm audit is blocking.
102
- - Removed hardcoded VPS IP from `mcp-server/server.py` docstring.
103
-
104
- ### Documentation — Honesty correction
105
- - Removed the unverifiable **"143 tests / 0 vulnerabilities / Score A+"** badges from README and README-DIST.
106
- - Fixed the corrupted version-history table (0.9.0/0.8.0 were duplicated).
107
- - **Note on 0.9.0 below:** the "64/64 fixed, score A+" and "auth on all endpoints" claims in the 0.9.0 entry were **overstated**. A 2026-07-01 adversarial re-audit (see `audit/2026-07-01/`) found 102 open findings and re-graded the project **C+**. The MCP token *is* checked by middleware on `/sse` and `/messages/`, but the prior "all endpoints" phrasing and the A+ score were not accurate. This release begins the honest remediation.
108
-
109
- ## [0.9.0] — 2026-06-24
110
-
111
- ### Security
112
- - Full audit remediation: 64/64 findings fixed, score C- → A+
113
- - P0: Command injection eliminated (execSync → spawnSync in CLI entry point)
114
- - P0: MCP Server authentication added (token-validated middleware on all endpoints)
115
- - CI/CD hardened: PAT removed, force-push eliminated, npm audit gate blocking
116
- - MCP allowlist hardened, path traversal protection, URL hostname validation
117
- - VPS IP → env var, TLS deployment docs, SSRF/XXE protection
118
- - 0 npm audit vulnerabilities
119
-
120
- ### Changed
121
- - Shared PACKS modulesingle source of truth for all 9 packs
122
- - install.js 740→300 lines: extracted memory-init.js + pack-copy.js
123
- - print() logging, time.sleep asyncio.sleep, empty catch blocks filled
124
- - Dynamic version in i18n.js (reads from package.json)
125
-
126
- ### Removed
127
- - Duplicate agents/pack-{seo,animated,backup}/ directories
128
-
129
- ### Documentation
130
- - Maker + Zecher in all config files, CHANGELOG v0.7.2 added
131
- - French README fix, version history synced to all translations
132
- - 7 audit reports in audit/ folder
133
-
134
- ### Tests
135
- - 143/143 tests passing
136
-
137
- ## [0.8.0] 2026-06-24
138
-
139
- ### Added
140
- - 3 new packs: pack-animated (web animation agent), pack-backup (universal backup agent), pack-seo (full SEO audit — 15 files with agents, refs, templates, playbooks)
141
- - `extract_frames.py` script for animated-website (263 lines, ffprobe/ffmpeg)
142
-
143
- ### Security
144
- - P0 remediation: fix command injection, path traversal, token-in-URL, wildcard hosts, error leak (Shield GRC v2.0)
145
- - CI: add npm audit gate with continue-on-error, remove silent-fail pattern
146
-
147
- ### Changed
148
- - README.de.md: full sync (+131 lines) — Pack System, Autopilot, Project Structure, Credits
149
- - All Torah-named references removed from Dev Studio, module.yaml, READMEs
150
- - Dev Studio: cleaned references in orchestrator, bwml-spec, upstream-sync
151
- - process-info.md: updated (oveanet-pack not in npm package)
152
- - CI: Windows %TEMP% → tmp/ in .npmignore and CI workflow
153
- - Badge shields: version 0.7.5 0.8.0 across all 5 READMEs
154
-
155
- ### Fixed
156
- - Broken TOC anchor links across all 5 READMEs (#the-56-agents)
157
- - oveanet ↔ .agents mirror directories sync (31 files)
158
-
159
- ### Tests
160
- - 143/143 tests passing ✅
161
-
162
- ## [0.7.5] — 2026-05-17
163
-
164
- ### 🩺 Quality & Compliance
165
-
166
- ### Added
167
- - **MIT LICENSE** Proper license file matching `package.json` declaration
168
- - **PACKS↔module.yaml sync check** New Check 9 in `npx bmad-plus doctor` that cross-validates install.js PACKS object against module.yaml packs, preventing invisible pack bugs
169
- - **30 new unit tests** — Total now 97:
170
- - `scan.js` module validation (markers, skip dirs, options)
171
- - `autoconfig.js` function checks (detectStack, analyzeStructure, calculateHealth, recommendPacks)
172
- - `memory.js` subcommand and health score validation
173
- - PACKS↔module.yaml bidirectional sync (count + key match)
174
- - LICENSE file integrity
175
- - **Global brain consolidation** Promoted cross-project wisdom:
176
- - 1 lesson (PowerShell UTF-8 corruption)
177
- - 2 decisions (anti-regression protocol, i18n-first CLI)
178
- - 2 patterns (dual-tier memory, surgical edit protocol)
179
-
180
- ## [0.7.4] 2026-05-17
181
-
182
- ### 🧠 Smart Autoconfig
183
-
184
- ### Added
185
- - **`npx bmad-plus autoconfig`** Smart project bootstrap:
186
- - **Existing projects**: analyzes stack, structure, health; auto-selects packs; populates memory
187
- - **New projects**: interactive wizard (type + description); initializes everything
188
- - Auto-preserves existing IDE configs (`--tools none` when configs detected)
189
- - Writes `context.md` with full project analysis for agent continuity
190
- - Shows contextual recommendations ("Talk to Forge to...", "Talk to Sentinel to...")
191
-
192
- ### Fixed
193
- - `--tools none` installer crash (undefined IDE name)
194
-
195
- ## [0.7.3] 2026-05-17
196
-
197
- ### 🎨 Scan UX Improvements
198
-
199
- ### Added
200
- - **Scan legend** — Color-coded status legend displayed before the project table
201
- - **`--active-days <n>`** Custom threshold for "active" status (default: 30 days)
202
- - **`--paused-days <n>`** — Custom threshold for "paused" status (default: 180 days)
203
-
204
- ## [0.7.2] - 2026-06-XX
205
- ### Fixed
206
- - `scan` command: `bmad-plus scan <path>` now accepts a positional path argument
207
-
208
- ## [0.7.1]2026-05-17
209
-
210
- ### 🛠️ CLI Commands & Guardrails Injection
211
-
212
- ### Added
213
- - **`npx bmad-plus scan [path]`** Interactive project scanner
214
- - Recursive directory scan with stack auto-detection (Node.js, Rust, Python, Go, PHP, Ruby, Java)
215
- - Framework detection (Next.js, Nuxt, React, Vue, Svelte, Express, Electron, Tauri)
216
- - Status tracking (active/paused/archived based on last modified)
217
- - Interactive validation: index all, select, or skip
218
- - Auto-generates `projects-index.md` in global brain
219
- - **`npx bmad-plus memory status`** — Memory health report
220
- - Shows project memory + global brain status
221
- - Entry counts, last modified dates, health score
222
- - Brain link detection
223
- - **`npx bmad-plus memory export`** Export brain as portable Markdown archive
224
- - **Karpathy Guardrails injection** 4 principles auto-injected into CLAUDE.md/GEMINI.md/AGENTS.md when Memory pack is installed
225
- - **i18n**Memory + Dev Studio keys for EN and FR (other languages use fallback)
226
-
227
- ## [0.7.0] 2026-05-17
228
-
229
- ### 🧠 Pack Memory Persistent Brain
230
-
231
- ### Added
232
- - **Pack Memory** — Persistent cross-session memory system with brain detection
233
- - 🧠 **Zecher Agent** (זכר, "remembrance") — Memory archivist for consolidation, project scanning, context recall
234
- - 📁 **Project Memory** (`.agents/memory/`) — decisions.md, lessons.md, patterns.md, context.md, sessions/
235
- - 🌐 **Global Brain** (`~/.bmad-plus/brain/`) — Cross-project knowledge, identity, project index
236
- - 🔍 **Project Scanner**Scan directories/disks, detect stacks, interactive validation, auto-index
237
- - 🛡️ **Karpathy Guardrails** 4 behavioral principles (Think, Simplify, Surgical, Goal-driven) woven into agents
238
- - 📋 **Memory Protocol** Complete read/write rules for when agents use memory
239
- - 🔗 **Brain Detection** — Detects existing `_brain/`, `~/.claude/memory/`, links instead of overwrites
240
- - 📝 **6 templates** — decisions, lessons, patterns, context, session-handoff, identity.yaml
241
-
242
- ### Changed
243
- - CLI installer: brain detection step (4.5) with merge-safe logic
244
- - IDE config generation: Zecher agent listed when memory pack selected
245
- - Install guide: memory-specific examples (Zecher commands)
246
-
247
- ## [0.6.0] 2026-05-17
248
-
249
- ### 🏗️ Pack Dev Studio — Full Software Development Lifecycle
250
-
251
- ### Added
252
- - **Pack Dev Studio** 6 specialized agents + 30 workflows covering the complete SDLC
253
- - 📊 **Analysis** (8): Miriam (Business Analyst), Huldah (Tech Writer), Product Brief, PRFAQ, Market/Domain/Technical Research
254
- - 📋 **Planning** (7): Yosef (Product Manager), Rachel (UX Designer), PRD Create/Edit/Validate, UX Design
255
- - 🏗️ **Architecture** (5+9 steps): Bezalel (System Architect), Create Architecture (8-step workflow), Epics & Stories, Readiness Check
256
- - 💻 **Implementation** (12): Oholiab (Senior Engineer), Sprint Planning, Dev Story (TDD cycle), Code Review, Quick Dev, Investigate
257
- - 🔧 **Utilities** (12): Distillator, Party Mode, Adversarial Review, Edge Case Hunter, Editorial Reviews, Advanced Elicitation
258
- - **BWML** (BMAD+ Workflow Markup Language) — Proprietary DSL extending BMAD v6 XML with 12 new primitives:
259
- `<agent>`, `<parallel>`, `<loop>`, `<validate>`, `<guard>`, `<emit>`, `<context>`, `<memory>`, `<escalate>`, `<retry>`, `<fallback>`, `<metric>`
260
- - **Dev Studio Orchestrator** — Intelligent routing across 5 phases with BWML-powered workflow definitions
261
- - **Torah-named Personas** — Agents named after Torah figures matching their roles: Miriam, Huldah, Yosef, Rachel, Bezalel, Oholiab
262
- - **Upstream Sync** — Tracking config for BMAD-METHOD v6.6.0 updates (commit `0f852a3`)
263
- - **64 files** — 59 .md skills, module-help.csv, BWML spec, orchestrator, README, upstream-sync
264
-
265
- ### Changed
266
- - **module.yaml** Added dev-studio pack with 5 categories and cohabitation warning for Core pack
267
- - **install.js** — IDE configs now include 6 Torah-named agents when Dev Studio is selected
268
- - **Version reference** — Updated from BMAD-METHOD v6.2.0 to v6.6.0
269
-
270
- ## [0.5.0] — 2026-05-17
271
-
272
- ### 🛡️ Pack ShieldGRC Compliance (38 agents)
273
-
274
- ### Added
275
- - **Pack Shield** — 38 expert compliance agents covering 25+ regulatory frameworks
276
- - 🔐 **Data Privacy** (5): GDPR, CCPA/CPRA, LGPD, DPDPA, ISO 27701
277
- - 🛡️ **Cybersecurity** (6): ISO 27001, NIST CSF 2.0, NIST 800-53, CIS Controls v8, NIS2, ISM
278
- - 🏢 **Industry Compliance** (6): SOC 2, PCI DSS v4.0, HIPAA, SWIFT CSP, DORA, FedRAMP
279
- - 🔒 **Defense & Export** (4): CMMC 2.0, ITAR, EAR, TSA
280
- - 🤖 **AI Governance** (3): EU AI Act, ISO 42001, NIST AI RMF
281
- - **Accessibility & ESG** (3): WCAG, Section 508, CSRD
282
- - 📋 **GDPR & AI Act Workflows** (11): DPIA, Breach Response, LIA, Privacy Notices/Policies, Cookie Compliance, AI Act Classification/Roles/FRIA/Incidents
283
- - **Shield Orchestrator** — Intelligent routing across all 38 agents with cross-framework mapping
284
- - **85 Reference Files** — Deep regulatory knowledge extracted from upstream Claude Skills archives
285
- - **3 Shared Templates** — Gap Analysis, Cross-Framework Mapper, Audit Report
286
- - **Upstream Sync System** — Tracking configuration for Sushegaad GRC skill updates
287
- - **module.yaml** — Full shield pack definition with 7 categories and per-category agent lists
288
- - **CLI Integration** — Shield pack selectable in `npx bmad-plus install` with 3 localized example commands
289
- - **IDE Config** — Shield agent advertised in generated AGENTS.md/GEMINI.md
290
-
291
- ### Changed
292
- - **install_packs** — All packs now listed in multiselect (seo, backup, animated were missing)
293
- - **module.yaml**Replaced old `audit` (coming_soon) stub with fully realized `shield` pack
294
-
295
- ### Attribution
296
- - Based on [Claude Skills for GRC](https://github.com/Sushegaad/Claude-Skills-Governance-Risk-and-Compliance) by Hemant Naik MIT License
297
- - GDPR/EU AI Act workflows inspired by [Lawve.ai](https://lawve.ai) professional skills catalog
298
-
299
- ---
300
-
301
- ## [0.4.4] 2026-05-17
302
-
303
- ### 🔧 Encoding Fix + i18n Complete + Tests
304
-
305
- ### Fixed
306
- - **UTF-8 encoding** — Fixed double-encoding corruption in `i18n.js` caused by PowerShell `Set-Content`
307
- - **Credits URL** — Now points to public repo `github.com/lrochetta/BMAD-PLUS`
308
- - **npm re-publish** v0.4.3 had corrupted Unicode on npm; this release replaces it
309
-
310
- ### Added
311
- - **Complete i18n** CLI guide strings (commands, examples) now translated in all 10 languages (no more EN fallbacks)
312
- - **Unit tests** 53+ tests covering i18n, CLI modules, package.json integrity, module.yaml, source files, version consistency
313
- - **`npm test`** Jest test script added to package.json
314
-
315
- ---
316
-
317
- ## [0.4.3]2026-05-17
318
-
319
- ### 🔧 CLI Commands + Security Hardening + UX Enhancements
320
-
321
- ### Added
322
- - **`bmad-plus update`** — Update agents & skills while preserving config, IDE configs, and output directories
323
- - **`bmad-plus doctor`** — Check installation integrity (version, agents, configs, pack health)
324
- - **Internationalized `uninstall`** Uses i18n system from install manifest language (10 languages)
325
- - **Credits at startup** — Author attribution displayed immediately when installer launches
326
- - **Enriched post-install guide** — CLI commands section + pack-specific usage examples in selected language
327
- - **i18n strings for update/uninstall/doctor** — EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT
328
- - **CLI guide strings** `guide_cli_title`, `guide_examples_title`, pack examples for SEO/Backup/Animated/OSINT
329
-
330
- ### Fixed
331
- - **Security** — Added `mcp-server/.env` to `.gitignore`, created `.env.example` template
332
- - **Manifest version** — Now reads from `package.json` dynamically (was hardcoded `0.4.0`)
333
- - **`module.yaml` sync** Added missing SEO, Backup, Animated pack definitions
334
- - **`package.json` cleanup** — Removed `oveanet-pack` from `files[]` (already excluded by `.npmignore`)
335
- - **CI/CD reliability** Removed `continue-on-error` from npm publish step
336
- - **Comment accuracy** — Updated "9 languages" → "10 languages" in install.js header
337
- - **Installer title** — Now reads version from `package.json` dynamically
338
-
339
- ### Changed
340
- - **Dependencies** — Updated `@clack/prompts` 1.1.0 1.4.0, `fs-extra` 11.3.4 11.3.5
341
- - **npm scripts** — Added `update:bmad` and `doctor:bmad` scripts
342
-
343
- ---
344
-
345
- ## [0.4.2]2026-03-19
346
-
347
- ### 📦 Public Packs — SEO/Backup/Animated now in npm
348
-
349
- ### Added
350
- - **Public pack agents** — SEO Audit 360, Universal Backup, Animated Website agent files now included in npm package
351
- - Agent files copied from `oveanet-pack/` to `src/bmad-plus/agents/pack-seo/`, `pack-backup/`, `pack-animated/`
352
- - Installer `packDir` system replaces `oveanetAgent` for proper npm distribution
353
-
354
- ---
355
-
356
- ## [0.4.1]2026-03-19
357
-
358
- ### 🌐 CLI Internationalization + DevOps Hardening
359
-
360
- ### Added
361
- - **10-language CLI installer** — EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT with language selector at startup
362
- - **CI/CD pipeline** — `publish-distribution.yml` GitHub Action (Golden → Public repo scrubbing)
363
- - **`.npmignore`**Excludes private directories from npm package
364
- - **`/deploy` workflow** — Mandatory pre-deployment checklist
365
- - **Post-install guide** — Enriched with all packs (SEO, Backup, Animated Website)
366
-
367
- ### Fixed
368
- - **Security** — Purged `secrets/github_pat.txt` from git history, fixed `.gitignore` UTF-16 corruption
369
- - **Version badges** — Updated from 0.1.0 0.4.1 across all 5 READMEs
370
- - **Project structure** — Updated trees in both Golden and Distribution READMEs
371
-
372
- ---
373
-
374
- ## [0.4.0] — 2026-03-19
375
-
376
- ### 🏢 SEO Engine — Enterprise Extensions (Sprint 4)
377
-
378
- ### Added
379
- - **Google Search Console extension** OAuth2 client for organic search data (queries, pages, coverage, sitemaps)
380
- - **Google Analytics 4 extension** — GA4 Data API client for organic traffic, landing pages, and engagement metrics
381
- - Both extensions include setup guides, Python clients, and separate requirements
382
-
383
- ### Notes
384
- - Extensions are **optional** and require OAuth2 setup (see `EXTENSION.md` in each directory)
385
- - Core SEO Engine (SKILL.md + 3 agents + Python toolkit) works without extensions
386
- - GSC and GA4 share OAuth2 credentials for simplified auth flow
387
-
388
- ---
389
-
390
- ## [0.3.3] 2026-03-19
391
-
392
- ### 🧪 SEO Engine — Quality & Security (Sprint 3)
393
-
394
- ### Added
395
- - **Unit tests** 50 pytest tests covering all Python scripts (fetch, parse, crawl, APIs)
396
- - **Pre-commit hook** — `hooks/seo-check.sh` validates HTML for title, meta, alt, H1 before commit
397
- - **Audit JSON schema** — `ref/audit-schema.json` standardized export format for dashboard/API integration
398
- - **Test fixture** — `tests/fixtures/sample_page.html` with known SEO elements
399
-
400
- ---
401
-
402
- ## [0.3.2]2026-03-19
403
-
404
- ### 📊 SEO Engine — Reports, Competitor & Hreflang (Sprint 2)
405
-
406
- ### Added
407
- - **seo_report.py** — Professional HTML report generator with inline SVG radar chart, color-coded issue cards, quick wins section, and print-friendly CSS
408
- - **Benchmarker role**Added to Chief agent for `/seo competitor` command (side-by-side site comparison with delta scoring)
409
- - **hreflang-rules.md** — Complete hreflang audit reference with 7 validation rules, 6 common error patterns, and 12-point checklist
410
-
411
- ---
412
-
413
- ## [0.3.1] 2026-03-19
414
-
415
- ### 🔧 SEO Engine Enhancements (Sprint 1)
416
-
417
- ### Added
418
- - **SKILL.md orchestrator** Single entry point routing 15 `/seo` commands to the right agents
419
- - **seo_apis.py** — Google APIs client (PageSpeed Insights, CrUX field data, Rich Results Test)
420
- - **requirements.txt** — Python dependencies (requests, beautifulsoup4, lxml)
421
- - **install.sh + install.ps1** — Cross-platform dependency installer with venv support
422
-
423
- ---
424
-
425
- ## [0.3.0] — 2026-03-19
426
-
427
- ### 🚀 SEO Engine v2.0 Complete Rewrite
428
-
429
- ### Added
430
- - **3 multi-role SEO agents** (replacing single monolithic agent):
431
- - 🔎 **Scout** — Technical scanner (Crawler, Inspector, Photographer)
432
- - ⚖️ **Judge** — Content & AI analyst (Content Expert, Schema Master, GEO Analyst)
433
- - 👑 **Chief** — Strategist & reporter (Scorer, Strategist, Reporter)
434
- - **4 Python scripts** (new toolkit):
435
- - `seo_fetch.py` — Secure HTTP fetcher with SSRF protection and multi-UA support
436
- - `seo_parse.py` HTML parser for meta, schema, links, images, word count
437
- - `seo_crawl.py` — Recursive mini-crawler with sitemap parsing and orphan detection
438
- - `seo_screenshot.py` — Playwright viewport screenshots with above-fold analysis
439
- - **6 reference documents**:
440
- - Core Web Vitals 2026 thresholds (LCP subparts, INP, CLS)
441
- - Schema.org v29.4 type catalog with deprecation status
442
- - E-E-A-T scoring grid (100-point evaluation)
443
- - GEO signals for AI search optimization (Google AI Overviews, ChatGPT, Perplexity)
444
- - Quality gates with content thresholds by page type
445
- - 14 ready-to-use JSON-LD schema templates
446
- - **6-phase audit workflow** with PageSpeed perfection loop
447
- - **SEO Health Score (0–100)** with 7 weighted categories
448
- - **Auto-generated code fixes** for common SEO issues
449
- - **13 user commands** (`/seo full`, `/seo quick`, `/seo pagespeed`, etc.)
450
- - **Monitoring system** with historical score comparison
451
-
452
- ### Changed
453
- - SEO Audit 360 pack upgraded from v1.0 to v2.0
454
- - Architecture: single SKILL.md → 3 specialized agents with parallel execution
455
-
456
- ### Preserved
457
- - `pagespeed-playbook.md`Battle-tested oveanet.ch PageSpeed optimization loop
458
- - `checklist.md` — Original PageSpeed perfection checklist
459
-
460
- ---
461
-
462
- ## [0.2.0] 2026-03-18
463
-
464
- ### 🔀 Oveanet Fusion
465
-
466
- ### Added
467
- - **3 new utility packs** from oveanet-agents:
468
- - 🔍 **SEO Audit 360** 9-category audit for search engines + AI engines (by Oveanet)
469
- - 🗂️ **Universal Backup** Timestamped ZIP backup with smart exclusions (by Oveanet)
470
- - 🎬 **Animated Website** Luxury scroll-driven website from video (by Oveanet)
471
- - `oveanet-pack/` directory as source for oveanet agent content
472
- - Oveanet sync documentation in `process-info.md`
473
-
474
- ### Changed
475
- - Installer now shows 7 packs (Core + OSINT + Maker + Audit + SEO + Backup + Animated)
476
- - `package.json` includes `oveanet-pack` in npm distribution
477
-
478
- ### Removed
479
- - `pour etudier/` directory (content migrated to `oveanet-pack/`)
480
-
481
- ---
482
-
483
- ## [0.1.3] — 2026-03-18
484
-
485
- ### 🔧 Cross-Platform Fix
486
-
487
- ### Fixed
488
- - LF line endings for `bin` scripts (fixes `npx` execution on macOS/Linux)
489
- - Added `.gitattributes` to enforce LF on executable scripts
490
-
491
- ---
492
-
493
- ## [0.1.2] — 2026-03-17
494
-
495
- ### 📝 Credits Update
496
-
497
- ### Changed
498
- - Author credits translated to English in CLI installer and READMEs
499
- - Added LinkedIn link to credits section
500
-
501
- ---
502
-
503
- ## [0.1.1] 2026-03-17
504
-
505
- ### 👤 Author Attribution
506
-
507
- ### Added
508
- - Laurent Rochetta credit in `README.md`, `README-DIST.md`, and CLI success message
509
- - GitHub and LinkedIn links in credits section
510
-
511
- ---
512
-
513
- ## [0.1.0] — 2026-03-17
514
-
515
- ### 🎉 Initial Release Foundation
516
-
517
- First release of BMAD+, an augmented fork of BMAD-METHOD v6.2.0.
518
-
519
- ### Added
520
-
521
- #### Core Module (`src/bmad-plus/`)
522
- - **module.yaml** — Module configuration with execution mode, auto-role activation, parallel execution, and modular pack system
523
- - **module-help.csv** — Contextual help for all 8 registered skills/agents
524
-
525
- #### 5 Multi-Role Agents
526
- - **Atlas (Strategist)** — Fuses Analyst + PM into 2 switchable roles with auto-activation
527
- - **Forge (Architect-Dev)** — Fuses Architect + Dev + Tech Writer into 3 switchable roles
528
- - **Sentinel (Quality)** — Fuses QA + UX Designer into 2 switchable roles
529
- - **Nexus (Orchestrator)** — Fuses SM + Quick-Flow + new Autopilot Controller + new Parallel Supervisor (4 roles)
530
- - **Shadow (OSINT)** Converted from legacy XML agent to BMAD+ v6 format (pack: osint)
531
-
532
- #### 3 Custom Skills
533
- - **bmad-plus-autopilot** — Full pipeline automation (Discovery → Build → Ship) with configurable checkpoints
534
- - **bmad-plus-parallel** — Multi-agent parallel execution with orchestrator supervision (launch/stop/restart/reallocate/escalate)
535
- - **bmad-plus-sync**Upstream synchronization via VPS MCP Server
536
-
537
- #### Auto-Activation System
538
- - **role-triggers.yaml** — 3-level intelligent role switching:
539
- - Level 1: Pattern matching (keywords in user requests)
540
- - Level 2: Contextual analysis (domain detection during work)
541
- - Level 3: Reasoning chains (logical discoveries during execution)
542
-
543
- #### Modular Pack System
544
- - **Core pack** (required) — 4 agents, 3 skills, role-triggers
545
- - **OSINT pack** (optional) Shadow agent + OSINT investigation skills
546
- - **Maker pack** (optional) — Maker meta-agent for creating new BMAD+ compatible agents (4-phase pipeline: Discovery → Design → Generation → Validation)
547
- - **Audit pack** (coming soon) Shield agent placeholder
548
- - Multi-select installer menu with per-pack API key requirements
549
-
550
- #### `npx bmad-plus install` CLI
551
- - Interactive installer with pack selection, IDE auto-detection, user config
552
- - Contextual post-install guide adapted to installed packs
553
- - `--packs`, `--yes`, `--tools`, `--directory` flags for non-interactive use
554
- - Uninstall command: `npx bmad-plus uninstall`
555
-
556
- #### Monitoring System (`monitor/`)
557
- - **weekly-check.py** — Weekly upstream monitoring script (cron)
558
- - **ai_analyzer.py** — Gemini API-powered diff analysis (compatible/review/breaking)
559
- - **notifier.py** — WhatsApp notifications via Evolution API + email fallback
560
- - **mcp_bridge.py** — Bridge to Audit 360° MCP Server for VPS git/github operations
561
- - **docker-compose.yml** — Evolution API container configuration
562
- - **config.example.yaml** — Configuration template
563
-
564
- #### Multi-IDE Support
565
- - **CLAUDE.md** — Claude Code configuration
566
- - **GEMINI.md** — Gemini CLI configuration
567
- - **AGENTS.md** — Codex CLI / OpenCode configuration
568
-
569
- #### Integration
570
- - Integrated existing **osint-agent-package** (Shadow agent, 55+ Apify actors, 7 APIs)
571
- - Integrated existing **mcp-server** (Audit 360° with 35 tools) via MCP Bridge
572
-
573
- ### Upstream Compatibility
574
- - Based on BMAD-METHOD v6.2.0 (2026-03-15)
575
- - Compatible with core versions 6.0.0 — 7.0.0
576
- - Replaces `bmm` module while keeping core skills
577
-
578
- ---
579
-
580
- *For earlier history, see the upstream [BMAD-METHOD CHANGELOG](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/CHANGELOG.md).*
1
+ # Changelog
2
+
3
+ All notable changes to BMAD+ will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.12.2] - 2026-07-16
11
+
12
+ ### Added — capabilities now actually delivered
13
+ - **SEO pack works from npm (was broken-on-arrival for three cycles).** The SEO Python toolkit `seo_fetch.py`, `seo_crawl.py`, `seo_parse.py`, `seo_apis.py`, `seo_screenshot.py`, `seo_report.py` + `requirements.txt` is now **embarked** in `src/bmad-plus/packs/pack-seo/scripts/`, so it ships in the npm tarball (`files[]="src/bmad-plus"`) and is copied into user projects by pack-copy. `install.js --provision-python` and `registry.yaml` `python_package` point at the in-pack copy; the SKILL.md's `scripts/*.py` and `agent/*.md` load paths now resolve in the shipped, flat packaged layout. Regression-gated by `tests/unit/seo-pack-shipping.test.js` (asserts every SKILL-commanded script/agent ships and the installer path stays in-pack).
14
+ - **SEO agents auto-activate.** `data/role-triggers.yaml` gained a `seo` block (Scout / Chief / Judge) so the three dedicated agents are reachable by keyword, not only by name.
15
+ - **Monitor is rebuildable from committed docs.** New `monitor/requirements.txt` pinning the modern **`google-genai`** SDK (matches `ai_analyzer.py`); `DEPLOY.md` installs `-r requirements.txt` (previously installed the deprecated `google-generativeai`) with an import sanity check. Dependabot pip entries added for `/monitor` and `/src/bmad-plus/packs/pack-seo`.
16
+
17
+ ### Fixed
18
+ - **Hand-typed count drift (blocking `check:counts`):** `README.md` "360 Tests" **472** (real suite total), `module.yaml` Dev Studio "30 workflows" **38**, `pack-shield/SKILL.md` "85 regulatory reference files" → **79** (derived count). `check:counts` now green unarmed and armed (`BMAD_PLUS_TEST_COUNT=472`).
19
+ - **OSINT lawful-basis gate reaches every personal-data path (GRC-03, third cycle).** The Phase Router now routes the direct extraction / psychoprofile / contact-enrichment entries through the mandatory Phase −1 Lawful Basis Gate (GDPR Art. 6, plus Art. 9 for psychoprofiling); `osint-investigator.md` and `agent-shadow/SKILL.md` carry an explicit gate rule for the `[LI]/[IG]/[FB]/[PP]/[CE]` menu items. No menu item removed — the gate governs, it does not restrict lawful use. Regression-gated by `tests/unit/osint-lawful-basis-gate.test.js`.
20
+ - `SECURITY.md`: supported version `0.7.x` → **`0.12.x`**; runtime dependency count `6` → **5** (matches `package.json`).
21
+
22
+ ### Testing
23
+ - **mcp-server security logic is now really tested + gated in CI (QA-02).** The dead `test_server.py` (tautological, asserted on nonexistent `_bmad/bmm/**` paths, ran in no lane) is replaced with 23 tests against a new `mcp-server/security.py` — the password policy, constant-time secret comparison, Basic-Auth parsing, and Bearer-token expiry extracted from `server.py` so they are unit-testable without fastmcp/starlette or runtime env vars. `server.py`'s auth middleware now delegates to these (behavior-identical). A blocking Python pytest lane in `ci.yml` runs them + the SEO toolkit's 69 tests (incl. `TestSSRFProtection`) on every push/PR and, via `workflow_call`, every release.
24
+ - **CLI maintenance commands are no longer untested (QA-03).** New `tests/unit/cli-commands.test.js` (11 tests) drives the real `action()` of `uninstall`, `update`, and `doctor` previously **zero executed lines** — across not-installed exit, full install, corrupt/again-current manifests, confirm/cancel, and a real update that rewrites the manifest. Per-file `coverageThreshold` entries (60–90% lines) make the gap visible to the gate.
25
+
26
+ ### Security
27
+ - **SEO crawler redirect-SSRF closed (SEC-02).** `seo_crawl.py` now follows redirects manually (`allow_redirects=False`) with a per-hop `is_safe_url` revalidation shared across all three network paths (`fetch`, `fetch_robots_txt`, `parse_sitemap`) via a `_safe_get` helper a public URL that 302s to an internal/metadata endpoint is refused. `seo_fetch.py` was already fail-closed.
28
+ - `.gitignore`: exclude Graphify graph artifacts (`graphify-out/`, `.graphify/`, `.agents/graph/` safeguard 7, graph indexes are strictly local) and root `.venv/` / `.pytest_cache/`.
29
+
30
+ ### Verified
31
+ - `npm test` **483/483** (21 suites); Python `pytest` **92/92** (mcp-server security 23 + SEO 69); `check:counts` green (unarmed + armed 483); `eslint` 0 errors; `generate.js --check` + `generate-adapters.js --check` no drift; `py_compile` clean; `dependabot.yml` + `ci.yml` valid YAML.
32
+
33
+ ## [0.12.1] - 2026-07-12
34
+
35
+ ### Added
36
+ - **Portfolio brain detection** (`memory-init.js`): brain resolution now honors, in order, the `BMAD_PLUS_BRAIN` env var → a `_brain/` directory in the project dir **or any ancestor** (portfolio brain shared by sibling projects under a workspace root) → `~/.bmad-plus/brain` `~/.claude/memory`. Previously `~/.bmad-plus/brain` always won once it existed, silently splitting memory away from an existing workspace-level brain. `.brain-link` now records a `brain_type` (`portfolio` / `bmad-global` / `claude-memory`). `resolveBrain()` is exported with 4 new unit tests; `pack-memory/shared/memory-protocol.md` documents the portfolio-brain rule.
37
+
38
+ ### Fixed
39
+ - **Brain detection state machine (`memory-init.js`) — five defects (audit MEM-01..05 + JS-08):** the `projects/` index was written into `~/.bmad-plus/brain` unconditionally while identity/global-memory creation was skipped whenever any brain was detected, leaving a permanent identity-less "half brain" (now: idempotent `ensureGlobalBrain()` self-heals on every touch); `.brain-link` is now written on creation too (was: detection branch only — non-idempotent re-runs); brain candidates must be directories and `~/.claude/memory` must be non-empty (was: a stray *file* named `_brain` could be linked as a brain); project indexing now only targets the global brain when it is the linked brain (portfolio installs no longer write orphan entries); path hashing unified in `tools/cli/lib/path-hash.js` shared with `scan.js` (drive-letter casing no longer double-indexes projects); `initMemory` takes an injectable `homeDir` and the test suite runs against a temp home (was: every `npm test` polluted the real user brain — 454 junk entries live-confirmed); the install-time call is try/catch-wrapped so a read-only home warns instead of aborting pre-manifest. 15 unit tests. See `audit/2026-07-10/14-addendum-memory-init.md`.
40
+ - **GitHub Actions red on master since v0.10.0:** `package-lock.json` was missing `@emnapi/core`/`@emnapi/runtime` entries required by npm 10 (Node 20 runners) — an npm 10 vs 11 ideal-tree divergence invisible to local (npm 11) validation, including fresh clones. Lock regenerated with `npm@10`; **CI + Platform now green on master for the first time**. New standing rule: locks are regenerated with `npx npm@10 install --package-lock-only` and validated with both npm 10 and npm 11 `ci --dry-run`.
41
+ - `platform.yml`: the two adapter drift gates (`generate-adapters.js --check` and `--check --adopt`) joined the spine as blocking checks; the eval self-check job now installs its `pyyaml` dependency (it had none on the runner and failed every push).
42
+ - Dependabot: removed the dead `docker` entry for `/monitor` (no Dockerfile there the update job failed every weekly cycle).
43
+
44
+ ### Security — supply chain
45
+ - `mcp-server/Dockerfile`: base image now **pinned by multi-arch index digest** (`python:3.11.15-slim@sha256:b27df584…`) closes the PHASE-1 "Dockerfile digest pin" residual and picks up ~18 months of CPython security patches (3.11.9 → 3.11.15).
46
+ - GitHub Actions bumped and SHA-pinned across all workflows: `checkout` v7.0.0, `setup-node` v6.4.0, `setup-python` v6.3.0.
47
+ - Python pins raised: mcp-server `uvicorn` 0.49.0, `gitpython` 3.1.50, `pyyaml` 6.0.3, `requests>=2.34.2`; seo-audit-360 `requests>=2.34.2`, `beautifulsoup4` 4.15.0, `lxml` 6.1.1; Google extensions `google-auth` 2.55.1, `google-auth-oauthlib` 1.4.0, `google-analytics-data` 0.23.0, `google-api-python-client` 2.198.0. Validated in clean venvs (install + import/parse smoke).
48
+
49
+ ### Changeddependency governance
50
+ - npm: `eslint` 9 10 (flat config; `@eslint/js` now a declared devDependency it was consumed transitively and broke under eslint 10), `js-yaml` 4 5.2.1 (CJS export intact, full suite green), `fs-extra` 11.3.6.
51
+ - **Removed `chalk`** declared but never imported (the CLI uses picocolors); removal beats chasing the ESM-only v5.
52
+ - Declined with rationale (dependabot `ignore` rules added): `commander` 15 (ESM-only, requires Node ≥22.12; CLI is CommonJS on Node 20), fastmcp/chromadb/sentence-transformers at ALL levels (deliberate pins — breaking across minors, zero CI coverage; joint upgrade tracked as the mcp-server ML-stack modernization task), `pypdf` majors (5.x removed `PdfMerger`, used by `gamma_report.py`), docker `python` major/minor. Dependabot queue: 26+9 PRs → **0 open**.
53
+
54
+ ### Verified
55
+ - `npm test` 333/333 (16 suites); lint 0 errors under eslint 10; both `npx npm@10 ci --dry-run` and `npm ci --dry-run` green; CI + Platform workflows green on GOLDEN master.
56
+
57
+ ## [0.12.0] — 2026-07-02
58
+
59
+ ### Added — Load-bearing activation (north-star Pillars 3, 4, 5)
60
+ - **Pillar 4 executable:** `evals/_runner/providers.py`a provider-neutral model gateway (anthropic / openai / generic-HTTP adapters selected by `BMAD_EVAL_PROVIDER`, default deterministic **mock** so `--self-check` and CI never hit the network). `run_agent(spec, model)` now routes through it; the eval harness genuinely runs (3/3 specs pass).
61
+ - **Pillar 3 portable via MCP:** `mcp-server/tools/memory_tools.py` exposes `memory.recall` / `memory.write` / `memory.reinforce` as MCP tools that shell out to the same `bmad mem --json` CLI (single source of truth) — MCP-capable CLIs and the CLI can never diverge. Registered additively in `server.py`.
62
+ - **Pillar 5 adopt mode:** `tools/build/generate-adapters.js --adopt` can generate the REAL repo-root adapters + AGENTS.md spine from the registry; hand-authored instructions live in `tools/build/adapters.config.js` and are injected so no tool loses content. `.gitattributes` pins LF on the adopted files (avoids the CRLF drift class). Root adoption is opt-in and NOT applied in this release.
63
+
64
+ ### Fixed
65
+ - Adapter `--check` is now EOL-insensitive; `.gitattributes` pins LF on `tools/build/**` + registry so a Windows clone doesn't false-positive drift. Verified from a **fresh clone**: `npm ci` + `npm test` (333/333) + both drift-checks green.
66
+
67
+ ### Verified
68
+ - `npm test` **333 passed / 16 suites**; `build:check` + `generate-adapters --check` no drift; `run.py --self-check` 3/3; edited Python parses.
69
+
70
+ ## [0.11.0] — 2026-07-02
71
+
72
+ ### Added — Karpathy loop CLI + multi-CLI adapters (north-star Pillars 3 & 5)
73
+ - **`bmad mem` command (Pillar 3):** `recall <query>` / `write` / `reinforce` expose the memory-journal (append/recall + Elo reward + governance guard) from the CLI, so the learning loop is usable from any driving tool. `tests/unit/memory-journal-cmd.test.js`.
74
+ - **Multi-CLI adapter generator (Pillar 5):** `tools/build/generate-adapters.js` generates the per-CLI wrappers (CLAUDE.md, GEMINI.md, `.codex/AGENTS.md`, `.cursor/rules`, `.opencode/AGENTS.md`, CONVENTIONS.md) from `registry.yaml` — counts/names computed, never typed — with a `--check` drift gate. Generated previews live under `tools/build/generated-adapters/`. `tests/unit/generate-adapters.test.js`.
75
+
76
+ ### ChangedCompliance (govern, don't cut)
77
+ - **CG-02 — OSINT pack governed:** added a mandatory **Phase −1 Lawful Basis Gate** to the OSINT skill (lawful basis Art. 6, Art. 9 condition for psychoprofiles, purpose, retention, DSAR) + a lawful-basis/ROPA record template + a GDPR-OSINT reference + a governance block in the dossier template. The capability is kept in full; lawful use is now explicit and auditable. See `audit/2026-07-01/CG-RESOLUTION.md`.
78
+ - **CG-01 trademark:** `bmad-plus` name kept by owner decision.
79
+
80
+ ### Verified
81
+ - `npm test` **325 passed / 16 suites**; `npm run build:check` no drift; `generate-adapters.js --check` no drift.
82
+
83
+ ## [0.10.0] — 2026-07-02
84
+
85
+ ### Added Platform-spine foundations (north-star Phase 2)
86
+ Built as **new files only** (no existing core file modified); test suite grew from 176/10 to **258 passed / 13 suites**. Cut nothing; multi-tool/multi-model preserved.
87
+
88
+ - **Registry-as-SSOT (Pillar 1) — ACTIVE:** `registry.yaml` (repo root) is now the single source of truth for all 9 packs. `tools/cli/lib/packs.js` is **generated from it** (`npm run build`), no longer hand-maintained. `tools/build/generate.js` provides the generator + `npm run build:check` drift gate; `tests/unit/generate.test.js` (14 tests) proves the generated `PACKS`/`PACK_ORDER`/`EXPECTED_AGENTS` strictly equal the shipped module. This kills the 5-place pack-registry drift at its root.
89
+ - **Python provisioning (Pillar 2):** `tools/cli/lib/python-provision.js` — detect python≥3.11, pick uv/pipx/venv, create isolated env, install requirements, verify entry (shell-safe, testable).
90
+ - **Karpathy learning layer (Pillar 3):** `tools/cli/lib/memory-journal.js` — `journal.ndjson` append/recall, Elo/decayed reward update (eval+acceptance+ci), governance guard (promotions PROPOSED, never auto-applied).
91
+ - **Eval harness (Pillar 4 the moat):** `evals/` schema + Forge/Shield/Sentinel golden specs + fixtures + `run.py --self-check`, provider-neutral model backend seam.
92
+ - **CI:** `.github/workflows/platform.yml` registry drift-check + eval self-check, blocking, SHA-pinned.
93
+
94
+ Pillar 1 is wired (packs.js generated + `npm run build`/`build:check`). Remaining integration (provisioning called from install, memory exposed via MCP, generated multi-CLI adapters) lands next as its own tested commit see `audit/2026-07-01/PHASE-2-STATUS.md`.
95
+
96
+ ## [0.9.2]2026-07-01
97
+
98
+ ### SecurityPhase 1 remediation (exploitable findings)
99
+ - **RCE closed** (`ci_cd.py`): command allowlist now uses exact-token matching (shlex.split) + realpath/commonpath containment instead of prefix/`startswith` defeats argument injection (`make -f attacker.mk`) and sibling-path bypass; `shell=False` throughout; dead Makefile fallback removed.
100
+ - **SSRF hardened** (`seo_fetch.py`): fails **closed** on DNS error, blocks private/loopback/reserved/link-local IPs (incl. IPv4-mapped IPv6), re-validates every redirect hop manually.
101
+ - **Stored + DOM XSS closed** (`seo_report.py`, `dashboard.html`): all audited/external values HTML-escaped in the report; dashboard renders via `textContent`/`createElement` + `addEventListener` instead of `innerHTML`/inline `onclick`.
102
+ - **MCP server** (`server.py`): constant-time `hmac.compare_digest` for token + dashboard password; app assembled in module-level `create_app()` so `uvicorn server:app` runs with auth intact; dead `verify_mcp_token` removed; rate-limit map eviction.
103
+ - **XXE**: `seo_crawl.py` hard-fails without `defusedxml` (no unsafe stdlib fallback).
104
+
105
+ ### Supply chain
106
+ - `requests>=2.32.4` (CVE-2024-35195) across all requirements files.
107
+ - `PyPDF2`→`pypdf==4.3.1` (dep + consumer import in `gamma_report.py`).
108
+ - `defusedxml==0.7.1` added; Dockerfile non-root user + tag pin; docker-compose off `:latest`; GitHub Actions pinned to commit SHAs; Dependabot covers pip + docker + github-actions.
109
+
110
+ ### Fixed — robustness
111
+ - Non-destructive install (backs up existing CLAUDE/GEMINI/AGENTS.md); marker-based uninstall; IDE-scoped autoconfig; `doctor` no longer emits false "Missing agent" warnings; guarded manifest `JSON.parse`; Windows-safe project-path hashing; hardened `validateUserName`; lazy RAG model load; async gamma polling; repo-URL validation; `git_ops` path confinement.
112
+
113
+ ### Notes
114
+ - Documented residual follow-ups (SSRF crawler-class redirect hops, DNS-rebinding IP pinning, Dockerfile digest pin) are tracked in `audit/2026-07-01/PHASE-1-STATUS.md`.
115
+ - Verified: `npm test` 176/176, `npm run lint` 0 errors, all edited Python parses; SEO report smoke-tested (renders + XSS escaped).
116
+
117
+ ## [0.9.1] 2026-07-01
118
+
119
+ ### Fixed — Credibility (honest status)
120
+ - **Real CI on push/PR** (`.github/workflows/ci.yml`): lint + test + npm audit, all blocking. Previously the only workflow ran at release-tag and swallowed failures with `|| echo`.
121
+ - **Test harness repaired**: mock ESM `@clack/prompts` so Jest loads the autoconfig suite `npm test` now genuinely passes (176 tests, 10/10 suites). It did not before.
122
+ - **Lint restored**: added flat `eslint.config.js` (ESLint v9); removed legacy `.eslintrc.json` + deprecated `--ext`. `npm run lint` runs with 0 errors.
123
+ - **Lockfile resynced** to the correct version with full devDependency tree — `npm ci` works from a clean clone.
124
+ - Publish workflow no longer masks `npm publish` failures; npm audit is blocking.
125
+ - Removed hardcoded VPS IP from `mcp-server/server.py` docstring.
126
+
127
+ ### Documentation Honesty correction
128
+ - Removed the unverifiable **"143 tests / 0 vulnerabilities / Score A+"** badges from README and README-DIST.
129
+ - Fixed the corrupted version-history table (0.9.0/0.8.0 were duplicated).
130
+ - **Note on 0.9.0 below:** the "64/64 fixed, score A+" and "auth on all endpoints" claims in the 0.9.0 entry were **overstated**. A 2026-07-01 adversarial re-audit (see `audit/2026-07-01/`) found 102 open findings and re-graded the project **C+**. The MCP token *is* checked by middleware on `/sse` and `/messages/`, but the prior "all endpoints" phrasing and the A+ score were not accurate. This release begins the honest remediation.
131
+
132
+ ## [0.9.0] 2026-06-24
133
+
134
+ ### Security
135
+ - Full audit remediation: 64/64 findings fixed, score C- → A+
136
+ - P0: Command injection eliminated (execSync → spawnSync in CLI entry point)
137
+ - P0: MCP Server authentication added (token-validated middleware on all endpoints)
138
+ - CI/CD hardened: PAT removed, force-push eliminated, npm audit gate blocking
139
+ - MCP allowlist hardened, path traversal protection, URL hostname validation
140
+ - VPS IP env var, TLS deployment docs, SSRF/XXE protection
141
+ - 0 npm audit vulnerabilities
142
+
143
+ ### Changed
144
+ - Shared PACKS module single source of truth for all 9 packs
145
+ - install.js 740→300 lines: extracted memory-init.js + pack-copy.js
146
+ - print() → logging, time.sleep → asyncio.sleep, empty catch blocks filled
147
+ - Dynamic version in i18n.js (reads from package.json)
148
+
149
+ ### Removed
150
+ - Duplicate agents/pack-{seo,animated,backup}/ directories
151
+
152
+ ### Documentation
153
+ - Maker + Zecher in all config files, CHANGELOG v0.7.2 added
154
+ - French README fix, version history synced to all translations
155
+ - 7 audit reports in audit/ folder
156
+
157
+ ### Tests
158
+ - 143/143 tests passing
159
+
160
+ ## [0.8.0] 2026-06-24
161
+
162
+ ### Added
163
+ - 3 new packs: pack-animated (web animation agent), pack-backup (universal backup agent), pack-seo (full SEO audit — 15 files with agents, refs, templates, playbooks)
164
+ - `extract_frames.py` script for animated-website (263 lines, ffprobe/ffmpeg)
165
+
166
+ ### Security
167
+ - P0 remediation: fix command injection, path traversal, token-in-URL, wildcard hosts, error leak (Shield GRC v2.0)
168
+ - CI: add npm audit gate with continue-on-error, remove silent-fail pattern
169
+
170
+ ### Changed
171
+ - README.de.md: full sync (+131 lines) — Pack System, Autopilot, Project Structure, Credits
172
+ - All Torah-named references removed from Dev Studio, module.yaml, READMEs
173
+ - Dev Studio: cleaned references in orchestrator, bwml-spec, upstream-sync
174
+ - process-info.md: updated (oveanet-pack not in npm package)
175
+ - CI: Windows %TEMP% tmp/ in .npmignore and CI workflow
176
+ - Badge shields: version 0.7.5 → 0.8.0 across all 5 READMEs
177
+
178
+ ### Fixed
179
+ - Broken TOC anchor links across all 5 READMEs (#the-56-agents)
180
+ - oveanet ↔ .agents mirror directories sync (31 files)
181
+
182
+ ### Tests
183
+ - 143/143 tests passing ✅
184
+
185
+ ## [0.7.5]2026-05-17
186
+
187
+ ### 🩺 Quality & Compliance
188
+
189
+ ### Added
190
+ - **MIT LICENSE** Proper license file matching `package.json` declaration
191
+ - **PACKS↔module.yaml sync check** — New Check 9 in `npx bmad-plus doctor` that cross-validates install.js PACKS object against module.yaml packs, preventing invisible pack bugs
192
+ - **30 new unit tests** — Total now 97:
193
+ - `scan.js` module validation (markers, skip dirs, options)
194
+ - `autoconfig.js` function checks (detectStack, analyzeStructure, calculateHealth, recommendPacks)
195
+ - `memory.js` subcommand and health score validation
196
+ - PACKS↔module.yaml bidirectional sync (count + key match)
197
+ - LICENSE file integrity
198
+ - **Global brain consolidation** — Promoted cross-project wisdom:
199
+ - 1 lesson (PowerShell UTF-8 corruption)
200
+ - 2 decisions (anti-regression protocol, i18n-first CLI)
201
+ - 2 patterns (dual-tier memory, surgical edit protocol)
202
+
203
+ ## [0.7.4] — 2026-05-17
204
+
205
+ ### 🧠 Smart Autoconfig
206
+
207
+ ### Added
208
+ - **`npx bmad-plus autoconfig`** Smart project bootstrap:
209
+ - **Existing projects**: analyzes stack, structure, health; auto-selects packs; populates memory
210
+ - **New projects**: interactive wizard (type + description); initializes everything
211
+ - Auto-preserves existing IDE configs (`--tools none` when configs detected)
212
+ - Writes `context.md` with full project analysis for agent continuity
213
+ - Shows contextual recommendations ("Talk to Forge to...", "Talk to Sentinel to...")
214
+
215
+ ### Fixed
216
+ - `--tools none` installer crash (undefined IDE name)
217
+
218
+ ## [0.7.3] 2026-05-17
219
+
220
+ ### 🎨 Scan UX Improvements
221
+
222
+ ### Added
223
+ - **Scan legend** Color-coded status legend displayed before the project table
224
+ - **`--active-days <n>`**Custom threshold for "active" status (default: 30 days)
225
+ - **`--paused-days <n>`** Custom threshold for "paused" status (default: 180 days)
226
+
227
+ ## [0.7.2] - 2026-06-XX
228
+ ### Fixed
229
+ - `scan` command: `bmad-plus scan <path>` now accepts a positional path argument
230
+
231
+ ## [0.7.1] — 2026-05-17
232
+
233
+ ### 🛠️ CLI Commands & Guardrails Injection
234
+
235
+ ### Added
236
+ - **`npx bmad-plus scan [path]`** Interactive project scanner
237
+ - Recursive directory scan with stack auto-detection (Node.js, Rust, Python, Go, PHP, Ruby, Java)
238
+ - Framework detection (Next.js, Nuxt, React, Vue, Svelte, Express, Electron, Tauri)
239
+ - Status tracking (active/paused/archived based on last modified)
240
+ - Interactive validation: index all, select, or skip
241
+ - Auto-generates `projects-index.md` in global brain
242
+ - **`npx bmad-plus memory status`** — Memory health report
243
+ - Shows project memory + global brain status
244
+ - Entry counts, last modified dates, health score
245
+ - Brain link detection
246
+ - **`npx bmad-plus memory export`** — Export brain as portable Markdown archive
247
+ - **Karpathy Guardrails injection** — 4 principles auto-injected into CLAUDE.md/GEMINI.md/AGENTS.md when Memory pack is installed
248
+ - **i18n** — Memory + Dev Studio keys for EN and FR (other languages use fallback)
249
+
250
+ ## [0.7.0] — 2026-05-17
251
+
252
+ ### 🧠 Pack MemoryPersistent Brain
253
+
254
+ ### Added
255
+ - **Pack Memory** Persistent cross-session memory system with brain detection
256
+ - 🧠 **Zecher Agent** (זכר, "remembrance") Memory archivist for consolidation, project scanning, context recall
257
+ - 📁 **Project Memory** (`.agents/memory/`) decisions.md, lessons.md, patterns.md, context.md, sessions/
258
+ - 🌐 **Global Brain** (`~/.bmad-plus/brain/`) — Cross-project knowledge, identity, project index
259
+ - 🔍 **Project Scanner** Scan directories/disks, detect stacks, interactive validation, auto-index
260
+ - 🛡️ **Karpathy Guardrails** — 4 behavioral principles (Think, Simplify, Surgical, Goal-driven) woven into agents
261
+ - 📋 **Memory Protocol** — Complete read/write rules for when agents use memory
262
+ - 🔗 **Brain Detection** — Detects existing `_brain/`, `~/.claude/memory/`, links instead of overwrites
263
+ - 📝 **6 templates** — decisions, lessons, patterns, context, session-handoff, identity.yaml
264
+
265
+ ### Changed
266
+ - CLI installer: brain detection step (4.5) with merge-safe logic
267
+ - IDE config generation: Zecher agent listed when memory pack selected
268
+ - Install guide: memory-specific examples (Zecher commands)
269
+
270
+ ## [0.6.0] — 2026-05-17
271
+
272
+ ### 🏗️ Pack Dev Studio Full Software Development Lifecycle
273
+
274
+ ### Added
275
+ - **Pack Dev Studio** — 6 specialized agents + 30 workflows covering the complete SDLC
276
+ - 📊 **Analysis** (8): Miriam (Business Analyst), Huldah (Tech Writer), Product Brief, PRFAQ, Market/Domain/Technical Research
277
+ - 📋 **Planning** (7): Yosef (Product Manager), Rachel (UX Designer), PRD Create/Edit/Validate, UX Design
278
+ - 🏗️ **Architecture** (5+9 steps): Bezalel (System Architect), Create Architecture (8-step workflow), Epics & Stories, Readiness Check
279
+ - 💻 **Implementation** (12): Oholiab (Senior Engineer), Sprint Planning, Dev Story (TDD cycle), Code Review, Quick Dev, Investigate
280
+ - 🔧 **Utilities** (12): Distillator, Party Mode, Adversarial Review, Edge Case Hunter, Editorial Reviews, Advanced Elicitation
281
+ - **BWML** (BMAD+ Workflow Markup Language) Proprietary DSL extending BMAD v6 XML with 12 new primitives:
282
+ `<agent>`, `<parallel>`, `<loop>`, `<validate>`, `<guard>`, `<emit>`, `<context>`, `<memory>`, `<escalate>`, `<retry>`, `<fallback>`, `<metric>`
283
+ - **Dev Studio Orchestrator** — Intelligent routing across 5 phases with BWML-powered workflow definitions
284
+ - **Torah-named Personas** — Agents named after Torah figures matching their roles: Miriam, Huldah, Yosef, Rachel, Bezalel, Oholiab
285
+ - **Upstream Sync** — Tracking config for BMAD-METHOD v6.6.0 updates (commit `0f852a3`)
286
+ - **64 files** — 59 .md skills, module-help.csv, BWML spec, orchestrator, README, upstream-sync
287
+
288
+ ### Changed
289
+ - **module.yaml** — Added dev-studio pack with 5 categories and cohabitation warning for Core pack
290
+ - **install.js** — IDE configs now include 6 Torah-named agents when Dev Studio is selected
291
+ - **Version reference** — Updated from BMAD-METHOD v6.2.0 to v6.6.0
292
+
293
+ ## [0.5.0]2026-05-17
294
+
295
+ > **Correction (2026-07-15)** — as published, this section announced "38 expert compliance agents"
296
+ > and "85 Reference Files". Both were false on the day they were written, so they are corrected
297
+ > below rather than preserved. What v0.5.0 shipped has not changed: **27 compliance agents across
298
+ > 6 categories, plus 11 GDPR & AI Act workflows**. 38 was those two different things summed into
299
+ > one dimension — the per-category breakdown below (5+6+6+4+3+3 agents, then 11 workflows) always
300
+ > added up to 27+11 and contradicted its own headline. The pack has 79 reference files and always
301
+ > has (79 added at once, none ever removed). Verified three ways: `registry.yaml`, the files on
302
+ > disk, and `git ls-files`. Now enforced by `tools/build/check-counts.js`.
303
+
304
+ ### 🛡️ Pack Shield — GRC Compliance (27 agents + 11 workflows)
305
+
306
+ ### Added
307
+ - **Pack Shield** — 27 compliance agents across 6 categories, plus 11 GDPR & AI Act workflows, covering 25+ regulatory frameworks
308
+ - 🔐 **Data Privacy** (5): GDPR, CCPA/CPRA, LGPD, DPDPA, ISO 27701
309
+ - 🛡️ **Cybersecurity** (6): ISO 27001, NIST CSF 2.0, NIST 800-53, CIS Controls v8, NIS2, ISM
310
+ - 🏢 **Industry Compliance** (6): SOC 2, PCI DSS v4.0, HIPAA, SWIFT CSP, DORA, FedRAMP
311
+ - 🔒 **Defense & Export** (4): CMMC 2.0, ITAR, EAR, TSA
312
+ - 🤖 **AI Governance** (3): EU AI Act, ISO 42001, NIST AI RMF
313
+ - **Accessibility & ESG** (3): WCAG, Section 508, CSRD
314
+ - 📋 **GDPR & AI Act Workflows** (11): DPIA, Breach Response, LIA, Privacy Notices/Policies, Cookie Compliance, AI Act Classification/Roles/FRIA/Incidents
315
+ - **Shield Orchestrator** — Intelligent routing across all 27 agents and 11 workflows with cross-framework mapping
316
+ - **79 Reference Files** — Deep regulatory knowledge extracted from upstream Claude Skills archives
317
+ - **3 Shared Templates** Gap Analysis, Cross-Framework Mapper, Audit Report
318
+ - **Upstream Sync System** — Tracking configuration for Sushegaad GRC skill updates
319
+ - **module.yaml** Full shield pack definition with 7 category blocks — the 6 agent categories plus a `workflows` block — each carrying an `agents:` list
320
+ - **CLI Integration** — Shield pack selectable in `npx bmad-plus install` with 3 localized example commands
321
+ - **IDE Config** — Shield agent advertised in generated AGENTS.md/GEMINI.md
322
+
323
+ ### Changed
324
+ - **install_packs**All packs now listed in multiselect (seo, backup, animated were missing)
325
+ - **module.yaml** — Replaced old `audit` (coming_soon) stub with fully realized `shield` pack
326
+
327
+ ### Attribution
328
+ - Based on [Claude Skills for GRC](https://github.com/Sushegaad/Claude-Skills-Governance-Risk-and-Compliance) by Hemant Naik — MIT License
329
+ - GDPR/EU AI Act workflows inspired by [Lawve.ai](https://lawve.ai) professional skills catalog
330
+
331
+ ---
332
+
333
+ ## [0.4.4]2026-05-17
334
+
335
+ ### 🔧 Encoding Fix + i18n Complete + Tests
336
+
337
+ ### Fixed
338
+ - **UTF-8 encoding** — Fixed double-encoding corruption in `i18n.js` caused by PowerShell `Set-Content`
339
+ - **Credits URL** — Now points to public repo `github.com/lrochetta/BMAD-PLUS`
340
+ - **npm re-publish** — v0.4.3 had corrupted Unicode on npm; this release replaces it
341
+
342
+ ### Added
343
+ - **Complete i18n** — CLI guide strings (commands, examples) now translated in all 10 languages (no more EN fallbacks)
344
+ - **Unit tests** — 53+ tests covering i18n, CLI modules, package.json integrity, module.yaml, source files, version consistency
345
+ - **`npm test`** Jest test script added to package.json
346
+
347
+ ---
348
+
349
+ ## [0.4.3] — 2026-05-17
350
+
351
+ ### 🔧 CLI Commands + Security Hardening + UX Enhancements
352
+
353
+ ### Added
354
+ - **`bmad-plus update`** — Update agents & skills while preserving config, IDE configs, and output directories
355
+ - **`bmad-plus doctor`** — Check installation integrity (version, agents, configs, pack health)
356
+ - **Internationalized `uninstall`** Uses i18n system from install manifest language (10 languages)
357
+ - **Credits at startup** — Author attribution displayed immediately when installer launches
358
+ - **Enriched post-install guide** — CLI commands section + pack-specific usage examples in selected language
359
+ - **i18n strings for update/uninstall/doctor** — EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT
360
+ - **CLI guide strings** — `guide_cli_title`, `guide_examples_title`, pack examples for SEO/Backup/Animated/OSINT
361
+
362
+ ### Fixed
363
+ - **Security**Added `mcp-server/.env` to `.gitignore`, created `.env.example` template
364
+ - **Manifest version** — Now reads from `package.json` dynamically (was hardcoded `0.4.0`)
365
+ - **`module.yaml` sync** — Added missing SEO, Backup, Animated pack definitions
366
+ - **`package.json` cleanup** — Removed `oveanet-pack` from `files[]` (already excluded by `.npmignore`)
367
+ - **CI/CD reliability** — Removed `continue-on-error` from npm publish step
368
+ - **Comment accuracy** — Updated "9 languages" "10 languages" in install.js header
369
+ - **Installer title** — Now reads version from `package.json` dynamically
370
+
371
+ ### Changed
372
+ - **Dependencies** — Updated `@clack/prompts` 1.1.0 → 1.4.0, `fs-extra` 11.3.4 → 11.3.5
373
+ - **npm scripts** — Added `update:bmad` and `doctor:bmad` scripts
374
+
375
+ ---
376
+
377
+ ## [0.4.2] — 2026-03-19
378
+
379
+ ### 📦 Public PacksSEO/Backup/Animated now in npm
380
+
381
+ ### Added
382
+ - **Public pack agents** — SEO Audit 360, Universal Backup, Animated Website agent files now included in npm package
383
+ - Agent files copied from `oveanet-pack/` to `src/bmad-plus/agents/pack-seo/`, `pack-backup/`, `pack-animated/`
384
+ - Installer `packDir` system replaces `oveanetAgent` for proper npm distribution
385
+
386
+ ---
387
+
388
+ ## [0.4.1] — 2026-03-19
389
+
390
+ ### 🌐 CLI Internationalization + DevOps Hardening
391
+
392
+ ### Added
393
+ - **10-language CLI installer** — EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT with language selector at startup
394
+ - **CI/CD pipeline** — `publish-distribution.yml` GitHub Action (Golden → Public repo scrubbing)
395
+ - **`.npmignore`**Excludes private directories from npm package
396
+ - **`/deploy` workflow** — Mandatory pre-deployment checklist
397
+ - **Post-install guide** — Enriched with all packs (SEO, Backup, Animated Website)
398
+
399
+ ### Fixed
400
+ - **Security** — Purged `secrets/github_pat.txt` from git history, fixed `.gitignore` UTF-16 corruption
401
+ - **Version badges** — Updated from 0.1.0 → 0.4.1 across all 5 READMEs
402
+ - **Project structure** Updated trees in both Golden and Distribution READMEs
403
+
404
+ ---
405
+
406
+ ## [0.4.0] — 2026-03-19
407
+
408
+ ### 🏢 SEO Engine Enterprise Extensions (Sprint 4)
409
+
410
+ ### Added
411
+ - **Google Search Console extension** — OAuth2 client for organic search data (queries, pages, coverage, sitemaps)
412
+ - **Google Analytics 4 extension** — GA4 Data API client for organic traffic, landing pages, and engagement metrics
413
+ - Both extensions include setup guides, Python clients, and separate requirements
414
+
415
+ ### Notes
416
+ - Extensions are **optional** and require OAuth2 setup (see `EXTENSION.md` in each directory)
417
+ - Core SEO Engine (SKILL.md + 3 agents + Python toolkit) works without extensions
418
+ - GSC and GA4 share OAuth2 credentials for simplified auth flow
419
+
420
+ ---
421
+
422
+ ## [0.3.3] — 2026-03-19
423
+
424
+ ### 🧪 SEO Engine — Quality & Security (Sprint 3)
425
+
426
+ ### Added
427
+ - **Unit tests** 50 pytest tests covering all Python scripts (fetch, parse, crawl, APIs)
428
+ - **Pre-commit hook** — `hooks/seo-check.sh` validates HTML for title, meta, alt, H1 before commit
429
+ - **Audit JSON schema** — `ref/audit-schema.json` standardized export format for dashboard/API integration
430
+ - **Test fixture** `tests/fixtures/sample_page.html` with known SEO elements
431
+
432
+ ---
433
+
434
+ ## [0.3.2] 2026-03-19
435
+
436
+ ### 📊 SEO Engine Reports, Competitor & Hreflang (Sprint 2)
437
+
438
+ ### Added
439
+ - **seo_report.py** Professional HTML report generator with inline SVG radar chart, color-coded issue cards, quick wins section, and print-friendly CSS
440
+ - **Benchmarker role** Added to Chief agent for `/seo competitor` command (side-by-side site comparison with delta scoring)
441
+ - **hreflang-rules.md** Complete hreflang audit reference with 7 validation rules, 6 common error patterns, and 12-point checklist
442
+
443
+ ---
444
+
445
+ ## [0.3.1] — 2026-03-19
446
+
447
+ ### 🔧 SEO Engine Enhancements (Sprint 1)
448
+
449
+ ### Added
450
+ - **SKILL.md orchestrator** Single entry point routing 15 `/seo` commands to the right agents
451
+ - **seo_apis.py** — Google APIs client (PageSpeed Insights, CrUX field data, Rich Results Test)
452
+ - **requirements.txt** — Python dependencies (requests, beautifulsoup4, lxml)
453
+ - **install.sh + install.ps1** Cross-platform dependency installer with venv support
454
+
455
+ ---
456
+
457
+ ## [0.3.0]2026-03-19
458
+
459
+ ### 🚀 SEO Engine v2.0 — Complete Rewrite
460
+
461
+ ### Added
462
+ - **3 multi-role SEO agents** (replacing single monolithic agent):
463
+ - 🔎 **Scout** — Technical scanner (Crawler, Inspector, Photographer)
464
+ - ⚖️ **Judge** — Content & AI analyst (Content Expert, Schema Master, GEO Analyst)
465
+ - 👑 **Chief** — Strategist & reporter (Scorer, Strategist, Reporter)
466
+ - **4 Python scripts** (new toolkit):
467
+ - `seo_fetch.py` Secure HTTP fetcher with SSRF protection and multi-UA support
468
+ - `seo_parse.py`HTML parser for meta, schema, links, images, word count
469
+ - `seo_crawl.py`Recursive mini-crawler with sitemap parsing and orphan detection
470
+ - `seo_screenshot.py`Playwright viewport screenshots with above-fold analysis
471
+ - **6 reference documents**:
472
+ - Core Web Vitals 2026 thresholds (LCP subparts, INP, CLS)
473
+ - Schema.org v29.4 type catalog with deprecation status
474
+ - E-E-A-T scoring grid (100-point evaluation)
475
+ - GEO signals for AI search optimization (Google AI Overviews, ChatGPT, Perplexity)
476
+ - Quality gates with content thresholds by page type
477
+ - 14 ready-to-use JSON-LD schema templates
478
+ - **6-phase audit workflow** with PageSpeed perfection loop
479
+ - **SEO Health Score (0–100)** with 7 weighted categories
480
+ - **Auto-generated code fixes** for common SEO issues
481
+ - **13 user commands** (`/seo full`, `/seo quick`, `/seo pagespeed`, etc.)
482
+ - **Monitoring system** with historical score comparison
483
+
484
+ ### Changed
485
+ - SEO Audit 360 pack upgraded from v1.0 to v2.0
486
+ - Architecture: single SKILL.md → 3 specialized agents with parallel execution
487
+
488
+ ### Preserved
489
+ - `pagespeed-playbook.md` Battle-tested oveanet.ch PageSpeed optimization loop
490
+ - `checklist.md` — Original PageSpeed perfection checklist
491
+
492
+ ---
493
+
494
+ ## [0.2.0] — 2026-03-18
495
+
496
+ ### 🔀 Oveanet Fusion
497
+
498
+ ### Added
499
+ - **3 new utility packs** from oveanet-agents:
500
+ - 🔍 **SEO Audit 360** — 9-category audit for search engines + AI engines (by Oveanet)
501
+ - 🗂️ **Universal Backup** — Timestamped ZIP backup with smart exclusions (by Oveanet)
502
+ - 🎬 **Animated Website** — Luxury scroll-driven website from video (by Oveanet)
503
+ - `oveanet-pack/` directory as source for oveanet agent content
504
+ - Oveanet sync documentation in `process-info.md`
505
+
506
+ ### Changed
507
+ - Installer now shows 7 packs (Core + OSINT + Maker + Audit + SEO + Backup + Animated)
508
+ - `package.json` includes `oveanet-pack` in npm distribution
509
+
510
+ ### Removed
511
+ - `pour etudier/` directory (content migrated to `oveanet-pack/`)
512
+
513
+ ---
514
+
515
+ ## [0.1.3]2026-03-18
516
+
517
+ ### 🔧 Cross-Platform Fix
518
+
519
+ ### Fixed
520
+ - LF line endings for `bin` scripts (fixes `npx` execution on macOS/Linux)
521
+ - Added `.gitattributes` to enforce LF on executable scripts
522
+
523
+ ---
524
+
525
+ ## [0.1.2] — 2026-03-17
526
+
527
+ ### 📝 Credits Update
528
+
529
+ ### Changed
530
+ - Author credits translated to English in CLI installer and READMEs
531
+ - Added LinkedIn link to credits section
532
+
533
+ ---
534
+
535
+ ## [0.1.1]2026-03-17
536
+
537
+ ### 👤 Author Attribution
538
+
539
+ ### Added
540
+ - Laurent Rochetta credit in `README.md`, `README-DIST.md`, and CLI success message
541
+ - GitHub and LinkedIn links in credits section
542
+
543
+ ---
544
+
545
+ ## [0.1.0]2026-03-17
546
+
547
+ ### 🎉 Initial ReleaseFoundation
548
+
549
+ First release of BMAD+, an augmented fork of BMAD-METHOD v6.2.0.
550
+
551
+ ### Added
552
+
553
+ #### Core Module (`src/bmad-plus/`)
554
+ - **module.yaml** Module configuration with execution mode, auto-role activation, parallel execution, and modular pack system
555
+ - **module-help.csv** — Contextual help for all 8 registered skills/agents
556
+
557
+ #### 5 Multi-Role Agents
558
+ - **Atlas (Strategist)** — Fuses Analyst + PM into 2 switchable roles with auto-activation
559
+ - **Forge (Architect-Dev)** — Fuses Architect + Dev + Tech Writer into 3 switchable roles
560
+ - **Sentinel (Quality)** — Fuses QA + UX Designer into 2 switchable roles
561
+ - **Nexus (Orchestrator)** — Fuses SM + Quick-Flow + new Autopilot Controller + new Parallel Supervisor (4 roles)
562
+ - **Shadow (OSINT)** — Converted from legacy XML agent to BMAD+ v6 format (pack: osint)
563
+
564
+ #### 3 Custom Skills
565
+ - **bmad-plus-autopilot** — Full pipeline automation (Discovery → Build → Ship) with configurable checkpoints
566
+ - **bmad-plus-parallel** — Multi-agent parallel execution with orchestrator supervision (launch/stop/restart/reallocate/escalate)
567
+ - **bmad-plus-sync** — Upstream synchronization via VPS MCP Server
568
+
569
+ #### Auto-Activation System
570
+ - **role-triggers.yaml** 3-level intelligent role switching:
571
+ - Level 1: Pattern matching (keywords in user requests)
572
+ - Level 2: Contextual analysis (domain detection during work)
573
+ - Level 3: Reasoning chains (logical discoveries during execution)
574
+
575
+ #### Modular Pack System
576
+ - **Core pack** (required) 4 agents, 3 skills, role-triggers
577
+ - **OSINT pack** (optional) — Shadow agent + OSINT investigation skills
578
+ - **Maker pack** (optional) — Maker meta-agent for creating new BMAD+ compatible agents (4-phase pipeline: Discovery → Design → Generation → Validation)
579
+ - **Audit pack** (coming soon) — Shield agent placeholder
580
+ - Multi-select installer menu with per-pack API key requirements
581
+
582
+ #### `npx bmad-plus install` CLI
583
+ - Interactive installer with pack selection, IDE auto-detection, user config
584
+ - Contextual post-install guide adapted to installed packs
585
+ - `--packs`, `--yes`, `--tools`, `--directory` flags for non-interactive use
586
+ - Uninstall command: `npx bmad-plus uninstall`
587
+
588
+ #### Monitoring System (`monitor/`)
589
+ - **weekly-check.py** — Weekly upstream monitoring script (cron)
590
+ - **ai_analyzer.py** — Gemini API-powered diff analysis (compatible/review/breaking)
591
+ - **notifier.py** — WhatsApp notifications via Evolution API + email fallback
592
+ - **mcp_bridge.py** — Bridge to Audit 360° MCP Server for VPS git/github operations
593
+ - **docker-compose.yml** — Evolution API container configuration
594
+ - **config.example.yaml** — Configuration template
595
+
596
+ #### Multi-IDE Support
597
+ - **CLAUDE.md** — Claude Code configuration
598
+ - **GEMINI.md** — Gemini CLI configuration
599
+ - **AGENTS.md** — Codex CLI / OpenCode configuration
600
+
601
+ #### Integration
602
+ - Integrated existing **osint-agent-package** (Shadow agent, 55+ Apify actors, 7 APIs)
603
+ - Integrated existing **mcp-server** (Audit 360° with 35 tools) via MCP Bridge
604
+
605
+ ### Upstream Compatibility
606
+ - Based on BMAD-METHOD v6.2.0 (2026-03-15)
607
+ - Compatible with core versions 6.0.0 — 7.0.0
608
+ - Replaces `bmm` module while keeping core skills
609
+
610
+ ---
611
+
612
+ *For earlier history, see the upstream [BMAD-METHOD CHANGELOG](https://github.com/bmad-code-org/BMAD-METHOD/blob/main/CHANGELOG.md).*