llm-orchestrator 1.0.4 → 1.0.6

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "llm-orchestrator",
3
3
  "description": "Write /task once — it plans the work, shards it across parallel subagents, gates every phase and verifies before claiming done. Claude Code, Codex, OpenCode, Kilo.",
4
- "version": "1.0.4",
4
+ "version": "1.0.6",
5
5
  "author": {
6
6
  "name": "Bogdan-Gabriel Torcescu",
7
7
  "url": "https://www.linkedin.com/in/bogdantorcescu/"
package/README.md CHANGED
@@ -282,7 +282,7 @@ Same five steps for every harness; only the skills root and the reload differ.
282
282
  node bin/llm-orchestrator.mjs install --project /path/to/app --harness <harness>
283
283
  ```
284
284
  3. **Apply** the same command with `--apply`. Re-running is idempotent; a file you edited by hand is reported as a conflict, never overwritten.
285
- 4. **Add project bindings** to `/path/to/app/AGENTS.md` (template below, or run `init --apply` to append it automatically when the section is missing). The core reads this section on every task; without it the core still runs with its generic matrix.
285
+ 4. **Add project bindings** to `/path/to/app/AGENTS.md` (template below, or run `init --apply` to append it automatically when the section is missing). `install` reports `bindings.present` and, when false, the exact `init --apply` command. The core reads this section on every task; without it the core still runs with its generic matrix.
286
286
  5. **Verify and reload**: `node bin/llm-orchestrator.mjs doctor --project /path/to/app --harness <harness>` must list every mandatory core tool as `present` (or as a declared gap with an install hint). Then reload the harness session so the skill catalog is refreshed.
287
287
 
288
288
  `node bin/llm-orchestrator.mjs init --project /path/to/app` runs steps 2, 4 (report only) and 5 together, before you commit to a harness — it proposes `--harness` from what it detects, shows the same dry-run plan, and lists exactly which of the 8 mandatory tools are missing with an install command for each.
package/bin/install.mjs CHANGED
@@ -39,7 +39,15 @@ try {
39
39
  if (options.apply && options.linkClaude && (!result.conflicts || result.conflicts.length === 0) && options.harnesses.includes('claude')) {
40
40
  claudeSymlink = await linkClaudeSkillsRoot(options.skillsRoot);
41
41
  }
42
- process.stdout.write(`${JSON.stringify({...result, files: result.files?.map(({absolutePath, content, ...file}) => file), ...(claudeSymlink ? {claudeSymlink} : {})}, null, 2)}\n`);
42
+ // `install` never writes the project bindings section — only `init --apply`
43
+ // does — so say so here, or a user who only ever runs `install` never learns
44
+ // the section exists and the core runs on its generic matrix forever.
45
+ const {agentsMdHasBindings, cliInvocation, BINDINGS_HEADING} = await import('../lib/first-run.mjs');
46
+ const bindingsPresent = await agentsMdHasBindings(options.project);
47
+ const bindings = bindingsPresent
48
+ ? {present: true}
49
+ : {present: false, section: BINDINGS_HEADING, next: `${cliInvocation()} init --project ${options.project} --apply`};
50
+ process.stdout.write(`${JSON.stringify({...result, files: result.files?.map(({absolutePath, content, ...file}) => file), ...(claudeSymlink ? {claudeSymlink} : {}), bindings}, null, 2)}\n`);
43
51
  if (result.conflicts?.length) process.exitCode = 2;
44
52
  }
45
53
  } catch (error) {
package/lib/first-run.mjs CHANGED
@@ -197,7 +197,7 @@ Generic rules live in \`orchestrate-core\`; this section only adds or tightens.
197
197
  **Agent defaults:** \`<role>\` → \`<tier>\` (W T0–T1 / S T2 / S T3 / X T3 …).
198
198
  `;
199
199
 
200
- async function agentsMdHasBindings(project) {
200
+ export async function agentsMdHasBindings(project) {
201
201
  try {
202
202
  const text = await readFile(join(project, 'AGENTS.md'), 'utf8');
203
203
  return text.includes(BINDINGS_HEADING);
@@ -215,8 +215,10 @@ async function agentsMdHasBindings(project) {
215
215
  * clone, the bare bin name when installed from npm (global or `npx`).
216
216
  */
217
217
  export function cliInvocation(argv = process.argv) {
218
+ // The unified CLI forwards by rewriting argv[1] to the subcommand script, so
219
+ // any script under this checkout's bin/ counts as "run from the clone".
218
220
  const script = argv[1] ? resolve(argv[1]) : '';
219
- const fromClone = script === resolve(process.cwd(), 'bin', 'llm-orchestrator.mjs');
221
+ const fromClone = script.startsWith(resolve(process.cwd(), 'bin') + '/');
220
222
  return fromClone ? 'node bin/llm-orchestrator.mjs' : 'llm-orchestrator';
221
223
  }
222
224
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-orchestrator",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Write /task once — it plans the work, shards it across parallel subagents, gates every phase and verifies before claiming done. Claude Code, Codex, OpenCode, Kilo.",
5
5
  "type": "module",
6
6
  "engines": {
@@ -40,9 +40,9 @@ README.
40
40
  | Task type | Mandatory | Optional (trigger) | Available |
41
41
  |---|---|---|---|
42
42
  | **INCIDENT** | `incident-start` → `-evidence` → `-fix` → `-verify` → `-close`, in that order; telemetry collection **before any hypothesis** | edge/CDN observability MCP (edge or worker symptom); native-platform debugger skill (native crash); memory recall of a prior incident (the symptom rhymes) | incident orchestration workflow, adversarial-skeptic |
43
- | **FEATURE** | brainstorming before plan mode; the test-engineer writes the **failing test first** | `context7` (any library/SDK API surface — even familiar ones); design-system + UI-styling skills (any new UI); payment-provider best-practices skill (money path); semantic-code MCP such as `serena` (large cross-file edit) | code-architect role, spec-complete code generator (only when the spec is complete and no clarification is needed) |
43
+ | **FEATURE** | brainstorming before plan mode; the test-engineer writes the **failing test first** | `context7` (any library/SDK API surface — even familiar ones); design-system + UI-styling skills (any new UI); payment-provider best-practices skill (money path); semantic-code MCP such as `serena` (large cross-file edit) | `feature-dev-code-architect` (a harness-provided planning agent, not a core role), spec-complete code generator (only when the spec is complete and no clarification is needed) |
44
44
  | **BUG_FIX** | systematic-debugging; **reproduce before fixing** | route-data-flow-tracer (symptom crosses layers); db-concurrency-specialist (interleaving suspected); browser automation such as `playwright` (UI-visible) | compact investigator scout, read-only exploration agent |
45
- | **REFACTOR** | coverage exists **before the first edit** | code-simplifier; semantic-code MCP (symbol-level moves across many files) | bounded ≤2-file builder, code-explorer |
45
+ | **REFACTOR** | coverage exists **before the first edit** | code-simplifier; semantic-code MCP (symbol-level moves across many files) | bounded ≤2-file builder, the `explore` role |
46
46
  | **INVESTIGATION** | adversarial challenge of the synthesis — never ship a single-source conclusion; **`exa` whenever any part of the explanation rests on external or current facts** | semantic-code MCP; memory recall before fanning out (the answer may already be filed) | read-only exploration agent, general-purpose agent |
47
47
  | **DEPLOY** | client-compatibility check + migrations applied + smoke; telemetry collection on the soak | native-build MCP (mobile/native build); CI/build MCP (edge or worker deploy); platform-config MCP (a third-party app config was touched) | performance profiling skills |
48
48
  | **CONFIG** | db-migration-author for **any schema change** — never hand-write a migration | provider-webhook-specialist (payment or store webhook); platform-config MCP; provider SDK upgrade skill | infrastructure API MCPs |
package/protocol.md CHANGED
@@ -99,7 +99,7 @@ shards only. See [dispatch](policies/dispatch.md) and [routing](policies/routing
99
99
  | Type | Triggers | Flow | Core agent roles |
100
100
  |---|---|---|---|
101
101
  | **INCIDENT** | production error, 5xx, stuck state, webhook failure, alert | Evidence → Hypothesis → Fix → Verify → Close | production-telemetry-collector ×N + route-data-flow-tracer → adversarial-skeptic → builders → code-reviewer |
102
- | **FEATURE** | "build", "add", "create", "implement" | Plan → TDD → Build → Test → Review → Verify | planner → test-engineer → backend-fixer / frontend-fixer → code-reviewer |
102
+ | **FEATURE** | "build", "add", "create", "implement" | Plan → TDD → Build → Test → Review → Verify | orchestrator → test-engineer → backend-fixer / frontend-fixer → code-reviewer |
103
103
  | **BUG_FIX** | "fix", "repair", "broken" | Reproduce → Evidence → Hypothesis → Regression → Fix → Review | investigation → test-engineer → builders → code-reviewer |
104
104
  | **REFACTOR** | "refactor", "clean up", "extract", "simplify" | Analyze → Coverage → Incremental → Review | code-simplifier → test-engineer → builders → code-reviewer |
105
105
  | **INVESTIGATION** | "why", "analyze", "how does", "debug" | Evidence → Synthesis → Challenge → Report | evidence collectors ×N → synthesizer → adversarial-skeptic |
@@ -1 +1,370 @@
1
- {"_attribution":"llm-orchestrator · created by Bogdan-Gabriel Torcescu · https://www.linkedin.com/in/bogdantorcescu/ · keep this credit when copying or deriving","version":1,"permission_profiles":{"RO":{"description":"Read-only. Investigation, evidence collection, review, telemetry.","required_access":["read","grep","glob","bash_readonly"],"rules":["Never edits files.","Bash limited to read-only/inspection commands (no writes, no migrations, no deploys).","Reports findings back to the dispatcher; does not apply fixes."]},"RW":{"description":"Read-write within an assigned bounded shard.","required_access":["read","grep","glob","edit","write","bash"],"rules":["Edits are scoped to the files/directories named in its dispatch contract.","Runs project verification for its own shard before reporting done.","Does not merge, push, or deploy unless explicitly the dispatch contract's target."]},"ORCHESTRATOR":{"description":"Plans, dispatches, and integrates; owns the overall session state.","required_access":["read","grep","glob","edit","write","bash","agent_dispatch"],"rules":["Never bypasses a mandatory capability without declaring the gap first.","Owns fan-out sizing, shard boundaries, and integration/merge order.","Runs final verification before reporting completion to the user."]}},"roles":[{"id":"orchestrator","description":"Plans work, resolves capabilities, dispatches bounded shards, integrates results.","capabilities":["orchestration.bootstrap","memory.recall","memory.checkpoint","workflow.selection","delegation.bounded"],"skills":["using-superpowers","brainstorming","dispatching-parallel-agents","subagent-driven-development"],"mcps":["sequential-thinking","mempalace"],"best_for":"Any nontrivial task needing more than one shard or a risk-floor review seat.","permission_profile":"ORCHESTRATOR","default_tier":"S T3"},{"id":"production-telemetry-collector","description":"Collects production logs/metrics/traces before an incident hypothesis is formed.","capabilities":["incident.telemetry_first"],"skills":["incident-orchestration","incident-evidence"],"mcps":[],"best_for":"Incident evidence gathering; never forms a fix on its own.","permission_profile":"RO","default_tier":"W T0-T1"},{"id":"route-data-flow-tracer","description":"Traces a request/data path across layers (frontend, API, DB, provider) read-only.","capabilities":["code.locate"],"skills":[],"mcps":["serena"],"best_for":"Symptoms that cross architectural layers.","permission_profile":"RO","default_tier":"W T0-T1"},{"id":"explore","description":"Read-only breadth search across a codebase: where something is defined, what calls it, which files are involved.","capabilities":["code.locate","tool.discovery"],"skills":[],"mcps":[],"best_for":"Broad read-only location work before a decision; never edits.","permission_profile":"RO","default_tier":"W T0-T1"},{"id":"db-concurrency-specialist","description":"Reviews transactional/locking correctness and concurrency-sensitive schema/code.","capabilities":["concurrency.review","database.schema_provenance"],"skills":[],"mcps":["db-client"],"best_for":"Race conditions, stale claims, lock ordering, transactional boundaries.","permission_profile":"RO","default_tier":"X T3","review_floor":"X T4"},{"id":"frontend-specialist","description":"Implements frontend changes that touch shared state, realtime or a native bridge, respecting shipped-client compatibility.","capabilities":["ui.design_system","test.behavioral"],"skills":["frontend-design","design-system"],"mcps":["playwright"],"best_for":"Complex frontend state, realtime surfaces and native-bridge implementation work.","permission_profile":"RW","default_tier":"S T3"},{"id":"provider-webhook-specialist","description":"Implements and reviews payment/webhook provider integrations (Stripe, Apple, Google).","capabilities":["billing.provider_evidence","push.provider_evidence","review.independent"],"skills":["stripe-best-practices"],"mcps":["billing-provider-api","push-provider-api"],"best_for":"Webhook signature/idempotency, provider state reconciliation, refund delivery.","permission_profile":"RW","default_tier":"X T2","review_floor":"X T4"},{"id":"adversarial-skeptic","description":"Independently challenges a conclusion, diagnosis, or diff before it ships.","capabilities":["review.adversarial","review.independent"],"skills":[],"mcps":[],"best_for":"Money, auth, migration, and frozen-build-shaped review seats.","permission_profile":"RO","default_tier":"S T3","review_floor":"X T4"},{"id":"test-engineer","description":"Writes and maintains behavioral/regression tests.","capabilities":["test.behavioral","workflow.tdd"],"skills":["test-driven-development"],"mcps":[],"best_for":"Coverage gaps, regression tests for bug fixes, refactor safety nets.","permission_profile":"RW","default_tier":"S T2"},{"id":"db-migration-author","description":"Sole authority for authoring SQL schema migrations.","capabilities":["config.migration_author","database.migration_checks","database.schema_provenance"],"skills":[],"mcps":["db-client"],"best_for":"Any new migration file; never hand-write one outside this role.","permission_profile":"RW","default_tier":"S T3","review_floor":"X T4"},{"id":"backend-fixer","description":"Implements backend bug fixes following systematic-debugging evidence.","capabilities":["workflow.debug","test.behavioral"],"skills":["systematic-debugging"],"mcps":[],"best_for":"Backend bug fixes with a validated hypothesis.","permission_profile":"RW","default_tier":"S T2"},{"id":"frontend-fixer","description":"Implements frontend bug fixes following systematic-debugging evidence.","capabilities":["workflow.debug","test.behavioral","ui.design_system"],"skills":["systematic-debugging"],"mcps":["playwright"],"best_for":"Frontend/UI bug fixes with a validated hypothesis.","permission_profile":"RW","default_tier":"S T2"},{"id":"code-simplifier","description":"Simplifies and clarifies recently changed code without changing behavior.","capabilities":["refactor.preservation","code.semantic_edit"],"skills":[],"mcps":["serena"],"best_for":"Post-implementation cleanup passes.","permission_profile":"RW","default_tier":"S T2"},{"id":"code-reviewer","description":"Performs the review pass at the task's review risk floor.","capabilities":["review.independent","workflow.review"],"skills":["requesting-code-review","receiving-code-review"],"mcps":[],"best_for":"The review seat on every review-gated task.","permission_profile":"RO","default_tier":"S T2","review_floor":"S T3"},{"id":"general","description":"General-purpose bounded worker for tasks that fit no specialist role.","capabilities":["workflow.selection","delegation.bounded"],"skills":[],"mcps":[],"best_for":"Bounded work with no specialist owner; escalate rather than widen scope.","permission_profile":"RW","default_tier":"S T2"}]}
1
+ {
2
+ "_attribution": "llm-orchestrator · created by Bogdan-Gabriel Torcescu · https://www.linkedin.com/in/bogdantorcescu/ · keep this credit when copying or deriving",
3
+ "version": 1,
4
+ "permission_profiles": {
5
+ "RO": {
6
+ "description": "Read-only. Investigation, evidence collection, review, telemetry.",
7
+ "required_access": [
8
+ "read",
9
+ "grep",
10
+ "glob",
11
+ "bash_readonly"
12
+ ],
13
+ "rules": [
14
+ "Never edits files.",
15
+ "Bash limited to read-only/inspection commands (no writes, no migrations, no deploys).",
16
+ "Reports findings back to the dispatcher; does not apply fixes."
17
+ ]
18
+ },
19
+ "RW": {
20
+ "description": "Read-write within an assigned bounded shard.",
21
+ "required_access": [
22
+ "read",
23
+ "grep",
24
+ "glob",
25
+ "edit",
26
+ "write",
27
+ "bash"
28
+ ],
29
+ "rules": [
30
+ "Edits are scoped to the files/directories named in its dispatch contract.",
31
+ "Runs project verification for its own shard before reporting done.",
32
+ "Does not merge, push, or deploy unless explicitly the dispatch contract's target."
33
+ ]
34
+ },
35
+ "ORCHESTRATOR": {
36
+ "description": "Plans, dispatches, and integrates; owns the overall session state.",
37
+ "required_access": [
38
+ "read",
39
+ "grep",
40
+ "glob",
41
+ "edit",
42
+ "write",
43
+ "bash",
44
+ "agent_dispatch"
45
+ ],
46
+ "rules": [
47
+ "Never bypasses a mandatory capability without declaring the gap first.",
48
+ "Owns fan-out sizing, shard boundaries, and integration/merge order.",
49
+ "Runs final verification before reporting completion to the user."
50
+ ]
51
+ }
52
+ },
53
+ "roles": [
54
+ {
55
+ "id": "orchestrator",
56
+ "description": "Plans work, resolves capabilities, dispatches bounded shards, integrates results.",
57
+ "capabilities": [
58
+ "orchestration.bootstrap",
59
+ "memory.recall",
60
+ "memory.checkpoint",
61
+ "workflow.selection",
62
+ "delegation.bounded"
63
+ ],
64
+ "skills": [
65
+ "using-superpowers",
66
+ "brainstorming",
67
+ "dispatching-parallel-agents",
68
+ "subagent-driven-development"
69
+ ],
70
+ "mcps": [
71
+ "sequential-thinking",
72
+ "mempalace"
73
+ ],
74
+ "best_for": "Any nontrivial task needing more than one shard or a risk-floor review seat.",
75
+ "permission_profile": "ORCHESTRATOR",
76
+ "default_tier": "S T3"
77
+ },
78
+ {
79
+ "id": "production-telemetry-collector",
80
+ "description": "Collects production logs/metrics/traces before an incident hypothesis is formed.",
81
+ "capabilities": [
82
+ "incident.telemetry_first"
83
+ ],
84
+ "skills": [
85
+ "incident-orchestration",
86
+ "incident-evidence"
87
+ ],
88
+ "mcps": [],
89
+ "best_for": "Incident evidence gathering; never forms a fix on its own.",
90
+ "permission_profile": "RO",
91
+ "default_tier": "W T0-T1"
92
+ },
93
+ {
94
+ "id": "route-data-flow-tracer",
95
+ "description": "Traces a request/data path across layers (frontend, API, DB, provider) read-only.",
96
+ "capabilities": [
97
+ "code.locate"
98
+ ],
99
+ "skills": [],
100
+ "mcps": [
101
+ "serena"
102
+ ],
103
+ "best_for": "Symptoms that cross architectural layers.",
104
+ "permission_profile": "RO",
105
+ "default_tier": "W T0-T1"
106
+ },
107
+ {
108
+ "id": "explore",
109
+ "description": "Read-only breadth search across a codebase: where something is defined, what calls it, which files are involved.",
110
+ "capabilities": [
111
+ "code.locate",
112
+ "tool.discovery"
113
+ ],
114
+ "skills": [],
115
+ "mcps": [],
116
+ "best_for": "Broad read-only location work before a decision; never edits.",
117
+ "permission_profile": "RO",
118
+ "default_tier": "W T0-T1"
119
+ },
120
+ {
121
+ "id": "db-concurrency-specialist",
122
+ "description": "Reviews transactional/locking correctness and concurrency-sensitive schema/code.",
123
+ "capabilities": [
124
+ "concurrency.review",
125
+ "database.schema_provenance"
126
+ ],
127
+ "skills": [],
128
+ "mcps": [
129
+ "db-client"
130
+ ],
131
+ "best_for": "Race conditions, stale claims, lock ordering, transactional boundaries.",
132
+ "permission_profile": "RO",
133
+ "default_tier": "X T3",
134
+ "review_floor": "X T4"
135
+ },
136
+ {
137
+ "id": "frontend-specialist",
138
+ "description": "Implements frontend changes that touch shared state, realtime or a native bridge, respecting shipped-client compatibility.",
139
+ "capabilities": [
140
+ "ui.design_system",
141
+ "test.behavioral"
142
+ ],
143
+ "skills": [
144
+ "frontend-design",
145
+ "design-system"
146
+ ],
147
+ "mcps": [
148
+ "playwright"
149
+ ],
150
+ "best_for": "Complex frontend state, realtime surfaces and native-bridge implementation work.",
151
+ "permission_profile": "RW",
152
+ "default_tier": "S T3"
153
+ },
154
+ {
155
+ "id": "provider-webhook-specialist",
156
+ "description": "Implements and reviews payment/webhook provider integrations (Stripe, Apple, Google).",
157
+ "capabilities": [
158
+ "billing.provider_evidence",
159
+ "push.provider_evidence",
160
+ "review.independent"
161
+ ],
162
+ "skills": [
163
+ "stripe-best-practices"
164
+ ],
165
+ "mcps": [
166
+ "billing-provider-api",
167
+ "push-provider-api"
168
+ ],
169
+ "best_for": "Webhook signature/idempotency, provider state reconciliation, refund delivery.",
170
+ "permission_profile": "RW",
171
+ "default_tier": "X T2",
172
+ "review_floor": "X T4"
173
+ },
174
+ {
175
+ "id": "adversarial-skeptic",
176
+ "description": "Independently challenges a conclusion, diagnosis, or diff before it ships.",
177
+ "capabilities": [
178
+ "review.adversarial",
179
+ "review.independent"
180
+ ],
181
+ "skills": [],
182
+ "mcps": [],
183
+ "best_for": "Money, auth, migration, and frozen-build-shaped review seats.",
184
+ "permission_profile": "RO",
185
+ "default_tier": "S T3",
186
+ "review_floor": "X T4"
187
+ },
188
+ {
189
+ "id": "test-engineer",
190
+ "description": "Writes and maintains behavioral/regression tests.",
191
+ "capabilities": [
192
+ "test.behavioral",
193
+ "workflow.tdd"
194
+ ],
195
+ "skills": [
196
+ "test-driven-development"
197
+ ],
198
+ "mcps": [],
199
+ "best_for": "Coverage gaps, regression tests for bug fixes, refactor safety nets.",
200
+ "permission_profile": "RW",
201
+ "default_tier": "S T2"
202
+ },
203
+ {
204
+ "id": "db-migration-author",
205
+ "description": "Sole authority for authoring SQL schema migrations.",
206
+ "capabilities": [
207
+ "config.migration_author",
208
+ "database.migration_checks",
209
+ "database.schema_provenance"
210
+ ],
211
+ "skills": [],
212
+ "mcps": [
213
+ "db-client"
214
+ ],
215
+ "best_for": "Any new migration file; never hand-write one outside this role.",
216
+ "permission_profile": "RW",
217
+ "default_tier": "S T3",
218
+ "review_floor": "X T4"
219
+ },
220
+ {
221
+ "id": "backend-fixer",
222
+ "description": "Implements bounded backend changes: a bug fix behind a validated hypothesis, or a feature/config change behind a failing test.",
223
+ "capabilities": [
224
+ "workflow.debug",
225
+ "test.behavioral"
226
+ ],
227
+ "skills": [
228
+ "systematic-debugging",
229
+ "test-driven-development"
230
+ ],
231
+ "mcps": [],
232
+ "best_for": "Backend implementation shards — bug fixes with a validated hypothesis, and the build phase of a feature or config flow.",
233
+ "permission_profile": "RW",
234
+ "default_tier": "S T2"
235
+ },
236
+ {
237
+ "id": "frontend-fixer",
238
+ "description": "Implements bounded frontend changes: a bug fix behind a validated hypothesis, or a feature change behind a failing test.",
239
+ "capabilities": [
240
+ "workflow.debug",
241
+ "test.behavioral",
242
+ "ui.design_system"
243
+ ],
244
+ "skills": [
245
+ "systematic-debugging",
246
+ "test-driven-development"
247
+ ],
248
+ "mcps": [
249
+ "playwright"
250
+ ],
251
+ "best_for": "Frontend/UI implementation shards — bug fixes with a validated hypothesis, and the build phase of a feature flow.",
252
+ "permission_profile": "RW",
253
+ "default_tier": "S T2"
254
+ },
255
+ {
256
+ "id": "code-simplifier",
257
+ "description": "Simplifies and clarifies recently changed code without changing behavior.",
258
+ "capabilities": [
259
+ "refactor.preservation",
260
+ "code.semantic_edit"
261
+ ],
262
+ "skills": [],
263
+ "mcps": [
264
+ "serena"
265
+ ],
266
+ "best_for": "Post-implementation cleanup passes.",
267
+ "permission_profile": "RW",
268
+ "default_tier": "S T2"
269
+ },
270
+ {
271
+ "id": "code-reviewer",
272
+ "description": "Performs the review pass at the task's review risk floor.",
273
+ "capabilities": [
274
+ "review.independent",
275
+ "workflow.review"
276
+ ],
277
+ "skills": [
278
+ "requesting-code-review",
279
+ "receiving-code-review"
280
+ ],
281
+ "mcps": [],
282
+ "best_for": "The review seat on every review-gated task.",
283
+ "permission_profile": "RO",
284
+ "default_tier": "S T2",
285
+ "review_floor": "S T3"
286
+ },
287
+ {
288
+ "id": "general",
289
+ "description": "General-purpose bounded worker for tasks that fit no specialist role.",
290
+ "capabilities": [
291
+ "workflow.selection",
292
+ "delegation.bounded"
293
+ ],
294
+ "skills": [],
295
+ "mcps": [],
296
+ "best_for": "Bounded work with no specialist owner; escalate rather than widen scope.",
297
+ "permission_profile": "RW",
298
+ "default_tier": "S T2"
299
+ }
300
+ ],
301
+ "role_aliases": {
302
+ "planner": {
303
+ "roles": [
304
+ "orchestrator"
305
+ ],
306
+ "note": "Planning is the orchestrator itself; it is never a separate dispatched agent."
307
+ },
308
+ "investigation": {
309
+ "roles": [
310
+ "route-data-flow-tracer"
311
+ ],
312
+ "note": "The read-only locate/trace pass that opens a bug fix."
313
+ },
314
+ "builders": {
315
+ "roles": [
316
+ "backend-fixer",
317
+ "frontend-fixer"
318
+ ],
319
+ "note": "Whichever side of the stack the shard owns."
320
+ },
321
+ "worker roles": {
322
+ "roles": [
323
+ "backend-fixer",
324
+ "frontend-fixer",
325
+ "code-simplifier"
326
+ ],
327
+ "note": "Mechanical W-tier shards."
328
+ },
329
+ "collectors": {
330
+ "roles": [
331
+ "route-data-flow-tracer",
332
+ "production-telemetry-collector"
333
+ ],
334
+ "note": "Evidence gathering, fanned out; research collectors use explore."
335
+ },
336
+ "synthesizer": {
337
+ "roles": [
338
+ "orchestrator"
339
+ ],
340
+ "note": "Synthesis stays with the orchestrator, which holds the whole evidence set."
341
+ },
342
+ "verifier": {
343
+ "roles": [
344
+ "test-engineer"
345
+ ],
346
+ "note": "Validation and smoke phases."
347
+ },
348
+ "domain specialist": {
349
+ "roles": [
350
+ "db-concurrency-specialist",
351
+ "provider-webhook-specialist",
352
+ "frontend-specialist"
353
+ ],
354
+ "note": "Whichever specialist owns the money, concurrency or security surface in question."
355
+ },
356
+ "log specialist": {
357
+ "roles": [
358
+ "production-telemetry-collector"
359
+ ],
360
+ "note": "Log and telemetry evidence during an incident."
361
+ },
362
+ "db/runtime specialist": {
363
+ "roles": [
364
+ "db-concurrency-specialist",
365
+ "route-data-flow-tracer"
366
+ ],
367
+ "note": "Database and runtime-state evidence during an incident."
368
+ }
369
+ }
370
+ }
@@ -1 +1,131 @@
1
- {"_attribution":"llm-orchestrator · created by Bogdan-Gabriel Torcescu · https://www.linkedin.com/in/bogdantorcescu/ · keep this credit when copying or deriving","$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://raw.githubusercontent.com/tbogdan/llm-orchestrator/main/schemas/agent-roles.schema.json","title":"Agent role roster and permission profiles","type":"object","required":["version","permission_profiles","roles"],"properties":{"version":{"type":"integer","minimum":1},"permission_profiles":{"type":"object","additionalProperties":{"type":"object","required":["description","required_access","rules"],"properties":{"description":{"type":"string"},"required_access":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"string"}}},"additionalProperties":false}},"roles":{"type":"array","items":{"type":"object","required":["id","description","capabilities","skills","mcps","best_for","permission_profile","default_tier"],"properties":{"id":{"type":"string","minLength":1},"description":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"string"}},"mcps":{"type":"array","items":{"type":"string"}},"best_for":{"type":"string"},"permission_profile":{"type":"string"},"default_tier":{"type":"string","pattern":"^[WSXF] T[0-5](-T[0-5])?$","description":"Tier and thinking level pair resolved by registries/routing-matrix.json."},"review_floor":{"type":"string","pattern":"^[WSXF] T[0-5](-T[0-5])?$","description":"Minimum review pair for this role domain, where policies/routing.md states one."}},"additionalProperties":false}}}}
1
+ {
2
+ "_attribution": "llm-orchestrator · created by Bogdan-Gabriel Torcescu · https://www.linkedin.com/in/bogdantorcescu/ · keep this credit when copying or deriving",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "$id": "https://raw.githubusercontent.com/tbogdan/llm-orchestrator/main/schemas/agent-roles.schema.json",
5
+ "title": "Agent role roster and permission profiles",
6
+ "type": "object",
7
+ "required": [
8
+ "version",
9
+ "permission_profiles",
10
+ "roles"
11
+ ],
12
+ "properties": {
13
+ "version": {
14
+ "type": "integer",
15
+ "minimum": 1
16
+ },
17
+ "permission_profiles": {
18
+ "type": "object",
19
+ "additionalProperties": {
20
+ "type": "object",
21
+ "required": [
22
+ "description",
23
+ "required_access",
24
+ "rules"
25
+ ],
26
+ "properties": {
27
+ "description": {
28
+ "type": "string"
29
+ },
30
+ "required_access": {
31
+ "type": "array",
32
+ "items": {
33
+ "type": "string"
34
+ }
35
+ },
36
+ "rules": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "string"
40
+ }
41
+ }
42
+ },
43
+ "additionalProperties": false
44
+ }
45
+ },
46
+ "roles": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "required": [
51
+ "id",
52
+ "description",
53
+ "capabilities",
54
+ "skills",
55
+ "mcps",
56
+ "best_for",
57
+ "permission_profile",
58
+ "default_tier"
59
+ ],
60
+ "properties": {
61
+ "id": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "description": {
66
+ "type": "string"
67
+ },
68
+ "capabilities": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "string"
72
+ }
73
+ },
74
+ "skills": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string"
78
+ }
79
+ },
80
+ "mcps": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "best_for": {
87
+ "type": "string"
88
+ },
89
+ "permission_profile": {
90
+ "type": "string"
91
+ },
92
+ "default_tier": {
93
+ "type": "string",
94
+ "pattern": "^[WSXF] T[0-5](-T[0-5])?$",
95
+ "description": "Tier and thinking level pair resolved by registries/routing-matrix.json."
96
+ },
97
+ "review_floor": {
98
+ "type": "string",
99
+ "pattern": "^[WSXF] T[0-5](-T[0-5])?$",
100
+ "description": "Minimum review pair for this role domain, where policies/routing.md states one."
101
+ }
102
+ },
103
+ "additionalProperties": false
104
+ }
105
+ },
106
+ "role_aliases": {
107
+ "type": "object",
108
+ "description": "Generic function words used in workflow role tables, each resolving to one or more concrete role ids.",
109
+ "additionalProperties": {
110
+ "type": "object",
111
+ "required": [
112
+ "roles",
113
+ "note"
114
+ ],
115
+ "additionalProperties": false,
116
+ "properties": {
117
+ "roles": {
118
+ "type": "array",
119
+ "minItems": 1,
120
+ "items": {
121
+ "type": "string"
122
+ }
123
+ },
124
+ "note": {
125
+ "type": "string"
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
@@ -29,7 +29,7 @@ Infrastructure API MCPs, harness config skill.
29
29
 
30
30
  | Phase | Roles | Pair |
31
31
  |---|---|---|
32
- | Plan | planner | S T2 |
32
+ | Plan | orchestrator | S T2 |
33
33
  | Standard config change | backend-fixer | S T2 |
34
34
  | DB migration (migration + provenance) | db-migration-author | S T3 |
35
35
  | Migration on money tables | db-migration-author | S T3 implementation + **X T4 review** |
@@ -28,7 +28,7 @@ no clarification is needed).
28
28
 
29
29
  | Phase | Roles | Pair |
30
30
  |---|---|---|
31
- | Plan / design | planner, code-architect | S T3; X T3–T4 complex; F T4 frontier |
31
+ | Plan / design | orchestrator (plus `feature-dev-code-architect` where the harness has it) | S T3; X T3–T4 complex; F T4 frontier |
32
32
  | TDD | test-engineer | S T2 |
33
33
  | Standard implementation (API CRUD, UI components) | backend-fixer, frontend-fixer | S T2 |
34
34
  | Complex state / realtime / native bridge | frontend-specialist | S T3 |
@@ -19,13 +19,13 @@
19
19
 
20
20
  ## Available
21
21
 
22
- Bounded ≤2-file builder, code-explorer, traceability analysis where the project uses it.
22
+ Bounded ≤2-file builder, the `explore` role, traceability analysis where the project uses it.
23
23
 
24
24
  ## Roles and routing by phase
25
25
 
26
26
  | Phase | Roles | Pair |
27
27
  |---|---|---|
28
- | Analysis + incremental plan | code-simplifier, code-explorer | S T2 |
28
+ | Analysis + incremental plan | orchestrator, code-simplifier, explore | S T2 |
29
29
  | Coverage | test-engineer | S T2 |
30
30
  | Mechanical steps (moves, scoped extractions) | worker roles | W T0 |
31
31
  | Refactor in money or security areas | domain specialist | S T3 implementation + X T4 review |