@tudeorangbiasa/sdd-multiagent-opencode 0.1.4 → 0.2.1
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/.opencode/agents/sdd-explorer.md +1 -2
- package/.opencode/agents/sdd-implementer.md +4 -5
- package/.opencode/agents/sdd-orchestrator.md +17 -127
- package/.opencode/agents/sdd-planner.md +5 -6
- package/.opencode/agents/sdd-reviewer.md +0 -1
- package/.opencode/agents/sdd-verifier.md +3 -4
- package/.opencode/commands/sdd-apply.md +83 -0
- package/.opencode/commands/sdd-explore.md +63 -0
- package/.opencode/commands/sdd-propose.md +116 -0
- package/.opencode/commands/sdd-ship.md +71 -0
- package/.opencode/plugins/sdd-register.js +22 -0
- package/.opencode/skills/sdd-audit/SKILL.md +5 -5
- package/.opencode/skills/sdd-implementation/SKILL.md +10 -12
- package/.opencode/skills/sdd-planning/SKILL.md +20 -29
- package/.opencode/skills/sdd-research/SKILL.md +5 -5
- package/.sdd/config.json +10 -10
- package/.sdd/templates/design-template.md +21 -0
- package/.sdd/templates/model-profile-template.json +20 -3
- package/.sdd/templates/progress-template.md +23 -0
- package/.sdd/templates/project-profile-template.json +2 -2
- package/.sdd/templates/proposal-template.md +22 -0
- package/.sdd/templates/reasoning-profile-template.json +4 -8
- package/.sdd/templates/spec-template.md +19 -0
- package/.sdd/templates/tasks-template.md +8 -0
- package/.sdd/templates/verification-template.md +17 -0
- package/GUIDE.md +128 -0
- package/README.md +259 -155
- package/bin/sdd-opencode.js +7 -9
- package/opencode.json +6 -14
- package/package.json +6 -4
- package/.opencode/commands/audit.md +0 -75
- package/.opencode/commands/brief.md +0 -190
- package/.opencode/commands/evolve.md +0 -87
- package/.opencode/commands/execute-parallel.md +0 -116
- package/.opencode/commands/execute-task.md +0 -81
- package/.opencode/commands/generate-prd.md +0 -82
- package/.opencode/commands/generate-rules.md +0 -67
- package/.opencode/commands/grill-me.md +0 -99
- package/.opencode/commands/implement.md +0 -149
- package/.opencode/commands/init-sdd.md +0 -141
- package/.opencode/commands/plan.md +0 -96
- package/.opencode/commands/refine.md +0 -115
- package/.opencode/commands/research.md +0 -194
- package/.opencode/commands/sdd-full-plan.md +0 -91
- package/.opencode/commands/specify.md +0 -124
- package/.opencode/commands/tasks.md +0 -110
- package/.opencode/commands/upgrade.md +0 -107
- package/.opencode/skills/sdd-evolve/SKILL.md +0 -95
- package/.sdd/templates/feature-brief-v2.md +0 -65
- package/.sdd/templates/plan-compact.md +0 -50
- package/.sdd/templates/research-compact.md +0 -114
- package/.sdd/templates/roadmap-template.json +0 -29
- package/.sdd/templates/roadmap-template.md +0 -66
- package/.sdd/templates/spec-compact.md +0 -71
- package/.sdd/templates/tasks-compact.md +0 -48
- package/.sdd/templates/todo-compact.md +0 -30
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SDD Multi-Agent OpenCode
|
|
2
2
|
|
|
3
|
-
Spec-Driven Development
|
|
3
|
+
Spec-Driven Development workflow kit for OpenCode with four core commands, multi-agent support, and configurable model routing.
|
|
4
4
|
|
|
5
5
|
Inspired by [spec-kit-command-cursor](https://github.com/madebyaris/spec-kit-command-cursor), rebuilt from scratch for OpenCode's multi-agent architecture.
|
|
6
6
|
|
|
@@ -20,38 +20,67 @@ external UI skills # impeccable, taste, nothing-design, etc.
|
|
|
20
20
|
|
|
21
21
|
| Aspect | Original (Cursor) | This (OpenCode) |
|
|
22
22
|
|--------|-------------------|-----------------|
|
|
23
|
-
| **Models** | Single `inherit` model |
|
|
24
|
-
| **Parallel Execution** | Cursor `is_background: true` |
|
|
23
|
+
| **Models** | Single `inherit` model | Configurable per-agent routing |
|
|
24
|
+
| **Parallel Execution** | Cursor `is_background: true` | Safe subagent spawning with file conflict detection |
|
|
25
25
|
| **Codebase Search** | grep/glob | `codebase-memory-mcp` graph queries |
|
|
26
26
|
| **Web Research** | Cursor web search | `exa_web_search_exa` |
|
|
27
27
|
| **Visual Verification** | N/A | Chrome DevTools + Qwen (image-capable) |
|
|
28
28
|
| **Hooks** | `hooks.json` | Plugin JS/TS with event system |
|
|
29
|
-
| **
|
|
29
|
+
| **Commands** | 15+ slash commands | 4 core commands: explore, propose, apply, ship |
|
|
30
|
+
| **Cost** | Per-token billing | Free-tier optimized with paid model routing |
|
|
30
31
|
|
|
31
32
|
## Multi-Agent Architecture
|
|
32
33
|
|
|
33
|
-
| Agent | Model | Role |
|
|
34
|
-
|
|
35
|
-
| **sdd-orchestrator** |
|
|
36
|
-
| **sdd-planner** |
|
|
37
|
-
| **sdd-explorer** |
|
|
38
|
-
| **sdd-implementer** |
|
|
39
|
-
| **sdd-verifier** |
|
|
40
|
-
| **sdd-reviewer** |
|
|
34
|
+
| Agent | Default Model | Role |
|
|
35
|
+
|-------|--------------|------|
|
|
36
|
+
| **sdd-orchestrator** | configurable | DAG scheduling, conflict detection, deadlock handling |
|
|
37
|
+
| **sdd-planner** | configurable | Architecture design, technical planning |
|
|
38
|
+
| **sdd-explorer** | configurable | Codebase discovery (readonly) |
|
|
39
|
+
| **sdd-implementer** | configurable | Code generation (high token usage) |
|
|
40
|
+
| **sdd-verifier** | configurable | Completeness check + visual/UI verification (Chrome DevTools) |
|
|
41
|
+
| **sdd-reviewer** | configurable | Code review (security, performance, spec compliance) |
|
|
42
|
+
|
|
43
|
+
**All models are configurable** via `.sdd/model-profile.json`. Edit this file to change which model each agent uses. See [Model Settings](#model-settings) below.
|
|
41
44
|
|
|
42
45
|
## Quick Start
|
|
43
46
|
|
|
44
|
-
###
|
|
47
|
+
### Plugin Install (Recommended)
|
|
48
|
+
|
|
49
|
+
Add to your `opencode.json` (global or project-level):
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"plugin": [
|
|
54
|
+
"@tudeorangbiasa/sdd-multiagent-opencode@latest"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Restart OpenCode. The plugin auto-registers skills, agents, commands, and internal plugins (model router, auto reasoning).
|
|
60
|
+
|
|
61
|
+
To pin a specific version:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"plugin": [
|
|
66
|
+
"@tudeorangbiasa/sdd-multiagent-opencode@0.2.0"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Verify by asking: "What SDD commands do you have?"
|
|
72
|
+
|
|
73
|
+
**Why npm instead of GitHub?** GitHub installs pull the latest commit which may include beta/unstable changes. npm packages are versioned and tested before publish, so you get a stable, mature release.
|
|
74
|
+
|
|
75
|
+
### npx Install (Fallback)
|
|
76
|
+
|
|
77
|
+
For projects that prefer local files instead of a plugin:
|
|
45
78
|
|
|
46
79
|
```bash
|
|
47
80
|
cd your-project
|
|
48
81
|
npx -y -p @tudeorangbiasa/sdd-multiagent-opencode sdd-opencode init
|
|
49
82
|
```
|
|
50
83
|
|
|
51
|
-
This installs both:
|
|
52
|
-
- Base OpenCode agent rules (verification, CLI-first, context budget)
|
|
53
|
-
- SDD multi-agent workflow (commands, agents, skills, templates)
|
|
54
|
-
|
|
55
84
|
**Flags:**
|
|
56
85
|
```bash
|
|
57
86
|
npx -y -p @tudeorangbiasa/sdd-multiagent-opencode sdd-opencode init # Install everything
|
|
@@ -61,19 +90,147 @@ npx -y -p @tudeorangbiasa/sdd-multiagent-opencode sdd-opencode init --force
|
|
|
61
90
|
npx -y -p @tudeorangbiasa/sdd-multiagent-opencode sdd-opencode init --dry-run # Preview only
|
|
62
91
|
```
|
|
63
92
|
|
|
64
|
-
###
|
|
93
|
+
### Updating
|
|
94
|
+
|
|
95
|
+
Plugin installs from npm update when you bump the version in your `opencode.json` and restart OpenCode. Check [npm](https://www.npmjs.com/package/@tudeorangbiasa/sdd-multiagent-opencode) for the latest version.
|
|
96
|
+
|
|
97
|
+
For npx installs, run the installer again with `--force` to overwrite existing files.
|
|
98
|
+
|
|
99
|
+
## Command Flow Guide
|
|
100
|
+
|
|
101
|
+
See [GUIDE.md](GUIDE.md) for the practical command flow.
|
|
102
|
+
|
|
103
|
+
Default workflow:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
/sdd-explore # investigate unclear ideas, bugs, or code areas; no code changes
|
|
107
|
+
/sdd-propose # create proposal.md, spec.md, design.md, tasks.md; no code changes
|
|
108
|
+
/sdd-apply # implement an approved change
|
|
109
|
+
/sdd-ship # final verification and readiness review
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Most work starts with `/sdd-propose`, then `/sdd-apply`, then `/sdd-ship`. Use `/sdd-explore` first only when the problem is unclear.
|
|
113
|
+
|
|
114
|
+
## Model Settings
|
|
65
115
|
|
|
66
116
|
The installer creates `.sdd/model-profile.json`. Edit this file to change which model each OpenCode agent uses.
|
|
67
117
|
|
|
68
|
-
|
|
118
|
+
**⚠️ Requirement:** SDD works best with at least **ONE paid/subscription model** for orchestrator and planner. These roles need strong reasoning + multimodal capabilities that free models lack.
|
|
119
|
+
|
|
120
|
+
### Provider Prefix Format
|
|
121
|
+
|
|
122
|
+
OpenCode supports 75+ providers. Model IDs use the format `provider_id/model_id`. Run `opencode provider list` for the full list on your system.
|
|
123
|
+
|
|
124
|
+
| Provider | Prefix | Example |
|
|
125
|
+
|----------|--------|---------|
|
|
126
|
+
| OpenAI | `openai/` | `openai/gpt-5.5` |
|
|
127
|
+
| Anthropic | `anthropic/` | `anthropic/claude-sonnet-4-5` |
|
|
128
|
+
| Google Gemini | `google/` | `google/gemini-3-pro` |
|
|
129
|
+
| OpenCode Zen | `opencode/` | `opencode/claude-opus-4-7` |
|
|
130
|
+
| OpenCode Go | `opencode-go/` | `opencode-go/deepseek-v4-pro` |
|
|
131
|
+
| OpenRouter | `openrouter/` | `openrouter/anthropic/claude-sonnet-4-5` |
|
|
132
|
+
| Groq | `groq/` | `groq/qwen-qwq` |
|
|
133
|
+
| DeepSeek | `deepseek/` | `deepseek/deepseek-chat` |
|
|
134
|
+
| MiniMax | `minimax/` | `minimax/minimax-m2.7` |
|
|
135
|
+
| Moonshot AI | `moonshot/` | `moonshot/kimi-k2.6` |
|
|
136
|
+
| Z.AI | `zai/` | `zai/glm-5.1` |
|
|
137
|
+
|
|
138
|
+
### OpenAI (Frontier Models)
|
|
139
|
+
|
|
140
|
+
Best for orchestration and complex planning. Access via OpenAI API key.
|
|
141
|
+
|
|
142
|
+
| Model | ID | Best For | Notes |
|
|
143
|
+
|-------|----|----------|-------|
|
|
144
|
+
| GPT 5.5 | `openai/gpt-5.5` | Orchestrator, Planner | Strongest reasoning + multimodal |
|
|
145
|
+
| GPT 5.5 Pro | `openai/gpt-5.5-pro` | Planner (complex) | Maximum capability, slower |
|
|
146
|
+
| GPT 5.5 Fast | `openai/gpt-5.5-fast` | Explorer, Implementer | Optimized for speed |
|
|
147
|
+
| GPT 5.2 | `openai/gpt-5.2` | General | Previous generation |
|
|
148
|
+
|
|
149
|
+
### Anthropic (Claude)
|
|
150
|
+
|
|
151
|
+
Access via Anthropic API key or OpenCode Zen.
|
|
152
|
+
|
|
153
|
+
| Model | ID (Zen) | Best For | Notes |
|
|
154
|
+
|-------|----------|----------|-------|
|
|
155
|
+
| Claude Opus 4.7 | `opencode/claude-opus-4-7` | Planner (complex) | Latest, strongest reasoning |
|
|
156
|
+
| Claude Opus 4.6 | `opencode/claude-opus-4-6` | Planner | Same price as 4.7, good alternative |
|
|
157
|
+
| Claude Opus 4.5 | `opencode/claude-opus-4-5` | Planner | Proven, stable |
|
|
158
|
+
| Claude Sonnet 4.6 | `opencode/claude-sonnet-4-6` | Planner, Reviewer | Balanced cost/performance |
|
|
159
|
+
| Claude Sonnet 4.5 | `opencode/claude-sonnet-4-5` | Planner, Reviewer | Excellent code understanding |
|
|
160
|
+
|
|
161
|
+
### OpenCode Zen (Curated Paid Models)
|
|
162
|
+
|
|
163
|
+
Models tested and verified by the OpenCode team. Access via OpenCode API key.
|
|
164
|
+
|
|
165
|
+
| Model | ID | Best For | Price (Input/Output per 1M) |
|
|
166
|
+
|-------|----|----------|----------------------------|
|
|
167
|
+
| Claude Opus 4.7 | `opencode/claude-opus-4-7` | Planner (complex) | $5.00 / $25.00 |
|
|
168
|
+
| Claude Opus 4.6 | `opencode/claude-opus-4-6` | Planner | $5.00 / $25.00 |
|
|
169
|
+
| Claude Sonnet 4.6 | `opencode/claude-sonnet-4-6` | Planner, Reviewer | $3.00 / $15.00 |
|
|
170
|
+
| Claude Sonnet 4.5 | `opencode/claude-sonnet-4-5` | Planner, Reviewer | $3.00 / $15.00 |
|
|
171
|
+
| Gemini 3.1 Pro | `opencode/gemini-3.1-pro` | Verifier, Planner | $2.00 / $12.00 |
|
|
172
|
+
| Gemini 3 Flash | `opencode/gemini-3-flash` | Explorer | $0.50 / $3.00 |
|
|
173
|
+
| MiniMax M2.7 | `opencode/minimax-m2.7` | Reviewer | $0.30 / $1.20 |
|
|
174
|
+
| MiniMax M2.5 | `opencode/minimax-m2.5` | Reviewer | $0.30 / $1.20 |
|
|
175
|
+
| GLM 5.1 | `opencode/glm-5.1` | Explorer, Planner | $1.40 / $4.40 |
|
|
176
|
+
| GLM 5 | `opencode/glm-5` | Explorer | $1.00 / $3.20 |
|
|
177
|
+
| Kimi K2.6 | `opencode/kimi-k2.6` | Verifier | $0.95 / $4.00 |
|
|
178
|
+
| Kimi K2.5 | `opencode/kimi-k2.5` | Explorer | $0.60 / $3.00 |
|
|
179
|
+
| Qwen3.6 Plus | `opencode/qwen3.6-plus` | General | $0.50 / $3.00 |
|
|
180
|
+
| Qwen3.5 Plus | `opencode/qwen3.5-plus` | General | $0.20 / $1.20 |
|
|
181
|
+
|
|
182
|
+
### OpenCode Go (Budget Subscription — $10/month)
|
|
183
|
+
|
|
184
|
+
Curated open-source models with generous limits. Best value for planner/orchestrator on a budget.
|
|
185
|
+
|
|
186
|
+
| Model | ID | Best For | Notes |
|
|
187
|
+
|-------|----|----------|-------|
|
|
188
|
+
| DeepSeek V4 Pro | `opencode-go/deepseek-v4-pro` | Orchestrator, Planner | Strong reasoning, 1M context, MIT license |
|
|
189
|
+
| DeepSeek V4 Flash | `opencode-go/deepseek-v4-flash` | Explorer, Implementer | Fast code gen |
|
|
190
|
+
| GLM 5.1 | `opencode-go/glm-5.1` | Planner | Strong reasoning |
|
|
191
|
+
| GLM 5 | `opencode-go/glm-5` | Explorer | Budget reasoning |
|
|
192
|
+
| Kimi K2.6 | `opencode-go/kimi-k2.6` | Verifier | Vision support, open weights |
|
|
193
|
+
| Kimi K2.5 | `opencode-go/kimi-k2.5` | Explorer | Fast exploration |
|
|
194
|
+
| MiniMax M2.7 | `opencode-go/minimax-m2.7` | Reviewer | Structured output |
|
|
195
|
+
| MiniMax M2.5 | `opencode-go/minimax-m2.5` | Reviewer | Fast review |
|
|
196
|
+
| Qwen3.6 Plus | `opencode-go/qwen3.6-plus` | General | Balanced |
|
|
197
|
+
| Qwen3.5 Plus | `opencode-go/qwen3.5-plus` | General | Budget |
|
|
198
|
+
| MiMo-V2.5-Pro | `opencode-go/mimo-v2.5-pro` | Explorer | Alternative |
|
|
199
|
+
| MiMo-V2.5 | `opencode-go/mimo-v2.5` | Explorer | Alternative |
|
|
200
|
+
|
|
201
|
+
**DeepSeek V4 Pro vs MiniMax M2.7:** Based on [Artificial Analysis benchmarks](https://artificialanalysis.ai/models/comparisons/deepseek-v4-pro-vs-minimax-m2-7), DeepSeek V4 Pro scores higher on intelligence index, has 1M context (vs 205K), MIT license (vs non-commercial), and is more recent. Recommended for orchestrator/planner over MiniMax M2.7.
|
|
202
|
+
|
|
203
|
+
### Free-Tier Models
|
|
204
|
+
|
|
205
|
+
Models available at no cost via OpenCode Zen. Run `opencode models opencode | grep "free"` to check current availability — free models change frequently.
|
|
206
|
+
|
|
207
|
+
**Current free models (verified):**
|
|
208
|
+
|
|
209
|
+
| Model | ID | Best For | Notes |
|
|
210
|
+
|-------|----|----------|-------|
|
|
211
|
+
| DeepSeek V4 Flash Free | `opencode/deepseek-v4-flash-free` | Explorer, Implementer | Code generation |
|
|
212
|
+
| MiniMax M2.5 Free | `opencode/minimax-m2.5-free` | Reviewer, Compaction | Structured output |
|
|
213
|
+
| Nemotron 3 Super Free | `opencode/nemotron-3-super-free` | Explorer | NVIDIA model, 1M context |
|
|
214
|
+
| Qwen3.6 Plus Free | `opencode/qwen3.6-plus-free` | Verifier, General | Multimodal support |
|
|
215
|
+
|
|
216
|
+
⚠️ Free models are limited-time offers and may be removed or rotated without notice. Not recommended for production SDD workflows. Use `opencode models opencode | grep "free"` to verify what's currently available.
|
|
217
|
+
|
|
218
|
+
**Alternative free options via other providers:**
|
|
219
|
+
- `groq/qwen-qwq` — Qwen QwQ 32B via Groq (free tier available)
|
|
220
|
+
- `groq/llama-3.3-70b-versatile` — Llama 3.3 70B via Groq
|
|
221
|
+
- `openrouter/deepseek-r1-free` — DeepSeek R1 via OpenRouter (free)
|
|
222
|
+
|
|
223
|
+
### Default Profile
|
|
224
|
+
|
|
225
|
+
Recommended starting configuration (orchestrator/planner use OpenAI GPT 5.5, others use free):
|
|
69
226
|
|
|
70
227
|
```json
|
|
71
228
|
{
|
|
72
|
-
"defaultPrimary": "
|
|
229
|
+
"defaultPrimary": "openai/gpt-5.5",
|
|
73
230
|
"small": "opencode/deepseek-v4-flash-free",
|
|
74
231
|
"agents": {
|
|
75
|
-
"sdd-orchestrator": "
|
|
76
|
-
"sdd-planner": "
|
|
232
|
+
"sdd-orchestrator": "openai/gpt-5.5",
|
|
233
|
+
"sdd-planner": "openai/gpt-5.5",
|
|
77
234
|
"sdd-explorer": "opencode/deepseek-v4-flash-free",
|
|
78
235
|
"sdd-implementer": "opencode/deepseek-v4-flash-free",
|
|
79
236
|
"sdd-verifier": "opencode/qwen3.6-plus-free",
|
|
@@ -82,7 +239,34 @@ Default profile avoids paid GPT models:
|
|
|
82
239
|
}
|
|
83
240
|
```
|
|
84
241
|
|
|
85
|
-
|
|
242
|
+
**Budget alternative** (OpenCode Go $10/month):
|
|
243
|
+
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"defaultPrimary": "opencode-go/deepseek-v4-pro",
|
|
247
|
+
"small": "opencode/deepseek-v4-flash-free",
|
|
248
|
+
"agents": {
|
|
249
|
+
"sdd-orchestrator": "opencode-go/deepseek-v4-pro",
|
|
250
|
+
"sdd-planner": "opencode-go/deepseek-v4-pro",
|
|
251
|
+
"sdd-explorer": "opencode/deepseek-v4-flash-free",
|
|
252
|
+
"sdd-implementer": "opencode/deepseek-v4-flash-free",
|
|
253
|
+
"sdd-verifier": "opencode-go/kimi-k2.6",
|
|
254
|
+
"sdd-reviewer": "opencode/minimax-m2.5-free"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Model routing rationale:**
|
|
260
|
+
- **Orchestrator** → GPT 5.5 (OpenAI) or DeepSeek V4 Pro (Go): needs strongest reasoning for DAG coordination, deadlock detection
|
|
261
|
+
- **Planner** → GPT 5.5 (OpenAI) or DeepSeek V4 Pro (Go): needs maximum reasoning for architecture design, risk assessment
|
|
262
|
+
- **Explorer** → DeepSeek free: fast readonly exploration, token-efficient
|
|
263
|
+
- **Implementer** → DeepSeek free: code generation, handles high token usage
|
|
264
|
+
- **Verifier** → Qwen3.6 Plus free: multimodal for Chrome DevTools screenshots
|
|
265
|
+
- **Reviewer** → MiniMax M2.5 free: structured code review output
|
|
266
|
+
|
|
267
|
+
`.opencode/plugins/sdd-model-router.js` reads this file at OpenCode startup and applies the model settings. **Restart OpenCode after editing it.**
|
|
268
|
+
|
|
269
|
+
**Important:** Do NOT set models in `opencode.json` — they will be ignored. All model routing goes through `model-profile.json`.
|
|
86
270
|
|
|
87
271
|
### Auto Reasoning
|
|
88
272
|
|
|
@@ -109,27 +293,14 @@ Default routing:
|
|
|
109
293
|
|
|
110
294
|
Restart OpenCode after editing `.sdd/reasoning-profile.json`.
|
|
111
295
|
|
|
112
|
-
###
|
|
113
|
-
|
|
114
|
-
#### Option A: Using Commands (Recommended)
|
|
115
|
-
|
|
116
|
-
If you have OpenCode running, you can use the init commands:
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
/init-rules # Install base agent rules first
|
|
120
|
-
/init-sdd # Install SDD workflow layer
|
|
121
|
-
```
|
|
296
|
+
### Manual Install
|
|
122
297
|
|
|
123
|
-
|
|
298
|
+
If you prefer local files over a plugin:
|
|
124
299
|
|
|
125
300
|
```bash
|
|
126
|
-
# Recommended: install base agent rules first
|
|
127
301
|
git clone https://github.com/TudeOrangBiasa/opencode-agent-rules.git
|
|
128
|
-
|
|
129
|
-
# Clone into your project
|
|
130
302
|
git clone https://github.com/TudeOrangBiasa/sdd-multiagent-opencode.git
|
|
131
303
|
|
|
132
|
-
# Or copy the .opencode/ and .sdd/ directories into your project
|
|
133
304
|
cp opencode-agent-rules/AGENTS.md /your-project/
|
|
134
305
|
cp -r opencode-agent-rules/.opencode/rules /your-project/.opencode/
|
|
135
306
|
cp -r opencode-agent-rules/.opencode/plugins /your-project/.opencode/
|
|
@@ -138,158 +309,92 @@ cp -r sdd-multiagent-opencode/.sdd /your-project/
|
|
|
138
309
|
cp sdd-multiagent-opencode/opencode.json /your-project/
|
|
139
310
|
```
|
|
140
311
|
|
|
141
|
-
### 2. Configure
|
|
142
|
-
|
|
143
312
|
Merge the `agent` and `permission` sections from `opencode.json` into your project's `opencode.json`.
|
|
144
313
|
|
|
145
|
-
|
|
314
|
+
## Usage
|
|
146
315
|
|
|
147
|
-
|
|
148
|
-
- framework (e.g., "next", "react", "express")
|
|
149
|
-
- language (e.g., "typescript", "javascript")
|
|
150
|
-
- packageManager (e.g., "pnpm", "npm", "yarn")
|
|
151
|
-
- commands (dev, build, test, lint)
|
|
316
|
+
See [GUIDE.md](GUIDE.md) for the practical flow.
|
|
152
317
|
|
|
153
|
-
|
|
318
|
+
```text
|
|
319
|
+
/sdd-propose auth-reset "add secure password reset by email"
|
|
320
|
+
/sdd-apply auth-reset
|
|
321
|
+
/sdd-ship auth-reset
|
|
322
|
+
```
|
|
154
323
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
# Full planning (complex features)
|
|
160
|
-
/research database-engine Best database for our use case --deep
|
|
161
|
-
/specify user-auth User authentication with login, logout, password reset
|
|
162
|
-
/plan user-auth
|
|
163
|
-
/tasks user-auth
|
|
164
|
-
/implement user-auth
|
|
165
|
-
|
|
166
|
-
# TDD workflow (test-driven development)
|
|
167
|
-
/tasks user-auth --tdd
|
|
168
|
-
/implement user-auth --tdd
|
|
169
|
-
|
|
170
|
-
# Full project roadmap
|
|
171
|
-
/sdd-full-plan blog-platform Full-featured blog with CMS and analytics
|
|
172
|
-
/execute-parallel blog-platform --until-finish
|
|
173
|
-
|
|
174
|
-
# Audit
|
|
175
|
-
/audit user-auth
|
|
324
|
+
If the problem is unclear, start with exploration:
|
|
325
|
+
|
|
326
|
+
```text
|
|
327
|
+
/sdd-explore "admin UI feels messy, find reusable component opportunities"
|
|
176
328
|
```
|
|
177
329
|
|
|
178
330
|
## Commands
|
|
179
331
|
|
|
180
|
-
| Command | Purpose |
|
|
181
|
-
|
|
182
|
-
| `/
|
|
183
|
-
| `/
|
|
184
|
-
| `/
|
|
185
|
-
| `/
|
|
186
|
-
| `/specify` | Detailed requirements | `spec.md` |
|
|
187
|
-
| `/plan` | Technical architecture | `plan.md` |
|
|
188
|
-
| `/tasks` | Task breakdown | `tasks.md` |
|
|
189
|
-
| `/implement` | Execute implementation with todo tracking | Code + `todo-list.md` |
|
|
190
|
-
| `/sdd-full-plan` | Complete project roadmap | `roadmap.json` + tasks |
|
|
191
|
-
| `/execute-parallel` | Parallel DAG execution | Updated roadmap |
|
|
192
|
-
| `/execute-task` | Single task execution | Updated roadmap |
|
|
193
|
-
| `/evolve` | Update specs with discoveries | Updated specs |
|
|
194
|
-
| `/refine` | Iterate on specs through discussion | Updated docs |
|
|
195
|
-
| `/upgrade` | Brief → Full SDD planning | Full SDD docs |
|
|
196
|
-
| `/audit` | Compare implementation against specs | Audit report |
|
|
197
|
-
| `/generate-prd` | PRD via Socratic questions | `full-prd.md` |
|
|
198
|
-
| `/generate-rules` | Auto-generate coding rules | Rule files |
|
|
199
|
-
| `/grill-me` | Clarify product requirements | Clarified brief |
|
|
332
|
+
| Command | Purpose | Writes Code? |
|
|
333
|
+
|---------|---------|--------------|
|
|
334
|
+
| `/sdd-explore` | Investigate unclear ideas, bugs, or code areas | No |
|
|
335
|
+
| `/sdd-propose` | Create one focused change plan | No |
|
|
336
|
+
| `/sdd-apply` | Implement an approved change | Yes |
|
|
337
|
+
| `/sdd-ship` | Final verification and readiness review | No, unless explicitly asked |
|
|
200
338
|
|
|
201
339
|
## Project Structure
|
|
202
340
|
|
|
203
341
|
```
|
|
204
342
|
.opencode/
|
|
205
|
-
├── opencode.json # Agent configs, permissions, model assignments
|
|
206
343
|
├── agents/
|
|
207
|
-
│ ├── sdd-orchestrator.md #
|
|
208
|
-
│ ├── sdd-planner.md #
|
|
209
|
-
│ ├── sdd-explorer.md #
|
|
210
|
-
│ ├── sdd-implementer.md #
|
|
211
|
-
│ ├── sdd-verifier.md # Completeness
|
|
212
|
-
│ └── sdd-reviewer.md #
|
|
344
|
+
│ ├── sdd-orchestrator.md # Multi-agent coordination internals
|
|
345
|
+
│ ├── sdd-planner.md # Proposal/spec/design/tasks planning
|
|
346
|
+
│ ├── sdd-explorer.md # Readonly codebase investigation
|
|
347
|
+
│ ├── sdd-implementer.md # Approved implementation work
|
|
348
|
+
│ ├── sdd-verifier.md # Completeness and UI verification
|
|
349
|
+
│ └── sdd-reviewer.md # Final review and readiness checks
|
|
213
350
|
├── commands/
|
|
214
|
-
│ ├──
|
|
215
|
-
│ ├──
|
|
216
|
-
│ ├──
|
|
217
|
-
│
|
|
218
|
-
│ ├── tasks.md # /tasks
|
|
219
|
-
│ ├── implement.md # /implement
|
|
220
|
-
│ ├── sdd-full-plan.md # /sdd-full-plan
|
|
221
|
-
│ ├── execute-parallel.md # /execute-parallel
|
|
222
|
-
│ ├── execute-task.md # /execute-task
|
|
223
|
-
│ ├── evolve.md # /evolve
|
|
224
|
-
│ ├── refine.md # /refine
|
|
225
|
-
│ ├── upgrade.md # /upgrade
|
|
226
|
-
│ ├── audit.md # /audit
|
|
227
|
-
│ ├── generate-prd.md # /generate-prd
|
|
228
|
-
│ └── generate-rules.md # /generate-rules
|
|
351
|
+
│ ├── sdd-explore.md # /sdd-explore
|
|
352
|
+
│ ├── sdd-propose.md # /sdd-propose
|
|
353
|
+
│ ├── sdd-apply.md # /sdd-apply
|
|
354
|
+
│ └── sdd-ship.md # /sdd-ship
|
|
229
355
|
└── skills/
|
|
230
356
|
├── sdd-research/SKILL.md
|
|
231
357
|
├── sdd-planning/SKILL.md
|
|
232
358
|
├── sdd-implementation/SKILL.md
|
|
233
|
-
|
|
234
|
-
└── sdd-evolve/SKILL.md
|
|
359
|
+
└── sdd-audit/SKILL.md
|
|
235
360
|
|
|
236
361
|
.sdd/
|
|
237
362
|
├── config.json # Project configuration
|
|
238
363
|
├── project-profile.json # Stack and skill routing config
|
|
239
364
|
└── templates/ # Document templates
|
|
240
|
-
├──
|
|
241
|
-
├── spec-
|
|
242
|
-
├──
|
|
243
|
-
├── tasks-
|
|
244
|
-
├──
|
|
245
|
-
|
|
246
|
-
├── roadmap-template.json
|
|
247
|
-
└── roadmap-template.md
|
|
365
|
+
├── proposal-template.md
|
|
366
|
+
├── spec-template.md
|
|
367
|
+
├── design-template.md
|
|
368
|
+
├── tasks-template.md
|
|
369
|
+
├── progress-template.md
|
|
370
|
+
└── verification-template.md
|
|
248
371
|
|
|
249
372
|
specs/
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
├──
|
|
253
|
-
|
|
373
|
+
└── active/
|
|
374
|
+
└── <change-id>/
|
|
375
|
+
├── proposal.md
|
|
376
|
+
├── spec.md
|
|
377
|
+
├── design.md
|
|
378
|
+
├── tasks.md
|
|
379
|
+
├── progress.md
|
|
380
|
+
└── verification.md
|
|
254
381
|
```
|
|
255
382
|
|
|
256
383
|
## Workflows
|
|
257
384
|
|
|
258
|
-
|
|
259
|
-
```
|
|
260
|
-
/brief → /evolve → /refine → /implement
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Full Planning (complex features)
|
|
264
|
-
```
|
|
265
|
-
/research → /specify → /plan → /tasks → /implement
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### Deep Research (unfamiliar domain)
|
|
269
|
-
```
|
|
270
|
-
/research --deep → /specify → /plan → /tasks → /implement
|
|
271
|
-
```
|
|
385
|
+
Most changes use:
|
|
272
386
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
/sdd-full-plan → /execute-parallel --until-finish
|
|
387
|
+
```text
|
|
388
|
+
/sdd-propose -> /sdd-apply -> /sdd-ship
|
|
276
389
|
```
|
|
277
390
|
|
|
278
|
-
|
|
391
|
+
Unclear changes use:
|
|
279
392
|
|
|
393
|
+
```text
|
|
394
|
+
/sdd-explore -> /sdd-propose -> /sdd-apply -> /sdd-ship
|
|
280
395
|
```
|
|
281
|
-
/brief feature-x → /tasks feature-x --tdd → /implement feature-x --tdd
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
With `--tdd` flag:
|
|
285
|
-
- `/tasks` generates TDD-specific tasks with test-first structure
|
|
286
|
-
- `/implement` writes failing test → implements minimum code → verifies pass → refactors
|
|
287
396
|
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
/tasks user-auth --tdd
|
|
291
|
-
/implement user-auth --tdd
|
|
292
|
-
```
|
|
397
|
+
This kit intentionally avoids fake CLI flags such as `--deep` or `--until-finish`. If deeper research or parallel execution is needed, describe that in normal language and let the agent plan it explicitly.
|
|
293
398
|
|
|
294
399
|
## Tools Integration
|
|
295
400
|
|
|
@@ -302,11 +407,10 @@ Used by `sdd-explorer` and `sdd-implementer` for:
|
|
|
302
407
|
- `get_architecture` — high-level project structure
|
|
303
408
|
|
|
304
409
|
### exa_web_search_exa
|
|
305
|
-
Used by `sdd-explorer`
|
|
410
|
+
Used by `sdd-explorer` when external research is relevant:
|
|
306
411
|
- External pattern research
|
|
307
412
|
- Documentation lookup
|
|
308
413
|
- Technology comparison
|
|
309
|
-
- Deep research mode (`--deep`)
|
|
310
414
|
|
|
311
415
|
### chrome-devtools
|
|
312
416
|
Used by `sdd-verifier` for:
|
package/bin/sdd-opencode.js
CHANGED
|
@@ -332,15 +332,9 @@ function patchOpencodeJson(ctx) {
|
|
|
332
332
|
}
|
|
333
333
|
}
|
|
334
334
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
if (pkgConfig.small_model) {
|
|
341
|
-
targetConfig.small_model = pkgConfig.small_model;
|
|
342
|
-
ctx.installed.push("opencode.json (small_model patch)");
|
|
343
|
-
}
|
|
335
|
+
// NOTE: model and small_model are NOT patched from opencode.json.
|
|
336
|
+
// Model routing is handled by .sdd/model-profile.json + sdd-model-router.js plugin.
|
|
337
|
+
// Users edit model-profile.json to change models — opencode.json models are ignored.
|
|
344
338
|
|
|
345
339
|
if (pkgConfig.agents && !targetConfig.agents) {
|
|
346
340
|
targetConfig.agents = pkgConfig.agents;
|
|
@@ -360,6 +354,10 @@ function patchOpencodeJson(ctx) {
|
|
|
360
354
|
targetConfig.permission = pkgConfig.permission;
|
|
361
355
|
ctx.installed.push("opencode.json (permission patch)");
|
|
362
356
|
}
|
|
357
|
+
|
|
358
|
+
// NOTE: model and small_model are NOT patched here.
|
|
359
|
+
// Model routing is handled by .sdd/model-profile.json + sdd-model-router.js plugin.
|
|
360
|
+
// Users should edit model-profile.json to change models, not opencode.json.
|
|
363
361
|
}
|
|
364
362
|
|
|
365
363
|
if (ctx.dryRun) {
|
package/opencode.json
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
|
-
"model": "opencode/minimax-m2.5-free",
|
|
4
|
-
"small_model": "opencode/deepseek-v4-flash-free",
|
|
5
3
|
"plugin": [
|
|
6
4
|
"./plugins/sdd-model-router.js",
|
|
7
5
|
"./plugins/sdd-auto-reasoning.js"
|
|
8
6
|
],
|
|
9
7
|
"agent": {
|
|
10
8
|
"sdd-orchestrator": {
|
|
11
|
-
"description": "
|
|
9
|
+
"description": "Internal coordination agent for complex SDD changes. Use only when a core command needs multi-agent scheduling.",
|
|
12
10
|
"mode": "subagent",
|
|
13
|
-
"model": "opencode/minimax-m2.5-free",
|
|
14
11
|
"temperature": 0.3,
|
|
15
12
|
"permission": {
|
|
16
13
|
"edit": "allow",
|
|
@@ -22,9 +19,8 @@
|
|
|
22
19
|
"color": "accent"
|
|
23
20
|
},
|
|
24
21
|
"sdd-planner": {
|
|
25
|
-
"description": "
|
|
22
|
+
"description": "Creates compact SDD proposal, spec, design, and task artifacts for /sdd-propose.",
|
|
26
23
|
"mode": "subagent",
|
|
27
|
-
"model": "opencode/qwen3.6-plus-free",
|
|
28
24
|
"temperature": 0.3,
|
|
29
25
|
"permission": {
|
|
30
26
|
"edit": "allow",
|
|
@@ -36,9 +32,8 @@
|
|
|
36
32
|
"color": "info"
|
|
37
33
|
},
|
|
38
34
|
"sdd-explorer": {
|
|
39
|
-
"description": "
|
|
35
|
+
"description": "Readonly codebase exploration for /sdd-explore and uncertain /sdd-propose requests.",
|
|
40
36
|
"mode": "subagent",
|
|
41
|
-
"model": "opencode/deepseek-v4-flash-free",
|
|
42
37
|
"temperature": 0.1,
|
|
43
38
|
"permission": {
|
|
44
39
|
"edit": "deny",
|
|
@@ -54,9 +49,8 @@
|
|
|
54
49
|
"color": "secondary"
|
|
55
50
|
},
|
|
56
51
|
"sdd-implementer": {
|
|
57
|
-
"description": "Systematic
|
|
52
|
+
"description": "Systematic implementation for approved /sdd-apply changes.",
|
|
58
53
|
"mode": "subagent",
|
|
59
|
-
"model": "opencode/deepseek-v4-flash-free",
|
|
60
54
|
"temperature": 0.3,
|
|
61
55
|
"permission": {
|
|
62
56
|
"edit": "allow",
|
|
@@ -68,9 +62,8 @@
|
|
|
68
62
|
"color": "success"
|
|
69
63
|
},
|
|
70
64
|
"sdd-verifier": {
|
|
71
|
-
"description": "Independent validation
|
|
65
|
+
"description": "Independent validation for /sdd-ship, including browser checks when needed.",
|
|
72
66
|
"mode": "subagent",
|
|
73
|
-
"model": "opencode/qwen3.6-plus-free",
|
|
74
67
|
"temperature": 0.1,
|
|
75
68
|
"permission": {
|
|
76
69
|
"edit": "deny",
|
|
@@ -80,9 +73,8 @@
|
|
|
80
73
|
"color": "warning"
|
|
81
74
|
},
|
|
82
75
|
"sdd-reviewer": {
|
|
83
|
-
"description": "
|
|
76
|
+
"description": "Final review specialist for /sdd-ship readiness checks.",
|
|
84
77
|
"mode": "subagent",
|
|
85
|
-
"model": "opencode/minimax-m2.5-free",
|
|
86
78
|
"temperature": 0.2,
|
|
87
79
|
"permission": {
|
|
88
80
|
"edit": "deny",
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tudeorangbiasa/sdd-multiagent-opencode",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "Spec-Driven Development multi-agent
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Spec-Driven Development workflow kit for OpenCode with 4 core commands, multi-agent support, and configurable model routing",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"main": ".opencode/plugins/sdd-register.js",
|
|
6
7
|
"bin": {
|
|
7
|
-
"sdd-multiagent-opencode": "bin/sdd-opencode.js",
|
|
8
8
|
"sdd-opencode": "bin/sdd-opencode.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
".sdd",
|
|
14
14
|
"vendor",
|
|
15
15
|
"README.md",
|
|
16
|
+
"GUIDE.md",
|
|
16
17
|
"opencode.json"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|
|
@@ -22,7 +23,8 @@
|
|
|
22
23
|
"opencode",
|
|
23
24
|
"sdd",
|
|
24
25
|
"spec-driven-development",
|
|
25
|
-
"multi-agent"
|
|
26
|
+
"multi-agent",
|
|
27
|
+
"opencode-plugin"
|
|
26
28
|
],
|
|
27
29
|
"license": "MIT"
|
|
28
30
|
}
|