sinapse-ai 7.1.0 → 7.3.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 (70) hide show
  1. package/.sinapse-ai/data/entity-registry.yaml +777 -881
  2. package/.sinapse-ai/data/registry-update-log.jsonl +2 -0
  3. package/.sinapse-ai/development/agents/sinapse-orqx.md +599 -443
  4. package/.sinapse-ai/install-manifest.yaml +6 -6
  5. package/bin/cli.js +116 -75
  6. package/package.json +2 -1
  7. package/packages/installer/src/wizard/i18n.js +2 -2
  8. package/packages/installer/src/wizard/index.js +14 -0
  9. package/packages/installer/src/wizard/questions.js +3 -3
  10. package/sinapse/agents/sinapse-orqx.md +32 -14
  11. package/squads/claude-code-mastery/CHANGELOG.md +22 -0
  12. package/squads/claude-code-mastery/README.md +146 -0
  13. package/squads/claude-code-mastery/agents/claude-mastery-chief.md +554 -0
  14. package/squads/claude-code-mastery/agents/config-engineer.md +865 -0
  15. package/squads/claude-code-mastery/agents/hooks-architect.md +1013 -0
  16. package/squads/claude-code-mastery/agents/mcp-integrator.md +791 -0
  17. package/squads/claude-code-mastery/agents/project-integrator.md +1196 -0
  18. package/squads/claude-code-mastery/agents/roadmap-sentinel.md +931 -0
  19. package/squads/claude-code-mastery/agents/skill-craftsman.md +1250 -0
  20. package/squads/claude-code-mastery/agents/swarm-orqx.md +1008 -0
  21. package/squads/claude-code-mastery/checklists/agent-team-readiness-checklist.md +88 -0
  22. package/squads/claude-code-mastery/checklists/brownfield-readiness-checklist.md +91 -0
  23. package/squads/claude-code-mastery/checklists/change-checklist.md +75 -0
  24. package/squads/claude-code-mastery/checklists/context-rot-checklist.md +114 -0
  25. package/squads/claude-code-mastery/checklists/integration-audit-checklist.md +104 -0
  26. package/squads/claude-code-mastery/checklists/multi-agent-review-checklist.md +77 -0
  27. package/squads/claude-code-mastery/checklists/pre-push-checklist.md +79 -0
  28. package/squads/claude-code-mastery/data/ci-cd-patterns.yaml +412 -0
  29. package/squads/claude-code-mastery/data/claude-code-quick-ref.yaml +314 -0
  30. package/squads/claude-code-mastery/data/hook-patterns.yaml +512 -0
  31. package/squads/claude-code-mastery/data/mcp-integration-catalog.yaml +323 -0
  32. package/squads/claude-code-mastery/data/project-type-signatures.yaml +335 -0
  33. package/squads/claude-code-mastery/scripts/validate-setup.js +163 -0
  34. package/squads/claude-code-mastery/squad.yaml +205 -0
  35. package/squads/claude-code-mastery/tasks/audit-integration.md +219 -0
  36. package/squads/claude-code-mastery/tasks/audit-settings.md +206 -0
  37. package/squads/claude-code-mastery/tasks/audit-setup.md +225 -0
  38. package/squads/claude-code-mastery/tasks/brownfield-setup.md +322 -0
  39. package/squads/claude-code-mastery/tasks/ci-cd-setup.md +335 -0
  40. package/squads/claude-code-mastery/tasks/claude-md-engineer.md +334 -0
  41. package/squads/claude-code-mastery/tasks/configure-claude-code.md +215 -0
  42. package/squads/claude-code-mastery/tasks/context-rot-audit.md +329 -0
  43. package/squads/claude-code-mastery/tasks/create-agent-definition.md +278 -0
  44. package/squads/claude-code-mastery/tasks/create-rules.md +206 -0
  45. package/squads/claude-code-mastery/tasks/create-team-topology.md +258 -0
  46. package/squads/claude-code-mastery/tasks/diagnose.md +166 -0
  47. package/squads/claude-code-mastery/tasks/enterprise-config.md +346 -0
  48. package/squads/claude-code-mastery/tasks/hook-designer.md +272 -0
  49. package/squads/claude-code-mastery/tasks/integrate-project.md +304 -0
  50. package/squads/claude-code-mastery/tasks/mcp-integration-plan.md +229 -0
  51. package/squads/claude-code-mastery/tasks/mcp-workflow.md +285 -0
  52. package/squads/claude-code-mastery/tasks/multi-project-setup.md +228 -0
  53. package/squads/claude-code-mastery/tasks/optimize-context.md +217 -0
  54. package/squads/claude-code-mastery/tasks/optimize-workflow.md +226 -0
  55. package/squads/claude-code-mastery/tasks/parallel-decomposition.md +293 -0
  56. package/squads/claude-code-mastery/tasks/permission-strategy.md +266 -0
  57. package/squads/claude-code-mastery/tasks/sandbox-setup.md +279 -0
  58. package/squads/claude-code-mastery/tasks/setup-repository.md +230 -0
  59. package/squads/claude-code-mastery/tasks/setup-wizard.md +236 -0
  60. package/squads/claude-code-mastery/tasks/worktree-strategy.md +320 -0
  61. package/squads/claude-code-mastery/templates/claude-md-fullstack.md +147 -0
  62. package/squads/claude-code-mastery/templates/claude-md-library.md +175 -0
  63. package/squads/claude-code-mastery/templates/claude-md-microservices.md +186 -0
  64. package/squads/claude-code-mastery/templates/claude-md-mobile.md +198 -0
  65. package/squads/claude-code-mastery/templates/claude-md-monorepo.md +139 -0
  66. package/squads/claude-code-mastery/templates/github-actions-claude-ci.yml +348 -0
  67. package/squads/claude-code-mastery/templates/github-actions-claude-review.yml +179 -0
  68. package/squads/claude-code-mastery/workflows/wf-audit-complete.yaml +140 -0
  69. package/squads/claude-code-mastery/workflows/wf-knowledge-update.yaml +165 -0
  70. package/squads/claude-code-mastery/workflows/wf-project-setup.yaml +192 -0
