opencode-dispatcher 0.2.10 → 0.3.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/README.md
CHANGED
|
@@ -29,7 +29,7 @@ flowchart TD
|
|
|
29
29
|
User[User] --> Orchestrator[Orchestrator]
|
|
30
30
|
|
|
31
31
|
Orchestrator -->|Question or review| Direct[Direct answer]
|
|
32
|
-
Orchestrator -->|
|
|
32
|
+
Orchestrator -->|Exact mechanical edit| Executor[Executor]
|
|
33
33
|
Orchestrator -->|Substantial task| Planner[Task Planner]
|
|
34
34
|
Orchestrator -->|External facts needed| Research[Research]
|
|
35
35
|
Orchestrator -->|Commit or push requested| Shipper[Shipper]
|
|
@@ -113,9 +113,9 @@ The orchestrator is the main entry point. It talks with you, clarifies the reque
|
|
|
113
113
|
|
|
114
114
|
| Agent | Role | Used When |
|
|
115
115
|
| -------- | -------------------------------------- | --------------------------------------- |
|
|
116
|
-
| Executor | Performs
|
|
116
|
+
| Executor | Performs exact, mechanical, low-risk edits | For edits where a task spec would not improve safety |
|
|
117
117
|
|
|
118
|
-
The executor is used when a
|
|
118
|
+
The executor is used when the edit is exact, mechanical, and low-risk — a task spec would not improve safety.
|
|
119
119
|
|
|
120
120
|
Example:
|
|
121
121
|
|
|
@@ -216,7 +216,7 @@ flowchart LR
|
|
|
216
216
|
User --> Orchestrator --> Executor --> Orchestrator --> Summary[Summary]
|
|
217
217
|
```
|
|
218
218
|
|
|
219
|
-
Used for exact,
|
|
219
|
+
Used for exact, mechanical, low-risk edits that do not need task planning or acceptance criteria.
|
|
220
220
|
|
|
221
221
|
### Substantial Feature or Fix
|
|
222
222
|
|
|
@@ -407,7 +407,7 @@ Current payloads include agents for:
|
|
|
407
407
|
* validation
|
|
408
408
|
* research
|
|
409
409
|
* shipping
|
|
410
|
-
*
|
|
410
|
+
* exact mechanical edits
|
|
411
411
|
|
|
412
412
|
The installer does **not** install or manage:
|
|
413
413
|
|
|
@@ -526,6 +526,13 @@ Use Dispatcher when the structure is worth it. Use the fast path or plain OpenCo
|
|
|
526
526
|
|
|
527
527
|
## Version History
|
|
528
528
|
|
|
529
|
+
* **v0.3.0**
|
|
530
|
+
* **Model-Config Groups**: Replaced per-agent model selection with two-tier group-based workflow (MED/LOW), excluding orchestrator and task-planner.
|
|
531
|
+
|
|
532
|
+
* **v0.2.11**
|
|
533
|
+
* **Routing Clarity**: Clarified executor routing as exact, mechanical, low-risk edits rather than file-count-based; clarified planner auto-proceed behavior when no user-facing decisions are introduced.
|
|
534
|
+
* **Shipper Boundary**: Tightened shipper routing so it only commits and pushes existing intended changes.
|
|
535
|
+
* **CI Update**: Updated publish workflow to Node 24-compatible GitHub Actions (`actions/checkout@v6`, `actions/setup-node@v6`, `node-version: 24`).
|
|
529
536
|
* **v0.2.10**
|
|
530
537
|
* **Agent Context**: Shipper agent now reads `.ai/context.md` for project-specific conventions (commit format, version bump patterns, auto-publish). Added `read` permission to shipper. Updated `.ai/context.md` with publication and auto-publish conventions. Added CI workflow (`.github/workflows/publish.yml`) to auto-publish on version bump commits.
|
|
531
538
|
* **v0.2.8**
|
package/package.json
CHANGED
|
@@ -21,10 +21,17 @@ Responsibilities:
|
|
|
21
21
|
|
|
22
22
|
- Run `opencode models --verbose` to list available models and their variants on the system.
|
|
23
23
|
- Check for an existing opencode config at `opencode.jsonc` or `.opencode/opencode.jsonc` (in that order of preference).
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
- Determine the set of configurable subagents by excluding **orchestrator** (whose model is chosen directly by the user in OpenCode itself) and **task-planner** (which is intended to use the same model as the orchestrator) from the full list of installed Dispatcher subagents.
|
|
25
|
+
- Group the remaining configurable subagents into two hardcoded tiers:
|
|
26
|
+
|
|
27
|
+
| Group | Agents | Intended model class |
|
|
28
|
+
|-------|------------------------------------------------------------|-----------------------|
|
|
29
|
+
| MED | `validator`, `test-writer`, `documentation`, `init` | DeepSeek Pro class |
|
|
30
|
+
| LOW | `implementer`, `research`, `executor`, `shipper`, `model-config` | Flash / cheap class |
|
|
31
|
+
|
|
32
|
+
- Present both groups to the user with their intended model tiers. Ask the user to pick a model (and optionally a variant) for each group **once** — not per-agent.
|
|
33
|
+
- For the chosen model, parse its `variants` field from the verbose output. If the model has variants (non-empty object), present the available variant names and ask the user to pick one or skip. If the model has no variants (empty `{}`), skip silently without prompting. If the user skips, do not write a `variant` field for that group.
|
|
34
|
+
- Write `agent.<name>.model` and optionally `agent.<name>.variant` entries for every agent in each group into the project's opencode config, preserving all existing config content exactly as-is. Use the target format:
|
|
28
35
|
```jsonc
|
|
29
36
|
"agent": {
|
|
30
37
|
"orchestrator": {
|
|
@@ -33,7 +40,7 @@ Responsibilities:
|
|
|
33
40
|
}
|
|
34
41
|
}
|
|
35
42
|
```
|
|
36
|
-
- If no opencode config exists, create one with only the
|
|
43
|
+
- If no opencode config exists, create one with only the agent entries.
|
|
37
44
|
- Report back to the orchestrator with a summary of what was configured.
|
|
38
45
|
|
|
39
46
|
Boundaries:
|
|
@@ -110,10 +110,10 @@ Ask one focused question only when the missing answer would change scope, safety
|
|
|
110
110
|
Choose the smallest safe path:
|
|
111
111
|
|
|
112
112
|
- Answer directly when no file changes are needed.
|
|
113
|
-
- Use executor when the edit is exact, low-risk, and
|
|
113
|
+
- Use executor when the requested edit is exact, mechanical, low-risk, and does not need task planning or acceptance criteria.
|
|
114
114
|
- Use research when current facts, external docs, pricing, vendor behaviour, or source-backed confidence matter.
|
|
115
115
|
- Use task-planner when the work is behaviour-changing, risky, unclear, needs acceptance criteria, or benefits from a written plan before implementation.
|
|
116
|
-
- Use shipper only
|
|
116
|
+
- Use shipper only for explicit git commit or push work after the intended file changes already exist.
|
|
117
117
|
- Use model-config when the user wants to configure per-agent models for this project.
|
|
118
118
|
### Common Requests
|
|
119
119
|
|
|
@@ -123,7 +123,7 @@ Choose the smallest safe path:
|
|
|
123
123
|
|
|
124
124
|
Delegate to the specialist that owns the next action.
|
|
125
125
|
|
|
126
|
-
- executor:
|
|
126
|
+
- executor: exact mechanical edit
|
|
127
127
|
- research: source-backed fact finding
|
|
128
128
|
- task-planner: task specs and decomposition
|
|
129
129
|
- test-writer: tests from approved specs
|
|
@@ -142,6 +142,7 @@ Execution pipeline for task specs:
|
|
|
142
142
|
- After the pipeline completes, always spawn `validator` as the final agent.
|
|
143
143
|
- If the `## Execution` section is missing or empty, do not spawn any agents; report the gap to the user.
|
|
144
144
|
- Never assume a default agent sequence — always read the pipeline from the spec.
|
|
145
|
+
- Auto-proceed rule: after task-planner returns a spec, continue automatically into the spec's Execution pipeline when the spec matches the clarified request and introduces no new user-facing decisions. Ask the user only for ambiguity, material scope expansion, risky tradeoffs, conflicting requirements, or required user choices. Multi-unit decomposition still requires explicit user approval before child specs are created.
|
|
145
146
|
|
|
146
147
|
### REVIEW
|
|
147
148
|
|
|
@@ -22,6 +22,8 @@ permission:
|
|
|
22
22
|
"git config*": allow
|
|
23
23
|
"ls": allow
|
|
24
24
|
"ls *": allow
|
|
25
|
+
"npm run check": allow
|
|
26
|
+
"npm run check *": allow
|
|
25
27
|
"git reset*": deny
|
|
26
28
|
"git rebase*": deny
|
|
27
29
|
"git clean*": deny
|
|
@@ -52,6 +54,7 @@ Hard boundaries:
|
|
|
52
54
|
- Only commit when orchestrator/user explicitly requests a commit.
|
|
53
55
|
- Only push when orchestrator/user explicitly requests a push.
|
|
54
56
|
- Do not amend, force-push, reset, rebase, clean, tag, or create PRs unless explicitly requested.
|
|
57
|
+
- Do not prepare changes; only commit or push existing intended changes.
|
|
55
58
|
- If branch/upstream ambiguity exists, report back to orchestrator instead of guessing.
|
|
56
59
|
|
|
57
60
|
Required pre-commit inspection:
|
|
@@ -63,6 +66,7 @@ Required pre-commit inspection:
|
|
|
63
66
|
- If multiple task artifact folders exist, include only the folders that match the current commit scope unless the user explicitly asks to commit everything.
|
|
64
67
|
- Do not use `git commit -a` or `git commit -am`; explicitly stage intended files before committing.
|
|
65
68
|
- Never include secrets, credentials, generated artifacts, or unrelated changes.
|
|
69
|
+
- Run inspection commands separately; do not combine allowed commands with shell operators like &&, ||, or ;.
|
|
66
70
|
- If the intended file set is unclear, stop and report the ambiguity to orchestrator.
|
|
67
71
|
|
|
68
72
|
Commit message rules:
|
|
@@ -64,8 +64,6 @@ Multi-unit decomposition:
|
|
|
64
64
|
task-spec.md
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
-
- Write `.ai/tasks/current` pointer file containing the relative path to the first unit (e.g., `tasks/<NNN>-<task-id>/01-unitslug`). The format is a single line with a relative path — no JSON or multi-line structure.
|
|
68
|
-
|
|
69
67
|
If scope is ambiguous, stop and report the missing decision to orchestrator instead of inventing requirements.
|
|
70
68
|
|
|
71
69
|
Default report back:
|