bmad-plus 0.12.2 → 0.14.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.
- package/CHANGELOG.md +47 -0
- package/README.md +96 -461
- package/package.json +12 -5
- package/readme-international/README.de.md +42 -9
- package/readme-international/README.es.md +43 -10
- package/readme-international/README.fr.md +42 -9
- package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +5 -3
- package/src/bmad-plus/module.yaml +270 -220
- package/src/bmad-plus/packs/pack-dev-studio/README.md +133 -141
- package/src/bmad-plus/packs/pack-dev-studio/SKILL.md +49 -0
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/analyst-agent.md +35 -60
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/document-project.md +59 -59
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/domain-research.md +55 -93
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/market-research.md +58 -93
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/prfaq.md +55 -132
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/product-brief.md +63 -78
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/tech-writer-agent.md +54 -69
- package/src/bmad-plus/packs/pack-dev-studio/categories/analysis/technical-research.md +54 -93
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/architect-agent.md +32 -60
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-architecture.md +67 -71
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/create-epics-stories.md +61 -90
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/generate-project-context.md +56 -78
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/implementation-readiness.md +55 -88
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01-init.md +20 -153
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-01b-continue.md +20 -173
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-02-context.md +14 -220
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-03-starter.md +20 -329
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-04-decisions.md +15 -314
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-05-patterns.md +15 -355
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-06-structure.md +15 -375
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-07-validation.md +14 -357
- package/src/bmad-plus/packs/pack-dev-studio/categories/architecture/steps/step-08-complete.md +13 -78
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/checkpoint-preview.md +52 -65
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-01-gather-context.md +14 -81
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-02-review.md +14 -31
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-03-triage.md +14 -45
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review-steps/step-04-present.md +13 -128
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/code-review.md +61 -87
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/correct-course.md +55 -298
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/create-story.md +52 -426
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-agent.md +48 -69
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story-checklist.md +22 -80
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/dev-story.md +60 -482
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/investigate.md +50 -184
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/qa-e2e-tests.md +57 -173
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/quick-dev.md +56 -108
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/retrospective.md +54 -1509
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-planning.md +54 -296
- package/src/bmad-plus/packs/pack-dev-studio/categories/implementation/sprint-status.md +41 -283
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-prd.md +58 -18
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/create-ux-design.md +103 -72
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/edit-prd.md +55 -27
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/pm-agent.md +34 -60
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/prd.md +46 -87
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/steps/step-01-init.md +10 -0
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/ux-designer-agent.md +30 -60
- package/src/bmad-plus/packs/pack-dev-studio/categories/planning/validate-prd.md +57 -27
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/advanced-elicitation.md +47 -138
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/adversarial-review.md +48 -34
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/bmad-help.md +51 -68
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/brainstorming.md +46 -3
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/customize.md +68 -109
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/distillator.md +53 -174
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/edge-case-hunter.md +39 -53
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-prose.md +45 -83
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/editorial-review-structure.md +45 -176
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/index-docs.md +45 -63
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/party-mode.md +53 -124
- package/src/bmad-plus/packs/pack-dev-studio/categories/utilities/shard-doc.md +44 -100
- package/src/bmad-plus/packs/pack-dev-studio/dev-studio-orchestrator.md +56 -116
- package/src/bmad-plus/packs/pack-dev-studio/shared/architecture-decision-template.md +49 -12
- package/src/bmad-plus/packs/pack-dev-studio/shared/bwml-spec.md +51 -328
- package/src/bmad-plus/packs/pack-dev-studio/shared/catalog.json +489 -0
- package/src/bmad-plus/packs/pack-dev-studio/shared/execution.md +69 -0
- package/src/bmad-plus/packs/pack-dev-studio/shared/module-help.csv +39 -32
- package/src/bmad-plus/packs/pack-dev-studio/upstream-sync.yaml +85 -14
- package/src/bmad-plus/packs/pack-memory/README.md +6 -0
- package/src/bmad-plus/packs/pack-memory/memory-orchestrator.md +12 -5
- package/src/bmad-plus/packs/pack-seo/SKILL.md +27 -1
- package/src/bmad-plus/packs/pack-seo/scripts/seo_apis.py +8 -8
- package/src/bmad-plus/packs/pack-seo/scripts/seo_fetch.py +1 -2
- package/src/bmad-plus/packs/pack-seo/scripts/seo_report.py +0 -1
- package/src/bmad-plus/packs/pack-seo/seo-chief.md +16 -1
- package/src/bmad-plus/packs/pack-seo/seo-judge.md +12 -0
- package/src/bmad-plus/packs/pack-seo/seo-scout.md +12 -0
- package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +4 -4
- package/src/bmad-plus/skills/bmad-plus-sync/SKILL.md +5 -3
- package/src/bmad-plus/skills/dev-studio/SKILL.md +19 -0
- package/tools/bmad-plus-npx.js +4 -2
- package/tools/build/adapters.config.js +60 -51
- package/tools/build/check-counts.js +52 -54
- package/tools/build/check-install-contract.js +450 -0
- package/tools/build/generate-adapters.js +252 -56
- package/tools/build/generate.js +364 -14
- package/tools/build/generated-adapters/.codex/AGENTS.md +20 -7
- package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +20 -7
- package/tools/build/generated-adapters/.opencode/AGENTS.md +20 -7
- package/tools/build/generated-adapters/AGENTS.md +20 -7
- package/tools/build/generated-adapters/CLAUDE.md +20 -7
- package/tools/build/generated-adapters/CONVENTIONS.md +20 -7
- package/tools/build/generated-adapters/GEMINI.md +20 -7
- package/tools/build/module.template.yaml +82 -0
- package/tools/build/pack-delivery.js +78 -0
- package/tools/cli/bmad-plus-cli.js +16 -1
- package/tools/cli/commands/doctor.js +49 -217
- package/tools/cli/commands/install.js +109 -164
- package/tools/cli/commands/studio.js +68 -0
- package/tools/cli/commands/uninstall.js +173 -65
- package/tools/cli/commands/update-check.js +31 -0
- package/tools/cli/commands/update-policy.js +39 -0
- package/tools/cli/commands/update.js +102 -113
- package/tools/cli/i18n.js +60 -0
- package/tools/cli/lib/ide-config.js +4 -261
- package/tools/cli/lib/install-manifest.js +17 -0
- package/tools/cli/lib/installation-health.js +360 -0
- package/tools/cli/lib/installed-adapters.js +89 -0
- package/tools/cli/lib/npm-runner.js +177 -0
- package/tools/cli/lib/pack-copy.js +62 -66
- package/tools/cli/lib/packs.js +546 -3
- package/tools/cli/lib/python-health.js +233 -0
- package/tools/cli/lib/python-provision.js +2 -2
- package/tools/cli/lib/studio.js +310 -0
- package/tools/cli/lib/update-check.js +153 -0
- package/tools/cli/lib/update-dispatch.js +182 -0
- package/tools/cli/lib/update-policy.js +90 -0
- package/tools/cli/lib/update-transaction.js +334 -0
- package/tools/release/publication-content.js +901 -0
package/tools/cli/i18n.js
CHANGED
|
@@ -58,6 +58,12 @@ const LANGUAGES = {
|
|
|
58
58
|
guide_credits: '✨ BMAD+ is created by Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
59
59
|
// Uninstall
|
|
60
60
|
uninstall_confirm: 'Remove BMAD+ from this project?',
|
|
61
|
+
noninteractive_requires_yes: (command) => "This command requires a terminal. Run `npx bmad-plus " + command + " --yes` to proceed without prompts.",
|
|
62
|
+
manifest_invalid: (error) => "Install manifest is unreadable or corrupt: " + error + "",
|
|
63
|
+
manifest_repair: 'Check _bmad/.bmad-plus-install.json and repair it before retrying.',
|
|
64
|
+
uninstall_not_installed: 'BMAD+ is not installed in this directory.',
|
|
65
|
+
uninstall_aborted: (error) => "Uninstall aborted: " + error + "",
|
|
66
|
+
uninstall_preserved: 'Project memory, settings, and unknown or modified files have been preserved.',
|
|
61
67
|
uninstall_removing: 'Removing...',
|
|
62
68
|
uninstall_done: (n) => `✅ BMAD+ removed (${n} items)`,
|
|
63
69
|
uninstall_output_kept: '📁 _bmad-output/ kept (contains files)',
|
|
@@ -139,6 +145,12 @@ const LANGUAGES = {
|
|
|
139
145
|
guide_ready: 'BMAD+ est prêt ! Parle à Atlas pour commencer 🚀',
|
|
140
146
|
guide_credits: '✨ BMAD+ est créé par Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
141
147
|
uninstall_confirm: 'Supprimer BMAD+ de ce projet ?',
|
|
148
|
+
noninteractive_requires_yes: (command) => "Cette commande nécessite un terminal. Lancez `npx bmad-plus " + command + " --yes` pour continuer sans invite.",
|
|
149
|
+
manifest_invalid: (error) => "Le manifeste d’installation est illisible ou corrompu : " + error + "",
|
|
150
|
+
manifest_repair: 'Vérifiez _bmad/.bmad-plus-install.json et réparez-le avant de réessayer.',
|
|
151
|
+
uninstall_not_installed: 'BMAD+ n’est pas installé dans ce répertoire.',
|
|
152
|
+
uninstall_aborted: (error) => "Désinstallation interrompue : " + error + "",
|
|
153
|
+
uninstall_preserved: 'La mémoire, les réglages et les fichiers inconnus ou modifiés ont été conservés.',
|
|
142
154
|
uninstall_removing: 'Suppression...',
|
|
143
155
|
uninstall_done: (n) => `✅ BMAD+ supprimé (${n} éléments)`,
|
|
144
156
|
uninstall_output_kept: '📁 _bmad-output/ conservé (contient des fichiers)',
|
|
@@ -219,6 +231,12 @@ const LANGUAGES = {
|
|
|
219
231
|
guide_ready: '¡BMAD+ está listo! Habla con Atlas para comenzar 🚀',
|
|
220
232
|
guide_credits: '✨ BMAD+ es creado por Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
221
233
|
uninstall_confirm: '¿Eliminar BMAD+ de este proyecto?',
|
|
234
|
+
noninteractive_requires_yes: (command) => "Este comando requiere una terminal. Ejecute `npx bmad-plus " + command + " --yes` para continuar sin preguntas.",
|
|
235
|
+
manifest_invalid: (error) => "El manifiesto de instalación no se puede leer o está dañado: " + error + "",
|
|
236
|
+
manifest_repair: 'Revise _bmad/.bmad-plus-install.json y repárelo antes de reintentar.',
|
|
237
|
+
uninstall_not_installed: 'BMAD+ no está instalado en este directorio.',
|
|
238
|
+
uninstall_aborted: (error) => "Desinstalación interrumpida: " + error + "",
|
|
239
|
+
uninstall_preserved: 'Se han conservado la memoria, los ajustes y los archivos desconocidos o modificados.',
|
|
222
240
|
uninstall_removing: 'Eliminando...',
|
|
223
241
|
uninstall_done: (n) => `✅ BMAD+ eliminado (${n} elementos)`,
|
|
224
242
|
uninstall_output_kept: '📁 _bmad-output/ conservado (contiene archivos)',
|
|
@@ -299,6 +317,12 @@ const LANGUAGES = {
|
|
|
299
317
|
guide_ready: 'BMAD+ ist bereit! Sprich mit Atlas um loszulegen 🚀',
|
|
300
318
|
guide_credits: '✨ BMAD+ wurde erstellt von Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
301
319
|
uninstall_confirm: 'BMAD+ aus diesem Projekt entfernen?',
|
|
320
|
+
noninteractive_requires_yes: (command) => "Dieser Befehl benötigt ein Terminal. Führen Sie `npx bmad-plus " + command + " --yes` aus, um ohne Rückfragen fortzufahren.",
|
|
321
|
+
manifest_invalid: (error) => "Das Installationsmanifest ist unlesbar oder beschädigt: " + error + "",
|
|
322
|
+
manifest_repair: 'Prüfen und reparieren Sie _bmad/.bmad-plus-install.json vor einem erneuten Versuch.',
|
|
323
|
+
uninstall_not_installed: 'BMAD+ ist in diesem Verzeichnis nicht installiert.',
|
|
324
|
+
uninstall_aborted: (error) => "Deinstallation abgebrochen: " + error + "",
|
|
325
|
+
uninstall_preserved: 'Projektspeicher, Einstellungen sowie unbekannte oder geänderte Dateien wurden erhalten.',
|
|
302
326
|
uninstall_removing: 'Entfernen...',
|
|
303
327
|
uninstall_done: (n) => `✅ BMAD+ entfernt (${n} Elemente)`,
|
|
304
328
|
uninstall_output_kept: '📁 _bmad-output/ beibehalten (enthält Dateien)',
|
|
@@ -379,6 +403,12 @@ const LANGUAGES = {
|
|
|
379
403
|
guide_ready: 'BMAD+ está pronto! Fale com Atlas para começar 🚀',
|
|
380
404
|
guide_credits: '✨ BMAD+ foi criado por Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
381
405
|
uninstall_confirm: 'Remover BMAD+ deste projeto?',
|
|
406
|
+
noninteractive_requires_yes: (command) => "Este comando exige um terminal. Execute `npx bmad-plus " + command + " --yes` para continuar sem perguntas.",
|
|
407
|
+
manifest_invalid: (error) => "O manifesto de instalação está ilegível ou corrompido: " + error + "",
|
|
408
|
+
manifest_repair: 'Verifique e repare _bmad/.bmad-plus-install.json antes de tentar novamente.',
|
|
409
|
+
uninstall_not_installed: 'BMAD+ não está instalado neste diretório.',
|
|
410
|
+
uninstall_aborted: (error) => "Desinstalação interrompida: " + error + "",
|
|
411
|
+
uninstall_preserved: 'A memória, as configurações e os arquivos desconhecidos ou modificados foram preservados.',
|
|
382
412
|
uninstall_removing: 'Removendo...',
|
|
383
413
|
uninstall_done: (n) => `✅ BMAD+ removido (${n} itens)`,
|
|
384
414
|
uninstall_output_kept: '📁 _bmad-output/ mantido (contém arquivos)',
|
|
@@ -459,6 +489,12 @@ const LANGUAGES = {
|
|
|
459
489
|
guide_ready: 'BMAD+ готов! Поговорите с Atlas чтобы начать 🚀',
|
|
460
490
|
guide_credits: '✨ BMAD+ создан Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
461
491
|
uninstall_confirm: 'Удалить BMAD+ из этого проекта?',
|
|
492
|
+
noninteractive_requires_yes: (command) => "Для этой команды нужен терминал. Запустите `npx bmad-plus " + command + " --yes`, чтобы продолжить без запросов.",
|
|
493
|
+
manifest_invalid: (error) => "Манифест установки недоступен или повреждён: " + error + "",
|
|
494
|
+
manifest_repair: 'Проверьте и исправьте _bmad/.bmad-plus-install.json перед повторной попыткой.',
|
|
495
|
+
uninstall_not_installed: 'BMAD+ не установлен в этом каталоге.',
|
|
496
|
+
uninstall_aborted: (error) => "Удаление прервано: " + error + "",
|
|
497
|
+
uninstall_preserved: 'Память проекта, настройки и неизвестные или изменённые файлы сохранены.',
|
|
462
498
|
uninstall_removing: 'Удаление...',
|
|
463
499
|
uninstall_done: (n) => `✅ BMAD+ удалён (${n} элементов)`,
|
|
464
500
|
uninstall_output_kept: '📁 _bmad-output/ сохранён (содержит файлы)',
|
|
@@ -539,6 +575,12 @@ const LANGUAGES = {
|
|
|
539
575
|
guide_ready: 'BMAD+ 已就绪!与 Atlas 交谈开始 🚀',
|
|
540
576
|
guide_credits: '✨ BMAD+ 由 Laurent Rochetta 创建 — github.com/lrochetta/BMAD-PLUS ✨',
|
|
541
577
|
uninstall_confirm: '从此项目中删除 BMAD+?',
|
|
578
|
+
noninteractive_requires_yes: (command) => "此命令需要终端。运行 `npx bmad-plus " + command + " --yes` 可跳过提示并继续。",
|
|
579
|
+
manifest_invalid: (error) => "安装清单无法读取或已损坏:" + error + "",
|
|
580
|
+
manifest_repair: '请检查并修复 _bmad/.bmad-plus-install.json 后重试。',
|
|
581
|
+
uninstall_not_installed: '此目录未安装 BMAD+。',
|
|
582
|
+
uninstall_aborted: (error) => "卸载已中止:" + error + "",
|
|
583
|
+
uninstall_preserved: '项目记忆、设置以及未知或修改过的文件已保留。',
|
|
542
584
|
uninstall_removing: '删除中...',
|
|
543
585
|
uninstall_done: (n) => `✅ BMAD+ 已删除(${n} 项)`,
|
|
544
586
|
uninstall_output_kept: '📁 _bmad-output/ 已保留(包含文件)',
|
|
@@ -619,6 +661,12 @@ const LANGUAGES = {
|
|
|
619
661
|
guide_ready: '!BMAD+ מוכן! דבר עם Atlas כדי להתחיל 🚀',
|
|
620
662
|
guide_credits: '✨ BMAD+ נוצר על ידי Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
621
663
|
uninstall_confirm: 'להסיר את BMAD+ מהפרויקט הזה?',
|
|
664
|
+
noninteractive_requires_yes: (command) => "פקודה זו דורשת מסוף. להרצה ללא שאלות, הפעילו `npx bmad-plus " + command + " --yes`.",
|
|
665
|
+
manifest_invalid: (error) => "קובץ פרטי ההתקנה אינו קריא או פגום: " + error + "",
|
|
666
|
+
manifest_repair: 'בדקו ותקנו את _bmad/.bmad-plus-install.json לפני ניסיון נוסף.',
|
|
667
|
+
uninstall_not_installed: 'BMAD+ אינו מותקן בתיקייה זו.',
|
|
668
|
+
uninstall_aborted: (error) => "ההסרה הופסקה: " + error + "",
|
|
669
|
+
uninstall_preserved: 'זיכרון הפרויקט, ההגדרות וקבצים לא מוכרים או ששונו נשמרו.',
|
|
622
670
|
uninstall_removing: 'מסיר...',
|
|
623
671
|
uninstall_done: (n) => `✅ BMAD+ הוסר (${n} פריטים)`,
|
|
624
672
|
uninstall_output_kept: '📁 _bmad-output/ נשמר (מכיל קבצים)',
|
|
@@ -699,6 +747,12 @@ const LANGUAGES = {
|
|
|
699
747
|
guide_ready: 'BMAD+ 準備完了!Atlasに話しかけて始めましょう 🚀',
|
|
700
748
|
guide_credits: '✨ BMAD+ は Laurent Rochetta によって作成されました — github.com/lrochetta/BMAD-PLUS ✨',
|
|
701
749
|
uninstall_confirm: 'このプロジェクトからBMAD+を削除しますか?',
|
|
750
|
+
noninteractive_requires_yes: (command) => "このコマンドには端末が必要です。確認なしで続行するには `npx bmad-plus " + command + " --yes` を実行してください。",
|
|
751
|
+
manifest_invalid: (error) => "インストール情報を読み込めないか破損しています:" + error + "",
|
|
752
|
+
manifest_repair: '_bmad/.bmad-plus-install.json を確認・修復してから再試行してください。',
|
|
753
|
+
uninstall_not_installed: 'このディレクトリには BMAD+ がインストールされていません。',
|
|
754
|
+
uninstall_aborted: (error) => "アンインストールを中止しました:" + error + "",
|
|
755
|
+
uninstall_preserved: 'プロジェクトの記憶、設定、不明なファイルや変更されたファイルは保持されました。',
|
|
702
756
|
uninstall_removing: '削除中...',
|
|
703
757
|
uninstall_done: (n) => `✅ BMAD+を削除しました(${n}項目)`,
|
|
704
758
|
uninstall_output_kept: '📁 _bmad-output/ は保持されました(ファイルが含まれています)',
|
|
@@ -779,6 +833,12 @@ const LANGUAGES = {
|
|
|
779
833
|
guide_ready: 'BMAD+ è pronto! Parla con Atlas per iniziare 🚀',
|
|
780
834
|
guide_credits: '✨ BMAD+ è creato da Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
|
|
781
835
|
uninstall_confirm: 'Rimuovere BMAD+ da questo progetto?',
|
|
836
|
+
noninteractive_requires_yes: (command) => "Questo comando richiede un terminale. Eseguire `npx bmad-plus " + command + " --yes` per continuare senza domande.",
|
|
837
|
+
manifest_invalid: (error) => "Il manifesto di installazione è illeggibile o danneggiato: " + error + "",
|
|
838
|
+
manifest_repair: 'Controllare e riparare _bmad/.bmad-plus-install.json prima di riprovare.',
|
|
839
|
+
uninstall_not_installed: 'BMAD+ non è installato in questa directory.',
|
|
840
|
+
uninstall_aborted: (error) => "Disinstallazione interrotta: " + error + "",
|
|
841
|
+
uninstall_preserved: 'La memoria, le impostazioni e i file sconosciuti o modificati sono stati conservati.',
|
|
782
842
|
uninstall_removing: 'Rimozione...',
|
|
783
843
|
uninstall_done: (n) => `✅ BMAD+ rimosso (${n} elementi)`,
|
|
784
844
|
uninstall_output_kept: '📁 _bmad-output/ conservato (contiene file)',
|
|
@@ -1,267 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Extracted from install.js for modularity.
|
|
4
|
-
* Generates CLAUDE.md, GEMINI.md, AGENTS.md content with pack-aware agent filtering.
|
|
5
|
-
*
|
|
2
|
+
* Compatibility entry for IDE metadata. Rendering lives in the registry generator.
|
|
6
3
|
* Author: Laurent Rochetta
|
|
7
4
|
*/
|
|
8
|
-
|
|
9
|
-
// ── IDE Configurations ──
|
|
10
|
-
|
|
11
|
-
const IDE_CONFIGS = {
|
|
12
|
-
'claude-code': {
|
|
13
|
-
name: 'Claude Code',
|
|
14
|
-
detect: ['.claude'],
|
|
15
|
-
configFile: 'CLAUDE.md',
|
|
16
|
-
},
|
|
17
|
-
'gemini-cli': {
|
|
18
|
-
name: 'Gemini CLI',
|
|
19
|
-
detect: ['.gemini'],
|
|
20
|
-
configFile: 'GEMINI.md',
|
|
21
|
-
},
|
|
22
|
-
'codex-cli': {
|
|
23
|
-
name: 'Codex CLI / OpenCode',
|
|
24
|
-
detect: ['.codex', '.opencode'],
|
|
25
|
-
configFile: 'AGENTS.md',
|
|
26
|
-
},
|
|
27
|
-
'antigravity': {
|
|
28
|
-
name: 'Antigravity',
|
|
29
|
-
detect: ['.gemini/antigravity'],
|
|
30
|
-
configFile: 'GEMINI.md',
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// Shield ships 27 compliance agents (registry.yaml `shield.categories`) AND 11
|
|
35
|
-
// workflows (`shield.workflows`) — two separate dimensions that must never be
|
|
36
|
-
// summed into a single "agents" figure. Summing them is what produced the retired
|
|
37
|
-
// "38" over-count that shipped into every generated user config. Declared once so
|
|
38
|
-
// the two call sites below cannot drift apart; gated by tools/build/check-counts.js.
|
|
39
|
-
const SHIELD_AGENT_LINE =
|
|
40
|
-
'- **Shield** (GRC) — 27 compliance agents + 11 workflows (GDPR, ISO 27001, SOC 2, HIPAA, EU AI Act, DORA, NIS2...)';
|
|
41
|
-
|
|
42
|
-
// All 14 BMAD+ agents — always included in templates
|
|
43
|
-
const AGENT_LIST = [
|
|
44
|
-
'- **Atlas** (Strategist) — Business analysis + Product management',
|
|
45
|
-
'- **Forge** (Architect-Dev) — Architecture + Development + Documentation',
|
|
46
|
-
'- **Sentinel** (Quality) — QA + UX review',
|
|
47
|
-
'- **Nexus** (Orchestrator) — Sprint management + Autopilot + Parallel execution',
|
|
48
|
-
'- **Shadow** (OSINT) — Investigation + Scraping + Psychoprofiling',
|
|
49
|
-
SHIELD_AGENT_LINE,
|
|
50
|
-
'- **Miriam** (מרים) — Business Analyst — Strategic analysis, research, product briefs',
|
|
51
|
-
'- **Huldah** (חולדה) — Technical Writer — Documentation, diagrams, editorial review',
|
|
52
|
-
'- **Yosef** (יוסף) — Product Manager — PRD, requirements, feature prioritization',
|
|
53
|
-
'- **Rachel** (רחל) — UX Designer — User experience, wireframes, empathy mapping',
|
|
54
|
-
'- **Bezalel** (בצלאל) — System Architect — Architecture, ADRs, epics & stories',
|
|
55
|
-
'- **Oholiab** (אהליאב) — Senior Engineer — TDD, sprint, code review, implementation',
|
|
56
|
-
'- **Zecher** (זכר) — Memory Archivist — Consolidation, project scanning, context recall',
|
|
57
|
-
'- **Maker** (Creator) — Custom agent builder — Create new agents from description',
|
|
58
|
-
];
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Filter agents based on installed packs.
|
|
62
|
-
* Core agents are always included; others depend on pack selection.
|
|
63
|
-
*
|
|
64
|
-
* @param {string[]} packs - List of installed pack IDs
|
|
65
|
-
* @returns {string[]} Agent description lines
|
|
66
|
-
*/
|
|
67
|
-
function getAgentsByPacks(packs) {
|
|
68
|
-
const agents = [
|
|
69
|
-
'- **Atlas** (Strategist) — Business analysis + Product management',
|
|
70
|
-
'- **Forge** (Architect-Dev) — Architecture + Development + Documentation',
|
|
71
|
-
'- **Sentinel** (Quality) — QA + UX review',
|
|
72
|
-
'- **Nexus** (Orchestrator) — Sprint management + Autopilot + Parallel execution',
|
|
73
|
-
];
|
|
74
|
-
|
|
75
|
-
if (packs.includes('osint')) {
|
|
76
|
-
agents.push('- **Shadow** (OSINT) — Investigation + Scraping + Psychoprofiling');
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (packs.includes('shield')) {
|
|
80
|
-
agents.push(SHIELD_AGENT_LINE);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (packs.includes('maker')) {
|
|
84
|
-
agents.push('- **Maker** (Creator) — Custom agent builder — Create new agents from description');
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (packs.includes('dev-studio')) {
|
|
88
|
-
agents.push('- **Miriam** (מרים) — Business Analyst — Strategic analysis, research, product briefs');
|
|
89
|
-
agents.push('- **Huldah** (חולדה) — Technical Writer — Documentation, diagrams, editorial review');
|
|
90
|
-
agents.push('- **Yosef** (יוסף) — Product Manager — PRD, requirements, feature prioritization');
|
|
91
|
-
agents.push('- **Rachel** (רחל) — UX Designer — User experience, wireframes, empathy mapping');
|
|
92
|
-
agents.push('- **Bezalel** (בצלאל) — System Architecture — Architecture, ADRs, epics & stories');
|
|
93
|
-
agents.push('- **Oholiab** (אהליאב) — Senior Engineer — TDD, sprint, code review, implementation');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (packs.includes('memory')) {
|
|
97
|
-
agents.push('- **Zecher** (זכר) — Memory Archivist — Consolidation, project scanning, context recall');
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return agents;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Build the Memory Protocol section if the memory pack is installed.
|
|
105
|
-
*
|
|
106
|
-
* @param {string[]} packs - List of installed pack IDs
|
|
107
|
-
* @returns {string} Memory section markdown (empty string if no memory pack)
|
|
108
|
-
*/
|
|
109
|
-
function getMemorySection(packs) {
|
|
110
|
-
if (!packs.includes('memory')) return '';
|
|
111
|
-
return [
|
|
112
|
-
'',
|
|
113
|
-
'## Memory Protocol (Karpathy Guardrails)',
|
|
114
|
-
'',
|
|
115
|
-
'Agents MUST follow these behavioral principles:',
|
|
116
|
-
'',
|
|
117
|
-
'### G1 — Think Before Coding',
|
|
118
|
-
'- State assumptions explicitly. If uncertain, ask.',
|
|
119
|
-
'- Check `.agents/memory/decisions.md` for prior decisions before re-deciding.',
|
|
120
|
-
'',
|
|
121
|
-
'### G2 — Simplicity First',
|
|
122
|
-
'- Minimum code that solves the problem. Nothing speculative.',
|
|
123
|
-
'- Check `.agents/memory/patterns.md` for existing solutions.',
|
|
124
|
-
'',
|
|
125
|
-
'### G3 — Surgical Changes',
|
|
126
|
-
'- Touch only what you must. Match existing style.',
|
|
127
|
-
'- Log surprises in `.agents/memory/lessons.md`.',
|
|
128
|
-
'',
|
|
129
|
-
'### G4 — Goal-Driven Execution',
|
|
130
|
-
'- Define success criteria before implementing.',
|
|
131
|
-
'- Log non-obvious decisions in `.agents/memory/decisions.md`.',
|
|
132
|
-
'',
|
|
133
|
-
'### Memory Files',
|
|
134
|
-
'- `.agents/memory/decisions.md` — Read at session start, write when making decisions',
|
|
135
|
-
'- `.agents/memory/lessons.md` — Write when something unexpected happens',
|
|
136
|
-
'- `.agents/memory/patterns.md` — Write when a reusable pattern is validated',
|
|
137
|
-
'- `.agents/memory/context.md` — Update at session end with project state',
|
|
138
|
-
].join('\n');
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Generate IDE config content with pack-aware agent filtering.
|
|
143
|
-
*
|
|
144
|
-
* @param {string} userName - The user's display name
|
|
145
|
-
* @param {string} language - User-facing communication language
|
|
146
|
-
* @param {string[]} packs - List of installed pack IDs
|
|
147
|
-
* @returns {string} Complete Markdown template
|
|
148
|
-
*/
|
|
149
|
-
function generateIDEConfig(userName, language, packs) {
|
|
150
|
-
const agents = getAgentsByPacks(packs);
|
|
151
|
-
const memorySection = getMemorySection(packs);
|
|
152
|
-
|
|
153
|
-
return `# BMAD+ — AI Agent Configuration
|
|
154
|
-
|
|
155
|
-
## Project Context
|
|
156
|
-
This project uses BMAD+, an augmented AI-driven development framework.
|
|
157
|
-
Based on BMAD-METHOD v6.6.0 with multi-role agents, autopilot mode, and parallel execution.
|
|
158
|
-
|
|
159
|
-
## Agents
|
|
160
|
-
To activate an agent, say its name or persona:
|
|
161
|
-
${agents.join('\n')}
|
|
162
|
-
|
|
163
|
-
## Skills
|
|
164
|
-
- Load skills from \`.agents/skills/\`
|
|
165
|
-
- Each agent has a SKILL.md with capabilities, activation protocol, and role-switching rules
|
|
166
|
-
- Auto-activation triggers: \`.agents/data/role-triggers.yaml\`
|
|
167
|
-
|
|
168
|
-
## Key Commands
|
|
169
|
-
- \`bmad-help\` — Show all available agents and skills
|
|
170
|
-
- \`autopilot\` — Launch Nexus in full pipeline mode
|
|
171
|
-
- \`parallel\` — Enable parallel multi-agent execution
|
|
172
|
-
|
|
173
|
-
## Communication
|
|
174
|
-
- User name: ${userName}
|
|
175
|
-
- Default language: ${language} for user-facing content, English for code and technical docs.
|
|
176
|
-
${memorySection}`;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Generate a complete CLAUDE.md / GEMINI.md / AGENTS.md config file
|
|
181
|
-
* (all agents, no filtering — backward compatible)
|
|
182
|
-
*
|
|
183
|
-
* @param {string} userName - The user's display name
|
|
184
|
-
* @param {string} language - User-facing communication language
|
|
185
|
-
* @returns {string} Complete Markdown template
|
|
186
|
-
*/
|
|
187
|
-
function generateBaseConfig(userName, language) {
|
|
188
|
-
return `# BMAD+ — AI Agent Configuration
|
|
189
|
-
|
|
190
|
-
## Project Context
|
|
191
|
-
This project uses BMAD+, an augmented AI-driven development framework.
|
|
192
|
-
Based on BMAD-METHOD v6.6.0 with multi-role agents, autopilot mode, and parallel execution.
|
|
193
|
-
|
|
194
|
-
## Agents
|
|
195
|
-
To activate an agent, say its name or persona:
|
|
196
|
-
${AGENT_LIST.join('\n')}
|
|
197
|
-
|
|
198
|
-
## Skills
|
|
199
|
-
- Load skills from \`.agents/skills/\`
|
|
200
|
-
- Each agent has a SKILL.md with capabilities, activation protocol, and role-switching rules
|
|
201
|
-
- Auto-activation triggers: \`.agents/data/role-triggers.yaml\`
|
|
202
|
-
|
|
203
|
-
## Key Commands
|
|
204
|
-
- \`bmad-help\` — Show all available agents and skills
|
|
205
|
-
- \`autopilot\` — Launch Nexus in full pipeline mode
|
|
206
|
-
- \`parallel\` — Enable parallel multi-agent execution
|
|
207
|
-
|
|
208
|
-
## Communication
|
|
209
|
-
- User name: ${userName}
|
|
210
|
-
- Default language: ${language} for user-facing content, English for code and technical docs.
|
|
211
|
-
|
|
212
|
-
## Memory Protocol (Karpathy Guardrails)
|
|
213
|
-
|
|
214
|
-
Agents MUST follow these behavioral principles:
|
|
215
|
-
|
|
216
|
-
### G1 — Think Before Coding
|
|
217
|
-
- State assumptions explicitly. If uncertain, ask.
|
|
218
|
-
- Check \`.agents/memory/decisions.md\` for prior decisions before re-deciding.
|
|
219
|
-
|
|
220
|
-
### G2 — Simplicity First
|
|
221
|
-
- Minimum code that solves the problem. Nothing speculative.
|
|
222
|
-
- Check \`.agents/memory/patterns.md\` for existing solutions.
|
|
223
|
-
|
|
224
|
-
### G3 — Surgical Changes
|
|
225
|
-
- Touch only what you must. Match existing style.
|
|
226
|
-
- Log surprises in \`.agents/memory/lessons.md\`.
|
|
227
|
-
|
|
228
|
-
### G4 — Goal-Driven Execution
|
|
229
|
-
- Define success criteria before implementing.
|
|
230
|
-
- Log non-obvious decisions in \`.agents/memory/decisions.md\`.
|
|
231
|
-
|
|
232
|
-
### Memory Files
|
|
233
|
-
- \`.agents/memory/decisions.md\` — Read at session start, write when making decisions
|
|
234
|
-
- \`.agents/memory/lessons.md\` — Write when something unexpected happens
|
|
235
|
-
- \`.agents/memory/patterns.md\` — Write when a reusable pattern is validated
|
|
236
|
-
- \`.agents/memory/context.md\` — Update at session end with project state`;
|
|
237
|
-
}
|
|
5
|
+
const adapters = require('../../build/generate-adapters');
|
|
238
6
|
|
|
239
7
|
module.exports = {
|
|
240
|
-
IDE_CONFIGS,
|
|
241
|
-
|
|
242
|
-
getAgentsByPacks,
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* Generate CLAUDE.md config for Claude Code
|
|
246
|
-
* @param {string} userName
|
|
247
|
-
* @param {string} language
|
|
248
|
-
* @returns {string}
|
|
249
|
-
*/
|
|
250
|
-
generateClaudeMD: generateBaseConfig,
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* Generate GEMINI.md config for Gemini CLI / Antigravity
|
|
254
|
-
* @param {string} userName
|
|
255
|
-
* @param {string} language
|
|
256
|
-
* @returns {string}
|
|
257
|
-
*/
|
|
258
|
-
generateGeminiMD: generateBaseConfig,
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Generate AGENTS.md config for Codex CLI / OpenCode
|
|
262
|
-
* @param {string} userName
|
|
263
|
-
* @param {string} language
|
|
264
|
-
* @returns {string}
|
|
265
|
-
*/
|
|
266
|
-
generateAgentsMD: generateBaseConfig,
|
|
8
|
+
get IDE_CONFIGS() { return adapters.IDE_CONFIGS; },
|
|
9
|
+
buildIDEConfigs: adapters.buildIDEConfigs,
|
|
267
10
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Read the manifest fields used by maintenance commands without unsafe coercion. */
|
|
2
|
+
const fs = require('node:fs');
|
|
3
|
+
|
|
4
|
+
function readInstallManifest(manifestPath) {
|
|
5
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
|
|
6
|
+
if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest) ||
|
|
7
|
+
typeof manifest.version !== 'string' || !manifest.version.trim() ||
|
|
8
|
+
typeof manifest.installed !== 'string' || !Number.isFinite(Date.parse(manifest.installed)) ||
|
|
9
|
+
!Array.isArray(manifest.packs) || manifest.packs.length === 0 ||
|
|
10
|
+
manifest.packs.some(pack => typeof pack !== 'string' || !/^[a-z0-9-]+$/.test(pack)) ||
|
|
11
|
+
(manifest.uiLanguage !== undefined && typeof manifest.uiLanguage !== 'string')) {
|
|
12
|
+
throw new Error('Expected version, installed date, and a nonempty array of pack IDs.');
|
|
13
|
+
}
|
|
14
|
+
return manifest;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
module.exports = { readInstallManifest };
|