@xenonbyte/da-vinci-workflow 0.1.2 → 0.1.4

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 CHANGED
@@ -23,6 +23,19 @@ This workflow is intended for:
23
23
  - redesign from existing code
24
24
  - scoped feature delivery on an existing product
25
25
 
26
+ ## Current release
27
+
28
+ Current npm release target:
29
+
30
+ - `@xenonbyte/da-vinci-workflow@0.1.4`
31
+
32
+ Release highlights:
33
+
34
+ - project-level visual contract support through `DA-VINCI.md`
35
+ - redesign-from-code now prefers redesign-slice specs over one oversized `ui-refresh/spec.md`
36
+ - Node-first install, uninstall, status, and asset validation commands
37
+ - repo-local forward-test example for a `greenfield-spec` workflow
38
+
26
39
  ## Supported workflow modes
27
40
 
28
41
  Da Vinci V2 supports four modes.
@@ -49,36 +62,39 @@ Da Vinci runs in this order:
49
62
 
50
63
  1. select the active mode
51
64
  2. build the correct source artifacts
52
- 3. collect design inputs and register design sources
53
- 4. define or discover the project page map
54
- 5. create or update Pencil designs
55
- 6. bind implementation pages to Pencil pages
56
- 7. read Pencil design data through MCP
57
- 8. generate implementation tasks
58
- 9. implement code from requirements plus Pencil data
59
- 10. verify requirement drift and design drift
65
+ 3. detect or generate `DA-VINCI.md` as the project visual contract
66
+ 4. collect design inputs and register design sources
67
+ 5. define or discover the project page map
68
+ 6. create or update Pencil designs
69
+ 7. bind implementation pages to Pencil pages
70
+ 8. read Pencil design data through MCP
71
+ 9. generate implementation tasks
72
+ 10. implement code from requirements plus Pencil data
73
+ 11. verify requirement drift and design drift
60
74
 
61
75
  ## Default artifacts
62
76
 
63
77
  Depending on the mode, the workflow may use these artifacts:
64
78
 
65
- - `brainstorm.md`
66
- - `project-inventory.md`
67
- - `design-brief.md`
68
- - `design-registry.md`
69
- - `page-map.md`
70
- - `proposal.md`
71
- - `specs/<capability>/spec.md`
72
- - `design.md`
73
- - `pencil-design.md`
74
- - `pencil-bindings.md`
75
- - `tasks.md`
76
- - `verification.md`
79
+ - `.da-vinci/changes/<change-id>/brainstorm.md`
80
+ - `.da-vinci/project-inventory.md`
81
+ - `DA-VINCI.md`
82
+ - `.da-vinci/changes/<change-id>/design-brief.md`
83
+ - `.da-vinci/design-registry.md`
84
+ - `.da-vinci/page-map.md`
85
+ - `.da-vinci/changes/<change-id>/proposal.md`
86
+ - `.da-vinci/changes/<change-id>/specs/<capability>/spec.md`
87
+ - `.da-vinci/changes/<change-id>/design.md`
88
+ - `.da-vinci/changes/<change-id>/pencil-design.md`
89
+ - `.da-vinci/changes/<change-id>/pencil-bindings.md`
90
+ - `.da-vinci/changes/<change-id>/tasks.md`
91
+ - `.da-vinci/changes/<change-id>/verification.md`
77
92
 
78
93
  ### Artifact intent
79
94
 
80
95
  - `brainstorm.md`: raw ideas before specs are stable
81
96
  - `project-inventory.md`: current routes, pages, and UI patterns from an existing codebase
97
+ - `DA-VINCI.md`: project-level visual contract for theme, palette, typography direction, component tone, and page-consistency rules
82
98
  - `design-brief.md`: form factor, style, density, brand constraints, and layout preferences
83
99
  - `design-registry.md`: project-level `.pen` source inventory
84
100
  - `page-map.md`: canonical page list and page responsibilities
@@ -90,6 +106,44 @@ Depending on the mode, the workflow may use these artifacts:
90
106
  - `tasks.md`: implementation order and task groups
91
107
  - `verification.md`: requirement coverage, design coverage, and drift findings
92
108
 
