bmad-plus 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +108 -30
  2. package/README.md +23 -23
  3. package/SECURITY.md +9 -1
  4. package/osint-agent-package/README.md +13 -0
  5. package/osint-agent-package/SETUP_KEYS.md +13 -0
  6. package/package.json +32 -8
  7. package/readme-international/README.de.md +133 -542
  8. package/readme-international/README.es.md +135 -561
  9. package/readme-international/README.fr.md +134 -558
  10. package/src/bmad-plus/agents/agent-shadow/SKILL.md +6 -0
  11. package/src/bmad-plus/packs/pack-memory/README.md +1 -1
  12. package/src/bmad-plus/packs/pack-memory/memory-orchestrator.md +1 -1
  13. package/src/bmad-plus/packs/pack-memory/shared/memory-protocol.md +1 -1
  14. package/src/bmad-plus/packs/pack-shield/README.md +2 -0
  15. package/src/bmad-plus/packs/pack-shield/SKILL.md +2 -0
  16. package/src/bmad-plus/packs/pack-shield/shared/audit-report-template.md +6 -0
  17. package/src/bmad-plus/packs/pack-shield/shield-orchestrator.md +4 -0
  18. package/src/bmad-plus/skills/bmad-plus-uat/SKILL.md +61 -1
  19. package/src/bmad-plus/skills/bmad-plus-uat/ref/uat-results.schema.json +11 -0
  20. package/src/bmad-plus/skills/bmad-plus-uat/template/page.html +455 -137
  21. package/src/bmad-plus/skills/bmad-plus-uat/template/strings.json +230 -20
  22. package/tools/build/adapters.config.js +1 -1
  23. package/tools/build/generate-adapters.js +186 -60
  24. package/tools/build/generate.js +49 -13
  25. package/tools/cli/bmad-plus-cli.js +3 -6
  26. package/tools/cli/commands/autoconfig.js +62 -22
  27. package/tools/cli/commands/install.js +620 -356
  28. package/tools/cli/commands/memory.js +40 -13
  29. package/tools/cli/commands/scan.js +94 -30
  30. package/tools/cli/commands/uat.js +50 -5
  31. package/tools/cli/commands/uninstall.js +65 -16
  32. package/tools/cli/commands/update-check.js +13 -4
  33. package/tools/cli/commands/update-policy.js +14 -5
  34. package/tools/cli/commands/update.js +96 -21
  35. package/tools/cli/i18n.js +120 -68
  36. package/tools/cli/lib/ide-config.js +3 -1
  37. package/tools/cli/lib/install-manifest.js +32 -7
  38. package/tools/cli/lib/installation-health.js +33 -1
  39. package/tools/cli/lib/installed-adapters.js +29 -6
  40. package/tools/cli/lib/memory-init.js +19 -4
  41. package/tools/cli/lib/packs.js +17 -28
  42. package/tools/cli/lib/path-hash.js +5 -1
  43. package/tools/cli/lib/python-provision.js +51 -12
  44. package/tools/cli/lib/stack-detect.js +51 -25
  45. package/tools/cli/lib/uat.js +139 -1
  46. package/tools/cli/lib/update-check.js +132 -34
  47. package/tools/cli/lib/update-dispatch.js +2 -2
  48. package/tools/cli/lib/update-policy.js +57 -19
  49. package/tools/cli/lib/update-transaction.js +439 -85
  50. package/tools/build/README.md +0 -78
  51. package/tools/build/check-counts.js +0 -626
  52. package/tools/build/check-install-contract.js +0 -648
  53. package/tools/build/generated-adapters/.codex/AGENTS.md +0 -134
  54. package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +0 -139
  55. package/tools/build/generated-adapters/.opencode/AGENTS.md +0 -134
  56. package/tools/build/generated-adapters/AGENTS.md +0 -132
  57. package/tools/build/generated-adapters/CLAUDE.md +0 -135
  58. package/tools/build/generated-adapters/CONVENTIONS.md +0 -134
  59. package/tools/build/generated-adapters/GEMINI.md +0 -139
  60. package/tools/build/generated-adapters/README.md +0 -79
  61. package/tools/maintain/upstream-candidate.js +0 -456
  62. package/tools/release/publication-content.js +0 -904
  63. package/tools/release/supply-chain.js +0 -282
