@xenonbyte/da-vinci-workflow 0.1.9 → 0.1.10

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/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@
4
4
 
5
5
  - No unreleased changes yet.
6
6
 
7
+ ## v0.1.10 - 2026-03-27
8
+
9
+ ### Changed
10
+ - `redesign-from-code` now documents a stricter contract: existing code is behavior truth, not layout truth
11
+ - complex screens are now documented to decompose into subpages, overlays, materially different states, and implementation surfaces before broad Pencil redesign
12
+ - design-checkpoint guidance now explicitly blocks skin-swap redesigns, generic card mosaics, weak visual anchors, and decorative clutter
13
+ - `Visual Assist` documentation and README guidance now include clearer field explanations, quick-start recommendations, quality-first configuration advice, and stronger usage examples for Android-style redesign work
14
+
7
15
  ## v0.1.9 - 2026-03-27
8
16
 
9
17
  ### Added
package/README.md CHANGED
@@ -27,10 +27,14 @@ This workflow is intended for:
27
27
 
28
28
  Latest published npm package:
29
29
 
30
- - `@xenonbyte/da-vinci-workflow@0.1.9`
30
+ - `@xenonbyte/da-vinci-workflow@0.1.10`
31
31
 
32
32
  Release highlights:
33
33
 
34
+ - `redesign-from-code` now states explicitly that existing code is behavior truth, not layout truth
35
+ - complex pages are now expected to decompose into subpages, overlays, materially different states, and implementation surfaces before broad Pencil redesign
36
+ - design-checkpoint guidance now explicitly blocks skin-swap redesigns, generic card mosaics, weak visual anchors, and decorative clutter
37
+ - `Visual Assist` docs now include quick-start recommendations and a quality-first configuration for design-critical work
34
38
  - visual-adapter configuration is now documented explicitly, including field meanings, resolution order, and fallback behavior
35
39
  - ready-to-copy `Visual Assist` presets are now included for mobile, desktop, web, and tablet scenarios
36
40
  - the repo-local forward test now shows how `Visual Assist`, adapter resolution, and persisted `.pen` paths should be recorded
@@ -86,6 +90,67 @@ Route discipline:
86
90
  - they should not default the user into `build`
87
91
  - `build` remains a direct expert route for workflows that are already implementation-ready
88
92
 
93
+ ## Visual Assist Quick Start
94
+
95
+ Use `Visual Assist` when the project wants optional help from local UI-design skills such as `frontend-skill` or `ui-ux-pro-max`.
96
+
97
+ Recommended default:
98
+
99
+ ```md
100
+ ## Visual Assist
101
+ - Preferred adapters:
102
+ - ui-ux-pro-max
103
+ - frontend-skill
104
+ - Scope:
105
+ - visual contract refinement
106
+ - page composition
107
+ - hierarchy and spacing
108
+ - Pencil design refinement
109
+ - Fallback:
110
+ - native-da-vinci
111
+ - Require Adapter:
112
+ - false
113
+ ```
114
+
115
+ Use this when:
116
+
117
+ - the project is an app, dashboard, desktop tool, or other product surface
118
+ - the workflow should continue even if no local adapter is installed
119
+ - you want better composition and hierarchy without turning adapter availability into a blocker
120
+
121
+ Quality-first redesign configuration:
122
+
123
+ ```md
124
+ ## Visual Assist
125
+ - Preferred adapters:
126
+ - frontend-skill
127
+ - ui-ux-pro-max
128
+ - Scope:
129
+ - visual contract refinement
130
+ - page composition
131
+ - hierarchy and spacing
132
+ - motion guidance
133
+ - Pencil design refinement
134
+ - Fallback:
135
+ - native-da-vinci
136
+ - Require Adapter:
137
+ - true
138
+ ```
139
+
140
+ Use this when:
141
+
142
+ - the project is visually sensitive and plain fallback quality is not acceptable
143
+ - prior redesign attempts drifted into generic card grids, weak anchors, or skin-swap outputs
144
+ - you want the workflow to stop instead of silently continuing without a strong local design helper
145
+
146
+ Selection rules:
147
+
148
+ - keep `ui-ux-pro-max` first for dense app and dashboard surfaces when the visual bar is moderate
149
+ - move `frontend-skill` to the first slot when art direction, composition quality, and premium visual hierarchy matter more
150
+ - keep `Fallback: native-da-vinci` unless you explicitly want missing adapters to block the workflow
151
+ - keep `Require Adapter: false` by default and raise it to `true` only for design-critical work
152
+ - keep `Scope` limited to presentation quality; do not use it to delegate behavior, routes, or state truth
153
+
89
154
  ## Core workflow
90
155
 
91
156
  Da Vinci runs in this order:
@@ -232,6 +297,8 @@ Rules:
232
297
  - `.da-vinci/designs/` is the default project-local location for persisted `.pen` files
233
298
  - `page-map.md` is the source of truth for implementation pages
234
299
  - `pencil-bindings.md` is the source of truth for implementation page -> Pencil page mapping
300
+ - in `redesign-from-code`, existing code is behavior truth, not layout truth
301
+ - complex pages should be decomposed into subpages, states, overlays, and implementation surfaces before Pencil redesign is treated as final
235
302
 
