openyida 2026.9.21 → 2026.9.22-beta.2

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.
Files changed (334) hide show
  1. package/README.md +14 -20
  2. package/bin/yida.js +6 -11
  3. package/lib/app/app-list.js +3 -7
  4. package/lib/app/canvas-compile.js +12 -22
  5. package/lib/app/check-prd-completeness.js +0 -7
  6. package/lib/app/create-app.js +1 -4
  7. package/lib/app/create-form/args.js +12 -37
  8. package/lib/app/create-form/batch.js +11 -86
  9. package/lib/app/create-form.js +86 -193
  10. package/lib/app/create-page.js +17 -84
  11. package/lib/app/custom-theme.js +0 -11
  12. package/lib/app/form-field-validator.js +41 -26
  13. package/lib/app/form-open-guard.js +10 -97
  14. package/lib/app/get-form-config.js +0 -1
  15. package/lib/app/inline-css-guard.js +31 -1
  16. package/lib/app/services/form-compiler.js +4 -2
  17. package/lib/app/theme-from-design.js +41 -144
  18. package/lib/app/theme-presets.js +1 -1
  19. package/lib/app/update-app.js +13 -63
  20. package/lib/asset/ai-image.js +9 -59
  21. package/lib/asset/asset-cmd.js +7 -18
  22. package/lib/asset/asset-plan.js +9 -102
  23. package/lib/asset/asset-resolve.js +10 -55
  24. package/lib/asset/asset-status.js +4 -5
  25. package/lib/asset/host-capabilities.js +2 -11
  26. package/lib/asset/url-verify.js +4 -19
  27. package/lib/auth/dws-sync.js +148 -0
  28. package/lib/auth/token-auth.js +73 -9
  29. package/lib/auth/token-store.js +50 -0
  30. package/lib/connector/connector-test.js +5 -19
  31. package/lib/connector/contract.js +1 -3
  32. package/lib/core/agent-capabilities.js +16 -19
  33. package/lib/core/command-manifest.js +40 -329
  34. package/lib/core/locales/en.js +17 -74
  35. package/lib/core/locales/zh.js +16 -73
  36. package/lib/core/redact.js +10 -15
  37. package/lib/core/sample.js +30 -72
  38. package/lib/core/utils.js +4 -0
  39. package/lib/design-plan/design-plan.js +4 -51
  40. package/lib/design-plan/init.js +26 -121
  41. package/lib/design-plan/materialize.js +348 -451
  42. package/lib/design-plan/normalize.js +29 -74
  43. package/lib/design-plan/parallel.js +16 -71
  44. package/lib/design-plan/patch.js +16 -63
  45. package/lib/design-plan/preview.js +8 -6
  46. package/lib/design-plan/validate.js +11 -71
  47. package/lib/process/create-process.js +50 -84
  48. package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
  49. package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
  50. package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
  51. package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
  52. package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
  53. package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
  54. package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
  55. package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
  56. package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
  57. package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
  58. package/package.json +1 -3
  59. package/scripts/postinstall.js +3 -3
  60. package/yida-skills/SKILL.md +16 -19
  61. package/yida-skills/references/official-example-schema-patterns.md +1 -1
  62. package/yida-skills/references/yida-api.md +0 -4
  63. package/yida-skills/skills/yida-app/SKILL.md +23 -46
  64. package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
  65. package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
  66. package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
  67. package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
  68. package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
  69. package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
  70. package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
  71. package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
  72. package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
  73. package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
  74. package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
  75. package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
  76. package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
  77. package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
  78. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
  79. package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
  80. package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
  81. package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
  82. package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
  83. package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
  84. package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
  85. package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
  86. package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
  87. package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
  88. package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
  89. package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
  90. package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
  91. package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
  92. package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
  93. package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
  94. package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
  95. package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
  96. package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
  97. package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
  98. package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
  99. package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
  100. package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
  101. package/yida-skills/skills/yida-design/SKILL.md +14 -29
  102. package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
  103. package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
  104. package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
  105. package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
  106. package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
  107. package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
  108. package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
  109. package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
  110. package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
  111. package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
  112. package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
  113. package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
  114. package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
  115. package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
  116. package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
  117. package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
  118. package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
  119. package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
  120. package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
  121. package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
  122. package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
  123. package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
  124. package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
  125. package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
  126. package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
  127. package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
  128. package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
  129. package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
  130. package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
  131. package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
  132. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
  133. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
  134. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
  135. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
  136. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
  137. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
  138. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
  139. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
  140. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
  141. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
  142. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
  143. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
  144. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
  145. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
  146. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
  147. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
  148. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
  149. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
  150. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
  151. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
  152. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
  153. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
  154. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
  155. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
  156. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
  157. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
  158. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
  159. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
  160. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
  161. package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
  162. package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
  163. package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
  164. package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
  165. package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
  166. package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
  167. package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
  168. package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
  169. package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
  170. package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
  171. package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
  172. package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
  173. package/yida-skills/skills/yida-integration/SKILL.md +0 -1
  174. package/yida-skills/skills/yida-login/SKILL.md +0 -2
  175. package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
  176. package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
  177. package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
  178. package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
  179. package/yida-skills/skills/yida-prd/SKILL.md +3 -5
  180. package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
  181. package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
  182. package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
  183. package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
  184. package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
  185. package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
  186. package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
  187. package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
  188. package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
  189. package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
  190. package/yida-skills/skills-index.json +16 -36
  191. package/lib/app/application-entry-urls.js +0 -31
  192. package/lib/app/application-style.js +0 -69
  193. package/lib/app/canvas-icon-exports.json +0 -6160
  194. package/lib/app/canvas-icon-guard.js +0 -87
  195. package/lib/app/canvas-navigation-guard.js +0 -84
  196. package/lib/app/canvas-path-guard.js +0 -78
  197. package/lib/app/canvas-theme-guard.js +0 -184
  198. package/lib/app/form-data-response-guard.js +0 -57
  199. package/lib/asset/asset-execution.js +0 -79
  200. package/lib/core/css-structure.js +0 -37
  201. package/lib/design/check-design.js +0 -51
  202. package/lib/design/document.js +0 -458
  203. package/lib/design/icon-contrast.js +0 -85
  204. package/lib/design/page-content.js +0 -11
  205. package/lib/design-plan/artifact-updates.js +0 -117
  206. package/lib/design-plan/confirmation.js +0 -13
  207. package/lib/design-plan/entry-navigation.js +0 -97
  208. package/lib/design-plan/navigation-policy.js +0 -38
  209. package/lib/design-plan/rebase.js +0 -60
  210. package/lib/design-plan/themes.js +0 -101
  211. package/lib/design-plan/visual-policy.js +0 -42
  212. package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
  213. package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
  214. package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
  215. package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
  216. package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
  217. package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
  218. package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
  219. package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
  220. package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
  221. package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
  222. package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
  223. package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
  224. package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
  225. package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
  226. package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
  227. package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
  228. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
  229. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
  230. package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
  231. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
  232. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
  233. package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
  234. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
  235. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
  236. package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
  237. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
  238. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
  239. package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
  240. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
  241. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
  242. package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
  243. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
  244. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
  245. package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
  246. package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
  247. package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
  248. package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
  249. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
  250. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
  251. package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
  252. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
  253. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
  254. package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
  255. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
  256. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
  257. package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
  258. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
  259. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
  260. package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
  261. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
  262. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
  263. package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
  264. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
  265. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
  266. package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
  267. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
  268. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
  269. package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
  270. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
  271. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
  272. package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
  273. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
  274. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
  275. package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
  276. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
  277. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
  278. package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
  279. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
  280. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
  281. package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
  282. package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
  283. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
  284. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
  285. package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
  286. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
  287. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
  288. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
  289. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
  290. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
  291. package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
  292. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
  293. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
  294. package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
  295. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
  296. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
  297. package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
  298. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
  299. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
  300. package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
  301. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
  302. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
  303. package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
  304. package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
  305. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
  306. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
  307. package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
  308. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
  309. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
  310. package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
  311. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
  312. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
  313. package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
  314. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
  315. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
  316. package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
  317. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
  318. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
  319. package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
  320. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
  321. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
  322. package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
  323. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
  324. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
  325. package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
  326. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
  327. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
  328. package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
  329. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
  330. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
  331. package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
  332. package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
  333. package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
  334. package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
@@ -1,27 +1,151 @@
1
- # 主题应用自检
1
+ # 视觉选择规则(共用)
2
2
 
3
- 主题选择统一使用 [共享主题选择规则](theme-selection.md)。本文件只检查选中主题如何落到当前页面,不再另选一套气质方向、强制第二选择或按固定差异数量改写主题。
3
+ > 本文档为 `SKILL.md` 的视觉规范提供共用规则,所有 scene 场景共用。
4
4
 