109
+ ### Spec granularity rule
110
+
111
+ Use specs as capability or redesign-slice boundaries, not as page counters.
112
+
113
+ For broad `redesign-from-code` work, prefer multiple `specs/<slice>/spec.md` files over one oversized `ui-refresh/spec.md`.
114
+
115
+ ## Artifact placement
116
+
117
+ Recommended project layout:
118
+
119
+ ```text
120
+ project/
121
+ ├── DA-VINCI.md
122
+ └── .da-vinci/
123
+ ├── project-inventory.md
124
+ ├── design-registry.md
125
+ ├── page-map.md
126
+ └── changes/
127
+ └── <change-id>/
128
+ ├── brainstorm.md
129
+ ├── design-brief.md
130
+ ├── proposal.md
131
+ ├── design.md
132
+ ├── pencil-design.md
133
+ ├── pencil-bindings.md
134
+ ├── tasks.md
135
+ ├── verification.md
136
+ └── specs/
137
+ └── <capability>/spec.md
138
+ ```
139
+
140
+ Placement rules:
141
+
142
+ - keep `DA-VINCI.md` at the project root
143
+ - keep project-wide workflow files in `.da-vinci/`
144
+ - keep change-specific workflow files in `.da-vinci/changes/<change-id>/`
145
+ - do not scatter `proposal.md`, `tasks.md`, and `verification.md` across the project root
146
+
93
147
  ## Checkpoints
94
148
 
95
149
  Da Vinci uses these checkpoints:
@@ -137,6 +191,7 @@ Da Vinci treats Pencil as a structured design source, not as a screenshot source
137
191
 
138
192
  Rules:
139
193
 
194
+ - `DA-VINCI.md` is the project-level visual contract for cross-page consistency
140
195
  - `design-registry.md` is the project-level inventory of `.pen` sources
141
196
  - `page-map.md` is the source of truth for implementation pages
142
197
  - `pencil-bindings.md` is the source of truth for implementation page -> Pencil page mapping
@@ -158,6 +213,7 @@ When neither mappings nor usable design sources exist:
158
213
 
159
214
  Before generating Pencil designs for a greenfield project, Da Vinci should collect or infer:
160
215
 
216
+ - whether `DA-VINCI.md` already exists
161
217
  - product form factor
162
218
  - visual tone
163
219
  - density
@@ -166,10 +222,16 @@ Before generating Pencil designs for a greenfield project, Da Vinci should colle
166
222
 
167
223
  Preferred inference order:
168
224
 
169
- 1. existing artifacts
170
- 2. project-local signals
171
- 3. explicit user answers
172
- 4. short clarification questions
225
+ 1. `DA-VINCI.md`
226
+ 2. existing artifacts
227
+ 3. project-local signals
228
+ 4. explicit user answers
229
+ 5. short clarification questions
230
+
231
+ If `DA-VINCI.md` does not exist:
232
+
233
+ - generate it from stable user preferences, existing project signals, or inferred defaults
234
+ - save it before generating many project pages, so later pages do not drift stylistically
173
235
 
174
236
  ## Installation
175
237
 
@@ -274,6 +336,7 @@ $da-vinci use feature-change to add a billing page, generate the relevant Pencil
274
336
  See:
275
337
 
276
338
  - `docs/workflow-examples.md`
339
+ - `docs/mode-use-cases.md`
277
340
 
278
341
  ## Repository layout
279
342
 
package/SKILL.md CHANGED
@@ -27,9 +27,19 @@ That means:
27
27
  - treat checkpoints as internal execution guards, not approval steps
28
28
  - stop only when a true blocking condition exists
29
29
 
30
+ Treat execution intent as `full-delivery` by default when the user asks to:
31
+
32
+ - complete development
33
+ - implement the generated design
34
+ - redesign the whole product UI
35
+ - finish the project or finish the refresh
36
+
37
+ Do not stop at `tasks.md` in those cases.
38
+
30
39
  Continue automatically through:
31
40
 
32
41
  - mode selection
42
+ - project visual-contract detection
33
43
  - requirement breakdown
34
44
  - page mapping
35
45
  - design input collection
@@ -40,6 +50,14 @@ Continue automatically through:
40
50
  - implementation
41
51
  - verification
42
52
 
53
+ If `tasks.md` exists and the active request is `full-delivery`:
54
+
55
+ - treat `task checkpoint` as the handoff into implementation, not as an end state
56
+ - start Task Group 1 automatically after a `PASS`
57
+ - start Task Group 1 automatically after a `WARN` unless the warning changes the truth of behavior, source mapping, or permissions
58
+ - do not emit "next recommended step: start Task Group 1" as a terminal outcome
59
+ - instead continue into code changes and report progress by task group
60
+
43
61
  Stop and ask only when:
44
62
 
45
63
  - the user explicitly interrupts
@@ -48,6 +66,14 @@ Stop and ask only when:
48
66
  - source artifacts conflict badly enough that continuing would guess the truth
49
67
  - a destructive action would change the project baseline significantly
50
68
 