236
303
  Optional visual-adapter policy:
237
304
 
@@ -241,6 +308,12 @@ Optional visual-adapter policy:
241
308
  - they must not override behavior truth, route truth, page-state truth, or acceptance rules
242
309
  - if a requested adapter is unavailable locally, Da Vinci should continue with native design rules and record the fallback in `design-registry.md`
243
310
 
311
+ Recommended practice:
312
+
313
+ - configure `Visual Assist` in `DA-VINCI.md` before broad Pencil generation begins
314
+ - for complex Android redesigns, ask Da Vinci to decompose activities, fragments, tabs, sheets, dialogs, and materially different states before design work expands
315
+ - if the output quality is weak, promote `frontend-skill`, tighten the design checkpoint bar, and prefer a fresh composition over a recolor of the old UI
316
+
244
317
  When a relevant mapping already exists:
245
318
 
246
319
  - iterate on the mapped Pencil source
@@ -250,6 +323,7 @@ When mappings do not exist but local code exists:
250
323
 
251
324
  - reconstruct the baseline from the local project
252
325
  - rebuild inventory, page map, and design registry
326
+ - decompose complex containers into real design surfaces before broad Pencil generation
253
327
  - save or export the rebuilt Pencil baseline into `.da-vinci/designs/` when possible
254
328
 
255
329
  When neither mappings nor usable design sources exist:
package/README.zh-CN.md CHANGED
@@ -29,10 +29,14 @@ Da Vinci 是一个把产品需求一路推进到结构化规格、Pencil 设计
29
29
 
30
30
  最新已发布 npm 包:
31
31
 
32
- - `@xenonbyte/da-vinci-workflow@0.1.9`
32
+ - `@xenonbyte/da-vinci-workflow@0.1.10`
33
33
 
34
34
  已发布版本重点:
35
35
 
36
+ - `redesign-from-code` 现在明确写清:现有代码只是真相行为,不是真相布局
37
+ - 复杂页面现在明确要求在大规模 Pencil 重设计前拆成 subpage、overlay、明显不同 state 和 implementation surface
38
+ - design checkpoint 现在明确会拦截旧 UI 换皮、通用卡片拼贴、弱视觉锚点和装饰性噪音
39
+ - `Visual Assist` 文档现在补了快速上手建议和“设计质量优先”配置
36
40
  - visual adapter 的配置字段、解析顺序和回退行为现在有单独文档说明
37
41
  - 现在提供按移动端、桌面端、Web、平板拆分的 `Visual Assist` 可复制模板
38
42
  - 仓库内的 forward test 示例现在展示了 `Visual Assist`、adapter 解析结果和 `.pen` 持久化记录方式
@@ -91,6 +95,67 @@ Da Vinci V2 支持四种模式:
91
95
  - 它们不应该默认把用户直接导向 `build`
92
96
  - `build` 仍然保留,但它是给已经实现就绪的高级直接入口
93
97
 
98
+ ## Visual Assist 快速上手
99
+
100
+ 当项目想借助本地 UI 设计 skill,例如 `frontend-skill` 或 `ui-ux-pro-max`,来提升设计质量时,就配置 `Visual Assist`。
101
+
102
+ 推荐默认配置:
103
+
104
+ ```md
105
+ ## Visual Assist
106
+ - Preferred adapters:
107
+ - ui-ux-pro-max
108
+ - frontend-skill
109
+ - Scope:
110
+ - visual contract refinement
111
+ - page composition
112
+ - hierarchy and spacing
113
+ - Pencil design refinement
114
+ - Fallback:
115
+ - native-da-vinci
116
+ - Require Adapter:
117
+ - false
118
+ ```
119
+
120
+ 适用场景:
121
+
122
+ - app、dashboard、桌面工具等产品型界面
123
+ - 本地没有 adapter 时工作流也应该继续
124
+ - 想提升构图和层级,但不希望 adapter 缺失变成阻塞
125
+
126
+ 设计质量优先配置:
127
+
128
+ ```md
129
+ ## Visual Assist
130
+ - Preferred adapters:
131
+ - frontend-skill
132
+ - ui-ux-pro-max
133
+ - Scope:
134
+ - visual contract refinement
135
+ - page composition
136
+ - hierarchy and spacing
137
+ - motion guidance
138
+ - Pencil design refinement
139
+ - Fallback:
140
+ - native-da-vinci
141
+ - Require Adapter:
142
+ - true
143
+ ```
144
+
145
+ 适用场景:
146
+
147
+ - 页面视觉质量要求高,不能接受普通 fallback 质量
148
+ - 之前的重设计已经出现“堆卡片、弱锚点、只是旧 UI 换皮”这类问题
149
+ - 你希望没有强设计辅助 skill 时直接停下,而不是继续生成普通结果
150
+
151
+ 选择建议:
152
+
153
+ - 高密度 app、dashboard、工具型界面,且视觉要求中等时,优先把 `ui-ux-pro-max` 放第一位
154
+ - 如果更重视 art direction、构图和高级感,就把 `frontend-skill` 放第一位
155
+ - 默认保留 `Fallback: native-da-vinci`
156
+ - `Require Adapter` 默认保持 `false`,只有设计要求很高时再改成 `true`
157
+ - `Scope` 只管 presentation 质量,不要拿它去定义 behavior、route 或 state truth
158
+
94
159
  ## 核心工作流顺序
