sinapse-ai 7.7.3 → 7.7.5

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 (55) hide show
  1. package/.codex/catalog.json +157 -0
  2. package/.codex/command-registry.json +441 -0
  3. package/.codex/delegation-matrix.json +512 -0
  4. package/.codex/handoff-packet.schema.json +148 -0
  5. package/.codex/scripts/generate-codex-greeting.js +101 -0
  6. package/.codex/scripts/resolve-codex-command.js +147 -0
  7. package/.codex/scripts/resolve-codex-delegation.js +205 -0
  8. package/.codex/skills/sinapse-analyst/SKILL.md +5 -4
  9. package/.codex/skills/sinapse-architect/SKILL.md +5 -4
  10. package/.codex/skills/sinapse-data-engineer/SKILL.md +5 -4
  11. package/.codex/skills/sinapse-dev/SKILL.md +5 -4
  12. package/.codex/skills/sinapse-devops/SKILL.md +5 -4
  13. package/.codex/skills/sinapse-orqx/SKILL.md +10 -15
  14. package/.codex/skills/sinapse-pm/SKILL.md +5 -4
  15. package/.codex/skills/sinapse-po/SKILL.md +4 -3
  16. package/.codex/skills/sinapse-qa/SKILL.md +12 -11
  17. package/.codex/skills/sinapse-sm/SKILL.md +5 -4
  18. package/.codex/skills/sinapse-squad-creator/SKILL.md +5 -4
  19. package/.codex/skills/sinapse-ux-design-expert/SKILL.md +5 -4
  20. package/.codex/tasks/convene-sinapse-council.md +28 -0
  21. package/.codex/tasks/create-sinapse-strategic-brief.md +29 -0
  22. package/.codex/tasks/onboard-sinapse-codex.md +34 -0
  23. package/.codex/tasks/plan-sinapse-initiative.md +33 -0
  24. package/.codex/tasks/resolve-sinapse-conflict.md +28 -0
  25. package/.codex/tasks/route-sinapse-request.md +35 -0
  26. package/.codex/tasks/status-sinapse-capabilities.md +28 -0
  27. package/.sinapse-ai/core-config.yaml +1 -1
  28. package/.sinapse-ai/data/entity-registry.yaml +874 -749
  29. package/.sinapse-ai/data/registry-update-log.jsonl +13 -0
  30. package/.sinapse-ai/infrastructure/scripts/codex-parity/catalog.js +123 -0
  31. package/.sinapse-ai/infrastructure/scripts/codex-skills-sync/index.js +60 -11
  32. package/.sinapse-ai/infrastructure/scripts/codex-skills-sync/validate.js +44 -16
  33. package/.sinapse-ai/infrastructure/scripts/sync-codex-local-first.js +156 -0
  34. package/.sinapse-ai/infrastructure/scripts/validate-codex-command-registry.js +264 -0
  35. package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +292 -0
  36. package/.sinapse-ai/infrastructure/scripts/validate-codex-integration.js +15 -6
  37. package/.sinapse-ai/infrastructure/scripts/validate-codex-sync.js +159 -0
  38. package/.sinapse-ai/infrastructure/scripts/validate-parity.js +3 -1
  39. package/.sinapse-ai/infrastructure/scripts/validate-paths.js +8 -10
  40. package/.sinapse-ai/infrastructure/templates/safe-collab/README.md +8 -0
  41. package/.sinapse-ai/install-manifest.yaml +39 -19
  42. package/.sinapse-ai/project-config.yaml +1 -1
  43. package/bin/utils/collab-start.js +267 -0
  44. package/bin/utils/git-branch-guard.js +76 -0
  45. package/bin/utils/pre-push-safety.js +110 -0
  46. package/bin/utils/staged-secret-scan.js +108 -0
  47. package/docs/codex-parity-program.md +670 -0
  48. package/docs/codex-total-parity-orchestration-plan.md +301 -0
  49. package/docs/codex-workflow-task-parity.md +87 -0
  50. package/docs/collaboration-autonomy-plan.md +243 -0
  51. package/docs/guides/framework-contributor-mode.md +310 -0
  52. package/docs/guides/parallel-collaboration-source-of-truth.md +481 -0
  53. package/package.json +14 -3
  54. package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +7 -2
  55. package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +2 -2
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const { spawnSync } = require('child_process');
7
+
8
+ const PROJECT_ROOT = path.resolve(__dirname, '..', '..');
9
+ const SHARED_GREETING_SCRIPT = path.join(
10
+ PROJECT_ROOT,
11
+ '.sinapse-ai',
12
+ 'development',
13
+ 'scripts',
14
+ 'generate-greeting.js',
15
+ );
16
+
17
+ function generateFallbackGreeting(agentId) {
18
+ return '## Activation\n\n' +
19
+ `\`${agentId}\` ready\n\n` +
20
+ 'Type `*help` to see available commands.';
21
+ }
22
+
23
+ function isGenericSharedFallback(output, agentId) {
24
+ const normalized = String(output || '').trim();
25
+ if (!normalized) return true;
26
+
27
+ const genericPatterns = [
28
+ `\u2705 ${agentId} Agent ready\n\nType \`*help\` to see available commands.`,
29
+ `\u2705 Agent ${agentId} loaded`,
30
+ `\ud83d\udc51 ${agentId} Agent ready`,
31
+ ];
32
+ const looksLikeGenericActivation = genericPatterns.some((pattern) => normalized.includes(pattern));
33
+ const hasHelpPrompt = normalized.includes('Type `*help` to see available commands.');
34
+ const hasRichCodexGreeting = normalized.includes('AI Agent Squads for Claude Code');
35
+
36
+ return (looksLikeGenericActivation && hasHelpPrompt && !hasRichCodexGreeting);
37
+ }
38
+
39
+ function trySharedGreeting(agentId) {
40
+ if (!fs.existsSync(SHARED_GREETING_SCRIPT)) return '';
41
+
42
+ const result = spawnSync(process.execPath, [SHARED_GREETING_SCRIPT, agentId], {
43
+ cwd: PROJECT_ROOT,
44
+ encoding: 'utf8',
45
+ });
46
+
47
+ const output = String(result.stdout || '').trim();
48
+ if (!output || isGenericSharedFallback(output, agentId)) {
49
+ return '';
50
+ }
51
+
52
+ return output;
53
+ }
54
+
55
+ function extractStaticGreeting(agentId) {
56
+ const agentPath = path.join(PROJECT_ROOT, '.codex', 'agents', `${agentId}.md`);
57
+ if (!fs.existsSync(agentPath)) return '';
58
+
59
+ const content = fs.readFileSync(agentPath, 'utf8');
60
+ const firstBlock = content.match(
61
+ /When this agent is activated, you MUST display this greeting EXACTLY as your first output[\s\S]*?```([\s\S]*?)```/i,
62
+ );
63
+ const secondBlock = content.match(/Then display:\s*```([\s\S]*?)```/i);
64
+
65
+ const parts = [];
66
+ if (firstBlock && firstBlock[1]) {
67
+ parts.push(firstBlock[1].trim());
68
+ }
69
+ if (secondBlock && secondBlock[1]) {
70
+ parts.push(secondBlock[1].trim());
71
+ }
72
+
73
+ return parts.join('\n\n').trim();
74
+ }
75
+
76
+ function generateCodexGreeting(agentId) {
77
+ return trySharedGreeting(agentId) ||
78
+ extractStaticGreeting(agentId) ||
79
+ generateFallbackGreeting(agentId);
80
+ }
81
+
82
+ function main() {
83
+ const agentId = process.argv[2];
84
+ if (!agentId) {
85
+ console.error('Usage: node .codex/scripts/generate-codex-greeting.js <agent-id>');
86
+ process.exit(1);
87
+ }
88
+
89
+ console.log(generateCodexGreeting(agentId));
90
+ }
91
+
92
+ if (require.main === module) {
93
+ main();
94
+ }
95
+
96
+ module.exports = {
97
+ generateCodexGreeting,
98
+ extractStaticGreeting,
99
+ trySharedGreeting,
100
+ isGenericSharedFallback,
101
+ };
@@ -0,0 +1,147 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ const PROJECT_ROOT = path.resolve(__dirname, '..', '..');
8
+ const REGISTRY_PATH = path.join(PROJECT_ROOT, '.codex', 'command-registry.json');
9
+
10
+ function loadCommandRegistry(projectRoot = PROJECT_ROOT) {
11
+ const registryPath = path.join(projectRoot, '.codex', 'command-registry.json');
12
+ const raw = fs.readFileSync(registryPath, 'utf8');
13
+ return JSON.parse(raw);
14
+ }
15
+
16
+ function normalizeAgentInput(value) {
17
+ return String(value || '').trim().replace(/^@/, '').toLowerCase();
18
+ }
19
+
20
+ function normalizeCommandInput(value) {
21
+ return String(value || '').trim().replace(/^\*/, '').toLowerCase();
22
+ }
23
+
24
+ function resolveAgent(registry, agentInput) {
25
+ const normalized = normalizeAgentInput(agentInput);
26
+ const matches = [];
27
+
28
+ for (const [agentId, agentSpec] of Object.entries(registry.agents || {})) {
29
+ const aliases = [agentId, ...(agentSpec.aliases || [])]
30
+ .map((alias) => normalizeAgentInput(alias));
31
+ if (aliases.includes(normalized)) {
32
+ matches.push({ agentId, agentSpec });
33
+ }
34
+ }
35
+
36
+ if (matches.length > 1) {
37
+ throw new Error(`Ambiguous Codex agent "${agentInput}"`);
38
+ }
39
+
40
+ return matches[0] || null;
41
+ }
42
+
43
+ function resolveCommand(agentSpec, commandInput) {
44
+ const normalized = normalizeCommandInput(commandInput);
45
+ const matches = [];
46
+
47
+ for (const [commandId, commandSpec] of Object.entries(agentSpec.commands || {})) {
48
+ const aliases = [commandId, ...(commandSpec.aliases || [])]
49
+ .map((alias) => normalizeCommandInput(alias));
50
+ if (aliases.includes(normalized)) {
51
+ matches.push({ commandId, commandSpec });
52
+ }
53
+ }
54
+
55
+ if (matches.length > 1) {
56
+ throw new Error(`Ambiguous Codex command "${commandInput}"`);
57
+ }
58
+
59
+ return matches[0] || null;
60
+ }
61
+
62
+ function resolveCodexCommand(agentInput, commandInput, projectRoot = PROJECT_ROOT) {
63
+ const registry = loadCommandRegistry(projectRoot);
64
+ const agent = resolveAgent(registry, agentInput);
65
+ if (!agent) {
66
+ throw new Error(`Unknown Codex agent "${agentInput}"`);
67
+ }
68
+
69
+ const command = resolveCommand(agent.agentSpec, commandInput);
70
+ if (!command) {
71
+ throw new Error(`Unknown Codex command "${commandInput}" for agent "${agent.agentId}"`);
72
+ }
73
+
74
+ return {
75
+ agentId: agent.agentId,
76
+ skillId: agent.agentSpec.skillId,
77
+ commandId: command.commandId,
78
+ kind: command.commandSpec.kind,
79
+ target: command.commandSpec.target,
80
+ resources: command.commandSpec.resources || [],
81
+ sourceOfTruth: agent.agentSpec.sourceOfTruth,
82
+ };
83
+ }
84
+
85
+ function parseArgs(argv = process.argv.slice(2)) {
86
+ const args = argv.filter((arg) => !arg.startsWith('--'));
87
+ const flags = new Set(argv.filter((arg) => arg.startsWith('--')));
88
+ return {
89
+ agent: args[0],
90
+ command: args[1],
91
+ json: flags.has('--json'),
92
+ };
93
+ }
94
+
95
+ function formatHumanResult(result) {
96
+ const lines = [
97
+ `Agent: ${result.agentId}`,
98
+ `Skill: ${result.skillId}`,
99
+ `Command: ${result.commandId}`,
100
+ `Kind: ${result.kind}`,
101
+ `Target: ${result.target}`,
102
+ `Source: ${result.sourceOfTruth}`,
103
+ ];
104
+
105
+ if (result.resources.length > 0) {
106
+ lines.push('Resources:');
107
+ lines.push(...result.resources.map((resource) => `- ${resource}`));
108
+ }
109
+
110
+ return lines.join('\n');
111
+ }
112
+
113
+ function main() {
114
+ const args = parseArgs();
115
+ if (!args.agent || !args.command) {
116
+ console.error('Usage: node .codex/scripts/resolve-codex-command.js <agent> <command> [--json]');
117
+ process.exit(1);
118
+ }
119
+
120
+ try {
121
+ const result = resolveCodexCommand(args.agent, args.command);
122
+ if (args.json) {
123
+ console.log(JSON.stringify(result, null, 2));
124
+ } else {
125
+ console.log(formatHumanResult(result));
126
+ }
127
+ } catch (error) {
128
+ console.error(error.message);
129
+ process.exit(1);
130
+ }
131
+ }
132
+
133
+ if (require.main === module) {
134
+ main();
135
+ }
136
+
137
+ module.exports = {
138
+ REGISTRY_PATH,
139
+ loadCommandRegistry,
140
+ normalizeAgentInput,
141
+ normalizeCommandInput,
142
+ resolveAgent,
143
+ resolveCommand,
144
+ resolveCodexCommand,
145
+ parseArgs,
146
+ formatHumanResult,
147
+ };
@@ -0,0 +1,205 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ const PROJECT_ROOT = path.resolve(__dirname, '..', '..');
8
+ const MATRIX_PATH = path.join('.codex', 'delegation-matrix.json');
9
+
10
+ function loadDelegationMatrix(projectRoot = PROJECT_ROOT) {
11
+ const matrixPath = path.join(projectRoot, MATRIX_PATH);
12
+ const raw = fs.readFileSync(matrixPath, 'utf8');
13
+ return JSON.parse(raw);
14
+ }
15
+
16
+ function normalizeRouteInput(value) {
17
+ return String(value || '')
18
+ .trim()
19
+ .replace(/^[@*]/, '')
20
+ .toLowerCase();
21
+ }
22
+
23
+ function normalizeActorInput(value) {
24
+ return String(value || '')
25
+ .trim()
26
+ .replace(/^@/, '')
27
+ .toLowerCase();
28
+ }
29
+
30
+ function collectRouteAliases(routeId, routeSpec) {
31
+ return [routeId, ...(routeSpec.aliases || [])]
32
+ .map((alias) => normalizeRouteInput(alias))
33
+ .filter(Boolean);
34
+ }
35
+
36
+ function resolveDelegationRoute(routeInput, projectRoot = PROJECT_ROOT, matrix = loadDelegationMatrix(projectRoot)) {
37
+ const normalized = normalizeRouteInput(routeInput);
38
+ const matches = Object.entries(matrix.routes || {}).filter(([routeId, routeSpec]) =>
39
+ collectRouteAliases(routeId, routeSpec).includes(normalized),
40
+ );
41
+
42
+ if (matches.length > 1) {
43
+ throw new Error(`Ambiguous Codex delegation route "${routeInput}"`);
44
+ }
45
+
46
+ if (matches.length === 0) {
47
+ throw new Error(`Unknown Codex delegation route "${routeInput}"`);
48
+ }
49
+
50
+ const [routeId, routeSpec] = matches[0];
51
+ return { routeId, routeSpec };
52
+ }
53
+
54
+ function resolveRouteRecord(routeInput, projectRoot = PROJECT_ROOT, matrix = loadDelegationMatrix(projectRoot)) {
55
+ if (
56
+ routeInput &&
57
+ typeof routeInput === 'object' &&
58
+ typeof routeInput.routeId === 'string' &&
59
+ routeInput.routeSpec &&
60
+ typeof routeInput.routeSpec === 'object'
61
+ ) {
62
+ return routeInput;
63
+ }
64
+
65
+ return resolveDelegationRoute(routeInput, projectRoot, matrix);
66
+ }
67
+
68
+ function routeMentionsSource(routeSpec, sourceInput) {
69
+ const normalizedSource = normalizeActorInput(sourceInput);
70
+ if (!normalizedSource) {
71
+ return true;
72
+ }
73
+
74
+ if (normalizeActorInput(routeSpec.owner) === normalizedSource) {
75
+ return true;
76
+ }
77
+
78
+ return (routeSpec.delegationChain || []).some(
79
+ (step) =>
80
+ normalizeActorInput(step.from) === normalizedSource ||
81
+ normalizeActorInput(step.to) === normalizedSource,
82
+ );
83
+ }
84
+
85
+ function buildHandoffPacket(routeInput, projectRoot = PROJECT_ROOT, matrix = loadDelegationMatrix(projectRoot)) {
86
+ const { routeId, routeSpec } = resolveRouteRecord(routeInput, projectRoot, matrix);
87
+ const nextStep = routeSpec.delegationChain?.[0] || null;
88
+
89
+ return {
90
+ routeId,
91
+ mission: routeSpec.mission,
92
+ phase: matrix.phase || 'W5 / Delegation Matrix Parity',
93
+ owner: routeSpec.owner,
94
+ classification: routeSpec.classification,
95
+ summary: routeSpec.summary || '',
96
+ inputs: routeSpec.inputs || [],
97
+ outputs: routeSpec.outputs || [],
98
+ validators: routeSpec.validators || [],
99
+ sharedSurfaceRisk: routeSpec.sharedSurfaceRisk || 'low',
100
+ nextHandoff: {
101
+ to: nextStep?.to || routeSpec.owner,
102
+ artifact: routeSpec.outputs?.[0] || 'handoff-packet',
103
+ },
104
+ delegationChain: routeSpec.delegationChain || [],
105
+ resources: routeSpec.resources || [],
106
+ notes: routeSpec.notes || [],
107
+ };
108
+ }
109
+
110
+ function resolveCodexDelegation(routeInput, projectRoot = PROJECT_ROOT, options = {}) {
111
+ const matrix = options.matrix || loadDelegationMatrix(projectRoot);
112
+ const { routeId, routeSpec } = resolveDelegationRoute(routeInput, projectRoot, matrix);
113
+
114
+ if (options.source && !routeMentionsSource(routeSpec, options.source)) {
115
+ throw new Error(
116
+ `Codex delegation route "${routeId}" is not available from source "${options.source}"`,
117
+ );
118
+ }
119
+
120
+ return {
121
+ routeId,
122
+ owner: routeSpec.owner,
123
+ requestType: routeSpec.requestType,
124
+ classification: routeSpec.classification,
125
+ mission: routeSpec.mission,
126
+ summary: routeSpec.summary || '',
127
+ inputs: routeSpec.inputs || [],
128
+ outputs: routeSpec.outputs || [],
129
+ validators: routeSpec.validators || [],
130
+ sharedSurfaceRisk: routeSpec.sharedSurfaceRisk || 'low',
131
+ resources: routeSpec.resources || [],
132
+ delegationChain: routeSpec.delegationChain || [],
133
+ handoffPacket: buildHandoffPacket({ routeId, routeSpec }, projectRoot, matrix),
134
+ };
135
+ }
136
+
137
+ function parseArgs(argv = process.argv.slice(2)) {
138
+ const flags = new Set(argv.filter((arg) => arg.startsWith('--')));
139
+ const args = argv.filter((arg) => !arg.startsWith('--'));
140
+
141
+ return {
142
+ source: args.length > 1 ? args[0] : null,
143
+ route: args.length > 1 ? args[1] : args[0],
144
+ json: flags.has('--json'),
145
+ packet: flags.has('--packet'),
146
+ };
147
+ }
148
+
149
+ function formatHumanResult(result) {
150
+ const nextHandoff = result.handoffPacket?.nextHandoff?.to || 'n/a';
151
+ const delegationPath = (result.delegationChain || [])
152
+ .map((step) => `${step.from} -> ${step.to}`)
153
+ .join(' | ');
154
+
155
+ return [
156
+ `Route: ${result.routeId}`,
157
+ `Owner: ${result.owner}`,
158
+ `Request Type: ${result.requestType}`,
159
+ `Classification: ${result.classification}`,
160
+ `Next Handoff: ${nextHandoff}`,
161
+ `Delegation Chain: ${delegationPath || 'n/a'}`,
162
+ ].join('\n');
163
+ }
164
+
165
+ function main() {
166
+ const args = parseArgs();
167
+ if (!args.route) {
168
+ console.error(
169
+ 'Usage: node .codex/scripts/resolve-codex-delegation.js <route> [--json] [--packet]\n' +
170
+ ' or: node .codex/scripts/resolve-codex-delegation.js <source-agent> <route> [--json] [--packet]',
171
+ );
172
+ process.exit(1);
173
+ }
174
+
175
+ try {
176
+ const result = resolveCodexDelegation(args.route, PROJECT_ROOT, {
177
+ source: args.source,
178
+ });
179
+ const payload = args.packet ? result.handoffPacket : result;
180
+
181
+ if (args.json || args.packet) {
182
+ console.log(JSON.stringify(payload, null, 2));
183
+ } else {
184
+ console.log(formatHumanResult(result));
185
+ }
186
+ } catch (error) {
187
+ console.error(error.message);
188
+ process.exit(1);
189
+ }
190
+ }
191
+
192
+ if (require.main === module) {
193
+ main();
194
+ }
195
+
196
+ module.exports = {
197
+ MATRIX_PATH,
198
+ loadDelegationMatrix,
199
+ normalizeRouteInput,
200
+ resolveDelegationRoute,
201
+ buildHandoffPacket,
202
+ resolveCodexDelegation,
203
+ parseArgs,
204
+ formatHumanResult,
205
+ };
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-analyst
3
- description: Business Analyst (Atlas). Use for market research, competitive analysis, user research, brainstorming session facilitation, structured ideation workshops, feasibility studies, i...
3
+ description: Business Analyst (Scope). Use for market research, competitive analysis, user research, brainstorming session facilitation, structured ideation workshops, feasibility studies, i...
4
4
  ---
