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
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ This repository is not affiliated with OpenCode, Open Design, Impeccable, or Sup
8
8
9
9
## Architecture
10
10
11
-
By default, free-form messages open with `developer` for small, clear, low-risk changes. Use slash commands when you want an explicit workflow.
11
+
By default, free-form messages open with `lead` as a bounded router. Lead quickly chooses `developer`, `researcher`, `designer`, or `specifier`, and asks the user when ambiguity changes the correct flow. Small, clear, low-risk changes are usually delegated straight to `developer`.
Copy file name to clipboardExpand all lines: docs/configuration.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,6 @@ The kit is organized as an OpenCode config directory:
14
14
15
15
The default permissions are conservative: reads are allowed, edits and bash ask by default, and external directories are denied.
16
16
17
-
The default agent is `developer`, with `mode: all`, so free-form small changes can be implemented directly. Slash commands still route to their explicit agents, for example `/feature` and `/plan` to `lead`, `/scope` to `scoper`, and `/design` to `designer`.
17
+
The default agent is `lead`, acting as a bounded router for free-form messages. For small, clear, low-risk work, lead delegates direct mode to `developer`; for technical uncertainty it delegates to `researcher`; for visual or interaction work it delegates to `designer`; and for planning gaps it delegates to `specifier`. Slash commands still route to their explicit agents, for example `/feature` and `/plan` to `lead`, `/scope` to `scoper`, and `/design` to `designer`.
18
18
19
19
Run `node scripts/check-harness.mjs` from an installed OpenCode config directory to validate the core harness contracts. In this repository, `npm run check` runs the same validator against `opencode/`.
Expected flow: lead -> researcher -> specifier -> reviewer, with no implementation.
33
33
34
-
## 5. Try direct mode
34
+
## 5. Try bounded direct routing
35
35
36
36
```text
37
37
Change the Settings heading to Account settings and run the smallest relevant validation.
38
38
```
39
39
40
-
Expected flow: developer handles the small change directly. No full feature orchestration.
40
+
Expected flow: lead chooses the direct path and delegates the small change to developer. No full feature orchestration.
41
41
42
42
## 6. Try design
43
43
@@ -61,4 +61,4 @@ Expected flow: lead decides research/design needs, then specifier -> developer -
61
61
npm run check
62
62
```
63
63
64
-
The check validates config JSON, agent/command frontmatter, the default `developer` direct mode, `/feature` sidecar boundaries, the `/plan` contract, and the agent-readable docs under `opencode/docs/ai/harness/`.
64
+
The check validates config JSON, agent/command frontmatter, the default `lead` router contract, `/feature` sidecar boundaries, the `/plan` contract, and the agent-readable docs under `opencode/docs/ai/harness/`.
Copy file name to clipboardExpand all lines: docs/workflows.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,9 +2,9 @@
2
2
3
3
## Direct mode
4
4
5
-
Free-form messages without a slash command use `developer` by default. This is intended for small, clear, low-risk changes where a full product-development pipeline would be unnecessary.
5
+
Free-form messages without a slash command use `lead` by default as a bounded router. This keeps the simplest path for small, clear, low-risk changes while avoiding silent guesses when the right flow is unclear.
6
6
7
-
If the request has ambiguity, visual/product impact, medium or large scope, or critical missing context, switch to `/feature`, `/scope`, `/design`, or `/spec`.
7
+
Lead decides quickly between `developer`, `researcher`, `designer`, or `specifier`. It delegates small direct work to `developer`, routes uncertainty to `researcher`, visual/product work to `designer`, planning gaps to `specifier`, and asks the user when ambiguity changes the right path.
Copy file name to clipboardExpand all lines: opencode/agents/developer.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ You are the senior developer.
34
34
35
35
## Direct mode without slash commands
36
36
37
-
When you are the default agent and the user asks for a small, clear, low-risk change without using a slash command, treat it as an approved implementation task.
37
+
When `lead` delegates direct mode for a small, clear, low-risk change without using a slash command, treat it as an approved implementation task.
Copy file name to clipboardExpand all lines: opencode/agents/lead.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,9 +37,19 @@ Your job is not to do every task yourself. Your job is to choose the correct ord
37
37
38
38
## Default behavior without slash commands
39
39
40
-
Do not force the full orchestration flow when the user did not invoke an explicit command such as `/feature`, `/scope`, `/design`, `/spec`, `/implement`, `/review`, or `/evolve`.
40
+
When the user did not invoke an explicit command such as `/feature`, `/scope`, `/design`, `/spec`, `/implement`, `/review`, or `/evolve`, act as a fast router. Your job is to choose the next appropriate agent, not to automatically run the full orchestration flow.
41
41
42
-
For small, clear, low-risk requests, invoke `developer` directly with:
42
+
Use lightweight inspection if you need to check the repo or context. Decide quickly. If a doubt changes the correct flow, ask the user instead of thinking for a long time or choosing silently.
Copy file name to clipboardExpand all lines: opencode/docs/ai/harness/agents.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@
4
4
5
5
| Agent | Use when | Do not use when | Expected evidence |
6
6
| --- | --- | --- | --- |
7
-
|`developer`| Change is small, clear, approved, or direct without slash command| Critical decision, design, or research is missing | Validation run or explicit reason |
8
-
|`lead`|Slash workflow, coordination, or phase dependencies are needed | Free-form request is small and localized|Assumptions, criteria, and barriers respected |
7
+
|`developer`| Change is small, clear, approved, or delegated by lead| Critical decision, design, or research is missing | Validation run or explicit reason |
8
+
|`lead`|Free-form message without slash command, slash workflow, coordination, or phase dependencies | The task was already delegated to another agent|Routing decision, assumptions, criteria, and barriers respected |
9
9
|`designer`| UX/UI, brand, layout, interaction, or Open Design matters | Technical change has no visual impact | Visual handoff with observable criteria |
10
10
|`researcher`| Technical/product uncertainty, APIs, libraries, risks | Fact is already clear in repo | Sources reviewed and unknowns remaining |
11
11
|`specifier`| There is enough context to turn goal into tasks | Critical research/design is pending | Acceptance criteria and validation plan |
@@ -17,8 +17,9 @@
17
17
18
18
## Invariants
19
19
20
-
-`developer` is the harness `default_agent`.
20
+
-`lead` is the harness `default_agent` and acts as a bounded router for free-form messages.
21
21
-`lead` must not force the full flow for small free-form messages.
22
+
-`developer` executes direct mode when `lead` delegates a small, clear, verifiable task.
22
23
-`specifier` waits for research/design when those results affect requirements.
23
24
-`reviewer` waits for a diff, reviewable implementation, or `/plan` artifact.
24
25
-`evaluator`, `debugger`, and `evolver` are optional sidecars.
0 commit comments