69
+ Do not stop merely because:
70
+
71
+ - some pages are still out of scope
72
+ - a future follow-up spec may be needed for untouched behavior
73
+ - a design source should also be saved or exported for better traceability
74
+
75
+ Those are warnings unless they prevent safe implementation of the current in-scope work.
76
+
51
77
  ## Invocation Model
52
78
 
53
79
  Canonical workflow name is `da-vinci`.
@@ -85,6 +111,11 @@ If the user does not specify a mode:
85
111
 
86
112
  Before generating new Pencil designs for a greenfield project, collect or infer:
87
113
 
114
+ 0. project visual contract
115
+ - detect whether `DA-VINCI.md` already exists
116
+ - if it exists, treat it as the visual baseline for future pages
117
+ - if it does not exist, generate it from stable user preferences, existing project signals, or inferred defaults before broad Pencil page generation
118
+
88
119
  1. product form factor
89
120
  - desktop software
90
121
  - web app
@@ -105,10 +136,11 @@ Before generating new Pencil designs for a greenfield project, collect or infer:
105
136
 
106
137
  Use this priority order:
107
138
 
108
- 1. existing workflow artifacts
109
- 2. project-local config or project codebase signals
110
- 3. explicit user answers
111
- 4. short clarification questions
139
+ 1. `DA-VINCI.md`
140
+ 2. existing workflow artifacts
141
+ 3. project-local config or project codebase signals
142
+ 4. explicit user answers
143
+ 5. short clarification questions
112
144
 
113
145
  Do not repeatedly ask for inputs that are already stable in the artifacts.
114
146
 
@@ -118,14 +150,21 @@ Run the workflow in this order:
118
150
 
119
151
  1. Select the active mode
120
152
  2. Build the correct source artifacts for that mode
121
- 3. Collect design inputs and register available design sources
122
- 4. Define or discover the project page map
123
- 5. Create or update Pencil designs for the required pages
124
- 6. Bind implementation pages to Pencil pages
125
- 7. Read Pencil design data through MCP
126
- 8. Generate implementation tasks
127
- 9. Implement code from requirements plus Pencil data
128
- 10. Verify behavior drift and design drift before closing the change
153
+ 3. Detect or generate `DA-VINCI.md` as the project visual contract
154
+ 4. Collect design inputs and register available design sources
155
+ 5. Define or discover the project page map
156
+ 6. Create or update Pencil designs for the required pages
157
+ 7. Bind implementation pages to Pencil pages
158
+ 8. Read Pencil design data through MCP
159
+ 9. Generate implementation tasks
160
+ 10. Implement code from requirements plus Pencil data
161
+ 11. Verify behavior drift and design drift before closing the change
162
+
163
+ Default completion rule:
164
+
165
+ - if the request is `plan-only`, stop after planning artifacts
166
+ - if the request is `design-only`, stop after design artifacts and bindings
167
+ - otherwise assume `full-delivery` and continue through implementation and verification
129
168
 
130
169
  ## Load References On Demand
131
170
 
@@ -143,18 +182,19 @@ Load only the reference that matches the current step:
143
182
 
144
183
  Use these artifacts unless the project defines a different schema:
145
184
 
146
- 1. `brainstorm.md`
147
- 2. `project-inventory.md`
148
- 3. `design-brief.md`
149
- 4. `design-registry.md`
150
- 5. `page-map.md`
151
- 6. `proposal.md`
152
- 7. `specs/<capability>/spec.md`
153
- 8. `design.md`
154
- 9. `pencil-design.md`
155
- 10. `pencil-bindings.md`
156
- 11. `tasks.md`
157
- 12. `verification.md`
185
+ 1. `.da-vinci/changes/<change-id>/brainstorm.md`
186
+ 2. `.da-vinci/project-inventory.md`
187
+ 3. `DA-VINCI.md`
188
+ 4. `.da-vinci/changes/<change-id>/design-brief.md`
189
+ 5. `.da-vinci/design-registry.md`
190
+ 6. `.da-vinci/page-map.md`
191
+ 7. `.da-vinci/changes/<change-id>/proposal.md`
192
+ 8. `.da-vinci/changes/<change-id>/specs/<capability>/spec.md`
193
+ 9. `.da-vinci/changes/<change-id>/design.md`
194
+ 10. `.da-vinci/changes/<change-id>/pencil-design.md`
195
+ 11. `.da-vinci/changes/<change-id>/pencil-bindings.md`
196
+ 12. `.da-vinci/changes/<change-id>/tasks.md`
197
+ 13. `.da-vinci/changes/<change-id>/verification.md`
158
198
 
159
199
  Not every mode requires every artifact.