@@ -7,8 +7,8 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 7.1.0
11
- generated_at: "2026-03-26T01:21:15.416Z"
10
+ version: 7.3.0
11
+ generated_at: "2026-03-27T03:11:18.546Z"
12
12
  generator: scripts/generate-install-manifest.js
13
13
  file_count: 1082
14
14
  files:
@@ -1217,9 +1217,9 @@ files:
1217
1217
  type: data
1218
1218
  size: 9586
1219
1219
  - path: data/entity-registry.yaml
1220
- hash: sha256:b5d51b4bdde59ce778d619c8e7e8c2797f277ba95670983a51b81b3b5811cfe9
1220
+ hash: sha256:a5adb8a0ba825a6365c8d395f9c04e89ceca36601060b5af2222e524cdd54326
1221
1221
  type: data
1222
- size: 514036
1222
+ size: 511414
1223
1223
  - path: data/learned-patterns.yaml
1224
1224
  hash: sha256:24ac0b160615583a0ff783d3da8af80b7f94191575d6db2054ec8e10a3f945dc
1225
1225
  type: data
@@ -1381,9 +1381,9 @@ files:
1381
1381
  type: agent
1382
1382
  size: 1368
1383
1383
  - path: development/agents/sinapse-orqx.md
1384
- hash: sha256:c891e20ecba2aadbba81003d365258088a7ea7c71ad1d7ec28836206a0e4bd98
1384
+ hash: sha256:8eae456af41fe407facbd63ce6a9b8613b2da126b8847d74a140496c3cf6dcee
1385
1385
  type: agent
1386
- size: 19614
1386
+ size: 31330
1387
1387
  - path: development/agents/sprint-lead.md
1388
1388
  hash: sha256:fccb55b79210cc63d7fa0b4e383d06a0dff5c24f1e3b851ab965564e8aef0aa2
1389
1389
  type: agent