5
- ## 平台约束
5
+ ## 平台关键约束(务必先读)
6
6
 
7
- 1. 页面在自身运行上下文消费应用主题变量,主操作和交互强调与应用主题一致;独立品牌页、自绘壳和沉浸页通过布局、材质、素材及辅助视觉体现差异。
8
- 2. 不依赖 `fonts.googleapis.com`。使用主题字体角色与可用系统字体回退,中文字体可用 `-apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif`;远程字体仅使用已验证的 `g.alicdn.com` 资源。
9
- 3. 数据页、列表、工具和详情以业务内容与操作为主,装饰不干扰信息阅读。
10
- 4. 本文件不产出 JSX,也不替代 `design.md`;实现阶段读取项目设计与实现技能。
11
- 5. 默认浅色内容画布;暗色需要用户明确要求或已确认方向。导航和内容界面的明暗分别描述,导航明暗采用所选主题模板的 `navTheme`,不因深色导航把内容画布一并变暗。
7
+ 1. **页面主色跟随应用主题**:页面使用平台品牌色 CSS 变量(`var(--color-brand1-6)` 等)。独立品牌页、活动页、沉浸页和自绘壳通过下面 5 个维度表达差异。
8
+ 2. **字体不可用 Google Fonts**:禁 `fonts.googleapis.com`(大陆不可达)。放弃「Inter vs Plus Jakarta」这类字体选型,改用**系统中文字体栈** + 字重/字号对比/字间距/`tabular-nums` 造性格。仅允许 `g.alicdn.com` 上已验证的字体。
9
+ 3. **B 端为主**:自定义页多为看板/列表/工具/详情,不是营销落地页。装饰要克制、服务于信息,不堆砌。
10
+ 4. **纯方向**:本文档只帮你选方向,不产出 JSX,也不替代 `design.md`。实现阶段读取对应实现适配文档,把 `design.md` 的 token、视觉 DNA、布局、圆角、密度和组件规则转换成页面源码。
11
+ 5. **默认 light,不默认暗黑**:工作台、门户、列表、详情、普通看板和数据大屏默认是浅底业务风;“高级 / 酷炫 / 大屏 / 驾驶舱”不等于暗色。只有用户明确说暗色、深色、暗黑、夜间、高对比、黑金或暗色科技风,才允许深色沉浸。
12
12
 
13
- ## 五项应用检查
13
+ ---
14
14
 
15
- | 维度 | 检查内容 |
16
- | --- | --- |
17
- | 色彩角色 | 项目主色与主题的交互、数据、状态角色分别落实;成功、警告、危险和信息保持明确语义,告警色只用于真实需要关注的状态 |
18
- | 表面与边界 | 保留主题的冷暖、明度、描边、共容器、层次和材质关系,不用统一白卡或装饰盖过真实特征 |
19
- | 形状分工 | 容器、按钮、输入、标签和浮层按主题选择圆角,不把所有元素统一成大圆角或胶囊 |
20
- | 排版节奏 | 字号、字重、行高与层级按主题;中文有回退字体,数字采用稳定对齐,单位与读数一起出现 |
21
- | 视觉特征 | 明确特色配方的真实内容条件、消费位置与无匹配时行为,不为模仿参考增加指标、图表或业务模块 |
15
+ ## 第 0 层:风格意图自决
22
16
 
23
- 图表沿用 `yida-rechart` 的 Canvas 主题契约;仅在用户明确要求复杂 ECharts option 或维护已有旧图表时转 `yida-chart`。多系列色板采用主题的数据语义,不将所有系列都染成高饱和品牌色。
17
+ 在心里从下面 5 个方向选一个并 commit。**不要默认选第一个**,问自己「这个业务、这个页面,我想让它散发什么气质」。每个方向给:关键词 + 硬约束 + 必须偏离规则。
24
18
 
25
- ## 验收依据
19
+ ### A. 经典企业级
20
+ > 关键词:稳重、可信赖、克制、大留白
21
+ - 圆角:偏直角/微圆(R1-R2 性格),不宜大圆。
22
+ - 中性色:冷灰或中性灰基底。
23
+ - 必须偏离:在「辅助色 / 排版 / 图标」中至少 1 项不选该业务的第一直觉(如财务别默认冷蓝点缀,试暖金/墨绿)。
26
24
 
27
- 将选中主题的核心特征与偏离风险转成 `design.md` 的验收条件,结合 [页面质量门禁](page-quality-gates.md) 检查内容密度、空态、响应式与可访问性。差异来自主题与项目事实的组合,不靠强制选非常规颜色、加装饰或扩大字号跨度。
25
+ ### B. 现代 SaaS 感
26
+ > 关键词:轻盈、精致、几何感、呼吸感
27
+ - 圆角:微圆到标准圆(R2-R3 性格)。
28
+ - 留白:加大区块间距,信息密度偏均衡。
29
+ - 必须偏离:中性色或装饰母题至少 1 项不选「最安全」的纯灰。
30
+
31
+ ### C. 创新前沿感
32
+ > 关键词:突破、科技、高对比、有个性
33
+ - 对比:强化字重/字号跨度,主次拉开。
34
+ - 装饰母题:至少用一次非常规手法(几何切割、错位网格、单色大字),打破常规卡片网格。
35
+ - 必须偏离:布局或装饰母题选「边缘选项」,别回退到对称平铺。
36
+
37
+ ### D. 温暖亲和力
38
+ > 关键词:友好、有机、人文、圆润
39
+ - 圆角:偏圆润(R3+ 性格)。
40
+ - 中性色:**暖灰基底**(关键差异点)。
41
+ - 必须偏离:辅助色避开冷蓝,倾向绿/琥珀/陶土/珊瑚等暖调点缀。
42
+
43
+ ### E. 极简高端感
44
+ > 关键词:克制、留白、品质、精准
45
+ - 辅助色:低饱和,避免喧闹色。
46
+ - 图标:细线性、克制。
47
+ - 必须偏离:用大留白 + 精准对齐 + 字重克制造质感,别靠装饰堆砌;排版别用最普通的均匀字号。
48
+
49
+ ---
50
+
51
+ ## 反默认硬约束
52
+
53
+ ### 严禁直接套用的「宜搭默认脸」
54
+
55
+ 以下是宜搭自定义页最泛滥的组合,**严禁直接输出**。你的方案必须与它在**至少 3 个维度**上不同(输入极模糊时提升到 4 个):
56
+
57
+ ```
58
+ 统一灰白底(#F7F8FA + 纯白卡片) + 统一 8px 圆角卡片网格 + 系统默认字体一套到底
59
+ + 蓝色/品牌色平铺强调 + 每个卡片标题配一枚线性图标 + 等宽等高对称平铺
60
+ ```
61
+
62
+ **执行规则**:
63
+ 1. 5 个差异化维度选完后,与上面的默认脸逐维比对。
64
+ 2. 差异维度 < 3 → 回到差异最少的那一维,强制换更有特色的选项。
65
+ 3. 注意:这里的「差异」不是换主色(主色被平台锁定),而是靠**中性冷暖 / 圆角性格 / 排版性格 / 装饰母题 / 辅助色取法**拉开。
66
+
67
+ ### 强制第二选择
68
+
69
+ 每一个差异化维度决策时:
70
+ 1. 写下**第一直觉**(通常就是默认/最泛滥的)。
71
+ 2. 写下**第二选项**(同样合理、更不常见)。
72
+ 3. **选第二选项**,除非它导致整体严重不协调(此时选第三,并在心里说明为何跳过第二)。
73
+
74
+ ### 差异化自检
75
+
76
+ 5 个维度选完后自问:「这套方向像不像 90% 的同类宜搭页?」
77
+ - 若答「有点像/比较普通」→ 找出最像默认脸的那一维,替换为更有特色的选项,重查协调性。
78
+ - 重复到确认「这套方向有个性、不会千篇一律」。
79
+
80
+ ---
81
+
82
+ ## 5 个差异化维度(主色固定,靠这 5 维拉开差异)
83
+
84
+ ### 维度 1 — 辅助 / 强调色
85
+
86
+ 主色已被平台锁定,**辅助色和图表色板是你最大的差异化空间**。
87
+
88
+ - **状态色**:成功/警告/危险/信息用 `design.md` 声明的语义色或平台语义变量,但**告警红是稀缺资源**——只给真正需要用户立刻反应的地方(库存告警、逾期、失败),不要满屏红。
89
+ - **点缀色**:从气质关键词推导 1 个点缀色方向(暖金=高端/财务、墨绿=沉稳/健康、青=数据/科技、陶土=人文/教育),用于强调数字、选中态、图表主色。
90
+ - **图表色板**:看板类默认按 `yida-rechart` 的 Canvas 主题契约使用克制色板,避免每个系列都高饱和抢眼;只有明确 ECharts/复杂 option 或维护旧 native 图表时才转 `yida-chart`。
91
+
92
+ ### 维度 2 — 中性色冷暖偏色
93
+
94
+ **最容易区分气质、又最常被忽略的维度。** 选一个基底方向并全页贯彻:
95
+
96
+ | 方向 | 气质 | 适配 |
97
+ |---|---|---|
98
+ | 冷灰(偏蓝) | 冷静、科技、专业 | 数据平台、开发工具、金融 |
99
+ | 中性灰 | 干净、通用、内容优先 | 通用后台 |
100
+ | 暖灰(偏暖) | 温暖、人文、有机 | 教育、健康、生活、内部门户 |
101
+
102
+ 偏色强度逐级衰减:背景 5-8% > 边框 3-6% > 弱化文字 2-4% > 正文 0-1% > **标题 0%(严格不偏,保证黑色感)**。
103
+
104
+ ### 维度 3 — 圆角性格
105
+
106
+ **全页统一一种性格**(不是所有元素同一个值,而是同一种调性,分层级写入 `design.md` 的 `roundedRule`):
107
+
108
+ | 性格 | 气质 | 搭配意图 |
109
+ |---|---|---|
110
+ | 直角 / 微圆 | 硬朗、工程感、严肃 | A 经典企业级、C 前沿(配高对比) |
111
+ | 标准圆 | 现代、友好、平衡 | B 现代 SaaS |
112
+ | 圆润 / 大圆 | 柔和、亲切、消费感 | D 温暖亲和 |
113
+
114
+ ❌ 禁止全页一个圆角值无差别堆叠(那是默认脸);也禁止同页混用互相打架的圆角性格。
115
+
116
+ ### 维度 4 — 排版性格
117
+
118
+ 字体不能换,就靠这些造性格:
119
+
120
+ - **字重对比**:标题/正文拉开字重(如 600 vs 400),别全页一个字重。
121
+ - **字号跨度**:主标题与正文字号差要够(详情页 ≥2.5×;看板 KPI 数字要显著大于标签)。
122
+ - **字间距**:大标题可微调 `letter-spacing`(负值收紧显精致 / 正值拉开显克制)。
123
+ - **数字**:所有金额/统计/KPI 用 `font-variant-numeric: tabular-nums`,保证对齐、不跳动。
124
+ - **中文字体栈**:`-apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif`,并写入 `design.md` 的字体规则。
125
+
126
+ ### 维度 5 — 装饰母题(视觉 DNA)
127
+
128
+ 2-3 个贯穿全页的视觉基因,让人**遮住标题也能认出是同一套设计**。每个母题写清:类型(形态/色彩/纹理/构图习惯)+ 形式(长什么样)+ 出现位置 + 传递的感知。
129
+
130
+ 示例母题(选契合气质的,别堆砌):
131
+ - 左侧强调竖条(选中/重点行用主色/点缀色竖条标记)
132
+ - 数字优先的大字排版(KPI 用超大字号 + tabular-nums 当视觉锤)
133
+ - 单色分区块(用中性色阶而非彩色划分区域)
134
+ - 克制的顶部细线 / 卡片左上角小几何标记
135
+ - 非对称双栏(主 70% + 次 30%,打破对称)
136
+
137
+ ❌ 装饰母题不等于「加特效」:禁彩色发光、禁半透明彩色 blob、禁渐变文字(这些是 AI 味,见黑名单)。
138
+
139
+ ---
140
+
141
+ ## 差异化方向示例(同一业务,不同气质)
142
+
143
+ > 以下只示范「方向」如何差异化,不含色值代码。具体色值和 token 写入 `design.md`,主色始终用平台品牌变量或 `design.md` 明确声明的自定义主题 token。
144
+
145
+ **同样是「进销存看板」:**
146
+
147
+ - **意图 A 经典企业级**:中性=冷灰;圆角=微圆;排版=KPI 大字 + tabular-nums,标题 600 正文 400;装饰母题=重点行左侧主色竖条 + 单色分区。反默认:不套满屏卡片,用单色阶分区替代等宽卡片网格。
148
+
149
+ - **意图 D 温暖亲和**:中性=暖灰基底;圆角=圆润;辅助色=墨绿点缀(避开冷蓝);排版=字号跨度中等、字重对比柔和;装饰母题=非对称双栏(左大右小)+ 顶部克制细线。反默认:暖灰 + 圆润 + 暖调点缀,三维一起偏离默认脸。
150
+
151
+ **判断标准**:两个方向摆一起,应一眼看出是两套不同性格的设计,而不是换了个数字的同一张脸。
@@ -1,27 +1,39 @@
1
1
  # 视觉结构配方库