@@ -1,78 +0,0 @@
1
- # BMAD+ Build — Registry Generator (Pillar 1)
2
-
3
- `registry.yaml` at the repo root is the **single source of truth** for the
4
- 9 packs, their agents, skills, data files, install layout, runtimes, and
5
- compliance tags. Until now this data was hand-replicated in 5 places
6
- (`tools/cli/lib/packs.js`, `src/bmad-plus/module.yaml`, `install.js`,
7
- `ide-config.js`, `i18n.js`) — and they drifted.
8
-
9
- `tools/build/generate.js` reads `registry.yaml` and generates the pack data
10
- consumed by the CLI. The migration proof (`tests/unit/generate.test.js`)
11
- asserts the generated `PACKS` / `PACK_ORDER` / `EXPECTED_AGENTS` are
12
- **deep-strict-equal** to the hand-written `tools/cli/lib/packs.js`, so the
13
- registry provably captures current reality before anything is replaced.
14
-
15
- ## Usage
16
-
17
- ```bash
18
- # Print the generated packs module source (drop-in packs.js replacement)
19
- node tools/build/generate.js
20
-
21
- # Print PACKS / PACK_ORDER / EXPECTED_AGENTS as JSON
22
- node tools/build/generate.js --json
23
-
24
- # Write the generated module to a file
25
- node tools/build/generate.js --out tools/cli/lib/packs.generated.js
26
-
27
- # CI drift gate: exit 1 if registry.yaml no longer reproduces packs.js
28
- # (also asserts product.version == package.json version)
29
- node tools/build/generate.js --check
30
- ```
31
-
32
- ## Registry contract (fields the generator consumes)
33
-
34
- Per pack under `packs:` in `registry.yaml`:
35
-
36
- | Field | Maps to | Notes |
37
- | --- | --- | --- |
38
- | `order` | `PACK_ORDER` position | integer, unique |
39
- | `cli.name` / `cli.icon` / `cli.desc` | `PACKS[id].name/icon/desc` | exact CLI strings (icon = glyph letter) |
40
- | `agents` | `PACKS[id].agents` | agent ids the installer copies |
41
- | `skills` | `PACKS[id].skills` | defaults to `[]` |
42
- | `data` | `PACKS[id].data` | **key presence is significant** — only core & maker declare it |
43
- | `external_package` | `PACKS[id].externalPackage` | osint only |
44
- | `pack_dir` / `pack_src_dir` | `PACKS[id].packDir/packSrcDir` | `pack_src_dir` defaults to `packs` |
45
- | `required` | `PACKS[id].required` | emitted **only when `true`** (packs.js omits it otherwise) |
46
- | `install_layout` | `EXPECTED_AGENTS[id]` | `loose` → agents as directories, `packDir: null`; `packaged` → `packDir` + `doctor.pack_agents` |
47
- | `doctor.pack_agents` | `EXPECTED_AGENTS[id].packAgents` | agent **filenames** inside `pack_dir` (packaged only) |
48
-
49
- Everything else in `registry.yaml` (`display_name`, `icon_emoji`, `summary`,
50
- `runtime`, `categories`, `workflows`, `governance`, `compliance_tags`,
51
- `targets`, `runtimes`, `memory`, `eval`) is north-star metadata consumed by
52
- future generators (module.yaml, README count tables, per-CLI adapters,
53
- role-triggers) — declared once here so counts are derived, never typed.
54
-
55
- ## Editing workflow
56
-
57
- 1. Edit `registry.yaml` (never the generated data).
58
- 2. Run `node tools/build/generate.js --check`.
59
- 3. While `packs.js` is still hand-written (migration phase), sync it via
60
- `node tools/build/generate.js --out tools/cli/lib/packs.js` or apply the
61
- equivalent hand edit — `--check` and `tests/unit/generate.test.js`
62
- (`npx jest tests/unit/generate.test.js`) both fail on any divergence.
63
-
64
- ## Migration end-state (for the orchestrator)
65
-
66
- Once integration is approved, `tools/cli/lib/packs.js` becomes either:
67
-
68
- - a checked-in generated file (`generate.js --out tools/cli/lib/packs.js`,
69
- with `--check` as a CI/pre-commit gate), or
70
- - a thin runtime re-export:
71
-
72
- ```js
73
- const { loadRegistry, buildAll } = require('../../build/generate');
74
- module.exports = buildAll(loadRegistry());
75
- ```
76
-
77
- Both keep the exact `{ PACKS, PACK_ORDER, EXPECTED_AGENTS }` shape every CLI
78
- command already imports, so no call site changes.