specdacular 0.7.1 → 0.8.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 +72 -74
- package/commands/specd/continue.md +59 -0
- package/commands/specd/new.md +65 -0
- package/commands/specd/status.md +1 -1
- package/commands/specd/toolbox.md +59 -0
- package/package.json +1 -1
- package/specdacular/HELP.md +19 -16
- package/specdacular/agents/feature-researcher.md +4 -4
- package/specdacular/references/load-context.md +83 -0
- package/specdacular/references/record-decision.md +61 -0
- package/specdacular/references/select-feature.md +20 -20
- package/specdacular/references/select-phase.md +3 -3
- package/specdacular/references/spawn-research-agents.md +180 -0
- package/specdacular/references/synthesize-research.md +127 -0
- package/specdacular/references/validate-task.md +64 -0
- package/specdacular/templates/{features → tasks}/CHANGELOG.md +2 -8
- package/specdacular/templates/{features → tasks}/CONTEXT.md +6 -17
- package/specdacular/templates/tasks/DECISIONS.md +46 -0
- package/specdacular/templates/{features → tasks}/FEATURE.md +3 -3
- package/specdacular/templates/tasks/PLAN.md +91 -0
- package/specdacular/templates/tasks/RESEARCH.md +121 -0
- package/specdacular/templates/{features → tasks}/ROADMAP.md +6 -43
- package/specdacular/templates/tasks/STATE.md +93 -0
- package/specdacular/templates/tasks/config.json +15 -0
- package/specdacular/workflows/continue.md +275 -0
- package/specdacular/workflows/discuss.md +184 -0
- package/specdacular/workflows/execute.md +174 -0
- package/specdacular/workflows/new.md +299 -0
- package/specdacular/workflows/orchestrator/new.md +265 -0
- package/specdacular/workflows/orchestrator/plan.md +169 -0
- package/specdacular/workflows/plan.md +201 -0
- package/specdacular/workflows/research.md +166 -0
- package/specdacular/workflows/review.md +289 -0
- package/specdacular/workflows/status.md +17 -17
- package/commands/specd/blueprint.md +0 -64
- package/commands/specd/feature/continue.md +0 -84
- package/commands/specd/feature/new.md +0 -67
- package/commands/specd/feature/toolbox.md +0 -49
- package/specdacular/templates/blueprint/index.html +0 -110
- package/specdacular/templates/blueprint/scripts.js +0 -71
- package/specdacular/templates/blueprint/styles.css +0 -429
- package/specdacular/templates/features/DECISIONS.md +0 -109
- package/specdacular/templates/features/DEPENDENCIES.md +0 -47
- package/specdacular/templates/features/PLAN.md +0 -180
- package/specdacular/templates/features/RESEARCH.md +0 -183
- package/specdacular/templates/features/STATE.md +0 -110
- package/specdacular/templates/features/config.json +0 -20
- package/specdacular/workflows/blueprint-diagrams.md +0 -273
- package/specdacular/workflows/blueprint-wireframes.md +0 -312
- package/specdacular/workflows/blueprint.md +0 -372
- package/specdacular/workflows/continue-feature.md +0 -621
- package/specdacular/workflows/discuss-feature.md +0 -382
- package/specdacular/workflows/execute-plan.md +0 -636
- package/specdacular/workflows/insert-phase.md +0 -246
- package/specdacular/workflows/new-feature.md +0 -760
- package/specdacular/workflows/plan-feature.md +0 -691
- package/specdacular/workflows/plan-phase.md +0 -355
- package/specdacular/workflows/prepare-phase.md +0 -745
- package/specdacular/workflows/renumber-phases.md +0 -273
- package/specdacular/workflows/research-feature.md +0 -252
- package/specdacular/workflows/research-phase.md +0 -576
- package/specdacular/workflows/review-feature.md +0 -316
- package/specdacular/workflows/review-phase.md +0 -545
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Generate Mermaid diagrams for a Specdacular feature blueprint.
|
|
3
|
-
|
|
4
|
-
Reads FEATURE.md, DECISIONS.md, and plans to understand the feature flow
|
|
5
|
-
and data relationships, then generates visual diagrams.
|
|
6
|
-
|
|
7
|
-
**Output:** `.specd/features/{name}/blueprint/diagrams.html`
|
|
8
|
-
|
|
9
|
-
**Invoked by:** `/specd:blueprint {feature} diagrams`
|
|
10
|
-
</purpose>
|
|
11
|
-
|
|
12
|
-
<philosophy>
|
|
13
|
-
|
|
14
|
-
## High-Level Understanding
|
|
15
|
-
|
|
16
|
-
Diagrams should help users understand the feature at a conceptual level.
|
|
17
|
-
Focus on the happy path and main flow, not every edge case.
|
|
18
|
-
|
|
19
|
-
## Two Diagram Types
|
|
20
|
-
|
|
21
|
-
1. **Flow Diagram** — Shows the process/workflow from start to end
|
|
22
|
-
2. **ER Diagram** — Shows data entities and relationships (if applicable)
|
|
23
|
-
|
|
24
|
-
## Keep It Simple
|
|
25
|
-
|
|
26
|
-
- Maximum 10-15 nodes per diagram
|
|
27
|
-
- Clear labels, no jargon
|
|
28
|
-
- Logical grouping with subgraphs if needed
|
|
29
|
-
|
|
30
|
-
</philosophy>
|
|
31
|
-
|
|
32
|
-
<process>
|
|
33
|
-
|
|
34
|
-
<step name="validate">
|
|
35
|
-
Check feature exists and main blueprint was generated.
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# Check feature directory exists
|
|
39
|
-
[ -d ".specd/features/$FEATURE_NAME" ] || { echo "Feature not found"; exit 1; }
|
|
40
|
-
|
|
41
|
-
# Check blueprint exists (diagrams extend the blueprint)
|
|
42
|
-
[ -f ".specd/features/$FEATURE_NAME/blueprint/index.html" ] || { echo "Run /specd:blueprint $FEATURE_NAME first"; exit 1; }
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**If blueprint not found:**
|
|
46
|
-
```
|
|
47
|
-
Blueprint not generated yet.
|
|
48
|
-
|
|
49
|
-
Run `/specd:blueprint {name}` first, then add diagrams.
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Continue to load_context.
|
|
53
|
-
</step>
|
|
54
|
-
|
|
55
|
-
<step name="load_context">
|
|
56
|
-
Read feature files to understand flow and data relationships.
|
|
57
|
-
|
|
58
|
-
**Read with Read tool:**
|
|
59
|
-
- `.specd/features/{name}/FEATURE.md` — Feature purpose, components
|
|
60
|
-
- `.specd/features/{name}/DECISIONS.md` — Architectural decisions
|
|
61
|
-
- `.specd/features/{name}/CONTEXT.md` — Clarified requirements
|
|
62
|
-
- `.specd/features/{name}/plans/` — Execution plans (if exist)
|
|
63
|
-
|
|
64
|
-
**Extract:**
|
|
65
|
-
- Main user journey (from FEATURE.md)
|
|
66
|
-
- Key decision points (from DECISIONS.md)
|
|
67
|
-
- Data entities and relationships (from artifacts)
|
|
68
|
-
- Process steps (from plans)
|
|
69
|
-
|
|
70
|
-
Continue to generate_flow_diagram.
|
|
71
|
-
</step>
|
|
72
|
-
|
|
73
|
-
<step name="generate_flow_diagram">
|
|
74
|
-
Generate a Mermaid flowchart showing the feature's process flow.
|
|
75
|
-
|
|
76
|
-
**Analyze feature to identify:**
|
|
77
|
-
- Start point (user action or trigger)
|
|
78
|
-
- Main process steps
|
|
79
|
-
- Decision points (if/else branches)
|
|
80
|
-
- End point (success state)
|
|
81
|
-
|
|
82
|
-
**Mermaid flowchart syntax:**
|
|
83
|
-
```mermaid
|
|
84
|
-
graph TD
|
|
85
|
-
A[Start: User Action] --> B[Step 1]
|
|
86
|
-
B --> C{Decision Point}
|
|
87
|
-
C -->|Yes| D[Happy Path]
|
|
88
|
-
C -->|No| E[Alternative]
|
|
89
|
-
D --> F[End: Success]
|
|
90
|
-
E --> F
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Guidelines:**
|
|
94
|
-
- Use `graph TD` (top-down) for process flows
|
|
95
|
-
- Use `graph LR` (left-right) for pipelines
|
|
96
|
-
- Keep to 10-15 nodes maximum
|
|
97
|
-
- Use clear, short labels
|
|
98
|
-
- Group related steps in subgraphs if needed
|
|
99
|
-
|
|
100
|
-
**Store flow diagram Mermaid code for later embedding.**
|
|
101
|
-
|
|
102
|
-
Continue to generate_er_diagram.
|
|
103
|
-
</step>
|
|
104
|
-
|
|
105
|
-
<step name="generate_er_diagram">
|
|
106
|
-
Generate a Mermaid ER diagram showing data relationships.
|
|
107
|
-
|
|
108
|
-
**Analyze feature to identify:**
|
|
109
|
-
- Main data entities (files, objects, records)
|
|
110
|
-
- Relationships between entities
|
|
111
|
-
- Key attributes of each entity
|
|
112
|
-
|
|
113
|
-
**Mermaid ER syntax:**
|
|
114
|
-
```mermaid
|
|
115
|
-
erDiagram
|
|
116
|
-
FEATURE ||--o{ DECISION : contains
|
|
117
|
-
FEATURE ||--o{ PLAN : has
|
|
118
|
-
DECISION {
|
|
119
|
-
string id
|
|
120
|
-
string title
|
|
121
|
-
string status
|
|
122
|
-
}
|
|
123
|
-
PLAN {
|
|
124
|
-
int phase
|
|
125
|
-
int number
|
|
126
|
-
string title
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
**Guidelines:**
|
|
131
|
-
- Only include entities relevant to understanding the feature
|
|
132
|
-
- Show cardinality: `||` (one), `o{` (many), `|o` (zero or one)
|
|
133
|
-
- Include 2-4 key attributes per entity
|
|
134
|
-
- Skip ER diagram if feature doesn't have meaningful data relationships
|
|
135
|
-
|
|
136
|
-
**Store ER diagram Mermaid code for later embedding.**
|
|
137
|
-
|
|
138
|
-
Continue to generate_html.
|
|
139
|
-
</step>
|
|
140
|
-
|
|
141
|
-
<step name="generate_html">
|
|
142
|
-
Generate the diagrams HTML page with embedded Mermaid.
|
|
143
|
-
|
|
144
|
-
**HTML template:**
|
|
145
|
-
```html
|
|
146
|
-
<!DOCTYPE html>
|
|
147
|
-
<html>
|
|
148
|
-
<head>
|
|
149
|
-
<title>Diagrams: {feature-name}</title>
|
|
150
|
-
<script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
|
|
151
|
-
<style>
|
|
152
|
-
body { font-family: system-ui, sans-serif; background: #f5f5f5; margin: 0; padding: 20px; }
|
|
153
|
-
.diagram-container { max-width: 1000px; margin: 0 auto; }
|
|
154
|
-
.diagram-section { background: white; border: 1px solid #ddd; padding: 20px; margin-bottom: 20px; border-radius: 4px; }
|
|
155
|
-
.diagram-section h2 { margin-top: 0; color: #333; border-bottom: 1px solid #eee; padding-bottom: 10px; }
|
|
156
|
-
.mermaid { text-align: center; }
|
|
157
|
-
.diagram-description { color: #666; font-size: 14px; margin-bottom: 15px; }
|
|
158
|
-
</style>
|
|
159
|
-
</head>
|
|
160
|
-
<body>
|
|
161
|
-
<div class="diagram-container">
|
|
162
|
-
<h1>{feature-name} - Diagrams</h1>
|
|
163
|
-
<p style="color: #666;">Generated {date}</p>
|
|
164
|
-
|
|
165
|
-
<div class="diagram-section">
|
|
166
|
-
<h2>Process Flow</h2>
|
|
167
|
-
<p class="diagram-description">{flow-description}</p>
|
|
168
|
-
<pre class="mermaid">
|
|
169
|
-
{flow-diagram-mermaid}
|
|
170
|
-
</pre>
|
|
171
|
-
</div>
|
|
172
|
-
|
|
173
|
-
<div class="diagram-section">
|
|
174
|
-
<h2>Data Relationships</h2>
|
|
175
|
-
<p class="diagram-description">{er-description}</p>
|
|
176
|
-
<pre class="mermaid">
|
|
177
|
-
{er-diagram-mermaid}
|
|
178
|
-
</pre>
|
|
179
|
-
</div>
|
|
180
|
-
</div>
|
|
181
|
-
|
|
182
|
-
<script>
|
|
183
|
-
mermaid.initialize({
|
|
184
|
-
startOnLoad: true,
|
|
185
|
-
theme: 'default',
|
|
186
|
-
securityLevel: 'loose'
|
|
187
|
-
});
|
|
188
|
-
</script>
|
|
189
|
-
</body>
|
|
190
|
-
</html>
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**Replace placeholders:**
|
|
194
|
-
- `{feature-name}` — Feature name
|
|
195
|
-
- `{date}` — Current date (YYYY-MM-DD)
|
|
196
|
-
- `{flow-description}` — Brief description of what the flow shows
|
|
197
|
-
- `{flow-diagram-mermaid}` — Generated flow diagram code
|
|
198
|
-
- `{er-description}` — Brief description of data model
|
|
199
|
-
- `{er-diagram-mermaid}` — Generated ER diagram code
|
|
200
|
-
|
|
201
|
-
Continue to write_diagrams.
|
|
202
|
-
</step>
|
|
203
|
-
|
|
204
|
-
<step name="write_diagrams">
|
|
205
|
-
Write the diagrams HTML file.
|
|
206
|
-
|
|
207
|
-
**Write file:**
|
|
208
|
-
Use Write tool to create `.specd/features/{name}/blueprint/diagrams.html`
|
|
209
|
-
with the generated HTML content.
|
|
210
|
-
|
|
211
|
-
Continue to update_blueprint.
|
|
212
|
-
</step>
|
|
213
|
-
|
|
214
|
-
<step name="update_blueprint">
|
|
215
|
-
Update the main blueprint to enable the diagrams tab.
|
|
216
|
-
|
|
217
|
-
**Read:** `.specd/features/{name}/blueprint/index.html`
|
|
218
|
-
|
|
219
|
-
**Find and update:**
|
|
220
|
-
- Change `class="tab-link disabled"` to `class="tab-link"` for diagrams tab
|
|
221
|
-
- Find `<section id="diagrams"` and update content:
|
|
222
|
-
|
|
223
|
-
```html
|
|
224
|
-
<section id="diagrams" class="tab-content">
|
|
225
|
-
<h2>Diagrams</h2>
|
|
226
|
-
<p>Visual diagrams showing feature flow and data relationships.</p>
|
|
227
|
-
<iframe src="diagrams.html" style="width: 100%; height: 700px; border: 1px solid #ddd;"></iframe>
|
|
228
|
-
<p><a href="diagrams.html" target="_blank">Open in new tab</a></p>
|
|
229
|
-
</section>
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
**Write updated blueprint.**
|
|
233
|
-
|
|
234
|
-
Continue to present_completion.
|
|
235
|
-
</step>
|
|
236
|
-
|
|
237
|
-
<step name="present_completion">
|
|
238
|
-
Present diagrams completion.
|
|
239
|
-
|
|
240
|
-
```
|
|
241
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
242
|
-
DIAGRAMS GENERATED
|
|
243
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
244
|
-
|
|
245
|
-
**Feature:** {feature-name}
|
|
246
|
-
|
|
247
|
-
## Diagrams Created
|
|
248
|
-
- Flow Diagram: {brief description}
|
|
249
|
-
- ER Diagram: {brief description}
|
|
250
|
-
|
|
251
|
-
## Files
|
|
252
|
-
- Diagrams: `.specd/features/{name}/blueprint/diagrams.html`
|
|
253
|
-
- Blueprint updated: Diagrams tab now enabled
|
|
254
|
-
|
|
255
|
-
───────────────────────────────────────────────────────
|
|
256
|
-
|
|
257
|
-
**View:** Open blueprint in browser to see diagrams tab.
|
|
258
|
-
|
|
259
|
-
**Regenerate:** Run `/specd:blueprint {name} diagrams` again to update.
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
End workflow.
|
|
263
|
-
</step>
|
|
264
|
-
|
|
265
|
-
</process>
|
|
266
|
-
|
|
267
|
-
<success_criteria>
|
|
268
|
-
- [ ] Feature validated
|
|
269
|
-
- [ ] Flow diagram generated from feature artifacts
|
|
270
|
-
- [ ] ER diagram generated (if applicable)
|
|
271
|
-
- [ ] Diagrams HTML written with Mermaid.js
|
|
272
|
-
- [ ] Main blueprint updated with diagrams tab enabled
|
|
273
|
-
</success_criteria>
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Generate HTML/CSS wireframes for a Specdacular feature blueprint.
|
|
3
|
-
|
|
4
|
-
Reads FEATURE.md to understand UI requirements, generates visual mockups
|
|
5
|
-
showing layout, component placement, and interaction points.
|
|
6
|
-
|
|
7
|
-
**Output:** `.specd/features/{name}/blueprint/wireframes.html`
|
|
8
|
-
|
|
9
|
-
**Invoked by:** `/specd:blueprint {feature} wireframes`
|
|
10
|
-
</purpose>
|
|
11
|
-
|
|
12
|
-
<philosophy>
|
|
13
|
-
|
|
14
|
-
## PM-Friendly Output
|
|
15
|
-
|
|
16
|
-
Wireframes should be understandable by non-technical stakeholders.
|
|
17
|
-
Focus on layout, navigation flow, and button placement rather than
|
|
18
|
-
implementation details.
|
|
19
|
-
|
|
20
|
-
## Visual Over Text
|
|
21
|
-
|
|
22
|
-
Generate actual HTML/CSS mockups, not ASCII diagrams. Use boxes,
|
|
23
|
-
buttons, and placeholder text that resembles the final UI.
|
|
24
|
-
|
|
25
|
-
## Consistent Style
|
|
26
|
-
|
|
27
|
-
Use a consistent wireframe aesthetic:
|
|
28
|
-
- Gray backgrounds for containers
|
|
29
|
-
- Blue buttons for primary actions
|
|
30
|
-
- Dashed borders for optional/future elements
|
|
31
|
-
- Clear labels for all interactive elements
|
|
32
|
-
|
|
33
|
-
</philosophy>
|
|
34
|
-
|
|
35
|
-
<process>
|
|
36
|
-
|
|
37
|
-
<step name="validate">
|
|
38
|
-
Check feature exists and main blueprint was generated.
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
# Check feature directory exists
|
|
42
|
-
[ -d ".specd/features/$FEATURE_NAME" ] || { echo "Feature not found"; exit 1; }
|
|
43
|
-
|
|
44
|
-
# Check blueprint exists (wireframes extend the blueprint)
|
|
45
|
-
[ -f ".specd/features/$FEATURE_NAME/blueprint/index.html" ] || { echo "Run /specd:blueprint $FEATURE_NAME first"; exit 1; }
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**If blueprint not found:**
|
|
49
|
-
```
|
|
50
|
-
Blueprint not generated yet.
|
|
51
|
-
|
|
52
|
-
Run `/specd:blueprint {name}` first, then add wireframes.
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Continue to prompt_scope.
|
|
56
|
-
</step>
|
|
57
|
-
|
|
58
|
-
<step name="prompt_scope">
|
|
59
|
-
Prompt user for wireframe scope.
|
|
60
|
-
|
|
61
|
-
**Present choice using AskUserQuestion:**
|
|
62
|
-
```
|
|
63
|
-
question: "What scope for wireframes?"
|
|
64
|
-
header: "Scope"
|
|
65
|
-
options:
|
|
66
|
-
- label: "Per feature (recommended)"
|
|
67
|
-
description: "Single wireframe showing the complete feature UI"
|
|
68
|
-
- label: "Per phase"
|
|
69
|
-
description: "Separate wireframe for each phase (useful for complex multi-phase features)"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Store response:**
|
|
73
|
-
- "Per feature" → scope = "feature"
|
|
74
|
-
- "Per phase" → scope = "phase"
|
|
75
|
-
|
|
76
|
-
Continue to load_context.
|
|
77
|
-
</step>
|
|
78
|
-
|
|
79
|
-
<step name="load_context">
|
|
80
|
-
Read feature files to understand UI requirements.
|
|
81
|
-
|
|
82
|
-
**Read with Read tool:**
|
|
83
|
-
- `.specd/features/{name}/FEATURE.md` — UI requirements, components
|
|
84
|
-
- `.specd/features/{name}/DECISIONS.md` — UI-related decisions
|
|
85
|
-
- `.specd/features/{name}/CONTEXT.md` — Clarified requirements
|
|
86
|
-
|
|
87
|
-
**Extract from FEATURE.md:**
|
|
88
|
-
- `## What This Is` — Overall feature purpose
|
|
89
|
-
- `### Must Create` — Components and files (look for UI elements)
|
|
90
|
-
- `## Success Criteria` — User-facing requirements
|
|
91
|
-
|
|
92
|
-
**If scope is "phase":**
|
|
93
|
-
- List phase directories in `.specd/features/{name}/plans/`
|
|
94
|
-
- For each phase, note if it has UI-related content
|
|
95
|
-
- Phases are numbered: phase-01, phase-02, etc.
|
|
96
|
-
|
|
97
|
-
Continue to analyze_ui.
|
|
98
|
-
</step>
|
|
99
|
-
|
|
100
|
-
<step name="analyze_ui">
|
|
101
|
-
Identify UI components from feature artifacts.
|
|
102
|
-
|
|
103
|
-
**Look for:**
|
|
104
|
-
- Commands/inputs the user will interact with
|
|
105
|
-
- Output displays (HTML pages, reports, visualizations)
|
|
106
|
-
- Navigation elements (tabs, menus, links)
|
|
107
|
-
- Action buttons (submit, generate, refresh)
|
|
108
|
-
- Data displays (lists, tables, cards)
|
|
109
|
-
|
|
110
|
-
**For each component, note:**
|
|
111
|
-
- Name and purpose
|
|
112
|
-
- Position in layout (header, sidebar, main, footer)
|
|
113
|
-
- Interaction type (click, input, select)
|
|
114
|
-
- Relationship to other components
|
|
115
|
-
|
|
116
|
-
Continue to generate_wireframe.
|
|
117
|
-
</step>
|
|
118
|
-
|
|
119
|
-
<step name="generate_wireframe">
|
|
120
|
-
Generate HTML/CSS wireframe mockup.
|
|
121
|
-
|
|
122
|
-
**If scope is "feature":**
|
|
123
|
-
Generate single combined wireframe as below.
|
|
124
|
-
|
|
125
|
-
**If scope is "phase":**
|
|
126
|
-
For each phase:
|
|
127
|
-
1. Analyze phase plans for UI components
|
|
128
|
-
2. If phase has UI elements:
|
|
129
|
-
- Generate wireframe for that phase
|
|
130
|
-
- Add phase number to header: "Phase N: {feature-name}"
|
|
131
|
-
3. If phase has NO UI elements:
|
|
132
|
-
- Skip wireframe generation for this phase
|
|
133
|
-
- Note: "Phase N has no UI — consider generating diagrams"
|
|
134
|
-
|
|
135
|
-
**Wireframe template structure:**
|
|
136
|
-
```html
|
|
137
|
-
<!DOCTYPE html>
|
|
138
|
-
<html>
|
|
139
|
-
<head>
|
|
140
|
-
<title>Wireframe: {feature-name}</title>
|
|
141
|
-
<style>
|
|
142
|
-
/* Wireframe styles */
|
|
143
|
-
body { font-family: system-ui, sans-serif; background: #f0f0f0; margin: 0; padding: 20px; }
|
|
144
|
-
.wireframe-container { max-width: 1200px; margin: 0 auto; }
|
|
145
|
-
.wireframe-header { background: #e0e0e0; padding: 20px; border: 2px solid #999; margin-bottom: 20px; }
|
|
146
|
-
.wireframe-section { background: white; border: 2px solid #ccc; padding: 20px; margin-bottom: 20px; }
|
|
147
|
-
.wireframe-button { background: #4a90d9; color: white; padding: 10px 20px; border: none; cursor: pointer; }
|
|
148
|
-
.wireframe-button.secondary { background: #888; }
|
|
149
|
-
.wireframe-input { border: 2px solid #ccc; padding: 10px; width: 200px; }
|
|
150
|
-
.wireframe-placeholder { background: #f5f5f5; border: 2px dashed #ccc; padding: 40px; text-align: center; color: #888; }
|
|
151
|
-
.wireframe-label { font-size: 12px; color: #666; margin-bottom: 5px; }
|
|
152
|
-
.wireframe-nav { display: flex; gap: 10px; margin-bottom: 20px; }
|
|
153
|
-
.wireframe-nav-item { padding: 10px 15px; background: #ddd; border: 1px solid #999; }
|
|
154
|
-
.wireframe-nav-item.active { background: #4a90d9; color: white; }
|
|
155
|
-
</style>
|
|
156
|
-
</head>
|
|
157
|
-
<body>
|
|
158
|
-
<div class="wireframe-container">
|
|
159
|
-
<div class="wireframe-header">
|
|
160
|
-
<h1>{feature-name}</h1>
|
|
161
|
-
<p class="wireframe-label">Feature Wireframe - Generated {date}</p>
|
|
162
|
-
</div>
|
|
163
|
-
|
|
164
|
-
<!-- Generated wireframe content -->
|
|
165
|
-
{wireframe-content}
|
|
166
|
-
|
|
167
|
-
</div>
|
|
168
|
-
</body>
|
|
169
|
-
</html>
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**Generate content based on feature type:**
|
|
173
|
-
|
|
174
|
-
For command-based features:
|
|
175
|
-
```html
|
|
176
|
-
<div class="wireframe-section">
|
|
177
|
-
<p class="wireframe-label">Command Input</p>
|
|
178
|
-
<code>/{command-name} {arguments}</code>
|
|
179
|
-
</div>
|
|
180
|
-
|
|
181
|
-
<div class="wireframe-section">
|
|
182
|
-
<p class="wireframe-label">Output Display</p>
|
|
183
|
-
<div class="wireframe-placeholder">
|
|
184
|
-
{output-description}
|
|
185
|
-
</div>
|
|
186
|
-
</div>
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
For UI-based features:
|
|
190
|
-
```html
|
|
191
|
-
<div class="wireframe-nav">
|
|
192
|
-
<div class="wireframe-nav-item active">Tab 1</div>
|
|
193
|
-
<div class="wireframe-nav-item">Tab 2</div>
|
|
194
|
-
</div>
|
|
195
|
-
|
|
196
|
-
<div class="wireframe-section">
|
|
197
|
-
<p class="wireframe-label">Main Content Area</p>
|
|
198
|
-
<!-- Component mockups -->
|
|
199
|
-
</div>
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
Continue to write_wireframe.
|
|
203
|
-
</step>
|
|
204
|
-
|
|
205
|
-
<step name="write_wireframe">
|
|
206
|
-
Write the wireframe HTML file(s).
|
|
207
|
-
|
|
208
|
-
**If scope is "feature":**
|
|
209
|
-
Use Write tool to create `.specd/features/{name}/blueprint/wireframes.html`
|
|
210
|
-
with the generated wireframe content.
|
|
211
|
-
|
|
212
|
-
**If scope is "phase":**
|
|
213
|
-
For each phase with UI elements:
|
|
214
|
-
- Write to `.specd/features/{name}/blueprint/wireframes-phase-{NN}.html`
|
|
215
|
-
- Example: `wireframes-phase-01.html`, `wireframes-phase-02.html`
|
|
216
|
-
|
|
217
|
-
Continue to update_blueprint.
|
|
218
|
-
</step>
|
|
219
|
-
|
|
220
|
-
<step name="update_blueprint">
|
|
221
|
-
Update the main blueprint to enable the wireframes tab.
|
|
222
|
-
|
|
223
|
-
**Read:** `.specd/features/{name}/blueprint/index.html`
|
|
224
|
-
|
|
225
|
-
**Find and update:**
|
|
226
|
-
- Change `class="tab-link disabled"` to `class="tab-link"` for wireframes tab
|
|
227
|
-
- Find `<section id="wireframes"` and update content:
|
|
228
|
-
|
|
229
|
-
**If scope is "feature":**
|
|
230
|
-
```html
|
|
231
|
-
<section id="wireframes" class="tab-content">
|
|
232
|
-
<h2>Wireframes</h2>
|
|
233
|
-
<p>Visual mockup of the feature interface.</p>
|
|
234
|
-
<iframe src="wireframes.html" style="width: 100%; height: 600px; border: 1px solid #ddd;"></iframe>
|
|
235
|
-
<p><a href="wireframes.html" target="_blank">Open in new tab</a></p>
|
|
236
|
-
</section>
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**If scope is "phase":**
|
|
240
|
-
```html
|
|
241
|
-
<section id="wireframes" class="tab-content">
|
|
242
|
-
<h2>Wireframes</h2>
|
|
243
|
-
<p>Visual mockups of the feature interface.</p>
|
|
244
|
-
<div class="phase-tabs">
|
|
245
|
-
<button class="phase-tab active" data-wireframe="phase-01">Phase 1</button>
|
|
246
|
-
<button class="phase-tab" data-wireframe="phase-02">Phase 2</button>
|
|
247
|
-
<!-- ... for each phase with wireframes -->
|
|
248
|
-
</div>
|
|
249
|
-
<iframe id="wireframe-viewer" src="wireframes-phase-01.html" style="width: 100%; height: 600px; border: 1px solid #ddd;"></iframe>
|
|
250
|
-
<script>
|
|
251
|
-
document.querySelectorAll('[data-wireframe]').forEach(btn => {
|
|
252
|
-
btn.addEventListener('click', function() {
|
|
253
|
-
document.querySelectorAll('[data-wireframe]').forEach(b => b.classList.remove('active'));
|
|
254
|
-
this.classList.add('active');
|
|
255
|
-
document.getElementById('wireframe-viewer').src = 'wireframes-' + this.dataset.wireframe + '.html';
|
|
256
|
-
});
|
|
257
|
-
});
|
|
258
|
-
</script>
|
|
259
|
-
</section>
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
**Write updated blueprint.**
|
|
263
|
-
|
|
264
|
-
Continue to present_completion.
|
|
265
|
-
</step>
|
|
266
|
-
|
|
267
|
-
<step name="present_completion">
|
|
268
|
-
Present wireframes completion.
|
|
269
|
-
|
|
270
|
-
```
|
|
271
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
272
|
-
WIREFRAMES GENERATED
|
|
273
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
274
|
-
|
|
275
|
-
**Feature:** {feature-name}
|
|
276
|
-
|
|
277
|
-
## Components Visualized
|
|
278
|
-
- {list of UI components}
|
|
279
|
-
|
|
280
|
-
## Files
|
|
281
|
-
|
|
282
|
-
**If scope is "feature":**
|
|
283
|
-
- Wireframe: `.specd/features/{name}/blueprint/wireframes.html`
|
|
284
|
-
|
|
285
|
-
**If scope is "phase":**
|
|
286
|
-
- Phase 1: `.specd/features/{name}/blueprint/wireframes-phase-01.html`
|
|
287
|
-
- Phase 2: `.specd/features/{name}/blueprint/wireframes-phase-02.html`
|
|
288
|
-
<!-- ... for each generated phase -->
|
|
289
|
-
|
|
290
|
-
**Phases without UI:**
|
|
291
|
-
- Phase N: No UI elements (consider `/specd:blueprint {name} diagrams`)
|
|
292
|
-
|
|
293
|
-
- Blueprint updated: Wireframes tab now enabled
|
|
294
|
-
|
|
295
|
-
───────────────────────────────────────────────────────
|
|
296
|
-
|
|
297
|
-
**View:** Open blueprint in browser to see wireframes tab.
|
|
298
|
-
|
|
299
|
-
**Regenerate:** Run `/specd:blueprint {name} wireframes` again to update.
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
End workflow.
|
|
303
|
-
</step>
|
|
304
|
-
|
|
305
|
-
</process>
|
|
306
|
-
|
|
307
|
-
<success_criteria>
|
|
308
|
-
- [ ] Feature validated
|
|
309
|
-
- [ ] UI components identified from artifacts
|
|
310
|
-
- [ ] Wireframe HTML generated
|
|
311
|
-
- [ ] Main blueprint updated with wireframes tab enabled
|
|
312
|
-
</success_criteria>
|