synorch 0.1.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/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/README.md +56 -0
- package/dist/application/doctor-service.d.ts +24 -0
- package/dist/application/doctor-service.d.ts.map +1 -0
- package/dist/application/doctor-service.js +508 -0
- package/dist/application/doctor-service.js.map +1 -0
- package/dist/application/project-discovery.d.ts +23 -0
- package/dist/application/project-discovery.d.ts.map +1 -0
- package/dist/application/project-discovery.js +741 -0
- package/dist/application/project-discovery.js.map +1 -0
- package/dist/application/skill-resolver.d.ts +25 -0
- package/dist/application/skill-resolver.d.ts.map +1 -0
- package/dist/application/skill-resolver.js +90 -0
- package/dist/application/skill-resolver.js.map +1 -0
- package/dist/application/structure-service.d.ts +11 -0
- package/dist/application/structure-service.d.ts.map +1 -0
- package/dist/application/structure-service.js +116 -0
- package/dist/application/structure-service.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +170 -0
- package/dist/cli.js.map +1 -0
- package/dist/domain/config.d.ts +210 -0
- package/dist/domain/config.d.ts.map +1 -0
- package/dist/domain/config.js +108 -0
- package/dist/domain/config.js.map +1 -0
- package/dist/domain/errors.d.ts +5 -0
- package/dist/domain/errors.d.ts.map +1 -0
- package/dist/domain/errors.js +9 -0
- package/dist/domain/errors.js.map +1 -0
- package/dist/domain/generation.d.ts +21 -0
- package/dist/domain/generation.d.ts.map +1 -0
- package/dist/domain/generation.js +2 -0
- package/dist/domain/generation.js.map +1 -0
- package/dist/domain/product.d.ts +3 -0
- package/dist/domain/product.d.ts.map +1 -0
- package/dist/domain/product.js +3 -0
- package/dist/domain/product.js.map +1 -0
- package/dist/domain/skill-packs.d.ts +39 -0
- package/dist/domain/skill-packs.d.ts.map +1 -0
- package/dist/domain/skill-packs.js +98 -0
- package/dist/domain/skill-packs.js.map +1 -0
- package/dist/domain/skill-sources.d.ts +20 -0
- package/dist/domain/skill-sources.d.ts.map +1 -0
- package/dist/domain/skill-sources.js +95 -0
- package/dist/domain/skill-sources.js.map +1 -0
- package/dist/infrastructure/bundled-skill-library.d.ts +10 -0
- package/dist/infrastructure/bundled-skill-library.d.ts.map +1 -0
- package/dist/infrastructure/bundled-skill-library.js +108 -0
- package/dist/infrastructure/bundled-skill-library.js.map +1 -0
- package/dist/infrastructure/file-system.d.ts +21 -0
- package/dist/infrastructure/file-system.d.ts.map +1 -0
- package/dist/infrastructure/file-system.js +72 -0
- package/dist/infrastructure/file-system.js.map +1 -0
- package/dist/infrastructure/serialization.d.ts +3 -0
- package/dist/infrastructure/serialization.d.ts.map +1 -0
- package/dist/infrastructure/serialization.js +11 -0
- package/dist/infrastructure/serialization.js.map +1 -0
- package/dist/templates/structure-templates.d.ts +4 -0
- package/dist/templates/structure-templates.d.ts.map +1 -0
- package/dist/templates/structure-templates.js +471 -0
- package/dist/templates/structure-templates.js.map +1 -0
- package/dist/templates/technology-skill-templates.d.ts +3 -0
- package/dist/templates/technology-skill-templates.d.ts.map +1 -0
- package/dist/templates/technology-skill-templates.js +73 -0
- package/dist/templates/technology-skill-templates.js.map +1 -0
- package/package.json +59 -0
- package/skill-sources/ingenium/NOTICE.md +11 -0
- package/skill-sources/ingenium/skills/db-schema-craft/SKILL.md +127 -0
- package/skill-sources/ingenium/skills/debug-detective/SKILL.md +67 -0
- package/skill-sources/ingenium/skills/design-system/SKILL.md +57 -0
- package/skill-sources/ingenium/skills/docs-sync/SKILL.md +68 -0
- package/skill-sources/ingenium/skills/dotnet-backend/SKILL.md +110 -0
- package/skill-sources/ingenium/skills/frontend-craft/SKILL.md +69 -0
- package/skill-sources/ingenium/skills/game-audio/SKILL.md +73 -0
- package/skill-sources/ingenium/skills/game-design/SKILL.md +92 -0
- package/skill-sources/ingenium/skills/godot-dev/SKILL.md +78 -0
- package/skill-sources/ingenium/skills/human-made-design/SKILL.md +73 -0
- package/skill-sources/ingenium/skills/java-backend/SKILL.md +98 -0
- package/skill-sources/ingenium/skills/jev/SKILL.md +150 -0
- package/skill-sources/ingenium/skills/motion-craft/SKILL.md +66 -0
- package/skill-sources/ingenium/skills/multiplayer-netcode/SKILL.md +63 -0
- package/skill-sources/ingenium/skills/node-backend/SKILL.md +113 -0
- package/skill-sources/ingenium/skills/node-backend/reference.md +144 -0
- package/skill-sources/ingenium/skills/perf-audit/SKILL.md +70 -0
- package/skill-sources/ingenium/skills/pixel-art-assets/SKILL.md +91 -0
- package/skill-sources/ingenium/skills/pixel-art-assets/scripts/px.py +169 -0
- package/skill-sources/ingenium/skills/pixel-game-dev/SKILL.md +79 -0
- package/skill-sources/ingenium/skills/project-onboard/SKILL.md +78 -0
- package/skill-sources/ingenium/skills/pwa-offline/SKILL.md +70 -0
- package/skill-sources/ingenium/skills/query-tuning/SKILL.md +137 -0
- package/skill-sources/ingenium/skills/react-modern/SKILL.md +92 -0
- package/skill-sources/ingenium/skills/refactor-safe/SKILL.md +63 -0
- package/skill-sources/ingenium/skills/release-prep/SKILL.md +57 -0
- package/skill-sources/ingenium/skills/safe-merge/SKILL.md +91 -0
- package/skill-sources/ingenium/skills/session-recap/SKILL.md +95 -0
- package/skill-sources/ingenium/skills/session-recap/scripts/extract_session.py +409 -0
- package/skill-sources/ingenium/skills/shader-vfx/SKILL.md +70 -0
- package/skill-sources/ingenium/skills/tailwind-v4-tokens/SKILL.md +165 -0
- package/skill-sources/ingenium/skills/task-conductor/SKILL.md +158 -0
- package/skill-sources/ingenium/skills/tauri-game-dev/SKILL.md +81 -0
- package/skill-sources/ingenium/skills/ui-ux-design/SKILL.md +96 -0
- package/skill-sources/ingenium/skills/vue-modern/SKILL.md +88 -0
- package/skill-sources/ingenium/skills/web-kickoff/SKILL.md +63 -0
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
import { SYNORCH_GENERATOR_NAME, SYNORCH_VERSION } from "../domain/product.js";
|
|
2
|
+
import { stringifyYaml } from "../infrastructure/serialization.js";
|
|
3
|
+
export function createStructureFiles(scope) {
|
|
4
|
+
return [
|
|
5
|
+
file("AGENTS.md", codexEntrypoint, "entrypoint"),
|
|
6
|
+
file("CLAUDE.md", claudeEntrypoint, "entrypoint"),
|
|
7
|
+
file(".ai/manifest.yaml", stringifyYaml({
|
|
8
|
+
schema_version: 1,
|
|
9
|
+
generator: { name: SYNORCH_GENERATOR_NAME, version: SYNORCH_VERSION },
|
|
10
|
+
scope,
|
|
11
|
+
routing: {
|
|
12
|
+
mode: "automatic",
|
|
13
|
+
require_session_confirmation: true,
|
|
14
|
+
silent_fallback: false,
|
|
15
|
+
},
|
|
16
|
+
model_profiles: {
|
|
17
|
+
openai: ".ai/model-profiles/openai.yaml",
|
|
18
|
+
claude: ".ai/model-profiles/claude.yaml",
|
|
19
|
+
},
|
|
20
|
+
}), "canonical"),
|
|
21
|
+
file(".ai/workspace.yaml", stringifyYaml({ schema_version: 1, scope, projects: [] }), "canonical"),
|
|
22
|
+
file(".ai/constitution.md", constitution, "canonical"),
|
|
23
|
+
file(".ai/protocols/registry.yaml", protocolRegistry, "canonical"),
|
|
24
|
+
file(".ai/protocols/core/orchestration.md", orchestrationProtocol, "protocol"),
|
|
25
|
+
file(".ai/protocols/core/planning-and-approval.md", planningProtocol, "protocol"),
|
|
26
|
+
file(".ai/protocols/core/delegation.md", delegationProtocol, "protocol"),
|
|
27
|
+
file(".ai/protocols/core/model-routing.md", modelRoutingProtocol, "protocol"),
|
|
28
|
+
file(".ai/protocols/core/context-handoff.md", contextHandoffProtocol, "protocol"),
|
|
29
|
+
file(".ai/protocols/core/verification.md", verificationProtocol, "protocol"),
|
|
30
|
+
file(".ai/protocols/core/failure-recovery.md", failureRecoveryProtocol, "protocol"),
|
|
31
|
+
file(".ai/protocols/core/user-communication.md", userCommunicationProtocol, "protocol"),
|
|
32
|
+
file(".ai/agents/orchestrator/AGENT.md", orchestratorAgent, "agent"),
|
|
33
|
+
file(".ai/agents/explorer/AGENT.md", explorerAgent, "agent"),
|
|
34
|
+
file(".ai/agents/implementer/AGENT.md", implementerAgent, "agent"),
|
|
35
|
+
file(".ai/agents/debugger/AGENT.md", debuggerAgent, "agent"),
|
|
36
|
+
file(".ai/agents/reviewer/AGENT.md", reviewerAgent, "agent"),
|
|
37
|
+
file(".ai/skills/planning/SKILL.md", planningSkill, "skill"),
|
|
38
|
+
file(".ai/skills/project-discovery/SKILL.md", projectDiscoverySkill, "skill"),
|
|
39
|
+
file(".ai/skills/codebase-exploration/SKILL.md", explorationSkill, "skill"),
|
|
40
|
+
file(".ai/skills/implementation/SKILL.md", implementationSkill, "skill"),
|
|
41
|
+
file(".ai/skills/verification/SKILL.md", verificationSkill, "skill"),
|
|
42
|
+
file(".ai/skills/debugging/SKILL.md", debuggingSkill, "skill"),
|
|
43
|
+
file(".ai/skills/code-review/SKILL.md", codeReviewSkill, "skill"),
|
|
44
|
+
file(".ai/model-profiles/openai.yaml", openAiProfile, "canonical"),
|
|
45
|
+
file(".ai/model-profiles/claude.yaml", claudeProfile, "canonical"),
|
|
46
|
+
file(".ai/schemas/context-packet.schema.json", contextPacketSchema, "schema"),
|
|
47
|
+
file(".ai/schemas/completion-packet.schema.json", completionPacketSchema, "schema"),
|
|
48
|
+
file(".ai/providers/codex.md", codexAdapter, "provider"),
|
|
49
|
+
file(".ai/providers/claude-code.md", claudeAdapter, "provider"),
|
|
50
|
+
file(".ai/tasks/.gitkeep", "", "canonical"),
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
function file(relativePath, content, kind) {
|
|
54
|
+
return {
|
|
55
|
+
relativePath,
|
|
56
|
+
content: content.length === 0 || content.endsWith("\n") ? content : `${content}\n`,
|
|
57
|
+
kind,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const codexEntrypoint = `# Codex Orchestration Entrypoint
|
|
61
|
+
|
|
62
|
+
This session is the orchestrator. Read \`.ai/constitution.md\` and the applicable core protocols before acting.
|
|
63
|
+
|
|
64
|
+
## Mandatory session bootstrap
|
|
65
|
+
|
|
66
|
+
Before the first task:
|
|
67
|
+
|
|
68
|
+
1. Read \`.ai/manifest.yaml\` and \`.ai/model-profiles/openai.yaml\`.
|
|
69
|
+
2. Show the active orchestrator, complex-worker and fast-worker models, routing mode, fallback policy and override source.
|
|
70
|
+
3. Ask the user whether to continue with or change that profile.
|
|
71
|
+
4. Do not begin discovery or planning until the user confirms.
|
|
72
|
+
5. For the active project, read its record from \`.ai/workspace.yaml\`, then read the referenced \`skill_registry\`.
|
|
73
|
+
6. Read \`.ai/skills/catalog.yaml\` descriptions. Load registered technology skills first; load an on-demand bundled skill only when its description directly matches the current task. Never load the whole library.
|
|
74
|
+
|
|
75
|
+
## Non-negotiable behavior
|
|
76
|
+
|
|
77
|
+
- Never write or edit product code, tests, project configuration or project documentation yourself.
|
|
78
|
+
- You may write control-plane artifacts only under \`.ai/tasks/**\`.
|
|
79
|
+
- Plan every new task and obtain user approval before execution.
|
|
80
|
+
- Delegate all implementation to worker agents.
|
|
81
|
+
- Give each worker a minimal, evidence-backed task context packet.
|
|
82
|
+
- Require independent verification before reporting completion.
|
|
83
|
+
- Only the orchestrator communicates with the user.
|
|
84
|
+
|
|
85
|
+
If the host cannot provide the configured model or worker delegation capability, report the limitation. Never silently fall back or implement the work yourself.
|
|
86
|
+
`;
|
|
87
|
+
const claudeEntrypoint = `# Claude Code Orchestration Entrypoint
|
|
88
|
+
|
|
89
|
+
This session is the orchestrator. Read \`.ai/constitution.md\` and the applicable core protocols before acting.
|
|
90
|
+
|
|
91
|
+
## Mandatory session bootstrap
|
|
92
|
+
|
|
93
|
+
Before the first task:
|
|
94
|
+
|
|
95
|
+
1. Read \`.ai/manifest.yaml\` and \`.ai/model-profiles/claude.yaml\`.
|
|
96
|
+
2. Show the active orchestrator, complex-worker and fast-worker models, routing mode, fallback policy and override source.
|
|
97
|
+
3. Ask the user whether to continue with or change that profile.
|
|
98
|
+
4. Do not begin discovery or planning until the user confirms.
|
|
99
|
+
5. For the active project, read its record from \`.ai/workspace.yaml\`, then read the referenced \`skill_registry\`.
|
|
100
|
+
6. Read \`.ai/skills/catalog.yaml\` descriptions. Load registered technology skills first; load an on-demand bundled skill only when its description directly matches the current task. Never load the whole library.
|
|
101
|
+
|
|
102
|
+
## Non-negotiable behavior
|
|
103
|
+
|
|
104
|
+
- Never write or edit product code, tests, project configuration or project documentation yourself.
|
|
105
|
+
- You may write control-plane artifacts only under \`.ai/tasks/**\`.
|
|
106
|
+
- Plan every new task and obtain user approval before execution.
|
|
107
|
+
- Delegate all implementation to worker agents.
|
|
108
|
+
- Give each worker a minimal, evidence-backed task context packet.
|
|
109
|
+
- Require independent verification before reporting completion.
|
|
110
|
+
- Only the orchestrator communicates with the user.
|
|
111
|
+
|
|
112
|
+
If the host cannot provide the configured model or worker delegation capability, report the limitation. Never silently fall back or implement the work yourself.
|
|
113
|
+
`;
|
|
114
|
+
const constitution = `# AI Development Constitution
|
|
115
|
+
|
|
116
|
+
## Mission
|
|
117
|
+
|
|
118
|
+
Deliver correct, verified work with the smallest sufficient context and an explicit chain of responsibility.
|
|
119
|
+
|
|
120
|
+
## Constitutional invariants
|
|
121
|
+
|
|
122
|
+
1. The user communicates only with the orchestrator.
|
|
123
|
+
2. The orchestrator analyzes, decides, plans, delegates, monitors and reports; it never implements product changes.
|
|
124
|
+
3. Every new task requires a user-approved plan before execution.
|
|
125
|
+
4. All product changes are owned by a worker agent with explicit file or responsibility boundaries.
|
|
126
|
+
5. Workers receive task-specific context packets instead of raw conversation history.
|
|
127
|
+
6. A worker does not repeat broad repository discovery already captured as evidence.
|
|
128
|
+
7. Implementation requires evidence-based verification and independent review proportional to risk.
|
|
129
|
+
8. Missing capabilities, unavailable models and failures are surfaced; silent fallback is forbidden.
|
|
130
|
+
9. Lower-priority protocols, agents and skills cannot override this constitution.
|
|
131
|
+
10. Provider safety and system instructions always take precedence.
|
|
132
|
+
`;
|
|
133
|
+
const protocolRegistry = `schema_version: 1
|
|
134
|
+
protocols:
|
|
135
|
+
- id: core.orchestration
|
|
136
|
+
path: .ai/protocols/core/orchestration.md
|
|
137
|
+
priority: constitutional
|
|
138
|
+
mandatory: true
|
|
139
|
+
- id: core.planning-and-approval
|
|
140
|
+
path: .ai/protocols/core/planning-and-approval.md
|
|
141
|
+
priority: core
|
|
142
|
+
mandatory: true
|
|
143
|
+
- id: core.delegation
|
|
144
|
+
path: .ai/protocols/core/delegation.md
|
|
145
|
+
priority: core
|
|
146
|
+
mandatory: true
|
|
147
|
+
- id: core.model-routing
|
|
148
|
+
path: .ai/protocols/core/model-routing.md
|
|
149
|
+
priority: core
|
|
150
|
+
mandatory: true
|
|
151
|
+
- id: core.context-handoff
|
|
152
|
+
path: .ai/protocols/core/context-handoff.md
|
|
153
|
+
priority: core
|
|
154
|
+
mandatory: true
|
|
155
|
+
- id: core.verification
|
|
156
|
+
path: .ai/protocols/core/verification.md
|
|
157
|
+
priority: core
|
|
158
|
+
mandatory: true
|
|
159
|
+
- id: core.failure-recovery
|
|
160
|
+
path: .ai/protocols/core/failure-recovery.md
|
|
161
|
+
priority: core
|
|
162
|
+
mandatory: true
|
|
163
|
+
- id: core.user-communication
|
|
164
|
+
path: .ai/protocols/core/user-communication.md
|
|
165
|
+
priority: core
|
|
166
|
+
mandatory: true
|
|
167
|
+
`;
|
|
168
|
+
const orchestrationProtocol = `---
|
|
169
|
+
id: core.orchestration
|
|
170
|
+
version: 1.0.0
|
|
171
|
+
priority: constitutional
|
|
172
|
+
mandatory: true
|
|
173
|
+
overridable: false
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
# Orchestration Protocol
|
|
177
|
+
|
|
178
|
+
Use the state machine:
|
|
179
|
+
|
|
180
|
+
\`SESSION_BOOTSTRAP → MODEL_PROFILE_CONFIRMATION → INTAKE → DISCOVERY → CLARIFICATION → PLAN → USER_APPROVAL → DECOMPOSITION → DISPATCH → MONITORING → VERIFICATION → REVIEW → FINAL_REPORT\`.
|
|
181
|
+
|
|
182
|
+
The orchestrator must not skip a gate. It may read project files and write only task-control records under \`.ai/tasks/**\`. Every product mutation is delegated. Worker questions return to the orchestrator; only material decisions are escalated to the user.
|
|
183
|
+
`;
|
|
184
|
+
const planningProtocol = `---
|
|
185
|
+
id: core.planning-and-approval
|
|
186
|
+
version: 1.0.0
|
|
187
|
+
priority: core
|
|
188
|
+
mandatory: true
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
# Planning and Approval
|
|
192
|
+
|
|
193
|
+
Before execution, present the understood goal, verified current state, proposed approach, affected areas, task decomposition, model choices, verification plan, assumptions and risks. Wait for explicit user approval. Re-open approval when scope or a material decision changes.
|
|
194
|
+
`;
|
|
195
|
+
const delegationProtocol = `---
|
|
196
|
+
id: core.delegation
|
|
197
|
+
version: 1.0.0
|
|
198
|
+
priority: core
|
|
199
|
+
mandatory: true
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
# Delegation
|
|
203
|
+
|
|
204
|
+
Give every worker one bounded objective, explicit ownership, constraints, acceptance criteria and an expected report contract. Parallelize only independent tasks. Workers are not alone in the codebase and must not revert or overwrite other workers' changes. Shared-file ownership requires serialization or an explicit integration owner.
|
|
205
|
+
`;
|
|
206
|
+
const modelRoutingProtocol = `---
|
|
207
|
+
id: core.model-routing
|
|
208
|
+
version: 1.0.0
|
|
209
|
+
priority: core
|
|
210
|
+
mandatory: true
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
# Model Routing
|
|
214
|
+
|
|
215
|
+
Use the active provider profile. Route architecture and final decisions to the orchestrator tier, complex implementation/debugging to the complex-worker tier, and small local low-risk work to the fast-worker tier. Small tasks are still delegated. Do not silently substitute unavailable models. Session overrides do not become persistent defaults unless the user explicitly requests it.
|
|
216
|
+
`;
|
|
217
|
+
const contextHandoffProtocol = `---
|
|
218
|
+
id: core.context-handoff
|
|
219
|
+
version: 1.0.0
|
|
220
|
+
priority: core
|
|
221
|
+
mandatory: true
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
# Context Handoff
|
|
225
|
+
|
|
226
|
+
Prefer minimal inherited history plus an explicit task context packet. Include objective, rationale, owned/read/forbidden scope, verified facts with provenance, decisions, relevant files and symbols, acceptance criteria, verification commands, non-goals and escalation conditions.
|
|
227
|
+
|
|
228
|
+
Workers may inspect target files and narrowly verify critical facts, but must not repeat broad discovery. Missing context is requested from the orchestrator. Follow-up work uses a delta packet. Worker output follows the completion-packet schema.
|
|
229
|
+
`;
|
|
230
|
+
const verificationProtocol = `---
|
|
231
|
+
id: core.verification
|
|
232
|
+
version: 1.0.0
|
|
233
|
+
priority: core
|
|
234
|
+
mandatory: true
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
# Verification
|
|
238
|
+
|
|
239
|
+
No task is complete without evidence. Run the narrowest relevant checks first, then broader checks proportional to risk. Record exact commands and outcomes. Never claim a check ran when it did not. A separate reviewer evaluates requirement coverage, diff risk and evidence for material changes.
|
|
240
|
+
`;
|
|
241
|
+
const failureRecoveryProtocol = `---
|
|
242
|
+
id: core.failure-recovery
|
|
243
|
+
version: 1.0.0
|
|
244
|
+
priority: core
|
|
245
|
+
mandatory: true
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
# Failure, Retry and Escalation
|
|
249
|
+
|
|
250
|
+
On failure, preserve evidence, classify the cause and retry only with a materially changed hypothesis or instruction. Do not loop. Scope changes, stale context, ownership conflicts, unavailable capabilities and user decisions return to the orchestrator. The orchestrator never takes over implementation as a recovery mechanism.
|
|
251
|
+
`;
|
|
252
|
+
const userCommunicationProtocol = `---
|
|
253
|
+
id: core.user-communication
|
|
254
|
+
version: 1.0.0
|
|
255
|
+
priority: core
|
|
256
|
+
mandatory: true
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
# User Communication
|
|
260
|
+
|
|
261
|
+
Only the orchestrator speaks to the user. Lead with outcomes and decisions. Ask only for choices that materially affect scope or result. Plans and final reports include model routing and verification evidence without exposing unnecessary internal chatter.
|
|
262
|
+
`;
|
|
263
|
+
const orchestratorAgent = `---
|
|
264
|
+
name: orchestrator
|
|
265
|
+
role: control-plane
|
|
266
|
+
writes_product_files: false
|
|
267
|
+
control_plane_write_scope: .ai/tasks/**
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
# Orchestrator
|
|
271
|
+
|
|
272
|
+
Own requirements, decisions, plans, delegation, context packets, monitoring, review synthesis and user communication. Never implement. Use the planning, project-discovery and verification skills. Treat worker claims as untrusted until supported by evidence.
|
|
273
|
+
`;
|
|
274
|
+
const explorerAgent = `---
|
|
275
|
+
name: explorer
|
|
276
|
+
role: read-only-evidence
|
|
277
|
+
writes_product_files: false
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
# Explorer
|
|
281
|
+
|
|
282
|
+
Answer one bounded codebase question with paths, symbols and evidence. Do not modify files. Reuse existing project snapshots and task evidence before searching. Report unknowns and confidence explicitly.
|
|
283
|
+
`;
|
|
284
|
+
const implementerAgent = `---
|
|
285
|
+
name: implementer
|
|
286
|
+
role: product-change
|
|
287
|
+
writes_product_files: true
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
# Implementer
|
|
291
|
+
|
|
292
|
+
Implement only the assigned objective and owned paths. Read the task packet first, preserve concurrent work, run required checks and return a structured completion packet. Escalate scope changes instead of expanding the task.
|
|
293
|
+
`;
|
|
294
|
+
const debuggerAgent = `---
|
|
295
|
+
name: debugger
|
|
296
|
+
role: root-cause-and-fix
|
|
297
|
+
writes_product_files: true
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
# Debugger
|
|
301
|
+
|
|
302
|
+
Reproduce, narrow the search space, form falsifiable hypotheses, identify root cause, implement the smallest justified fix and prove it. Do not patch symptoms without evidence.
|
|
303
|
+
`;
|
|
304
|
+
const reviewerAgent = `---
|
|
305
|
+
name: reviewer
|
|
306
|
+
role: independent-review
|
|
307
|
+
writes_product_files: false
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
# Reviewer
|
|
311
|
+
|
|
312
|
+
Independently compare the approved plan, acceptance criteria, diff and verification evidence. Report actionable findings by severity. Do not approve based only on the implementer's summary and do not modify the implementation.
|
|
313
|
+
`;
|
|
314
|
+
const planningSkill = `---
|
|
315
|
+
name: planning
|
|
316
|
+
description: Use for every new user task before implementation begins.
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
# Planning
|
|
320
|
+
|
|
321
|
+
1. State the goal and non-goals.
|
|
322
|
+
2. Separate verified facts, assumptions and decisions.
|
|
323
|
+
3. Identify risks and material questions.
|
|
324
|
+
4. Build a dependency-aware task graph with ownership.
|
|
325
|
+
5. Select worker tiers and verification.
|
|
326
|
+
6. Present the plan and wait for user approval.
|
|
327
|
+
`;
|
|
328
|
+
const projectDiscoverySkill = `---
|
|
329
|
+
name: project-discovery
|
|
330
|
+
description: Use after manual sync or when a registered project's facts need bounded refresh.
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
# Project Discovery
|
|
334
|
+
|
|
335
|
+
Read existing AI instructions first. Inspect manifests, lockfiles, README, CI and configuration before source code. Record only evidence-backed languages, frameworks, commands and boundaries. Mark uncertain interpretations as hypotheses. Never invent architecture for an empty project.
|
|
336
|
+
`;
|
|
337
|
+
const explorationSkill = `---
|
|
338
|
+
name: codebase-exploration
|
|
339
|
+
description: Use to answer a specific codebase question before planning or delegation.
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
# Codebase Exploration
|
|
343
|
+
|
|
344
|
+
Start from the project snapshot and existing evidence. Search by symbol and path, not by reading the entire repository. Return relevant files, relationships, conventions, risks and unanswered questions with provenance.
|
|
345
|
+
`;
|
|
346
|
+
const implementationSkill = `---
|
|
347
|
+
name: implementation
|
|
348
|
+
description: Use by a worker after an approved plan and task packet exist.
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
# Implementation
|
|
352
|
+
|
|
353
|
+
Confirm objective, ownership and constraints. Inspect the latest target files, make the smallest coherent change, preserve unrelated work, verify incrementally and return a completion packet. Stop and escalate when scope or assumptions change.
|
|
354
|
+
`;
|
|
355
|
+
const verificationSkill = `---
|
|
356
|
+
name: verification
|
|
357
|
+
description: Use before any implementation is reported complete.
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
# Verification
|
|
361
|
+
|
|
362
|
+
Map each acceptance criterion to evidence. Run focused tests first, then lint/typecheck/build or broader tests according to risk. Record commands, exit status and failures. Distinguish passed, failed and not-run checks.
|
|
363
|
+
`;
|
|
364
|
+
const debuggingSkill = `---
|
|
365
|
+
name: debugging
|
|
366
|
+
description: Use for defects, flaky behavior and unexplained failures.
|
|
367
|
+
---
|
|
368
|
+
|
|
369
|
+
# Debugging
|
|
370
|
+
|
|
371
|
+
Reproduce first. Establish a minimal failing case, rank hypotheses, gather evidence that can disprove each one, locate root cause, add a regression test, implement the smallest fix and rerun relevant verification.
|
|
372
|
+
`;
|
|
373
|
+
const codeReviewSkill = `---
|
|
374
|
+
name: code-review
|
|
375
|
+
description: Use for independent review after implementation.
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
# Code Review
|
|
379
|
+
|
|
380
|
+
Review against the approved task, not personal preference. Inspect the actual diff and surrounding code. Prioritize correctness, regressions, security, concurrency and missing tests. Report precise locations and consequences; state explicitly when no actionable finding exists.
|
|
381
|
+
`;
|
|
382
|
+
const openAiProfile = `schema_version: 1
|
|
383
|
+
provider: openai
|
|
384
|
+
defaults:
|
|
385
|
+
orchestrator: gpt-6-astra
|
|
386
|
+
complex_worker: gpt-5.6-sol
|
|
387
|
+
fast_worker: gpt-5.6-luna
|
|
388
|
+
`;
|
|
389
|
+
const claudeProfile = `schema_version: 1
|
|
390
|
+
provider: claude
|
|
391
|
+
defaults:
|
|
392
|
+
orchestrator: fable-5
|
|
393
|
+
complex_worker: opus-5
|
|
394
|
+
fast_worker: sonnet-5
|
|
395
|
+
`;
|
|
396
|
+
const codexAdapter = `# Codex Adapter
|
|
397
|
+
|
|
398
|
+
- Root entrypoint: \`AGENTS.md\`
|
|
399
|
+
- Canonical profile: \`.ai/model-profiles/openai.yaml\`
|
|
400
|
+
- Prefer explicit task packets over full-history forks.
|
|
401
|
+
- Select worker model tiers only when the host supports per-agent model selection.
|
|
402
|
+
- If configured models or delegation are unavailable, stop and report the capability mismatch.
|
|
403
|
+
`;
|
|
404
|
+
const claudeAdapter = `# Claude Code Adapter
|
|
405
|
+
|
|
406
|
+
- Root entrypoint: \`CLAUDE.md\`
|
|
407
|
+
- Canonical profile: \`.ai/model-profiles/claude.yaml\`
|
|
408
|
+
- Prefer explicit task packets over copying the full conversation into subagents.
|
|
409
|
+
- Select worker model tiers only when the host supports per-agent model selection.
|
|
410
|
+
- If configured models or delegation are unavailable, stop and report the capability mismatch.
|
|
411
|
+
`;
|
|
412
|
+
const contextPacketSchema = JSON.stringify({
|
|
413
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
414
|
+
title: "Task Context Packet",
|
|
415
|
+
type: "object",
|
|
416
|
+
additionalProperties: false,
|
|
417
|
+
required: [
|
|
418
|
+
"task_id",
|
|
419
|
+
"assigned_role",
|
|
420
|
+
"model_tier",
|
|
421
|
+
"objective",
|
|
422
|
+
"scope",
|
|
423
|
+
"acceptance_criteria",
|
|
424
|
+
"expected_report",
|
|
425
|
+
],
|
|
426
|
+
properties: {
|
|
427
|
+
task_id: { type: "string", minLength: 1 },
|
|
428
|
+
parent_task_id: { type: ["string", "null"] },
|
|
429
|
+
assigned_role: { type: "string", minLength: 1 },
|
|
430
|
+
model_tier: { enum: ["complex_worker", "fast_worker"] },
|
|
431
|
+
objective: { type: "string", minLength: 1 },
|
|
432
|
+
rationale: { type: "string" },
|
|
433
|
+
scope: {
|
|
434
|
+
type: "object",
|
|
435
|
+
required: ["owned_paths", "read_paths", "forbidden_paths"],
|
|
436
|
+
properties: {
|
|
437
|
+
owned_paths: { type: "array", items: { type: "string" } },
|
|
438
|
+
read_paths: { type: "array", items: { type: "string" } },
|
|
439
|
+
forbidden_paths: { type: "array", items: { type: "string" } },
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
known_facts: { type: "array", items: { type: "object" } },
|
|
443
|
+
decisions: { type: "array", items: { type: "string" } },
|
|
444
|
+
relevant_symbols: { type: "array", items: { type: "object" } },
|
|
445
|
+
acceptance_criteria: { type: "array", minItems: 1, items: { type: "string" } },
|
|
446
|
+
verification_commands: { type: "array", items: { type: "string" } },
|
|
447
|
+
non_goals: { type: "array", items: { type: "string" } },
|
|
448
|
+
open_questions: { type: "array", items: { type: "string" } },
|
|
449
|
+
expected_report: { type: "array", minItems: 1, items: { type: "string" } },
|
|
450
|
+
context_version: { type: "integer", minimum: 1 },
|
|
451
|
+
},
|
|
452
|
+
}, null, 2);
|
|
453
|
+
const completionPacketSchema = JSON.stringify({
|
|
454
|
+
$schema: "https://json-schema.org/draft/2020-12/schema",
|
|
455
|
+
title: "Worker Completion Packet",
|
|
456
|
+
type: "object",
|
|
457
|
+
additionalProperties: false,
|
|
458
|
+
required: ["task_id", "status", "summary", "changed_files", "commands_run", "unresolved_risks"],
|
|
459
|
+
properties: {
|
|
460
|
+
task_id: { type: "string", minLength: 1 },
|
|
461
|
+
status: { enum: ["completed", "failed", "needs_context", "blocked"] },
|
|
462
|
+
summary: { type: "string" },
|
|
463
|
+
root_cause: { type: ["string", "null"] },
|
|
464
|
+
changed_files: { type: "array", items: { type: "string" } },
|
|
465
|
+
commands_run: { type: "array", items: { type: "object" } },
|
|
466
|
+
decisions_made: { type: "array", items: { type: "string" } },
|
|
467
|
+
unresolved_risks: { type: "array", items: { type: "string" } },
|
|
468
|
+
recommended_context_updates: { type: "array", items: { type: "string" } },
|
|
469
|
+
},
|
|
470
|
+
}, null, 2);
|
|
471
|
+
//# sourceMappingURL=structure-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure-templates.js","sourceRoot":"","sources":["../../src/templates/structure-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"technology-skill-templates.d.ts","sourceRoot":"","sources":["../../src/templates/technology-skill-templates.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgEvE,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlE"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export const TECHNOLOGY_SKILL_TEMPLATES = {
|
|
2
|
+
"typescript-patterns": `---
|
|
3
|
+
name: typescript-patterns
|
|
4
|
+
description: Use when implementing or reviewing code in a module verified to use TypeScript.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# TypeScript Patterns
|
|
8
|
+
|
|
9
|
+
Respect the module's configured TypeScript version and strictness. Model domain states explicitly, narrow unknown values at external boundaries, and prefer inference over duplicated annotations. Do not use \`any\`, non-null assertions, or broad casts to bypass a type error without evidence that the runtime invariant is enforced. Verify with the module's typecheck command.
|
|
10
|
+
`,
|
|
11
|
+
"react-patterns": `---
|
|
12
|
+
name: react-patterns
|
|
13
|
+
description: Use when implementing or reviewing a module verified to use React.
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# React Patterns
|
|
17
|
+
|
|
18
|
+
Follow the module's existing component, routing, state, and styling conventions. Keep render logic pure, colocate state with its owner, clean up effects, and preserve client/server boundaries when the framework has them. Prefer accessible semantic controls and test observable user behavior instead of implementation details.
|
|
19
|
+
`,
|
|
20
|
+
"java-patterns": `---
|
|
21
|
+
name: java-patterns
|
|
22
|
+
description: Use when implementing or reviewing code in a module verified to use Java.
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
# Java Patterns
|
|
26
|
+
|
|
27
|
+
Honor the configured Java release and established package boundaries. Make invalid states difficult to represent, keep nullability and exception behavior explicit, and avoid hidden shared mutability. Prefer small cohesive types over speculative abstractions. Compile and test through the module's verified build tool.
|
|
28
|
+
`,
|
|
29
|
+
"spring-boot-patterns": `---
|
|
30
|
+
name: spring-boot-patterns
|
|
31
|
+
description: Use when working in a module with verified Spring Boot evidence.
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Spring Boot Patterns
|
|
35
|
+
|
|
36
|
+
Keep HTTP concerns at the controller boundary and business rules in application or domain services. Prefer constructor injection, validated request models, explicit error-to-response mapping, and configuration properties over scattered environment reads. Place transaction ownership at a service boundary and test behavior with the narrowest Spring test slice that proves it.
|
|
37
|
+
`,
|
|
38
|
+
"jpa-patterns": `---
|
|
39
|
+
name: jpa-patterns
|
|
40
|
+
description: Use when persistence work targets a module with verified JPA or Hibernate evidence.
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# JPA Patterns
|
|
44
|
+
|
|
45
|
+
Design entity relationships around aggregate ownership and actual query paths. Define transaction and fetch boundaries deliberately; inspect generated access patterns for N+1 queries and unintended writes. Keep API serialization separate from managed entities, and pair schema-affecting changes with the project's migration mechanism and repository-level tests.
|
|
46
|
+
`,
|
|
47
|
+
"maven-build": `---
|
|
48
|
+
name: maven-build
|
|
49
|
+
description: Use for build or dependency work in a module with verified Maven evidence.
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# Maven Build
|
|
53
|
+
|
|
54
|
+
Use the project wrapper when present and preserve the existing parent, BOM, profile, and plugin-management strategy. Add dependencies at the narrowest correct scope and avoid overriding managed versions without a demonstrated need. Verify focused tests first, then the relevant Maven lifecycle phase used by CI.
|
|
55
|
+
`,
|
|
56
|
+
"gradle-build": `---
|
|
57
|
+
name: gradle-build
|
|
58
|
+
description: Use for build or dependency work in a module with verified Gradle evidence.
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
# Gradle Build
|
|
62
|
+
|
|
63
|
+
Use the project wrapper and follow its Groovy or Kotlin DSL conventions. Respect existing version catalogs, convention plugins, configurations, and module boundaries. Avoid eager configuration and unscoped dependency additions. Run focused tasks first, then the relevant Gradle checks used by CI.
|
|
64
|
+
`,
|
|
65
|
+
};
|
|
66
|
+
export function getTechnologySkillTemplate(skillId) {
|
|
67
|
+
const template = TECHNOLOGY_SKILL_TEMPLATES[skillId];
|
|
68
|
+
if (template === undefined) {
|
|
69
|
+
throw new Error(`Missing technology skill template for ${skillId}`);
|
|
70
|
+
}
|
|
71
|
+
return template.endsWith("\n") ? template : `${template}\n`;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=technology-skill-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"technology-skill-templates.js","sourceRoot":"","sources":["../../src/templates/technology-skill-templates.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAqC;IAC1E,qBAAqB,EAAE;;;;;;;;CAQxB;IACC,gBAAgB,EAAE;;;;;;;;CAQnB;IACC,eAAe,EAAE;;;;;;;;CAQlB;IACC,sBAAsB,EAAE;;;;;;;;CAQzB;IACC,cAAc,EAAE;;;;;;;;CAQjB;IACC,aAAa,EAAE;;;;;;;;CAQhB;IACC,cAAc,EAAE;;;;;;;;CAQjB;CACA,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,CAAC;AAC9D,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "synorch",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Provider-neutral AI orchestration structure generator for Codex and Claude Code.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"agents",
|
|
8
|
+
"orchestration",
|
|
9
|
+
"codex",
|
|
10
|
+
"claude-code",
|
|
11
|
+
"cli"
|
|
12
|
+
],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"author": "Tunahan Tuna",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/TunahanTuna/synorch.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/TunahanTuna/synorch#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/TunahanTuna/synorch/issues"
|
|
22
|
+
},
|
|
23
|
+
"type": "module",
|
|
24
|
+
"bin": {
|
|
25
|
+
"syn": "dist/cli.js",
|
|
26
|
+
"synorch": "dist/cli.js"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist",
|
|
30
|
+
"skill-sources",
|
|
31
|
+
"README.md",
|
|
32
|
+
"CHANGELOG.md",
|
|
33
|
+
"LICENSE"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc -p tsconfig.build.json",
|
|
37
|
+
"dev": "node src/cli.ts",
|
|
38
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
39
|
+
"test": "node --test tests/*.test.ts",
|
|
40
|
+
"check": "pnpm typecheck && pnpm test && pnpm build",
|
|
41
|
+
"prepack": "pnpm check",
|
|
42
|
+
"release:dry-run": "npm publish --dry-run"
|
|
43
|
+
},
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=24.0.0"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"packageManager": "pnpm@11.19.0",
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"yaml": "^2.8.1",
|
|
53
|
+
"zod": "^4.1.11"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@types/node": "^24.10.0",
|
|
57
|
+
"typescript": "^5.9.3"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Ingenium skill snapshot
|
|
2
|
+
|
|
3
|
+
This directory contains a bundled snapshot of the project owner's Ingenium skill library.
|
|
4
|
+
|
|
5
|
+
- Author: Tunahan
|
|
6
|
+
- Snapshot: 2026-09-20
|
|
7
|
+
- Catalog source id: `ingenium`
|
|
8
|
+
- Distribution status: project-owned
|
|
9
|
+
|
|
10
|
+
The snapshot is copied into generated projects as a read-only skill library. Automatic activation is restricted to skills backed by verified repository evidence; all other skills remain available for on-demand routing through `.ai/skills/catalog.yaml`.
|
|
11
|
+
|