package/bin/cli.js CHANGED
@@ -48,10 +48,13 @@ function getSquads(baseDir) {
48
48
  const squads = [];
49
49
  let entries;
50
50
  try {
51
- entries = fs.readdirSync(baseDir).filter(d =>
52
- d.startsWith('squad-') && !d.includes('.deprecated') &&
53
- fs.statSync(path.join(baseDir, d)).isDirectory()
54
- );
51
+ entries = fs.readdirSync(baseDir).filter(d => {
52
+ if (d.includes('.deprecated') || d.startsWith('.')) return false;
53
+ const dirPath = path.join(baseDir, d);
54
+ if (!fs.statSync(dirPath).isDirectory()) return false;
55
+ // Include squad-* dirs OR any dir with a squad.yaml manifest
56
+ return d.startsWith('squad-') || fs.existsSync(path.join(dirPath, 'squad.yaml'));
57
+ });
55
58
  } catch { return squads; }
56
59
 
57
60
  for (const dir of entries) {
@@ -124,10 +127,58 @@ function toForwardSlash(p) {
124
127
  return p.replace(/\\/g, '/');
125
128
  }
126
129
 
130
+ /**
131
+ * Prompt user to select LLM(s) — inquirer checkbox with readline fallback.
132
+ * @returns {Promise<string>} 'claude-code' | 'codex' | 'both'
133
+ */
134
+ async function promptLlmChoice() {
135
+ try {
136
+ const inquirer = require('inquirer');
137
+ const { llms } = await inquirer.prompt([{
138
+ type: 'checkbox',
139
+ name: 'llms',
140
+ message: 'Escolha sua LLM (espaco seleciona, enter confirma):',
141
+ choices: [
142
+ { name: 'Claude Code (Recomendado)', value: 'claude-code', checked: true },
143
+ { name: 'Codex CLI', value: 'codex' },
144
+ ],
145
+ }]);
146
+ if (llms.length === 0) return 'claude-code'; // default if none selected
147
+ if (llms.length === 2) return 'both';
148
+ return llms[0];
149
+ } catch {
150
+ // Fallback: readline numbered choice
151
+ const readline = require('readline');
152
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
153
+ return new Promise((resolve) => {
154
+ console.log(`${CYAN} Escolha sua LLM:${NC}`);
155
+ console.log(` ${GREEN}1${NC}) Claude Code ${DIM}(Recomendado)${NC}`);
156
+ console.log(` ${GREEN}2${NC}) Codex CLI`);
157
+ console.log(` ${GREEN}3${NC}) Ambos`);
158
+ console.log('');
159
+ rl.question(` ${BOLD}Opcao [1/2/3]:${NC} `, (answer) => {
160
+ rl.close();
161
+ const choice = (answer || '1').trim();
162
+ if (choice === '2') resolve('codex');
163
+ else if (choice === '3') resolve('both');
164
+ else resolve('claude-code');
165
+ });
166
+ });
167
+ }
168
+ }
169
+
127
170
  // ── Global Install ───────────────────────────────────────────────────────────
128
171
 
129
- function cmdInstallGlobal() {
172
+ async function cmdInstallGlobal() {
130
173
  header();
174
+ console.log(`${BOLD} Bem-vindo ao SINAPSE AI!${NC}`);
175
+ console.log(`${DIM} Vamos configurar seu copiloto de inteligencia artificial.${NC}`);
176
+ console.log('');
177
+
178
+ // LLM selection (inquirer checkbox with readline fallback)
179
+ const llmChoice = await promptLlmChoice();
180
+
181
+ console.log('');
131
182
  console.log(`${BOLD}Installing Sinapse globally...${NC}\n`);
132
183
 
133
184
  // Validate package — squads live in squads/ subdirectory
@@ -164,7 +215,7 @@ function cmdInstallGlobal() {
164
215
  console.log(` ${GREEN}OK${NC} sinapse (master, ${masterAgents} agents)`);
165
216
  }
166
217
 
167
- // Phase 2: Generate global commands
218
+ // Phase 2: Generate orqx commands
168
219
  console.log(`\n${CYAN}Phase 2:${NC} Generating agent commands`);
169
220
  fs.mkdirSync(CLAUDE_COMMANDS_DIR, { recursive: true });
170
221
 
@@ -175,23 +226,10 @@ function cmdInstallGlobal() {
175
226
  }
176
227
  } catch {}
177
228
 
178
- let cmdCount = 0;
179
229
  const sinapseBase = toForwardSlash(SINAPSE_HOME);
230
+ const writtenAgents = new Set();
180
231
 
181
- // Also copy framework agent commands (sinapse-orqx, dev, qa, etc.) if they exist in package
182
- const frameworkCmdsDir = path.join(ROOT, '.claude', 'commands', 'SINAPSE', 'agents');
183
- if (fs.existsSync(frameworkCmdsDir)) {
184
- for (const f of fs.readdirSync(frameworkCmdsDir).filter(f => f.endsWith('.md'))) {
185
- let content = fs.readFileSync(path.join(frameworkCmdsDir, f), 'utf8');
186
- // Update paths to point to ~/.sinapse/
187
- content = content.replace(/\.sinapse-core\//g, `${sinapseBase}/.sinapse-core/`);
188
- fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, f), content);
189
- cmdCount++;
190
- }
191
- console.log(` ${GREEN}OK${NC} Framework agents — ${cmdCount} agents`);
192
- }
193
-
194
- // Generate commands only for orqx agents (user-facing orchestrators)
232
+ // Generate commands for orqx agents from squads (dynamic paths, always correct)
195
233
  for (const squad of squads) {
196
234
  const squadPath = `${sinapseBase}/${squad.name}`;
197
235
  const agentsDir = path.join(SINAPSE_HOME, squad.name, 'agents');
@@ -203,7 +241,7 @@ function cmdInstallGlobal() {
203
241
  const meta = extractAgentMeta(path.join(agentsDir, file));
204
242
  const cmdContent = generateCommandMd(agentId, meta.name, meta.icon, squad.name, squadPath, file);
205
243
  fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, `${agentId}.md`), cmdContent);
206
- cmdCount++;
244
+ writtenAgents.add(file);
207
245
  }
208
246
  }
209
247
 
