devloom 1.0.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/GUIDE.md +487 -0
- package/README.md +235 -0
- package/agents/devloom-analyst.md +83 -0
- package/agents/devloom-architect.md +88 -0
- package/agents/devloom-developer.md +66 -0
- package/agents/devloom-documenter.md +67 -0
- package/agents/devloom-orchestrator.md +367 -0
- package/agents/devloom-qa.md +94 -0
- package/commands/devloom-init.md +60 -0
- package/commands/devloom-resume.md +58 -0
- package/commands/devloom-status.md +23 -0
- package/commands/devloom.md +81 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +31 -0
- package/dist/plugin.js.map +1 -0
- package/package.json +48 -0
- package/postinstall.mjs +137 -0
package/GUIDE.md
ADDED
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
# DevLoom — Installation & Usage Guide
|
|
2
|
+
|
|
3
|
+
DevLoom is the Autonomous Development Weaver for OpenCode. This guide covers
|
|
4
|
+
everything from first install to advanced usage and troubleshooting.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Prerequisites
|
|
9
|
+
|
|
10
|
+
| Requirement | Minimum version | Check command |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| [OpenCode](https://opencode.ai) | latest | `opencode --version` |
|
|
13
|
+
| Node.js | 18.x | `node --version` |
|
|
14
|
+
| npm | 9.x | `npm --version` |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
### Option A — npm global install (recommended)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g devloom
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The `postinstall` script runs automatically and copies all agent, command,
|
|
27
|
+
and skill files to your OpenCode global config directory:
|
|
28
|
+
|
|
29
|
+
| OS | Config directory |
|
|
30
|
+
|---|---|
|
|
31
|
+
| Linux | `~/.config/opencode/` |
|
|
32
|
+
| macOS | `~/Library/Application Support/opencode/` |
|
|
33
|
+
| Windows | `%APPDATA%\opencode\` |
|
|
34
|
+
|
|
35
|
+
Expected output:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
DevLoom — post-install
|
|
39
|
+
|
|
40
|
+
Config dir : /home/you/.config/opencode
|
|
41
|
+
Agents dir : /home/you/.config/opencode/agents
|
|
42
|
+
Commands dir: /home/you/.config/opencode/commands
|
|
43
|
+
|
|
44
|
+
Installing agents:
|
|
45
|
+
- Agent: devloom-orchestrator
|
|
46
|
+
- Agent: devloom-analyst
|
|
47
|
+
- Agent: devloom-architect
|
|
48
|
+
- Agent: devloom-developer
|
|
49
|
+
- Agent: devloom-qa
|
|
50
|
+
- Agent: devloom-documenter
|
|
51
|
+
|
|
52
|
+
Installing commands:
|
|
53
|
+
- Command: /devloom
|
|
54
|
+
- Command: /devloom-status
|
|
55
|
+
- Command: /devloom-resume
|
|
56
|
+
- Command: /devloom-init
|
|
57
|
+
|
|
58
|
+
DevLoom installed successfully!
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
### Option B — Install from source
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/nsrau/devloom.git
|
|
67
|
+
cd devloom
|
|
68
|
+
|
|
69
|
+
# Install dev dependencies and compile TypeScript
|
|
70
|
+
npm install
|
|
71
|
+
npm run build
|
|
72
|
+
|
|
73
|
+
# Run the installer manually
|
|
74
|
+
node postinstall.mjs
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Option C — Per-project only
|
|
80
|
+
|
|
81
|
+
Add DevLoom to your project's `opencode.json` to keep it scoped to that
|
|
82
|
+
project without a global install:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"$schema": "https://opencode.ai/config.json",
|
|
87
|
+
"plugin": ["devloom"]
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
OpenCode loads it automatically when you open a session in that directory.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Verifying the Installation
|
|
96
|
+
|
|
97
|
+
Start OpenCode and open the command palette by typing `/`:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
/devloom → Weave a full feature from a single prompt
|
|
101
|
+
/devloom-status → Show current weaving progress
|
|
102
|
+
/devloom-resume → Resume an interrupted execution
|
|
103
|
+
/devloom-init → Initialize a project for DevLoom
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Or check installed files directly:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Linux / macOS
|
|
110
|
+
ls ~/.config/opencode/agents/ | grep devloom
|
|
111
|
+
|
|
112
|
+
# Expected:
|
|
113
|
+
devloom-analyst.md
|
|
114
|
+
devloom-architect.md
|
|
115
|
+
devloom-developer.md
|
|
116
|
+
devloom-documenter.md
|
|
117
|
+
devloom-orchestrator.md
|
|
118
|
+
devloom-qa.md
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Configuring Models
|
|
124
|
+
|
|
125
|
+
### Default (no config)
|
|
126
|
+
|
|
127
|
+
All agents default to `opencode/deepseek-v4-flash-free` — the fastest free model.
|
|
128
|
+
|
|
129
|
+
### Per-project override (recommended)
|
|
130
|
+
|
|
131
|
+
Create `.opencode/devloom/config.json` in your project root:
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"models": {
|
|
136
|
+
"orchestrator": "opencode/big-pickle",
|
|
137
|
+
"analyst": "opencode/deepseek-v4-flash-free",
|
|
138
|
+
"architect": "opencode/deepseek-v4-flash-free",
|
|
139
|
+
"developer": "opencode/deepseek-v4-flash-free",
|
|
140
|
+
"qa": "opencode/deepseek-v4-flash-free",
|
|
141
|
+
"documenter": "opencode/deepseek-v4-flash-free"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Every DevLoom command (`/devloom`, `/devloom-init`, `/devloom-resume`) reads
|
|
147
|
+
this file before invoking the orchestrator and applies the models to the
|
|
148
|
+
global agent files. **Local config always wins.**
|
|
149
|
+
|
|
150
|
+
### Prefix requirement
|
|
151
|
+
|
|
152
|
+
All models MUST use the `opencode/` or `opencode-go/` prefix:
|
|
153
|
+
|
|
154
|
+
| Correct | Wrong |
|
|
155
|
+
|---|---|
|
|
156
|
+
| `opencode/deepseek-v4-flash-free` | `deepseek-v4-flash-free` |
|
|
157
|
+
| `opencode-go/deepseek-v4-pro` | `deepseek-v4-pro` |
|
|
158
|
+
|
|
159
|
+
If you forget the prefix, DevLoom adds it automatically and logs a warning.
|
|
160
|
+
|
|
161
|
+
### First-run interactive setup
|
|
162
|
+
|
|
163
|
+
If no `config.json` exists, Phase 0 detects available models (`opencode models`),
|
|
164
|
+
asks whether to use **Free** (`opencode/`) or **Go** (`opencode-go/`) tier,
|
|
165
|
+
then assigns the best available model per agent role.
|
|
166
|
+
|
|
167
|
+
### Available models
|
|
168
|
+
|
|
169
|
+
**Free tier** (`opencode/` — zero cost):
|
|
170
|
+
|
|
171
|
+
| Model string |
|
|
172
|
+
|---|
|
|
173
|
+
| `opencode/deepseek-v4-flash-free` |
|
|
174
|
+
| `opencode/minimax-m2.5-free` |
|
|
175
|
+
| `opencode/nemotron-3-super-free` |
|
|
176
|
+
| `opencode/big-pickle` |
|
|
177
|
+
|
|
178
|
+
**Go tier** (`opencode-go/` — higher quality):
|
|
179
|
+
|
|
180
|
+
| Model string |
|
|
181
|
+
|---|
|
|
182
|
+
| `opencode-go/deepseek-v4-pro` |
|
|
183
|
+
| `opencode-go/deepseek-v4-flash` |
|
|
184
|
+
| `opencode-go/kimi-k2.5` |
|
|
185
|
+
| `opencode-go/kimi-k2.6` |
|
|
186
|
+
| `opencode-go/glm-5` |
|
|
187
|
+
| `opencode-go/glm-5.1` |
|
|
188
|
+
| `opencode-go/minimax-m2.5` |
|
|
189
|
+
| `opencode-go/minimax-m2.7` |
|
|
190
|
+
| `opencode-go/mimo-v2.5` |
|
|
191
|
+
| `opencode-go/mimo-v2.5-pro` |
|
|
192
|
+
| `opencode-go/qwen3.5-plus` |
|
|
193
|
+
| `opencode-go/qwen3.6-plus` |
|
|
194
|
+
|
|
195
|
+
Run `opencode models` to see what's currently available in your environment.
|
|
196
|
+
|
|
197
|
+
### Global override (advanced)
|
|
198
|
+
|
|
199
|
+
Edit the agent files at `~/.config/opencode/agents/` directly:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
sed -i 's|^model:.*|model: opencode/deepseek-v4-flash-free|' \
|
|
203
|
+
~/.config/opencode/agents/devloom-*.md
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Usage
|
|
209
|
+
|
|
210
|
+
### Start a weaving session
|
|
211
|
+
|
|
212
|
+
Navigate to your project directory, then open OpenCode:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
cd /path/to/your/project
|
|
216
|
+
opencode
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### Option 1 — Slash command (recommended)
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
/devloom Build a REST API for user management with JWT authentication and role-based access control
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
#### Option 2 — Direct agent invocation
|
|
226
|
+
|
|
227
|
+
```
|
|
228
|
+
@devloom-orchestrator Build a REST API for user management with JWT authentication
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
#### Option 3 — Non-interactive / CI mode
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
opencode run "/devloom Add OpenTelemetry tracing to all HTTP handlers"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
### What happens after you submit the prompt
|
|
240
|
+
|
|
241
|
+
DevLoom works through phases automatically:
|
|
242
|
+
|
|
243
|
+
**Phase 0 — Model Setup**
|
|
244
|
+
|
|
245
|
+
If `.opencode/devloom/config.json` exists, its models are loaded and applied
|
|
246
|
+
immediately. Otherwise the orchestrator detects available models, asks your
|
|
247
|
+
preference (Free or Go tier), and assigns models per agent role.
|
|
248
|
+
|
|
249
|
+
**Phase 1 — Understand & Plan**
|
|
250
|
+
|
|
251
|
+
The Analyst explores your codebase and writes `.opencode/devloom/requirements.md`.
|
|
252
|
+
The Architect reads the requirements and writes `.opencode/devloom/plan.md`
|
|
253
|
+
with an ordered, dependency-resolved task list.
|
|
254
|
+
|
|
255
|
+
**Phase 2 — Weave**
|
|
256
|
+
|
|
257
|
+
For each task in the plan:
|
|
258
|
+
1. The Developer implements the code.
|
|
259
|
+
2. QA writes tests, runs the linter, runs the full test suite, and reports
|
|
260
|
+
`QA_PASS` or `QA_FAIL`.
|
|
261
|
+
3. On failure: the Orchestrator passes the exact failure details back to the
|
|
262
|
+
Developer for targeted fixes, then QA re-runs. This repeats until the
|
|
263
|
+
task passes (max 3 attempts, then skipped).
|
|
264
|
+
4. The Orchestrator marks the task `[x]` in `.opencode/devloom/plan.md`.
|
|
265
|
+
|
|
266
|
+
**Phase 3 — Finish & Deliver**
|
|
267
|
+
|
|
268
|
+
The Documenter updates `README.md` and any API docs.
|
|
269
|
+
The Orchestrator runs the final build + test gate.
|
|
270
|
+
When everything is green, you see:
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
DEVLOOM_DONE
|
|
274
|
+
|
|
275
|
+
Completed 8 tasks:
|
|
276
|
+
- Task 1: Database schema and migration
|
|
277
|
+
- Task 2: User model and repository layer
|
|
278
|
+
- Task 3: JWT token service
|
|
279
|
+
- Task 4: Auth middleware
|
|
280
|
+
- Task 5: User CRUD endpoints
|
|
281
|
+
- Task 6: Role-based access control
|
|
282
|
+
- Task 7: Unit and integration tests
|
|
283
|
+
- Task 8: API documentation
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
### Monitor progress mid-run
|
|
289
|
+
|
|
290
|
+
At any point, open a second OpenCode session and run:
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
/devloom-status
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Example output:
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
DevLoom Weaving Status
|
|
300
|
+
----------------------
|
|
301
|
+
Phase : Weaving (task 3 of 8)
|
|
302
|
+
Progress : 25% (2 / 8 tasks complete)
|
|
303
|
+
In progress: Task 3 — JWT token service
|
|
304
|
+
Errors : None
|
|
305
|
+
|
|
306
|
+
Completed
|
|
307
|
+
- Task 1: Database schema
|
|
308
|
+
- Task 2: User model
|
|
309
|
+
|
|
310
|
+
Pending
|
|
311
|
+
- Task 3: JWT service <- in progress
|
|
312
|
+
- Task 4: Auth middleware
|
|
313
|
+
- Task 5: User CRUD endpoints
|
|
314
|
+
...
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
You can also inspect the state files directly:
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
cat .opencode/devloom/plan.md # full task list with checkboxes
|
|
321
|
+
cat .opencode/devloom/requirements.md # generated requirements
|
|
322
|
+
cat .opencode/devloom/config.json # model assignments
|
|
323
|
+
cat .opencode/devloom/state.json # execution state
|
|
324
|
+
cat .opencode/devloom/errors.md # any tasks skipped due to repeated failure
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
### Resume an interrupted execution
|
|
330
|
+
|
|
331
|
+
If the weave stops (model timeout, network issue, manual interrupt), you
|
|
332
|
+
can resume from where it left off:
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
/devloom-resume
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
The orchestrator reads `.opencode/devloom/state.json`, skips completed phases,
|
|
339
|
+
and continues from the last pending task.
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
### Initialize a project
|
|
344
|
+
|
|
345
|
+
To set up the `.opencode/devloom/` directory structure and initial config
|
|
346
|
+
without starting a weave:
|
|
347
|
+
|
|
348
|
+
```
|
|
349
|
+
/devloom-init
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Skills System
|
|
355
|
+
|
|
356
|
+
Each agent loads domain-specific skills at session start. The `skill-discovery`
|
|
357
|
+
meta-skill scans the task prompt and auto-loads the right skill (FE, BE, QA,
|
|
358
|
+
security, docs, etc.).
|
|
359
|
+
|
|
360
|
+
```yaml
|
|
361
|
+
# Each agent declares its skills in YAML frontmatter:
|
|
362
|
+
skill:
|
|
363
|
+
- skill-discovery
|
|
364
|
+
- frontend-development
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
Skills are stored in `~/.config/opencode/skills/` following the
|
|
368
|
+
[agent-skills](https://github.com/addyosmani/agent-skills) convention:
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
skills/
|
|
372
|
+
├── meta/ skill-discovery
|
|
373
|
+
├── define/ requirements-analysis
|
|
374
|
+
├── plan/ architecture-planning
|
|
375
|
+
├── build/ frontend-development, backend-development, api-design,
|
|
376
|
+
│ incremental-development, test-driven-development
|
|
377
|
+
├── verify/ quality-assurance, debugging
|
|
378
|
+
├── review/ code-review, security-review, performance-review
|
|
379
|
+
└── ship/ documentation
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Troubleshooting
|
|
385
|
+
|
|
386
|
+
### Agents not found after install
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
ls ~/.config/opencode/agents/ | grep devloom # Linux
|
|
390
|
+
ls ~/Library/Application\ Support/opencode/agents/ | grep devloom # macOS
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
If the directory is empty, re-run the installer:
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
node $(npm root -g)/devloom/postinstall.mjs
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
### ProviderModelNotFoundError
|
|
400
|
+
|
|
401
|
+
An agent file has a model string without the `opencode/` prefix. DevLoom
|
|
402
|
+
auto-fixes this when loading `config.json`, but if you edit files manually
|
|
403
|
+
always use the full prefix.
|
|
404
|
+
|
|
405
|
+
### The weave stops before DEVLOOM_DONE
|
|
406
|
+
|
|
407
|
+
The model may have hit the `max_steps` limit (default: `200`). For large
|
|
408
|
+
projects, increase it in the orchestrator agent file:
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
nano ~/.config/opencode/agents/devloom-orchestrator.md
|
|
412
|
+
# Change: max_steps: 200 → max_steps: 500
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Tests are not detected
|
|
416
|
+
|
|
417
|
+
QA tries `npm test`, `python -m pytest`, and `go test ./...` in sequence.
|
|
418
|
+
If your project uses a different runner, include a note in your prompt:
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
/devloom Build a GraphQL API.
|
|
422
|
+
Note: this project uses bun test for testing and bun run build for builds.
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### A task keeps failing QA
|
|
426
|
+
|
|
427
|
+
The Orchestrator retries a failed task up to 3 times. On the third failure it
|
|
428
|
+
logs the task to `.opencode/devloom/errors.md` and moves on. To manually retry:
|
|
429
|
+
|
|
430
|
+
1. Open `.opencode/devloom/plan.md` and change `- [x]` back to `- [ ]`
|
|
431
|
+
2. Remove its entry from `.opencode/devloom/errors.md`
|
|
432
|
+
3. Run `/devloom-status` to confirm it is pending
|
|
433
|
+
4. Resume: `/devloom-resume`
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Uninstalling
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
npm uninstall -g devloom
|
|
441
|
+
|
|
442
|
+
# Remove global config files
|
|
443
|
+
rm ~/.config/opencode/agents/devloom-*.md
|
|
444
|
+
rm ~/.config/opencode/commands/devloom*.md
|
|
445
|
+
rm -rf ~/.config/opencode/skills/
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## Architecture Reference
|
|
451
|
+
|
|
452
|
+
```
|
|
453
|
+
devloom/
|
|
454
|
+
├── src/
|
|
455
|
+
│ ├── index.ts # Plugin entry point (exports DevLoomPlugin)
|
|
456
|
+
│ └── plugin.ts # Lifecycle hooks: event, tool.execute.before/after
|
|
457
|
+
├── agents/
|
|
458
|
+
│ ├── devloom-orchestrator.md # primary — loop controller
|
|
459
|
+
│ ├── devloom-analyst.md # subagent — requirements
|
|
460
|
+
│ ├── devloom-architect.md # subagent — design & task list
|
|
461
|
+
│ ├── devloom-developer.md # subagent — code implementation
|
|
462
|
+
│ ├── devloom-qa.md # subagent — tests, lint, verdict
|
|
463
|
+
│ └── devloom-documenter.md # subagent — docs update
|
|
464
|
+
├── commands/
|
|
465
|
+
│ ├── devloom.md # /devloom <prompt>
|
|
466
|
+
│ ├── devloom-status.md # /devloom-status
|
|
467
|
+
│ ├── devloom-resume.md # /devloom-resume
|
|
468
|
+
│ └── devloom-init.md # /devloom-init
|
|
469
|
+
├── skills/
|
|
470
|
+
│ ├── meta/ skill-discovery
|
|
471
|
+
│ ├── define/ requirements-analysis
|
|
472
|
+
│ ├── plan/ architecture-planning
|
|
473
|
+
│ ├── build/ frontend-development, backend-development, api-design,
|
|
474
|
+
│ │ incremental-development, test-driven-development
|
|
475
|
+
│ ├── verify/ quality-assurance, debugging
|
|
476
|
+
│ ├── review/ code-review, security-review, performance-review
|
|
477
|
+
│ └── ship/ documentation
|
|
478
|
+
├── postinstall.mjs # Copies agents + commands + skills to config dir
|
|
479
|
+
├── package.json
|
|
480
|
+
├── tsconfig.json
|
|
481
|
+
├── README.md
|
|
482
|
+
└── GUIDE.md # This file
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
*DevLoom — weave your ideas into working software.*
|
package/README.md
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# DevLoom
|
|
2
|
+
|
|
3
|
+
**Autonomous Development Weaver for OpenCode**
|
|
4
|
+
|
|
5
|
+
DevLoom combines *Developer* + *Loom* — the loom being the ancient machine that
|
|
6
|
+
weaves individual threads into finished fabric. DevLoom does the same for software:
|
|
7
|
+
it takes a single natural-language prompt and weaves together requirements,
|
|
8
|
+
architecture, code, tests, and documentation into a complete, working feature.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## How It Works
|
|
13
|
+
|
|
14
|
+
The **Orchestrator** interprets your prompt, delegates to five specialist
|
|
15
|
+
sub-agents, and loops until every task passes QA and the final build succeeds —
|
|
16
|
+
no human intervention required after the initial prompt.
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
/devloom "Build a REST API for user management with JWT auth"
|
|
20
|
+
│
|
|
21
|
+
▼
|
|
22
|
+
DEVLOOM ORCHESTRATOR
|
|
23
|
+
│
|
|
24
|
+
├── @devloom-analyst → .opencode/devloom/requirements.md
|
|
25
|
+
├── @devloom-architect → .opencode/devloom/plan.md
|
|
26
|
+
│
|
|
27
|
+
└── For each task in plan.md:
|
|
28
|
+
├── @devloom-developer (weaves the code)
|
|
29
|
+
├── @devloom-qa (inspects the weave)
|
|
30
|
+
│ └── QA_FAIL → developer re-weaves → QA re-inspects
|
|
31
|
+
└── marks task [x] on QA_PASS
|
|
32
|
+
│
|
|
33
|
+
├── @devloom-documenter (updates README + API docs)
|
|
34
|
+
└── Final quality gate (build + full test suite)
|
|
35
|
+
└── All green → DEVLOOM_DONE
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Agent Roster
|
|
39
|
+
|
|
40
|
+
| Agent | Mode | Role |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `devloom-orchestrator` | `primary` | Loop controller, phase manager, quality gate |
|
|
43
|
+
| `devloom-analyst` | `subagent` | Prompt → `.opencode/devloom/requirements.md` |
|
|
44
|
+
| `devloom-architect` | `subagent` | Requirements → `.opencode/devloom/plan.md` |
|
|
45
|
+
| `devloom-developer` | `subagent` | Task implementation |
|
|
46
|
+
| `devloom-qa` | `subagent` | Tests, lint, regression checks, verdict |
|
|
47
|
+
| `devloom-documenter` | `subagent` | README + API doc updates |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Installation
|
|
52
|
+
|
|
53
|
+
**From npm (recommended):**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm install -g devloom
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**From GitHub:**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm install -g https://github.com/nsrau/devloom.git
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**From source:**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/nsrau/devloom.git
|
|
69
|
+
cd devloom
|
|
70
|
+
npm install && npm run build && node postinstall.mjs
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
All methods run the post-install script that copies agents, commands, and skills
|
|
74
|
+
to your OpenCode global config directory.
|
|
75
|
+
|
|
76
|
+
**Per-project via `opencode.json`:**
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"$schema": "https://opencode.ai/config.json",
|
|
81
|
+
"plugin": ["devloom"]
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Usage
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
/devloom Build a GraphQL API with subscriptions and Redis caching
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Check progress mid-run:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
/devloom-status
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Resume an interrupted execution:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
/devloom-resume
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Initialize a project for DevLoom:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
/devloom-init
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Non-interactive / CI mode:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
opencode run "/devloom Add OpenTelemetry tracing to all HTTP handlers"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Model Configuration
|
|
120
|
+
|
|
121
|
+
By default all agents use **deepseek-v4-flash-free** (the fastest free model).
|
|
122
|
+
|
|
123
|
+
### Per-project override
|
|
124
|
+
|
|
125
|
+
Create `.opencode/devloom/config.json` in your project root. Every time you run
|
|
126
|
+
a DevLoom command, it reads this file and overrides the global defaults:
|
|
127
|
+
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"models": {
|
|
131
|
+
"orchestrator": "opencode/big-pickle",
|
|
132
|
+
"analyst": "opencode/deepseek-v4-flash-free",
|
|
133
|
+
"architect": "opencode/deepseek-v4-flash-free",
|
|
134
|
+
"developer": "opencode/deepseek-v4-flash-free",
|
|
135
|
+
"qa": "opencode/deepseek-v4-flash-free",
|
|
136
|
+
"documenter": "opencode/deepseek-v4-flash-free"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**All models MUST use the `opencode/` or `opencode-go/` prefix.** If you forget
|
|
142
|
+
the prefix, DevLoom adds it automatically and warns you.
|
|
143
|
+
|
|
144
|
+
### Interactive setup (first run)
|
|
145
|
+
|
|
146
|
+
If no `config.json` exists, Phase 0 detects available models and asks whether
|
|
147
|
+
to use **Free** (`opencode/`) or **Go** (`opencode-go/`) tier, then assigns
|
|
148
|
+
the best available model per agent role.
|
|
149
|
+
|
|
150
|
+
### Global override
|
|
151
|
+
|
|
152
|
+
Edit the agent files directly at `~/.config/opencode/agents/`:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
sed -i 's|^model:.*|model: opencode/deepseek-v4-flash-free|' \
|
|
156
|
+
~/.config/opencode/agents/devloom-*.md
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Skills
|
|
162
|
+
|
|
163
|
+
Each DevLoom agent loads domain-specific skills at startup that guide its workflow:
|
|
164
|
+
|
|
165
|
+
| Agent | Skills |
|
|
166
|
+
|---|---|
|
|
167
|
+
| **analyst** | `skill-discovery`, `requirements-analysis` |
|
|
168
|
+
| **architect** | `skill-discovery`, `architecture-planning`, `api-design` |
|
|
169
|
+
| **developer** | `skill-discovery`, `incremental-development`, `test-driven-development`, `frontend-development`, `backend-development`, `api-design` |
|
|
170
|
+
| **qa** | `skill-discovery`, `quality-assurance`, `code-review`, `security-review`, `performance-review`, `debugging` |
|
|
171
|
+
| **documenter** | `skill-discovery`, `documentation` |
|
|
172
|
+
| **orchestrator** | `skill-discovery` |
|
|
173
|
+
|
|
174
|
+
Skills auto-detect the task type (FE, BE, security, docs, etc.) and load the
|
|
175
|
+
right workflow. All skills are in `skills/` and are copied to
|
|
176
|
+
`~/.config/opencode/skills/` during install.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Persistent State
|
|
181
|
+
|
|
182
|
+
DevLoom uses `.opencode/devloom/` in your project root as shared state:
|
|
183
|
+
|
|
184
|
+
| File | Purpose |
|
|
185
|
+
|---|---|
|
|
186
|
+
| `requirements.md` | User story, functional requirements, acceptance criteria |
|
|
187
|
+
| `plan.md` | Ordered task checklist, updated as tasks complete |
|
|
188
|
+
| `config.json` | Model assignments per agent role (local override) |
|
|
189
|
+
| `state.json` | Execution state for resume support |
|
|
190
|
+
| `errors.md` | Tasks skipped after repeated failures |
|
|
191
|
+
|
|
192
|
+
All files are plain Markdown/JSON — inspect and edit them directly.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Troubleshooting
|
|
197
|
+
|
|
198
|
+
### Agents not found after install
|
|
199
|
+
```bash
|
|
200
|
+
ls ~/.config/opencode/agents/ | grep devloom
|
|
201
|
+
```
|
|
202
|
+
If empty, re-run: `node $(npm root -g)/devloom/postinstall.mjs`
|
|
203
|
+
|
|
204
|
+
### ProviderModelNotFoundError
|
|
205
|
+
An agent file is missing the `opencode/` prefix. DevLoom auto-fixes this when
|
|
206
|
+
loading config.json, but if you edit agent files manually, always use the full
|
|
207
|
+
prefix (e.g. `opencode/deepseek-v4-flash-free`, not `deepseek-v4-flash-free`).
|
|
208
|
+
|
|
209
|
+
### The weave stops before DEVLOOM_DONE
|
|
210
|
+
Increase `max_steps` in `~/.config/opencode/agents/devloom-orchestrator.md` (default 200).
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Demo
|
|
215
|
+
|
|
216
|
+
A working example of what DevLoom produces is available in the [`demo/`](demo/) folder. It was generated from the prompt:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
/devloom Build a very simple full-stack Task List web app.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
The app is a full-stack Task List with an Express + SQLite backend and vanilla JS frontend, including integration tests.
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
cd demo
|
|
226
|
+
npm install
|
|
227
|
+
npm start
|
|
228
|
+
# Open http://localhost:3000
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## License
|
|
234
|
+
|
|
235
|
+
MIT
|