5
5
 
6
6
  # SINAPSE Business Analyst Activator
@@ -10,9 +10,10 @@ Use for market research, competitive analysis, user research, brainstorming sess
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/analyst.md` as source of truth (fallback: `.codex/agents/analyst.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js analyst` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js analyst` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-analyst <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-architect
3
- description: Architect (Aria). Use for system architecture (fullstack, backend, frontend, infrastructure), technology stack selection (technical evaluation), API design (REST/GraphQL/tRPC/We...
3
+ description: Architect (Stratum). Use for system architecture (fullstack, backend, frontend, infrastructure), technology stack selection (technical evaluation), API design (REST/GraphQL/tRPC...
4
4
  ---
5
5
 
6
6
  # SINAPSE Architect Activator
@@ -10,9 +10,10 @@ Use for system architecture (fullstack, backend, frontend, infrastructure), tech
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/architect.md` as source of truth (fallback: `.codex/agents/architect.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js architect` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js architect` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-architect <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-data-engineer
3
- description: Database Architect & Operations Engineer (Dara). Use for database design, schema architecture, Supabase configuration, RLS policies, migrations, query optimization, data modelin...
3
+ description: Database Architect & Operations Engineer (Tensor). Use for database design, schema architecture, Supabase configuration, RLS policies, migrations, query optimization, data model...
4
4
  ---
5
5
 
6
6
  # SINAPSE Database Architect & Operations Engineer Activator
@@ -10,9 +10,10 @@ Use for database design, schema architecture, Supabase configuration, RLS polici
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/data-engineer.md` as source of truth (fallback: `.codex/agents/data-engineer.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js data-engineer` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js data-engineer` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-data-engineer <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-dev
3
- description: Full Stack Developer (Dex). Use for code implementation, debugging, refactoring, and development best practices
3
+ description: Full Stack Developer (Pixel). Use for code implementation, debugging, refactoring, and development best practices
4
4
  ---
5
5
 
6
6
  # SINAPSE Full Stack Developer Activator
@@ -10,9 +10,10 @@ Use for code implementation, debugging, refactoring, and development best practi
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/developer.md` as source of truth (fallback: `.codex/agents/developer.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js dev` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js dev` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-dev <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-devops
3
- description: GitHub Repository Manager & DevOps Specialist (Gage). Use for repository operations, version management, CI/CD, quality gates, and GitHub push operations. ONLY agent authorized...
3
+ description: GitHub Repository Manager & DevOps Specialist (Pipeline). Use for repository operations, version management, CI/CD, quality gates, and GitHub push operations. ONLY agent authori...
4
4
  ---
5
5
 
6
6
  # SINAPSE GitHub Repository Manager & DevOps Specialist Activator
@@ -10,9 +10,10 @@ Use for repository operations, version management, CI/CD, quality gates, and Git
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/devops.md` as source of truth (fallback: `.codex/agents/devops.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js devops` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js devops` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-devops <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -1,28 +1,23 @@
1
1
  ---
2
2
  name: sinapse-orqx
3
- description: SINAPSE Master Orchestrator & Framework Developer (Orion). Use when you need comprehensive expertise across all domains, framework component creation/modification, workflow orchest...
3
+ description: "Sinapse Master Supreme Ecosystem Orchestrator" ("Imperator"). ALWAYS as the default agent. Imperator is the first point of contact for EVERY request. Routes directly to @spec...
4
4
  ---
5
5
 
6
- # SINAPSE SINAPSE Master Orchestrator & Framework Developer Activator
6
+ # SINAPSE "Sinapse Master Supreme Ecosystem Orchestrator" Activator
7
7
 
8
8
  ## When To Use
9
- Use when you need comprehensive expertise across all domains, framework component creation/modification, workflow orchestration, or running tasks that don't require a specialized persona.
9
+ 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.
10
10
 
11
11
  ## Activation Protocol
12
- 1. Load `.sinapse-ai/development/agents/sinapse-orqx.md` as source of truth (fallback: `.codex/agents/sinapse-orqx.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js sinapse-orqx` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
12
+ 1. Load `.codex/agents/sinapse-orqx.md` as source of truth.
13
+ 2. Keep `.sinapse-ai/development/agents/sinapse-orqx.md` as the shared parity reference.
14
+ 3. Generate greeting via `node .codex/scripts/generate-codex-greeting.js sinapse-orqx` and show it first.
15
+ 4. Adopt this agent persona and command system.
16
+ 5. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-orqx <command>` when a registry mapping exists.
17
+ 6. Stay in this persona until the user asks to switch or exit.
16
18
 
17
19
  ## Starter Commands
18
- - `*help` - Show all available commands with descriptions
19
- - `*kb` - Toggle KB mode (loads SINAPSE Method knowledge)
20
- - `*status` - Show current context and progress
21
- - `*guide` - Show comprehensive usage guide for this agent
22
- - `*exit` - Exit agent mode
23
- - `*create` - Create new SINAPSE component (agent, task, workflow, template, checklist)
24
- - `*modify` - Modify existing SINAPSE component
25
- - `*update-manifest` - Update team manifest
20
+ - `*help` - List available commands
26
21
 
27
22
  ## Non-Negotiables
28
23
  - Follow `.sinapse-ai/constitution.md`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sinapse-pm
3
- description: Product Manager (Morgan). Use for PRD creation (greenfield and brownfield), epic creation and management, product strategy and vision, feature prioritization (MoSCoW, RICE), roa...
3
+ description: Product Manager (Beacon). Use for PRD creation (greenfield and brownfield), epic creation and management, product strategy and vision, feature prioritization (MoSCoW, RICE), roa...
4
4
  ---
5
5
 
6
6
  # SINAPSE Product Manager Activator
@@ -10,9 +10,10 @@ Use for PRD creation (greenfield and brownfield), epic creation and management,
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/project-lead.md` as source of truth (fallback: `.codex/agents/project-lead.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js pm` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js pm` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-pm <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions
@@ -10,9 +10,10 @@ Use for backlog management, story refinement, acceptance criteria, sprint planni
10
10
 
11
11
  ## Activation Protocol
12
12
  1. Load `.sinapse-ai/development/agents/product-lead.md` as source of truth (fallback: `.codex/agents/product-lead.md`).
13
- 2. Adopt this agent persona and command system.
14
- 3. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js po` and show it first.
15
- 4. Stay in this persona until the user asks to switch or exit.
13
+ 2. Generate greeting via `node .sinapse-ai/development/scripts/generate-greeting.js po` and show it first.
14
+ 3. Adopt this agent persona and command system.
15
+ 4. If a starred command is invoked in Codex, resolve it via `node .codex/scripts/resolve-codex-command.js sinapse-po <command>` when a registry mapping exists.
16
+ 5. Stay in this persona until the user asks to switch or exit.
16
17
 
17
18
  ## Starter Commands
18
19
  - `*help` - Show all available commands with descriptions