@@ -212,17 +250,36 @@ function cmdInstallGlobal() {
212
250
  const masterAgentsDir = path.join(sinapseMasterDest, 'agents');
213
251
  if (fs.existsSync(masterAgentsDir)) {
214
252
  for (const file of fs.readdirSync(masterAgentsDir).filter(f => f.endsWith('.md'))) {
253
+ if (writtenAgents.has(file)) continue;
215
254
  const agentId = file.replace('.md', '');
216
- if (fs.existsSync(path.join(CLAUDE_COMMANDS_DIR, `${agentId}.md`))) continue; // skip if framework version exists
217
255
  const meta = extractAgentMeta(path.join(masterAgentsDir, file));
218
256
  const squadPath = `${sinapseBase}/sinapse`;
219
257
  const cmdContent = generateCommandMd(agentId, meta.name, meta.icon, 'sinapse', squadPath, file);
220
258
  fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, `${agentId}.md`), cmdContent);
221
- cmdCount++;
259
+ writtenAgents.add(file);
222
260
  }
223
261
  }
224
262
  }
225
- console.log(` ${GREEN}OK${NC} ${cmdCount} total command files`);
263
+ console.log(` ${GREEN}OK${NC} ${writtenAgents.size} total command files`);
264
+
265
+ // Phase 2b: Install global agents based on LLM choice
266
+ if (llmChoice === 'claude-code' || llmChoice === 'both') {
267
+ const globalAgentsDir = path.join(HOME, '.claude', 'agents');
268
+ fs.mkdirSync(globalAgentsDir, { recursive: true });
269
+ for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
270
+ fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(globalAgentsDir, f));
271
+ }
272
+ console.log(` ${GREEN}OK${NC} Claude Code global agents (${writtenAgents.size})`);
273
+ }
274
+
275
+ if (llmChoice === 'codex' || llmChoice === 'both') {
276
+ const codexAgentsDir = path.join(HOME, '.codex', 'agents');
277
+ fs.mkdirSync(codexAgentsDir, { recursive: true });
278
+ for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
279
+ fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(codexAgentsDir, f));
280
+ }
281
+ console.log(` ${GREEN}OK${NC} Codex global agents (${writtenAgents.size})`);
282
+ }
226
283
 
227
284
  // Phase 3: Generate squad-awareness.md
228
285
  console.log(`\n${CYAN}Phase 3:${NC} Generating squad-awareness rules`);
@@ -243,7 +300,8 @@ function cmdInstallGlobal() {
243
300
  installedAt: new Date().toISOString(),
244
301
  squads: squads.length,
245
302
  agents: totalAgents,
246
- commands: cmdCount,
303
+ commands: writtenAgents.size,
304
+ llm: llmChoice,
247
305
  platform: process.platform,
248
306
  };
249
307
  fs.writeFileSync(path.join(SINAPSE_HOME, 'metadata.json'), JSON.stringify(meta, null, 2));
@@ -252,23 +310,23 @@ function cmdInstallGlobal() {
252
310
  console.log(`\n${CYAN}Verification:${NC}`);
253
311
  verifyInstall();
254
312
 
255
- // Success
313
+ // Success message
314
+ let startCmd;
315
+ if (llmChoice === 'codex') startCmd = `Run ${CYAN}codex${NC} to start`;
316
+ else if (llmChoice === 'both') startCmd = `Run ${CYAN}sinapse${NC} or ${CYAN}codex${NC} to start`;
317
+ else startCmd = `Run ${CYAN}sinapse${NC} to start Claude Code with all agents`;
318
+
256
319
  console.log('');
257
320
  console.log(`${GREEN}══════════════════════════════════════════════════════════════${NC}`);
258
321
  console.log(`${GREEN} Sinapse installed successfully!${NC}`);
259
322
  console.log(`${GREEN}══════════════════════════════════════════════════════════════${NC}`);
260
323
  console.log('');
261
- console.log(` ${BOLD}${squads.length} squads${NC} | ${BOLD}${cmdCount} agents${NC} | All under ${CYAN}/SINAPSE:agents:*${NC}`);
262
- console.log('');
263
- console.log(` ${BOLD}Next steps:${NC}`);
264
- console.log(` 1. Restart your terminal (for PATH changes)`);
265
- console.log(` 2. Run ${CYAN}sinapse${NC} to start Claude Code with all agents`);
266
- console.log(` 3. Or: ${CYAN}claude --add-dir ~/.sinapse${NC}`);
324
+ console.log(` ${BOLD}${squads.length} squads${NC} | ${BOLD}${totalAgents} agents${NC} | ${BOLD}${writtenAgents.size} orqx commands${NC}`);
325
+ console.log(` ${startCmd}`);
267
326
  console.log('');
268
327
  console.log(` ${BOLD}Try an agent:${NC}`);
269
328
  console.log(` ${CYAN}/SINAPSE:agents:sinapse-orqx${NC}`);
270
329
  console.log(` ${CYAN}/SINAPSE:agents:brand-orqx${NC}`);
271
- console.log(` ${CYAN}/SINAPSE:agents:dev${NC}`);
272
330
  console.log('');
273
331
  }
274
332
 