2
2
 
3
- 本文件把真实页面内容映射为可执行槽位,是共享主题的实现交接辅助。先保留业务已确定的结构,再参考匹配的配方;下文的布局、数字和装饰均为示例,选中主题与真实页面需求优先,不增加业务模块、不替代主题规则。
3
+ 本文件把高质量页面的视觉结构沉淀成可执行槽位。设计阶段输出 `visualScaffold` 时,从这里选择一套配方,再把当前业务对象、字段、动作和状态填进去。实现阶段按槽位写页面,不复制示例业务文案、不套默认卡片墙。
4
4
 
5
5
  ## 使用规则
6
6
 
7
- 1. 按业务已有结构选择匹配配方;无强匹配时按真实区块直接写槽位。
7
+ 1. 先按页面场景选择一套配方。
8
8
  2. 把 `contentBlocks` 映射到配方槽位;工作台、首页、门户、看板、展示页和业务入口页推荐 8-10 个区块以上。如果业务是窄场景或用户要求精简,可以减少区块,并在页面结构和交互设计中说明取舍。
9
- 3. 把选中配方的实际布局、表面、组件与响应式决定写入页面正文八项要点;PRD 只引用 `designFile/designRefs` 和主题风格摘要。
9
+ 3. 把配方写入 `design.md` 的 `visualScaffold`:`layoutRecipe`、`surfaceMap`、`sectionRhythm`、`densityRule`、`breathingRule`、`componentRecipe`、`emptyStateRecipe`、`responsiveSlots`、`acceptanceChecks`。PRD 只引用 `designFile/designRefs` 和主题风格摘要。
10
10
  4. 实现阶段逐项消费,不从“高级 / 简洁 / 好看”等形容词直接写 CSS。
11
- 5. 形状、密度和呼吸节奏采用选中主题的规则;主题未定义时可参考卡片 padding 22-28px、gap 12-18px、控件圆角 10-14px 等通用值。状态摘要、动作条、列表与空态按真实内容确定高度,不以额外 margin 或空白撑面积。
11
+ 5. 默认业务页采用圆润高密且有呼吸感的规则:卡片 padding 默认 22-28px 且必须大于 20px,卡片与卡片的 gap 默认 12-18px 且必须小于 20px,卡片圆角范围 0-32px,控件 10-14px;状态摘要、动作条、列表和空态必须紧凑,间距服务分组和扫读,不用额外 margin 或空白高度撑面积。
12
12
  6. 标题槽位按信息增量使用:导航已标明当前页面时,首个内容槽位直接承载表单、列表或业务区块;独立页头用于具体对象名、任务说明或操作。业务分区标题保留,顶部间距按实际内容重新分配。
13
13
 
14
- ## 将配方落实为页面设计
14
+ ## 源码级槽位
15
15
 
