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 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