devlyn-cli 1.5.4 → 1.6.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 +31 -2
- 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 +1 -1
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ devlyn-cli solves this with two complementary engineering approaches:
|
|
|
30
30
|
|
|
31
31
|
Structured prompts and role-based instructions that shape _what the AI knows and how it thinks_ for each task.
|
|
32
32
|
|
|
33
|
-
- **
|
|
33
|
+
- **17 slash commands** for ideation, debugging, code review, UI design, documentation, and more
|
|
34
34
|
- **5 core skills** that activate automatically based on conversation context
|
|
35
35
|
- **Agent team workflows** that spawn specialized AI teammates with role-specific expertise
|
|
36
36
|
- **Product & feature spec templates** for structured planning
|
|
@@ -111,10 +111,11 @@ Slash commands are invoked directly in Claude Code conversations (e.g., type `/d
|
|
|
111
111
|
| `/devlyn:design-system` | Extract design system tokens from a chosen style for exact reproduction |
|
|
112
112
|
| `/devlyn:implement-ui` | Team-based UI build — component architect, UX engineer, accessibility engineer, responsive engineer, visual QA |
|
|
113
113
|
|
|
114
|
-
###
|
|
114
|
+
### Ideation & Planning
|
|
115
115
|
|
|
116
116
|
| Command | Description |
|
|
117
117
|
|---|---|
|
|
118
|
+
| `/devlyn:ideate` | Transform unstructured ideas into auto-resolve-ready planning documents through structured brainstorming, research, and multi-perspective synthesis. Produces a three-layer document architecture (Vision → Roadmap → per-item specs) that feeds directly into `auto-resolve` |
|
|
118
119
|
| `/devlyn:product-spec` | Generate or incrementally update product spec documents |
|
|
119
120
|
| `/devlyn:feature-spec` | Transform product specs into implementable feature specifications |
|
|
120
121
|
| `/devlyn:discover-product` | Scan codebase to generate feature-oriented product documentation |
|
|
@@ -182,6 +183,34 @@ Steps 5-6 are optional — run them periodically rather than on every PR.
|
|
|
182
183
|
|
|
183
184
|
> **Scope matching matters.** For a simple one-file bug, `/devlyn:resolve` + `/devlyn:review` (solo) is fast. For a multi-module feature, `/devlyn:auto-resolve` handles everything. Don't over-tool simple changes.
|
|
184
185
|
|
|
186
|
+
### Ideation → Implementation Pipeline
|
|
187
|
+
|
|
188
|
+
Go from raw ideas to shipped code with zero context loss:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
# 1. Brainstorm and plan — interactive back-and-forth
|
|
192
|
+
/devlyn:ideate "I want to build a habit tracking app with AI nudges..."
|
|
193
|
+
|
|
194
|
+
# 2. Review the generated docs
|
|
195
|
+
# docs/VISION.md — strategic north star
|
|
196
|
+
# docs/ROADMAP.md — indexed roadmap with links
|
|
197
|
+
# docs/roadmap/phase-1/ — auto-resolve-ready specs per item
|
|
198
|
+
|
|
199
|
+
# 3. Implement each item hands-free
|
|
200
|
+
/devlyn:auto-resolve "Implement per spec at docs/roadmap/phase-1/1.1-user-auth.md"
|
|
201
|
+
/devlyn:auto-resolve "Implement per spec at docs/roadmap/phase-1/1.2-dashboard.md"
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
The ideation skill produces a **three-layer document architecture** designed to eliminate context pollution:
|
|
205
|
+
|
|
206
|
+
| Layer | File | Purpose | Who Reads It |
|
|
207
|
+
|---|---|---|---|
|
|
208
|
+
| Strategic | `VISION.md` | North star, principles, anti-goals | Humans, ideation skill |
|
|
209
|
+
| Tactical | `ROADMAP.md` | Indexed table linking to per-item specs | Humans, ideation skill |
|
|
210
|
+
| Operational | `roadmap/phase-N/item.md` | Self-contained spec with requirements, constraints, out-of-scope | `auto-resolve` |
|
|
211
|
+
|
|
212
|
+
Each item spec carries just enough context for `auto-resolve` to work autonomously — nothing more. Supports multiple modes: **Greenfield** (new project), **Expand** (add to existing), **Deep-dive** (explore one feature), **Research-first** (synthesize resources), and **Replan** (reprioritize).
|
|
213
|
+
|
|
185
214
|
### UI Design Pipeline
|
|
186
215
|
|
|
187
216
|
A full explore → extract → build pipeline:
|
|
@@ -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
|