bmad-plus 0.16.0 โ†’ 0.17.1

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 (66) hide show
  1. package/CHANGELOG.md +114 -29
  2. package/README.md +45 -27
  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 +134 -537
  8. package/readme-international/README.es.md +136 -556
  9. package/readme-international/README.fr.md +135 -553
  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 +18 -4
  19. package/src/bmad-plus/skills/bmad-plus-uat/template/page.html +95 -19
  20. package/src/bmad-plus/skills/bmad-plus-uat/template/strings.json +90 -10
  21. package/src/bmad-plus/skills/bmad-plus-uat/templates/README.md +63 -0
  22. package/src/bmad-plus/skills/bmad-plus-uat/templates/example-uat-spec.json +95 -0
  23. package/src/bmad-plus/skills/bmad-plus-uat/templates/uat-release-gate.mjs +127 -0
  24. package/src/bmad-plus/skills/bmad-plus-uat/templates/uat-spec-present.mjs +77 -0
  25. package/tools/build/adapters.config.js +1 -1
  26. package/tools/build/generate-adapters.js +186 -60
  27. package/tools/build/generate.js +49 -13
  28. package/tools/cli/bmad-plus-cli.js +3 -6
  29. package/tools/cli/commands/autoconfig.js +66 -24
  30. package/tools/cli/commands/install.js +620 -356
  31. package/tools/cli/commands/memory.js +40 -13
  32. package/tools/cli/commands/scan.js +94 -30
  33. package/tools/cli/commands/uat.js +21 -5
  34. package/tools/cli/commands/uninstall.js +65 -16
  35. package/tools/cli/commands/update-check.js +8 -3
  36. package/tools/cli/commands/update-policy.js +14 -5
  37. package/tools/cli/commands/update.js +89 -20
  38. package/tools/cli/i18n.js +128 -66
  39. package/tools/cli/lib/ide-config.js +3 -1
  40. package/tools/cli/lib/install-manifest.js +13 -6
  41. package/tools/cli/lib/installation-health.js +33 -1
  42. package/tools/cli/lib/installed-adapters.js +29 -6
  43. package/tools/cli/lib/memory-init.js +19 -4
  44. package/tools/cli/lib/packs.js +17 -28
  45. package/tools/cli/lib/path-hash.js +5 -1
  46. package/tools/cli/lib/python-provision.js +51 -12
  47. package/tools/cli/lib/stack-detect.js +51 -25
  48. package/tools/cli/lib/uat.js +18 -0
  49. package/tools/cli/lib/update-check.js +132 -34
  50. package/tools/cli/lib/update-dispatch.js +2 -2
  51. package/tools/cli/lib/update-policy.js +57 -19
  52. package/tools/cli/lib/update-transaction.js +439 -85
  53. package/tools/build/README.md +0 -78
  54. package/tools/build/check-counts.js +0 -626
  55. package/tools/build/check-install-contract.js +0 -648
  56. package/tools/build/generated-adapters/.codex/AGENTS.md +0 -134
  57. package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +0 -139
  58. package/tools/build/generated-adapters/.opencode/AGENTS.md +0 -134
  59. package/tools/build/generated-adapters/AGENTS.md +0 -132
  60. package/tools/build/generated-adapters/CLAUDE.md +0 -135
  61. package/tools/build/generated-adapters/CONVENTIONS.md +0 -134
  62. package/tools/build/generated-adapters/GEMINI.md +0 -139
  63. package/tools/build/generated-adapters/README.md +0 -79
  64. package/tools/maintain/upstream-candidate.js +0 -456
  65. package/tools/release/publication-content.js +0 -903
  66. package/tools/release/supply-chain.js +0 -282
