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.
- package/.sinapse-ai/data/entity-registry.yaml +777 -881
- package/.sinapse-ai/data/registry-update-log.jsonl +2 -0
- package/.sinapse-ai/development/agents/sinapse-orqx.md +599 -443
- package/.sinapse-ai/install-manifest.yaml +6 -6
- package/bin/cli.js +116 -75
- package/package.json +2 -1
- package/packages/installer/src/wizard/i18n.js +2 -2
- package/packages/installer/src/wizard/index.js +14 -0
- package/packages/installer/src/wizard/questions.js +3 -3
- package/sinapse/agents/sinapse-orqx.md +32 -14
- package/squads/claude-code-mastery/CHANGELOG.md +22 -0
- package/squads/claude-code-mastery/README.md +146 -0
- package/squads/claude-code-mastery/agents/claude-mastery-chief.md +554 -0
- package/squads/claude-code-mastery/agents/config-engineer.md +865 -0
- package/squads/claude-code-mastery/agents/hooks-architect.md +1013 -0
- package/squads/claude-code-mastery/agents/mcp-integrator.md +791 -0
- package/squads/claude-code-mastery/agents/project-integrator.md +1196 -0
- package/squads/claude-code-mastery/agents/roadmap-sentinel.md +931 -0
- package/squads/claude-code-mastery/agents/skill-craftsman.md +1250 -0
- package/squads/claude-code-mastery/agents/swarm-orqx.md +1008 -0
- package/squads/claude-code-mastery/checklists/agent-team-readiness-checklist.md +88 -0
- package/squads/claude-code-mastery/checklists/brownfield-readiness-checklist.md +91 -0
- package/squads/claude-code-mastery/checklists/change-checklist.md +75 -0
- package/squads/claude-code-mastery/checklists/context-rot-checklist.md +114 -0
- package/squads/claude-code-mastery/checklists/integration-audit-checklist.md +104 -0
- package/squads/claude-code-mastery/checklists/multi-agent-review-checklist.md +77 -0
- package/squads/claude-code-mastery/checklists/pre-push-checklist.md +79 -0
- package/squads/claude-code-mastery/data/ci-cd-patterns.yaml +412 -0
- package/squads/claude-code-mastery/data/claude-code-quick-ref.yaml +314 -0
- package/squads/claude-code-mastery/data/hook-patterns.yaml +512 -0
- package/squads/claude-code-mastery/data/mcp-integration-catalog.yaml +323 -0
- package/squads/claude-code-mastery/data/project-type-signatures.yaml +335 -0
- package/squads/claude-code-mastery/scripts/validate-setup.js +163 -0
- package/squads/claude-code-mastery/squad.yaml +205 -0
- package/squads/claude-code-mastery/tasks/audit-integration.md +219 -0
- package/squads/claude-code-mastery/tasks/audit-settings.md +206 -0
- package/squads/claude-code-mastery/tasks/audit-setup.md +225 -0
- package/squads/claude-code-mastery/tasks/brownfield-setup.md +322 -0
- package/squads/claude-code-mastery/tasks/ci-cd-setup.md +335 -0
- package/squads/claude-code-mastery/tasks/claude-md-engineer.md +334 -0
- package/squads/claude-code-mastery/tasks/configure-claude-code.md +215 -0
- package/squads/claude-code-mastery/tasks/context-rot-audit.md +329 -0
- package/squads/claude-code-mastery/tasks/create-agent-definition.md +278 -0
- package/squads/claude-code-mastery/tasks/create-rules.md +206 -0
- package/squads/claude-code-mastery/tasks/create-team-topology.md +258 -0
- package/squads/claude-code-mastery/tasks/diagnose.md +166 -0
- package/squads/claude-code-mastery/tasks/enterprise-config.md +346 -0
- package/squads/claude-code-mastery/tasks/hook-designer.md +272 -0
- package/squads/claude-code-mastery/tasks/integrate-project.md +304 -0
- package/squads/claude-code-mastery/tasks/mcp-integration-plan.md +229 -0
- package/squads/claude-code-mastery/tasks/mcp-workflow.md +285 -0
- package/squads/claude-code-mastery/tasks/multi-project-setup.md +228 -0
- package/squads/claude-code-mastery/tasks/optimize-context.md +217 -0
- package/squads/claude-code-mastery/tasks/optimize-workflow.md +226 -0
- package/squads/claude-code-mastery/tasks/parallel-decomposition.md +293 -0
- package/squads/claude-code-mastery/tasks/permission-strategy.md +266 -0
- package/squads/claude-code-mastery/tasks/sandbox-setup.md +279 -0
- package/squads/claude-code-mastery/tasks/setup-repository.md +230 -0
- package/squads/claude-code-mastery/tasks/setup-wizard.md +236 -0
- package/squads/claude-code-mastery/tasks/worktree-strategy.md +320 -0
- package/squads/claude-code-mastery/templates/claude-md-fullstack.md +147 -0
- package/squads/claude-code-mastery/templates/claude-md-library.md +175 -0
- package/squads/claude-code-mastery/templates/claude-md-microservices.md +186 -0
- package/squads/claude-code-mastery/templates/claude-md-mobile.md +198 -0
- package/squads/claude-code-mastery/templates/claude-md-monorepo.md +139 -0
- package/squads/claude-code-mastery/templates/github-actions-claude-ci.yml +348 -0
- package/squads/claude-code-mastery/templates/github-actions-claude-review.yml +179 -0
- package/squads/claude-code-mastery/workflows/wf-audit-complete.yaml +140 -0
- package/squads/claude-code-mastery/workflows/wf-knowledge-update.yaml +165 -0
- 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.
|
|
11
|
-
generated_at: "2026-03-
|
|
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:
|
|
1220
|
+
hash: sha256:a5adb8a0ba825a6365c8d395f9c04e89ceca36601060b5af2222e524cdd54326
|
|
1221
1221
|
type: data
|
|
1222
|
-
size:
|
|
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:
|
|
1384
|
+
hash: sha256:8eae456af41fe407facbd63ce6a9b8613b2da126b8847d74a140496c3cf6dcee
|
|
1385
1385
|
type: agent
|
|
1386
|
-
size:
|
|
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.
|
|
53
|
-
|
|
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
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
259
|
+
writtenAgents.add(file);
|
|
222
260
|
}
|
|
223
261
|
}
|
|
224
262
|
}
|
|
225
|
-
console.log(` ${GREEN}OK${NC} ${
|
|
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:
|
|
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}${
|
|
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 (
|
|
569
|
-
const
|
|
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
|
-
|
|
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
|
-
//
|
|
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(
|
|
644
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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} ${
|
|
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 (${
|
|
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 (${
|
|
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 =
|
|
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}${
|
|
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.
|
|
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:
|
|
328
|
-
let currentLanguage = '
|
|
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('
|
|
64
|
+
message: colors.primary('Select your LLM:'),
|
|
65
65
|
choices: [
|
|
66
66
|
{
|
|
67
|
-
name: colors.highlight('Claude Code') + colors.dim(' (
|
|
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: '
|
|
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
|
|
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
|
-
|
|
28
|
+
18 squads · 175 agents · 1,370 tasks
|
|
23
29
|
|
|
24
|
-
👑 Imperator — Sinapse Master
|
|
30
|
+
👑 Imperator — Sinapse Master activated
|
|
25
31
|
|
|
26
|
-
|
|
27
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 |
|
|
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:**
|
|
614
|
+
**Total ecosystem:** 18 squads, 175 agents, 1,370 tasks
|
|
597
615
|
|
|
598
616
|
## Cross-Squad Handoffs
|
|
599
|
-
- **
|
|
600
|
-
- **
|
|
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
|