specsmd 0.0.0-dev.40 → 0.0.0-dev.41
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.
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# Skill: Prototype Apply
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Apply a vibe-coded prototype's design and components to the real implementation during bolt execution. This skill bridges the gap between extracted prototype specifications and production code.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
Use this skill when:
|
|
14
|
+
- A bolt references a prototype in its scope
|
|
15
|
+
- You need to implement UI that matches a prototype screenshot
|
|
16
|
+
- The design system from vibe-to-spec should be applied to code
|
|
17
|
+
- Visual acceptance criteria reference prototype screens
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Input
|
|
22
|
+
|
|
23
|
+
- **Required**: Bolt ID currently being executed
|
|
24
|
+
- **Required**: Prototype reference (path or name)
|
|
25
|
+
- **Optional**: Specific screen to implement
|
|
26
|
+
- **Optional**: Component to focus on
|
|
27
|
+
|
|
28
|
+
**Prerequisite**: The **vibe-to-spec** skill must have been run on this prototype during Inception.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Process
|
|
33
|
+
|
|
34
|
+
### Step 1: Load Prototype Context
|
|
35
|
+
|
|
36
|
+
Load all relevant prototype artifacts:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
## Loading Prototype Context
|
|
40
|
+
|
|
41
|
+
Prototype: {prototype-name}
|
|
42
|
+
Bolt: {bolt-id}
|
|
43
|
+
|
|
44
|
+
### Available Artifacts
|
|
45
|
+
- [ ] design-system.md - {loaded/not found}
|
|
46
|
+
- [ ] component-catalog.md - {loaded/not found}
|
|
47
|
+
- [ ] screen-inventory.md - {loaded/not found}
|
|
48
|
+
- [ ] user-flows.md - {loaded/not found}
|
|
49
|
+
|
|
50
|
+
### Bolt Scope Match
|
|
51
|
+
Matching prototype screens to bolt scope:
|
|
52
|
+
- {screen-1} → {story-1}
|
|
53
|
+
- {screen-2} → {story-2}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### Step 2: Extract Implementation Requirements
|
|
59
|
+
|
|
60
|
+
From the prototype artifacts, extract what needs to be built:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
## Implementation Requirements
|
|
64
|
+
|
|
65
|
+
### Screen: {screen-name}
|
|
66
|
+
**Prototype Source**: {screenshot-path}
|
|
67
|
+
**Target Location**: {src/path/to/component}
|
|
68
|
+
|
|
69
|
+
### Design Tokens to Apply
|
|
70
|
+
```typescript
|
|
71
|
+
// From prototype design-system.md
|
|
72
|
+
const tokens = {
|
|
73
|
+
colors: {
|
|
74
|
+
primary: '{hex}',
|
|
75
|
+
secondary: '{hex}',
|
|
76
|
+
background: '{hex}',
|
|
77
|
+
// ...
|
|
78
|
+
},
|
|
79
|
+
typography: {
|
|
80
|
+
fontFamily: '{font}',
|
|
81
|
+
// ...
|
|
82
|
+
},
|
|
83
|
+
spacing: {
|
|
84
|
+
xs: '{px}',
|
|
85
|
+
// ...
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Components to Implement
|
|
91
|
+
| Component | Prototype Ref | Target File | Status |
|
|
92
|
+
|-----------|---------------|-------------|--------|
|
|
93
|
+
| {Sidebar} | screen-2.png | Sidebar.tsx | pending |
|
|
94
|
+
| {ChatList} | screen-2.png | ChatList.tsx | pending |
|
|
95
|
+
| {MessageBubble} | screen-3.png | MessageBubble.tsx | pending |
|
|
96
|
+
|
|
97
|
+
### Layout Structure
|
|
98
|
+
```
|
|
99
|
+
{ASCII representation of layout from prototype}
|
|
100
|
+
┌─────────────────────────────────────────┐
|
|
101
|
+
│ Header │
|
|
102
|
+
├──────────┬──────────────────────────────┤
|
|
103
|
+
│ Sidebar │ Main Content │
|
|
104
|
+
│ │ │
|
|
105
|
+
│ │ │
|
|
106
|
+
├──────────┴──────────────────────────────┤
|
|
107
|
+
│ Footer / Input Area │
|
|
108
|
+
└─────────────────────────────────────────┘
|
|
109
|
+
```
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### Step 3: Map to Project Standards
|
|
115
|
+
|
|
116
|
+
Cross-reference with project standards:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Standards Alignment
|
|
120
|
+
|
|
121
|
+
### Tech Stack Match
|
|
122
|
+
- **Prototype suggests**: {vanilla CSS / Tailwind / etc.}
|
|
123
|
+
- **Project standard**: {from tech-stack.md}
|
|
124
|
+
- **Action**: {adapt prototype to use project's styling approach}
|
|
125
|
+
|
|
126
|
+
### Component Library Match
|
|
127
|
+
- **Prototype components**: {custom / Bootstrap / etc.}
|
|
128
|
+
- **Project standard**: {from tech-stack.md}
|
|
129
|
+
- **Action**: {map prototype components to project's component library}
|
|
130
|
+
|
|
131
|
+
### Coding Standards
|
|
132
|
+
- **File naming**: {from coding-standards.md}
|
|
133
|
+
- **Component structure**: {from coding-standards.md}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Step 4: Generate Implementation Code
|
|
139
|
+
|
|
140
|
+
Generate code that matches the prototype while following project standards.
|
|
141
|
+
|
|
142
|
+
**IMPORTANT**: If the `/frontend-design` skill is available, invoke it for high-quality, production-grade frontend code that avoids generic AI aesthetics. The frontend-design skill specializes in creating distinctive, polished UI components.
|
|
143
|
+
|
|
144
|
+
**For each component**:
|
|
145
|
+
|
|
146
|
+
1. **Analyze prototype visually** (use screenshot)
|
|
147
|
+
2. **Extract structure from HTML** (if available)
|
|
148
|
+
3. **Apply project's styling approach**
|
|
149
|
+
4. **Ensure accessibility**
|
|
150
|
+
5. **Add responsive behavior**
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// Example output structure
|
|
154
|
+
/**
|
|
155
|
+
* Component: {ComponentName}
|
|
156
|
+
* Prototype: {screenshot-reference}
|
|
157
|
+
*
|
|
158
|
+
* Visual acceptance criteria:
|
|
159
|
+
* - {criterion from prototype}
|
|
160
|
+
* - {criterion from prototype}
|
|
161
|
+
*/
|
|
162
|
+
export function ComponentName({ props }: Props) {
|
|
163
|
+
// Implementation matching prototype
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### Step 5: Visual Verification Checklist
|
|
170
|
+
|
|
171
|
+
Create a verification checklist comparing implementation to prototype:
|
|
172
|
+
|
|
173
|
+
```markdown
|
|
174
|
+
## Visual Verification: {screen-name}
|
|
175
|
+
|
|
176
|
+
### Layout
|
|
177
|
+
- [ ] Overall structure matches prototype
|
|
178
|
+
- [ ] Spacing between elements is consistent
|
|
179
|
+
- [ ] Responsive breakpoints work correctly
|
|
180
|
+
|
|
181
|
+
### Colors
|
|
182
|
+
- [ ] Primary color matches: {hex}
|
|
183
|
+
- [ ] Background color matches: {hex}
|
|
184
|
+
- [ ] Text colors match design system
|
|
185
|
+
|
|
186
|
+
### Typography
|
|
187
|
+
- [ ] Font family applied correctly
|
|
188
|
+
- [ ] Font sizes match design system
|
|
189
|
+
- [ ] Font weights are correct
|
|
190
|
+
|
|
191
|
+
### Components
|
|
192
|
+
- [ ] {Component-1} matches prototype
|
|
193
|
+
- [ ] {Component-2} matches prototype
|
|
194
|
+
- [ ] Interactive states (hover, focus, active) implemented
|
|
195
|
+
|
|
196
|
+
### Interactions
|
|
197
|
+
- [ ] {Interaction-1} works as shown in flow
|
|
198
|
+
- [ ] {Interaction-2} works as shown in flow
|
|
199
|
+
|
|
200
|
+
### Screenshots for Comparison
|
|
201
|
+
- Prototype: `{prototype-path}`
|
|
202
|
+
- Implementation: `{screenshot after implementation}`
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Output
|
|
208
|
+
|
|
209
|
+
### Implementation Summary
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
## Prototype Applied: {screen-name}
|
|
213
|
+
|
|
214
|
+
### Components Implemented
|
|
215
|
+
| Component | File | Lines | Status |
|
|
216
|
+
|-----------|------|-------|--------|
|
|
217
|
+
| {Sidebar} | src/components/Sidebar.tsx | 45-120 | complete |
|
|
218
|
+
| {ChatList} | src/components/ChatList.tsx | 1-80 | complete |
|
|
219
|
+
|
|
220
|
+
### Design System Applied
|
|
221
|
+
- Color tokens: {n} applied
|
|
222
|
+
- Typography: {n} styles applied
|
|
223
|
+
- Spacing: {n} values applied
|
|
224
|
+
|
|
225
|
+
### Deviations from Prototype
|
|
226
|
+
| Aspect | Prototype | Implementation | Reason |
|
|
227
|
+
|--------|-----------|----------------|--------|
|
|
228
|
+
| {color} | #xxx | #yyy | Project standard |
|
|
229
|
+
| {font} | Inter | system-ui | Performance |
|
|
230
|
+
|
|
231
|
+
### Visual Verification
|
|
232
|
+
- [ ] Side-by-side comparison reviewed
|
|
233
|
+
- [ ] Responsive behavior verified
|
|
234
|
+
- [ ] Accessibility checked
|
|
235
|
+
|
|
236
|
+
### Files Modified
|
|
237
|
+
- `{file-1}` - {description}
|
|
238
|
+
- `{file-2}` - {description}
|
|
239
|
+
|
|
240
|
+
### Next Steps
|
|
241
|
+
1 - Continue with next screen
|
|
242
|
+
2 - Run visual regression tests
|
|
243
|
+
3 - Review with stakeholder
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Integration with Bolt Workflow
|
|
249
|
+
|
|
250
|
+
### During DDD Construction Bolt
|
|
251
|
+
|
|
252
|
+
In the **Implement** stage:
|
|
253
|
+
1. Load prototype context for relevant screens
|
|
254
|
+
2. Generate components matching prototype
|
|
255
|
+
3. Apply design system tokens
|
|
256
|
+
4. Create visual verification checklist
|
|
257
|
+
|
|
258
|
+
### During Simple Construction Bolt
|
|
259
|
+
|
|
260
|
+
In the **Implement** stage:
|
|
261
|
+
1. Reference prototype for UI components
|
|
262
|
+
2. Use extracted design tokens
|
|
263
|
+
3. Follow component catalog structure
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Visual Diff Support
|
|
268
|
+
|
|
269
|
+
When available, use UI diff tools to compare:
|
|
270
|
+
|
|
271
|
+
```text
|
|
272
|
+
## Visual Diff Report
|
|
273
|
+
|
|
274
|
+
### Screen: {screen-name}
|
|
275
|
+
- Prototype: {prototype-screenshot}
|
|
276
|
+
- Implementation: {current-screenshot}
|
|
277
|
+
- Diff: {highlighted differences}
|
|
278
|
+
|
|
279
|
+
### Discrepancies Found
|
|
280
|
+
1. {location}: {expected} vs {actual}
|
|
281
|
+
2. {location}: {expected} vs {actual}
|
|
282
|
+
|
|
283
|
+
### Action Required
|
|
284
|
+
- [ ] Fix discrepancy 1
|
|
285
|
+
- [ ] Fix discrepancy 2
|
|
286
|
+
- [ ] Accept as intentional deviation
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Test Contract
|
|
292
|
+
|
|
293
|
+
```yaml
|
|
294
|
+
input:
|
|
295
|
+
- Bolt ID with prototype reference
|
|
296
|
+
- Prototype artifacts from vibe-to-spec
|
|
297
|
+
output:
|
|
298
|
+
- Implementation code matching prototype
|
|
299
|
+
- Visual verification checklist
|
|
300
|
+
- Deviation documentation
|
|
301
|
+
integration:
|
|
302
|
+
- Works within bolt execution flow
|
|
303
|
+
- References design-system.md
|
|
304
|
+
- Follows project standards
|
|
305
|
+
```
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
# Skill: Vibe to Spec
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Progress Display
|
|
6
|
+
|
|
7
|
+
Show at start of this skill:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
### Inception Progress
|
|
11
|
+
- [ ] Prototype analyzed ← current
|
|
12
|
+
- [ ] Design system extracted
|
|
13
|
+
- [ ] Components cataloged
|
|
14
|
+
- [ ] Requirements derived
|
|
15
|
+
- [ ] Ready for standard inception flow
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Checkpoints in This Skill
|
|
21
|
+
|
|
22
|
+
| Checkpoint | Purpose | Wait For |
|
|
23
|
+
|------------|---------|----------|
|
|
24
|
+
| Checkpoint 1 | Prototype inventory review | User confirmation |
|
|
25
|
+
| Checkpoint 2 | Design system approval | User approval |
|
|
26
|
+
| Checkpoint 3 | Derived requirements review | User approval |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Goal
|
|
31
|
+
|
|
32
|
+
Convert a vibe-coded prototype (screenshots, HTML exports, or design mockups) into formal specsmd artifacts that feed into the standard inception workflow.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Input
|
|
37
|
+
|
|
38
|
+
- **Required**: Path to prototype folder (e.g., `proto/`, `mockups/`, `discovery/`)
|
|
39
|
+
- **Required**: `.specsmd/aidlc/memory-bank.yaml` - artifact schema
|
|
40
|
+
- **Optional**: Intent name to associate with (creates new if not provided)
|
|
41
|
+
- **Optional**: Existing design system to extend
|
|
42
|
+
|
|
43
|
+
**Supported Prototype Formats**:
|
|
44
|
+
- PNG/JPG screenshots
|
|
45
|
+
- HTML exports (with associated CSS/JS in `_files` folders)
|
|
46
|
+
- Figma exports
|
|
47
|
+
- PDF mockups
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Process
|
|
52
|
+
|
|
53
|
+
### Step 1: Inventory Prototype Assets
|
|
54
|
+
|
|
55
|
+
Scan the prototype folder and catalog all assets:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
## Prototype Inventory
|
|
59
|
+
|
|
60
|
+
Scanning: {prototype-path}
|
|
61
|
+
|
|
62
|
+
### Screenshots Found
|
|
63
|
+
- {filename}.png - {brief description based on visual analysis}
|
|
64
|
+
- ...
|
|
65
|
+
|
|
66
|
+
### HTML Exports Found
|
|
67
|
+
- {filename}.html - {title or main heading}
|
|
68
|
+
- ...
|
|
69
|
+
|
|
70
|
+
### Asset Folders
|
|
71
|
+
- {filename}_files/ - CSS, JS, images
|
|
72
|
+
- ...
|
|
73
|
+
|
|
74
|
+
Total: {n} screens identified
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Checkpoint 1**: Present inventory for user confirmation.
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
I found {n} screens in your prototype. Here's what I see:
|
|
81
|
+
|
|
82
|
+
1. {screen-1-description}
|
|
83
|
+
2. {screen-2-description}
|
|
84
|
+
...
|
|
85
|
+
|
|
86
|
+
Is this complete? Are there screens I'm missing or misinterpreting?
|
|
87
|
+
1 - Yes, continue analysis
|
|
88
|
+
2 - Let me clarify (provide corrections)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Wait for user response.**
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### Step 2: Analyze Each Screen
|
|
96
|
+
|
|
97
|
+
For each screen, extract:
|
|
98
|
+
|
|
99
|
+
**Visual Analysis** (use image analysis capabilities):
|
|
100
|
+
- Layout structure (sidebar, main content, header, footer)
|
|
101
|
+
- Color palette (primary, secondary, accent, background)
|
|
102
|
+
- Typography (headings, body text, labels)
|
|
103
|
+
- Component patterns (buttons, inputs, cards, lists)
|
|
104
|
+
- Interactive elements (forms, menus, modals)
|
|
105
|
+
|
|
106
|
+
**HTML Analysis** (if available):
|
|
107
|
+
- Component structure from markup
|
|
108
|
+
- CSS classes and styling patterns
|
|
109
|
+
- JavaScript interactions
|
|
110
|
+
|
|
111
|
+
**Output per screen**:
|
|
112
|
+
```markdown
|
|
113
|
+
### Screen: {screen-name}
|
|
114
|
+
**Source**: {filename}
|
|
115
|
+
**Purpose**: {inferred purpose}
|
|
116
|
+
|
|
117
|
+
#### Layout
|
|
118
|
+
- Structure: {e.g., sidebar-main, header-content-footer}
|
|
119
|
+
- Responsive hints: {any visible breakpoint patterns}
|
|
120
|
+
|
|
121
|
+
#### Components Identified
|
|
122
|
+
- [ ] {component-1}: {description}
|
|
123
|
+
- [ ] {component-2}: {description}
|
|
124
|
+
|
|
125
|
+
#### Interactions
|
|
126
|
+
- {interaction-1}: {trigger} → {result}
|
|
127
|
+
|
|
128
|
+
#### Design Tokens
|
|
129
|
+
- Primary color: {hex}
|
|
130
|
+
- Text color: {hex}
|
|
131
|
+
- Background: {hex}
|
|
132
|
+
- Border radius: {px}
|
|
133
|
+
- Spacing unit: {px}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Step 3: Synthesize Design System
|
|
139
|
+
|
|
140
|
+
Combine analysis from all screens into a unified design system:
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
## Design System: {prototype-name}
|
|
144
|
+
|
|
145
|
+
### Color Palette
|
|
146
|
+
| Token | Value | Usage |
|
|
147
|
+
|-------|-------|-------|
|
|
148
|
+
| primary | {hex} | Buttons, links, accents |
|
|
149
|
+
| secondary | {hex} | Secondary actions |
|
|
150
|
+
| background | {hex} | Page background |
|
|
151
|
+
| surface | {hex} | Card backgrounds |
|
|
152
|
+
| text-primary | {hex} | Main text |
|
|
153
|
+
| text-secondary | {hex} | Muted text |
|
|
154
|
+
| border | {hex} | Borders, dividers |
|
|
155
|
+
| success | {hex} | Success states |
|
|
156
|
+
| error | {hex} | Error states |
|
|
157
|
+
|
|
158
|
+
### Typography
|
|
159
|
+
| Element | Font | Size | Weight |
|
|
160
|
+
|---------|------|------|--------|
|
|
161
|
+
| h1 | {font} | {size} | {weight} |
|
|
162
|
+
| h2 | {font} | {size} | {weight} |
|
|
163
|
+
| body | {font} | {size} | {weight} |
|
|
164
|
+
| label | {font} | {size} | {weight} |
|
|
165
|
+
| caption | {font} | {size} | {weight} |
|
|
166
|
+
|
|
167
|
+
### Spacing Scale
|
|
168
|
+
- xs: {px}
|
|
169
|
+
- sm: {px}
|
|
170
|
+
- md: {px}
|
|
171
|
+
- lg: {px}
|
|
172
|
+
- xl: {px}
|
|
173
|
+
|
|
174
|
+
### Border Radius
|
|
175
|
+
- sm: {px}
|
|
176
|
+
- md: {px}
|
|
177
|
+
- lg: {px}
|
|
178
|
+
- full: 9999px
|
|
179
|
+
|
|
180
|
+
### Shadows
|
|
181
|
+
- sm: {shadow}
|
|
182
|
+
- md: {shadow}
|
|
183
|
+
- lg: {shadow}
|
|
184
|
+
|
|
185
|
+
### Component Patterns
|
|
186
|
+
{list of reusable patterns identified}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Checkpoint 2**: Present design system for approval.
|
|
190
|
+
|
|
191
|
+
```text
|
|
192
|
+
### Design System Review
|
|
193
|
+
|
|
194
|
+
I've extracted the following design system from your prototype:
|
|
195
|
+
|
|
196
|
+
{full design system}
|
|
197
|
+
|
|
198
|
+
Does this accurately capture your prototype's visual language?
|
|
199
|
+
1 - Yes, continue to derive requirements
|
|
200
|
+
2 - Need adjustments (specify what's wrong)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**Wait for user response.**
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### Step 4: Catalog Components
|
|
208
|
+
|
|
209
|
+
Create a component catalog from the prototype:
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
## Component Catalog: {prototype-name}
|
|
213
|
+
|
|
214
|
+
### Navigation Components
|
|
215
|
+
- **Sidebar**: {description, screens where found}
|
|
216
|
+
- **Header**: {description}
|
|
217
|
+
- **Breadcrumb**: {description}
|
|
218
|
+
|
|
219
|
+
### Form Components
|
|
220
|
+
- **Text Input**: {variants, validation states}
|
|
221
|
+
- **Button**: {variants: primary, secondary, ghost}
|
|
222
|
+
- **Select/Dropdown**: {description}
|
|
223
|
+
- **Checkbox/Radio**: {description}
|
|
224
|
+
|
|
225
|
+
### Display Components
|
|
226
|
+
- **Card**: {variants}
|
|
227
|
+
- **List**: {variants}
|
|
228
|
+
- **Table**: {if present}
|
|
229
|
+
- **Modal/Dialog**: {if present}
|
|
230
|
+
|
|
231
|
+
### Feedback Components
|
|
232
|
+
- **Toast/Notification**: {if present}
|
|
233
|
+
- **Loading States**: {spinners, skeletons}
|
|
234
|
+
- **Empty States**: {if present}
|
|
235
|
+
- **Error States**: {if present}
|
|
236
|
+
|
|
237
|
+
### Layout Components
|
|
238
|
+
- **Container**: {max-width, padding}
|
|
239
|
+
- **Grid**: {columns, gaps}
|
|
240
|
+
- **Stack**: {spacing patterns}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Step 5: Map User Flows
|
|
246
|
+
|
|
247
|
+
Identify user flows from screen sequences:
|
|
248
|
+
|
|
249
|
+
```markdown
|
|
250
|
+
## User Flows
|
|
251
|
+
|
|
252
|
+
### Flow 1: {flow-name}
|
|
253
|
+
**Screens**: {screen-1} → {screen-2} → {screen-3}
|
|
254
|
+
**Goal**: {what user accomplishes}
|
|
255
|
+
**Steps**:
|
|
256
|
+
1. User sees {screen-1}, {action}
|
|
257
|
+
2. System shows {screen-2}
|
|
258
|
+
3. User {action}
|
|
259
|
+
4. System {result}
|
|
260
|
+
|
|
261
|
+
### Flow 2: {flow-name}
|
|
262
|
+
...
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
### Step 6: Derive Requirements
|
|
268
|
+
|
|
269
|
+
Transform visual analysis into formal requirements:
|
|
270
|
+
|
|
271
|
+
```markdown
|
|
272
|
+
## Derived Requirements
|
|
273
|
+
|
|
274
|
+
### Functional Requirements (from prototype)
|
|
275
|
+
|
|
276
|
+
#### FR-P1: {Component/Feature Name}
|
|
277
|
+
- **Source**: {screenshot reference}
|
|
278
|
+
- **Description**: {what it does based on visual}
|
|
279
|
+
- **Acceptance Criteria**:
|
|
280
|
+
- [ ] {visual criterion 1}
|
|
281
|
+
- [ ] {visual criterion 2}
|
|
282
|
+
- **Components**: {list of components needed}
|
|
283
|
+
- **Priority**: {inferred from prominence}
|
|
284
|
+
|
|
285
|
+
#### FR-P2: {Component/Feature Name}
|
|
286
|
+
...
|
|
287
|
+
|
|
288
|
+
### Non-Functional Requirements (inferred)
|
|
289
|
+
|
|
290
|
+
#### NFR-P1: Visual Consistency
|
|
291
|
+
- Design system must be applied consistently
|
|
292
|
+
- All components follow extracted patterns
|
|
293
|
+
|
|
294
|
+
#### NFR-P2: Responsive Design
|
|
295
|
+
- {any responsive hints from prototype}
|
|
296
|
+
|
|
297
|
+
### Open Questions
|
|
298
|
+
- {things that aren't clear from prototype}
|
|
299
|
+
- {interactions that need clarification}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Checkpoint 3**: Present derived requirements.
|
|
303
|
+
|
|
304
|
+
```text
|
|
305
|
+
### Derived Requirements Review
|
|
306
|
+
|
|
307
|
+
Based on your prototype, I've derived these requirements:
|
|
308
|
+
|
|
309
|
+
{full requirements list}
|
|
310
|
+
|
|
311
|
+
### Open Questions
|
|
312
|
+
{list of clarifications needed}
|
|
313
|
+
|
|
314
|
+
How should we proceed?
|
|
315
|
+
1 - Requirements look good, create intent and continue inception
|
|
316
|
+
2 - Need to adjust requirements
|
|
317
|
+
3 - Answer open questions first
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Wait for user response.**
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## Output
|
|
325
|
+
|
|
326
|
+
### Artifacts Created
|
|
327
|
+
|
|
328
|
+
Save to `memory-bank/prototypes/{prototype-name}/`:
|
|
329
|
+
|
|
330
|
+
1. **screen-inventory.md** - Catalog of all screens
|
|
331
|
+
2. **design-system.md** - Extracted design tokens and patterns
|
|
332
|
+
3. **component-catalog.md** - Component inventory
|
|
333
|
+
4. **user-flows.md** - Identified user flows
|
|
334
|
+
5. **derived-requirements.md** - Requirements ready for inception
|
|
335
|
+
|
|
336
|
+
### Summary Output
|
|
337
|
+
|
|
338
|
+
```markdown
|
|
339
|
+
## Vibe-to-Spec Complete: {prototype-name}
|
|
340
|
+
|
|
341
|
+
### Prototype Analysis
|
|
342
|
+
- **Screens analyzed**: {n}
|
|
343
|
+
- **Components identified**: {n}
|
|
344
|
+
- **User flows mapped**: {n}
|
|
345
|
+
- **Requirements derived**: {n}
|
|
346
|
+
|
|
347
|
+
### Artifacts Created
|
|
348
|
+
- `memory-bank/prototypes/{name}/screen-inventory.md`
|
|
349
|
+
- `memory-bank/prototypes/{name}/design-system.md`
|
|
350
|
+
- `memory-bank/prototypes/{name}/component-catalog.md`
|
|
351
|
+
- `memory-bank/prototypes/{name}/user-flows.md`
|
|
352
|
+
- `memory-bank/prototypes/{name}/derived-requirements.md`
|
|
353
|
+
|
|
354
|
+
### Next Steps
|
|
355
|
+
|
|
356
|
+
1 - **intent-create**: Create intent using derived requirements
|
|
357
|
+
2 - **requirements**: Refine requirements with standard flow
|
|
358
|
+
3 - **review**: Review all prototype artifacts
|
|
359
|
+
|
|
360
|
+
### Suggested Next Step
|
|
361
|
+
→ **intent-create** - Create intent "{suggested-name}" from prototype
|
|
362
|
+
|
|
363
|
+
**Type a number or press Enter for suggested action.**
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Integration with Inception Flow
|
|
369
|
+
|
|
370
|
+
After vibe-to-spec completes:
|
|
371
|
+
|
|
372
|
+
1. **intent-create** can reference `derived-requirements.md`
|
|
373
|
+
2. **requirements** skill can import and refine FR-P* items
|
|
374
|
+
3. **context** skill can use component catalog for system boundaries
|
|
375
|
+
4. **units** skill can organize by identified flows
|
|
376
|
+
5. **stories** skill can generate from user flow mapping
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## Construction Phase Reference
|
|
381
|
+
|
|
382
|
+
When Construction Agent starts a bolt that references this prototype:
|
|
383
|
+
|
|
384
|
+
1. Load `design-system.md` for styling decisions
|
|
385
|
+
2. Reference `component-catalog.md` for component specs
|
|
386
|
+
3. Use screenshots as visual acceptance criteria
|
|
387
|
+
4. Apply extracted design tokens to implementation
|
|
388
|
+
5. **Use frontend-design skill if available** - When implementing UI components, invoke the `/frontend-design` skill for high-quality, production-grade frontend code that avoids generic AI aesthetics
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Test Contract
|
|
393
|
+
|
|
394
|
+
```yaml
|
|
395
|
+
input: Prototype folder with screenshots/HTML
|
|
396
|
+
output:
|
|
397
|
+
- screen-inventory.md
|
|
398
|
+
- design-system.md
|
|
399
|
+
- component-catalog.md
|
|
400
|
+
- user-flows.md
|
|
401
|
+
- derived-requirements.md
|
|
402
|
+
checkpoints: 3
|
|
403
|
+
- Checkpoint 1: Prototype inventory confirmed
|
|
404
|
+
- Checkpoint 2: Design system approved
|
|
405
|
+
- Checkpoint 3: Derived requirements approved
|
|
406
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specsmd",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.41",
|
|
4
4
|
"description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
|
|
5
5
|
"main": "lib/installer.js",
|
|
6
6
|
"bin": {
|