95
160
 
96
161
  Da Vinci 的默认顺序是:
@@ -185,6 +250,8 @@ project/
185
250
  - `.da-vinci/designs/` 是项目内持久化 `.pen` 文件的默认位置
186
251
  - `page-map.md` 是实现页面和状态的真相源
187
252
  - `pencil-bindings.md` 是实现页面到 Pencil 页面绑定的真相源
253
+ - 在 `redesign-from-code` 里,现有代码只是真相行为,不是真相布局
254
+ - 复杂页面在 Pencil 重设计前应该先拆成 subpage、state、overlay 和 implementation surface
188
255
 
189
256
  可选 visual adapter 规则:
190
257
 
@@ -194,6 +261,12 @@ project/
194
261
  - 它不能覆盖 behavior truth、路由真相、页面状态真相或验收规则
195
262
  - 如果本地没有请求的 adapter,Da Vinci 应继续使用原生设计规则,并在 `design-registry.md` 里记录回退结果
196
263
 
264
+ 建议做法:
265
+
266
+ - 在开始大规模 Pencil 设计前,就在 `DA-VINCI.md` 里写好 `Visual Assist`
267
+ - 面对复杂 Android 重设计时,先要求 Da Vinci 把 activities、fragments、tabs、sheets、dialogs 和明显不同的 states 拆开
268
+ - 如果结果很丑,就把 `frontend-skill` 提到第一位,收紧 design checkpoint,并明确要求 fresh composition,而不是旧 UI 改色
269
+
197
270
  当已有页面映射存在时:
198
271
 
199
272
  - 优先复用已绑定的 Pencil 设计源
@@ -203,6 +276,7 @@ project/
203
276
 
204
277
  - 先从当前项目重建设计基线
205
278
  - 重建 inventory、page-map、design-registry
279
+ - 先把复杂容器拆成真实的设计 surface,再进入大规模 Pencil 设计
206
280
  - 在可行时把新的 Pencil 基线保存或导出到 `.da-vinci/designs/`
207
281
 
208
282
  当既没有映射也没有可用设计源时:
package/SKILL.md CHANGED
@@ -15,6 +15,7 @@ Keep these rules fixed:
15
15
  - Pencil decides presentation.
16
16
  - Tasks decide implementation order.
17
17
  - Code must follow both requirements and Pencil data.
18
+ - Existing code is behavior truth, not layout truth, during `redesign-from-code`.
18
19
  - When requirements and Pencil drift apart, stop and update the source artifacts before continuing implementation.
19
20
 
20
21
  ## Execution Policy
@@ -356,6 +357,8 @@ If the active mode is `redesign-from-code`:
356
357
 
357
358
  - inventory current routes, pages, and modules before redefining page structure
358
359
  - distinguish preserved behavior from replaced presentation
360
+ - treat existing code as behavior truth and implementation-surface discovery, not as a visual-layout baseline
361
+ - default to fresh visual composition unless the user explicitly asks to preserve the current layout skeleton
359
362
  - partition specs by redesign slice when one oversized `ui-refresh` spec would hide important implementation boundaries
360
363
 
361
364
  ## Spec Partitioning Rules
@@ -460,6 +463,33 @@ When visual adapters are requested:
460
463
 
461
464
  If the request is too vague to design or implement safely, ask a short clarification question before generating artifacts.
462
465
 
466
+ ## Surface Decomposition Rules
467
+
468
+ Do not treat one implementation container as one design surface by default.
469
+
470
+ For complex products, decompose by:
471
+
472
+ - canonical page
473
+ - subpage
474
+ - state
475
+ - overlay
476
+ - shared shell region
477
+ - implementation surface such as activity, fragment, tab, bottom sheet, dialog, or full-screen mode
478
+
479
+ When an Android screen contains multiple fragments, tabs, nested flows, or materially different states:
480
+
481
+ - split them into distinct design surfaces in `page-map.md`
482
+ - give each meaningful state or subpage its own Pencil target when the layout materially changes
483
+ - avoid collapsing them into one overloaded redesign screen
484
+
485
+ One implementation page may legitimately map to:
486
+
487
+ - multiple Pencil screens
488
+ - multiple states of one Pencil page
489
+ - one shared shell plus several detail surfaces
490
+
491
+ Treat surface decomposition as required when visual structure changes materially across states or subflows.
492
+
463
493
  ## Pencil Design Rules
464
494
 
465
495
  Use Pencil as a structured UI source, not as a static image source.
@@ -470,9 +500,12 @@ When creating or editing Pencil designs:
470
500
  - follow `page-map.md` as the canonical page list
471
501
  - follow `design-brief.md` for form factor and visual direction when it exists
472
502
  - use the resolved visual adapter, when available, for composition, hierarchy, restraint, and motion guidance
503
+ - before broad page generation, write a visual thesis, a content plan, and an interaction thesis for the current surface
473
504
  - Keep page names, section names, and labels aligned with the specs