16
- 配方中的外壳、焦点、状态摘要、动作、内容、上下文和响应式都表示设计含义,不是最终 frontmatter 的必填键。将实际安排写入 [页面八项要点](../workflow/output-design.md#页面设计的八项要点),并用显式 anchor 定位;共享组件规则只引用一次。
16
+ `visualScaffold` 不只描述页面长相,还要让实现阶段能直接写出结构。每个配方都必须补齐下面这些源码级槽位:
17
17
 
18
- 下文使用 layoutRecipe、surfaceMap、sectionRhythm 等名称帮助理解示例。最终可用自然语言描述布局、表面、层次、圆角、密度与呼吸节奏,不要求创建同名 `visualScaffold` 对象,也不复制每套配方中未使用的槽位。
18
+ - `rootShell`:页面外层背景、最大宽度、是否全屏、是否显示平台导航后的内容宽度。
19
+ - `prioritySurface`:首屏最大视觉锚点,例如主趋势、主任务、主对象摘要或主视觉区,不能只是标题。
20
+ - `statusPrimitive`:紧凑指标、状态胶囊、数据在线、更新时间或主健康分。
21
+ - `actionPrimitive`:主操作、次操作、高频动作条或批量动作条。
22
+ - `contentPrimitive`:表格、列表、任务流、事件流、排行、时间线、图表或详情预览。
23
+ - `contextPrimitive`:右侧洞察、风险、负责人、说明、下一步建议或关联对象。
24
+ - `statePrimitive`:loading、empty、error、未接数据和刷新/登记/补录动作。
25
+ - `responsiveRule`:移动端分栏退化顺序和关键区块保留规则。
26
+ - `densityRule`:页面边距、卡片 gap、状态摘要高度、列表行高、卡片 padding、空态高度和压缩空白规则。
27
+ - `breathingRule`:主区、右栏、工具条、列表和空态之间的呼吸节奏,组内/组间间距、贴边修正和移动端折叠间距。
28
+ - `roundedRule`:业务面板、主面板、控件、标签、抽屉和弹层的圆角数值。
29
+
30
+ 没有这些源码级槽位时,`design.md` 不算可实现;先补 `visualScaffold`,再进入页面代码。
19
31
 
20
32
  ## 背景层配方
21
33
 
22
34
  `backgroundLayer` 是 `rootShell` 的一部分。展示型页面、工作台、看板、门户、官网、登录页和空状态页推荐先考虑背景层,再决定卡片和图表。背景层的目标是让页面有环境感和品牌调性,不是用装饰抢内容;极简近白画布也可以成立,但要通过淡渐变、细线装饰、星芒、插图或内容密度避免像未设计的空白底。
23
35
 
24
- `surfaceMap` 与 `surfaceContrast` 按主题说明画布、内容面、边界与层次。可通过色差、细线、共容器或留白分组区分内容;同色底面不自动失败。以下装饰只在选中主题和用户要求支持时启用,不作为通用必选项。
36
+ 页面背景与卡片背景必须形成明显层次对比,不可相近或相同。默认背景保持浅色调:白色/浅色背景配有边框卡片;浅灰背景(如 `#F3F4F6`)配白色无边框卡片;浅彩色背景配白色无边框卡片;渐变背景配玻璃感卡片。`surfaceMap` 必须同步写清 `surfaceContrast`,避免浅底白卡无边框、同色背景同色卡片或只靠弱阴影区分层级。
25
37
 
26
38
  | 配方 | 适用页面 | 写入 design.md 的字段 |
27
39
  | --- | --- | --- |
@@ -33,13 +45,13 @@
33
45
 
34
46
  选择规则:
35
47
 
36
- - B 端工具页采用主题定义的画布;主题支持柔和光洗时可用 `softTintCanvas + radialGlowWash`,前景操作不受干扰。
48
+ - B 端工具页优先 `softTintCanvas + radialGlowWash`,让背景淡淡存在,前景操作不受干扰。
37
49
  - 官网、品牌页和登录页可以用 `topIrregularWash` 做第一屏记忆点,像不规则顶部背景或侧向视觉区。
38
50
  - 数据可视化深色页可以用 `flowLight` 或细线光效衬托图表,但正文和数字对比度必须达标。
39
51
  - 空状态页和核心功能引导卡适合用低透明不规则底纹引导视线,同时保留明确主操作。
40
- - 极简工具页可以使用近白画布,通过主题的边界、留白与信息组织成立,不强制加装饰。
52
+ - 极简工具页可以使用近白画布,但要加局部渐变、细线、轻装饰符号、素材焦点或足够密的信息组织;不要为了满足背景层而硬加大面积彩色背景。
41
53
  - 背景可以不规则,内容必须规则;不要让标题、按钮、表格、列表和图表跟着背景形状漂移。
42
- - 背景和内容的层次按主题实现;渐变不强制要求玻璃,暗色不强制要求发光。
54
+ - 背景和卡片不可相近或相同:浅底白卡必须有边框,浅灰/浅彩背景用白色无边框卡片,渐变背景用玻璃感卡片。
43
55
 
44
56
  ## 配方 A:运营驾驶舱三栏
45
57
 
@@ -85,7 +97,7 @@ KPI 子项、图表点、列表行不分别计数。
85
97
  ### sectionRhythm
86
98
 
87
99
  - 首屏先读标题,再读状态胶囊,再扫左侧健康指标,最后看中央趋势和右侧风险。
88
- - 卡片间 gap 12-18px(主题未定义时),面板 padding 22-28px(主题未定义时)。
100
+ - 卡片间 gap 12-18px 且小于 20px,面板 padding 22-28px 且大于 20px。
89
101
  - 主图占最大视觉面积,风险项和事件流靠右形成持续扫描。
90
102
  - 如果首屏信息少,优先压缩面板高度或补充事件流/风险说明,不拉大 margin。
91
103
 
@@ -110,7 +122,7 @@ KPI 子项、图表点、列表行不分别计数。
110
122
  - 左侧指标轨不是四个大白卡。
111
123
  - 右侧事件流不是空白卡。
112
124
  - 主色跟随应用主题,语义色只用于风险、告警和成功。
113
- - 页面正文能指导实现外壳、焦点、状态、主内容与实际上下文,未使用的可选内容不渲染。
125
+ - 源码中能落成 `rootShell`、`prioritySurface`、`statusPrimitive`、`contentPrimitive`、`contextPrimitive` 和 `statePrimitive`。
114
126
 
115
127
  ## 配方 B:任务工作台双栏
116
128
 
@@ -149,7 +161,7 @@ KPI 子项、图表点、列表行不分别计数。
149
161
  ### densityRule
150
162
 
151
163
  - 页面边距 20-28px,栅格间距 14-18px,区块间距 16-20px。
152
- - 卡片 padding 22-28px(主题未定义时);卡片间 gap 12-18px(主题未定义时);任务列表行内距 10-14px。
164
+ - 卡片 padding 22-28px 且大于 20px;卡片间 gap 12-18px 且小于 20px;任务列表行内距 10-14px。
153
165
  - 大圆角用于面板性格,不用于放大空白;内容不足时压缩高度,或补最近记录、动态、风险、负责人、说明和下一步动作。
154
166
 
155
167
  ### acceptanceChecks
@@ -159,7 +171,7 @@ KPI 子项、图表点、列表行不分别计数。
159
171
  - 至少一个右侧上下文或提醒区。
160
172
  - 没有大面积空白容器。
161
173
  - 首屏同时具备状态摘要、动作条、任务/记录承接区、右侧上下文和可执行空态。
162
- - 圆角、内距与间距符合选中主题,真实内容与密度匹配,没有额外 margin 或空白高度撑出的空白。
174
+ - 圆润形状和紧凑密度同时成立:卡片圆角在 0-32px 内,卡片 padding >20px,卡片 gap <20px,没有额外 margin 或空白高度撑出的空白。
163
175
 
164
176
  ## 配方 C:主从管理台
165
177
 
@@ -21,10 +21,6 @@ description: 宜搭单页设计子流程。用于已有应用里的单个自定
21
21
 
22
22
  主题证据齐全时,页面重构、局部美化、列表/看板/详情优化沿用当前应用 `colour` / `themeColor`。主题证据缺失时,记录 `themeEvidence.status=missing`,根据行业、品牌、业务情绪和视觉目标生成应用主题文件,不固定回到 `podBlue` / #1677ff,也不套用行业刻板配色。
23
23
 
24
- ## 共享主题消费
25
-
26
- 先读取当前应用的 `design.md`,沿用已确认主题和组件规则;不重新选型或为单页另建主题库。尚无主题契约且本次需要确定风格时,按 [共享主题选择规则](../../references/theme-selection.md) 只读 [主题索引](../../templates/design-themes/index.json) 摘要,选中后读取一份完整主题,再补当前页面的项目化设计。局部美化仍保持应用主题、导航和功能契约。
27
-
28
24
  ## 完整步骤
29
25
 
30
26
  | 步骤 | 复用文件 | 单页执行重点 |
@@ -5,36 +5,22 @@ description: Plan 模式的视觉设计分支。基于需求选择视觉方向
5
5
 
6
6
  # Plan 视觉设计
7
7
 
8
- 负责 Plan 的视觉候选与页面视觉应用。选型遵守 [共享主题规则](../../references/theme-selection.md),与 Fast 和单页共用上层主题库。首轮仅保留整体风格或可调整建议,主题映射在规划准备补齐;需求确认后由 [Plan 流程](../../../yida-app/workflow/plan/workflow.md) 启动页面视觉设计。
9
-
10
- 已有方案的配色、布局或页面设计调整,直接按 [局部调整](../../../yida-app/workflow/plan/step-4-deliver.md#4-处理调整) 修改相关视觉字段,跳过下面的首版流程。
8
+ 负责 Plan 的视觉候选与页面视觉应用,风格未明确时在需求分析阶段提供选项;需求确认后由 [Plan 流程](../../../yida-app/workflow/plan/workflow.md) 启动页面视觉设计。
11
9
 
12
10
  ## 阶段一:提供视觉候选
13
11
 
14
12
  输入为共享的 `.cache/openyida/<项目名>/requirement-brief.json`。
15
13
 
16
- 已有明确的完整视觉方向、可信品牌规范、参考材料或应用主题时直接采用。除此之外,按[设计方向比较](../../references/theme-selection.md#设计方向比较)生成恰好三套完整方向(两个模板方向和一个独立自由创意选项),并按[视觉方向选择](references/visual-theme-selection.md)交给 `yida-app` 通过 `ask_human` 统一呈现;不再以“用户是否主动要求比较”作为触发条件。用户确认主题前只读主题索引中的精简风格摘要,不读取候选模板全文;确认后写入一致的 `visualDirection`、`selectedTheme`、`colorStrategy` 和导航结构,再读取选中的一份完整模板;模板方向的导航明暗由模板 `navTheme` 派生;自由创意按业务独立编写设计决策、导航明暗和 Token,不要求匹配模板。
14
+ 已有明确的完整视觉方向时直接采用;需要用户选择风格时,按 [视觉方向选择](references/visual-theme-selection.md) 准备三套应用风格方案,交给 `yida-app` 统一呈现。候选阶段只读主题索引,收到选择后写入一致的 `visualDirection`、`selectedTheme`、`colorStrategy` 和 `navigationStyle`。
17
15
 
18
16
  ## 阶段二:完成页面视觉应用
19
17
 
20
- 规划准备补齐视觉方向后,CLI 将基础主题、主题色和导航样式预填为标准 Plan 输入;模型仍须在业务页面确定后完成每个真实自定义页的具体视觉决定。按 CLI 返回的任务补齐,可以在同一轮业务规划中完成;两个片段分别保存。
21
-
22
- 1. 读取 CLI 返回的 `authoring-context.md` 与 [紧凑计划契约](references/build-plan-compact-schema.md),沿用 pageId 和 sceneKey。
23
- 2. 为每个真实自定义页填写 `firstScreenFocus`、`layout`、`primaryAction`、`responsive` 与 `acceptanceChecks`;前四项为具体非空说明,验收为非空字符串数组。公共主题不能代替这些决定。纯原生表单应用不增加虚构页记录。
24
- 3. 按 [整体主题规则](../../references/application-theme-consistency.md#导航与应用框架) 核对导航、应用框架、原生表单、记录详情与自定义页面的配色、形状、文字、间距和状态。每项必须保留 `visualMemoryApplications` 数组;没有匹配的主题记忆点时填写 `[]`,不要省略或写成字符串。按实际内容补页面局部差异与素材策略。完整主题由 CLI 注入,复杂组件定制时再读模板对应章节。
25
- 4. 全局和局部 token 遵守 [基础变量契约](../../templates/design-themes/basic-tokens.json),明确项目差异写 `visualStyle.tokens`,主色写 `forUser.colorStrategy.primaryColor`;沿用主题的字号、间距和组件圆角。
26
- 5. CLI 按 [公共输出契约](../../workflow/output-design.md) 生成 frontmatter、anchor 索引和五章正文,并调用同一 `check-design` 校验。缺少逐页决定时只保留可预览草稿,补齐后再生成最终产物;旧计划同样不得以继承主题套话补过门槛。
27
-
28
- 用户选择整体暗色或黑色主题时,按 [暗色主题浮层适配](../../references/theme/theme-token-presets.md#暗色主题浮层适配) 补齐 `visualStyle.tokens`;内容界面明暗与导航明暗分别描述,导航明暗仍由所选主题模板确定。
29
-
30
- 首版提交前,将基础视觉与 `pageApplications` 一次补齐到已有 `visual.json`。仅超大需求需要中间展示时才按 [按模块更新方案](../../../yida-app/workflow/incremental-preview.md) 提交。主流程负责生成方案、展示和确认,主题 CSS 使用 CLI 返回的 `outputs.theme`。
31
-
32
- ## 校验失败时定点修复
18
+ 需求阶段选中视觉方向后,CLI 已将基础主题、主题色和导航样式预填为标准 Plan 输入,并通过主题模板补齐页面通用视觉。普通首版不再启动独立视觉模型任务;存在品牌稿、参考图、页面级特殊风格或用户明确要求视觉精修时,才在业务页面确定后执行本阶段,补充项目差异。
33
19
 
34
- 遇到 `DESIGN_PLAN_PAGE_BINDINGS_REQUIRED` 时,保留现有计划和预览,按以下顺序修复:
20
+ 1. 读取 CLI 返回的 `authoring-context.md` 与紧凑计划契约,补齐页面视觉应用和素材策略。完整主题由 CLI 注入;具体组件需要定制时再读取模板对应章节。
21
+ 2. 具体 token 差异写入 `visualStyle.tokens`;主色写入 `forUser.colorStrategy.primaryColor`。JSON 保存项目事实与差异,标准规则由模板提供。
22
+ 3. 沿用草稿中的 pageId 与 sceneKey,逐页匹配实际任务和区块;默认设计引用由 CLI 生成和校验。
35
23
 
36
- 1. **定位**:读取错误 `details.issues` 中每项的 `sourcePath`、`path` 和 `code`,修改对应源文件。若问题来自 `business.json`,先按已确认需求修正页面事实,再核对视觉绑定。
37
- 2. **修改**:以 `business.json` 的 `facts.pages.customPageDetails` 为准,让 `visual.json` 的 `facts.visualStyle.forUser.pageApplications` 与自定义页一一对应;原生表单和数据模型不加入。按 `missing_page` 补项、`unexpected_page` 移除多余绑定、`duplicate_page` 合并重复项;按 `expected_array`、`expected_object`、`expected_nonempty_string` 修正指定字段。每项 `visualMemoryApplications` 必须为数组,无适用内容填 `[]`。
38
- 3. **回读并重试**:确认修改已写入源文件,再重试原 `materialize` 命令。写入失败、跳过或结果未知时,先回读核实,不能仅凭发起过工具调用认定修复完成。
24
+ 用户选择整体暗色或黑色主题时,按 [暗色主题浮层适配](../../references/theme/theme-token-presets.md#暗色主题浮层适配) 补齐 `visualStyle.tokens`;导航明暗保持独立。
39
25
 
40
- 修复仅涉及错误字段,保留 `build-plan.json`、`business.json`、`visual.json` 和已有预览;不因字段校验失败删除目录、重新 `init`、重写整份 PRD 或扩大需求范围。
26
+ 需要精修时一次更新完整 `visual.json`,避免先提交基础视觉、再提交 `pageApplications` 形成两段等待。仅超大需求需要中间展示时才按 [按模块更新方案](../../../yida-app/workflow/incremental-preview.md) 提交。主流程负责生成完整方案、展示和确认,主题 CSS 使用 CLI 返回的 `outputs.theme`。
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 生成方式
4
4
 
5
- `assets/build-plan-template.html` 是预置 HTML 模板,包含固定布局、样式与交互。`openyida design-plan materialize` 从同一版本的计划生成 PRD、设计文档与 HTML;渲染器一次填入标题、目录和供需求确认的正文。基础关系图与正文随文件生成,图表增强脚本异步加载,网络等待不阻塞目录和基础图交互。
5
+ `assets/build-plan-template.html` 是预置 HTML 模板,包含固定布局、样式与交互。`openyida design-plan materialize` 从同一版本的计划生成 PRD、设计文档与 HTML;渲染器一次填入标题、目录和完整正文。基础关系图与正文随文件生成,图表增强脚本异步加载,网络等待不阻塞目录和基础图交互。
6
6
 
7
7
  ## 用途
8
8
 
@@ -110,7 +110,7 @@ HTML 本体只包含:
110
110
  - 需求总览:文档式小节流,包含应用概述、业务全景图、数据模型、业务流程、权限、导航菜单、视觉设计
111
111
  - 数据模型:圆角字段表
112
112
  - 业务流程:流程卡片
113
- - 页面规划:页面总览表 + 自定义页面详情卡片;详情展示页面定位、核心功能和业务区块,入口、数据来源、主操作与权限用简短文字说明。
113
+ - 页面规划:页面总览表 + 自定义页面详情卡片;详情展示页面定位、核心任务、内容优先级、功能区块、首屏结构、标志性交互、页面模式和权限
114
114
 
115
115
  页面详情只展示用户可理解的结构说明,不得出现“模板”“预设”、`preset / adapted / custom`、页面模式内部 ID、主题 key、文件路径或其他生成器术语。内部页面模式必须转换为“聚焦填报页、列表与详情页、分类信息页、紧凑工作台”等业务化名称;内容丰富度和信息密度的英文枚举也必须转换为中文。
116
116
 
@@ -136,7 +136,7 @@ HTML 本体只包含:
136
136
 
137
137
  ## 需求总览摘要
138
138
 
139
- 需求总览中的“数据模型、业务流程、权限、导航菜单、视觉设计”必须使用单列纵向排列,不使用卡片宫格。整体风格、主色与导航样式放在“视觉设计”;页面详情聚焦业务功能与使用入口。
139
+ 需求总览中的“数据模型、业务流程、权限、导航菜单、视觉设计”必须使用单列纵向排列,不使用卡片宫格。整体视觉放在“视觉设计”,逐页视觉应用放在对应页面详情。
140
140
 
141
141
  需求总览布局:
142
142
 
@@ -202,17 +202,13 @@ HTML 本体只包含:
202
202
  - 不使用负 letter-spacing。
203
203
  - 内容不可重叠,表格可横向滚动。
204
204
 
205
- ## 需求确认内容范围
205
+ ## 需求总览中的视觉信息
206
206
 
207
- `build-plan.html` 只展示用户需要确认的需求,保持需求总览、数据模型、业务流程、页面规划四章:
207
+ `build-plan.html` 保持需求总览、数据模型、业务流程、页面规划四章,完整展示用户需要确认的方案;Markdown 为 Agent 提供执行契约。
208
208
 
209
- - 需求总览:应用定位、业务目标、业务全景图、业务范围、权限文字摘要、实际导航顺序,以及整体视觉风格、主色、导航样式和需要用户补充的素材。
210
- - 数据模型:表单、字段、属性、关联关系与业务视图;保留字段表,不展示示例数据或跳过示例的原因。
211
- - 业务流程:触发条件、节点和业务规则;不展示页面的加载、空态、错误等交互异常处理明细。
212
- - 页面规划:页面用途、核心功能、业务区块和使用入口;入口、数据来源、主操作与权限以简短文字说明,不另设权限说明表格或页面视觉设计表格。
209
+ - 需求总览:应用概述、业务目标、业务全景图、业务与权限摘要、完整视觉方向、色彩和导航、组件与状态、响应式、素材现状和缺口。
210
+ - 数据模型:表单、字段、关系、视图、初始示例记录或跳过原因。
211
+ - 业务流程:触发条件、节点、业务规则,以及空态、异常和入口交互。
212
+ - 页面规划:页面任务、区块、首屏、密度、权限、数据来源、主操作、逐页视觉应用,搭建范围、三种顺序和验收标准。
213
213
 
214
- HTML 不渲染示例数据、交互异常处理、搭建顺序、页面实现顺序、交付顺序、验收标准,以及逐页布局、表面、组件、状态、响应式等详细视觉参数。实际导航顺序和已确认的业务范围继续展示,不与执行顺序混为一谈。
215
-
216
- 这些是展示范围约束,不改变事实编写与交接要求:`build-plan.json` 保留完整业务、视觉和执行事实,`prd.md` 与 `design.md` 继续按各自契约生成完整内容,页面实现和验收仍消费这些内容。HTML 与 Markdown 来自同一版本,显式覆盖优先级相同,不从精简后的 HTML 反向生成或删减底层事实,也不新增确认环节。
217
-
218
- 页面 ID 转为名称,技术字段转为业务表达;CLI 命令、运行 ID、模板路径、内部版本状态和原始 token 定义保留给 Agent。
214
+ HTML 与 Markdown 使用同一份解析后的业务交接,显式覆盖优先级相同。页面 ID 转为名称,技术字段转为业务表达;CLI 命令、运行 ID、模板路径、内部版本状态和原始 token 定义保留给 Agent。不得为了精简 HTML 省略用户需要确认的业务、视觉或验收内容。
@@ -91,9 +91,9 @@
91
91
  }
92
92
  .nav-item.is-active {
93
93
  background: rgba(0, 102, 255, 0.09);
94
- color: #0066ff;
95
94
  }
96
95
  .nav-item.is-active .nav-title {
96
+ color: #0066ff;
97
97
  font-weight: 600;
98
98
  }
99
99
  .nav-item { text-decoration: none; }
@@ -111,17 +111,12 @@
111
111
  width: 16px;
112
112
  height: 16px;
113
113
  display: block;
114
- background: var(--nav-icon-image) center / contain no-repeat;
115
- }
116
- .nav-item.is-active .nav-icon-img {
117
- background: currentColor;
118
- -webkit-mask: var(--nav-icon-image) center / contain no-repeat;
119
- mask: var(--nav-icon-image) center / contain no-repeat;
114
+ object-fit: contain;
120
115
  }
121
116
  .nav-icon-fallback {
122
117
  width: 16px;
123
118
  height: 16px;
124
- border: 1.8px solid currentColor;
119
+ border: 1.8px solid var(--text-primary);
125
120
  border-radius: 4px;
126
121
  }
127
122
  .nav-copy {
@@ -130,7 +125,7 @@
130
125
  align-items: center;
131
126
  }
132
127
  .nav-title {
133
- color: inherit;
128
+ color: var(--text-primary);
134
129
  font-size: 14px;
135
130
  font-weight: 500;
136
131
  line-height: 1.25;
@@ -2,12 +2,12 @@
2
2
 
3
3
  ## 输入与生成
4
4
 
5
- `design-plan init` 从已确认需求建立草稿、主题上下文和业务/视觉片段,返回必要任务与可选视觉精修。CLI 预填已确认的风格、主色和导航;模型补齐业务内容及每个自定义页的具体设计。未完成的片段由返回任务处理,主题提供公共规则,不代替逐页决定。片段写入与合并见 [并行交接](../../../../yida-app/workflow/parallel-work.md#plan-的-cli-交接)。保留生成的项目目录名、页面 ID 与 sceneKey;业务名称使用 `meta.appName`。补齐业务与视觉片段后执行交接命令;标准首版使用 init 返回的 `materialize.command`:
5
+ `design-plan init` 从已确认需求建立草稿、主题上下文和业务/视觉片段,返回必要任务与可选视觉精修。标准首版只编写业务事实,视觉片段复用已确认选择,由 CLI 补齐标准页面视觉;视觉选择不完整时返回补齐任务,有特殊视觉要求时执行可选精修。片段写入与合并见 [并行交接](../../../../yida-app/workflow/parallel-work.md#plan-的-cli-交接)。保留生成的项目目录名、页面 ID 与 sceneKey;业务名称使用 `meta.appName`。补齐业务与视觉片段后执行交接命令;直接维护单一计划时使用:
6
6
 
7
- init 已预填 `business.json` 结构,业务任务先读后写并保留 base。`authoring.pendingFields` 列出初始化时的待补文件、字段路径与说明;格式示例位于返回的 `context` 文件。示例用于说明类型,实际值按当前业务填写。复核内容后将片段设为 `ready=true`,最终生成继续执行完整校验。业务 facts 仅允许 overview、dataModels、businessFlows、pages、execution;visualStyle 只属于 `visual.json`。首次合并前一次补齐每个普通表单的 sampleDataPlan(跳过则写 skipReason)和每个自定义页面的 permissionSummary,避免用多轮 materialize 探测必填字段。
7
+ init 已预填 `business.json` 结构,业务任务先读后写并保留 base。业务 facts 仅允许 overview、dataModels、businessFlows、pages、execution;visualStyle 只属于 `visual.json`。首次合并前一次补齐每个普通表单的 sampleDataPlan(跳过则写 skipReason)和每个自定义页面的 permissionSummary,避免用多轮 materialize 探测必填字段。
8
8
 
9
9
  ```bash
10
- openyida design-plan materialize prd/<项目名>/build-plan.json --business-file prd/<项目名>/business.json --visual-file prd/<项目名>/visual.json --json
10
+ openyida design-plan materialize prd/<项目名>/build-plan.json --json
11
11
  ```
12
12
 
13
13
  CLI 校验源事实,使用预置模板整批生成 `prd.md`、`design.md` 和 `build-plan.html`。模板标准规则、摘要、设计路径和默认交接字段自动补齐。模型只维护源事实及项目差异。
@@ -28,7 +28,7 @@ CLI 校验源事实,使用预置模板整批生成 `prd.md`、`design.md` 和
28
28
 
29
29
  业务全景节点、数据模型摘要、页面概览和视觉摘要由 CLI 派生。
30
30
 
31
- 自定义导航在 `overview.navigationSummary` 记录布局、用途和打开方式:展示页顶部叠加共同背景,工作区占位;侧边及混合布局支持折叠、恢复宽度和拖拽。`firstScreenStructure/signatureInteraction` 保留相应设计与交互,CLI 示例不是默认外观。管理走 workbench、填写走 submission,同一表单可有两个入口;区分本页视图、主内容 iframe、保留壳的跨页跳转,沿用 [导航规则](../../../../yida-nav-shell/SKILL.md),不另问实现字段。
31
+ 自定义导航在 `overview.navigationSummary` 记录已选布局、入口用途和打开方式:顶部默认浮导;侧边及混合布局包含折叠/展开、恢复宽度与拖拽调宽。页面的 `firstScreenStructure/signatureInteraction` 保留相应设计与交互,按业务设计手写 UI,CLI 示例不是默认外观。管理入口对应 workbench,直接填写对应 submission;同一表单可规划两个入口。区分本页视图、主内容 iframe 与当前标签跨页跳转,沿用 [导航规则](../../../../yida-nav-shell/SKILL.md),不另起确认问题。
32
32
 
33
33
  ## 数据模型与流程
34
34
 
@@ -59,60 +59,49 @@ CLI 校验源事实,使用预置模板整批生成 `prd.md`、`design.md` 和
59
59
  | --- | --- |
60
60
  | `pageId/sceneKey/name` | 稳定 ID、稳定场景 key、业务名称;sceneKey 位于页面顶层 |
61
61
  | `positioning/primaryUsers/primaryTask` | 页面定位、用户数组、核心任务 |
62
- | `blocks` | 按优先顺序填写 `{name,purpose}` 数组,每项写区块名称和具体业务用途 |
63
- | `contentPriority` | 有独立优先级设计时填写;省略时由结构化 blocks 的顺序和名称派生 |
62
+ | `contentPriority/blocks` | 内容优先级数组、功能区块数组 |
64
63
  | `firstScreenStructure/signatureInteraction` | 首屏布局与关键交互 |
65
64
  | `layoutPattern` | `{id,reason,adaptations}`;id 从当前上下文的页面模式选择,adaptations 只写项目差异 |
66
- | `contentRichness.contentLayers` | 有额外内容层次设计时填写非空数组;省略时由结构化 blocks 的名称和用途派生 |
65
+ | `contentRichness.contentLayers` | 实际业务需要的决策、任务、上下文、异常或下一步内容,非空数组 |
67
66
  | `density/permissionSummary` | 信息密度与权限说明 |
68
67
  | `dataBinding/dataSources` | `form/report/connector/static-empty`;来源为名称数组,form 对应已有模型 |
69
68
  | `emptyReason` | static-empty 时填写原因,并将 dataSources 设为 `[]` |
70
69
 
71
- 例如 `blocks: [{"name":"客房选择","purpose":"按日期和人数筛选可预约房型"},{"name":"预约结果","purpose":"查看提交结果,失败时保留输入并显示原因"}]`。每项仅使用 name、purpose;业务动作和成功、失败处理写入用途或 signatureInteraction。现有字符串 blocks 继续配合 contentPriority 与 contentRichness.contentLayers 使用;已填写的独立设计原样保留。
72
-
73
70
  页面模式的 mode、mustKeep、丰富度标准、页面概览由 CLI 补齐。页面按任务选择模式,工作台通常在首位。报名、申请、登记入口承接表单提交;查询和维护承接数据管理。
74
71
 
75
72
  只有覆盖默认值时才写 `pageSpecHandoff`,允许的字段为:
76
73
 
77
74
  - `scene`:`workbench/dashboard/list/detail/landing/screen`,也可写在页面顶层;与页面模式 ID 分开。
78
75
  - `pageStructure`:`workbench/dashboard-overview/business-list/detail-profile/official-homepage/data-screen/split-pane-detail/portal-shell-home`。
79
- - `entryMode`:`platform-shell/standalone`;应用级 custom 及独立前台使用 standalone,后台平台页面使用 platform-shell。
80
- - `navigation`:可选的当前入口菜单 `{type:"custom",variant:"top",reason:"员工只办理自己的事项"}`,variant 为 top/side/mixed/dock;无菜单用 `{type:"none",reason:"单步办理"}`。只能用于 standalone,不接受应用设置字段。省略则沿用既有入口规则;CLI 不据此修改应用 navigationType。
76
+ - `entryMode`:`platform-shell/standalone`;自定义导航由 CLI 使用 standalone。
81
77
  - `contentBlocks/dataSources/dataBinding/emptyReason/primaryAction/themeSummary`:本页交接差异。
82
- - `designFile/designRefs`:源计划默认引用 `prd/<projectName>/design.md`;生成时 designFile 指向实际输出文件,designRefs 包含 `themeProfile`、`sceneRecipes.<sceneKey>`。额外引用须存在于最终设计文档的 components、states 或 sceneRecipes 中。
78
+ - `designFile/designRefs`:默认由 CLI 生成 `prd/<projectName>/design.md` 和 `themeProfile`、`sceneRecipes.<sceneKey>`。额外引用须存在于最终设计文档的 components、states 或 sceneRecipes 中。
83
79
 
84
80
  ## 视觉事实
85
81
 
86
82
  `visualStyle` 保存项目选择和差异:
87
83
 
88
- 应用风格可选择目录中的模板,也可使用 `catalog.creativeOption` 的独立创意入口。后者必须补齐 `visualStyle.creativeDirection`(业务推演、构图、字体、材质、表单布局)与显式设计 Token;详见[应用风格模板与自由创意](../../../references/application-style-library.md)。初始化不会把缺失创意决策标成已完成。
89
-
90
- 在 `visual.json` 中它位于 `facts.visualStyle`。沿用 init 生成的 `forUser.visualDirection` 和 `forUser.navigationStyle` 对象,只编辑内部字段,不改成字符串或数组。`DESIGN_PLAN_VISUAL_FIELD_TYPE_INVALID` 会给出字段路径与对象示例;示例只说明结构,实际值沿用已确认的视觉选择。
91
-
92
84
  ```json
93
85
  {
94
86
  "forUser": {
95
87
  "visualDirection": {"label":"清晰柔和","description":"突出待办与业务状态,浅色界面搭配暖棕色重点操作","source":"user_selected"},
96
- "colorStrategy": {"primaryColor":"#6F4E37","primaryColorName":"暖棕色","source":"user_selected","usage":"暖棕浅底、白色卡片与品牌焦点协调"},
97
- "navigationStyle": {"structure":"side","tone":"light","toneSource":"theme_derived","source":"user_selected","selectionReason":"沿用已选的左侧导航;浅色导航由主题模板派生"},
98
- "iconSystem": {"library":"lucide-react","mappings":{"新建采购":"Plus"}},
88
+ "colorStrategy": {"primaryColor":"#6F4E37","primaryColorName":"暖棕色","source":"user_selected","surfaceTone":"brand-tinted","usage":"暖棕浅底、白色卡片与品牌焦点协调"},
89
+ "navigationStyle": {"structure":"side","tone":"light","source":"user_selected","selectionReason":"沿用已选的左侧导航"},
99
90
  "pageApplications": [
100
- {"pageId":"page-1","primaryAction":"列表标题右侧的新建采购按钮打开原生采购表单,成功后刷新列表","firstScreenFocus":"先看到待处理采购数量与最紧急记录,主操作紧邻列表标题","layout":"顶部单行筛选与主操作,下方连续采购列表;必要提示放列表右侧窄栏,列表随记录自然增长","responsive":"窄屏筛选换行,提示移到列表下方,表格保留关键列并允许横向滚动","acceptanceChecks":["首屏可找到待处理记录与新建采购操作","窄屏主操作和错误恢复入口可用"],"visualMemoryApplications":[{"name":"摘要拼接组","renderPolicy":"prd_match_only","target":"采购待办摘要","reason":"页面已有并列的待办状态"}]}
91
+ {"pageId":"page-1","visualMemoryApplications":[{"name":"摘要拼接组","renderPolicy":"prd_match_only","target":"采购待办摘要","reason":"页面已有并列的待办状态"}]}
101
92
  ],
102
93
  "assetStrategy": {"materialStatus":"none","pages":[{"pageId":"page-1","imageNeed":"none","reason":"纯数据操作页","slots":[]}],"missingAssets":[],"notes":"无图片需求"}
103
94
  },
104
- "internal": {"selectedTheme":{"themeId":"soft-outline-rhythm","source":"user_selected"}},
95
+ "internal": {"selectedTheme":{"themeId":"airy-modular-clarity","source":"user_selected"}},
105
96
  "forDesignMd": {"productTopologyApplication":"工作台与表单共享主题,视觉重点绑定已有采购任务"}
106
97
  }
107
98
  ```
108
99
 
109
- - 已选主题取当前上下文;主色为 6 位 HEX。导航 `structure` 为模型维护的 top/side;`tone` 为 CLI 从所选主题模板 `navTheme` 派生的 light/dark,并带 `toneSource=theme_derived`,模型不得修改。导航与内容界面的明暗分开记录。
110
- - 每个实际自定义页使用相同 pageId,最终物化前必须填写 firstScreenFocus、layout、primaryAction、responsive 四项具体说明和 acceptanceChecks 非空字符串数组;内容须具体到当前页,不能只写继承主题。纯原生页无需增加记录。
111
- - 视觉记忆点按适用条件绑定真实区块,无匹配时保留空数组。草稿缺逐页决定可预览,最终产物拒绝缺项;旧计划沿用同一规则,补齐后再物化。
100
+ - 已选主题取当前上下文;主色为 6 位 HEX。导航 structure 为 top/side,tone 为 light/dark;它与整页暗色风格分开记录。
101
+ - 页面视觉绑定使用相同 pageId,按上下文中的视觉记忆点及适用条件匹配真实区块;没有匹配内容时保留空数组,并在项目应用中说明。
112
102
  - `visualStyle.evidence/constraints` 保留实际视觉依据和约束。
113
- - `forUser.iconSystem` 可选,包含 `library: "lucide-react" | "@ant-design/icons"` 与 `mappings: {业务语义: 具体组件名}`。有底盒或状态背景时,按 [图标输出契约](../../../workflow/output-design.md#图片素材与图标) 补充 `colorPairs`。初始化保留 brief 的已选图标映射;仅未配置时默认 lucide-react 与空映射。
114
103
  - `visualStyle.tokens` 可写具体单行 CSS token 差异,如 `{"--pod-card-border-radius":"16px"}`。品牌色阶由主色派生;themeProfile 为只读摘要。
115
- - 最终 design.md 按 [公共输出契约](../../../workflow/output-design.md) 生成并校验:机器数据和 anchor 索引留在 frontmatter,完整规则只写在五章正文一次。主题的 token、组件、状态与公共响应式由 CLI 注入,页面具体布局和响应式来自上述输入。项目独有组件调整时再读模板对应章节;整体暗色主题按需读取暗色浮层规则。
104
+ - 完整主题的 token、组件、状态、响应式和自检规则由 CLI 注入 design.md。项目独有组件调整时再读模板对应章节;整体暗色主题按需读取暗色浮层规则。
116
105
 
117
106
  ## 执行交接
118
107
 
@@ -120,43 +109,32 @@ CLI 校验源事实,使用预置模板整批生成 `prd.md`、`design.md` 和
120
109
 
121
110
  | 字段 | 格式 |
122
111
  | --- | --- |
123
- | `appConfig` | 已知真实 `appType/corpId/baseUrl`;`navigationType` 为 platform-l-shape/platform-top/platform-side/custom。仅代表应用工作区;hideAppNav/layoutDirection/navTheme/logoSource 由应用导航与视觉派生,不被前台菜单覆盖 |
112
+ | `appConfig` | 已知真实 `appType/corpId/baseUrl`;`navigationType` 为 platform-l-shape/platform-top/platform-side/custom。hideAppNav/layoutDirection/navTheme/logoSource 由导航与视觉派生 |
124
113
  | `explicitScope` | 用户明确的页面、表单、流程、报表、导航和交付范围;`allowInferredResources=false` 时不增加未点名的 seed records、自定义页面、主题或导航任务;自定义导航布局保留在 navigation.variant |
125
114
  | `resourceBlueprint` | `{name,type,purpose,pageId?}` 数组;type 为 normal-form/process-form/display-page/report,名称与模型、页面对应且唯一 |
126
115
  | `resourceCreationOrder` | 覆盖全部资源的有序名称数组,先应用,再被依赖模型,最后依赖它们的页面 |
127
116
  | `pageImplementationOrder` | 覆盖全部页面的 pageId 或名称数组 |
128
- | `entryRecommendation` | 保留 brief 入口建议,按 [访问态入口契约](../../../../yida-app/references/entry-navigation.md) 补齐各入口 role/menu/defaultMenuKey/access;两端均为访问态,管理端无需首页 |
129
- | `navigationOrder/navigationFallback` | 旧计划的菜单顺序或排序策略;提供 entryRecommendation 时从管理菜单派生,不混入前台菜单,重复声明必须一致 |
117
+ | `navigationOrder/navigationFallback` | 已确认的菜单顺序,或明确的排序策略;权限接口决定可见性 |
130
118
  | `sampleDataPlan` | `{form,records}` 或 `{form,skipReason}` 数组,覆盖全部普通表单 |
131
- | `interactionStates` | 对象,键为 empty/loading/error/formEntry/detail,值为非空业务说明;例如 `{"empty":"展示空态和新建入口","error":"保留输入并提示失败原因"}` |
132
- | `acceptanceCriteria` | 项目特有的业务验收条件,非空文本数组;CLI 与按资源生成的通用检查合并并去重 |
133
-
134
- ### 派生的页面导航策略
135
-
136
- PRD 实施交接中的 `pages[].navigationPolicy` 与 `pageSpecHandoff` 同级,由 CLI 生成,不是 build-plan.json、business.json、brief 或 page-spec.json 的输入字段。派发页面任务时一并传递;Fast 在 PRD/design.md 明确同样边界。
137
-
138
- | 条件 | applicationMenuOwner | pageLayout | renderApplicationMenu | localTabs |
139
- | --- | --- | --- | --- | --- |
140
- | platform-shell | platform | content-only | false | same-task-only |
141
- | standalone 且显式 custom 菜单,或沿用应用级 custom | page | standalone | true | planned-views |
142
- | standalone 显式 none,或未规划菜单且应用保留平台导航 | none | standalone | false | same-task-only |
119
+ | `interactionStates` | 可覆盖 empty/loading/error/formEntry/detail 的业务行为说明 |
120
+ | `acceptanceCriteria` | 非空业务验收标准数组 |
143
121
 
144
- `duplicatePlatformMenu` 始终为 false;显式 none 优先于应用级 custom。策略描述实现约束,不代表线上导航已配置或已通过视觉验收。实际菜单过滤的 `mode=platform` 仅指自绘菜单的数据来源,不表示平台工作区应再渲染菜单。
145
-
146
- 源 JSON 保留完整项目事实,派生后的 PRD 包含完整 11 章业务与实施交接;HTML 仅按 [展示规范](../assets/README.md#需求确认内容范围) 呈现需求确认内容,不减少 PRD 或设计文档的交接要求。
122
+ 源 JSON 保留项目事实;派生后的 PRD 包含完整 11 章业务与实施交接,HTML 展示同一套业务内容。
147
123
 
148
124
  ## 调整与确认
149
125
 
150
- 调整现有方案按 [局部调整](../../../../yida-app/workflow/plan/step-4-deliver.md#4-处理调整) 执行;本节只说明版本和校验规则。
126
+ 调整现有事实使用字段级修改:
151
127
 
152
- 初始化 revision=1;未展示的首次合并、preview 汇总和内部 patch 保持当前版。已展示或已确认的当前版发生实质修改才升版并清空确认;相同内容不升版。旧文件缺少 planState 时保守升版。片段仍以 base.digest 校验来源,版本相同也不能复用过期片段。仅更新素材 materialStatus/missingAssets 保留版本与确认。
128
+ ```bash
129
+ openyida design-plan patch prd/<项目名>/build-plan.json --set 'visualStyle.forUser.colorStrategy.primaryColor=#8B5E3C' --materialize --json
130
+ ```
153
131
 
154
- 展示成功后必须将 `meta.planState.presentedRevision=meta.revision` 写回源 JSON,仅更新展示事实,不再物化。awaiting_confirmation 仅表示准备确认,不证明已展示;收到明确确认后绑定 confirmedRevision、planConfirmed 与同版产物,按应用流程交接。内部补全不得伪造展示或确认记录。`--materialize` 同步变化的文档内容和主题变量,`updated` 列出实际写入的产物;不带此参数只校验并保存源事实,不渲染 HTML,也不更新文档。可选字段范围见下节。
132
+ CLI 自动递增 revision、清除旧确认,并在使用 `--materialize` 时同步三份文档和主题 CSS。支持首次添加 execution 的可选字段、tokens、已有页面交接字段和模型示例数据;数组项需已存在。
133
+
134
+ 并行合并时 CLI 设置 `meta.status=awaiting_confirmation`;直接维护单一计划时由编排在生成前设置。展示成功后记录 `meta.planState.presentedRevision=meta.revision`;收到明确确认后设置 status=confirmed、planConfirmed=true、confirmedRevision=presentedRevision,再生成文档同步确认状态。详细交互见应用流程的生成与确认步骤。`askhuman` 只保存需要留档的交互事实,未选候选留在会话中。
155
135
 
156
136
  旧版无 schemaVersion 或 1.x 文件继续使用原结构;维护旧计划时按需查阅旧版结构说明。
157
137
 
158
138
  ## 可选字段 patch 与完成校验
159
139
 
160
140
  CLI 集中返回可独立检查的问题及字段路径,再执行完整业务、主题和 HTML 校验。按问题清单一次补齐源事实后重试;草稿空值表示待规划,全部校验通过才写入派生产物。仅做诊断时使用 `--check`。
161
-
162
- 自由创意(`free-creative`)没有模板导航默认值:在 `navigationStyle.tone` 明确填写项目设计的 `light` 或 `dark`,CLI 标记 `toneSource=project_defined`;此路径可通过 patch 调整 tone,并同步配套导航 Token。命名模板仍按模板派生导航明暗。