160
200
 
@@ -177,6 +217,7 @@ Optional artifacts:
177
217
 
178
218
  - `brainstorm.md`: raw ideas, tensions, themes, and synthesis notes before specs are stable
179
219
  - `project-inventory.md`: discovered routes, pages, modules, and current UI patterns from an existing codebase
220
+ - `DA-VINCI.md`: project-level visual contract for theme, color system, surface treatment, typography direction, and cross-page style rules
180
221
  - `design-brief.md`: form factor, visual direction, density, brand constraints, and UI preferences
181
222
  - `design-registry.md`: project-level `.pen` file inventory and active design sources
182
223
  - `page-map.md`: canonical page list, page responsibilities, route mapping, and page states
@@ -188,25 +229,59 @@ Optional artifacts:
188
229
  - `tasks.md`: implementation order and deliverable task groups
189
230
  - `verification.md`: requirement coverage, Pencil coverage, and drift findings
190
231
 
232
+ ## Artifact Placement
233
+
234
+ Use this placement model inside the target project:
235
+
236
+ ### Project root
237
+
238
+ - `DA-VINCI.md`
239
+
240
+ Keep this file at the project root so the visual contract is easy to discover and reuse.
241
+
242
+ ### Project-level workflow directory
243
+
244
+ - `.da-vinci/project-inventory.md`
245
+ - `.da-vinci/design-registry.md`
246
+ - `.da-vinci/page-map.md`
247
+
248
+ These files describe project-wide facts that can outlive any one change.
249
+
250
+ ### Change-level workflow directory
251
+
252
+ - `.da-vinci/changes/<change-id>/brainstorm.md`
253
+ - `.da-vinci/changes/<change-id>/design-brief.md`
254
+ - `.da-vinci/changes/<change-id>/proposal.md`
255
+ - `.da-vinci/changes/<change-id>/design.md`
256
+ - `.da-vinci/changes/<change-id>/pencil-design.md`
257
+ - `.da-vinci/changes/<change-id>/pencil-bindings.md`
258
+ - `.da-vinci/changes/<change-id>/tasks.md`
259
+ - `.da-vinci/changes/<change-id>/verification.md`
260
+ - `.da-vinci/changes/<change-id>/specs/<capability>/spec.md`
261
+
262
+ These files belong to one concrete delivery effort and should not clutter the project root.
263
+
191
264
  ## Mode-Specific Artifact Flow
192
265
 
193
266
  Use these minimum flows:
194
267
 
195
268
  ### `greenfield-spec`
196
269
 
197
- `design-brief` -> `proposal` -> `specs` -> `page-map` -> `design-registry` -> `design` -> `pencil-design` -> `pencil-bindings` -> `tasks` -> `verification`
270
+ `DA-VINCI` -> `.da-vinci/changes/<change-id>/design-brief` -> `.da-vinci/changes/<change-id>/proposal` -> `.da-vinci/changes/<change-id>/specs` -> `.da-vinci/page-map` -> `.da-vinci/design-registry` -> `.da-vinci/changes/<change-id>/design` -> `.da-vinci/changes/<change-id>/pencil-design` -> `.da-vinci/changes/<change-id>/pencil-bindings` -> `.da-vinci/changes/<change-id>/tasks` -> `.da-vinci/changes/<change-id>/verification`
198
271
 
199
272
  ### `greenfield-brainstorm`
200
273
 
201
- `brainstorm` -> `design-brief` -> `proposal` -> `specs` -> `page-map` -> `design-registry` -> `design` -> `pencil-design` -> `pencil-bindings` -> `tasks` -> `verification`
274
+ `.da-vinci/changes/<change-id>/brainstorm` -> `DA-VINCI` -> `.da-vinci/changes/<change-id>/design-brief` -> `.da-vinci/changes/<change-id>/proposal` -> `.da-vinci/changes/<change-id>/specs` -> `.da-vinci/page-map` -> `.da-vinci/design-registry` -> `.da-vinci/changes/<change-id>/design` -> `.da-vinci/changes/<change-id>/pencil-design` -> `.da-vinci/changes/<change-id>/pencil-bindings` -> `.da-vinci/changes/<change-id>/tasks` -> `.da-vinci/changes/<change-id>/verification`
202
275
 
203
276
  ### `redesign-from-code`
204
277
 