@@ -54,19 +54,29 @@ module.exports = {
54
54
  // The dispatcher resolves the target package; this local package may be older.
55
55
  if (options.latest) {
56
56
  const result = await require('../lib/update-dispatch').runLatestUpdate({
57
- projectDir, auto: Boolean(options.auto), yes: Boolean(options.yes),
57
+ projectDir,
58
+ auto: Boolean(options.auto),
59
+ yes: Boolean(options.yes),
58
60
  });
59
61
  clack.log.info(result.reason || result.status);
60
62
  if (result.output) clack.log.info(result.output);
61
63
  if (result.targetVersion) clack.log.info('Target: v' + result.targetVersion);
62
- if (result.reloadInstructions) clack.log.info('Reload your agent instructions or start a new session.');
64
+ if (result.reloadInstructions)
65
+ clack.log.info('Reload your agent instructions or start a new session.');
63
66
  return;
64
67
  }
65
68
 
66
69
  clack.intro(pc.bgMagenta(pc.white(' BMAD+ Updater v' + version + ' ')));
67
70
  if (options.restore) {
68
71
  if (options.auto) throw new Error('Recovery requires manual approval.');
69
- if (!await confirmAction(options, 'Restore the files saved in receipt ' + options.restore + '?', options.lang)) return;
72
+ if (
73
+ !(await confirmAction(
74
+ options,
75
+ 'Restore the files saved in receipt ' + options.restore + '?',
76
+ options.lang
77
+ ))
78
+ )
79
+ return;
70
80
  const restored = restoreUpdate({ projectDir, receiptId: options.restore });
71
81
  clack.log.success('Restored BMAD+ v' + restored.restoredVersion);
72
82
  clack.log.info('Receipt: ' + restored.receiptPath);
@@ -74,46 +84,105 @@ module.exports = {
74
84
  return;
75
85
  }
76
86
 
77
- if (options.auto && !options.expectedVersion) throw new Error('Automatic update requires --expected-version.');
87
+ if (options.auto && !options.expectedVersion)
88
+ throw new Error('Automatic update requires --expected-version.');
78
89
  if (options.expectedVersion && options.expectedVersion !== version) {
79
- throw new Error('Executing package version ' + version + ' does not match expected version ' + options.expectedVersion + '.');
90
+ throw new Error(
91
+ 'Executing package version ' +
92
+ version +
93
+ ' does not match expected version ' +
94
+ options.expectedVersion +
95
+ '.'
96
+ );
80
97
  }
81
98
  const manifestPath = safeTarget(projectDir, MANIFEST);
82
- if (!fs.existsSync(manifestPath)) throw new Error('BMAD+ is not installed in this directory. Run bmad-plus install first.');
99
+ if (!fs.existsSync(manifestPath))
100
+ throw new Error('BMAD+ is not installed in this directory. Run bmad-plus install first.');
83
101
  let manifest;
84
- try { manifest = readInstallManifest(manifestPath); } catch (error) {
85
- throw new Error('Install manifest is unreadable or corrupt: ' + error.message, { cause: error });
102
+ try {
103
+ manifest = readInstallManifest(manifestPath);
104
+ } catch (error) {
105
+ throw new Error('Install manifest is unreadable or corrupt: ' + error.message, {
106
+ cause: error,
107
+ });
86
108
  }
87
- if (!isExactVersion(version) || !isExactVersion(manifest.version)) throw new Error('Update versions must be strict semantic versions.');
88
- if (semver.lt(version, manifest.version)) throw new Error('Downgrade refused: ' + manifest.version + ' -> ' + version);
109
+ if (!isExactVersion(version) || !isExactVersion(manifest.version))
110
+ throw new Error('Update versions must be strict semantic versions.');
111
+ if (semver.lt(version, manifest.version))
112
+ throw new Error('Downgrade refused: ' + manifest.version + ' -> ' + version);
89
113
  const lang = options.lang || manifest.uiLanguage || 'en';
90
114
  clack.log.info('Installed: v' + manifest.version + ' -> Executing package: v' + version);
91
115
  if (manifest.version === version) {
92
- clack.log.success('The installed version matches this executing package. Use --latest to check the registry.');
116
+ clack.log.success(
117
+ 'The installed version matches this executing package. Use --latest to check the registry.'
118
+ );
93
119
  clack.outro(pc.green('Nothing to update.'));
94
120
  return;
95
121
  }
96
122
  const plan = planUpdate({ projectDir, manifest, version, auto: Boolean(options.auto) });
97
123
  if (options.auto) {
98
124
  authorizeAuto(projectDir, version);
99
- const fresh = await require('../lib/update-check').checkForUpdate({ projectDir, runningVersion: version, refresh: true });
100
- if (fresh.source !== 'registry' || fresh.stale || !fresh.versionEligible || fresh.targetVersion !== options.expectedVersion) {
101
- throw new Error('Automatic update requires a fresh, eligible registry target matching --expected-version.');
125
+ const fresh = await require('../lib/update-check').checkForUpdate({
126
+ projectDir,
127
+ runningVersion: version,
128
+ refresh: true,
129
+ });
130
+ if (
131
+ fresh.source !== 'registry' ||
132
+ fresh.stale ||
133
+ !fresh.versionEligible ||
134
+ fresh.targetVersion !== options.expectedVersion
135
+ ) {
136
+ throw new Error(
137
+ 'Automatic update requires a fresh, eligible registry target matching --expected-version.'
138
+ );
102
139
  }
103
140
  }
104
141
 
105
- clack.log.info('Planned changes: ' + (plan.files.length - 1) + ' files; preserved conflicts: ' + plan.conflicts.length + '.');
106
- if (plan.legacy) clack.log.warn('Legacy installation: original pack files will be backed up before replacement because ownership hashes are unavailable. Review the receipt to recover local edits.');
107
- for (const conflict of plan.conflicts) clack.log.warn(conflict.file + ': preserved (' + conflict.reason + ').');
108
- if (!await confirmAction(options, 'Apply this update from v' + manifest.version + ' to v' + version + '?', lang)) return;
142
+ const removals = plan.files.filter((entry) => entry.afterHash === null).length;
143
+ clack.log.info(
144
+ 'Planned changes: ' +
145
+ (plan.files.length - 1) +
146
+ ' files (' +
147
+ removals +
148
+ ' no longer shipped, removed with backup); preserved conflicts: ' +
149
+ plan.conflicts.length +
150
+ '.'
151
+ );
152
+ if (plan.legacy)
153
+ clack.log.warn(
154
+ 'Legacy installation: original pack files will be backed up before replacement because ownership hashes are unavailable. Review the receipt to recover local edits.'
155
+ );
156
+ for (const conflict of plan.conflicts)
157
+ clack.log.warn(conflict.file + ': preserved (' + conflict.reason + ').');
158
+ if (
159
+ !(await confirmAction(
160
+ options,
161
+ 'Apply this update from v' + manifest.version + ' to v' + version + '?',
162
+ lang
163
+ ))
164
+ )
165
+ return;
109
166
 
110
167
  spinner = clack.spinner();
111
168
  spinner.start('Updating managed files...');
112
169
  const result = applyPlan(plan, { reauthorize: () => authorizeAuto(projectDir, version) });
113
- spinner.stop(result.changedFiles.length + ' files updated; ' + result.conflicts.length + ' local conflicts preserved.');
170
+ spinner.stop(
171
+ result.changedFiles.length +
172
+ ' files updated; ' +
173
+ result.conflicts.length +
174
+ ' local conflicts preserved.'
175
+ );
114
176
  spinner = null;
115
177
  clack.log.info('Receipt and backups: ' + result.receiptPath);
116
- clack.outro(pc.green('BMAD+ v' + version + (result.conflicts.length ? ' applied partially.' : ' installed.') + ' Reload your agent instructions or start a new session.'));
178
+ clack.outro(
179
+ pc.green(
180
+ 'BMAD+ v' +
181
+ version +
182
+ (result.conflicts.length ? ' applied partially.' : ' installed.') +
183
+ ' Reload your agent instructions or start a new session.'
184
+ )
185
+ );
117
186
  } catch (error) {
118
187
  if (spinner) spinner.stop('Update failed.');
119
188
  clack.log.error(error.message);
package/tools/cli/i18n.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * BMAD+ CLI โ€” Internationalization (i18n)
3
3
  * 10 languages: EN, FR, ES, DE, PT-BR, RU, ZH, HE, JA, IT
4
- *
4
+ *
5
5
  * Author: Laurent Rochetta
6
6
  */
7
7
 
@@ -21,6 +21,7 @@ const LANGUAGES = {
21
21
  selected_packs: 'Selected packs',
22
22
  enter_name: 'Your first name (agents use it to greet you)',
23
23
  comm_language: 'Communication language',
24
+ uat_environment: 'Test environment for human acceptance recipes (URL, blank if none)',
24
25
  exec_mode: 'Execution mode',
25
26
  exec_manual: 'Manual โ€” You call agents yourself',
26
27
  exec_autopilot: 'Autopilot โ€” Nexus manages the full pipeline',
@@ -58,12 +59,16 @@ const LANGUAGES = {
58
59
  guide_credits: 'โœจ BMAD+ is created by Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
59
60
  // Uninstall
60
61
  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 + "",
62
+ noninteractive_requires_yes: (command) =>
63
+ 'This command requires a terminal. Run `npx bmad-plus ' +
64
+ command +
65
+ ' --yes` to proceed without prompts.',
66
+ manifest_invalid: (error) => 'Install manifest is unreadable or corrupt: ' + error + '',
63
67
  manifest_repair: 'Check _bmad/.bmad-plus-install.json and repair it before retrying.',
64
68
  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.',
69
+ uninstall_aborted: (error) => 'Uninstall aborted: ' + error + '',
70
+ uninstall_preserved:
71
+ 'Project memory, settings, and unknown or modified files have been preserved.',
67
72
  uninstall_removing: 'Removing...',
68
73
  uninstall_done: (n) => `โœ… BMAD+ removed (${n} items)`,
69
74
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ kept (contains files)',
@@ -86,7 +91,7 @@ const LANGUAGES = {
86
91
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
87
92
  guide_memory: '๐Ÿง  Persistent Brain',
88
93
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
89
- guide_example_memory_1: '๐Ÿง  Memory: "Zecher, scan projects in D:\\DEV"',
94
+ guide_example_memory_1: '๐Ÿง  Memory: "Zecher, scan projects in ~/projects"',
90
95
  guide_example_memory_2: '๐Ÿง  Memory: "Zecher, where were we?"',
91
96
  guide_example_memory_3: '๐Ÿง  Memory: "Zecher, consolidate memory"',
92
97
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, brainstorm a productivity app"',
@@ -107,9 +112,10 @@ const LANGUAGES = {
107
112
  select_ide: 'Quels IDE utilises-tu ?',
108
113
  detected_ides: 'IDE dรฉtectรฉs',
109
114
  selected_packs: 'Packs sรฉlectionnรฉs',
110
- enter_name: 'Ton prรฉnom (les agents l\'utilisent pour te saluer)',
115
+ enter_name: "Ton prรฉnom (les agents l'utilisent pour te saluer)",
111
116
  comm_language: 'Langue de communication',
112
- exec_mode: 'Mode d\'exรฉcution',
117
+ uat_environment: 'Environnement de test pour les recettes humaines (URL, vide si aucun)',
118
+ exec_mode: "Mode d'exรฉcution",
113
119
  exec_manual: 'Manuel โ€” Tu appelles les agents toi-mรชme',
114
120
  exec_autopilot: 'Autopilot โ€” Nexus gรจre tout le pipeline',
115
121
  exec_hybrid: 'Hybride โ€” Autopilot avec checkpoints frรฉquents',
@@ -123,7 +129,7 @@ const LANGUAGES = {
123
129
  soon: 'bientรดt',
124
130
  guide_title: 'โœ… Installation terminรฉe โ€” Comment commencer',
125
131
  guide_who: '๐Ÿ’ฌ ร€ qui parler ?',
126
- guide_idea: 'Discuter d\'une idรฉe',
132
+ guide_idea: "Discuter d'une idรฉe",
127
133
  guide_prd: 'Crรฉer un PRD',
128
134
  guide_arch: 'Architecture technique',
129
135
  guide_code: 'Implรฉmenter du code',
@@ -145,12 +151,17 @@ const LANGUAGES = {
145
151
  guide_ready: 'BMAD+ est prรชt ! Parle ร  Atlas pour commencer ๐Ÿš€',
146
152
  guide_credits: 'โœจ BMAD+ est crรฉรฉ par Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
147
153
  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 + "",
154
+ noninteractive_requires_yes: (command) =>
155
+ 'Cette commande nรฉcessite un terminal. Lancez `npx bmad-plus ' +
156
+ command +
157
+ ' --yes` pour continuer sans invite.',
158
+ manifest_invalid: (error) =>
159
+ 'Le manifeste dโ€™installation est illisible ou corrompu : ' + error + '',
150
160
  manifest_repair: 'Vรฉrifiez _bmad/.bmad-plus-install.json et rรฉparez-le avant de rรฉessayer.',
151
161
  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.',
162
+ uninstall_aborted: (error) => 'Dรฉsinstallation interrompue : ' + error + '',
163
+ uninstall_preserved:
164
+ 'La mรฉmoire, les rรฉglages et les fichiers inconnus ou modifiรฉs ont รฉtรฉ conservรฉs.',
154
165
  uninstall_removing: 'Suppression...',
155
166
  uninstall_done: (n) => `โœ… BMAD+ supprimรฉ (${n} รฉlรฉments)`,
156
167
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ conservรฉ (contient des fichiers)',
@@ -163,7 +174,7 @@ const LANGUAGES = {
163
174
  guide_cli_title: 'Commandes CLI',
164
175
  guide_cli_install: 'โ€” Installer agents & skills',
165
176
  guide_cli_update: 'โ€” Mettre ร  jour (conserve la config)',
166
- guide_cli_doctor: 'โ€” Vรฉrifier l\'installation',
177
+ guide_cli_doctor: "โ€” Vรฉrifier l'installation",
167
178
  guide_cli_uninstall: 'โ€” Supprimer BMAD+ du projet',
168
179
  guide_examples_title: 'Exemples rapides',
169
180
  guide_example_seo: '๐Ÿ” SEO : "/seo audit https://example.com"',
@@ -172,7 +183,7 @@ const LANGUAGES = {
172
183
  guide_example_osint: '๐Ÿ” OSINT : "Shadow, investigate John Doe"',
173
184
  guide_memory: '๐Ÿง  Cerveau persistant',
174
185
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
175
- guide_example_memory_1: '๐Ÿง  Mรฉmoire : "Zecher, scanne les projets dans D:\\DEV"',
186
+ guide_example_memory_1: '๐Ÿง  Mรฉmoire : "Zecher, scanne les projets dans ~/projects"',
176
187
  guide_example_memory_2: '๐Ÿง  Mรฉmoire : "Zecher, oรน en รฉtions-nous ?"',
177
188
  guide_example_memory_3: '๐Ÿง  Mรฉmoire : "Zecher, consolide la mรฉmoire"',
178
189
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio : "Miriam, brainstorme une app de productivitรฉ"',
@@ -195,6 +206,7 @@ const LANGUAGES = {
195
206
  selected_packs: 'Packs seleccionados',
196
207
  enter_name: 'Tu nombre (los agentes lo usan para saludarte)',
197
208
  comm_language: 'Idioma de comunicaciรณn',
209
+ uat_environment: 'Entorno de pruebas para las recetas de aceptaciรณn (URL, vacรญo si no hay)',
198
210
  exec_mode: 'Modo de ejecuciรณn',
199
211
  exec_manual: 'Manual โ€” Tรบ llamas a los agentes',
200
212
  exec_autopilot: 'Autopilot โ€” Nexus gestiona todo el pipeline',
@@ -223,20 +235,27 @@ const LANGUAGES = {
223
235
  guide_animated: 'Sitio web animado de lujo',
224
236
  guide_shield: '\ud83d\udee1\ufe0f Cumplimiento GRC',
225
237
  guide_example_shield_1: '\ud83d\udee1\ufe0f GRC: "Shield, audita mi app para GDPR"',
226
- guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lisis de brechas ISO 27001 vs NIST CSF"',
227
- guide_example_shield_3: '\ud83d\udee1\ufe0f GRC: "Shield, genera checklist de evidencias SOC 2"',
238
+ guide_example_shield_2:
239
+ '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lisis de brechas ISO 27001 vs NIST CSF"',
240
+ guide_example_shield_3:
241
+ '\ud83d\udee1\ufe0f GRC: "Shield, genera checklist de evidencias SOC 2"',
228
242
  guide_workflow: '๐Ÿš€ Flujo recomendado:',
229
243
  guide_or_auto: 'โšก O: "autopilot" para gestionar todo automรกticamente',
230
244
  guide_output: '๐Ÿ“ Salida',
231
245
  guide_ready: 'ยกBMAD+ estรก listo! Habla con Atlas para comenzar ๐Ÿš€',
232
246
  guide_credits: 'โœจ BMAD+ es creado por Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
233
247
  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 + "",
248
+ noninteractive_requires_yes: (command) =>
249
+ 'Este comando requiere una terminal. Ejecute `npx bmad-plus ' +
250
+ command +
251
+ ' --yes` para continuar sin preguntas.',
252
+ manifest_invalid: (error) =>
253
+ 'El manifiesto de instalaciรณn no se puede leer o estรก daรฑado: ' + error + '',
236
254
  manifest_repair: 'Revise _bmad/.bmad-plus-install.json y repรกrelo antes de reintentar.',
237
255
  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.',
256
+ uninstall_aborted: (error) => 'Desinstalaciรณn interrumpida: ' + error + '',
257
+ uninstall_preserved:
258
+ 'Se han conservado la memoria, los ajustes y los archivos desconocidos o modificados.',
240
259
  uninstall_removing: 'Eliminando...',
241
260
  uninstall_done: (n) => `โœ… BMAD+ eliminado (${n} elementos)`,
242
261
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ conservado (contiene archivos)',
@@ -258,10 +277,11 @@ const LANGUAGES = {
258
277
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
259
278
  guide_memory: '๐Ÿง  Cerebro persistente',
260
279
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
261
- guide_example_memory_1: '๐Ÿง  Memoria: "Zecher, escanea proyectos en D:\\DEV"',
280
+ guide_example_memory_1: '๐Ÿง  Memoria: "Zecher, escanea proyectos en ~/projects"',
262
281
  guide_example_memory_2: '๐Ÿง  Memoria: "Zecher, ยฟdรณnde estรกbamos?"',
263
282
  guide_example_memory_3: '๐Ÿง  Memoria: "Zecher, consolida la memoria"',
264
- guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, haz una lluvia de ideas para una app de productividad"',
283
+ guide_example_dev_studio_1:
284
+ '๐Ÿ—๏ธ Dev Studio: "Miriam, haz una lluvia de ideas para una app de productividad"',
265
285
  guide_example_dev_studio_2: '๐Ÿ—๏ธ Dev Studio: "Bezalel, diseรฑa la arquitectura"',
266
286
  guide_example_dev_studio_3: '๐Ÿ—๏ธ Dev Studio: "Oholiab, implementa la historia S1"',
267
287
  brain_detected: 'Cerebro existente detectado',
@@ -281,6 +301,7 @@ const LANGUAGES = {
281
301
  selected_packs: 'Ausgewรคhlte Packs',
282
302
  enter_name: 'Dein Vorname (Agenten verwenden ihn zur BegrรผรŸung)',
283
303
  comm_language: 'Kommunikationssprache',
304
+ uat_environment: 'Testumgebung fรผr menschliche Abnahmen (URL, leer wenn keine)',
284
305
  exec_mode: 'Ausfรผhrungsmodus',
285
306
  exec_manual: 'Manuell โ€” Du rufst Agenten selbst auf',
286
307
  exec_autopilot: 'Autopilot โ€” Nexus verwaltet die gesamte Pipeline',
@@ -308,21 +329,29 @@ const LANGUAGES = {
308
329
  guide_backup: 'Intelligente Projektsicherung',
309
330
  guide_animated: 'Animierte Luxus-Website',
310
331
  guide_shield: '\ud83d\udee1\ufe0f GRC-Compliance',
311
- guide_example_shield_1: '\ud83d\udee1\ufe0f GRC: "Shield, pr\u00fcfe meine App auf DSGVO-Konformit\u00e4t"',
332
+ guide_example_shield_1:
333
+ '\ud83d\udee1\ufe0f GRC: "Shield, pr\u00fcfe meine App auf DSGVO-Konformit\u00e4t"',
312
334
  guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, Gap-Analyse ISO 27001 vs NIST CSF"',
313
335
  guide_example_shield_3: '\ud83d\udee1\ufe0f GRC: "Shield, erstelle SOC 2 Nachweisliste"',
314
336
  guide_workflow: '๐Ÿš€ Empfohlener Workflow:',
315
337
  guide_or_auto: 'โšก Oder: "autopilot" fรผr vollautomatische Verwaltung',
316
338
  guide_output: '๐Ÿ“ Ausgabe',
317
339
  guide_ready: 'BMAD+ ist bereit! Sprich mit Atlas um loszulegen ๐Ÿš€',
318
- guide_credits: 'โœจ BMAD+ wurde erstellt von Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
340
+ guide_credits:
341
+ 'โœจ BMAD+ wurde erstellt von Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
319
342
  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.',
343
+ noninteractive_requires_yes: (command) =>
344
+ 'Dieser Befehl benรถtigt ein Terminal. Fรผhren Sie `npx bmad-plus ' +
345
+ command +
346
+ ' --yes` aus, um ohne Rรผckfragen fortzufahren.',
347
+ manifest_invalid: (error) =>
348
+ 'Das Installationsmanifest ist unlesbar oder beschรคdigt: ' + error + '',
349
+ manifest_repair:
350
+ 'Prรผfen und reparieren Sie _bmad/.bmad-plus-install.json vor einem erneuten Versuch.',
323
351
  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.',
352
+ uninstall_aborted: (error) => 'Deinstallation abgebrochen: ' + error + '',
353
+ uninstall_preserved:
354
+ 'Projektspeicher, Einstellungen sowie unbekannte oder geรคnderte Dateien wurden erhalten.',
326
355
  uninstall_removing: 'Entfernen...',
327
356
  uninstall_done: (n) => `โœ… BMAD+ entfernt (${n} Elemente)`,
328
357
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ beibehalten (enthรคlt Dateien)',
@@ -344,7 +373,7 @@ const LANGUAGES = {
344
373
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
345
374
  guide_memory: '๐Ÿง  Bestรคndiges Gehirn',
346
375
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
347
- guide_example_memory_1: '๐Ÿง  Gedรคchtnis: "Zecher, scanne Projekte in D:\\DEV"',
376
+ guide_example_memory_1: '๐Ÿง  Gedรคchtnis: "Zecher, scanne Projekte in ~/projects"',
348
377
  guide_example_memory_2: '๐Ÿง  Gedรคchtnis: "Zecher, wo waren wir?"',
349
378
  guide_example_memory_3: '๐Ÿง  Gedรคchtnis: "Zecher, konsolidiere Gedรคchtnis"',
350
379
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, brainstorme eine Produktivitรคts-App"',
@@ -367,6 +396,8 @@ const LANGUAGES = {
367
396
  selected_packs: 'Packs selecionados',
368
397
  enter_name: 'Seu nome (os agentes usam para te cumprimentar)',
369
398
  comm_language: 'Idioma de comunicaรงรฃo',
399
+ uat_environment:
400
+ 'Ambiente de teste para receitas de aceitaรงรฃo humana (URL, vazio se nรฃo houver)',
370
401
  exec_mode: 'Modo de execuรงรฃo',
371
402
  exec_manual: 'Manual โ€” Vocรช chama os agentes',
372
403
  exec_autopilot: 'Autopilot โ€” Nexus gerencia todo o pipeline',
@@ -395,20 +426,27 @@ const LANGUAGES = {
395
426
  guide_animated: 'Site animado de luxo',
396
427
  guide_shield: '\ud83d\udee1\ufe0f Conformidade GRC',
397
428
  guide_example_shield_1: '\ud83d\udee1\ufe0f GRC: "Shield, audite meu app para LGPD"',
398
- guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lise de lacunas ISO 27001 vs NIST CSF"',
399
- guide_example_shield_3: '\ud83d\udee1\ufe0f GRC: "Shield, gere checklist de evid\u00eancias SOC 2"',
429
+ guide_example_shield_2:
430
+ '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lise de lacunas ISO 27001 vs NIST CSF"',
431
+ guide_example_shield_3:
432
+ '\ud83d\udee1\ufe0f GRC: "Shield, gere checklist de evid\u00eancias SOC 2"',
400
433
  guide_workflow: '๐Ÿš€ Fluxo recomendado:',
401
434
  guide_or_auto: 'โšก Ou: "autopilot" para gerenciar tudo automaticamente',
402
435
  guide_output: '๐Ÿ“ Saรญda',
403
436
  guide_ready: 'BMAD+ estรก pronto! Fale com Atlas para comeรงar ๐Ÿš€',
404
437
  guide_credits: 'โœจ BMAD+ foi criado por Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
405
438
  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 + "",
439
+ noninteractive_requires_yes: (command) =>
440
+ 'Este comando exige um terminal. Execute `npx bmad-plus ' +
441
+ command +
442
+ ' --yes` para continuar sem perguntas.',
443
+ manifest_invalid: (error) =>
444
+ 'O manifesto de instalaรงรฃo estรก ilegรญvel ou corrompido: ' + error + '',
408
445
  manifest_repair: 'Verifique e repare _bmad/.bmad-plus-install.json antes de tentar novamente.',
409
446
  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.',
447
+ uninstall_aborted: (error) => 'Desinstalaรงรฃo interrompida: ' + error + '',
448
+ uninstall_preserved:
449
+ 'A memรณria, as configuraรงรตes e os arquivos desconhecidos ou modificados foram preservados.',
412
450
  uninstall_removing: 'Removendo...',
413
451
  uninstall_done: (n) => `โœ… BMAD+ removido (${n} itens)`,
414
452
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ mantido (contรฉm arquivos)',
@@ -430,10 +468,11 @@ const LANGUAGES = {
430
468
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
431
469
  guide_memory: '๐Ÿง  Cรฉrebro persistente',
432
470
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
433
- guide_example_memory_1: '๐Ÿง  Memรณria: "Zecher, escaneie projetos em D:\\DEV"',
471
+ guide_example_memory_1: '๐Ÿง  Memรณria: "Zecher, escaneie projetos em ~/projects"',
434
472
  guide_example_memory_2: '๐Ÿง  Memรณria: "Zecher, onde estรกvamos?"',
435
473
  guide_example_memory_3: '๐Ÿง  Memรณria: "Zecher, consolide a memรณria"',
436
- guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, faรงa um brainstorm de um app de produtividade"',
474
+ guide_example_dev_studio_1:
475
+ '๐Ÿ—๏ธ Dev Studio: "Miriam, faรงa um brainstorm de um app de produtividade"',
437
476
  guide_example_dev_studio_2: '๐Ÿ—๏ธ Dev Studio: "Bezalel, projete a arquitetura"',
438
477
  guide_example_dev_studio_3: '๐Ÿ—๏ธ Dev Studio: "Oholiab, implemente a histรณria S1"',
439
478
  brain_detected: 'Cรฉrebro existente detectado',
@@ -453,6 +492,7 @@ const LANGUAGES = {
453
492
  selected_packs: 'ะ’ั‹ะฑั€ะฐะฝะฝั‹ะต ะฟะฐะบะตั‚ั‹',
454
493
  enter_name: 'ะ’ะฐัˆะต ะธะผั (ะฐะณะตะฝั‚ั‹ ะธัะฟะพะปัŒะทัƒัŽั‚ ะตะณะพ ะดะปั ะฟั€ะธะฒะตั‚ัั‚ะฒะธั)',
455
494
  comm_language: 'ะฏะทั‹ะบ ะพะฑั‰ะตะฝะธั',
495
+ uat_environment: 'ะขะตัั‚ะพะฒะฐั ัั€ะตะดะฐ ะดะปั ั€ัƒั‡ะฝะพะน ะฟั€ะธั‘ะผะบะธ (URL, ะฟัƒัั‚ะพ ะตัะปะธ ะฝะตั‚)',
456
496
  exec_mode: 'ะ ะตะถะธะผ ะฒั‹ะฟะพะปะฝะตะฝะธั',
457
497
  exec_manual: 'ะ ัƒั‡ะฝะพะน โ€” ะ’ั‹ ะฒั‹ะทั‹ะฒะฐะตั‚ะต ะฐะณะตะฝั‚ะพะฒ ัะฐะผะธ',
458
498
  exec_autopilot: 'ะะฒั‚ะพะฟะธะปะพั‚ โ€” Nexus ัƒะฟั€ะฐะฒะปัะตั‚ ะฒัะตะผ ะบะพะฝะฒะตะนะตั€ะพะผ',
@@ -489,11 +529,15 @@ const LANGUAGES = {
489
529
  guide_ready: 'BMAD+ ะณะพั‚ะพะฒ! ะŸะพะณะพะฒะพั€ะธั‚ะต ั Atlas ั‡ั‚ะพะฑั‹ ะฝะฐั‡ะฐั‚ัŒ ๐Ÿš€',
490
530
  guide_credits: 'โœจ BMAD+ ัะพะทะดะฐะฝ Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
491
531
  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 ะฟะตั€ะตะด ะฟะพะฒั‚ะพั€ะฝะพะน ะฟะพะฟั‹ั‚ะบะพะน.',
532
+ noninteractive_requires_yes: (command) =>
533
+ 'ะ”ะปั ัั‚ะพะน ะบะพะผะฐะฝะดั‹ ะฝัƒะถะตะฝ ั‚ะตั€ะผะธะฝะฐะป. ะ—ะฐะฟัƒัั‚ะธั‚ะต `npx bmad-plus ' +
534
+ command +
535
+ ' --yes`, ั‡ั‚ะพะฑั‹ ะฟั€ะพะดะพะปะถะธั‚ัŒ ะฑะตะท ะทะฐะฟั€ะพัะพะฒ.',
536
+ manifest_invalid: (error) => 'ะœะฐะฝะธั„ะตัั‚ ัƒัั‚ะฐะฝะพะฒะบะธ ะฝะตะดะพัั‚ัƒะฟะตะฝ ะธะปะธ ะฟะพะฒั€ะตะถะดั‘ะฝ: ' + error + '',
537
+ manifest_repair:
538
+ 'ะŸั€ะพะฒะตั€ัŒั‚ะต ะธ ะธัะฟั€ะฐะฒัŒั‚ะต _bmad/.bmad-plus-install.json ะฟะตั€ะตะด ะฟะพะฒั‚ะพั€ะฝะพะน ะฟะพะฟั‹ั‚ะบะพะน.',
495
539
  uninstall_not_installed: 'BMAD+ ะฝะต ัƒัั‚ะฐะฝะพะฒะปะตะฝ ะฒ ัั‚ะพะผ ะบะฐั‚ะฐะปะพะณะต.',
496
- uninstall_aborted: (error) => "ะฃะดะฐะปะตะฝะธะต ะฟั€ะตั€ะฒะฐะฝะพ: " + error + "",
540
+ uninstall_aborted: (error) => 'ะฃะดะฐะปะตะฝะธะต ะฟั€ะตั€ะฒะฐะฝะพ: ' + error + '',
497
541
  uninstall_preserved: 'ะŸะฐะผัั‚ัŒ ะฟั€ะพะตะบั‚ะฐ, ะฝะฐัั‚ั€ะพะนะบะธ ะธ ะฝะตะธะทะฒะตัั‚ะฝั‹ะต ะธะปะธ ะธะทะผะตะฝั‘ะฝะฝั‹ะต ั„ะฐะนะปั‹ ัะพั…ั€ะฐะฝะตะฝั‹.',
498
542
  uninstall_removing: 'ะฃะดะฐะปะตะฝะธะต...',
499
543
  uninstall_done: (n) => `โœ… BMAD+ ัƒะดะฐะปั‘ะฝ (${n} ัะปะตะผะตะฝั‚ะพะฒ)`,
@@ -516,7 +560,7 @@ const LANGUAGES = {
516
560
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
517
561
  guide_memory: '๐Ÿง  ะŸะพัั‚ะพัะฝะฝั‹ะน ะผะพะทะณ',
518
562
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
519
- guide_example_memory_1: '๐Ÿง  ะŸะฐะผัั‚ัŒ: "Zecher, ัะบะฐะฝะธั€ัƒะน ะฟั€ะพะตะบั‚ั‹ ะฒ D:\\DEV"',
563
+ guide_example_memory_1: '๐Ÿง  ะŸะฐะผัั‚ัŒ: "Zecher, ัะบะฐะฝะธั€ัƒะน ะฟั€ะพะตะบั‚ั‹ ะฒ ~/projects"',
520
564
  guide_example_memory_2: '๐Ÿง  ะŸะฐะผัั‚ัŒ: "Zecher, ะฝะฐ ั‡ั‘ะผ ะผั‹ ะพัั‚ะฐะฝะพะฒะธะปะธััŒ?"',
521
565
  guide_example_memory_3: '๐Ÿง  ะŸะฐะผัั‚ัŒ: "Zecher, ะบะพะฝัะพะปะธะดะธั€ัƒะน ะฟะฐะผัั‚ัŒ"',
522
566
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, ะฟั€ะพะฒะตะดะธ ะผะพะทะณะพะฒะพะน ัˆั‚ัƒั€ะผ ะฟั€ะธะปะพะถะตะฝะธั"',
@@ -539,6 +583,7 @@ const LANGUAGES = {
539
583
  selected_packs: 'ๅทฒ้€‰ๆ‹ฉ็š„ๅŒ…',
540
584
  enter_name: 'ๆ‚จ็š„ๅๅญ—๏ผˆไปฃ็†ไผš็”จๅฎƒๆฅ้—ฎๅ€™ๆ‚จ๏ผ‰',
541
585
  comm_language: 'ๆฒŸ้€š่ฏญ่จ€',
586
+ uat_environment: 'ไบบๅทฅ้ชŒๆ”ถ็š„ๆต‹่ฏ•็Žฏๅขƒ๏ผˆURL๏ผŒๆฒกๆœ‰ๅˆ™็•™็ฉบ๏ผ‰',
542
587
  exec_mode: 'ๆ‰ง่กŒๆจกๅผ',
543
588
  exec_manual: 'ๆ‰‹ๅŠจ โ€” ๆ‚จ่‡ชๅทฑ่ฐƒ็”จไปฃ็†',
544
589
  exec_autopilot: '่‡ชๅŠจ้ฉพ้ฉถ โ€” Nexus ็ฎก็†ๆ•ดไธชๆต็จ‹',
@@ -575,11 +620,12 @@ const LANGUAGES = {
575
620
  guide_ready: 'BMAD+ ๅทฒๅฐฑ็ปช๏ผไธŽ Atlas ไบค่ฐˆๅผ€ๅง‹ ๐Ÿš€',
576
621
  guide_credits: 'โœจ BMAD+ ็”ฑ Laurent Rochetta ๅˆ›ๅปบ โ€” github.com/lrochetta/BMAD-PLUS โœจ',
577
622
  uninstall_confirm: 'ไปŽๆญค้กน็›ฎไธญๅˆ ้™ค BMAD+๏ผŸ',
578
- noninteractive_requires_yes: (command) => "ๆญคๅ‘ฝไปค้œ€่ฆ็ปˆ็ซฏใ€‚่ฟ่กŒ `npx bmad-plus " + command + " --yes` ๅฏ่ทณ่ฟ‡ๆ็คบๅนถ็ปง็ปญใ€‚",
579
- manifest_invalid: (error) => "ๅฎ‰่ฃ…ๆธ…ๅ•ๆ— ๆณ•่ฏปๅ–ๆˆ–ๅทฒๆŸๅ๏ผš" + error + "",
623
+ noninteractive_requires_yes: (command) =>
624
+ 'ๆญคๅ‘ฝไปค้œ€่ฆ็ปˆ็ซฏใ€‚่ฟ่กŒ `npx bmad-plus ' + command + ' --yes` ๅฏ่ทณ่ฟ‡ๆ็คบๅนถ็ปง็ปญใ€‚',
625
+ manifest_invalid: (error) => 'ๅฎ‰่ฃ…ๆธ…ๅ•ๆ— ๆณ•่ฏปๅ–ๆˆ–ๅทฒๆŸๅ๏ผš' + error + '',
580
626
  manifest_repair: '่ฏทๆฃ€ๆŸฅๅนถไฟฎๅค _bmad/.bmad-plus-install.json ๅŽ้‡่ฏ•ใ€‚',
581
627
  uninstall_not_installed: 'ๆญค็›ฎๅฝ•ๆœชๅฎ‰่ฃ… BMAD+ใ€‚',
582
- uninstall_aborted: (error) => "ๅธ่ฝฝๅทฒไธญๆญข๏ผš" + error + "",
628
+ uninstall_aborted: (error) => 'ๅธ่ฝฝๅทฒไธญๆญข๏ผš' + error + '',
583
629
  uninstall_preserved: '้กน็›ฎ่ฎฐๅฟ†ใ€่ฎพ็ฝฎไปฅๅŠๆœช็Ÿฅๆˆ–ไฟฎๆ”น่ฟ‡็š„ๆ–‡ไปถๅทฒไฟ็•™ใ€‚',
584
630
  uninstall_removing: 'ๅˆ ้™คไธญ...',
585
631
  uninstall_done: (n) => `โœ… BMAD+ ๅทฒๅˆ ้™ค๏ผˆ${n} ้กน๏ผ‰`,
@@ -602,7 +648,7 @@ const LANGUAGES = {
602
648
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
603
649
  guide_memory: '๐Ÿง  ๆŒไน…่ฎฐๅฟ†',
604
650
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
605
- guide_example_memory_1: '๐Ÿง  ่ฎฐๅฟ†: "Zecher, ๆ‰ซๆ D:\\DEV ไธญ็š„้กน็›ฎ"',
651
+ guide_example_memory_1: '๐Ÿง  ่ฎฐๅฟ†: "Zecher, ๆ‰ซๆ ~/projects ไธญ็š„้กน็›ฎ"',
606
652
  guide_example_memory_2: '๐Ÿง  ่ฎฐๅฟ†: "Zecher, ๆˆ‘ไปฌ่ฟ›่กŒๅˆฐๅ“ช้‡Œไบ†?"',
607
653
  guide_example_memory_3: '๐Ÿง  ่ฎฐๅฟ†: "Zecher, ๆ•ดๅˆ่ฎฐๅฟ†"',
608
654
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, ้›†ๆ€ๅนฟ็›Šไธ€ไธช็”ŸไบงๅŠ›ๅบ”็”จ"',
@@ -625,6 +671,7 @@ const LANGUAGES = {
625
671
  selected_packs: 'ื—ื‘ื™ืœื•ืช ืฉื ื‘ื—ืจื•',
626
672
  enter_name: 'ื”ืฉื ืฉืœืš (ื”ืกื•ื›ื ื™ื ืžืฉืชืžืฉื™ื ื‘ื• ืœื‘ืจื›ืš)',
627
673
  comm_language: 'ืฉืคืช ืชืงืฉื•ืจืช',
674
+ uat_environment: 'ืกื‘ื™ื‘ืช ื‘ื“ื™ืงื” ืœื‘ื“ื™ืงื•ืช ืงื‘ืœื” ืื ื•ืฉื™ื•ืช (ื›ืชื•ื‘ืช URL, ืจื™ืง ืื ืื™ืŸ)',
628
675
  exec_mode: 'ืžืฆื‘ ื‘ื™ืฆื•ืข',
629
676
  exec_manual: 'ื™ื“ื ื™ โ€” ืืชื” ืงื•ืจื ืœืกื•ื›ื ื™ื ื‘ืขืฆืžืš',
630
677
  exec_autopilot: 'ื˜ื™ื™ืก ืื•ื˜ื•ืžื˜ื™ โ€” Nexus ืžื ื”ืœ ืืช ื›ืœ ื”ืฆื™ื ื•ืจ',
@@ -661,11 +708,12 @@ const LANGUAGES = {
661
708
  guide_ready: '!BMAD+ ืžื•ื›ืŸ! ื“ื‘ืจ ืขื Atlas ื›ื“ื™ ืœื”ืชื—ื™ืœ ๐Ÿš€',
662
709
  guide_credits: 'โœจ BMAD+ ื ื•ืฆืจ ืขืœ ื™ื“ื™ Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
663
710
  uninstall_confirm: 'ืœื”ืกื™ืจ ืืช BMAD+ ืžื”ืคืจื•ื™ืงื˜ ื”ื–ื”?',
664
- noninteractive_requires_yes: (command) => "ืคืงื•ื“ื” ื–ื• ื“ื•ืจืฉืช ืžืกื•ืฃ. ืœื”ืจืฆื” ืœืœื ืฉืืœื•ืช, ื”ืคืขื™ืœื• `npx bmad-plus " + command + " --yes`.",
665
- manifest_invalid: (error) => "ืงื•ื‘ืฅ ืคืจื˜ื™ ื”ื”ืชืงื ื” ืื™ื ื• ืงืจื™ื ืื• ืคื’ื•ื: " + error + "",
711
+ noninteractive_requires_yes: (command) =>
712
+ 'ืคืงื•ื“ื” ื–ื• ื“ื•ืจืฉืช ืžืกื•ืฃ. ืœื”ืจืฆื” ืœืœื ืฉืืœื•ืช, ื”ืคืขื™ืœื• `npx bmad-plus ' + command + ' --yes`.',
713
+ manifest_invalid: (error) => 'ืงื•ื‘ืฅ ืคืจื˜ื™ ื”ื”ืชืงื ื” ืื™ื ื• ืงืจื™ื ืื• ืคื’ื•ื: ' + error + '',
666
714
  manifest_repair: 'ื‘ื“ืงื• ื•ืชืงื ื• ืืช _bmad/.bmad-plus-install.json ืœืคื ื™ ื ื™ืกื™ื•ืŸ ื ื•ืกืฃ.',
667
715
  uninstall_not_installed: 'BMAD+ ืื™ื ื• ืžื•ืชืงืŸ ื‘ืชื™ืงื™ื™ื” ื–ื•.',
668
- uninstall_aborted: (error) => "ื”ื”ืกืจื” ื”ื•ืคืกืงื”: " + error + "",
716
+ uninstall_aborted: (error) => 'ื”ื”ืกืจื” ื”ื•ืคืกืงื”: ' + error + '',
669
717
  uninstall_preserved: 'ื–ื™ื›ืจื•ืŸ ื”ืคืจื•ื™ืงื˜, ื”ื”ื’ื“ืจื•ืช ื•ืงื‘ืฆื™ื ืœื ืžื•ื›ืจื™ื ืื• ืฉืฉื•ื ื• ื ืฉืžืจื•.',
670
718
  uninstall_removing: 'ืžืกื™ืจ...',
671
719
  uninstall_done: (n) => `โœ… BMAD+ ื”ื•ืกืจ (${n} ืคืจื™ื˜ื™ื)`,
@@ -688,7 +736,7 @@ const LANGUAGES = {
688
736
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
689
737
  guide_memory: '๐Ÿง  ื–ื™ื›ืจื•ืŸ ืžืชืžืฉืš',
690
738
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
691
- guide_example_memory_1: '๐Ÿง  ื–ื™ื›ืจื•ืŸ: "Zecher, ืกืจื•ืง ืคืจื•ื™ืงื˜ื™ื ื‘-D:\\DEV"',
739
+ guide_example_memory_1: '๐Ÿง  ื–ื™ื›ืจื•ืŸ: "Zecher, ืกืจื•ืง ืคืจื•ื™ืงื˜ื™ื ื‘-~/projects"',
692
740
  guide_example_memory_2: '๐Ÿง  ื–ื™ื›ืจื•ืŸ: "Zecher, ืื™ืคื” ื”ื™ื™ื ื•?"',
693
741
  guide_example_memory_3: '๐Ÿง  ื–ื™ื›ืจื•ืŸ: "Zecher, ืื—ื“ ื–ื™ื›ืจื•ืŸ"',
694
742
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, ืขืฉื” ืกื™ืขื•ืจ ืžื•ื—ื•ืช ืœืืคืœื™ืงืฆื™ื™ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช"',
@@ -711,6 +759,7 @@ const LANGUAGES = {
711
759
  selected_packs: '้ธๆŠžใ•ใ‚ŒใŸใƒ‘ใƒƒใ‚ฏ',
712
760
  enter_name: 'ใ‚ใชใŸใฎๅๅ‰๏ผˆใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใŒๆŒจๆ‹ถใซไฝฟใ„ใพใ™๏ผ‰',
713
761
  comm_language: 'ใ‚ณใƒŸใƒฅใƒ‹ใ‚ฑใƒผใ‚ทใƒงใƒณ่จ€่ชž',
762
+ uat_environment: 'ไบบใซใ‚ˆใ‚‹ๅ—ใ‘ๅ…ฅใ‚Œ็ขบ่ชใฎใƒ†ใ‚นใƒˆ็’ฐๅขƒ๏ผˆURLใ€ใชใ‘ใ‚Œใฐ็ฉบๆฌ„๏ผ‰',
714
763
  exec_mode: 'ๅฎŸ่กŒใƒขใƒผใƒ‰',
715
764
  exec_manual: 'ๆ‰‹ๅ‹• โ€” ่‡ชๅˆ†ใงใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ๅ‘ผใณๅ‡บใ™',
716
765
  exec_autopilot: 'ใ‚ชใƒผใƒˆใƒ‘ใ‚คใƒญใƒƒใƒˆ โ€” NexusใŒใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณๅ…จไฝ“ใ‚’็ฎก็†',
@@ -745,14 +794,19 @@ const LANGUAGES = {
745
794
  guide_or_auto: 'โšก ใพใŸใฏ: "autopilot" ใงๅ…จ่‡ชๅ‹•็ฎก็†',
746
795
  guide_output: '๐Ÿ“ ๅ‡บๅŠ›',
747
796
  guide_ready: 'BMAD+ ๆบ–ๅ‚™ๅฎŒไบ†๏ผAtlasใซ่ฉฑใ—ใ‹ใ‘ใฆๅง‹ใ‚ใพใ—ใ‚‡ใ† ๐Ÿš€',
748
- guide_credits: 'โœจ BMAD+ ใฏ Laurent Rochetta ใซใ‚ˆใฃใฆไฝœๆˆใ•ใ‚Œใพใ—ใŸ โ€” github.com/lrochetta/BMAD-PLUS โœจ',
797
+ guide_credits:
798
+ 'โœจ BMAD+ ใฏ Laurent Rochetta ใซใ‚ˆใฃใฆไฝœๆˆใ•ใ‚Œใพใ—ใŸ โ€” github.com/lrochetta/BMAD-PLUS โœจ',
749
799
  uninstall_confirm: 'ใ“ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‹ใ‚‰BMAD+ใ‚’ๅ‰Š้™คใ—ใพใ™ใ‹๏ผŸ',
750
- noninteractive_requires_yes: (command) => "ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใซใฏ็ซฏๆœซใŒๅฟ…่ฆใงใ™ใ€‚็ขบ่ชใชใ—ใง็ถš่กŒใ™ใ‚‹ใซใฏ `npx bmad-plus " + command + " --yes` ใ‚’ๅฎŸ่กŒใ—ใฆใใ ใ•ใ„ใ€‚",
751
- manifest_invalid: (error) => "ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆƒ…ๅ ฑใ‚’่ชญใฟ่พผใ‚ใชใ„ใ‹็ ดๆใ—ใฆใ„ใพใ™๏ผš" + error + "",
800
+ noninteractive_requires_yes: (command) =>
801
+ 'ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใซใฏ็ซฏๆœซใŒๅฟ…่ฆใงใ™ใ€‚็ขบ่ชใชใ—ใง็ถš่กŒใ™ใ‚‹ใซใฏ `npx bmad-plus ' +
802
+ command +
803
+ ' --yes` ใ‚’ๅฎŸ่กŒใ—ใฆใใ ใ•ใ„ใ€‚',
804
+ manifest_invalid: (error) => 'ใ‚คใƒณใ‚นใƒˆใƒผใƒซๆƒ…ๅ ฑใ‚’่ชญใฟ่พผใ‚ใชใ„ใ‹็ ดๆใ—ใฆใ„ใพใ™๏ผš' + error + '',
752
805
  manifest_repair: '_bmad/.bmad-plus-install.json ใ‚’็ขบ่ชใƒปไฟฎๅพฉใ—ใฆใ‹ใ‚‰ๅ†่ฉฆ่กŒใ—ใฆใใ ใ•ใ„ใ€‚',
753
806
  uninstall_not_installed: 'ใ“ใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซใฏ BMAD+ ใŒใ‚คใƒณใ‚นใƒˆใƒผใƒซใ•ใ‚Œใฆใ„ใพใ›ใ‚“ใ€‚',
754
- uninstall_aborted: (error) => "ใ‚ขใƒณใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’ไธญๆญขใ—ใพใ—ใŸ๏ผš" + error + "",
755
- uninstall_preserved: 'ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎ่จ˜ๆ†ถใ€่จญๅฎšใ€ไธๆ˜Žใชใƒ•ใ‚กใ‚คใƒซใ‚„ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ•ใ‚กใ‚คใƒซใฏไฟๆŒใ•ใ‚Œใพใ—ใŸใ€‚',
807
+ uninstall_aborted: (error) => 'ใ‚ขใƒณใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‚’ไธญๆญขใ—ใพใ—ใŸ๏ผš' + error + '',
808
+ uninstall_preserved:
809
+ 'ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎ่จ˜ๆ†ถใ€่จญๅฎšใ€ไธๆ˜Žใชใƒ•ใ‚กใ‚คใƒซใ‚„ๅค‰ๆ›ดใ•ใ‚ŒใŸใƒ•ใ‚กใ‚คใƒซใฏไฟๆŒใ•ใ‚Œใพใ—ใŸใ€‚',
756
810
  uninstall_removing: 'ๅ‰Š้™คไธญ...',
757
811
  uninstall_done: (n) => `โœ… BMAD+ใ‚’ๅ‰Š้™คใ—ใพใ—ใŸ๏ผˆ${n}้ …็›ฎ๏ผ‰`,
758
812
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ ใฏไฟๆŒใ•ใ‚Œใพใ—ใŸ๏ผˆใƒ•ใ‚กใ‚คใƒซใŒๅซใพใ‚Œใฆใ„ใพใ™๏ผ‰',
@@ -774,7 +828,7 @@ const LANGUAGES = {
774
828
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
775
829
  guide_memory: '๐Ÿง  ๆฐธ็ถš็š„ใช่„ณ',
776
830
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
777
- guide_example_memory_1: '๐Ÿง  ่จ˜ๆ†ถ: "Zecher, D:\\DEV ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ‚นใ‚ญใƒฃใƒณ"',
831
+ guide_example_memory_1: '๐Ÿง  ่จ˜ๆ†ถ: "Zecher, ~/projects ใฎใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ใ‚นใ‚ญใƒฃใƒณ"',
778
832
  guide_example_memory_2: '๐Ÿง  ่จ˜ๆ†ถ: "Zecher, ใฉใ“ใพใง้€ฒใ‚“ใ ?"',
779
833
  guide_example_memory_3: '๐Ÿง  ่จ˜ๆ†ถ: "Zecher, ่จ˜ๆ†ถใ‚’็ตฑๅˆ"',
780
834
  guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, ็”Ÿ็”ฃๆ€งใ‚ขใƒ—ใƒชใ‚’ใƒ–ใƒฌใ‚คใƒณใ‚นใƒˆใƒผใƒŸใƒณใ‚ฐ"',
@@ -797,9 +851,11 @@ const LANGUAGES = {
797
851
  selected_packs: 'Pack selezionati',
798
852
  enter_name: 'Il tuo nome (gli agenti lo usano per salutarti)',
799
853
  comm_language: 'Lingua di comunicazione',
854
+ uat_environment:
855
+ 'Ambiente di test per le verifiche di accettazione umana (URL, vuoto se nessuno)',
800
856
  exec_mode: 'Modalitร  di esecuzione',
801
857
  exec_manual: 'Manuale โ€” Chiami tu gli agenti',
802
- exec_autopilot: 'Autopilot โ€” Nexus gestisce l\'intera pipeline',
858
+ exec_autopilot: "Autopilot โ€” Nexus gestisce l'intera pipeline",
803
859
  exec_hybrid: 'Ibrido โ€” Autopilot con checkpoint frequenti',
804
860
  installing_files: 'Installazione file in corso...',
805
861
  configuring_ides: 'Configurazione IDE...',
@@ -811,7 +867,7 @@ const LANGUAGES = {
811
867
  soon: 'prossimamente',
812
868
  guide_title: 'โœ… Installazione completata โ€” Come iniziare',
813
869
  guide_who: '๐Ÿ’ฌ Con chi parlare?',
814
- guide_idea: 'Discutere un\'idea',
870
+ guide_idea: "Discutere un'idea",
815
871
  guide_prd: 'Creare un PRD',
816
872
  guide_arch: 'Architettura tecnica',
817
873
  guide_code: 'Implementare codice',
@@ -833,12 +889,17 @@ const LANGUAGES = {
833
889
  guide_ready: 'BMAD+ รจ pronto! Parla con Atlas per iniziare ๐Ÿš€',
834
890
  guide_credits: 'โœจ BMAD+ รจ creato da Laurent Rochetta โ€” github.com/lrochetta/BMAD-PLUS โœจ',
835
891
  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 + "",
892
+ noninteractive_requires_yes: (command) =>
893
+ 'Questo comando richiede un terminale. Eseguire `npx bmad-plus ' +
894
+ command +
895
+ ' --yes` per continuare senza domande.',
896
+ manifest_invalid: (error) =>
897
+ 'Il manifesto di installazione รจ illeggibile o danneggiato: ' + error + '',
838
898
  manifest_repair: 'Controllare e riparare _bmad/.bmad-plus-install.json prima di riprovare.',
839
899
  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.',
900
+ uninstall_aborted: (error) => 'Disinstallazione interrotta: ' + error + '',
901
+ uninstall_preserved:
902
+ 'La memoria, le impostazioni e i file sconosciuti o modificati sono stati conservati.',
842
903
  uninstall_removing: 'Rimozione...',
843
904
  uninstall_done: (n) => `โœ… BMAD+ rimosso (${n} elementi)`,
844
905
  uninstall_output_kept: '๐Ÿ“ _bmad-output/ conservato (contiene file)',
@@ -860,10 +921,11 @@ const LANGUAGES = {
860
921
  guide_example_osint: '๐Ÿ” OSINT: "Shadow, investigate John Doe"',
861
922
  guide_memory: '๐Ÿง  Memoria persistente',
862
923
  guide_dev_studio: '๐Ÿ—๏ธ Dev Studio',
863
- guide_example_memory_1: '๐Ÿง  Memoria: "Zecher, scansiona progetti in D:\\DEV"',
924
+ guide_example_memory_1: '๐Ÿง  Memoria: "Zecher, scansiona progetti in ~/projects"',
864
925
  guide_example_memory_2: '๐Ÿง  Memoria: "Zecher, dove eravamo?"',
865
926
  guide_example_memory_3: '๐Ÿง  Memoria: "Zecher, consolida la memoria"',
866
- guide_example_dev_studio_1: '๐Ÿ—๏ธ Dev Studio: "Miriam, fai un brainstorming di un\'app di produttivitร "',
927
+ guide_example_dev_studio_1:
928
+ '๐Ÿ—๏ธ Dev Studio: "Miriam, fai un brainstorming di un\'app di produttivitร "',
867
929
  guide_example_dev_studio_2: '๐Ÿ—๏ธ Dev Studio: "Bezalel, progetta l\'architettura"',
868
930
  guide_example_dev_studio_3: '๐Ÿ—๏ธ Dev Studio: "Oholiab, implementa la storia S1"',
869
931
  brain_detected: 'Cervello esistente rilevato',