474
505
  - Make important states explicit when they change implementation: empty, loading, success, error, restricted, unavailable
475
506
  - Prefer layout clarity and information hierarchy over decorative complexity
507
+ - Reject generic UI patterns such as dashboard-card mosaics, weak visual anchors, decorative clutter, or motion with no hierarchy value
508
+ - For `redesign-from-code`, redesign from page responsibilities and state decomposition, not by recoloring or slightly rearranging the old UI
476
509
  - After changes, inspect the result visually before treating it as implementation-ready
477
510
 
478
511
  When multiple pages exist:
@@ -341,9 +341,22 @@ Register the design sources, extract DA-VINCI.md from them, bind covered pages,
341
341
  For redesign work:
342
342
 
343
343
  - current code decides behavior
344
+ - current code does not decide the new layout or visual composition
344
345
  - `DA-VINCI.md` decides the new visual contract
345
346
  - Pencil decides page-by-page presentation
346
347
 
348
+ Fresh-layout rule:
349
+
350
+ - default to fresh visual composition driven by page purpose and state coverage
351
+ - do not treat the old UI as the design baseline unless the user explicitly asks to preserve the layout skeleton
352
+ - a recolor, light rearrangement, or minor spacing pass on the old UI is not enough for a true redesign
353
+
354
+ Complex-surface rule:
355
+
356
+ - if one screen contains multiple fragments, tabs, overlays, or materially different states, split it into multiple design surfaces
357
+ - one implementation page may map to several Pencil screens or states
358
+ - do not hide that complexity inside one oversized redesign page
359
+
347
360
  ### Spec partitioning rule
348
361
 
349
362
  For broad refreshes, do not keep everything inside one `ui-refresh/spec.md` unless the project surface is genuinely small or the change is mostly cosmetic.
@@ -409,13 +422,14 @@ Please inventory the current pages and shared layouts, register the HTML drafts
409
422
  Expected behavior:
410
423
 
411
424
  1. inventory current pages and shared regions
412
- 2. register the HTML drafts as design references
413
- 3. extract a stable `DA-VINCI.md`
414
- 4. split broad redesign work into multiple spec slices when needed
415
- 5. create or refine Pencil redesign screens
416
- 6. bind implementation pages to redesign screens
417
- 7. generate `tasks.md` aligned to the redesign slices
418
- 8. continue into code changes without stopping at "next recommended step"
425
+ 2. decompose complex containers into real design surfaces, subpages, overlays, and states
426
+ 3. register the HTML drafts as design references
427
+ 4. extract a stable `DA-VINCI.md`
428
+ 5. split broad redesign work into multiple spec slices when needed
429
+ 6. create or refine Pencil redesign screens
430
+ 7. bind implementation pages to redesign screens
431
+ 8. generate `tasks.md` aligned to the redesign slices
432
+ 9. continue into code changes without stopping at "next recommended step"
419
433
 
420
434
  ### Best fit
421
435
 
@@ -28,6 +28,15 @@ Those still come from requirements, existing code, `page-map.md`, and `pencil-bi
28
28
 
29
29
  Configure visual-adapter preferences inside `DA-VINCI.md`.
30
30
 
31
+ Start from one of these two setups:
32
+
33
+ - balanced default
34
+ - keep delivery non-blocking
35
+ - better for most app and dashboard work
36
+ - quality-first redesign
37
+ - raise the visual bar
38
+ - better when prior outputs were generic, ugly, or too close to the old UI
39
+
31
40
  Recommended shape:
32
41
 
33
42
  ```md
@@ -49,6 +58,56 @@ Recommended shape:
49
58
 
50
59
  Use `Require Adapter: true` only when the workflow must stop if the preferred adapter is unavailable locally.
51
60
 
61
+ ## Quick-Start Configurations
62
+
63
+ Balanced default:
64
+
65
+ ```md
66
+ ## Visual Assist
67
+ - Preferred adapters:
68
+ - ui-ux-pro-max
69
+ - frontend-skill
70
+ - Scope:
71
+ - visual contract refinement
72
+ - page composition
73
+ - hierarchy and spacing
74
+ - Pencil design refinement
75
+ - Fallback:
76
+ - native-da-vinci
77
+ - Require Adapter:
78
+ - false
79
+ ```
80
+
81
+ Use this when:
82
+
83
+ - the project is an app, dashboard, desktop tool, or dense product surface
84
+ - you want stronger layout discipline but still want the workflow to continue without a local helper
85
+
86
+ Quality-first redesign:
87
+
88
+ ```md
89
+ ## Visual Assist
90
+ - Preferred adapters:
91
+ - frontend-skill
92
+ - ui-ux-pro-max
93
+ - Scope:
94
+ - visual contract refinement
95
+ - page composition
96
+ - hierarchy and spacing
97
+ - motion guidance
98
+ - Pencil design refinement
99
+ - Fallback:
100
+ - native-da-vinci
101
+ - Require Adapter:
102
+ - true
103
+ ```
104
+
105
+ Use this when:
106
+
107
+ - the project is design-sensitive or premium-facing
108
+ - the previous redesign attempt produced generic card grids, weak anchors, or a skin-swap of the old UI
109
+ - you would rather stop than silently continue without a strong local design helper
110
+
52
111
  ## What Each Field Means
