You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 081c161
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+13-12Lines changed: 13 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -278,7 +278,7 @@ Enforcement is runtime code at the existing tool-mount point, not prompt wording
278
278
279
279
#### Closed director fleet (`src/agent/directors/`)
280
280
281
-
Every shipped specialist is a **director package** — a prompt-first `DirectorPackage` (system prompt, tool envelope, spawn rights, nudge budget, report contract, `modelRole`, fleet authority `tier`) registered in a **closed** set of 10 ids. There is no catch-all worker: `spawn_agent` without `agent` or non-general `intent`, and `spawn_agent(intent="general")`, fail closed so the primary reclassifies. Nested directors with a spawn allowlist reject off-list children at `spawn_agent` dispatch time (not prompt-only). dispatch is the primary session identity: `spawn_agent(agent="dispatch")` is refused, and `directorProfiles()` omits it from the spawn catalog.
281
+
Every shipped specialist is a **director package** — a prompt-first `DirectorPackage` (system prompt, tool envelope, spawn rights, nudge budget, report contract, `modelRole`, fleet authority `tier`) registered in a **closed** set of 11 ids. There is no catch-all worker: `spawn_agent` without `agent` or non-general `intent`, and `spawn_agent(intent="general")`, fail closed so the primary reclassifies. Nested directors with a spawn allowlist reject off-list children at `spawn_agent` dispatch time (not prompt-only). dispatch is the primary session identity: `spawn_agent(agent="dispatch")` is refused, and `directorProfiles()` omits it from the spawn catalog.
282
282
283
283
**Primary**
284
284
@@ -288,17 +288,18 @@ Every shipped specialist is a **director package** — a prompt-first `DirectorP
**Intent → director** (`spawn_agent(intent=…)` when `agent` is omitted). implement/review (and their default directors) fail closed without non-empty `success_criteria`.
Copy file name to clipboardExpand all lines: docs/PRODUCT.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -155,12 +155,12 @@ Capabilities beyond the core toolset are opt-in plugins, enabled per workspace t
155
155
156
156
## Multi-agent (fleet agents)
157
157
158
-
The primary session is always **orchestrator** (single-agent mode is gone). Its director is **dispatch**: classify work, DIY tiny/single-file/one-route product edits, dispatch a **closed fleet of 10 directors** for substantial work, track the fleet, and synthesize. Product mutation tools (`write_file` / `edit_file` / `delete_file`) are mounted on the primary (CORE / `DISPATCH_TOOLS`) — path tools are the DIY surface; spawn remains the default for substantial, multi-file, parallel, or specialist work. Shell file-writes stay denied. MCP tools are not re-filtered by a product-write deny list (that list is gone). There is no static per-package write-path declaration (CL-6952 removed it — no shipped director ever set one). A concurrent dispatch landing on the same working directory as another still-running lane is recorded as a `conflict` intervention, not blocked. Operator slash recipes (`/implement`, `/plan`, `/refactor`, `/review`, `/pull-request`, `/issue`, `/docs`, `/interview`) tell dispatch which directors to spawn for substantial work; tiny/bounded edits may run on the primary.
158
+
The primary session is always **orchestrator** (single-agent mode is gone). Its director is **dispatch**: classify work, DIY tiny/single-file/one-route product edits, dispatch a **closed fleet of 11 directors** for substantial work, track the fleet, and synthesize. Product mutation tools (`write_file` / `edit_file` / `delete_file`) are mounted on the primary (CORE / `DISPATCH_TOOLS`) — path tools are the DIY surface; spawn remains the default for substantial, multi-file, parallel, or specialist work. Shell file-writes stay denied. MCP tools are not re-filtered by a product-write deny list (that list is gone). There is no static per-package write-path declaration (CL-6952 removed it — no shipped director ever set one). A concurrent dispatch landing on the same working directory as another still-running lane is recorded as a `conflict` intervention, not blocked. Operator slash recipes (`/implement`, `/plan`, `/refactor`, `/review`, `/pull-request`, `/issue`, `/docs`, `/interview`) tell dispatch which directors to spawn for substantial work; tiny/bounded edits may run on the primary.
There is **no catch-all worker**. `spawn_agent` requires `agent=…` or a non-general `intent` (implement→coder, explore→explorer, plan→planner, review→reviewer); bare dispatch and `intent=general` are refused. Named `spawn_agent(agent=…)` selects a director package without requiring a plugin profile, except `dispatch` which is the primary session identity and is refused as a spawned worker. Nested spawn is runtime-enforced: only dispatch (full fleet allowlist) may spawn; all other workers, have no fleet tools. Primary omits an allowlist so plugin profiles remain reachable from the main session.
- Model distribution benchmarks, latency probing, or prompt evaluation: spawn prober (latency and behavior distributions).
19
+
- Hands-on product exercise, e2e, occupancy, or actually using the CLI: spawn qa-lead (behavior proof, pass/fail with commands). Distinct from coder unit tests and prober measurement.
19
20
20
21
# Delegation boundary
21
22
- Delegate by default. File count does not determine complexity: a single-file bug fix or behavior change still belongs to coder.
* Hands-on product exercise — actually run the CLI / e2e / occupancy /
7
+
* capability path as behavior proof (pass/fail with commands); never author
8
+
* unit tests, never measure family/model latency, never fix product code.
9
+
*/
10
+
exportconstqaLeadPackage: DirectorPackage={
11
+
id: "qa-lead",
12
+
primaryIntent:
13
+
"Hands-on product exercise: actually run CLI/e2e/occupancy/capability as proof (pass/fail with commands); never author unit tests, never measure latency, never fix product code",
14
+
outOfLane: [
15
+
"authoring unit tests (coder)",
16
+
"measuring family/model latency (prober)",
17
+
"fixing product code",
18
+
"fleet orchestration or spawning",
19
+
],
20
+
description:
21
+
"QA Lead — hands-on product exercise: CLI/e2e/occupancy/capability proof",
22
+
systemPrompt: `You are QA Lead (\`qa-lead\`), a specialist in Corbits Code.
23
+
24
+
PRIMARY INTENT: hands-on product exercise. Actually run the product as an operator would and report behavior as proof — pass/fail with exact commands. Never author unit tests. Never measure family/model latency. Never fix product code. Never spawn.
25
+
26
+
You are the hands-on lane — not Coder (unit tests with product diffs), not Prober (family/model latency matrices), not Reviewer, not an orchestrator, not a product fixer. Do not spawn specialists. Do not edit product code to make a failing exercise pass; a test that moves the target is not an exercise.
27
+
28
+
BLINDERS ON: exercise what the brief's success_criteria ask for, on the product below. Do not wander into unit-test authorship, latency matrices, or product fixes.
29
+
30
+
# What to run
31
+
32
+
- The operator CLI: \`corbits\` and \`corbits exec\` against fixture copies or the worktree the brief names.
33
+
- Integration scenarios: \`bun test ./e2e\` — production agent loop, compaction occupancy, mailbox, permission, spawn lanes.
34
+
- Capability runs as behavior: \`bun run eval:capability\` (\`scripts/eval-capability.ts\` over \`evals/capability\`) — pass/fail of the product path, not a latency matrix.
35
+
36
+
# How to judge
37
+
38
+
- Each success_criteria item is pass, fail, or blocked, with the exact command, exit status, and relevant output.
39
+
- Compaction occupancy: run the e2e compaction suite (\`e2e/compaction-*.test.ts\` and related occupancy coverage) and report whether occupancy, mailbox mail, and compact-then-continue actually behave.
40
+
- Do not author \`src/**/*.test.ts\` unit tests — that is Coder's lane. Temporary repro files under \`tmp/\` are allowed only when the brief needs a scripted operator session, then clean them up.
41
+
- Do not slice by family/model latency (TTFT, tool-only streaks, salvage/nudge counts) — that is Prober's lane. A capability run here is a behavior verdict, not a distribution.
42
+
43
+
# Findings route to follow-ups, never silent product edits
44
+
45
+
- Report commands, exit codes, and failing output so Coder can reproduce.
46
+
- Product-looking conclusions go to Blockers as follow-up tickets — do not patch src/ here.
47
+
48
+
# Report
49
+
50
+
When done, stop tooling and reply with ONLY the Corbits report envelope — the shared scaffold owns its shape (Summary / Findings / Blockers / Paths, in that order), so this package does not re-specify it. Findings for this lane: pass/fail/blocked per success_criteria item, exact commands and exit statuses, occupancy/e2e/CLI evidence.
51
+
52
+
DONE GATE: stop when the brief's exercise ask is answered with evidence OR explicitly blocked under Blockers. Do not expand into unit tests, latency matrices, product fixes, or orchestration.
53
+
54
+
OUT OF LANE: authoring unit tests (route to coder), measuring family/model latency (route to prober), fixing product code, fleet orchestration, spawning.`,
0 commit comments