205
- `project-inventory` -> `design-registry` -> `proposal` -> `specs` -> `page-map` -> `design` -> `pencil-design` -> `pencil-bindings` -> `tasks` -> `verification`
278
+ `.da-vinci/project-inventory` -> `DA-VINCI` -> `.da-vinci/design-registry` -> `.da-vinci/changes/<change-id>/proposal` -> `.da-vinci/changes/<change-id>/specs` -> `.da-vinci/page-map` -> `.da-vinci/changes/<change-id>/design` -> `.da-vinci/changes/<change-id>/pencil-design` -> `.da-vinci/changes/<change-id>/pencil-bindings` -> `.da-vinci/changes/<change-id>/tasks` -> `.da-vinci/changes/<change-id>/verification`
279
+
280
+ For broad refreshes, treat `.da-vinci/changes/<change-id>/specs/` as a redesign-slice directory, not as a single-file location.
206
281
 
207
282
  ### `feature-change`
208
283
 
209
- `proposal` -> `specs` -> `page-map` for affected pages -> `design-registry` -> `design` -> `pencil-design` delta -> `pencil-bindings` delta -> `tasks` -> `verification`
284
+ `.da-vinci/changes/<change-id>/proposal` -> `.da-vinci/changes/<change-id>/specs` -> `.da-vinci/page-map` for affected pages -> `DA-VINCI` -> `.da-vinci/design-registry` -> `.da-vinci/changes/<change-id>/design` -> `.da-vinci/changes/<change-id>/pencil-design` delta -> `.da-vinci/changes/<change-id>/pencil-bindings` delta -> `.da-vinci/changes/<change-id>/tasks` -> `.da-vinci/changes/<change-id>/verification`
210
285
 
211
286
  ## Requirement Breakdown Rules
212
287
 
@@ -227,16 +302,63 @@ If the active mode is `redesign-from-code`:
227
302
 
228
303
  - inventory current routes, pages, and modules before redefining page structure
229
304
  - distinguish preserved behavior from replaced presentation
305
+ - partition specs by redesign slice when one oversized `ui-refresh` spec would hide important implementation boundaries
306
+
307
+ ## Spec Partitioning Rules
308
+
309
+ Do not default to one oversized `ui-refresh` spec for broad redesign work.
310
+
311
+ For `redesign-from-code`:
312
+
313
+ - keep one overall `proposal.md`
314
+ - keep one project-level `DA-VINCI.md`
315
+ - keep one project-level `project-inventory.md`
316
+ - keep one project-level `design-registry.md`
317
+ - keep one project-level `page-map.md`
318
+ - split `specs/` by redesign slice when the refresh is broad
319
+
320
+ Preferred redesign slices:
321
+
322
+ - `shared-shell`
323
+ - `core-pages`
324
+ - `settings-and-secondary`
325
+ - `admin-or-restricted`
326
+ - `reference-gap-pages`
327
+
328
+ Split broad redesign work into multiple spec slices when one or more of these are true:
329
+
330
+ - the refresh covers more than five canonical pages
331
+ - the refresh spans more than two top-level route groups or page families
332
+ - the redesign includes both shared-shell changes and page-content changes
333
+ - prior HTML or Pencil references cover only part of the product surface
334
+ - different page groups carry different layout, density, or access constraints
335
+
336
+ One redesign spec is acceptable when the refresh is mostly cosmetic, narrow, or limited to a small product surface.
337
+
338
+ Do not split page-by-page unless the product is unusually fragmented. Prefer implementable redesign slices over raw page counts.
230
339
 
231
340
  ## Design Source Rules
232
341
 
233
342
  Use `design-registry.md` as the project-level inventory of `.pen` sources.
234
343
 
344
+ Use `DA-VINCI.md` as the project-level visual source of truth for:
345
+
346
+ - theme and palette
347
+ - background and surface treatment
348
+ - typography direction
349
+ - component tone
350
+ - rules for cross-page consistency
351
+
235
352
  When a relevant mapping already exists:
236
353
 
237
354
  - iterate on the mapped Pencil source
238
355
  - do not create a new design baseline unless there is a reason
239
356
 
357
+ When `DA-VINCI.md` already exists:
358
+
359
+ - use it as the baseline visual contract
360
+ - do not regenerate visual direction from scratch unless the change explicitly rebrands or resets the product style
361
+
240
362
  When page-to-Pencil bindings already exist:
241
363
 
242
364
  - update the mapped Pencil page for the affected implementation page
@@ -253,6 +375,7 @@ When neither mappings nor usable design sources exist:
253
375
 
254
376
  - state that the project is entering baseline reconstruction
255
377
  - create a new Pencil baseline from the current local source of truth
378
+ - generate `DA-VINCI.md` from inferred or user-provided design rules before generating many unrelated pages
256
379
 
257
380
  If the request is too vague to design or implement safely, ask a short clarification question before generating artifacts.
258
381