53
112
 
54
113
  Use the fields like this:
@@ -75,6 +134,27 @@ Recommended default:
75
134
  - use `Fallback: native-da-vinci`
76
135
  - keep `Scope` narrowly focused on visual-quality decisions
77
136
 
137
+ Adapter-selection rule of thumb:
138
+
139
+ - `ui-ux-pro-max` first for dense app, dashboard, and admin surfaces when the visual bar is moderate
140
+ - `frontend-skill` first when art direction, composition quality, and visual restraint matter more than speed or density tuning
141
+
142
+ ## When The Output Still Looks Weak
143
+
144
+ If the workflow is functionally correct but the Pencil result still looks generic or ugly:
145
+
146
+ - move `frontend-skill` to the front of `Preferred adapters`
147
+ - set a stronger visual direction in `DA-VINCI.md` instead of leaving it broad
148
+ - treat `Require Adapter: true` as acceptable for design-critical work where plain fallback quality is not good enough
149
+ - tighten the `Scope` toward composition, hierarchy, and Pencil refinement rather than vague style language
150
+ - use the design checkpoint to block generic card mosaics, weak anchors, and decorative clutter
151
+
152
+ For `redesign-from-code`, also do this:
153
+
154
+ - restate that existing code is behavior truth, not layout truth
155
+ - decompose complex activities, fragments, tabs, overlays, and materially different states before broad Pencil work
156
+ - explicitly require fresh composition instead of recoloring or slightly rearranging the old UI
157
+
78
158
  ## Resolution Order
79
159
 
80
160
  Resolve adapters in this order:
@@ -163,6 +243,8 @@ Persist project-local Pencil files under .da-vinci/designs/.
163
243
  - `native-da-vinci`
164
244
  - use when no adapter is available or when the project only needs the built-in workflow rules
165
245
 
246
+ If the output quality bar is especially high, promote `frontend-skill` to the first slot even for app surfaces and use `native-da-vinci` only as a fallback.
247
+
166
248
  ## Scenario Presets
167
249
 
168
250
  Ready-to-copy presets live here:
@@ -9,6 +9,13 @@ Each preset is intentionally conservative:
9
9
  - clear scope boundaries
10
10
  - non-blocking behavior by default
11
11
 
12
+ If the project is design-critical or previous outputs were weak, generic, or too close to the old UI:
13
+
14
+ - keep the same preset family
15
+ - move `frontend-skill` to the first slot
16
+ - consider `Require Adapter: true`
17
+ - raise the design checkpoint bar before broad Pencil generation
18
+
12
19
  Available presets:
13
20
 
14
21
  - `mobile-app.md`
@@ -33,3 +33,4 @@ Notes:
33
33
  - prefer `ui-ux-pro-max` first for dense app layout decisions
34
34
  - keep section hierarchy stronger than decorative treatment
35
35
  - use `frontend-skill` only as a secondary visual-quality helper, not as a marketing-style override
36
+ - if the result looks flat, over-boxed, or too generic, move `frontend-skill` to the first slot and raise the design checkpoint bar
@@ -33,3 +33,4 @@ Notes:
33
33
  - prefer `ui-ux-pro-max` first for app-surface density and control balance
34
34
  - keep motion guidance light and purposeful
35
35
  - do not let the adapter turn routine mobile product UI into a marketing page
36
+ - if the output keeps collapsing into generic cards or weak hierarchy, move `frontend-skill` to the first slot and consider `Require Adapter: true`
@@ -33,3 +33,4 @@ Notes:
33
33
  - keep spacing more generous than desktop but more structured than phone UI
34
34
  - use adapter guidance to improve split layouts, canvases, and workspace balance
35
35
  - avoid over-compressing content into phone-like stacking
36
+ - if the result still feels bland or over-framed, move `frontend-skill` to the first slot and require a stronger visual thesis before Pencil work
@@ -33,3 +33,4 @@ Notes:
33
33
  - keep `ui-ux-pro-max` first for product surfaces, dashboards, and operational UI
34
34
  - if the project is more brand-led than tool-led, swap the order and put `frontend-skill` first
35
35
  - do not let responsive polish erase product clarity
36
+ - if the output feels like generic SaaS filler, switch `frontend-skill` to first and tighten the visual direction in `DA-VINCI.md`
@@ -78,12 +78,23 @@ Expected flow:
78
78
  3. register current `.pen` sources and visual-adapter resolution in `design-registry.md`
79
79
  4. define redesign scope in `proposal.md`
80
80
  5. split broad redesign work into `specs/<slice>/spec.md` files when one large `ui-refresh` spec would be too coarse
81
- 6. rebuild or refine `page-map.md`
82
- 7. create new or updated Pencil pages, preferring persistence under `.da-vinci/designs/`
81
+ 6. rebuild or refine `page-map.md`, including subpages, overlays, and materially different states
82
+ 7. create new or updated Pencil pages from fresh composition rather than a recolor of the old UI, preferring persistence under `.da-vinci/designs/`
83
83
  8. bind routes and pages to Pencil screens
