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
@@ -9,7 +9,11 @@ const clack = require('@clack/prompts');
9
9
  const pc = require('picocolors');
10
10
  const { t } = require('../i18n');
11
11
  const { safeTarget } = require('../../build/generate-adapters');
12
- const { readInstallManifest } = require('../lib/install-manifest');
12
+ const {
13
+ readInstallManifest,
14
+ notInstalledMessage,
15
+ hasInstallManifest,
16
+ } = require('../lib/install-manifest');
13
17
  const { isExactVersion } = require('../lib/update-policy');
14
18
  const { planUpdate, applyPlan, restoreUpdate, MANIFEST } = require('../lib/update-transaction');
15
19
 
@@ -51,22 +55,35 @@ module.exports = {
51
55
  if (options.restore && (options.latest || options.expectedVersion)) {
52
56
  throw new Error('--restore cannot be combined with --latest or --expected-version.');
53
57
  }
58
+ if (!options.restore && !hasInstallManifest(projectDir)) {
59
+ throw new Error(notInstalledMessage(projectDir));
60
+ }
54
61
  // The dispatcher resolves the target package; this local package may be older.
55
62
  if (options.latest) {
56
63
  const result = await require('../lib/update-dispatch').runLatestUpdate({
57
- projectDir, auto: Boolean(options.auto), yes: Boolean(options.yes),
64
+ projectDir,
65
+ auto: Boolean(options.auto),
66
+ yes: Boolean(options.yes),
58
67
  });
59
68
  clack.log.info(result.reason || result.status);
60
69
  if (result.output) clack.log.info(result.output);
61
70
  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.');
71
+ if (result.reloadInstructions)
72
+ clack.log.info('Reload your agent instructions or start a new session.');
63
73
  return;
64
74
  }
65
75
 
66
76
  clack.intro(pc.bgMagenta(pc.white(' BMAD+ Updater v' + version + ' ')));
67
77
  if (options.restore) {
68
78
  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;
79
+ if (
80
+ !(await confirmAction(
81
+ options,
82
+ 'Restore the files saved in receipt ' + options.restore + '?',
83
+ options.lang
84
+ ))
85
+ )
86
+ return;
70
87
  const restored = restoreUpdate({ projectDir, receiptId: options.restore });
71
88
  clack.log.success('Restored BMAD+ v' + restored.restoredVersion);
72
89
  clack.log.info('Receipt: ' + restored.receiptPath);
@@ -74,46 +91,104 @@ module.exports = {
74
91
  return;
75
92
  }
76
93
 
77
- if (options.auto && !options.expectedVersion) throw new Error('Automatic update requires --expected-version.');
94
+ if (options.auto && !options.expectedVersion)
95
+ throw new Error('Automatic update requires --expected-version.');
78
96
  if (options.expectedVersion && options.expectedVersion !== version) {
79
- throw new Error('Executing package version ' + version + ' does not match expected version ' + options.expectedVersion + '.');
97
+ throw new Error(
98
+ 'Executing package version ' +
99
+ version +
100
+ ' does not match expected version ' +
101
+ options.expectedVersion +
102
+ '.'
103
+ );
80
104
  }
81
105
  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.');
106
+ if (!fs.existsSync(manifestPath)) throw new Error(notInstalledMessage(projectDir));
83
107
  let manifest;
84
- try { manifest = readInstallManifest(manifestPath); } catch (error) {
85
- throw new Error('Install manifest is unreadable or corrupt: ' + error.message, { cause: error });
108
+ try {
109
+ manifest = readInstallManifest(manifestPath);
110
+ } catch (error) {
111
+ throw new Error('Install manifest is unreadable or corrupt: ' + error.message, {
112
+ cause: error,
113
+ });
86
114
  }
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);
115
+ if (!isExactVersion(version) || !isExactVersion(manifest.version))
116
+ throw new Error('Update versions must be strict semantic versions.');
117
+ if (semver.lt(version, manifest.version))
118
+ throw new Error('Downgrade refused: ' + manifest.version + ' -> ' + version);
89
119
  const lang = options.lang || manifest.uiLanguage || 'en';
90
120
  clack.log.info('Installed: v' + manifest.version + ' -> Executing package: v' + version);
91
121
  if (manifest.version === version) {
92
- clack.log.success('The installed version matches this executing package. Use --latest to check the registry.');
122
+ clack.log.success(
123
+ 'The installed version matches this executing package. Use --latest to check the registry.'
124
+ );
93
125
  clack.outro(pc.green('Nothing to update.'));
94
126
  return;
95
127
  }
96
128
  const plan = planUpdate({ projectDir, manifest, version, auto: Boolean(options.auto) });
97
129
  if (options.auto) {
98
130
  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.');
131
+ const fresh = await require('../lib/update-check').checkForUpdate({
132
+ projectDir,
133
+ runningVersion: version,
134
+ refresh: true,
135
+ });
136
+ if (
137
+ fresh.source !== 'registry' ||
138
+ fresh.stale ||
139
+ !fresh.versionEligible ||
140
+ fresh.targetVersion !== options.expectedVersion
141
+ ) {
142
+ throw new Error(
143
+ 'Automatic update requires a fresh, eligible registry target matching --expected-version.'
144
+ );
102
145
  }
103
146
  }
104
147
 
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;
148
+ const removals = plan.files.filter((entry) => entry.afterHash === null).length;
149
+ clack.log.info(
150
+ 'Planned changes: ' +
151
+ (plan.files.length - 1) +
152
+ ' files (' +
153
+ removals +
154
+ ' no longer shipped, removed with backup); preserved conflicts: ' +
155
+ plan.conflicts.length +
156
+ '.'
157
+ );
158
+ if (plan.legacy)
159
+ clack.log.warn(
160
+ 'Legacy installation: original pack files will be backed up before replacement because ownership hashes are unavailable. Review the receipt to recover local edits.'
161
+ );
162
+ for (const conflict of plan.conflicts)
163
+ clack.log.warn(conflict.file + ': preserved (' + conflict.reason + ').');
164
+ if (
165
+ !(await confirmAction(
166
+ options,
167
+ 'Apply this update from v' + manifest.version + ' to v' + version + '?',
168
+ lang
169
+ ))
170
+ )
171
+ return;
109
172
 
110
173
  spinner = clack.spinner();
111
174
  spinner.start('Updating managed files...');
112
175
  const result = applyPlan(plan, { reauthorize: () => authorizeAuto(projectDir, version) });
113
- spinner.stop(result.changedFiles.length + ' files updated; ' + result.conflicts.length + ' local conflicts preserved.');
176
+ spinner.stop(
177
+ result.changedFiles.length +
178
+ ' files updated; ' +
179
+ result.conflicts.length +
180
+ ' local conflicts preserved.'
181
+ );
114
182
  spinner = null;
115
183
  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.'));
184
+ clack.outro(
185
+ pc.green(
186
+ 'BMAD+ v' +
187
+ version +
188
+ (result.conflicts.length ? ' applied partially.' : ' installed.') +
189
+ ' Reload your agent instructions or start a new session.'
190
+ )
191
+ );
117
192
  } catch (error) {
118
193
  if (spinner) spinner.stop('Update failed.');
119
194
  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
 
@@ -59,12 +59,16 @@ const LANGUAGES = {
59
59
  guide_credits: '✨ BMAD+ is created by Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
60
60
  // Uninstall
61
61
  uninstall_confirm: 'Remove BMAD+ from this project?',
62
- noninteractive_requires_yes: (command) => "This command requires a terminal. Run `npx bmad-plus " + command + " --yes` to proceed without prompts.",
63
- 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 + '',
64
67
  manifest_repair: 'Check _bmad/.bmad-plus-install.json and repair it before retrying.',
65
68
  uninstall_not_installed: 'BMAD+ is not installed in this directory.',
66
- uninstall_aborted: (error) => "Uninstall aborted: " + error + "",
67
- 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.',
68
72
  uninstall_removing: 'Removing...',
69
73
  uninstall_done: (n) => `✅ BMAD+ removed (${n} items)`,
70
74
  uninstall_output_kept: '📁 _bmad-output/ kept (contains files)',
@@ -87,7 +91,7 @@ const LANGUAGES = {
87
91
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
88
92
  guide_memory: '🧠 Persistent Brain',
89
93
  guide_dev_studio: '🏗️ Dev Studio',
90
- guide_example_memory_1: '🧠 Memory: "Zecher, scan projects in D:\\DEV"',
94
+ guide_example_memory_1: '🧠 Memory: "Zecher, scan projects in ~/projects"',
91
95
  guide_example_memory_2: '🧠 Memory: "Zecher, where were we?"',
92
96
  guide_example_memory_3: '🧠 Memory: "Zecher, consolidate memory"',
93
97
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, brainstorm a productivity app"',
@@ -108,10 +112,10 @@ const LANGUAGES = {
108
112
  select_ide: 'Quels IDE utilises-tu ?',
109
113
  detected_ides: 'IDE détectés',
110
114
  selected_packs: 'Packs sélectionnés',
111
- 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)",
112
116
  comm_language: 'Langue de communication',
113
117
  uat_environment: 'Environnement de test pour les recettes humaines (URL, vide si aucun)',
114
- exec_mode: 'Mode d\'exécution',
118
+ exec_mode: "Mode d'exécution",
115
119
  exec_manual: 'Manuel — Tu appelles les agents toi-même',
116
120
  exec_autopilot: 'Autopilot — Nexus gère tout le pipeline',
117
121
  exec_hybrid: 'Hybride — Autopilot avec checkpoints fréquents',
@@ -125,7 +129,7 @@ const LANGUAGES = {
125
129
  soon: 'bientôt',
126
130
  guide_title: '✅ Installation terminée — Comment commencer',
127
131
  guide_who: '💬 À qui parler ?',
128
- guide_idea: 'Discuter d\'une idée',
132
+ guide_idea: "Discuter d'une idée",
129
133
  guide_prd: 'Créer un PRD',
130
134
  guide_arch: 'Architecture technique',
131
135
  guide_code: 'Implémenter du code',
@@ -147,12 +151,17 @@ const LANGUAGES = {
147
151
  guide_ready: 'BMAD+ est prêt ! Parle à Atlas pour commencer 🚀',
148
152
  guide_credits: '✨ BMAD+ est créé par Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
149
153
  uninstall_confirm: 'Supprimer BMAD+ de ce projet ?',
150
- noninteractive_requires_yes: (command) => "Cette commande nécessite un terminal. Lancez `npx bmad-plus " + command + " --yes` pour continuer sans invite.",
151
- 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 + '',
152
160
  manifest_repair: 'Vérifiez _bmad/.bmad-plus-install.json et réparez-le avant de réessayer.',
153
161
  uninstall_not_installed: 'BMAD+ n’est pas installé dans ce répertoire.',
154
- uninstall_aborted: (error) => "Désinstallation interrompue : " + error + "",
155
- 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.',
156
165
  uninstall_removing: 'Suppression...',
157
166
  uninstall_done: (n) => `✅ BMAD+ supprimé (${n} éléments)`,
158
167
  uninstall_output_kept: '📁 _bmad-output/ conservé (contient des fichiers)',
@@ -165,7 +174,7 @@ const LANGUAGES = {
165
174
  guide_cli_title: 'Commandes CLI',
166
175
  guide_cli_install: '— Installer agents & skills',
167
176
  guide_cli_update: '— Mettre à jour (conserve la config)',
168
- guide_cli_doctor: '— Vérifier l\'installation',
177
+ guide_cli_doctor: "— Vérifier l'installation",
169
178
  guide_cli_uninstall: '— Supprimer BMAD+ du projet',
170
179
  guide_examples_title: 'Exemples rapides',
171
180
  guide_example_seo: '🔍 SEO : "/seo audit https://example.com"',
@@ -174,7 +183,7 @@ const LANGUAGES = {
174
183
  guide_example_osint: '🔍 OSINT : "Shadow, investigate John Doe"',
175
184
  guide_memory: '🧠 Cerveau persistant',
176
185
  guide_dev_studio: '🏗️ Dev Studio',
177
- 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"',
178
187
  guide_example_memory_2: '🧠 Mémoire : "Zecher, où en étions-nous ?"',
179
188
  guide_example_memory_3: '🧠 Mémoire : "Zecher, consolide la mémoire"',
180
189
  guide_example_dev_studio_1: '🏗️ Dev Studio : "Miriam, brainstorme une app de productivité"',
@@ -226,20 +235,27 @@ const LANGUAGES = {
226
235
  guide_animated: 'Sitio web animado de lujo',
227
236
  guide_shield: '\ud83d\udee1\ufe0f Cumplimiento GRC',
228
237
  guide_example_shield_1: '\ud83d\udee1\ufe0f GRC: "Shield, audita mi app para GDPR"',
229
- guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lisis de brechas ISO 27001 vs NIST CSF"',
230
- 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"',
231
242
  guide_workflow: '🚀 Flujo recomendado:',
232
243
  guide_or_auto: '⚡ O: "autopilot" para gestionar todo automáticamente',
233
244
  guide_output: '📁 Salida',
234
245
  guide_ready: '¡BMAD+ está listo! Habla con Atlas para comenzar 🚀',
235
246
  guide_credits: '✨ BMAD+ es creado por Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
236
247
  uninstall_confirm: '¿Eliminar BMAD+ de este proyecto?',
237
- noninteractive_requires_yes: (command) => "Este comando requiere una terminal. Ejecute `npx bmad-plus " + command + " --yes` para continuar sin preguntas.",
238
- 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 + '',
239
254
  manifest_repair: 'Revise _bmad/.bmad-plus-install.json y repárelo antes de reintentar.',
240
255
  uninstall_not_installed: 'BMAD+ no está instalado en este directorio.',
241
- uninstall_aborted: (error) => "Desinstalación interrumpida: " + error + "",
242
- 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.',
243
259
  uninstall_removing: 'Eliminando...',
244
260
  uninstall_done: (n) => `✅ BMAD+ eliminado (${n} elementos)`,
245
261
  uninstall_output_kept: '📁 _bmad-output/ conservado (contiene archivos)',
@@ -261,10 +277,11 @@ const LANGUAGES = {
261
277
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
262
278
  guide_memory: '🧠 Cerebro persistente',
263
279
  guide_dev_studio: '🏗️ Dev Studio',
264
- guide_example_memory_1: '🧠 Memoria: "Zecher, escanea proyectos en D:\\DEV"',
280
+ guide_example_memory_1: '🧠 Memoria: "Zecher, escanea proyectos en ~/projects"',
265
281
  guide_example_memory_2: '🧠 Memoria: "Zecher, ¿dónde estábamos?"',
266
282
  guide_example_memory_3: '🧠 Memoria: "Zecher, consolida la memoria"',
267
- 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"',
268
285
  guide_example_dev_studio_2: '🏗️ Dev Studio: "Bezalel, diseña la arquitectura"',
269
286
  guide_example_dev_studio_3: '🏗️ Dev Studio: "Oholiab, implementa la historia S1"',
270
287
  brain_detected: 'Cerebro existente detectado',
@@ -312,21 +329,29 @@ const LANGUAGES = {
312
329
  guide_backup: 'Intelligente Projektsicherung',
313
330
  guide_animated: 'Animierte Luxus-Website',
314
331
  guide_shield: '\ud83d\udee1\ufe0f GRC-Compliance',
315
- 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"',
316
334
  guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, Gap-Analyse ISO 27001 vs NIST CSF"',
317
335
  guide_example_shield_3: '\ud83d\udee1\ufe0f GRC: "Shield, erstelle SOC 2 Nachweisliste"',
318
336
  guide_workflow: '🚀 Empfohlener Workflow:',
319
337
  guide_or_auto: '⚡ Oder: "autopilot" für vollautomatische Verwaltung',
320
338
  guide_output: '📁 Ausgabe',
321
339
  guide_ready: 'BMAD+ ist bereit! Sprich mit Atlas um loszulegen 🚀',
322
- 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 ✨',
323
342
  uninstall_confirm: 'BMAD+ aus diesem Projekt entfernen?',
324
- noninteractive_requires_yes: (command) => "Dieser Befehl benötigt ein Terminal. Führen Sie `npx bmad-plus " + command + " --yes` aus, um ohne Rückfragen fortzufahren.",
325
- manifest_invalid: (error) => "Das Installationsmanifest ist unlesbar oder beschädigt: " + error + "",
326
- 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.',
327
351
  uninstall_not_installed: 'BMAD+ ist in diesem Verzeichnis nicht installiert.',
328
- uninstall_aborted: (error) => "Deinstallation abgebrochen: " + error + "",
329
- 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.',
330
355
  uninstall_removing: 'Entfernen...',
331
356
  uninstall_done: (n) => `✅ BMAD+ entfernt (${n} Elemente)`,
332
357
  uninstall_output_kept: '📁 _bmad-output/ beibehalten (enthält Dateien)',
@@ -348,7 +373,7 @@ const LANGUAGES = {
348
373
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
349
374
  guide_memory: '🧠 Beständiges Gehirn',
350
375
  guide_dev_studio: '🏗️ Dev Studio',
351
- guide_example_memory_1: '🧠 Gedächtnis: "Zecher, scanne Projekte in D:\\DEV"',
376
+ guide_example_memory_1: '🧠 Gedächtnis: "Zecher, scanne Projekte in ~/projects"',
352
377
  guide_example_memory_2: '🧠 Gedächtnis: "Zecher, wo waren wir?"',
353
378
  guide_example_memory_3: '🧠 Gedächtnis: "Zecher, konsolidiere Gedächtnis"',
354
379
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, brainstorme eine Produktivitäts-App"',
@@ -371,7 +396,8 @@ const LANGUAGES = {
371
396
  selected_packs: 'Packs selecionados',
372
397
  enter_name: 'Seu nome (os agentes usam para te cumprimentar)',
373
398
  comm_language: 'Idioma de comunicação',
374
- uat_environment: 'Ambiente de teste para receitas de aceitação humana (URL, vazio se não houver)',
399
+ uat_environment:
400
+ 'Ambiente de teste para receitas de aceitação humana (URL, vazio se não houver)',
375
401
  exec_mode: 'Modo de execução',
376
402
  exec_manual: 'Manual — Você chama os agentes',
377
403
  exec_autopilot: 'Autopilot — Nexus gerencia todo o pipeline',
@@ -400,20 +426,27 @@ const LANGUAGES = {
400
426
  guide_animated: 'Site animado de luxo',
401
427
  guide_shield: '\ud83d\udee1\ufe0f Conformidade GRC',
402
428
  guide_example_shield_1: '\ud83d\udee1\ufe0f GRC: "Shield, audite meu app para LGPD"',
403
- guide_example_shield_2: '\ud83d\udee1\ufe0f GRC: "Shield, an\u00e1lise de lacunas ISO 27001 vs NIST CSF"',
404
- 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"',
405
433
  guide_workflow: '🚀 Fluxo recomendado:',
406
434
  guide_or_auto: '⚡ Ou: "autopilot" para gerenciar tudo automaticamente',
407
435
  guide_output: '📁 Saída',
408
436
  guide_ready: 'BMAD+ está pronto! Fale com Atlas para começar 🚀',
409
437
  guide_credits: '✨ BMAD+ foi criado por Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
410
438
  uninstall_confirm: 'Remover BMAD+ deste projeto?',
411
- noninteractive_requires_yes: (command) => "Este comando exige um terminal. Execute `npx bmad-plus " + command + " --yes` para continuar sem perguntas.",
412
- 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 + '',
413
445
  manifest_repair: 'Verifique e repare _bmad/.bmad-plus-install.json antes de tentar novamente.',
414
446
  uninstall_not_installed: 'BMAD+ não está instalado neste diretório.',
415
- uninstall_aborted: (error) => "Desinstalação interrompida: " + error + "",
416
- 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.',
417
450
  uninstall_removing: 'Removendo...',
418
451
  uninstall_done: (n) => `✅ BMAD+ removido (${n} itens)`,
419
452
  uninstall_output_kept: '📁 _bmad-output/ mantido (contém arquivos)',
@@ -435,10 +468,11 @@ const LANGUAGES = {
435
468
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
436
469
  guide_memory: '🧠 Cérebro persistente',
437
470
  guide_dev_studio: '🏗️ Dev Studio',
438
- guide_example_memory_1: '🧠 Memória: "Zecher, escaneie projetos em D:\\DEV"',
471
+ guide_example_memory_1: '🧠 Memória: "Zecher, escaneie projetos em ~/projects"',
439
472
  guide_example_memory_2: '🧠 Memória: "Zecher, onde estávamos?"',
440
473
  guide_example_memory_3: '🧠 Memória: "Zecher, consolide a memória"',
441
- 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"',
442
476
  guide_example_dev_studio_2: '🏗️ Dev Studio: "Bezalel, projete a arquitetura"',
443
477
  guide_example_dev_studio_3: '🏗️ Dev Studio: "Oholiab, implemente a história S1"',
444
478
  brain_detected: 'Cérebro existente detectado',
@@ -495,11 +529,15 @@ const LANGUAGES = {
495
529
  guide_ready: 'BMAD+ готов! Поговорите с Atlas чтобы начать 🚀',
496
530
  guide_credits: '✨ BMAD+ создан Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
497
531
  uninstall_confirm: 'Удалить BMAD+ из этого проекта?',
498
- noninteractive_requires_yes: (command) => "Для этой команды нужен терминал. Запустите `npx bmad-plus " + command + " --yes`, чтобы продолжить без запросов.",
499
- manifest_invalid: (error) => "Манифест установки недоступен или повреждён: " + error + "",
500
- 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 перед повторной попыткой.',
501
539
  uninstall_not_installed: 'BMAD+ не установлен в этом каталоге.',
502
- uninstall_aborted: (error) => "Удаление прервано: " + error + "",
540
+ uninstall_aborted: (error) => 'Удаление прервано: ' + error + '',
503
541
  uninstall_preserved: 'Память проекта, настройки и неизвестные или изменённые файлы сохранены.',
504
542
  uninstall_removing: 'Удаление...',
505
543
  uninstall_done: (n) => `✅ BMAD+ удалён (${n} элементов)`,
@@ -522,7 +560,7 @@ const LANGUAGES = {
522
560
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
523
561
  guide_memory: '🧠 Постоянный мозг',
524
562
  guide_dev_studio: '🏗️ Dev Studio',
525
- guide_example_memory_1: '🧠 Память: "Zecher, сканируй проекты в D:\\DEV"',
563
+ guide_example_memory_1: '🧠 Память: "Zecher, сканируй проекты в ~/projects"',
526
564
  guide_example_memory_2: '🧠 Память: "Zecher, на чём мы остановились?"',
527
565
  guide_example_memory_3: '🧠 Память: "Zecher, консолидируй память"',
528
566
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, проведи мозговой штурм приложения"',
@@ -582,11 +620,12 @@ const LANGUAGES = {
582
620
  guide_ready: 'BMAD+ 已就绪!与 Atlas 交谈开始 🚀',
583
621
  guide_credits: '✨ BMAD+ 由 Laurent Rochetta 创建 — github.com/lrochetta/BMAD-PLUS ✨',
584
622
  uninstall_confirm: '从此项目中删除 BMAD+?',
585
- noninteractive_requires_yes: (command) => "此命令需要终端。运行 `npx bmad-plus " + command + " --yes` 可跳过提示并继续。",
586
- manifest_invalid: (error) => "安装清单无法读取或已损坏:" + error + "",
623
+ noninteractive_requires_yes: (command) =>
624
+ '此命令需要终端。运行 `npx bmad-plus ' + command + ' --yes` 可跳过提示并继续。',
625
+ manifest_invalid: (error) => '安装清单无法读取或已损坏:' + error + '',
587
626
  manifest_repair: '请检查并修复 _bmad/.bmad-plus-install.json 后重试。',
588
627
  uninstall_not_installed: '此目录未安装 BMAD+。',
589
- uninstall_aborted: (error) => "卸载已中止:" + error + "",
628
+ uninstall_aborted: (error) => '卸载已中止:' + error + '',
590
629
  uninstall_preserved: '项目记忆、设置以及未知或修改过的文件已保留。',
591
630
  uninstall_removing: '删除中...',
592
631
  uninstall_done: (n) => `✅ BMAD+ 已删除(${n} 项)`,
@@ -609,7 +648,7 @@ const LANGUAGES = {
609
648
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
610
649
  guide_memory: '🧠 持久记忆',
611
650
  guide_dev_studio: '🏗️ Dev Studio',
612
- guide_example_memory_1: '🧠 记忆: "Zecher, 扫描 D:\\DEV 中的项目"',
651
+ guide_example_memory_1: '🧠 记忆: "Zecher, 扫描 ~/projects 中的项目"',
613
652
  guide_example_memory_2: '🧠 记忆: "Zecher, 我们进行到哪里了?"',
614
653
  guide_example_memory_3: '🧠 记忆: "Zecher, 整合记忆"',
615
654
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, 集思广益一个生产力应用"',
@@ -669,11 +708,12 @@ const LANGUAGES = {
669
708
  guide_ready: '!BMAD+ מוכן! דבר עם Atlas כדי להתחיל 🚀',
670
709
  guide_credits: '✨ BMAD+ נוצר על ידי Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
671
710
  uninstall_confirm: 'להסיר את BMAD+ מהפרויקט הזה?',
672
- noninteractive_requires_yes: (command) => "פקודה זו דורשת מסוף. להרצה ללא שאלות, הפעילו `npx bmad-plus " + command + " --yes`.",
673
- manifest_invalid: (error) => "קובץ פרטי ההתקנה אינו קריא או פגום: " + error + "",
711
+ noninteractive_requires_yes: (command) =>
712
+ 'פקודה זו דורשת מסוף. להרצה ללא שאלות, הפעילו `npx bmad-plus ' + command + ' --yes`.',
713
+ manifest_invalid: (error) => 'קובץ פרטי ההתקנה אינו קריא או פגום: ' + error + '',
674
714
  manifest_repair: 'בדקו ותקנו את _bmad/.bmad-plus-install.json לפני ניסיון נוסף.',
675
715
  uninstall_not_installed: 'BMAD+ אינו מותקן בתיקייה זו.',
676
- uninstall_aborted: (error) => "ההסרה הופסקה: " + error + "",
716
+ uninstall_aborted: (error) => 'ההסרה הופסקה: ' + error + '',
677
717
  uninstall_preserved: 'זיכרון הפרויקט, ההגדרות וקבצים לא מוכרים או ששונו נשמרו.',
678
718
  uninstall_removing: 'מסיר...',
679
719
  uninstall_done: (n) => `✅ BMAD+ הוסר (${n} פריטים)`,
@@ -696,7 +736,7 @@ const LANGUAGES = {
696
736
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
697
737
  guide_memory: '🧠 זיכרון מתמשך',
698
738
  guide_dev_studio: '🏗️ Dev Studio',
699
- guide_example_memory_1: '🧠 זיכרון: "Zecher, סרוק פרויקטים ב-D:\\DEV"',
739
+ guide_example_memory_1: '🧠 זיכרון: "Zecher, סרוק פרויקטים ב-~/projects"',
700
740
  guide_example_memory_2: '🧠 זיכרון: "Zecher, איפה היינו?"',
701
741
  guide_example_memory_3: '🧠 זיכרון: "Zecher, אחד זיכרון"',
702
742
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, עשה סיעור מוחות לאפליקציית פרודוקטיביות"',
@@ -754,14 +794,19 @@ const LANGUAGES = {
754
794
  guide_or_auto: '⚡ または: "autopilot" で全自動管理',
755
795
  guide_output: '📁 出力',
756
796
  guide_ready: 'BMAD+ 準備完了!Atlasに話しかけて始めましょう 🚀',
757
- guide_credits: '✨ BMAD+ は Laurent Rochetta によって作成されました — github.com/lrochetta/BMAD-PLUS ✨',
797
+ guide_credits:
798
+ '✨ BMAD+ は Laurent Rochetta によって作成されました — github.com/lrochetta/BMAD-PLUS ✨',
758
799
  uninstall_confirm: 'このプロジェクトからBMAD+を削除しますか?',
759
- noninteractive_requires_yes: (command) => "このコマンドには端末が必要です。確認なしで続行するには `npx bmad-plus " + command + " --yes` を実行してください。",
760
- manifest_invalid: (error) => "インストール情報を読み込めないか破損しています:" + error + "",
800
+ noninteractive_requires_yes: (command) =>
801
+ 'このコマンドには端末が必要です。確認なしで続行するには `npx bmad-plus ' +
802
+ command +
803
+ ' --yes` を実行してください。',
804
+ manifest_invalid: (error) => 'インストール情報を読み込めないか破損しています:' + error + '',
761
805
  manifest_repair: '_bmad/.bmad-plus-install.json を確認・修復してから再試行してください。',
762
806
  uninstall_not_installed: 'このディレクトリには BMAD+ がインストールされていません。',
763
- uninstall_aborted: (error) => "アンインストールを中止しました:" + error + "",
764
- uninstall_preserved: 'プロジェクトの記憶、設定、不明なファイルや変更されたファイルは保持されました。',
807
+ uninstall_aborted: (error) => 'アンインストールを中止しました:' + error + '',
808
+ uninstall_preserved:
809
+ 'プロジェクトの記憶、設定、不明なファイルや変更されたファイルは保持されました。',
765
810
  uninstall_removing: '削除中...',
766
811
  uninstall_done: (n) => `✅ BMAD+を削除しました(${n}項目)`,
767
812
  uninstall_output_kept: '📁 _bmad-output/ は保持されました(ファイルが含まれています)',
@@ -783,7 +828,7 @@ const LANGUAGES = {
783
828
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
784
829
  guide_memory: '🧠 永続的な脳',
785
830
  guide_dev_studio: '🏗️ Dev Studio',
786
- guide_example_memory_1: '🧠 記憶: "Zecher, D:\\DEV のプロジェクトをスキャン"',
831
+ guide_example_memory_1: '🧠 記憶: "Zecher, ~/projects のプロジェクトをスキャン"',
787
832
  guide_example_memory_2: '🧠 記憶: "Zecher, どこまで進んだ?"',
788
833
  guide_example_memory_3: '🧠 記憶: "Zecher, 記憶を統合"',
789
834
  guide_example_dev_studio_1: '🏗️ Dev Studio: "Miriam, 生産性アプリをブレインストーミング"',
@@ -806,10 +851,11 @@ const LANGUAGES = {
806
851
  selected_packs: 'Pack selezionati',
807
852
  enter_name: 'Il tuo nome (gli agenti lo usano per salutarti)',
808
853
  comm_language: 'Lingua di comunicazione',
809
- uat_environment: 'Ambiente di test per le verifiche di accettazione umana (URL, vuoto se nessuno)',
854
+ uat_environment:
855
+ 'Ambiente di test per le verifiche di accettazione umana (URL, vuoto se nessuno)',
810
856
  exec_mode: 'Modalità di esecuzione',
811
857
  exec_manual: 'Manuale — Chiami tu gli agenti',
812
- exec_autopilot: 'Autopilot — Nexus gestisce l\'intera pipeline',
858
+ exec_autopilot: "Autopilot — Nexus gestisce l'intera pipeline",
813
859
  exec_hybrid: 'Ibrido — Autopilot con checkpoint frequenti',
814
860
  installing_files: 'Installazione file in corso...',
815
861
  configuring_ides: 'Configurazione IDE...',
@@ -821,7 +867,7 @@ const LANGUAGES = {
821
867
  soon: 'prossimamente',
822
868
  guide_title: '✅ Installazione completata — Come iniziare',
823
869
  guide_who: '💬 Con chi parlare?',
824
- guide_idea: 'Discutere un\'idea',
870
+ guide_idea: "Discutere un'idea",
825
871
  guide_prd: 'Creare un PRD',
826
872
  guide_arch: 'Architettura tecnica',
827
873
  guide_code: 'Implementare codice',
@@ -843,12 +889,17 @@ const LANGUAGES = {
843
889
  guide_ready: 'BMAD+ è pronto! Parla con Atlas per iniziare 🚀',
844
890
  guide_credits: '✨ BMAD+ è creato da Laurent Rochetta — github.com/lrochetta/BMAD-PLUS ✨',
845
891
  uninstall_confirm: 'Rimuovere BMAD+ da questo progetto?',
846
- noninteractive_requires_yes: (command) => "Questo comando richiede un terminale. Eseguire `npx bmad-plus " + command + " --yes` per continuare senza domande.",
847
- 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 + '',
848
898
  manifest_repair: 'Controllare e riparare _bmad/.bmad-plus-install.json prima di riprovare.',
849
899
  uninstall_not_installed: 'BMAD+ non è installato in questa directory.',
850
- uninstall_aborted: (error) => "Disinstallazione interrotta: " + error + "",
851
- 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.',
852
903
  uninstall_removing: 'Rimozione...',
853
904
  uninstall_done: (n) => `✅ BMAD+ rimosso (${n} elementi)`,
854
905
  uninstall_output_kept: '📁 _bmad-output/ conservato (contiene file)',
@@ -870,10 +921,11 @@ const LANGUAGES = {
870
921
  guide_example_osint: '🔍 OSINT: "Shadow, investigate John Doe"',
871
922
  guide_memory: '🧠 Memoria persistente',
872
923
  guide_dev_studio: '🏗️ Dev Studio',
873
- guide_example_memory_1: '🧠 Memoria: "Zecher, scansiona progetti in D:\\DEV"',
924
+ guide_example_memory_1: '🧠 Memoria: "Zecher, scansiona progetti in ~/projects"',
874
925
  guide_example_memory_2: '🧠 Memoria: "Zecher, dove eravamo?"',
875
926
  guide_example_memory_3: '🧠 Memoria: "Zecher, consolida la memoria"',
876
- 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à"',
877
929
  guide_example_dev_studio_2: '🏗️ Dev Studio: "Bezalel, progetta l\'architettura"',
878
930
  guide_example_dev_studio_3: '🏗️ Dev Studio: "Oholiab, implementa la storia S1"',
879
931
  brain_detected: 'Cervello esistente rilevato',
@@ -5,6 +5,8 @@
5
5
  const adapters = require('../../build/generate-adapters');
6
6
 
7
7
  module.exports = {
8
- get IDE_CONFIGS() { return adapters.IDE_CONFIGS; },
8
+ get IDE_CONFIGS() {
9
+ return adapters.IDE_CONFIGS;
10
+ },
9
11
  buildIDEConfigs: adapters.buildIDEConfigs,
10
12
  };