devlyn-cli 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/bin/devlyn.js +362 -0
- package/config/commands/devlyn.design-system.md +502 -0
- package/config/commands/devlyn.discover-product.md +116 -0
- package/config/commands/devlyn.feature-spec.md +630 -0
- package/config/commands/devlyn.handoff.md +13 -0
- package/config/commands/devlyn.product-spec.md +603 -0
- package/config/commands/devlyn.recommend-features.md +286 -0
- package/config/commands/devlyn.resolve.md +108 -0
- package/config/commands/devlyn.review.md +99 -0
- package/config/commands/devlyn.ui.md +342 -0
- package/config/commit-conventions.md +28 -0
- package/config/skills/feature-gap-analysis/SKILL.md +111 -0
- package/config/skills/investigate/SKILL.md +71 -0
- package/config/skills/prompt-engineering/SKILL.md +243 -0
- package/config/templates/prompt-templates.md +71 -0
- package/config/templates/template-feature.spec.md +255 -0
- package/config/templates/template-product-spec.md +680 -0
- package/package.json +25 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design_styles
|
|
3
|
+
description: Generate 5 radically distinct UI style options from PRD
|
|
4
|
+
source: project
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the **Lead Designer** with full creative authority. Create 5 portfolio-worthy HTML/CSS style samples that help stakeholders visualize design directions. These aren't mockups—they're design statements.
|
|
8
|
+
|
|
9
|
+
<context>
|
|
10
|
+
$ARGUMENTS
|
|
11
|
+
</context>
|
|
12
|
+
|
|
13
|
+
<input_handling>
|
|
14
|
+
The context above may contain:
|
|
15
|
+
|
|
16
|
+
- **PRD document**: Extract product goals, target users, and brand requirements
|
|
17
|
+
- **Product description**: Parse key features and emotional direction
|
|
18
|
+
- **Image references**: Analyze and replicate the visual style as closely as possible
|
|
19
|
+
|
|
20
|
+
If no input is provided, check for existing PRD at `docs/prd.md` or `README.md`.
|
|
21
|
+
|
|
22
|
+
### When Image References Are Provided
|
|
23
|
+
|
|
24
|
+
**Your primary goal shifts to replication, not invention.**
|
|
25
|
+
|
|
26
|
+
1. **Analyze the reference image(s) precisely:**
|
|
27
|
+
|
|
28
|
+
- Extract exact color values (use color picker precision: #RRGGBB)
|
|
29
|
+
- Identify font characteristics (serif/sans, weight, spacing, size ratios)
|
|
30
|
+
- Map layout structure (grid, spacing rhythm, alignment patterns)
|
|
31
|
+
- Note visual effects (shadows, gradients, blur, textures, border styles)
|
|
32
|
+
- Capture motion cues (if animated reference or implied motion)
|
|
33
|
+
|
|
34
|
+
2. **Generate designs that match the reference:**
|
|
35
|
+
|
|
36
|
+
- **Design 1-2**: Replicate the reference style as closely as possible, adapting to the PRD's content
|
|
37
|
+
- **Design 3-5**: Variations that preserve the reference's core aesthetic while exploring different directions within that style
|
|
38
|
+
|
|
39
|
+
3. **Fidelity checklist for reference-based designs:**
|
|
40
|
+
- [ ] Color palette within ±5% of reference values
|
|
41
|
+
- [ ] Typography style matches (same category, similar weight/spacing)
|
|
42
|
+
- [ ] Layout proportions preserved
|
|
43
|
+
- [ ] Visual effects replicated (shadows, gradients, textures)
|
|
44
|
+
- [ ] Overall "feel" is recognizably similar to reference
|
|
45
|
+
|
|
46
|
+
### When No Image References Are Provided
|
|
47
|
+
|
|
48
|
+
Follow the standard creative process: invent tension-based concept names, map across spectrums, and generate 5 radically different directions.
|
|
49
|
+
</input_handling>
|
|
50
|
+
|
|
51
|
+
<instructions>
|
|
52
|
+
|
|
53
|
+
## Phase 1: Extract Design DNA
|
|
54
|
+
|
|
55
|
+
Keep this brief—creative naming drives the design, not over-analysis.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
**Product:** [one sentence]
|
|
59
|
+
**User:** [who, in what context, with what goal]
|
|
60
|
+
**Must convey:** [2-3 essential feelings]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Phase 2: Invent 5 Creative Directions
|
|
64
|
+
|
|
65
|
+
### Check Existing Styles
|
|
66
|
+
|
|
67
|
+
Read `docs/design/` directory. If `style_N_*.html` files exist, continue numbering from N+1. New styles must be visually distinct from existing ones.
|
|
68
|
+
|
|
69
|
+
### Create 5 Concept Names
|
|
70
|
+
|
|
71
|
+
**Before any design work, invent 5 evocative names.**
|
|
72
|
+
|
|
73
|
+
Name format: `[word_A]_[word_B]` where:
|
|
74
|
+
|
|
75
|
+
- Word A and Word B create **tension or contrast**
|
|
76
|
+
- The combination should feel unexpected, not obvious
|
|
77
|
+
- Each word pulls the design in a different direction
|
|
78
|
+
|
|
79
|
+
Good patterns:
|
|
80
|
+
|
|
81
|
+
- [temperature]\_[movement]: warm vs cold, static vs dynamic
|
|
82
|
+
- [texture]\_[era]: rough vs smooth, retro vs futuristic
|
|
83
|
+
- [emotion]\_[structure]: soft vs rigid, chaotic vs ordered
|
|
84
|
+
- [material]\_[concept]: organic vs digital, heavy vs light
|
|
85
|
+
|
|
86
|
+
Avoid:
|
|
87
|
+
|
|
88
|
+
- Single adjectives
|
|
89
|
+
- Obvious pairings without tension
|
|
90
|
+
- Generic descriptors
|
|
91
|
+
|
|
92
|
+
**The name drives the design.** Tension in the name forces creative problem-solving.
|
|
93
|
+
|
|
94
|
+
### Map Each Concept Across 7 Spectrums
|
|
95
|
+
|
|
96
|
+
For each concept, mark its position. **Extremes create distinctiveness—avoid the middle.**
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Concept: [name]
|
|
100
|
+
|
|
101
|
+
Layout: Dense ●○○○○ Spacious
|
|
102
|
+
Color: Monochrome ○○○○● Vibrant
|
|
103
|
+
Typography: Serif ○○●○○ Display
|
|
104
|
+
Depth: Flat ○○○○● Layered
|
|
105
|
+
Energy: Calm ○●○○○ Dynamic
|
|
106
|
+
Theme: Dark ●○○○○ Light
|
|
107
|
+
Shape: Angular ○○○○● Curved
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Extreme Rule (Mandatory)
|
|
111
|
+
|
|
112
|
+
**Each design MUST have at least 2 extreme positions** (●○○○○ or ○○○○●).
|
|
113
|
+
|
|
114
|
+
Why: Middle positions (○○●○○) converge to "safe" averages. Extremes force distinctive choices.
|
|
115
|
+
|
|
116
|
+
### Verify Contrast
|
|
117
|
+
|
|
118
|
+
Before proceeding:
|
|
119
|
+
|
|
120
|
+
- [ ] Each design has **2+ extreme positions**
|
|
121
|
+
- [ ] No two concepts share the same position on 4+ spectrums
|
|
122
|
+
- [ ] Mix of dark and light themes across 5 designs
|
|
123
|
+
- [ ] Mix of angular and curved across 5 designs
|
|
124
|
+
|
|
125
|
+
## Phase 3: Define Concrete Specifications
|
|
126
|
+
|
|
127
|
+
For each concept, specify exact values—no adjectives.
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
### [Concept Name]
|
|
131
|
+
|
|
132
|
+
**Palette:**
|
|
133
|
+
- Background: #______
|
|
134
|
+
- Surface: #______
|
|
135
|
+
- Text: #______
|
|
136
|
+
- Text muted: #______
|
|
137
|
+
- Accent: #______
|
|
138
|
+
|
|
139
|
+
**Typography:**
|
|
140
|
+
- Font: [Google Font name]
|
|
141
|
+
- Headline: [size]px / [weight] / [letter-spacing]em
|
|
142
|
+
- Body: [size]px / [weight] / [line-height]
|
|
143
|
+
|
|
144
|
+
**Spacing:**
|
|
145
|
+
- Container max-width: [value]px
|
|
146
|
+
- Section padding: [value]px
|
|
147
|
+
- Element gap: [value]px
|
|
148
|
+
- Border-radius: [value]px
|
|
149
|
+
|
|
150
|
+
**Motion:**
|
|
151
|
+
- Duration: [value]s
|
|
152
|
+
- Easing: cubic-bezier([values])
|
|
153
|
+
- Stagger delay: [value]s
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Phase 4: Generate HTML Files
|
|
157
|
+
|
|
158
|
+
<use_parallel_tool_calls>
|
|
159
|
+
Write all 5 HTML files simultaneously by making 5 independent Write tool calls in a single response. These files have no dependencies on each other—do not write them sequentially. Maximize parallel execution for speed.
|
|
160
|
+
</use_parallel_tool_calls>
|
|
161
|
+
|
|
162
|
+
<frontend_aesthetics>
|
|
163
|
+
You tend to converge toward generic outputs. Avoid this:
|
|
164
|
+
|
|
165
|
+
**Typography:** Never use Inter, Roboto, Arial, Helvetica, Open Sans, Space Grotesk, or system fonts. Choose distinctive typefaces. Use weight extremes (100 vs 900, not 400 vs 600). Dramatic size jumps (3x+). Tight headline letter-spacing (-0.02em to -0.05em).
|
|
166
|
+
|
|
167
|
+
**Color:** One dominant + one sharp accent. Never pure #FFFFFF or #000000 backgrounds—add subtle tint. No purple gradients.
|
|
168
|
+
|
|
169
|
+
**Motion:** Focus on high-impact moments, not scattered micro-interactions.
|
|
170
|
+
|
|
171
|
+
- **Page load**: Orchestrated staggered reveals (vary `animation-delay` by 0.05-0.1s increments)
|
|
172
|
+
- **Scroll**: Use `IntersectionObserver` for scroll-triggered fade-ins (vanilla JS, no frameworks)
|
|
173
|
+
- **Hover**: Transform + opacity + subtle shadow shifts, not just color changes
|
|
174
|
+
- **Transitions**: Custom `cubic-bezier` easings that feel physical (e.g., `cubic-bezier(0.34, 1.56, 0.64, 1)` for bounce)
|
|
175
|
+
- **Advanced**: Gradient animations via `background-position`, `backdrop-filter` transitions, CSS `@property` for animatable custom properties
|
|
176
|
+
- **Restraint**: One dramatic sequence beats many small animations. If everything moves, nothing stands out.
|
|
177
|
+
|
|
178
|
+
**Backgrounds:** Never flat solid colors. Layer gradients, add subtle noise/grain, create atmosphere.
|
|
179
|
+
|
|
180
|
+
**Layout:** Break at least one standard pattern per design. Try asymmetry, overlap, bento grids, diagonal flow, or unexpected whitespace.
|
|
181
|
+
</frontend_aesthetics>
|
|
182
|
+
|
|
183
|
+
### File Requirements
|
|
184
|
+
|
|
185
|
+
| Requirement | Details |
|
|
186
|
+
| ------------------ | ------------------------------------------------- |
|
|
187
|
+
| **Path** | `docs/design/style_{n}_{concept_name}.html` |
|
|
188
|
+
| **Content** | Realistic view matching product purpose |
|
|
189
|
+
| **Self-contained** | Inline CSS, only Google Fonts external |
|
|
190
|
+
| **Interactivity** | Hover, active, focus states + page load animation |
|
|
191
|
+
| **Responsive** | Basic mobile adaptation |
|
|
192
|
+
| **Real content** | Actual copy from PRD, no lorem ipsum |
|
|
193
|
+
|
|
194
|
+
### HTML Structure
|
|
195
|
+
|
|
196
|
+
```html
|
|
197
|
+
<!DOCTYPE html>
|
|
198
|
+
<html lang="en">
|
|
199
|
+
<head>
|
|
200
|
+
<meta charset="UTF-8" />
|
|
201
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
202
|
+
<title>[Product] - [Concept]</title>
|
|
203
|
+
|
|
204
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
205
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
206
|
+
<link href="https://fonts.googleapis.com/css2?family=[Font]:[weights]&display=swap" rel="stylesheet" />
|
|
207
|
+
|
|
208
|
+
<style>
|
|
209
|
+
/* Concept: [name]
|
|
210
|
+
Spectrum: L[x] C[x] T[x] D[x] E[x] Th[x] Sh[x]
|
|
211
|
+
Extremes: [list which 2+ are extreme] */
|
|
212
|
+
|
|
213
|
+
:root {
|
|
214
|
+
--bg: #[hex];
|
|
215
|
+
--surface: #[hex];
|
|
216
|
+
--text: #[hex];
|
|
217
|
+
--text-muted: #[hex];
|
|
218
|
+
--accent: #[hex];
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
* {
|
|
222
|
+
margin: 0;
|
|
223
|
+
padding: 0;
|
|
224
|
+
box-sizing: border-box;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
body {
|
|
228
|
+
font-family: "[Font]", sans-serif;
|
|
229
|
+
background: var(--bg);
|
|
230
|
+
color: var(--text);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* Page load: staggered reveal */
|
|
234
|
+
.reveal {
|
|
235
|
+
opacity: 0;
|
|
236
|
+
transform: translateY(20px);
|
|
237
|
+
animation: fadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
238
|
+
}
|
|
239
|
+
.reveal:nth-child(1) {
|
|
240
|
+
animation-delay: 0.1s;
|
|
241
|
+
}
|
|
242
|
+
.reveal:nth-child(2) {
|
|
243
|
+
animation-delay: 0.15s;
|
|
244
|
+
}
|
|
245
|
+
.reveal:nth-child(3) {
|
|
246
|
+
animation-delay: 0.2s;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
@keyframes fadeUp {
|
|
250
|
+
to {
|
|
251
|
+
opacity: 1;
|
|
252
|
+
transform: translateY(0);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* Scroll-triggered: hidden until in view */
|
|
257
|
+
.scroll-reveal {
|
|
258
|
+
opacity: 0;
|
|
259
|
+
transform: translateY(30px);
|
|
260
|
+
transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
|
|
261
|
+
}
|
|
262
|
+
.scroll-reveal.visible {
|
|
263
|
+
opacity: 1;
|
|
264
|
+
transform: translateY(0);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* Hover: physical-feeling bounce */
|
|
268
|
+
.interactive {
|
|
269
|
+
transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
|
|
270
|
+
}
|
|
271
|
+
.interactive:hover {
|
|
272
|
+
transform: translateY(-4px);
|
|
273
|
+
box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.15);
|
|
274
|
+
}
|
|
275
|
+
</style>
|
|
276
|
+
</head>
|
|
277
|
+
<body>
|
|
278
|
+
<!-- Semantic HTML with real content -->
|
|
279
|
+
|
|
280
|
+
<script>
|
|
281
|
+
// Scroll-triggered animations
|
|
282
|
+
const observer = new IntersectionObserver(
|
|
283
|
+
(entries) => {
|
|
284
|
+
entries.forEach((entry) => {
|
|
285
|
+
if (entry.isIntersecting) {
|
|
286
|
+
entry.target.classList.add("visible");
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
},
|
|
290
|
+
{ threshold: 0.1 }
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
document.querySelectorAll(".scroll-reveal").forEach((el) => observer.observe(el));
|
|
294
|
+
</script>
|
|
295
|
+
</body>
|
|
296
|
+
</html>
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## Phase 5: Verify Quality
|
|
300
|
+
|
|
301
|
+
### Per-Design Checklist
|
|
302
|
+
|
|
303
|
+
- [ ] Font is distinctive (not Inter/Roboto/Arial/system)
|
|
304
|
+
- [ ] Background has depth (not flat white/black)
|
|
305
|
+
- [ ] Page load animation with staggered delays
|
|
306
|
+
- [ ] Scroll-triggered reveals on below-fold content
|
|
307
|
+
- [ ] Hover states with transform + shadow (not just color)
|
|
308
|
+
- [ ] Custom easing (cubic-bezier), not default `ease` or `linear`
|
|
309
|
+
- [ ] CSS custom properties for colors
|
|
310
|
+
- [ ] Layout breaks at least one standard pattern
|
|
311
|
+
|
|
312
|
+
### Cross-Design Contrast
|
|
313
|
+
|
|
314
|
+
Each pair of designs must have 5+ obvious visual differences. If not, revise.
|
|
315
|
+
|
|
316
|
+
## Phase 6: Save & Report
|
|
317
|
+
|
|
318
|
+
Create `docs/design/` directory if needed. Save all 5 HTML files.
|
|
319
|
+
|
|
320
|
+
</instructions>
|
|
321
|
+
|
|
322
|
+
<output_format>
|
|
323
|
+
|
|
324
|
+
```
|
|
325
|
+
## Generated Styles
|
|
326
|
+
|
|
327
|
+
| # | Name | Spectrum (L/C/T/D/E/Th/Sh) | Extremes | Palette | Font |
|
|
328
|
+
|---|------|---------------------------|----------|---------|------|
|
|
329
|
+
| {n} | {name} | [x][x][x][x][x][x][x] | {which 2+} | #___, #___, #___ | {font} |
|
|
330
|
+
|
|
331
|
+
### Files
|
|
332
|
+
- docs/design/style_{n}_{name}.html
|
|
333
|
+
- ...
|
|
334
|
+
|
|
335
|
+
### Rationale
|
|
336
|
+
1. **{name}**: [1 sentence connecting to product requirements]
|
|
337
|
+
2. ...
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
</output_format>
|
|
341
|
+
|
|
342
|
+
Make bold choices. Each design should be portfolio-worthy—something you'd proudly present.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Commit Conventions
|
|
2
|
+
|
|
3
|
+
Use conventional commits: `<type>: <description>` (scope optional: `<type>(<scope>): <description>`)
|
|
4
|
+
|
|
5
|
+
| Type | Use for |
|
|
6
|
+
|------------|------------------------------------------------------|
|
|
7
|
+
| `feat` | New feature |
|
|
8
|
+
| `fix` | Bug fix |
|
|
9
|
+
| `chore` | Routine tasks (deps, non-production changes) |
|
|
10
|
+
| `docs` | Documentation updates |
|
|
11
|
+
| `style` | Code style only (formatting, spacing) |
|
|
12
|
+
| `refactor` | Restructuring (no fix or feature) |
|
|
13
|
+
| `perf` | Performance improvements |
|
|
14
|
+
| `test` | Adding or updating tests |
|
|
15
|
+
| `build` | Build system or dependency changes |
|
|
16
|
+
| `ci` | CI/CD pipeline updates |
|
|
17
|
+
| `revert` | Reverting a previous commit |
|
|
18
|
+
| `temp` | Temporary changes (not for long-term merge) |
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
feat: add user authentication
|
|
24
|
+
fix: resolve null pointer in auth middleware
|
|
25
|
+
refactor(api): simplify request validation
|
|
26
|
+
docs: update API usage guide
|
|
27
|
+
chore: upgrade next.js to v16.2
|
|
28
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Feature Gap Analysis Skill
|
|
2
|
+
|
|
3
|
+
Use this skill to systematically identify missing features and functionality gaps in the codebase.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
|
|
7
|
+
- "What features are missing?"
|
|
8
|
+
- "Analyze gaps in [feature area]"
|
|
9
|
+
- Feature comparison requests
|
|
10
|
+
- "What should we build next?"
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
### Phase 1: Define Scope
|
|
15
|
+
1. Identify the feature area to analyze
|
|
16
|
+
2. Establish comparison baseline (competitor, spec, user needs)
|
|
17
|
+
3. Define what "complete" means for this analysis
|
|
18
|
+
|
|
19
|
+
### Phase 2: Parallel Analysis
|
|
20
|
+
Spawn Task agents to investigate simultaneously:
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
Agent 1: Current State Analysis
|
|
24
|
+
- What exists today?
|
|
25
|
+
- How is it implemented?
|
|
26
|
+
- What are its limitations?
|
|
27
|
+
|
|
28
|
+
Agent 2: Standard/Competitor Analysis
|
|
29
|
+
- What do similar products offer?
|
|
30
|
+
- What's the industry standard?
|
|
31
|
+
- What do users expect?
|
|
32
|
+
|
|
33
|
+
Agent 3: User-Facing Gaps
|
|
34
|
+
- What's missing from user perspective?
|
|
35
|
+
- What are common complaints/requests?
|
|
36
|
+
- What workflows are incomplete?
|
|
37
|
+
|
|
38
|
+
Agent 4: Technical Debt
|
|
39
|
+
- What technical limitations block features?
|
|
40
|
+
- What refactoring would enable new capabilities?
|
|
41
|
+
- What dependencies are outdated?
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Phase 3: Synthesize Findings
|
|
45
|
+
Compile findings into prioritized analysis:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
## Feature Gap Analysis: [Area]
|
|
49
|
+
|
|
50
|
+
### Current State
|
|
51
|
+
| Feature | Status | Implementation | Notes |
|
|
52
|
+
|---------|--------|----------------|-------|
|
|
53
|
+
| Feature A | Complete | `path/to/file.ts` | |
|
|
54
|
+
| Feature B | Partial | `path/to/file.ts` | Missing X |
|
|
55
|
+
| Feature C | Missing | - | Needed for Y |
|
|
56
|
+
|
|
57
|
+
### Gap Prioritization
|
|
58
|
+
|
|
59
|
+
#### High Priority (User Impact + Feasibility)
|
|
60
|
+
1. **[Gap]**
|
|
61
|
+
- Impact: [Why it matters]
|
|
62
|
+
- Complexity: S/M/L
|
|
63
|
+
- Dependencies: [What's needed first]
|
|
64
|
+
- Suggested approach: [Brief technical direction]
|
|
65
|
+
|
|
66
|
+
#### Medium Priority
|
|
67
|
+
2. **[Gap]**
|
|
68
|
+
- ...
|
|
69
|
+
|
|
70
|
+
#### Low Priority / Nice-to-Have
|
|
71
|
+
3. **[Gap]**
|
|
72
|
+
- ...
|
|
73
|
+
|
|
74
|
+
### Technical Debt Blocking Progress
|
|
75
|
+
- [ ] Debt item 1 - blocks [features]
|
|
76
|
+
- [ ] Debt item 2 - blocks [features]
|
|
77
|
+
|
|
78
|
+
### Recommended Roadmap
|
|
79
|
+
1. Phase 1: [Quick wins]
|
|
80
|
+
2. Phase 2: [Core features]
|
|
81
|
+
3. Phase 3: [Advanced features]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Phase 4: Generate Implementation Plans
|
|
85
|
+
For top priority gaps, draft initial implementation plans:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
## Implementation Plan: [Top Gap]
|
|
89
|
+
|
|
90
|
+
### Files to Create/Modify
|
|
91
|
+
- `new/file.ts` - [purpose]
|
|
92
|
+
- `existing/file.ts` - [changes needed]
|
|
93
|
+
|
|
94
|
+
### Key Decisions Needed
|
|
95
|
+
- Decision 1: Option A vs Option B
|
|
96
|
+
- Decision 2: ...
|
|
97
|
+
|
|
98
|
+
### Draft Implementation Steps
|
|
99
|
+
1. Step 1
|
|
100
|
+
2. Step 2
|
|
101
|
+
3. ...
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Rules
|
|
105
|
+
|
|
106
|
+
- ALWAYS output prioritized, actionable findings
|
|
107
|
+
- Include complexity estimates (S/M/L) for each gap
|
|
108
|
+
- Provide file:line references to existing implementations
|
|
109
|
+
- Don't just list gaps - provide implementation direction
|
|
110
|
+
- Use TodoWrite to checkpoint analysis progress
|
|
111
|
+
- If interrupted, output whatever analysis exists so far
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Investigation Skill
|
|
2
|
+
|
|
3
|
+
Use this skill for code investigation, feature gap analysis, or understanding existing functionality.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
|
|
7
|
+
- User asks to investigate, analyze, or understand code
|
|
8
|
+
- Feature gap analysis requests
|
|
9
|
+
- "How does X work?" questions
|
|
10
|
+
- Code exploration tasks
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
### Phase 1: Define Scope
|
|
15
|
+
Before starting, clarify:
|
|
16
|
+
- What specific question needs answering?
|
|
17
|
+
- What does "complete" look like for this investigation?
|
|
18
|
+
- Are there time constraints?
|
|
19
|
+
|
|
20
|
+
### Phase 2: Parallel Exploration
|
|
21
|
+
Spawn Task agents to explore different areas simultaneously:
|
|
22
|
+
```
|
|
23
|
+
Use Task tool to spawn parallel agents:
|
|
24
|
+
1. Agent for data layer analysis
|
|
25
|
+
2. Agent for API/service layer
|
|
26
|
+
3. Agent for UI/component layer
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Phase 3: Checkpoint Progress
|
|
30
|
+
Every significant finding, use TodoWrite to record:
|
|
31
|
+
- Files examined
|
|
32
|
+
- Patterns discovered
|
|
33
|
+
- Questions raised
|
|
34
|
+
- Hypotheses formed
|
|
35
|
+
|
|
36
|
+
### Phase 4: Synthesize & Report
|
|
37
|
+
ALWAYS output a structured summary before ending:
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
## Investigation Summary: [Topic]
|
|
41
|
+
|
|
42
|
+
### Files Examined
|
|
43
|
+
- `path/to/file.ts` - [what it does]
|
|
44
|
+
- `path/to/other.ts` - [what it does]
|
|
45
|
+
|
|
46
|
+
### Key Findings
|
|
47
|
+
1. [Finding with file:line reference]
|
|
48
|
+
2. [Finding with file:line reference]
|
|
49
|
+
|
|
50
|
+
### Architecture/Flow
|
|
51
|
+
[Brief description or diagram of how components interact]
|
|
52
|
+
|
|
53
|
+
### Gaps/Issues Identified
|
|
54
|
+
- [ ] Gap 1
|
|
55
|
+
- [ ] Gap 2
|
|
56
|
+
|
|
57
|
+
### Remaining Unknowns
|
|
58
|
+
- Question that needs more investigation
|
|
59
|
+
|
|
60
|
+
### Recommended Next Steps
|
|
61
|
+
1. Actionable step
|
|
62
|
+
2. Actionable step
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Rules
|
|
66
|
+
|
|
67
|
+
- NEVER end mid-investigation without a summary
|
|
68
|
+
- ALWAYS provide file:line references for findings
|
|
69
|
+
- Use TodoWrite to checkpoint progress every 5-10 minutes
|
|
70
|
+
- If interrupted, output whatever findings exist so far
|
|
71
|
+
- Prefer parallel Task agents for large codebases
|