devlyn-cli 1.5.4 → 1.7.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 +112 -200
- package/bin/devlyn.js +6 -10
- package/config/skills/devlyn:ideate/SKILL.md +344 -0
- package/config/skills/devlyn:ideate/references/templates/decision.md +48 -0
- package/config/skills/devlyn:ideate/references/templates/item-spec.md +86 -0
- package/config/skills/devlyn:ideate/references/templates/roadmap.md +50 -0
- package/config/skills/devlyn:ideate/references/templates/vision.md +44 -0
- package/package.json +14 -4
package/README.md
CHANGED
|
@@ -6,295 +6,207 @@
|
|
|
6
6
|
<img alt="DEVLYN" src="assets/logo.svg" width="540" />
|
|
7
7
|
</picture>
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### The AI Development Toolkit for Claude Code
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**Ideate. Resolve. Ship. — All from your terminal.**
|
|
12
12
|
|
|
13
13
|
[](https://www.npmjs.com/package/devlyn-cli)
|
|
14
|
+
[](https://www.npmjs.com/package/devlyn-cli)
|
|
14
15
|
[](https://opensource.org/licenses/MIT)
|
|
15
16
|
[](https://docs.anthropic.com/en/docs/claude-code)
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
If devlyn-cli saved you time, [give it a star](https://github.com/fysoul17/devlyn-cli) — it helps others find it too.
|
|
18
19
|
|
|
19
20
|
</div>
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
[Claude Code](https://docs.anthropic.com/en/docs/claude-code) is powerful out of the box — but teams need **consistent, repeatable workflows**. Without shared conventions, every developer prompts differently, reviews differently, and debugs differently.
|
|
26
|
-
|
|
27
|
-
devlyn-cli solves this with two complementary engineering approaches:
|
|
28
|
-
|
|
29
|
-
### Context Engineering
|
|
30
|
-
|
|
31
|
-
Structured prompts and role-based instructions that shape _what the AI knows and how it thinks_ for each task.
|
|
32
|
-
|
|
33
|
-
- **16 slash commands** for debugging, code review, UI design, documentation, and more
|
|
34
|
-
- **5 core skills** that activate automatically based on conversation context
|
|
35
|
-
- **Agent team workflows** that spawn specialized AI teammates with role-specific expertise
|
|
36
|
-
- **Product & feature spec templates** for structured planning
|
|
37
|
-
|
|
38
|
-
### Harness Engineering
|
|
39
|
-
|
|
40
|
-
Pipeline orchestration that controls _how agents execute_ — permissions, state management, multi-phase workflows, and cross-model evaluation.
|
|
41
|
-
|
|
42
|
-
- **`/devlyn:auto-resolve`** — 9-phase automated pipeline (build → browser validate → evaluate → fix loop → simplify → review → security → clean → docs)
|
|
43
|
-
- **`/devlyn:browser-validate`** — feature verification in a real browser with tiered fallback (Chrome MCP → Playwright → curl)
|
|
44
|
-
- **`bypassPermissions` mode** for autonomous subagent execution
|
|
45
|
-
- **File-based state machine** — agents communicate via `.devlyn/done-criteria.md`, `EVAL-FINDINGS.md`, and `BROWSER-RESULTS.md`
|
|
46
|
-
- **Git checkpoints** at each phase for rollback safety
|
|
47
|
-
- **Cross-model evaluation** via `--with-codex` flag (OpenAI Codex as independent evaluator)
|
|
48
|
-
|
|
49
|
-
**Zero dependencies. One command. Works with any project.**
|
|
50
|
-
|
|
51
|
-
## Get Started
|
|
24
|
+
## Install
|
|
52
25
|
|
|
53
26
|
```bash
|
|
54
27
|
npx devlyn-cli
|
|
55
28
|
```
|
|
56
29
|
|
|
57
|
-
The interactive installer
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# Non-interactive install (CI/CD friendly)
|
|
61
|
-
npx devlyn-cli -y
|
|
30
|
+
That's it. The interactive installer handles everything. Run it again anytime to update.
|
|
62
31
|
|
|
63
|
-
|
|
64
|
-
npx devlyn-cli@latest
|
|
32
|
+
---
|
|
65
33
|
|
|
66
|
-
|
|
67
|
-
npx devlyn-cli list
|
|
68
|
-
```
|
|
34
|
+
## How It Works — Two Commands, Full Cycle
|
|
69
35
|
|
|
70
|
-
|
|
36
|
+
devlyn-cli turns Claude Code into an autonomous development pipeline. The core loop is simple:
|
|
71
37
|
|
|
72
38
|
```
|
|
73
|
-
|
|
74
|
-
├── .claude/
|
|
75
|
-
│ ├── commands/ # 16 slash commands
|
|
76
|
-
│ ├── skills/ # 5 core skills + any optional addons
|
|
77
|
-
│ ├── templates/ # Product spec, feature spec, prompt templates
|
|
78
|
-
│ ├── commit-conventions.md # Commit message standards
|
|
79
|
-
│ └── settings.json # Agent teams enabled
|
|
80
|
-
└── CLAUDE.md # Project-level AI instructions
|
|
39
|
+
ideate → auto-resolve → ship → repeat
|
|
81
40
|
```
|
|
82
41
|
|
|
83
|
-
|
|
42
|
+
### Step 1 — Plan with `/devlyn:ideate`
|
|
84
43
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
### Debugging & Resolution
|
|
44
|
+
Turn a raw idea into structured, implementation-ready specs.
|
|
88
45
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
| `/devlyn:team-resolve` | Spawns a full agent team — root cause analyst, test engineer, security auditor — to investigate complex issues |
|
|
93
|
-
| `/devlyn:auto-resolve` | Fully automated pipeline for any task — bugs, features, refactors, chores. Build → browser validate → evaluate → fix loop → simplify → review → clean → docs. One command, zero human intervention. Supports `--with-codex` for cross-model evaluation via OpenAI Codex |
|
|
94
|
-
| `/devlyn:browser-validate` | Verify implemented features work in a real browser — starts dev server, tests the feature end-to-end (clicks, forms, verification), with tiered fallback (Chrome MCP → Playwright → curl) |
|
|
46
|
+
```
|
|
47
|
+
/devlyn:ideate "I want to build a habit tracking app with AI nudges"
|
|
48
|
+
```
|
|
95
49
|
|
|
96
|
-
|
|
50
|
+
This produces three documents through interactive brainstorming:
|
|
97
51
|
|
|
98
|
-
|
|
|
52
|
+
| Document | What It Contains |
|
|
99
53
|
|---|---|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
| `/devlyn:clean` | Detect and remove dead code, unused dependencies, complexity hotspots, and tech debt |
|
|
54
|
+
| `docs/VISION.md` | North star, principles, anti-goals |
|
|
55
|
+
| `docs/ROADMAP.md` | Phased roadmap with links to each spec |
|
|
56
|
+
| `docs/roadmap/phase-N/*.md` | Self-contained spec per feature — ready for auto-resolve |
|
|
104
57
|
|
|
105
|
-
|
|
58
|
+
Need to add features later? Run ideate again — it expands the existing roadmap.
|
|
106
59
|
|
|
107
|
-
|
|
108
|
-
|---|---|
|
|
109
|
-
| `/devlyn:design-ui` | Generate 5 radically distinct UI style explorations from a spec or reference image |
|
|
110
|
-
| `/devlyn:team-design-ui` | Spawns a design team — creative director, product designer, visual designer, interaction designer, accessibility designer |
|
|
111
|
-
| `/devlyn:design-system` | Extract design system tokens from a chosen style for exact reproduction |
|
|
112
|
-
| `/devlyn:implement-ui` | Team-based UI build — component architect, UX engineer, accessibility engineer, responsive engineer, visual QA |
|
|
60
|
+
### Step 2 — Build with `/devlyn:auto-resolve`
|
|
113
61
|
|
|
114
|
-
|
|
62
|
+
Point it at a spec (or just describe what you want) and walk away.
|
|
115
63
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
| `/devlyn:feature-spec` | Transform product specs into implementable feature specifications |
|
|
120
|
-
| `/devlyn:discover-product` | Scan codebase to generate feature-oriented product documentation |
|
|
121
|
-
| `/devlyn:recommend-features` | Prioritize top 5 features to build next based on value and readiness |
|
|
64
|
+
```
|
|
65
|
+
/devlyn:auto-resolve "Implement per spec at docs/roadmap/phase-1/1.1-user-auth.md"
|
|
66
|
+
```
|
|
122
67
|
|
|
123
|
-
|
|
68
|
+
It runs a **9-phase pipeline** autonomously:
|
|
124
69
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
70
|
+
```
|
|
71
|
+
Build → Browser Test → Evaluate → Fix Loop → Simplify → Review → Security → Clean → Docs
|
|
72
|
+
```
|
|
128
73
|
|
|
129
|
-
|
|
74
|
+
- Each phase runs as a separate agent with fresh context
|
|
75
|
+
- Git checkpoints at every phase for safe rollback
|
|
76
|
+
- Browser validation tests your feature end-to-end (clicks, forms, verification)
|
|
77
|
+
- Evaluation grades against done-criteria — if it fails, auto-fix and re-evaluate
|
|
130
78
|
|
|
131
|
-
|
|
79
|
+
Skip phases you don't need: `--skip-browser`, `--skip-review`, `--skip-clean`, `--skip-docs`, `--max-rounds 6`
|
|
132
80
|
|
|
133
|
-
|
|
134
|
-
|---|---|---|
|
|
135
|
-
| `root-cause-analysis` | Debugging conversations | Enforces 5 Whys methodology, evidence standards, and no-workaround rules |
|
|
136
|
-
| `code-review-standards` | Code review tasks | Applies severity framework, quality bar, and approval criteria |
|
|
137
|
-
| `ui-implementation-standards` | UI/frontend work | Ensures design fidelity, accessibility, animation quality, and responsive standards |
|
|
138
|
-
| `code-health-standards` | Code maintenance | Enforces dead code prevention, dependency discipline, and complexity thresholds |
|
|
139
|
-
| `workflow-routing` | Any task | SDLC phase map — guides you to the right command for your current task |
|
|
81
|
+
### Bonus — Dual-Model Mode with Codex
|
|
140
82
|
|
|
141
|
-
|
|
83
|
+
Install the Codex MCP server during setup, then:
|
|
142
84
|
|
|
143
|
-
|
|
85
|
+
```
|
|
86
|
+
/devlyn:auto-resolve "fix the auth bug" --with-codex
|
|
87
|
+
```
|
|
144
88
|
|
|
145
|
-
|
|
89
|
+
Claude builds, **OpenAI Codex evaluates independently** — two models collaborating, catching what a single model misses.
|
|
146
90
|
|
|
147
|
-
|
|
91
|
+
> `--with-codex evaluate` (default) · `--with-codex review` · `--with-codex both`
|
|
148
92
|
|
|
149
|
-
|
|
150
|
-
/devlyn:auto-resolve fix the auth bug where users see blank screen on 401
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
| Phase | What Happens |
|
|
154
|
-
|---|---|
|
|
155
|
-
| **Build** | `team-resolve` investigates and implements, writes testable done criteria |
|
|
156
|
-
| **Browser Validate** | For web projects: starts dev server, tests the implemented feature end-to-end in a real browser, fixes issues found |
|
|
157
|
-
| **Evaluate** | Independent evaluator grades against done criteria with calibrated skepticism |
|
|
158
|
-
| **Fix Loop** | If evaluation fails, fixes findings and re-evaluates (up to N rounds) |
|
|
159
|
-
| **Simplify** | Quick cleanup pass for reuse and efficiency |
|
|
160
|
-
| **Review** | Multi-perspective team review |
|
|
161
|
-
| **Security** | Dedicated OWASP-focused audit (auto-detects when changes touch auth, secrets, APIs) |
|
|
162
|
-
| **Clean** | Remove dead code and unused dependencies |
|
|
163
|
-
| **Docs** | Sync documentation with changes |
|
|
93
|
+
---
|
|
164
94
|
|
|
165
|
-
|
|
95
|
+
## Manual Commands
|
|
166
96
|
|
|
167
|
-
|
|
97
|
+
When you want step-by-step control instead of the full pipeline.
|
|
168
98
|
|
|
169
|
-
|
|
99
|
+
### Debugging & Resolution
|
|
170
100
|
|
|
171
|
-
|
|
|
172
|
-
|
|
173
|
-
|
|
|
174
|
-
|
|
|
175
|
-
|
|
|
176
|
-
| 3. **Simplify** | `/simplify` | Quick cleanup pass for reuse, quality, and efficiency *(built-in Claude Code command)* |
|
|
177
|
-
| 4. **Review** | `/devlyn:review` or `/devlyn:team-review` | Audit the changes — solo for small PRs (< 10 files), team for large PRs (10+ files) |
|
|
178
|
-
| 5. **Clean** | `/devlyn:clean` | Remove dead code, unused dependencies, and complexity hotspots |
|
|
179
|
-
| 6. **Document** | `/devlyn:update-docs` | Sync project documentation with the current codebase |
|
|
101
|
+
| Command | Use When |
|
|
102
|
+
|---|---|
|
|
103
|
+
| `/devlyn:resolve` | Simple bugs (1-2 files) |
|
|
104
|
+
| `/devlyn:team-resolve` | Complex issues — spawns root-cause analyst, test engineer, security auditor |
|
|
105
|
+
| `/devlyn:browser-validate` | Test a web feature in a real browser (Chrome MCP → Playwright → curl fallback) |
|
|
180
106
|
|
|
181
|
-
|
|
107
|
+
### Code Review & Quality
|
|
182
108
|
|
|
183
|
-
|
|
109
|
+
| Command | Use When |
|
|
110
|
+
|---|---|
|
|
111
|
+
| `/devlyn:review` | Solo review — security, quality, best practices checklist |
|
|
112
|
+
| `/devlyn:team-review` | Multi-reviewer team — security, testing, performance, product perspectives |
|
|
113
|
+
| `/devlyn:evaluate` | Grade work against done-criteria with calibrated skepticism |
|
|
114
|
+
| `/devlyn:clean` | Remove dead code, unused deps, complexity hotspots |
|
|
184
115
|
|
|
185
116
|
### UI Design Pipeline
|
|
186
117
|
|
|
187
|
-
A full explore → extract → build pipeline:
|
|
188
|
-
|
|
189
118
|
| Step | Command | What It Does |
|
|
190
119
|
|---|---|---|
|
|
191
|
-
| 1
|
|
192
|
-
| 2
|
|
193
|
-
| 3
|
|
194
|
-
|
|
195
|
-
> For design exploration with a full creative team, use `/devlyn:team-design-ui` instead of step 1.
|
|
120
|
+
| 1 | `/devlyn:design-ui` | Generate 5 distinct style explorations |
|
|
121
|
+
| 2 | `/devlyn:design-system` | Extract design tokens from chosen style |
|
|
122
|
+
| 3 | `/devlyn:implement-ui` | Team builds it — component architect, UX, accessibility, responsive, visual QA |
|
|
196
123
|
|
|
197
|
-
|
|
124
|
+
> Use `/devlyn:team-design-ui` for step 1 with a full creative team.
|
|
198
125
|
|
|
199
|
-
###
|
|
200
|
-
|
|
201
|
-
These commands work independently, outside of the main workflow:
|
|
126
|
+
### Planning & Docs
|
|
202
127
|
|
|
203
128
|
| Command | What It Does |
|
|
204
129
|
|---|---|
|
|
205
|
-
| `/devlyn:
|
|
206
|
-
| `/devlyn:
|
|
207
|
-
| `/devlyn:product
|
|
208
|
-
| `/devlyn:feature-spec` | Transform a product spec into an implementable feature spec |
|
|
209
|
-
| `/devlyn:discover-product` | Scan codebase to auto-generate product documentation |
|
|
130
|
+
| `/devlyn:product-spec` | Generate or update product specs |
|
|
131
|
+
| `/devlyn:feature-spec` | Turn product spec → implementable feature spec |
|
|
132
|
+
| `/devlyn:discover-product` | Scan codebase → auto-generate product docs |
|
|
210
133
|
| `/devlyn:recommend-features` | Prioritize top 5 features to build next |
|
|
134
|
+
| `/devlyn:update-docs` | Sync all docs with current codebase |
|
|
135
|
+
|
|
136
|
+
---
|
|
211
137
|
|
|
212
|
-
##
|
|
138
|
+
## Auto-Activated Skills
|
|
213
139
|
|
|
214
|
-
|
|
140
|
+
These activate automatically — no commands needed. They shape how Claude thinks during relevant tasks.
|
|
215
141
|
|
|
216
|
-
|
|
142
|
+
| Skill | Activates During |
|
|
143
|
+
|---|---|
|
|
144
|
+
| `root-cause-analysis` | Debugging — enforces 5 Whys, evidence standards |
|
|
145
|
+
| `code-review-standards` | Reviews — severity framework, approval criteria |
|
|
146
|
+
| `ui-implementation-standards` | UI work — design fidelity, accessibility, responsiveness |
|
|
147
|
+
| `code-health-standards` | Maintenance — dead code prevention, complexity thresholds |
|
|
148
|
+
| `workflow-routing` | Any task — guides you to the right command |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Optional Add-ons
|
|
217
153
|
|
|
218
|
-
|
|
154
|
+
Selected during install. Run `npx devlyn-cli` again to add more.
|
|
155
|
+
|
|
156
|
+
<details>
|
|
157
|
+
<summary><strong>Skills</strong> — copied to <code>.claude/skills/</code></summary>
|
|
219
158
|
|
|
220
159
|
| Skill | Description |
|
|
221
160
|
|---|---|
|
|
222
|
-
| `cloudflare-nextjs-setup` | Cloudflare Workers + Next.js
|
|
223
|
-
| `generate-skill` | Create
|
|
224
|
-
| `prompt-engineering` | Claude 4 prompt optimization
|
|
225
|
-
| `better-auth-setup` |
|
|
226
|
-
| `pyx-scan` | Check
|
|
227
|
-
| `dokkit` | Document template filling for DOCX/HWPX
|
|
228
|
-
| `devlyn:pencil-pull` | Pull Pencil designs into code
|
|
229
|
-
| `devlyn:pencil-push` | Push codebase UI to Pencil canvas
|
|
161
|
+
| `cloudflare-nextjs-setup` | Cloudflare Workers + Next.js with OpenNext |
|
|
162
|
+
| `generate-skill` | Create Claude Code skills following Anthropic best practices |
|
|
163
|
+
| `prompt-engineering` | Claude 4 prompt optimization |
|
|
164
|
+
| `better-auth-setup` | Better Auth + Hono + Drizzle + PostgreSQL |
|
|
165
|
+
| `pyx-scan` | Check if an AI agent skill is safe before installing |
|
|
166
|
+
| `dokkit` | Document template filling for DOCX/HWPX |
|
|
167
|
+
| `devlyn:pencil-pull` | Pull Pencil designs into code |
|
|
168
|
+
| `devlyn:pencil-push` | Push codebase UI to Pencil canvas |
|
|
230
169
|
|
|
231
|
-
|
|
170
|
+
</details>
|
|
232
171
|
|
|
233
|
-
|
|
172
|
+
<details>
|
|
173
|
+
<summary><strong>Community Packs</strong> — installed via <a href="https://github.com/anthropics/skills">skills CLI</a></summary>
|
|
234
174
|
|
|
235
175
|
| Pack | Description |
|
|
236
176
|
|---|---|
|
|
237
177
|
| `vercel-labs/agent-skills` | React, Next.js, React Native best practices |
|
|
238
178
|
| `supabase/agent-skills` | Supabase integration patterns |
|
|
239
179
|
| `coreyhaines31/marketingskills` | Marketing automation and content skills |
|
|
240
|
-
| `anthropics/skills` | Official Anthropic skill-creator with eval framework
|
|
241
|
-
| `Leonxlnx/taste-skill` | Premium frontend design skills
|
|
180
|
+
| `anthropics/skills` | Official Anthropic skill-creator with eval framework |
|
|
181
|
+
| `Leonxlnx/taste-skill` | Premium frontend design skills |
|
|
242
182
|
|
|
243
|
-
|
|
183
|
+
</details>
|
|
244
184
|
|
|
245
|
-
|
|
185
|
+
<details>
|
|
186
|
+
<summary><strong>MCP Servers</strong> — installed via <code>claude mcp add</code></summary>
|
|
246
187
|
|
|
247
188
|
| Server | Description |
|
|
248
189
|
|---|---|
|
|
249
|
-
| `codex-cli` | Codex MCP server
|
|
250
|
-
| `playwright` | Playwright MCP
|
|
251
|
-
|
|
252
|
-
> **Want to add a pack?** Open a PR adding your pack to the `OPTIONAL_ADDONS` array in [`bin/devlyn.js`](bin/devlyn.js).
|
|
253
|
-
|
|
254
|
-
## How It Works
|
|
255
|
-
|
|
256
|
-
1. **Run `npx devlyn-cli`** in your project root
|
|
257
|
-
2. The CLI copies config files into `.claude/` and `CLAUDE.md` to the project root
|
|
258
|
-
3. Claude Code automatically reads `.claude/commands/` and `.claude/skills/` on startup
|
|
259
|
-
4. Invoke commands like `/devlyn:resolve` in your Claude Code session — skills activate on their own
|
|
190
|
+
| `codex-cli` | Codex MCP server — enables `--with-codex` dual-model mode |
|
|
191
|
+
| `playwright` | Playwright MCP — powers browser-validate Tier 2 |
|
|
260
192
|
|
|
261
|
-
|
|
193
|
+
</details>
|
|
262
194
|
|
|
263
|
-
|
|
195
|
+
> **Want to add a pack?** Open a PR adding it to the `OPTIONAL_ADDONS` array in [`bin/devlyn.js`](bin/devlyn.js).
|
|
264
196
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
1. **During install**, select the `generate-skill` optional skill — or —
|
|
268
|
-
2. **Install the official Anthropic skill-creator** pack:
|
|
269
|
-
```bash
|
|
270
|
-
npx skills add anthropics/skills
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Both provide structured templates, best practices, and eval frameworks for writing high-quality Claude Code skills.
|
|
274
|
-
|
|
275
|
-
See the [Claude Code skills documentation](https://docs.anthropic.com/en/docs/claude-code/skills) for the full specification.
|
|
197
|
+
---
|
|
276
198
|
|
|
277
199
|
## Requirements
|
|
278
200
|
|
|
279
201
|
- **Node.js 18+**
|
|
280
|
-
- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)**
|
|
202
|
+
- **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** installed and configured
|
|
281
203
|
|
|
282
204
|
## Contributing
|
|
283
205
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
- **Add
|
|
287
|
-
- **
|
|
288
|
-
- **Add an optional skill** — Add to `optional-skills/` and the `OPTIONAL_ADDONS` array
|
|
289
|
-
- **Suggest a community pack** — Open a PR to add it to the pack list
|
|
290
|
-
|
|
291
|
-
### Development
|
|
292
|
-
|
|
293
|
-
1. Fork the repository
|
|
294
|
-
2. Create your branch (`git checkout -b feat/my-feature`)
|
|
295
|
-
3. Commit your changes following the included [commit conventions](config/commit-conventions.md)
|
|
296
|
-
4. Push to the branch (`git push origin feat/my-feature`)
|
|
297
|
-
5. Open a Pull Request
|
|
206
|
+
- **Add a command** — `.md` file in `config/commands/`
|
|
207
|
+
- **Add a skill** — directory in `config/skills/` with `SKILL.md`
|
|
208
|
+
- **Add optional skill** — add to `optional-skills/` and `OPTIONAL_ADDONS`
|
|
209
|
+
- **Suggest a pack** — PR to the pack list
|
|
298
210
|
|
|
299
211
|
## Star History
|
|
300
212
|
|
package/bin/devlyn.js
CHANGED
|
@@ -594,15 +594,9 @@ async function init(skipPrompts = false) {
|
|
|
594
594
|
|
|
595
595
|
// Skip prompts if -y flag or non-interactive
|
|
596
596
|
if (skipPrompts || !process.stdin.isTTY) {
|
|
597
|
-
log('\n💡 Add optional addons later:', 'dim');
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
log(` npx devlyn-cli (select "${addon.name}" during install)`, 'dim');
|
|
601
|
-
} else {
|
|
602
|
-
log(` npx skills add ${addon.name}`, 'dim');
|
|
603
|
-
}
|
|
604
|
-
});
|
|
605
|
-
log('');
|
|
597
|
+
log('\n💡 Add optional addons later: run `npx devlyn-cli` without -y', 'dim');
|
|
598
|
+
log(`\n${COLORS.dim} Enjoying devlyn? Star it on GitHub — it helps others find it:${COLORS.reset}`);
|
|
599
|
+
log(` ${COLORS.purple}→ https://github.com/fysoul17/devlyn-cli${COLORS.reset}\n`);
|
|
606
600
|
return;
|
|
607
601
|
}
|
|
608
602
|
|
|
@@ -621,7 +615,9 @@ async function init(skipPrompts = false) {
|
|
|
621
615
|
}
|
|
622
616
|
|
|
623
617
|
log('\n✨ All done!', 'green');
|
|
624
|
-
log(' Run `npx devlyn-cli` again to update
|
|
618
|
+
log(' Run `npx devlyn-cli` again to update', 'dim');
|
|
619
|
+
log(`\n${COLORS.dim} Enjoying devlyn? Star it on GitHub — it helps others find it:${COLORS.reset}`);
|
|
620
|
+
log(` ${COLORS.purple}→ https://github.com/fysoul17/devlyn-cli${COLORS.reset}\n`);
|
|
625
621
|
}
|
|
626
622
|
|
|
627
623
|
function showHelp() {
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devlyn:ideate
|
|
3
|
+
description: Transform unstructured ideas into implementation-ready planning documents through structured brainstorming, research, and multi-perspective synthesis. Produces a three-layer document architecture (Vision, Roadmap index, auto-resolve-ready specs) that eliminates context pollution in the implementation pipeline. Use when the user wants to brainstorm, plan a new project or feature set, explore possibilities, create a vision and roadmap, or structure scattered ideas into an actionable plan. Triggers on "let's brainstorm", "let's plan", "ideate", "I have an idea for", "help me think through", "let's explore", new project planning, feature discovery, roadmap creation, or when the user is throwing ideas that need structuring. Also triggers when the user shares links or resources for a new initiative and needs them synthesized into a plan, or wants to update an existing roadmap with new ideas.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ideation to Implementation Bridge
|
|
7
|
+
|
|
8
|
+
Turn unstructured thinking into auto-resolve-ready documents. The output is a precision-engineered context pipeline — each document layer serves a specific role so that implementation agents receive exactly the context they need, nothing more.
|
|
9
|
+
|
|
10
|
+
<why_this_matters>
|
|
11
|
+
When ideas flow directly from conversation to `/devlyn:auto-resolve`, context degrades at each handoff:
|
|
12
|
+
- Abstract vision statements cause over-engineering (the agent optimizes for principles instead of deliverables)
|
|
13
|
+
- Full roadmaps create attention noise (49 irrelevant items dilute focus on item #3)
|
|
14
|
+
- Done criteria generated from vague prompts miss the user's actual intent
|
|
15
|
+
|
|
16
|
+
This skill solves the context engineering problem by producing **self-contained specs** — each carries just enough context for auto-resolve to work autonomously.
|
|
17
|
+
</why_this_matters>
|
|
18
|
+
|
|
19
|
+
## Output Architecture
|
|
20
|
+
|
|
21
|
+
The skill produces a three-layer progressive disclosure structure:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
docs/
|
|
25
|
+
├── VISION.md # Layer 1: Strategic WHY (~50-100 lines)
|
|
26
|
+
│ # Orientation only. auto-resolve never reads this.
|
|
27
|
+
│
|
|
28
|
+
├── ROADMAP.md # Layer 2: Tactical index (what, in what order)
|
|
29
|
+
│ # Thin table linking to detail specs. auto-resolve never reads this.
|
|
30
|
+
│
|
|
31
|
+
└── roadmap/ # Layer 3: Auto-resolve-ready specs
|
|
32
|
+
├── phase-1/
|
|
33
|
+
│ ├── _overview.md # Phase-level context and goals
|
|
34
|
+
│ ├── 1.1-xxx.md # Self-contained spec → direct auto-resolve input
|
|
35
|
+
│ └── 1.2-yyy.md
|
|
36
|
+
├── phase-2/
|
|
37
|
+
│ └── ...
|
|
38
|
+
├── decisions/ # Architecture decision records (why we chose X over Y)
|
|
39
|
+
│ └── 001-xxx.md
|
|
40
|
+
└── backlog/ # Ideas acknowledged but not yet phased
|
|
41
|
+
└── ...
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Core principle**: auto-resolve reads ONE spec file. That file is self-contained. Vision and Roadmap exist for humans and for this ideation skill — not for the implementation pipeline.
|
|
45
|
+
|
|
46
|
+
Read `references/templates/` for the exact format of each document type when generating output.
|
|
47
|
+
|
|
48
|
+
## Conversation Protocol
|
|
49
|
+
|
|
50
|
+
Ideation is a dialogue, not a monologue. The user will come in with scattered ideas, incomplete thoughts, and implicit assumptions. Your job is to draw out accurate, complete information through back-and-forth conversation — not to fill gaps with guesses.
|
|
51
|
+
|
|
52
|
+
<conversation_rhythm>
|
|
53
|
+
**Ask, don't assume.** When information is missing or ambiguous, ask targeted questions. Generating a spec with wrong assumptions is worse than asking one more question. The user wants accuracy (documents they can trust and hand to auto-resolve), not speed.
|
|
54
|
+
|
|
55
|
+
**2-3 questions at a time, max.** Don't dump a 10-item questionnaire. Ask the most important unknowns, get answers, then ask the next batch based on what you learned. Each exchange should build on the last.
|
|
56
|
+
|
|
57
|
+
**Summarize after each exchange.** After the user shares information, reflect it back concisely: "So what I'm hearing is [X]. Is that right, or am I missing something?" This catches misunderstandings early — much cheaper than rewriting specs later.
|
|
58
|
+
|
|
59
|
+
**Confirm before phase transitions.** Before moving from FRAME → EXPLORE, or EXPLORE → CONVERGE, summarize the current state and ask if the user is ready to move on. Never silently transition.
|
|
60
|
+
|
|
61
|
+
**Capture energy, then clarify.** When the user is excited and throwing out rapid-fire ideas, don't interrupt the flow with structural questions. Let them finish, capture everything, then come back with targeted clarifications: "Love these ideas. A few things I want to make sure I get right: [questions]."
|
|
62
|
+
|
|
63
|
+
**Track what's confirmed vs. assumed.** Mentally separate facts the user stated from inferences you made. When generating documents, only write confirmed facts. Flag assumptions explicitly: "I'm assuming [X] based on [Y] — correct?"
|
|
64
|
+
</conversation_rhythm>
|
|
65
|
+
|
|
66
|
+
## Detecting the Mode
|
|
67
|
+
|
|
68
|
+
Before starting, identify what the user needs:
|
|
69
|
+
|
|
70
|
+
| Signal | Mode | Approach |
|
|
71
|
+
|--------|------|----------|
|
|
72
|
+
| No existing docs, new project or idea | **Greenfield** | Full flow: Frame → Explore → Converge → Document |
|
|
73
|
+
| Existing docs, user adds new ideas | **Expand** | Lighter Frame, focused Explore on new area, merge into existing phases |
|
|
74
|
+
| One specific feature needs deep thought | **Deep-dive** | Intensive Explore on one topic, output 1-3 specs |
|
|
75
|
+
| User shares links/resources to process | **Research-first** | Lead with Explore (research synthesis), then standard flow |
|
|
76
|
+
| Existing roadmap, user wants to reprioritize | **Replan** | Read existing docs, focus on Converge, update documents |
|
|
77
|
+
|
|
78
|
+
Announce the detected mode and confirm before proceeding.
|
|
79
|
+
|
|
80
|
+
### Expand Mode Detail
|
|
81
|
+
|
|
82
|
+
Expand is the most common mode after initial setup — the user already has Vision + Roadmap and wants to add new capabilities. This mode requires careful integration with existing documents.
|
|
83
|
+
|
|
84
|
+
**On entry:**
|
|
85
|
+
1. Read `docs/VISION.md`, `docs/ROADMAP.md`, and existing phase `_overview.md` files to understand the established context
|
|
86
|
+
2. Scan existing item specs to understand what's built and what's planned
|
|
87
|
+
3. Summarize your understanding: "Here's what exists: [phases, item count, current status]. You want to add [new area]. Does this expand an existing phase or warrant a new one?"
|
|
88
|
+
|
|
89
|
+
**During ideation:**
|
|
90
|
+
- FRAME is lighter — the vision already exists, focus on framing the NEW area only
|
|
91
|
+
- EXPLORE focuses specifically on the new capability and how it integrates with existing features
|
|
92
|
+
- CONVERGE must consider dependencies on existing items, not just new ones
|
|
93
|
+
|
|
94
|
+
**During document generation:**
|
|
95
|
+
- Don't overwrite existing VISION.md unless the user explicitly wants to update it
|
|
96
|
+
- Continue numbering from existing IDs (if Phase 2 exists with 2.1-2.4, new items start at 2.5 or create Phase 3)
|
|
97
|
+
- Add new rows to ROADMAP.md, don't regenerate the whole table
|
|
98
|
+
- New item specs can reference existing items in their Dependencies section
|
|
99
|
+
- If new items change the meaning of existing items, flag this: "Adding [X] may affect the scope of existing item [Y]. Should we update [Y]'s spec?"
|
|
100
|
+
|
|
101
|
+
In Replan mode, also read existing docs first, then focus on the Converge phase to reprioritize.
|
|
102
|
+
|
|
103
|
+
### Context Archiving
|
|
104
|
+
|
|
105
|
+
As projects progress, completed work accumulates and dilutes the active roadmap. Archive stale context at these trigger points:
|
|
106
|
+
|
|
107
|
+
**When an entire phase is complete:**
|
|
108
|
+
1. Move the phase's table from the active section to a `## Completed` section at the bottom of ROADMAP.md
|
|
109
|
+
2. Keep it collapsed — just phase name, completion date, and item count
|
|
110
|
+
3. Item spec files stay in place (they're self-contained and may be referenced by dependencies)
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
## Completed
|
|
114
|
+
<details>
|
|
115
|
+
<summary>Phase 1: Foundation (completed 2026-04-15, 4 items)</summary>
|
|
116
|
+
|
|
117
|
+
| # | Feature | Completed |
|
|
118
|
+
|---|---------|-----------|
|
|
119
|
+
| 1.1 | Auth & Onboarding | 2026-02-10 |
|
|
120
|
+
| 1.2 | Order Management | 2026-03-05 |
|
|
121
|
+
| 1.3 | Inventory Tracking | 2026-03-28 |
|
|
122
|
+
| 1.4 | Customer Directory | 2026-04-15 |
|
|
123
|
+
</details>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**When entering Expand or Replan mode:**
|
|
127
|
+
1. Scan ROADMAP.md for items marked Done — if all items in a phase are Done, archive that phase
|
|
128
|
+
2. Check Backlog for items whose "Revisit" date has passed — surface them as candidates for the new phase
|
|
129
|
+
3. Review decisions — flag any marked `accepted` that may need revisiting given new context
|
|
130
|
+
|
|
131
|
+
**When a decision becomes outdated:**
|
|
132
|
+
- Don't delete it — mark status as `superseded` and add a note pointing to the replacement decision
|
|
133
|
+
- This preserves the reasoning history for future reference
|
|
134
|
+
|
|
135
|
+
The goal: ROADMAP.md's active section should only show work that's planned, in-progress, or blocked. Everything else moves to Completed or gets re-evaluated.
|
|
136
|
+
|
|
137
|
+
## Phase 1: FRAME
|
|
138
|
+
|
|
139
|
+
<phase_goal>Establish problem space boundaries before exploring solutions.</phase_goal>
|
|
140
|
+
|
|
141
|
+
The biggest risk in ideation is premature convergence — jumping to solutions before understanding the problem. This phase prevents that.
|
|
142
|
+
|
|
143
|
+
Establish through conversation:
|
|
144
|
+
1. **Problem statement**: What problem or opportunity? For whom? Why now?
|
|
145
|
+
2. **Constraints**: What can't change? (tech stack, timeline, existing commitments)
|
|
146
|
+
3. **Success criteria**: How will we know this worked? (outcomes, not outputs)
|
|
147
|
+
4. **Anti-goals**: What are we explicitly NOT trying to do?
|
|
148
|
+
|
|
149
|
+
Adapt to what the user has already shared — if they came in with a clear vision, this might be a quick confirmation. If the idea is fuzzy, spend more time here. Ask conversationally, not as a rigid questionnaire.
|
|
150
|
+
|
|
151
|
+
Don't write documents yet. The output of this phase is a shared mental model between you and the user.
|
|
152
|
+
|
|
153
|
+
## Phase 2: EXPLORE
|
|
154
|
+
|
|
155
|
+
<phase_goal>Systematically expand the possibility space before narrowing it.</phase_goal>
|
|
156
|
+
|
|
157
|
+
This is the creative core — the phase that should take the most conversational turns. The user chose to ideate with AI because they want perspectives, research, and creative expansion they wouldn't get alone.
|
|
158
|
+
|
|
159
|
+
<research_protocol>
|
|
160
|
+
When relevant, actively research before and during brainstorming:
|
|
161
|
+
- **Existing solutions**: What's already out there? (web search, documentation)
|
|
162
|
+
- **Technical feasibility**: Can this be built within the constraints? Where are the hard parts?
|
|
163
|
+
- **Patterns and prior art**: How have similar problems been solved?
|
|
164
|
+
- **Market/user context**: Who else needs this? What do they currently use?
|
|
165
|
+
|
|
166
|
+
Not every ideation needs all of these — a personal side project doesn't need market research. Judge what's relevant and use subagents for parallel research when multiple topics need investigation.
|
|
167
|
+
</research_protocol>
|
|
168
|
+
|
|
169
|
+
<multi_perspective>
|
|
170
|
+
For each major idea, consider it from at least three angles:
|
|
171
|
+
- **User**: Is this actually useful? Does it solve a real pain?
|
|
172
|
+
- **Technical**: Is this buildable? Where are the complexity hotspots?
|
|
173
|
+
- **Strategic**: Does this align with the vision? Does it create leverage for future work?
|
|
174
|
+
|
|
175
|
+
Add perspectives as relevant:
|
|
176
|
+
- **Risk**: What could go wrong? What are the dependencies?
|
|
177
|
+
- **Business**: Does this create value? Is the effort justified?
|
|
178
|
+
- **Accessibility**: Is this inclusive? Who gets left out?
|
|
179
|
+
</multi_perspective>
|
|
180
|
+
|
|
181
|
+
<creative_expansion>
|
|
182
|
+
When the conversation needs energy or the user feels stuck:
|
|
183
|
+
- **"What if..."** — Remove a constraint and see what emerges
|
|
184
|
+
- **Analogy transfer** — "How does [adjacent domain] solve this?"
|
|
185
|
+
- **Inversion** — "What's the worst version? Now invert it."
|
|
186
|
+
- **10x thinking** — "If this needed 10x users, what changes?"
|
|
187
|
+
- **Minimum viable magic** — "What's the smallest thing that would feel magical?"
|
|
188
|
+
|
|
189
|
+
Use these naturally in conversation, not as a mechanical checklist.
|
|
190
|
+
</creative_expansion>
|
|
191
|
+
|
|
192
|
+
As ideas accumulate, periodically synthesize:
|
|
193
|
+
```
|
|
194
|
+
Here's where we are:
|
|
195
|
+
- Core ideas: [list]
|
|
196
|
+
- Open questions: [list]
|
|
197
|
+
- Tensions to resolve: [list]
|
|
198
|
+
- Research still needed: [list]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
This prevents circular conversations and gives the user a clear sense of progress.
|
|
202
|
+
|
|
203
|
+
## Phase 3: CONVERGE
|
|
204
|
+
|
|
205
|
+
<phase_goal>Transform exploration into decisions.</phase_goal>
|
|
206
|
+
|
|
207
|
+
When the user signals readiness or exploration winds down naturally, shift to convergence.
|
|
208
|
+
|
|
209
|
+
### Theme Clustering
|
|
210
|
+
Group related ideas into coherent themes:
|
|
211
|
+
```
|
|
212
|
+
Theme A: [name]
|
|
213
|
+
- Ideas: 1, 3, 7
|
|
214
|
+
- Value: [why this matters]
|
|
215
|
+
- Risk: [what could go wrong]
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Prioritization
|
|
219
|
+
Use value x feasibility as the primary framework:
|
|
220
|
+
- **High value + High feasibility** → Phase 1 (build first)
|
|
221
|
+
- **High value + Low feasibility** → Phase 2+ (build after foundation exists)
|
|
222
|
+
- **Low value + High feasibility** → Backlog (if time permits)
|
|
223
|
+
- **Low value + Low feasibility** → Cut
|
|
224
|
+
|
|
225
|
+
Present as a recommendation — the user makes the final call on ordering.
|
|
226
|
+
|
|
227
|
+
### Sequencing
|
|
228
|
+
Within each phase:
|
|
229
|
+
- **Dependencies**: What must exist before what?
|
|
230
|
+
- **Risk ordering**: Build uncertain things first (fail fast)
|
|
231
|
+
- **Value delivery**: Each phase should deliver usable value, not just infrastructure
|
|
232
|
+
|
|
233
|
+
### Architecture Decisions
|
|
234
|
+
Surface decisions that affect multiple items — technology choices, data model, integration approaches, UX patterns. For each: **What** was decided, **Why** (tradeoffs), and **What alternatives** were considered. These become decision records.
|
|
235
|
+
|
|
236
|
+
### Confirmation
|
|
237
|
+
Before generating documents, present a final summary:
|
|
238
|
+
```
|
|
239
|
+
Vision: [one sentence]
|
|
240
|
+
Phases: [N] phases, [M] total items
|
|
241
|
+
Phase 1 ([theme]): [items with brief descriptions]
|
|
242
|
+
Phase 2 ([theme]): [items]
|
|
243
|
+
Key decisions: [list]
|
|
244
|
+
Deferred: [items with reasons]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Get explicit confirmation before proceeding to document generation.
|
|
248
|
+
|
|
249
|
+
## Phase 4: DOCUMENT
|
|
250
|
+
|
|
251
|
+
<phase_goal>Generate the three-layer document set.</phase_goal>
|
|
252
|
+
|
|
253
|
+
Read the templates before generating:
|
|
254
|
+
- `references/templates/vision.md` — VISION.md format
|
|
255
|
+
- `references/templates/roadmap.md` — ROADMAP.md index format
|
|
256
|
+
- `references/templates/item-spec.md` — Auto-resolve-ready spec format
|
|
257
|
+
- `references/templates/decision.md` — Architecture decision record format
|
|
258
|
+
|
|
259
|
+
### Generation Order
|
|
260
|
+
1. `docs/VISION.md` — from Phase 1 framing + Phase 3 decisions
|
|
261
|
+
2. `docs/roadmap/decisions/` — one file per architecture decision
|
|
262
|
+
3. `docs/roadmap/phase-N/_overview.md` — phase-level context
|
|
263
|
+
4. `docs/roadmap/phase-N/{id}-{name}.md` — one per roadmap item
|
|
264
|
+
5. `docs/ROADMAP.md` — index linking to everything above
|
|
265
|
+
|
|
266
|
+
### Item Spec Quality
|
|
267
|
+
|
|
268
|
+
Each Layer 3 spec is the direct input to auto-resolve. Its quality determines implementation quality.
|
|
269
|
+
|
|
270
|
+
<spec_quality_criteria>
|
|
271
|
+
**Requirements section** — becomes auto-resolve's done-criteria:
|
|
272
|
+
- Testable: a test can assert it OR a human can verify in under 30 seconds
|
|
273
|
+
- Specific: not "handles errors well" but "returns 400 with `{error: 'missing_field', field: 'email'}`"
|
|
274
|
+
- Scoped: tied to this item only, not aspirational
|
|
275
|
+
|
|
276
|
+
**Context section** — 2-3 sentences maximum. Just enough for auto-resolve to understand WHY without loading the full vision.
|
|
277
|
+
|
|
278
|
+
**Out of Scope** — explicitly states what this item does NOT do. This is what prevents auto-resolve from over-building, which is one of its most common failure modes.
|
|
279
|
+
|
|
280
|
+
**Constraints** — technical constraints with reasoning. Auto-resolve respects constraints significantly better when it understands the motivation behind them.
|
|
281
|
+
</spec_quality_criteria>
|
|
282
|
+
|
|
283
|
+
If an item is too vague to write specific requirements, it needs more exploration (revisit Phase 2 for that item) or should be split into smaller items.
|
|
284
|
+
|
|
285
|
+
### Handling Existing Documents
|
|
286
|
+
In **Expand** and **Replan** modes:
|
|
287
|
+
- Read existing documents first
|
|
288
|
+
- Merge new items into the existing phase structure
|
|
289
|
+
- Preserve existing items (don't overwrite or reorder without confirmation)
|
|
290
|
+
- Update ROADMAP.md index to include new entries
|
|
291
|
+
|
|
292
|
+
### Output Summary
|
|
293
|
+
After generating all documents:
|
|
294
|
+
```
|
|
295
|
+
Documents created:
|
|
296
|
+
- docs/VISION.md
|
|
297
|
+
- docs/ROADMAP.md
|
|
298
|
+
- docs/roadmap/phase-1/_overview.md
|
|
299
|
+
- docs/roadmap/phase-1/1.1-xxx.md
|
|
300
|
+
- docs/roadmap/phase-1/1.2-yyy.md
|
|
301
|
+
- docs/roadmap/decisions/001-xxx.md
|
|
302
|
+
[total: N files]
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
## Phase 5: BRIDGE
|
|
306
|
+
|
|
307
|
+
<phase_goal>Connect documents to the implementation pipeline.</phase_goal>
|
|
308
|
+
|
|
309
|
+
After document generation, output the implementation guide:
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
## Implementation
|
|
313
|
+
|
|
314
|
+
To implement each item:
|
|
315
|
+
/devlyn:auto-resolve "Implement per spec at docs/roadmap/phase-1/1.1-xxx.md — read the spec file for requirements, constraints, and scope boundaries"
|
|
316
|
+
|
|
317
|
+
Recommended order (respecting dependencies):
|
|
318
|
+
1. 1.1 [name] — no dependencies
|
|
319
|
+
2. 1.2 [name] — depends on 1.1
|
|
320
|
+
3. 1.3 [name] — depends on 1.1
|
|
321
|
+
...
|
|
322
|
+
|
|
323
|
+
After completing each item:
|
|
324
|
+
1. Update status in the item spec frontmatter (status: done)
|
|
325
|
+
2. Update ROADMAP.md status column
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
The auto-resolve prompt explicitly tells the build agent to read the spec file — this ensures done-criteria are adopted from the spec rather than generated from scratch, preserving the ideation context through to implementation.
|
|
329
|
+
|
|
330
|
+
## Quality Checklist
|
|
331
|
+
|
|
332
|
+
Before finalizing, verify:
|
|
333
|
+
- [ ] Every roadmap item has a linked spec file
|
|
334
|
+
- [ ] Every spec has testable requirements (not vague statements)
|
|
335
|
+
- [ ] Every spec has an Out of Scope section
|
|
336
|
+
- [ ] Every spec's Context section is 3 sentences or fewer
|
|
337
|
+
- [ ] ROADMAP.md is an index only — no inline specifications
|
|
338
|
+
- [ ] No spec requires reading VISION.md to be understood (self-contained)
|
|
339
|
+
- [ ] Dependencies between items are documented in both specs
|
|
340
|
+
- [ ] Architecture decisions include reasoning and alternatives considered
|
|
341
|
+
|
|
342
|
+
## Language
|
|
343
|
+
|
|
344
|
+
Generate all documents in the language the user communicates in. If the user mixes languages, match their primary language for prose and keep technical terms in English.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Decision Record Template
|
|
2
|
+
|
|
3
|
+
Generate decision records at `docs/roadmap/decisions/{NNN}-{title}.md`. These capture WHY a decision was made, preventing future agents and collaborators from re-debating settled questions.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
---
|
|
9
|
+
id: [NNN]
|
|
10
|
+
title: "[Decision Title]"
|
|
11
|
+
date: [YYYY-MM-DD]
|
|
12
|
+
status: accepted
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# [NNN] [Decision Title]
|
|
16
|
+
|
|
17
|
+
## Context
|
|
18
|
+
<!-- What situation or question prompted this decision? -->
|
|
19
|
+
|
|
20
|
+
## Decision
|
|
21
|
+
<!-- What was decided. Be specific and concrete. -->
|
|
22
|
+
|
|
23
|
+
## Alternatives Considered
|
|
24
|
+
|
|
25
|
+
### [Alternative 1]
|
|
26
|
+
- Pros: [advantages]
|
|
27
|
+
- Cons: [disadvantages]
|
|
28
|
+
- Why rejected: [the deciding factor]
|
|
29
|
+
|
|
30
|
+
### [Alternative 2]
|
|
31
|
+
- Pros: [advantages]
|
|
32
|
+
- Cons: [disadvantages]
|
|
33
|
+
- Why rejected: [the deciding factor]
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
<!-- What changes as a result. Include both positive tradeoffs and costs accepted. -->
|
|
37
|
+
- [Positive consequence]
|
|
38
|
+
- [Cost or constraint accepted]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Guidelines
|
|
42
|
+
|
|
43
|
+
- Status values: `proposed` | `accepted` | `superseded`
|
|
44
|
+
- Number decisions sequentially: 001, 002, 003...
|
|
45
|
+
- Focus on the "why rejected" for alternatives — this is what prevents re-debating
|
|
46
|
+
- Keep decisions atomic: one decision per record
|
|
47
|
+
- If a decision is later reversed, mark the original as `superseded` and create a new record referencing it
|
|
48
|
+
- Only create decision records for choices that affect multiple roadmap items or have non-obvious reasoning. Don't document every small implementation choice.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Item Spec Template (Auto-Resolve-Ready)
|
|
2
|
+
|
|
3
|
+
Generate one file per roadmap item at `docs/roadmap/phase-N/{id}-{name}.md`. This is the most critical template — each spec becomes the direct input to `/devlyn:auto-resolve`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
---
|
|
9
|
+
id: "[phase.item]"
|
|
10
|
+
title: "[Feature Name]"
|
|
11
|
+
phase: [N]
|
|
12
|
+
status: planned
|
|
13
|
+
priority: [high | medium | low]
|
|
14
|
+
complexity: [low | medium | high]
|
|
15
|
+
depends-on: []
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# [id] [Feature Name]
|
|
19
|
+
|
|
20
|
+
## Context
|
|
21
|
+
<!-- 2-3 sentences MAX. Just enough for auto-resolve to understand WHY this exists. -->
|
|
22
|
+
<!-- Extract only the relevant context from the vision — don't make the implementation agent read the full vision document. -->
|
|
23
|
+
[Project] does [what]. This feature [enables/improves/fixes] [specific user capability].
|
|
24
|
+
|
|
25
|
+
## Objective
|
|
26
|
+
<!-- One sentence: what the user can do after this is implemented. -->
|
|
27
|
+
|
|
28
|
+
## Requirements
|
|
29
|
+
<!-- These become auto-resolve's done-criteria. Quality of these requirements directly determines implementation quality. -->
|
|
30
|
+
- [ ] [Specific, testable requirement]
|
|
31
|
+
- [ ] [Specific, testable requirement]
|
|
32
|
+
- [ ] [Specific, testable requirement]
|
|
33
|
+
- [ ] ...
|
|
34
|
+
|
|
35
|
+
## Constraints
|
|
36
|
+
<!-- Technical constraints WITH reasoning. Implementation agents respect constraints significantly better when they understand the motivation. -->
|
|
37
|
+
- [Constraint] — Why: [reason]
|
|
38
|
+
- ...
|
|
39
|
+
|
|
40
|
+
## Out of Scope
|
|
41
|
+
<!-- What this item explicitly does NOT include. This prevents auto-resolve from over-building. -->
|
|
42
|
+
- [Feature/behavior] ([where/when it will be addressed, e.g., "Phase 2, item 2.3"])
|
|
43
|
+
- ...
|
|
44
|
+
|
|
45
|
+
## Architecture Notes
|
|
46
|
+
<!-- Technical context that helps implementation. Reference decision records when applicable. -->
|
|
47
|
+
<!-- Remove this section if the implementation is straightforward. -->
|
|
48
|
+
|
|
49
|
+
## Dependencies
|
|
50
|
+
- **Internal**: [Other roadmap items that must exist first, e.g., "1.1 User Auth"]
|
|
51
|
+
- **External**: [APIs, services, credentials, third-party setup needed]
|
|
52
|
+
|
|
53
|
+
## Verification
|
|
54
|
+
<!-- How to confirm this works. Overlaps with Requirements but focuses on observable user-facing behavior. -->
|
|
55
|
+
- [ ] [Observable verification step]
|
|
56
|
+
- [ ] ...
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Quality Criteria
|
|
60
|
+
|
|
61
|
+
Before writing a spec, verify each requirement against these criteria:
|
|
62
|
+
|
|
63
|
+
**Testable**: Can a test assert this, or can a human verify it in under 30 seconds?
|
|
64
|
+
- Bad: "The dashboard loads quickly"
|
|
65
|
+
- Good: "Dashboard initial render completes within 2 seconds on 3G throttled connection"
|
|
66
|
+
|
|
67
|
+
**Specific**: Is there exactly one interpretation of what "done" means?
|
|
68
|
+
- Bad: "Handles errors gracefully"
|
|
69
|
+
- Good: "Failed API calls display an error banner with the message and a retry button"
|
|
70
|
+
|
|
71
|
+
**Scoped**: Does this belong to THIS item only?
|
|
72
|
+
- Bad: "The app supports multiple languages" (cross-cutting concern, not a single item)
|
|
73
|
+
- Good: "The settings page displays a language selector with EN and KO options"
|
|
74
|
+
|
|
75
|
+
**Self-contained**: Can auto-resolve implement this without reading VISION.md or ROADMAP.md?
|
|
76
|
+
- If the Context section references principles without explaining them, it's not self-contained
|
|
77
|
+
- The spec should carry its own context, not point to other documents
|
|
78
|
+
|
|
79
|
+
## When a Spec Isn't Ready
|
|
80
|
+
|
|
81
|
+
If you can't write specific requirements for an item, it needs one of:
|
|
82
|
+
1. **More exploration** — go back to Phase 2 for this item
|
|
83
|
+
2. **Splitting** — the item is too large; break it into smaller, specifiable pieces
|
|
84
|
+
3. **A spike** — mark it as a research task whose output is a proper spec
|
|
85
|
+
|
|
86
|
+
Never generate a spec with vague requirements just to fill the roadmap. A backlog item with "needs exploration" is more honest and more useful than a spec with untestable requirements.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# ROADMAP.md Template
|
|
2
|
+
|
|
3
|
+
Generate `docs/ROADMAP.md` using this structure. This is an **index** — brief descriptions and links to detail specs. No inline specifications.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name] Roadmap
|
|
9
|
+
|
|
10
|
+
> **North Star**: [One sentence from VISION.md]
|
|
11
|
+
|
|
12
|
+
## Phase 1: [Theme Name] (Target: [date or timeframe])
|
|
13
|
+
<!-- 1-2 sentences: what this phase delivers and why it comes first -->
|
|
14
|
+
|
|
15
|
+
| # | Feature | Status | Priority | Complexity | Spec |
|
|
16
|
+
|---|---------|--------|----------|-----------|------|
|
|
17
|
+
| 1.1 | [Feature Name] | Planned | High | Medium | [spec](roadmap/phase-1/1.1-feature-name.md) |
|
|
18
|
+
| 1.2 | [Feature Name] | Planned | High | High | [spec](roadmap/phase-1/1.2-feature-name.md) |
|
|
19
|
+
| 1.3 | [Feature Name] | Planned | Medium | Low | [spec](roadmap/phase-1/1.3-feature-name.md) |
|
|
20
|
+
|
|
21
|
+
## Phase 2: [Theme Name] (Target: [date or timeframe])
|
|
22
|
+
<!-- 1-2 sentences -->
|
|
23
|
+
|
|
24
|
+
| # | Feature | Status | Priority | Complexity | Spec |
|
|
25
|
+
|---|---------|--------|----------|-----------|------|
|
|
26
|
+
| 2.1 | [Feature Name] | Planned | High | Medium | [spec](roadmap/phase-2/2.1-feature-name.md) |
|
|
27
|
+
|
|
28
|
+
## Backlog
|
|
29
|
+
<!-- Ideas acknowledged but not yet phased -->
|
|
30
|
+
| Feature | Reason Deferred | Revisit |
|
|
31
|
+
|---------|----------------|---------|
|
|
32
|
+
| [Name] | [Why not now] | [When to reconsider] |
|
|
33
|
+
|
|
34
|
+
## Decisions
|
|
35
|
+
| # | Decision | Date | Record |
|
|
36
|
+
|---|----------|------|--------|
|
|
37
|
+
| 1 | [Decision Title] | [YYYY-MM-DD] | [record](roadmap/decisions/001-decision-title.md) |
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Guidelines
|
|
41
|
+
|
|
42
|
+
- Status values: `Planned` | `In Progress` | `Done` | `Blocked`
|
|
43
|
+
- Priority: `High` | `Medium` | `Low`
|
|
44
|
+
- Complexity: `Low` | `Medium` | `High`
|
|
45
|
+
- Feature names should be user-facing descriptions, not technical jargon
|
|
46
|
+
- Each phase should deliver usable value — no "infrastructure only" phases
|
|
47
|
+
- The spec column links to the detail spec in `roadmap/phase-N/`
|
|
48
|
+
- Numbering: `{phase}.{item}` (e.g., 1.1, 1.2, 2.1)
|
|
49
|
+
- Slug format for filenames: `{id}-{kebab-case-name}.md` (e.g., `1.1-user-auth.md`)
|
|
50
|
+
- Keep this file under 150 lines — it's an index, not a specification
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# VISION.md Template
|
|
2
|
+
|
|
3
|
+
Generate `docs/VISION.md` using this structure. Keep it under 100 lines — this is a strategic orientation document, not a detailed specification.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# [Project Name] Vision
|
|
9
|
+
|
|
10
|
+
## North Star
|
|
11
|
+
<!-- One sentence. Every decision should move toward this. -->
|
|
12
|
+
|
|
13
|
+
## Principles
|
|
14
|
+
<!-- 3-5 guiding principles. Each includes what it means AND the tradeoff it implies. -->
|
|
15
|
+
1. **[Principle Name]** — [What this means in practice]. Tradeoff: [what we accept giving up].
|
|
16
|
+
2. ...
|
|
17
|
+
|
|
18
|
+
## Target Users
|
|
19
|
+
### Primary
|
|
20
|
+
<!-- Be specific: role, context, pain, what they need -->
|
|
21
|
+
**[Who]** — [Their situation]. Pain: [what frustrates them]. Need: [what they want].
|
|
22
|
+
|
|
23
|
+
### Not For
|
|
24
|
+
<!-- Explicitly state who this isn't for, so the team doesn't try to serve everyone -->
|
|
25
|
+
- [Audience] — Why: [reason this isn't our focus]
|
|
26
|
+
|
|
27
|
+
## Anti-Goals
|
|
28
|
+
<!-- Things we deliberately choose NOT to do, even if they seem like good ideas -->
|
|
29
|
+
- **[Anti-goal]** — Why: [the reasoning behind this constraint]
|
|
30
|
+
- ...
|
|
31
|
+
|
|
32
|
+
## Success Metrics
|
|
33
|
+
<!-- How we know this is working. Outcomes, not outputs. -->
|
|
34
|
+
- [Metric]: [target] (e.g., "Time to first value: under 5 minutes")
|
|
35
|
+
- ...
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Guidelines
|
|
39
|
+
|
|
40
|
+
- North Star should be ambitious but specific — "make X better" is too vague
|
|
41
|
+
- Principles without tradeoffs are platitudes — if a principle has no cost, it's not a real principle
|
|
42
|
+
- Anti-goals prevent scope creep downstream — be generous with these
|
|
43
|
+
- Success metrics should be measurable, even if the measurement is qualitative
|
|
44
|
+
- Write in the user's primary language, technical terms in English
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "devlyn-cli",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Claude Code
|
|
3
|
+
"version": "1.7.0",
|
|
4
|
+
"description": "AI development toolkit for Claude Code — ideate, auto-resolve, and ship with context engineering and agent orchestration",
|
|
5
|
+
"homepage": "https://github.com/fysoul17/devlyn-cli#readme",
|
|
5
6
|
"bin": {
|
|
6
7
|
"devlyn": "bin/devlyn.js"
|
|
7
8
|
},
|
|
@@ -16,8 +17,17 @@
|
|
|
16
17
|
"claude",
|
|
17
18
|
"claude-code",
|
|
18
19
|
"ai",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
20
|
+
"ai-agent",
|
|
21
|
+
"ai-tools",
|
|
22
|
+
"context-engineering",
|
|
23
|
+
"harness-engineering",
|
|
24
|
+
"agent-orchestration",
|
|
25
|
+
"prompt-engineering",
|
|
26
|
+
"code-review",
|
|
27
|
+
"devlyn",
|
|
28
|
+
"developer-tools",
|
|
29
|
+
"automation",
|
|
30
|
+
"cli"
|
|
21
31
|
],
|
|
22
32
|
"author": "",
|
|
23
33
|
"license": "MIT",
|