sinapse-ai 7.6.0 → 7.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,157 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ /**
5
+ * sinapse performance — Squad & Agent Performance Ranking
6
+ *
7
+ * Analyzes squad and agent completeness, ranking by:
8
+ * - Asset coverage (agents, tasks, KBs, workflows, templates, checklists)
9
+ * - Metadata completeness
10
+ * - Preferences tracking
11
+ * - Orchestrator enrichment level
12
+ *
13
+ * Usage:
14
+ * sinapse performance # Full ranking
15
+ * sinapse performance --json # JSON output
16
+ * sinapse performance --top 5 # Top 5 only
17
+ */
18
+
19
+ const fs = require('fs');
20
+ const path = require('path');
21
+
22
+ function findProjectRoot() {
23
+ let dir = process.cwd();
24
+ while (dir !== path.dirname(dir)) {
25
+ if (fs.existsSync(path.join(dir, '.sinapse-ai'))) return dir;
26
+ dir = path.dirname(dir);
27
+ }
28
+ return process.cwd();
29
+ }
30
+
31
+ function analyzeSquad(squadDir, squadName) {
32
+ const result = {
33
+ name: squadName,
34
+ agents: 0,
35
+ tasks: 0,
36
+ kbs: 0,
37
+ workflows: 0,
38
+ templates: 0,
39
+ checklists: 0,
40
+ hasMetadata: false,
41
+ hasPreferences: false,
42
+ orchestratorLines: 0,
43
+ score: 0,
44
+ };
45
+
46
+ // Count assets
47
+ const countMd = (subdir) => {
48
+ const dir = path.join(squadDir, subdir);
49
+ if (!fs.existsSync(dir)) return 0;
50
+ return fs.readdirSync(dir).filter((f) => f.endsWith('.md')).length;
51
+ };
52
+
53
+ const countAny = (subdir) => {
54
+ const dir = path.join(squadDir, subdir);
55
+ if (!fs.existsSync(dir)) return 0;
56
+ return fs.readdirSync(dir).filter((f) => !f.startsWith('.')).length;
57
+ };
58
+
59
+ result.agents = countMd('agents');
60
+ result.tasks = countMd('tasks');
61
+ // Try both naming conventions
62
+ result.kbs = countAny('knowledge-bases') || countAny('knowledge-base');
63
+ result.workflows = countAny('workflows');
64
+ result.templates = countMd('templates') || countAny('templates');
65
+ result.checklists = countMd('checklists') || countAny('checklists');
66
+
67
+ // Metadata check
68
+ const yamlPath = path.join(squadDir, 'squad.yaml');
69
+ if (fs.existsSync(yamlPath)) {
70
+ const content = fs.readFileSync(yamlPath, 'utf8');
71
+ result.hasMetadata = /agents_count|total_files/.test(content);
72
+ }
73
+
74
+ // Preferences check
75
+ result.hasPreferences = fs.existsSync(path.join(squadDir, 'preferences'));
76
+
77
+ // Orchestrator enrichment
78
+ const orqxFile = fs.readdirSync(path.join(squadDir, 'agents')).find((f) => f.includes('-orqx'));
79
+ if (orqxFile) {
80
+ const content = fs.readFileSync(path.join(squadDir, 'agents', orqxFile), 'utf8');
81
+ result.orchestratorLines = content.split('\n').length;
82
+ }
83
+
84
+ // Calculate score (weighted)
85
+ result.score =
86
+ (result.agents >= 6 ? 15 : result.agents * 2.5) +
87
+ (result.tasks >= 50 ? 25 : result.tasks * 0.5) +
88
+ (result.kbs >= 8 ? 15 : result.kbs * 1.875) +
89
+ (result.workflows >= 3 ? 10 : result.workflows * 3.33) +
90
+ (result.templates >= 3 ? 10 : result.templates * 3.33) +
91
+ (result.checklists >= 2 ? 5 : result.checklists * 2.5) +
92
+ (result.hasMetadata ? 5 : 0) +
93
+ (result.hasPreferences ? 5 : 0) +
94
+ (result.orchestratorLines >= 100 ? 10 : result.orchestratorLines * 0.1);
95
+
96
+ result.score = Math.round(result.score * 10) / 10;
97
+
98
+ return result;
99
+ }
100
+
101
+ async function runPerformance(options = {}) {
102
+ const root = findProjectRoot();
103
+ const squadsDir = path.join(root, 'squads');
104
+
105
+ if (!fs.existsSync(squadsDir)) {
106
+ console.error('No squads/ directory found.');
107
+ process.exit(1);
108
+ }
109
+
110
+ const squadDirs = fs.readdirSync(squadsDir)
111
+ .filter((d) => d.startsWith('squad-') && fs.statSync(path.join(squadsDir, d)).isDirectory());
112
+
113
+ const rankings = squadDirs
114
+ .map((d) => analyzeSquad(path.join(squadsDir, d), d))
115
+ .sort((a, b) => b.score - a.score);
116
+
117
+ const limit = options.top || rankings.length;
118
+ const display = rankings.slice(0, limit);
119
+
120
+ if (options.json) {
121
+ console.log(JSON.stringify({ rankings: display, total: rankings.length }, null, 2));
122
+ return;
123
+ }
124
+
125
+ // Pretty output
126
+ console.log(`\n SINAPSE Performance Ranking — ${rankings.length} Squads`);
127
+ console.log(` ${'═'.repeat(60)}\n`);
128
+
129
+ const maxScore = rankings[0]?.score || 100;
130
+
131
+ display.forEach((sq, i) => {
132
+ const rank = i + 1;
133
+ const barLen = Math.round((sq.score / maxScore) * 20);
134
+ const bar = '█'.repeat(barLen) + '░'.repeat(20 - barLen);
135
+ const medal = rank === 1 ? '🥇' : rank === 2 ? '🥈' : rank === 3 ? '🥉' : `#${rank}`;
136
+ const meta = sq.hasMetadata ? '✓' : '✗';
137
+ const pref = sq.hasPreferences ? '✓' : '✗';
138
+
139
+ console.log(` ${String(medal).padEnd(4)} ${sq.name.padEnd(25)} ${bar} ${sq.score.toFixed(1)}`);
140
+ console.log(` ${sq.agents}a ${sq.tasks}t ${sq.kbs}kb ${sq.workflows}wf ${sq.templates}tpl ${sq.checklists}ck | meta:${meta} pref:${pref} orqx:${sq.orchestratorLines}L`);
141
+ console.log('');
142
+ });
143
+ }
144
+
145
+ module.exports = { runPerformance };
146
+
147
+ if (require.main === module) {
148
+ const args = process.argv.slice(2);
149
+ const topIdx = args.indexOf('--top');
150
+ runPerformance({
151
+ json: args.includes('--json'),
152
+ top: topIdx >= 0 ? parseInt(args[topIdx + 1], 10) : undefined,
153
+ }).catch((err) => {
154
+ console.error(`Error: ${err.message}`);
155
+ process.exit(1);
156
+ });
157
+ }
@@ -0,0 +1,176 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ /**
5
+ * sinapse routing-intel — Routing Intelligence Analyzer
6
+ *
7
+ * Analyzes the routing configuration across all orchestrators:
8
+ * - Delegation matrix completeness
9
+ * - Cross-squad handoff coverage
10
+ * - Routing pattern conflicts
11
+ * - Agent reachability (can every agent be reached via routing?)
12
+ *
13
+ * Usage:
14
+ * sinapse routing-intel # Full routing analysis
15
+ * sinapse routing-intel analyze # Deep analysis with recommendations
16
+ * sinapse routing-intel --json # JSON output
17
+ */
18
+
19
+ const fs = require('fs');
20
+ const path = require('path');
21
+
22
+ function findProjectRoot() {
23
+ let dir = process.cwd();
24
+ while (dir !== path.dirname(dir)) {
25
+ if (fs.existsSync(path.join(dir, '.sinapse-ai'))) return dir;
26
+ dir = path.dirname(dir);
27
+ }
28
+ return process.cwd();
29
+ }
30
+
31
+ function extractDelegation(content) {
32
+ const delegations = [];
33
+ // Match delegation tables: | pattern | agent |
34
+ const tableRows = content.match(/\|[^|]+\|[^|]+\|/g) || [];
35
+ for (const row of tableRows) {
36
+ const cells = row.split('|').map((c) => c.trim()).filter(Boolean);
37
+ if (cells.length >= 2 && cells[1].startsWith('@')) {
38
+ delegations.push({ pattern: cells[0], target: cells[1] });
39
+ }
40
+ }
41
+
42
+ // Match inline delegations: → @agent, delegate to @agent
43
+ const inlineMatches = content.match(/(?:→|delegate to|route to)\s+@([\w-]+)/gi) || [];
44
+ for (const match of inlineMatches) {
45
+ const agentMatch = match.match(/@([\w-]+)/);
46
+ if (agentMatch) delegations.push({ pattern: 'inline', target: `@${agentMatch[1]}` });
47
+ }
48
+
49
+ return delegations;
50
+ }
51
+
52
+ function extractHandoffs(content) {
53
+ const handoffs = { inbound: [], outbound: [] };
54
+
55
+ // Look for inbound/outbound sections
56
+ const inboundMatch = content.match(/###?\s*Inbound[\s\S]*?(?=###?\s*Outbound|###?\s*[A-Z]|$)/i);
57
+ if (inboundMatch) {
58
+ const squads = inboundMatch[0].match(/@[\w-]+|squad-[\w-]+/g) || [];
59
+ handoffs.inbound = [...new Set(squads)];
60
+ }
61
+
62
+ const outboundMatch = content.match(/###?\s*Outbound[\s\S]*?(?=###?\s*[A-Z]|##\s|$)/i);
63
+ if (outboundMatch) {
64
+ const squads = outboundMatch[0].match(/@[\w-]+|squad-[\w-]+/g) || [];
65
+ handoffs.outbound = [...new Set(squads)];
66
+ }
67
+
68
+ return handoffs;
69
+ }
70
+
71
+ async function runRoutingIntel(options = {}) {
72
+ const root = findProjectRoot();
73
+ const squadsDir = path.join(root, 'squads');
74
+
75
+ if (!fs.existsSync(squadsDir)) {
76
+ console.error('No squads/ directory found.');
77
+ process.exit(1);
78
+ }
79
+
80
+ const squadDirs = fs.readdirSync(squadsDir)
81
+ .filter((d) => d.startsWith('squad-') && fs.statSync(path.join(squadsDir, d)).isDirectory());
82
+
83
+ const routingMap = [];
84
+ const allAgents = new Set();
85
+ const reachableAgents = new Set();
86
+
87
+ for (const squad of squadDirs) {
88
+ const agentsDir = path.join(squadsDir, squad, 'agents');
89
+ if (!fs.existsSync(agentsDir)) continue;
90
+
91
+ const agentFiles = fs.readdirSync(agentsDir).filter((f) => f.endsWith('.md'));
92
+ for (const file of agentFiles) {
93
+ const agentId = file.replace('.md', '');
94
+ allAgents.add(agentId);
95
+ }
96
+
97
+ // Find orchestrator
98
+ const orqxFile = agentFiles.find((f) => f.includes('-orqx'));
99
+ if (!orqxFile) continue;
100
+
101
+ const content = fs.readFileSync(path.join(agentsDir, orqxFile), 'utf8');
102
+ const delegations = extractDelegation(content);
103
+ const handoffs = extractHandoffs(content);
104
+
105
+ // Mark delegated agents as reachable
106
+ for (const d of delegations) {
107
+ const target = d.target.replace('@', '');
108
+ reachableAgents.add(target);
109
+ }
110
+
111
+ routingMap.push({
112
+ squad,
113
+ orchestrator: orqxFile.replace('.md', ''),
114
+ delegations: delegations.length,
115
+ handoffs,
116
+ hasRoutingIntel: /routing intelligence|routing table/i.test(content),
117
+ hasDelegationMatrix: /delegation matrix|delegation|delegacao/i.test(content),
118
+ });
119
+ }
120
+
121
+ // Find unreachable agents (not in any delegation)
122
+ const unreachable = [...allAgents].filter((a) => !reachableAgents.has(a) && !a.includes('-orqx'));
123
+
124
+ if (options.json) {
125
+ console.log(JSON.stringify({
126
+ squads: routingMap,
127
+ totalAgents: allAgents.size,
128
+ reachableAgents: reachableAgents.size,
129
+ unreachableAgents: unreachable,
130
+ coverage: Math.round((reachableAgents.size / allAgents.size) * 100),
131
+ }, null, 2));
132
+ return;
133
+ }
134
+
135
+ // Pretty output
136
+ console.log(`\n SINAPSE Routing Intelligence Report`);
137
+ console.log(` ${'═'.repeat(55)}\n`);
138
+
139
+ console.log(` Agents: ${allAgents.size} total | ${reachableAgents.size} reachable | ${unreachable.length} unreachable`);
140
+ console.log(` Coverage: ${Math.round((reachableAgents.size / allAgents.size) * 100)}%\n`);
141
+
142
+ console.log(` Squad Routing Matrix:`);
143
+ console.log(` ${'─'.repeat(55)}`);
144
+
145
+ for (const entry of routingMap) {
146
+ const routing = entry.hasRoutingIntel ? '✓' : '✗';
147
+ const deleg = entry.hasDelegationMatrix ? '✓' : '✗';
148
+ const inCount = entry.handoffs.inbound.length;
149
+ const outCount = entry.handoffs.outbound.length;
150
+
151
+ console.log(` ${entry.squad.padEnd(25)} ${entry.delegations}d | in:${inCount} out:${outCount} | routing:${routing} deleg:${deleg}`);
152
+ }
153
+
154
+ if (options.analyze && unreachable.length > 0) {
155
+ console.log(`\n Unreachable Agents (${unreachable.length}):`);
156
+ for (const agent of unreachable.slice(0, 15)) {
157
+ console.log(` ⚠ ${agent}`);
158
+ }
159
+ if (unreachable.length > 15) console.log(` ... and ${unreachable.length - 15} more`);
160
+ }
161
+
162
+ console.log('');
163
+ }
164
+
165
+ module.exports = { runRoutingIntel };
166
+
167
+ if (require.main === module) {
168
+ const args = process.argv.slice(2);
169
+ runRoutingIntel({
170
+ json: args.includes('--json'),
171
+ analyze: args.includes('analyze'),
172
+ }).catch((err) => {
173
+ console.error(`Error: ${err.message}`);
174
+ process.exit(1);
175
+ });
176
+ }
@@ -7,10 +7,10 @@
7
7
  # - SHA256 hashes for change detection
8
8
  # - File types for categorization
9
9
  #
10
- version: 7.6.0
11
- generated_at: "2026-04-01T02:05:35.822Z"
10
+ version: 7.7.1
11
+ generated_at: "2026-04-01T21:15:14.671Z"
12
12
  generator: scripts/generate-install-manifest.js
13
- file_count: 1104
13
+ file_count: 1107
14
14
  files:
15
15
  - path: cli/commands/config/index.js
16
16
  hash: sha256:66f111eceef0f60fa0a8904add783b615d55b01d5fe36408623c3dd828e702f6
@@ -20,6 +20,10 @@ files:
20
20
  hash: sha256:36f8e38ab767fa5478d8dabac548c66dc2c0fc521c216e954ac33fcea0ba597b
21
21
  type: cli
22
22
  size: 6720
23
+ - path: cli/commands/health/index.js
24
+ hash: sha256:7140286f6f0fcd283dcc0a6261dfe914ee50aae5c97ddd9e548ffa6a3279fe1e
25
+ type: cli
26
+ size: 8579
23
27
  - path: cli/commands/manifest/index.js
24
28
  hash: sha256:440df152d1be0d1700551206b512e47ce38ef1f6244eecebdf7df74888976250
25
29
  type: cli
@@ -100,6 +104,10 @@ files:
100
104
  hash: sha256:5f7ac17e3fd47ff9d3d4544f67b28f44b821097e0ce5eb2059e8550c0f54e4e1
101
105
  type: cli
102
106
  size: 12355
107
+ - path: cli/commands/performance/index.js
108
+ hash: sha256:aa2f14a846ff7301d9694fd1e50897e559b3c437d2eccb07e4f2ad21f9921c9c
109
+ type: cli
110
+ size: 5039
103
111
  - path: cli/commands/pro/index.js
104
112
  hash: sha256:be706f637b3f54d882a8e1d3ee953a40c7ae7b94ca3bfcafdd4d6865d0526964
105
113
  type: cli
@@ -116,6 +124,10 @@ files:
116
124
  hash: sha256:bc993858504617a233ce191ab44a438f675605022e43375d282f589a734b6c64
117
125
  type: cli
118
126
  size: 5320
127
+ - path: cli/commands/routing-intel/index.js
128
+ hash: sha256:f13824f426e7a2091024a20ecad0299d75abd46881bd0226b86a9207e6ecf3fa
129
+ type: cli
130
+ size: 5761
119
131
  - path: cli/commands/validate/index.js
120
132
  hash: sha256:93c39b64cd1a234ce848843c0a9b291a1f85f142e77485e281ebc0e7344afea2
121
133
  type: cli
package/bin/sinapse.js CHANGED
@@ -1077,6 +1077,40 @@ async function main() {
1077
1077
  showHelp();
1078
1078
  break;
1079
1079
 
1080
+ case 'health': {
1081
+ // Framework health analytics
1082
+ const { runHealth } = require('../.sinapse-ai/cli/commands/health/index.js');
1083
+ const healthArgs = args.slice(1);
1084
+ await runHealth({
1085
+ json: healthArgs.includes('--json'),
1086
+ fix: healthArgs.includes('--fix'),
1087
+ });
1088
+ break;
1089
+ }
1090
+
1091
+ case 'performance': {
1092
+ // Squad & agent performance ranking
1093
+ const { runPerformance } = require('../.sinapse-ai/cli/commands/performance/index.js');
1094
+ const perfArgs = args.slice(1);
1095
+ const topIdx = perfArgs.indexOf('--top');
1096
+ await runPerformance({
1097
+ json: perfArgs.includes('--json'),
1098
+ top: topIdx >= 0 ? parseInt(perfArgs[topIdx + 1], 10) : undefined,
1099
+ });
1100
+ break;
1101
+ }
1102
+
1103
+ case 'routing-intel': {
1104
+ // Routing intelligence analyzer
1105
+ const { runRoutingIntel } = require('../.sinapse-ai/cli/commands/routing-intel/index.js');
1106
+ const riArgs = args.slice(1);
1107
+ await runRoutingIntel({
1108
+ json: riArgs.includes('--json'),
1109
+ analyze: riArgs.includes('analyze'),
1110
+ });
1111
+ break;
1112
+ }
1113
+
1080
1114
  case undefined:
1081
1115
  // No arguments - launch Claude Code with SINAPSE branding
1082
1116
  launchSinapse([]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sinapse-ai",
3
- "version": "7.6.0",
3
+ "version": "7.7.1",
4
4
  "description": "SINAPSE AI: Framework de orquestracao de IA — 18 squads, 175 agentes especializados",
5
5
  "bin": {
6
6
  "sinapse": "bin/sinapse.js",
@@ -676,11 +676,17 @@ async function copyClaudeHooksFolder(projectRoot) {
676
676
 
677
677
  await fs.ensureDir(targetDir);
678
678
 
679
- // Only copy JS hooks that work standalone (no Python/shell deps)
679
+ // Copy CJS hooks that work standalone (no Python/shell deps)
680
680
  const HOOKS_TO_COPY = [
681
681
  'synapse-engine.cjs',
682
682
  'code-intel-pretool.cjs',
683
683
  'precompact-session-digest.cjs',
684
+ // v7.6.0 Constitutional enforcement hooks
685
+ 'enforce-architecture-first.cjs',
686
+ 'enforce-delegation.cjs',
687
+ 'enforce-story-gate.cjs',
688
+ 'secret-scanning.cjs',
689
+ 'write-path-validation.cjs',
684
690
  'README.md',
685
691
  ];
686
692
 
@@ -728,6 +734,32 @@ const HOOK_EVENT_MAP = {
728
734
  matcher: null,
729
735
  timeout: 10,
730
736
  },
737
+ // v7.6.0 Constitutional enforcement hooks
738
+ 'enforce-architecture-first.cjs': {
739
+ event: 'PreToolUse',
740
+ matcher: 'Write|Edit',
741
+ timeout: 5,
742
+ },
743
+ 'enforce-story-gate.cjs': {
744
+ event: 'PreToolUse',
745
+ matcher: 'Write|Edit',
746
+ timeout: 5,
747
+ },
748
+ 'write-path-validation.cjs': {
749
+ event: 'PreToolUse',
750
+ matcher: 'Write|Edit',
751
+ timeout: 5,
752
+ },
753
+ 'enforce-delegation.cjs': {
754
+ event: 'PreToolUse',
755
+ matcher: 'Write|Edit|Bash',
756
+ timeout: 5,
757
+ },
758
+ 'secret-scanning.cjs': {
759
+ event: 'PreToolUse',
760
+ matcher: 'Write|Edit',
761
+ timeout: 5,
762
+ },
731
763
  };
732
764
 
733
765
  /** Default event config for unmapped hooks (backwards compatible). */
@@ -68,3 +68,31 @@ Strategic and systems-oriented. Swarm thinks in terms of parallelism, isolation
68
68
  | **Inbound** | Any squad | When multi-agent orchestration is needed |
69
69
  | **Outbound** | squad-dev | When agent implementation patterns need coding |
70
70
  | **Outbound** | squad-devops | When worktree branches need merge/deploy coordination |
71
+
72
+ ## Activation Instructions
73
+
74
+ 1. Read this file completely
75
+ 2. Adopt the Swarm persona — systems-oriented, parallelism-focused
76
+ 3. Greet user with: "🐝 Swarm — Multi-Agent Orchestrator activated. Can this be parallelized?"
77
+ 4. Await user input
78
+
79
+ ## Available Workflows
80
+
81
+ | Workflow | Description | Agents Involved |
82
+ |----------|-------------|-----------------|
83
+ | `team-formation` | Design and spawn a multi-agent team | Swarm + target agents |
84
+ | `parallel-sprint` | Decompose and execute tasks in parallel | Swarm + worker agents |
85
+ | `worktree-isolation` | Setup isolated git worktrees for parallel work | Swarm + devops |
86
+
87
+ ## Routing Intelligence
88
+
89
+ | Request Pattern | Route To | Confidence |
90
+ |----------------|----------|------------|
91
+ | "team", "agents", "parallel", "swarm" | Handle directly | High |
92
+ | "worktree", "branch isolation", "parallel branches" | Handle directly | High |
93
+ | "hooks", "PreToolUse", "PostToolUse" | @hooks-architect | High |
94
+ | "MCP", "server", "tool integration" | @mcp-integrator | High |
95
+ | "config", "settings.json", "rules" | @config-engineer | High |
96
+ | "skill", "slash command", "workflow" | @skill-craftsman | High |
97
+ | "project setup", "install", "brownfield" | @project-integrator | High |
98
+ | "roadmap", "tracking", "changelog" | @roadmap-sentinel | High |
@@ -0,0 +1,15 @@
1
+ # Preferences Directory
2
+
3
+ > Diretorio para logs de preferencias por projeto/cliente.
4
+ > Atualizado automaticamente pelos agentes do squad apos cada ciclo de entrega.
5
+
6
+ ## Como usar
7
+
8
+ 1. Para cada novo projeto, criar `{projeto}-preferences.md`
9
+ 2. Agentes consultam antes de iniciar nova entrega
10
+ 3. Atualizar apos cada ciclo de aprovacao
11
+
12
+ ## Arquivos
13
+
14
+ - `README.md` — Este arquivo
15
+ - `{projeto}-preferences.md` — Um arquivo por projeto ativo
@@ -3,6 +3,19 @@ version: "1.0.0"
3
3
  short-title: "Claude Code Mastery Squad"
4
4
  description: "Squad especialista em Claude Code: hooks, MCP servers, subagents, skills, configuracao, context engineering, integracao de projetos e roadmap tracking."
5
5
  slashPrefix: SINAPSE
6
+
7
+ metadata:
8
+ created_at: "2026-03-16"
9
+ updated_at: "2026-04-01"
10
+ created_by: "squad-creator (Craft)"
11
+ agents_count: 10
12
+ tasks_count: 49
13
+ knowledge_bases_count: 5
14
+ workflows_count: 2
15
+ templates_count: 0
16
+ checklists_count: 0
17
+ quality_target: "5.0/5.0 em todas as dimensoes"
18
+
6
19
  tags: [claude-code, hooks, mcp, subagents, skills, context-engineering, configuration]
7
20
  components:
8
21
  agents: [claude-orqx.md, hooks-architect.md, mcp-integrator.md, swarm-orqx.md, config-engineer.md, skill-craftsman.md, project-integrator.md, roadmap-sentinel.md]
@@ -41,7 +41,48 @@ Revenue Cycle Orchestrator — coordena o sistema comercial completo, desde dema
41
41
  7. manage-pipeline-forecast
42
42
  8. conduct-commercial-retrospective
43
43
 
44
+ ## Activation Instructions
45
+
46
+ 1. Read this file completely
47
+ 2. Adopt the Pipeline persona — strategic, results-oriented, data-driven
48
+ 3. Greet user with: "🚀 Pipeline — Revenue Cycle Orchestrator activated. Revenue previsivel nao e sorte — e engenharia de sistema."
49
+ 4. Await user input
50
+
51
+ ## Available Workflows
52
+
53
+ | Workflow | Description | Agents Involved |
54
+ |----------|-------------|-----------------|
55
+ | `greenfield-commercial-system` | Build commercial system from scratch | All 11 agents |
56
+ | `pipeline-optimization` | Optimize existing pipeline metrics | Vault, Cascade, Ledger |
57
+ | `deal-acceleration` | Accelerate specific deals through pipeline | Edge, Mint, Bond |
58
+ | `quarterly-review` | Full commercial performance review | Pipeline + all agents |
59
+ | `client-expansion` | Expand existing accounts | Bond, Mint, Edge |
60
+ | `forecast-calibration` | Calibrate revenue forecasts | Ledger, Vault, Pipeline |
61
+
62
+ ## Routing Intelligence
63
+
64
+ | Request Pattern | Route To | Confidence |
65
+ |----------------|----------|------------|
66
+ | "CRM", "Hubspot", "Salesforce", "leads" | @vault (CRM Ops) | High |
67
+ | "funnel", "pipeline stages", "conversion" | @cascade (Funnel Architect) | High |
68
+ | "pricing", "offer", "proposal" | @mint (Offer Designer) | High |
69
+ | "revenue", "forecast", "MRR", "ARR" | @ledger (Revenue Analytics) | High |
70
+ | "onboarding", "churn", "NPS", "retention" | @bond (Client Success) | High |
71
+ | "sales methodology", "SPIN", "discovery" | @edge (Sales Method) | High |
72
+ | "outbound", "prospecting", "cold email" | @outreach (Outbound) | High |
73
+ | "social selling", "LinkedIn selling" | @signal-commercial (Social Selling) | High |
74
+ | "competitive analysis", "win/loss" | @scout (Competitive Intel) | Medium |
75
+
44
76
  ## Cross-Squad Handoffs
45
- - **Recebe de:** @growth-analytics (pipeline data, attribution), @content-intelligence (funnel content)
46
- - **Envia para:** @product-systems (client feedback), @operations-hub (process requirements)
47
- - **Escalates to:** @sinapse-orqx (cross-squad coordination)
77
+
78
+ ### Inbound
79
+ - **@growth-orqx:** Pipeline data, attribution, lead scoring
80
+ - **@content-orqx:** Funnel content, case studies, collateral
81
+ - **@copy-orqx:** Sales copy, email sequences, proposals
82
+ - **@brand-orqx:** Brand guidelines for commercial materials
83
+
84
+ ### Outbound
85
+ - **@product-orqx:** Client feedback, feature requests, adoption data
86
+ - **@finance-orqx:** Revenue data, forecasts, pricing validation
87
+ - **@growth-orqx:** Conversion data, campaign attribution
88
+ - **@sinapse-orqx:** Cross-squad coordination, escalations
@@ -16,6 +16,13 @@ metadata:
16
16
  language: pt-BR
17
17
  created: "2026-03-13"
18
18
  author: "Sinapse"
19
+ agents_count: 11
20
+ tasks_count: 85
21
+ knowledge_bases_count: 13
22
+ workflows_count: 6
23
+ templates_count: 6
24
+ checklists_count: 3
25
+ quality_target: "5.0/5.0 em todas as dimensoes"
19
26
 
20
27
  agents:
21
28
  - id: commercial-orqx
@@ -0,0 +1,15 @@
1
+ # Preferences Directory
2
+
3
+ > Diretorio para logs de preferencias por projeto/cliente.
4
+ > Atualizado automaticamente pelos agentes do squad apos cada ciclo de entrega.
5
+
6
+ ## Como usar
7
+
8
+ 1. Para cada novo projeto, criar `{projeto}-preferences.md`
9
+ 2. Agentes consultam antes de iniciar nova entrega
10
+ 3. Atualizar apos cada ciclo de aprovacao
11
+
12
+ ## Arquivos
13
+
14
+ - `README.md` — Este arquivo
15
+ - `{projeto}-preferences.md` — Um arquivo por projeto ativo
@@ -16,6 +16,13 @@ metadata:
16
16
  language: pt-BR
17
17
  created: "2026-03-16"
18
18
  author: "Sinapse"
19
+ agents_count: 11
20
+ tasks_count: 56
21
+ knowledge_bases_count: 3
22
+ workflows_count: 2
23
+ templates_count: 0
24
+ checklists_count: 0
25
+ quality_target: "5.0/5.0 em todas as dimensoes"
19
26
 
20
27
  agents:
21
28
  - id: council-orqx
@@ -0,0 +1,15 @@
1
+ # Preferences Directory
2
+
3
+ > Diretorio para logs de preferencias por projeto/cliente.
4
+ > Atualizado automaticamente pelos agentes do squad apos cada ciclo de entrega.
5
+
6
+ ## Como usar
7
+
8
+ 1. Para cada novo projeto, criar `{projeto}-preferences.md`
9
+ 2. Agentes consultam antes de iniciar nova entrega
10
+ 3. Atualizar apos cada ciclo de aprovacao
11
+
12
+ ## Arquivos
13
+
14
+ - `README.md` — Este arquivo
15
+ - `{projeto}-preferences.md` — Um arquivo por projeto ativo
@@ -6,6 +6,18 @@ author: "Sinapse"
6
6
  license: MIT
7
7
  slashPrefix: SINAPSE
8
8
 
9
+ metadata:
10
+ created_at: "2026-03-16"
11
+ updated_at: "2026-04-01"
12
+ created_by: "squad-creator (Craft)"
13
+ agents_count: 9
14
+ tasks_count: 53
15
+ knowledge_bases_count: 3
16
+ workflows_count: 2
17
+ templates_count: 0
18
+ checklists_count: 0
19
+ quality_target: "5.0/5.0 em todas as dimensoes"
20
+
9
21
  tags:
10
22
  - cybersecurity
11
23
  - security