@@ -565,23 +623,8 @@ async function cmdUpdateGlobal() {
565
623
  console.log(`${DIM} Vamos atualizar seu SINAPSE AI para a v${VERSION}.${NC}`);
566
624
  console.log('');
567
625
 
568
- // LLM selection (re-choose on every update)
569
- const readline = require('readline');
570
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
571
- const llmChoice = await new Promise((resolve) => {
572
- console.log(`${CYAN} Escolha sua LLM:${NC}`);
573
- console.log(` ${GREEN}1${NC}) Claude Code ${DIM}(Recomendado)${NC}`);
574
- console.log(` ${GREEN}2${NC}) Codex CLI`);
575
- console.log(` ${GREEN}3${NC}) Ambos`);
576
- console.log('');
577
- rl.question(` ${BOLD}Opcao [1/2/3]:${NC} `, (answer) => {
578
- rl.close();
579
- const choice = (answer || '1').trim();
580
- if (choice === '2') resolve('codex');
581
- else if (choice === '3') resolve('both');
582
- else resolve('claude-code');
583
- });
584
- });
626
+ // LLM selection (inquirer checkbox with readline fallback)
627
+ const llmChoice = await promptLlmChoice();
585
628
 
586
629
  console.log('');
587
630
  console.log(`${BOLD}Atualizando SINAPSE AI...${NC}\n`);
@@ -614,19 +657,9 @@ async function cmdUpdateGlobal() {
614
657
  fs.mkdirSync(CLAUDE_COMMANDS_DIR, { recursive: true });
615
658
 
616
659
  const sinapseBase = toForwardSlash(SINAPSE_HOME);
617
- let cmdCount = 0;
618
-
619
- const frameworkCmdsDir = path.join(ROOT, '.claude', 'commands', 'SINAPSE', 'agents');
620
- if (fs.existsSync(frameworkCmdsDir)) {
621
- for (const f of fs.readdirSync(frameworkCmdsDir).filter(f => f.endsWith('.md'))) {
622
- let content = fs.readFileSync(path.join(frameworkCmdsDir, f), 'utf8');
623
- content = content.replace(/\.sinapse-core\//g, `${sinapseBase}/.sinapse-core/`);
624
- fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, f), content);
625
- cmdCount++;
626
- }
627
- }
660
+ const writtenAgents = new Set();
628
661
 
629
- // Count total agents and generate orqx commands (skip if already copied from framework)
662
+ // Generate commands for orqx agents from squads (dynamic paths)
630
663
  let totalAgents = 0;
631
664
  for (const squad of squads) {
632
665
  const agentsDir = path.join(SINAPSE_HOME, squad.name, 'agents');
@@ -635,21 +668,29 @@ async function cmdUpdateGlobal() {
635
668
  totalAgents += allAgents.length;
636
669
  const orqxAgents = allAgents.filter(f => f.includes('-orqx'));
637
670
  for (const file of orqxAgents) {
638
- const destPath = path.join(CLAUDE_COMMANDS_DIR, file);
639
- if (fs.existsSync(destPath)) continue; // skip if already from framework
640
671
  const agentId = file.replace('.md', '');
641
672
  const meta = extractAgentMeta(path.join(agentsDir, file));
642
673
  const squadPath = `${sinapseBase}/${squad.name}`;
643
- fs.writeFileSync(destPath, generateCommandMd(agentId, meta.name, meta.icon, squad.name, squadPath, file));
644
- cmdCount++;
674
+ fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, file), generateCommandMd(agentId, meta.name, meta.icon, squad.name, squadPath, file));
675
+ writtenAgents.add(file);
645
676
  }
646
677
  }
647
- // Also count sinapse/ orqx agents
678
+
679
+ // Generate commands for sinapse/ orqx squad agents
648
680
  const sinapseAgentsDir = path.join(SINAPSE_HOME, 'sinapse', 'agents');
649
681
  if (fs.existsSync(sinapseAgentsDir)) {
650
- totalAgents += fs.readdirSync(sinapseAgentsDir).filter(f => f.endsWith('.md')).length;
682
+ const masterAgents = fs.readdirSync(sinapseAgentsDir).filter(f => f.endsWith('.md'));
683
+ totalAgents += masterAgents.length;
684
+ for (const file of masterAgents) {
685
+ if (writtenAgents.has(file)) continue;
686
+ const agentId = file.replace('.md', '');
687
+ const meta = extractAgentMeta(path.join(sinapseAgentsDir, file));
688
+ const squadPath = `${sinapseBase}/sinapse`;
689
+ fs.writeFileSync(path.join(CLAUDE_COMMANDS_DIR, file), generateCommandMd(agentId, meta.name, meta.icon, 'sinapse', squadPath, file));
690
+ writtenAgents.add(file);
691
+ }
651
692
  }
652
- console.log(` ${GREEN}OK${NC} ${cmdCount} command files (${totalAgents} agents total)`);
693
+ console.log(` ${GREEN}OK${NC} ${writtenAgents.size} command files (${totalAgents} agents total)`);
653
694
 
654
695
  // Phase 2b: Install global agents based on LLM choice
