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,502 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extract all design values from selected style for exact reproduction
|
|
3
|
+
argument-hint: <style-number> [platform] (e.g., "3", "3 flutter", "style 2 web")
|
|
4
|
+
allowed-tools: Bash(ls:*), Bash(cat:*), Bash(grep:*), View, Edit, Write
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Extract design values from a style preview HTML to generate a framework-agnostic design reference.
|
|
8
|
+
|
|
9
|
+
<context>
|
|
10
|
+
User input: $ARGUMENTS
|
|
11
|
+
Available styles: !`ls -1 docs/design/style_*.html 2>/dev/null || echo "No styles found"`
|
|
12
|
+
</context>
|
|
13
|
+
|
|
14
|
+
<input_parsing>
|
|
15
|
+
|
|
16
|
+
Parse two values from input:
|
|
17
|
+
|
|
18
|
+
1. **Style number** (required): "3", "style 3", or "style_3_concept_name" all resolve to style 3
|
|
19
|
+
|
|
20
|
+
2. **Platform** (optional, defaults to "web"):
|
|
21
|
+
- `web` — HTML/CSS, React, Vue, Svelte, Next.js
|
|
22
|
+
- `flutter` — Dart/Flutter
|
|
23
|
+
- `native` — iOS (SwiftUI) / Android (Compose)
|
|
24
|
+
- `desktop` — Electron, Tauri, PyQt
|
|
25
|
+
- `terminal` — CLI apps with color support
|
|
26
|
+
|
|
27
|
+
</input_parsing>
|
|
28
|
+
|
|
29
|
+
<goal>
|
|
30
|
+
|
|
31
|
+
Create a design reference document that enables any AI agent to:
|
|
32
|
+
|
|
33
|
+
1. Apply correct visual styling (colors, typography, spacing, shadows, motion)
|
|
34
|
+
2. Build components that match the design language (patterns, behaviors, icon approach)
|
|
35
|
+
|
|
36
|
+
This document contains **values and patterns**—no framework-specific implementation code. The implementing agent determines the correct syntax based on the actual project setup.
|
|
37
|
+
|
|
38
|
+
**Important distinction**:
|
|
39
|
+
|
|
40
|
+
- This document defines HOW things should look (reusable across any page structure)
|
|
41
|
+
- Feature specs define WHAT to build (page structure, sections, content)
|
|
42
|
+
- An agent uses both: feature spec for structure + this document for styling
|
|
43
|
+
|
|
44
|
+
</goal>
|
|
45
|
+
|
|
46
|
+
<extraction_requirements>
|
|
47
|
+
|
|
48
|
+
Extract all concrete values that define the design's appearance and reusable component patterns.
|
|
49
|
+
|
|
50
|
+
<colors>
|
|
51
|
+
Extract every color used:
|
|
52
|
+
- Background, surface, text primary, text secondary
|
|
53
|
+
- Accent colors (primary, secondary if present)
|
|
54
|
+
- Borders, dividers, hover states
|
|
55
|
+
- Any gradients (with exact color stops and direction)
|
|
56
|
+
|
|
57
|
+
Format: hex values (e.g., #F4F7FA)
|
|
58
|
+
</colors>
|
|
59
|
+
|
|
60
|
+
<typography>
|
|
61
|
+
Extract the exact font configuration:
|
|
62
|
+
- Font family name (exact Google Fonts spelling)
|
|
63
|
+
- All font weights used (e.g., 300, 400, 600, 700)
|
|
64
|
+
|
|
65
|
+
For each text level (H1, H2, H3, Body, Body Large, Small/Caption, Label):
|
|
66
|
+
|
|
67
|
+
- Size in pixels
|
|
68
|
+
- Weight
|
|
69
|
+
- Letter-spacing (em or px)
|
|
70
|
+
- Line-height (unitless ratio)
|
|
71
|
+
</typography>
|
|
72
|
+
|
|
73
|
+
<spacing>
|
|
74
|
+
Extract actual pixel values used, not abstract scales:
|
|
75
|
+
- Section/page padding
|
|
76
|
+
- Hero section padding (if different)
|
|
77
|
+
- Component/card padding (large and small variants)
|
|
78
|
+
- Element gap (between buttons, cards)
|
|
79
|
+
- Tight gap (icon + text, inline elements)
|
|
80
|
+
- Navigation gaps
|
|
81
|
+
- Section header margin-bottom
|
|
82
|
+
</spacing>
|
|
83
|
+
|
|
84
|
+
<shape>
|
|
85
|
+
Extract border-radius values:
|
|
86
|
+
- Cards and containers
|
|
87
|
+
- Feature icons
|
|
88
|
+
- Small icons
|
|
89
|
+
- Buttons and pills (often "full" or 100px)
|
|
90
|
+
- CTA sections (if different)
|
|
91
|
+
</shape>
|
|
92
|
+
|
|
93
|
+
<shadows>
|
|
94
|
+
Extract complete box-shadow CSS values:
|
|
95
|
+
- Default/subtle shadow
|
|
96
|
+
- Navigation/badge shadow
|
|
97
|
+
- Floating card shadow
|
|
98
|
+
- Hover state shadow
|
|
99
|
+
- Button hover shadow
|
|
100
|
+
|
|
101
|
+
Include the full value: offset, blur, spread, color with alpha.
|
|
102
|
+
</shadows>
|
|
103
|
+
|
|
104
|
+
<motion>
|
|
105
|
+
Extract animation timing:
|
|
106
|
+
- Easing function (exact cubic-bezier or keyword)
|
|
107
|
+
- Base transition duration
|
|
108
|
+
- Enter/appear animation duration
|
|
109
|
+
- Scroll-triggered transition duration
|
|
110
|
+
- Stagger delay between items
|
|
111
|
+
- Any cyclic animation durations (float, drift effects)
|
|
112
|
+
</motion>
|
|
113
|
+
|
|
114
|
+
<effects>
|
|
115
|
+
Only if present in the design:
|
|
116
|
+
- Background effects (orbs, gradients, patterns)
|
|
117
|
+
- Glassmorphism (backdrop-filter blur value, background opacity)
|
|
118
|
+
- Gradient text treatment
|
|
119
|
+
- Any texture overlays
|
|
120
|
+
</effects>
|
|
121
|
+
|
|
122
|
+
<components>
|
|
123
|
+
Extract reusable component patterns found in the design. For each distinct component type:
|
|
124
|
+
|
|
125
|
+
1. **Navigation** (if present):
|
|
126
|
+
|
|
127
|
+
- Layout type (fixed, sticky, static)
|
|
128
|
+
- Visual treatment (solid, glassmorphism, transparent)
|
|
129
|
+
- Elements included (logo style, link style, CTA style)
|
|
130
|
+
|
|
131
|
+
2. **Cards** (identify all card variants):
|
|
132
|
+
|
|
133
|
+
- Name/purpose (feature card, stat card, testimonial card, etc.)
|
|
134
|
+
- Icon approach: emoji, SVG, or icon font
|
|
135
|
+
- If emoji: note this explicitly
|
|
136
|
+
- Icon container style (size, background, radius)
|
|
137
|
+
- Content structure (what elements: icon, title, description, stat, etc.)
|
|
138
|
+
- Hover behavior (transform, shadow change, with duration)
|
|
139
|
+
|
|
140
|
+
3. **Buttons** (identify all variants):
|
|
141
|
+
|
|
142
|
+
- Primary, secondary, ghost styles
|
|
143
|
+
- Hover transforms and shadow changes
|
|
144
|
+
|
|
145
|
+
4. **Badges/Labels**:
|
|
146
|
+
|
|
147
|
+
- Visual style (pill, tag, etc.)
|
|
148
|
+
- Any animated elements (pulse dots, etc.)
|
|
149
|
+
|
|
150
|
+
5. **Section Headers**:
|
|
151
|
+
|
|
152
|
+
- Label + title + description pattern
|
|
153
|
+
- Alignment (centered, left)
|
|
154
|
+
|
|
155
|
+
6. **Special Elements**:
|
|
156
|
+
- Any unique patterns (floating cards, step indicators, etc.)
|
|
157
|
+
- Animation behaviors
|
|
158
|
+
|
|
159
|
+
For each component, describe it as a reusable pattern that can be applied regardless of how many times it appears or what content it contains.
|
|
160
|
+
</components>
|
|
161
|
+
|
|
162
|
+
<interactive_states>
|
|
163
|
+
Document hover/active/focus states for interactive elements:
|
|
164
|
+
|
|
165
|
+
- What property changes (transform, shadow, background, scale, opacity)
|
|
166
|
+
- From value → To value
|
|
167
|
+
- Duration and easing
|
|
168
|
+
|
|
169
|
+
Format as a reference table.
|
|
170
|
+
</interactive_states>
|
|
171
|
+
|
|
172
|
+
<character>
|
|
173
|
+
Summarize the design's personality:
|
|
174
|
+
- Theme: Light or Dark
|
|
175
|
+
- Shape language: Angular, Curved, or Mixed
|
|
176
|
+
- Density: Spacious or Dense
|
|
177
|
+
- Energy: Calm, Dynamic, or Playful
|
|
178
|
+
</character>
|
|
179
|
+
|
|
180
|
+
</extraction_requirements>
|
|
181
|
+
|
|
182
|
+
<output_format>
|
|
183
|
+
|
|
184
|
+
Generate `docs/design-system.md` with this structure:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
# Design Style: {Concept Name}
|
|
188
|
+
|
|
189
|
+
> {One sentence capturing the design's mood and intent}
|
|
190
|
+
|
|
191
|
+
**Platform**: {platform}
|
|
192
|
+
**Source**: `{source filename}`
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Implementation Note
|
|
197
|
+
|
|
198
|
+
This document defines the visual design language—HOW things should look.
|
|
199
|
+
|
|
200
|
+
When implementing:
|
|
201
|
+
|
|
202
|
+
1. Use your **feature spec** for page structure (WHAT sections/components to build)
|
|
203
|
+
2. Use **this document** for styling those components (HOW they should look)
|
|
204
|
+
3. Apply values using syntax appropriate for your framework
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Colors
|
|
209
|
+
|
|
210
|
+
| Role | Value |
|
|
211
|
+
| --------------------- | --------- |
|
|
212
|
+
| Background | `#______` |
|
|
213
|
+
| Surface | `#______` |
|
|
214
|
+
| Text | `#______` |
|
|
215
|
+
| Text Muted | `#______` |
|
|
216
|
+
| Accent | `#______` |
|
|
217
|
+
| {additional roles...} | `#______` |
|
|
218
|
+
|
|
219
|
+
**Gradients** (if present):
|
|
220
|
+
|
|
221
|
+
- {Name}: `{direction}deg, {color1} {stop1}%, {color2} {stop2}%`
|
|
222
|
+
|
|
223
|
+
## Typography
|
|
224
|
+
|
|
225
|
+
**Font Family**: {exact name} (with {fallback} for {language} if applicable)
|
|
226
|
+
**Weights**: {comma-separated list}
|
|
227
|
+
|
|
228
|
+
| Element | Size | Weight | Letter-spacing | Line-height |
|
|
229
|
+
| ------------- | ----- | ------ | -------------- | ----------- |
|
|
230
|
+
| H1 | {n}px | {n} | {n}em | {n} |
|
|
231
|
+
| H2 | {n}px | {n} | {n}em | {n} |
|
|
232
|
+
| H3 | {n}px | {n} | {n}em | {n} |
|
|
233
|
+
| Body | {n}px | {n} | — | {n} |
|
|
234
|
+
| Body Large | {n}px | {n} | — | {n} |
|
|
235
|
+
| Small/Caption | {n}px | {n} | — | {n} |
|
|
236
|
+
| Label | {n}px | {n} | — | {n} |
|
|
237
|
+
|
|
238
|
+
## Spacing
|
|
239
|
+
|
|
240
|
+
| Context | Value |
|
|
241
|
+
| ---------------------------- | -------------------------------- |
|
|
242
|
+
| Section padding | {n}px vertical, {n}px horizontal |
|
|
243
|
+
| Hero padding | {top}px top, {bottom}px bottom |
|
|
244
|
+
| Card padding (large) | {n}px |
|
|
245
|
+
| Card padding (small) | {n}px |
|
|
246
|
+
| Element gap | {n}px |
|
|
247
|
+
| Tight gap | {n}px |
|
|
248
|
+
| Section header margin-bottom | {n}px |
|
|
249
|
+
|
|
250
|
+
## Shape
|
|
251
|
+
|
|
252
|
+
| Context | Radius |
|
|
253
|
+
| ---------------- | ------------ |
|
|
254
|
+
| Cards/Containers | {n}px |
|
|
255
|
+
| Icons (large) | {n}px |
|
|
256
|
+
| Icons (small) | {n}px |
|
|
257
|
+
| Buttons/Pills | {n}px (full) |
|
|
258
|
+
|
|
259
|
+
## Shadows
|
|
260
|
+
|
|
261
|
+
| Name | Value |
|
|
262
|
+
| ------------ | --------------------- |
|
|
263
|
+
| Subtle | `{full shadow value}` |
|
|
264
|
+
| Card | `{full shadow value}` |
|
|
265
|
+
| Card Hover | `{full shadow value}` |
|
|
266
|
+
| Float | `{full shadow value}` |
|
|
267
|
+
| Button Hover | `{full shadow value}` |
|
|
268
|
+
|
|
269
|
+
## Motion
|
|
270
|
+
|
|
271
|
+
| Property | Value |
|
|
272
|
+
| ------------------- | ---------------------------------- |
|
|
273
|
+
| Easing (soft) | `cubic-bezier({a}, {b}, {c}, {d})` |
|
|
274
|
+
| Easing (bounce) | `cubic-bezier({a}, {b}, {c}, {d})` |
|
|
275
|
+
| Base duration | {n}s |
|
|
276
|
+
| Hover duration | {n}s |
|
|
277
|
+
| Enter duration | {n}s |
|
|
278
|
+
| Stagger | {n}s |
|
|
279
|
+
| {Cyclic animations} | {n}s |
|
|
280
|
+
|
|
281
|
+
## Effects
|
|
282
|
+
|
|
283
|
+
{Only include sections that exist in the source design}
|
|
284
|
+
|
|
285
|
+
**Background Elements** (if present):
|
|
286
|
+
|
|
287
|
+
- {Description with sizes, colors, blur, positions, animations}
|
|
288
|
+
|
|
289
|
+
**Glassmorphism** (if present):
|
|
290
|
+
|
|
291
|
+
- Background: `rgba({r}, {g}, {b}, {a})`
|
|
292
|
+
- Backdrop blur: {n}px
|
|
293
|
+
|
|
294
|
+
**Gradient Text** (if present):
|
|
295
|
+
|
|
296
|
+
- Applied to: {list elements}
|
|
297
|
+
- CSS: background-clip text with transparent fill
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Component Patterns
|
|
302
|
+
|
|
303
|
+
Reusable patterns that define how components should look, regardless of page structure.
|
|
304
|
+
|
|
305
|
+
### Icon Approach
|
|
306
|
+
|
|
307
|
+
- **Type**: {emoji | SVG | icon font}
|
|
308
|
+
- **Container**: {size}px, {background}, {radius}px radius
|
|
309
|
+
{If emoji, note: "Use emoji characters directly, not icon libraries"}
|
|
310
|
+
|
|
311
|
+
### Navigation
|
|
312
|
+
|
|
313
|
+
- **Position**: {fixed center | sticky top | etc.}
|
|
314
|
+
- **Style**: {glassmorphism | solid | transparent}
|
|
315
|
+
- **Elements**: Logo ({style}), Links ({style}), CTA button ({style})
|
|
316
|
+
|
|
317
|
+
### Card: Feature
|
|
318
|
+
|
|
319
|
+
- **Use for**: Feature highlights, service descriptions
|
|
320
|
+
- **Structure**: Icon container → Title → Description
|
|
321
|
+
- **Icon**: {size}px container, {background style}
|
|
322
|
+
- **Hover**: {transform}, {shadow change}, {duration}
|
|
323
|
+
|
|
324
|
+
### Card: Stat
|
|
325
|
+
|
|
326
|
+
- **Use for**: Metrics, numbers, KPIs
|
|
327
|
+
- **Structure**: Large value (gradient text) → Label
|
|
328
|
+
- **Hover**: {transform}, {duration}
|
|
329
|
+
|
|
330
|
+
### Card: {Other variants found...}
|
|
331
|
+
|
|
332
|
+
{Document each distinct card pattern}
|
|
333
|
+
|
|
334
|
+
### Button: Primary
|
|
335
|
+
|
|
336
|
+
- **Style**: {gradient/solid} background, {text color}
|
|
337
|
+
- **Hover**: {transform}, {shadow}
|
|
338
|
+
|
|
339
|
+
### Button: Secondary
|
|
340
|
+
|
|
341
|
+
- **Style**: {background}, {border if any}
|
|
342
|
+
- **Hover**: {changes}
|
|
343
|
+
|
|
344
|
+
### Badge/Label
|
|
345
|
+
|
|
346
|
+
- **Style**: Pill shape, {background}, {text style}
|
|
347
|
+
- **Animation**: {if any, e.g., pulse dot}
|
|
348
|
+
|
|
349
|
+
### Section Header
|
|
350
|
+
|
|
351
|
+
- **Pattern**: Label badge (optional) → H2 title → Description (optional)
|
|
352
|
+
- **Alignment**: {centered | left}
|
|
353
|
+
- **Spacing**: {margin-bottom}px below
|
|
354
|
+
|
|
355
|
+
### {Special Patterns}
|
|
356
|
+
|
|
357
|
+
{Document any unique patterns like floating cards, step indicators, etc.}
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Interactive States
|
|
362
|
+
|
|
363
|
+
| Component | Trigger | Property | From | To | Duration |
|
|
364
|
+
| ------------------------------------------ | ------- | --------- | ------ | ---------------- | -------- |
|
|
365
|
+
| Feature Card | hover | transform | none | translateY(-8px) | {n}s |
|
|
366
|
+
| Feature Card | hover | shadow | subtle | card-hover | {n}s |
|
|
367
|
+
| Button Primary | hover | transform | none | translateY(-3px) | {n}s |
|
|
368
|
+
| Button Primary | hover | shadow | none | button-hover | {n}s |
|
|
369
|
+
| {continue for all interactive elements...} | | | | | |
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## Character
|
|
374
|
+
|
|
375
|
+
- **Theme**: {Light | Dark}
|
|
376
|
+
- **Shape**: {Angular | Curved | Mixed}
|
|
377
|
+
- **Density**: {Spacious | Dense}
|
|
378
|
+
- **Energy**: {Calm | Dynamic | Playful}
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Token Reference
|
|
383
|
+
|
|
384
|
+
Quick reference for implementation.
|
|
385
|
+
|
|
386
|
+
### Colors
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
color-bg: #**\_\_**
|
|
390
|
+
color-surface: #**\_\_**
|
|
391
|
+
color-text: #**\_\_**
|
|
392
|
+
color-text-muted: #**\_\_**
|
|
393
|
+
color-accent: #**\_\_**
|
|
394
|
+
gradient-primary: {direction}, {stops}
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Typography
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
font-family: {name}, {fallback}
|
|
402
|
+
font-weight-regular: {n}
|
|
403
|
+
font-weight-semibold: {n}
|
|
404
|
+
font-weight-bold: {n}
|
|
405
|
+
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### Spacing
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
space-section: {n}px
|
|
412
|
+
space-component: {n}px
|
|
413
|
+
space-element: {n}px
|
|
414
|
+
space-tight: {n}px
|
|
415
|
+
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Shape
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
radius-card: {n}px
|
|
422
|
+
radius-icon: {n}px
|
|
423
|
+
radius-button: full
|
|
424
|
+
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### Motion
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
ease-soft: cubic-bezier({values})
|
|
431
|
+
ease-bounce: cubic-bezier({values})
|
|
432
|
+
duration-base: {n}s
|
|
433
|
+
duration-hover: {n}s
|
|
434
|
+
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
_Generated from: `{source filename}`_
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
</output_format>
|
|
443
|
+
|
|
444
|
+
<platform_adaptations>
|
|
445
|
+
|
|
446
|
+
Adjust the Token Reference section based on platform:
|
|
447
|
+
|
|
448
|
+
**flutter**: Include Dart-style comments showing Color() and Duration() syntax as reference
|
|
449
|
+
**native**: Note that colors should be added to asset catalogs
|
|
450
|
+
**terminal**: Include ANSI color code mappings
|
|
451
|
+
|
|
452
|
+
Keep these as **reference comments**, not copy-paste code.
|
|
453
|
+
|
|
454
|
+
</platform_adaptations>
|
|
455
|
+
|
|
456
|
+
<quality_verification>
|
|
457
|
+
|
|
458
|
+
Before saving, verify completeness:
|
|
459
|
+
|
|
460
|
+
**Values extraction**:
|
|
461
|
+
|
|
462
|
+
- [ ] All colors extracted with valid hex values
|
|
463
|
+
- [ ] Font name matches exact Google Fonts spelling
|
|
464
|
+
- [ ] Typography table complete for all text levels
|
|
465
|
+
- [ ] Spacing values are concrete pixels
|
|
466
|
+
- [ ] Border radius values for all contexts
|
|
467
|
+
- [ ] Shadow values are complete CSS
|
|
468
|
+
- [ ] Easing is exact cubic-bezier
|
|
469
|
+
- [ ] Animation durations in seconds
|
|
470
|
+
|
|
471
|
+
**Component patterns**:
|
|
472
|
+
|
|
473
|
+
- [ ] Icon approach clearly stated (emoji vs SVG vs font)
|
|
474
|
+
- [ ] All card variants documented with hover behavior
|
|
475
|
+
- [ ] Button variants documented
|
|
476
|
+
- [ ] Navigation pattern documented
|
|
477
|
+
- [ ] Section header pattern documented
|
|
478
|
+
- [ ] Special/unique patterns documented
|
|
479
|
+
|
|
480
|
+
**Interactive states**:
|
|
481
|
+
|
|
482
|
+
- [ ] All hover transforms documented
|
|
483
|
+
- [ ] All shadow transitions documented
|
|
484
|
+
- [ ] Durations specified for each
|
|
485
|
+
|
|
486
|
+
**Reproduction test**: Could another agent read this document and build components that look identical, regardless of what page structure they're implementing?
|
|
487
|
+
|
|
488
|
+
</quality_verification>
|
|
489
|
+
|
|
490
|
+
<execution>
|
|
491
|
+
|
|
492
|
+
1. Parse style number and platform from $ARGUMENTS
|
|
493
|
+
2. Read the matching `docs/design/style_{n}_*.html` file
|
|
494
|
+
3. Extract all values following the extraction requirements
|
|
495
|
+
4. Extract all component patterns
|
|
496
|
+
5. Document all interactive states
|
|
497
|
+
6. Generate `docs/design-system.md` following the output format
|
|
498
|
+
7. Confirm what was created and note the source file
|
|
499
|
+
|
|
500
|
+
If the style file doesn't exist, list the available options.
|
|
501
|
+
|
|
502
|
+
</execution>
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Scan the codebase to generate a feature-oriented product document.
|
|
2
|
+
|
|
3
|
+
<procedure>
|
|
4
|
+
1. Read project metadata files in parallel: package.json, README.md, CLAUDE.md, any config files
|
|
5
|
+
2. Scan directory structure to understand architecture: `ls -la` on root, src/, app/, components/, pages/, api/
|
|
6
|
+
3. Identify features by analyzing:
|
|
7
|
+
- Route definitions (pages, API endpoints)
|
|
8
|
+
- Major components and their purposes
|
|
9
|
+
- State management (stores, contexts)
|
|
10
|
+
- External integrations (APIs, services, databases)
|
|
11
|
+
4. For each feature, trace through the code to understand its scope
|
|
12
|
+
5. Generate the feature document using the output format below
|
|
13
|
+
</procedure>
|
|
14
|
+
|
|
15
|
+
<investigate_thoroughly>
|
|
16
|
+
Read actual code files, not just file names. Understand what each feature DOES by examining implementations. Do not guess features from names alone. Use parallel tool calls when reading multiple files.
|
|
17
|
+
</investigate_thoroughly>
|
|
18
|
+
|
|
19
|
+
<feature_identification>
|
|
20
|
+
|
|
21
|
+
## Where to Look for Features
|
|
22
|
+
|
|
23
|
+
- `/app` or `/pages` → User-facing routes and pages
|
|
24
|
+
- `/components` → UI features and reusable functionality
|
|
25
|
+
- `/api` or `/server` → Backend capabilities
|
|
26
|
+
- `/hooks` or `/lib` → Core functionality and utilities
|
|
27
|
+
- `/store` or `/context` → State-managed features
|
|
28
|
+
- Config files → Integrations and external services
|
|
29
|
+
|
|
30
|
+
## What Qualifies as a Feature
|
|
31
|
+
|
|
32
|
+
A feature is user-facing functionality or a distinct capability:
|
|
33
|
+
|
|
34
|
+
- ✓ "Real-time transcription" → feature
|
|
35
|
+
- ✓ "User authentication" → feature
|
|
36
|
+
- ✓ "Export to PDF" → feature
|
|
37
|
+
- ✗ "Button component" → implementation detail
|
|
38
|
+
- ✗ "API wrapper" → implementation detail
|
|
39
|
+
|
|
40
|
+
## Feature Attributes to Capture
|
|
41
|
+
|
|
42
|
+
For each feature identify:
|
|
43
|
+
|
|
44
|
+
- Name — clear, user-oriented label
|
|
45
|
+
- Description — what it does in 1-2 sentences
|
|
46
|
+
- Status — [Implemented / Partial / Planned] based on code evidence
|
|
47
|
+
- Key files — main files that implement this feature
|
|
48
|
+
- Dependencies — external services, APIs, or libraries required
|
|
49
|
+
|
|
50
|
+
</feature_identification>
|
|
51
|
+
|
|
52
|
+
<output_format>
|
|
53
|
+
Generate a markdown document structured as follows:
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
# [Project Name] — Feature Documentation
|
|
57
|
+
|
|
58
|
+
> Auto-generated from codebase scan on [date]
|
|
59
|
+
|
|
60
|
+
## Overview
|
|
61
|
+
|
|
62
|
+
[2-3 sentences: what this product is and its primary purpose]
|
|
63
|
+
|
|
64
|
+
## Tech Stack
|
|
65
|
+
|
|
66
|
+
- **Framework**: [e.g., Next.js 15, React 19]
|
|
67
|
+
- **Language**: [e.g., TypeScript 5.x]
|
|
68
|
+
- **Database**: [e.g., Supabase, PostgreSQL]
|
|
69
|
+
- **Key Libraries**: [list major dependencies]
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Features
|
|
74
|
+
|
|
75
|
+
### 1. [Feature Name]
|
|
76
|
+
|
|
77
|
+
**Status**: Implemented | Partial | Planned
|
|
78
|
+
|
|
79
|
+
[1-2 sentence description of what this feature does for the user]
|
|
80
|
+
|
|
81
|
+
**Key Files**:
|
|
82
|
+
|
|
83
|
+
- `src/components/FeatureComponent.tsx` — main UI
|
|
84
|
+
- `src/hooks/useFeature.ts` — logic
|
|
85
|
+
- `src/api/feature.ts` — backend
|
|
86
|
+
|
|
87
|
+
**Dependencies**: [External services, APIs]
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
### 2. [Feature Name]
|
|
92
|
+
|
|
93
|
+
...
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Architecture Notes
|
|
98
|
+
|
|
99
|
+
[Brief description of how features connect: data flow, state management patterns, API structure]
|
|
100
|
+
|
|
101
|
+
## Integrations
|
|
102
|
+
|
|
103
|
+
| Service | Purpose | Config Location |
|
|
104
|
+
| ---------------- | ----------------------- | ------------------ |
|
|
105
|
+
| [e.g., Supabase] | [e.g., Auth + Database] | [e.g., .env.local] |
|
|
106
|
+
|
|
107
|
+
## Not Yet Implemented
|
|
108
|
+
|
|
109
|
+
[Features found in comments, TODOs, or partial code that aren't complete]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
</output_format>
|
|
113
|
+
|
|
114
|
+
<task>
|
|
115
|
+
Scan this codebase now. Generate the feature document and output it in a code block. Be thorough — read actual implementations to understand features, not just file names.
|
|
116
|
+
</task>
|