84
84
  9. generate tasks aligned to the redesign slices
85
85
  10. build and verify
86
86
 
87
+ ### Complex Android example
88
+
89
+ ```text
90
+ $da-vinci use redesign-from-code to redesign this existing Android app.
91
+
92
+ Existing code is the behavior source of truth, not the layout truth.
93
+ Inventory activities, fragments, tabs, dialogs, bottom sheets, nested flows, and important states.
94
+ Decompose complex screens into separate design surfaces before Pencil work.
95
+ Do not pass design checkpoint if the result is just a skin-swap of the old UI.
96
+ ```
97
+
87
98
  ## 4. `feature-change`
88
99
 
89
100
  Use when an existing product needs a scoped requirement or page change.
@@ -129,6 +129,7 @@ Da Vinci 应该:
129
129
  4. 生成 `proposal.md`
130
130
  5. 按 redesign slice 拆分 `specs/`
131
131
  6. 重建或更新 `page-map.md`
132
+ - 把复杂页面拆成 subpage、state、overlay、fragment surface
132
133
  7. 生成 `design.md`
133
134
  8. 生成 `pencil-design.md`
134
135
  - 在可行时把新的 Pencil 基线持久化到 `.da-vinci/designs/`
@@ -136,6 +137,13 @@ Da Vinci 应该:
136
137
  10. 生成 `tasks.md`
137
138
  11. 进入实现
138
139
 
140
+ 关键规则:
141
+
142
+ - 现有代码决定 behavior,不决定新的视觉布局
143
+ - `redesign-from-code` 默认应该基于页面职责和状态重新构图
144
+ - 不能把“旧页面换个配色、换点间距、挪一点位置”当成真正的重设计
145
+ - 一个实现页如果包含多个 Fragment、多个 tab、多个状态或多个 overlay,应该拆成多个设计 surface
146
+
139
147
  ## 4. `feature-change`
140
148
 
141
149
  适合:
@@ -30,6 +30,15 @@ visual adapter 是可选的 presentation 质量增强层。
30
30
 
31
31
  把 visual adapter 偏好写在 `DA-VINCI.md` 里。
32
32
 
33
+ 可以先在下面两种配置里选一种:
34
+
35
+ - 平衡默认版
36
+ - 不阻塞交付
37
+ - 适合大多数 app 和 dashboard
38
+ - 设计质量优先版
39
+ - 主动抬高视觉门槛
40
+ - 适合之前结果很丑、很普通、或太像旧 UI 的场景
41
+
33
42
  推荐结构:
34
43
 