655
696
  if (llmChoice === 'claude-code' || llmChoice === 'both') {
@@ -659,7 +700,7 @@ async function cmdUpdateGlobal() {
659
700
  for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
660
701
  fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(globalAgentsDir, f));
661
702
  }
662
- console.log(` ${GREEN}OK${NC} Claude Code global agents (${cmdCount})`);
703
+ console.log(` ${GREEN}OK${NC} Claude Code global agents (${writtenAgents.size})`);
663
704
  }
664
705
 
665
706
  if (llmChoice === 'codex' || llmChoice === 'both') {
@@ -669,7 +710,7 @@ async function cmdUpdateGlobal() {
669
710
  for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
670
711
  fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(codexAgentsDir, f));
671
712
  }
672
- console.log(` ${GREEN}OK${NC} Codex global agents (${cmdCount})`);
713
+ console.log(` ${GREEN}OK${NC} Codex global agents (${writtenAgents.size})`);
673
714
  }
674
715
 
675
716
  // Phase 3: Regenerate awareness
@@ -682,7 +723,7 @@ async function cmdUpdateGlobal() {
682
723
  const meta = JSON.parse(fs.readFileSync(metaPath, 'utf8'));
683
724
  meta.updatedAt = new Date().toISOString();
684
725
  meta.squads = squads.length;
685
- meta.commands = cmdCount;
726
+ meta.commands = writtenAgents.size;
686
727
  fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2));
687
728
 
688
729
  let startCmd;
@@ -695,7 +736,7 @@ async function cmdUpdateGlobal() {
695
736
  console.log(`${GREEN} SINAPSE AI atualizado para v${VERSION}!${NC}`);
696
737
  console.log(`${GREEN}══════════════════════════════════════════════════════════════${NC}`);
697
738
  console.log('');
698
- console.log(` ${BOLD}${squads.length} squads${NC} | ${BOLD}${totalAgents} agents${NC} | ${BOLD}${cmdCount} orqx commands${NC}`);
739
+ console.log(` ${BOLD}${squads.length} squads${NC} | ${BOLD}${totalAgents} agents${NC} | ${BOLD}${writtenAgents.size} orqx commands${NC}`);
699
740
  console.log(` ${startCmd}`);
700
741
  console.log('');
701
742
  }
@@ -858,7 +899,7 @@ const command = args[0] || 'help';
858
899
  const isLocal = args.includes('--local');
859
900
 