35
44
  ```md
@@ -51,6 +60,56 @@ visual adapter 是可选的 presentation 质量增强层。
51
60
 
52
61
  只有当你希望“本地没有对应 adapter 就必须停下”时,才把 `Require Adapter` 设成 `true`。
53
62
 
63
+ ## 快速上手配置
64
+
65
+ 平衡默认版:
66
+
67
+ ```md
68
+ ## Visual Assist
69
+ - Preferred adapters:
70
+ - ui-ux-pro-max
71
+ - frontend-skill
72
+ - Scope:
73
+ - visual contract refinement
74
+ - page composition
75
+ - hierarchy and spacing
76
+ - Pencil design refinement
77
+ - Fallback:
78
+ - native-da-vinci
79
+ - Require Adapter:
80
+ - false
81
+ ```
82
+
83
+ 适用场景:
84
+
85
+ - app、dashboard、桌面工具、高密度产品界面
86
+ - 想提升布局和层级,但本地没有 adapter 时工作流也应该继续
87
+
88
+ 设计质量优先版:
89
+
90
+ ```md
91
+ ## Visual Assist
92
+ - Preferred adapters:
93
+ - frontend-skill
94
+ - ui-ux-pro-max
95
+ - Scope:
96
+ - visual contract refinement
97
+ - page composition
98
+ - hierarchy and spacing
99
+ - motion guidance
100
+ - Pencil design refinement
101
+ - Fallback:
102
+ - native-da-vinci
103
+ - Require Adapter:
104
+ - true
105
+ ```
106
+
107
+ 适用场景:
108
+
109
+ - 页面视觉要求高,或者面对 premium / brand-sensitive 场景
110
+ - 上一次重设计产出了通用卡片网格、弱锚点或只是旧 UI 换皮
111
+ - 你宁可停下,也不想在没有强本地设计辅助 skill 时继续
112
+
54
113
  ## 每个字段是什么意思
55
114
 
56
115
  可以这样理解这些字段:
@@ -77,6 +136,27 @@ visual adapter 是可选的 presentation 质量增强层。
77
136
  - 优先用 `Fallback: native-da-vinci`
78
137
  - `Scope` 保持在视觉质量相关范围内
79
138
 
139
+ adapter 选择经验:
140
+
141
+ - 高密度 app、dashboard、admin 界面且视觉要求中等时,`ui-ux-pro-max` 更适合放第一位
142
+ - 更强调 art direction、构图质量和克制感时,`frontend-skill` 更适合放第一位
143
+
144
+ ## 如果结果还是很丑怎么办
145
+
146
+ 如果流程是通的,但 Pencil 结果仍然很平庸或很丑:
147
+
148
+ - 把 `frontend-skill` 提到 `Preferred adapters` 的第一位
149
+ - 在 `DA-VINCI.md` 里把视觉方向写得更明确,不要太宽泛
150
+ - 对设计质量要求很高的项目,可以接受把 `Require Adapter: true`
151
+ - 把 `Scope` 收紧到 composition、hierarchy、Pencil refinement 这些具体能力
152
+ - 在 design checkpoint 里把“堆卡片、弱视觉锚点、装饰性噪音”当成不过关条件
153
+
154
+ 对于 `redesign-from-code`,还应该补三句:
155
+
156
+ - 重申 existing code 只是真相行为,不是真相布局
157
+ - 在大规模 Pencil 设计前先拆 activities、fragments、tabs、overlays 和明显不同的 states
158
+ - 明确要求 fresh composition,而不是旧 UI 改色或轻微挪位置
159
+
80
160
  ## 解析顺序
81
161
 
82
162
  adapter 的解析顺序建议固定为:
@@ -165,6 +245,8 @@ Persist project-local Pencil files under .da-vinci/designs/.
165
245
  - `native-da-vinci`
166
246
  - 本地没有 adapter,或只需要 Da Vinci 自身规则时使用
167
247
 
248
+ 如果你对设计质量要求很高,即使是 app 界面,也可以把 `frontend-skill` 放到第一位,并把 `native-da-vinci` 只当成兜底。
249
+
168
250
  ## 场景推荐配置
169
251
 
170
252
  可直接复制的场景模板在这里:
@@ -9,6 +9,13 @@
9
9
  - 清晰的作用范围
10
10
  - 默认不阻塞工作流
11
11
 
12
+ 如果项目对设计质量要求很高,或者之前结果很普通、很丑、太像旧 UI:
13
+
14
+ - 仍然先选对应场景模板
15
+ - 把 `frontend-skill` 提到第一位
16
+ - 视情况把 `Require Adapter` 改成 `true`
17
+ - 在大规模 Pencil 设计前先把 design checkpoint 门槛抬高
18
+
12
19
  可用模板:
13
20
 
14
21
  - `mobile-app.md`
@@ -29,3 +29,4 @@
29
29
 
30
30
  - 优先用 `ui-ux-pro-max` 做高密度 app 布局判断
31
31
  - `frontend-skill` 更适合作为辅助,不要反过来把工具界面做成营销页
32
+ - 如果结果太平、太盒子化、太像通用后台,就把 `frontend-skill` 调到第一位,并提高 design checkpoint 的要求
@@ -28,3 +28,4 @@
28
28
 
29
29
  - `ui-ux-pro-max` 更适合移动端 app 表面的密度和平衡
30
30
  - motion 要轻,不要把普通 app 页面做成营销页
31
+ - 如果结果总是变成泛化卡片堆砌或层级太弱,就把 `frontend-skill` 调到第一位,并考虑把 `Require Adapter` 改成 `true`
@@ -28,3 +28,4 @@
28
28
 
29
29
  - spacing 一般要比手机更舒展,但又不能像桌面端那样过密
30
30
  - 更适合用 adapter 去辅助分栏、画布区和主次区域的平衡
31
+ - 如果结果还是寡淡或被边框框死,就把 `frontend-skill` 调到第一位,并要求在 Pencil 设计前先写清楚 visual thesis
@@ -29,3 +29,4 @@
29
29
 
30
30
  - 如果是典型 product UI,优先 `ui-ux-pro-max`
31
31
  - 如果页面更偏品牌表达或强视觉,可以把 `frontend-skill` 放前面
32
+ - 如果结果像很普通的 SaaS 模板,就把 `frontend-skill` 提到第一位,并把 `DA-VINCI.md` 的视觉方向写得更具体
@@ -89,12 +89,23 @@ $da-vinci use redesign-from-code to inventory the current app, identify current
89
89
  3. 在 `design-registry.md` 中登记现有设计源和 visual adapter 解析结果
90
90
  4. 在 `proposal.md` 中定义重设计范围
91
91
  5. 当范围过大时,把工作拆成多个 `specs/<slice>/spec.md`
92
- 6. 重建或细化 `page-map.md`
93
- 7. 创建新的或更新后的 Pencil 页面,并优先持久化到 `.da-vinci/designs/`
92
+ 6. 重建或细化 `page-map.md`,把 subpage、overlay、重要 state 一起拆出来
93
+ 7. 创建新的或更新后的 Pencil 页面,基于重新构图而不是旧 UI 换皮,并优先持久化到 `.da-vinci/designs/`
94
94
  8. 绑定路由和 Pencil 页面
95
95
  9. 生成和 redesign slice 对齐的任务
96
96
  10. 实现并验证
97
97
 
98
+ ### 复杂 Android 页面示例
99
+
100
+ ```text
101
+ $da-vinci use redesign-from-code to redesign this existing Android app.
102
+
103
+ Existing code is the behavior source of truth, not the layout truth.
104
+ Inventory activities, fragments, tabs, dialogs, bottom sheets, nested flows, and important states.
105
+ Decompose complex screens into separate design surfaces before Pencil work.
106
+ Do not pass design checkpoint if the result is just a skin-swap of the old UI.
107
+ ```
108
+
98
109
  ## 4. `feature-change`
99
110
 
100
111
  适用:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xenonbyte/da-vinci-workflow",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Requirement-to-design-to-code workflow skill for Codex, Claude, and Gemini",
5
5
  "bin": {
6
6
  "da-vinci": "bin/da-vinci.js"
@@ -273,6 +273,15 @@ Use this structure:
273
273
  - Route or identifier
274
274
  - Purpose
275
275
 
276
+ ## Implementation Surfaces
277
+ - Activity / fragment / tab / dialog / sheet / overlay
278
+ - Which canonical page each surface belongs to
279
+
280
+ ## Subpages And Overlays
281
+ - Subpage name
282
+ - Overlay name
283
+ - When each one appears
284
+
276
285
  ## States Per Page
277
286
  - Empty
278
287
  - Loading
@@ -293,6 +302,8 @@ Use this structure:
293
302
 
294
303
  Use this artifact for every mode. It is the canonical page list.
295
304
 
305
+ For complex products, do not stop at route names. Record implementation surfaces, subpages, and overlays when they materially affect design work.
306
+
296
307
  Recommended path:
297
308
 
298
309
  - `.da-vinci/page-map.md`
@@ -36,6 +36,7 @@ Use the design checkpoint to confirm:
36
36
  - `DA-VINCI.md` exists or has been intentionally generated for the current project
37
37
  - the current Pencil pages follow the same visual baseline
38
38
  - later pages are not re-inventing the product style from scratch
39
+ - `redesign-from-code` is not treating the old UI layout as the new design baseline
39
40
 
40
41
  ## `discovery checkpoint`
41
42
 
@@ -93,12 +94,18 @@ Check:
93
94
  - major layout strategy matches the design artifact
94
95
  - Pencil names and artifact names are aligned enough to implement from
95
96
  - Pencil pages follow the current `DA-VINCI.md` visual contract
97
+ - each page has a clear visual anchor or primary working surface
98
+ - section hierarchy is readable without relying on decorative chrome
99
+ - the design does not collapse into generic card-grid or border-heavy filler UI
100
+ - motion ideas, if present, improve hierarchy or affordance instead of adding noise
101
+ - complex pages with multiple fragments, subpages, overlays, or materially different states are decomposed clearly enough to design and implement from
102
+ - `redesign-from-code` output is a fresh composition driven by page responsibility and state, not a skin-swap of the old UI
96
103
 
97
104
  Result meanings:
98
105
 
99
106
  - `PASS`: safe to generate implementation tasks
100
- - `WARN`: minor design gaps exist
101
- - `BLOCK`: design is not ready to drive implementation
107
+ - `WARN`: minor design gaps exist, but the visual direction is still coherent
108
+ - `BLOCK`: design is not ready to drive implementation, or the result is generic, cluttered, or materially below the intended visual bar
102
109
 
103
110
  ## `mapping checkpoint`
104
111
 
@@ -14,14 +14,17 @@ Treat `pencil-bindings.md` as the source of truth for:
14
14
 
15
15
  - implementation page -> Pencil page
16
16
  - route -> Pencil screen
17
+ - implementation surface -> Pencil surface
17
18
  - shared region -> Pencil region
18
19
 
19
20
  ## Mapping Rules
20
21
 
21
22
  - define one canonical implementation page name per page
23
+ - decompose complex pages into subpages, states, overlays, and implementation surfaces when layout changes materially
22
24
  - define one canonical Pencil page or screen per implementation page when possible
23
25
  - if multiple implementation pages share one Pencil page, record the reason
24
26
  - if one implementation page needs multiple Pencil screens, record the sub-page or state split
27
+ - if one Android page hosts multiple fragments or tabs, map each meaningful surface separately instead of treating the container as one redesign target
25
28
 
26
29
  ## Minimum Binding Shape
27
30
 
@@ -43,6 +46,14 @@ For shared regions:
43
46
  - `App sidebar` -> `Navigation Shell`
44
47
  ```
45
48
 
49
+ For complex surface decomposition:
50
+
51
+ ```md
52
+ - `HomeActivity/HomeFragment[loaded]` -> `Home Loaded`
53
+ - `HomeActivity/HomeFragment[empty]` -> `Home Empty`
54
+ - `HomeActivity/FilterBottomSheet` -> `Home Filters Sheet`
55
+ ```
56
+
46
57
  ## When To Block
47
58
 
48
59
  Treat bindings as insufficient when:
@@ -50,6 +61,7 @@ Treat bindings as insufficient when:
50
61
  - no active `.pen` source is registered
51
62
  - the only known Pencil source is a live or external session and no project-local persistence path is recorded
52
63
  - the implementation page has no Pencil source
64
+ - a complex page with multiple fragments, tabs, overlays, or materially different states has been flattened into one ambiguous design target
53
65
  - the Pencil page exists but cannot be traced to a route or page responsibility
54
66
  - shared layout regions are undefined and implementation would guess too much
55
67