860
901
  switch (command) {
861
- case 'install': isLocal ? cmdInstallLocal() : cmdInstallGlobal(); break;
902
+ case 'install': isLocal ? cmdInstallLocal() : cmdInstallGlobal().catch(e => { console.error(e.message); process.exit(1); }); break;
862
903
  case 'update': isLocal ? cmdUpdateLocal() : cmdUpdateGlobal().catch(e => { console.error(e.message); process.exit(1); }); break;
863
904
  case 'uninstall': cmdUninstall(); break;
864
905
  case 'list': cmdList(); break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinapse-ai",
3
- "version": "7.1.0",
3
+ "version": "7.3.0",
4
4
  "description": "SINAPSE AI: Framework de orquestracao de IA — 18 squads, 174 agentes especializados",
5
5
  "bin": {
6
6
  "sinapse": "bin/sinapse.js",
@@ -21,6 +21,7 @@
21
21
  ".claude/rules/",
22
22
  ".claude/hooks/",
23
23
  "squads/squad-*/**",
24
+ "squads/claude-code-mastery/**",
24
25
  "squads/sinapse/**",
25
26
  "sinapse/**",
26
27
  "install-squads.sh",
@@ -324,8 +324,8 @@ const TRANSLATIONS = {
324
324
  // es: removed — PT-BR hardcoded as default
325
325
  };
326
326
 
327
- // Current language (default: Portuguese)
328
- let currentLanguage = 'pt';
327
+ // Current language (default: English — worldwide product)
328
+ let currentLanguage = 'en';
329
329
 
330
330
  /**
331
331
  * Set current language
@@ -1123,6 +1123,20 @@ async function runWizard(options = {}) {
1123
1123
  console.log('Installation may be incomplete. Check logs in .sinapse/ directory.');
1124
1124
  }
1125
1125
 
1126
+ // Apply SINAPSE branding to Claude Code CLI (so both `sinapse` and `claude` show SINAPSE branding)
1127
+ if (answers.selectedLLM === 'claude-code' || answers.selectedLLM === 'both') {
1128
+ try {
1129
+ const brandingPatchPath = path.join(__dirname, '..', '..', '..', '..', 'scripts', 'sinapse-patch.js');
1130
+ if (fse.existsSync(brandingPatchPath)) {
1131
+ console.log('\n◆ Applying SINAPSE branding to Claude Code...\n');
1132
+ execSync(`node "${brandingPatchPath}"`, { stdio: 'inherit' });
1133
+ }
1134
+ } catch (error) {
1135
+ console.log(`\n⚠️ Branding patch skipped: ${error.message}`);
1136
+ console.log(' You can apply it later with: sinapse brand\n');
1137
+ }
1138
+ }
1139
+
1126
1140
  // Show completion with LLM label
1127
1141
  showCompletion({ llmLabel: llmLabel(answers.selectedLLM), llmValue: answers.selectedLLM });
1128
1142
 
@@ -61,10 +61,10 @@ function getLLMQuestion() {
61
61
  return {
62
62
  type: 'list',
63
63
  name: 'selectedLLM',
64
- message: colors.primary('Escolha sua LLM:'),
64
+ message: colors.primary('Select your LLM:'),
65
65
  choices: [
66
66
  {
67
- name: colors.highlight('Claude Code') + colors.dim(' (Recomendado)'),
67
+ name: colors.highlight('Claude Code') + colors.dim(' (Recommended)'),
68
68
  value: 'claude-code',
69
69
  },
70
70
  {
@@ -72,7 +72,7 @@ function getLLMQuestion() {
72
72
  value: 'codex',
73
73
  },
74
74
  {
75
- name: 'Ambos',
75
+ name: 'Both',
76
76
  value: 'both',
77
77
  },
78
78
  ],
@@ -1,6 +1,6 @@
1
1
  # Agent: Imperator — Sinapse Master
2
2
 
3
- > ACTIVATION-NOTICE: You are now Imperator — the supreme orchestrator of the SINAPSE ecosystem. You have authority over all 17 specialized squads and 12 framework agents (151 total). You do not execute domain work yourself — you diagnose, route, coordinate, and synthesize across the entire ecosystem. Every request passes through you first. You are the CEO of this AI workforce.
3
+ > ACTIVATION-NOTICE: You are now Imperator — the supreme orchestrator of the SINAPSE ecosystem. You have authority over all 18 specialized squads (175 agents total). You do not execute domain work yourself — you diagnose, route, coordinate, and synthesize across the entire ecosystem. Every request passes through you first. You are the CEO of this AI workforce.
4
4
 
5
5
  ## ACTIVATION INSTRUCTIONS — MANDATORY ON LOAD
6
6
 
@@ -13,22 +13,37 @@ When this agent is activated, you MUST display this greeting EXACTLY as your fir
13
13
  ╚════██║██║██║╚██╗██║██╔══██║██╔═══╝ ╚════██║██╔══╝
14
14
  ███████║██║██║ ╚████║██║ ██║██║ ███████║███████╗
15
15
  ╚══════╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝
16
+ ██████╗ ██████╗ ██████╗ ██╗ ██╗
17
+ ██╔═══██╗██╔══██╗██╔═══██╗╚██╗██╔╝
18
+ ██║ ██║██████╔╝██║ ██║ ╚███╔╝
19
+ ██║ ██║██╔══██╗██║▄▄ ██║ ██╔██╗
20
+ ╚██████╔╝██║ ██║╚██████╔╝██╔╝ ██╗
21
+ ╚═════╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ╚═╝ ╚═╝
16
22
  ```
17
23
 
18
24
  Then display:
19
25
 
20
26
  ```
21
27
  AI Agent Squads for Claude Code
22
- v1.0 · 17 squads · 151 agents · 1400+ tasks
28
+ 18 squads · 175 agents · 1,370 tasks
23
29
 
24
- 👑 Imperator — Sinapse Master ativado
30
+ 👑 Imperator — Sinapse Master activated
25
31
 
26
- O que você precisa? Descreva seu objetivo e eu vou
27
- diagnosticar o dominio e rotear para o agent certo.
32
+ Describe your goal and I'll diagnose the domain
33
+ and route to the right agent.
34
+
35
+ Key Commands:
36
+ *route {request} — Diagnose and route to the right squad
37
+ *plan {initiative} — Design a multi-squad execution plan
38
+ *status — Report on all squads and capabilities
39
+ *onboard — Guided tour of the SINAPSE ecosystem
40
+ *help — Show all commands and squad overview
28
41
  ```
29
42
 
30
43
  After the greeting, HALT and await user input. Do NOT do anything else.
31
44
 
45
+ If the user asks about SINAPSE, how it works, or how to use it, execute the `*onboard` task from `tasks/onboard-user.md` to provide a guided walkthrough of the ecosystem, available squads, commands, and workflows.
46
+
32
47
  ## COMPLETE AGENT DEFINITION
33
48
 
34
49
  ```yaml
@@ -43,7 +58,7 @@ agent:
43
58
  whenToUse: "ALWAYS as the default agent. Imperator is the first point of contact for EVERY request. Routes directly to @specialist when clear, or to @{domain}-orqx when complex."
44
59
 
45
60
  persona:
46
- role: "Supreme Orchestrator of all 17 SINAPSE Squads + 12 Framework Agents"
61
+ role: "Supreme Orchestrator of all 18 SINAPSE Squads (175 agents)"
47
62
  identity: >
48
63
  The strategic mind at the top of the SINAPSE hierarchy. Imperator
49
64
  sees across all domains — branding, commerce, content, copy, animations,
@@ -92,7 +107,7 @@ intelligent_routing:
92
107
  - "Assessment de seguranca" → @cyber-orqx
93
108
 
94
109
  # ══════════════════════════════════════════════════════════════════════════════
95
- # COMPLETE ROUTING TABLE — ALL 15 SQUADS
110
+ # COMPLETE ROUTING TABLE — ALL 18 SQUADS
96
111
  # ══════════════════════════════════════════════════════════════════════════════
97
112
 
98
113
  routing_table:
@@ -444,7 +459,7 @@ commands:
444
459
  description: "Design a multi-squad execution plan for a complex initiative"
445
460
  args: "{initiative_description}"
446
461
  - name: "*status"
447
- description: "Report on all 15 squads — capabilities, agents, tasks"
462
+ description: "Report on all 18 squads — capabilities, agents, tasks"
448
463
  args: "[--squad {name}] [--verbose]"
449
464
  - name: "*brief"
450
465
  description: "Generate a strategic brief leveraging relevant squads"
@@ -513,7 +528,7 @@ framework_compatibility:
513
528
  description: >
514
529
  Without any external framework, Imperator is the top-level orchestrator.
515
530
  Users invoke /sinapse:agents:sinapse-orqx directly, and Imperator routes
516
- to all 15 squads autonomously.
531
+ to all 18 squads autonomously.
517
532
  orchestrator: "sinapse-orqx (Imperator)"
518
533
 
519
534
  with_sinapse:
@@ -591,11 +606,14 @@ Imperator can provide ecosystem-wide insights by combining capabilities across s
591
606
  | 12 | claude | claude | Nucleus | Claude Code, prompt engineering |
592
607
  | 13 | council | council | Zenith | Conselho estrategico, advisory |
593
608
  | 14 | storytelling | narrative | Arc | Storytelling, pitch, apresentacao |
594
- | 15 | cybersecurity | cyber | Fortress | Seguranca, compliance, pentest |
609
+ | 15 | cybersecurity | cyber | Fortress | Cybersecurity, compliance, pentest |
610
+ | 16 | cloning | cloning | Helix | Cognitive cloning, mental DNA extraction |
611
+ | 17 | courses | courses | Syllabus | Course creation, workshops, ebooks |
612
+ | 18 | claude-code-mastery | claude | Nucleus | Claude Code mastery, prompt engineering |
595
613
 
596
- **Total ecosystem:** 15 squads, 127+ agents, 965+ tasks, 127+ KBs, 49+ workflows
614
+ **Total ecosystem:** 18 squads, 175 agents, 1,370 tasks
597
615
 
598
616
  ## Cross-Squad Handoffs
599
- - **Recebe de:** Every squad (escalations, cross-squad requests)
600
- - **Envia para:** Every squad (routed work, coordination directives)
601
- - **Coordinates with:** All squad orchestrators
617
+ - **Receives from:** Every squad (escalations, cross-squad requests)
618
+ - **Sends to:** Every squad (routed work, coordination directives)
619
+ - **Coordinates with:** All 18 squad orchestrators
@@ -0,0 +1,22 @@
1
+ # Changelog — claude-code-mastery
2
+
3
+ All notable changes to the Claude Code Mastery squad.
4
+
5
+ ## [1.0.0] - 2026-03-02
6
+
7
+ ### Added
8
+ - 8 specialist agents: claude-mastery-chief (Orion), hooks-architect (Latch), mcp-integrator (Piper), swarm-orqx (Nexus), config-engineer (Sigil), skill-craftsman (Anvil), project-integrator (Conduit), roadmap-sentinel (Vigil)
9
+ - 26 executable tasks across all agents
10
+ - 3 multi-phase workflows (wf-project-setup, wf-knowledge-update, wf-audit-complete)
11
+ - 5 knowledge base files (quick-ref, project-type-signatures, hook-patterns, ci-cd-patterns, mcp-catalog)
12
+ - 7 templates (5 CLAUDE.md project templates + 2 GitHub Actions workflows)
13
+ - 8 mind DNA summaries (disler, steipete, kieran-klaassen, reuven-cohen, superclaude-org, bmad-code-org, daniel-miessler, boris-cherny)
14
+ - 1 validation script (validate-setup.js)
15
+ - Tier architecture: Tier 0 (Diagnosis), Tier 1 (Core Mastery), Tier 2 (Strategic & Context)
16
+ - Handoff matrix with full routing between all agents
17
+ - SINAPSE integration bridge (agents, tasks, hooks, config mapping)
18
+
19
+ ### Architecture
20
+ - Entry agent: claude-mastery-chief (Orion) with 7-domain routing matrix
21
+ - Cross-cutting concern: all agents understand SINAPSE architecture
22
+ - Knowledge sources: Claude Code changelog, official docs, community resources