openyida 2026.9.21 → 2026.9.22-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -20
- package/bin/yida.js +6 -11
- package/lib/app/app-list.js +3 -7
- package/lib/app/canvas-compile.js +12 -22
- package/lib/app/check-prd-completeness.js +0 -7
- package/lib/app/create-app.js +1 -4
- package/lib/app/create-form/args.js +12 -37
- package/lib/app/create-form/batch.js +11 -86
- package/lib/app/create-form.js +86 -193
- package/lib/app/create-page.js +17 -84
- package/lib/app/custom-theme.js +0 -11
- package/lib/app/form-field-validator.js +41 -26
- package/lib/app/form-open-guard.js +10 -97
- package/lib/app/get-form-config.js +0 -1
- package/lib/app/inline-css-guard.js +31 -1
- package/lib/app/services/form-compiler.js +4 -2
- package/lib/app/theme-from-design.js +41 -144
- package/lib/app/theme-presets.js +1 -1
- package/lib/app/update-app.js +13 -63
- package/lib/asset/ai-image.js +9 -59
- package/lib/asset/asset-cmd.js +7 -18
- package/lib/asset/asset-plan.js +9 -102
- package/lib/asset/asset-resolve.js +10 -55
- package/lib/asset/asset-status.js +4 -5
- package/lib/asset/host-capabilities.js +2 -11
- package/lib/asset/url-verify.js +4 -19
- package/lib/auth/dws-sync.js +145 -0
- package/lib/auth/token-auth.js +73 -9
- package/lib/auth/token-store.js +50 -0
- package/lib/connector/connector-test.js +5 -19
- package/lib/connector/contract.js +1 -3
- package/lib/core/agent-capabilities.js +16 -19
- package/lib/core/command-manifest.js +40 -329
- package/lib/core/locales/en.js +17 -74
- package/lib/core/locales/zh.js +16 -73
- package/lib/core/redact.js +10 -15
- package/lib/core/sample.js +30 -72
- package/lib/core/utils.js +4 -0
- package/lib/design-plan/design-plan.js +4 -51
- package/lib/design-plan/init.js +26 -121
- package/lib/design-plan/materialize.js +348 -451
- package/lib/design-plan/normalize.js +29 -74
- package/lib/design-plan/parallel.js +16 -71
- package/lib/design-plan/patch.js +16 -63
- package/lib/design-plan/preview.js +8 -6
- package/lib/design-plan/validate.js +11 -71
- package/lib/process/create-process.js +50 -84
- package/lib/samples/openyida-scaffold/canvas-form-drawer.canvas.jsx +90 -20
- package/lib/samples/openyida-scaffold/canvas-nav/content.jsx +13 -93
- package/lib/samples/openyida-scaffold/canvas-nav/data.jsx +18 -100
- package/lib/samples/openyida-scaffold/canvas-nav/mixed.jsx +4 -6
- package/lib/samples/openyida-scaffold/canvas-nav/shared.jsx +5 -5
- package/lib/samples/openyida-scaffold/canvas-nav/side.jsx +2 -1
- package/lib/samples/openyida-scaffold/canvas-nav/sidebar.jsx +1 -1
- package/lib/samples/openyida-scaffold/canvas-nav/top.jsx +9 -15
- package/lib/samples/yida-canvas-table-form/table-form-batch-submit.canvas.jsx +83 -9
- package/lib/samples/yida-rechart/trend-combo.canvas.jsx +87 -14
- package/package.json +1 -3
- package/scripts/postinstall.js +3 -3
- package/yida-skills/SKILL.md +16 -19
- package/yida-skills/references/official-example-schema-patterns.md +1 -1
- package/yida-skills/references/yida-api.md +0 -4
- package/yida-skills/skills/yida-app/SKILL.md +23 -46
- package/yida-skills/skills/yida-app/workflow/parallel-work.md +6 -15
- package/yida-skills/skills/yida-app/workflow/plan/step-1-understand.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-2-confirm.md +1 -1
- package/yida-skills/skills/yida-app/workflow/plan/step-4-deliver.md +15 -29
- package/yida-skills/skills/yida-app/workflow/plan/workflow.md +11 -29
- package/yida-skills/skills/yida-app/workflow/step-1-resource-context.md +2 -4
- package/yida-skills/skills/yida-app/workflow/step-2-design.md +9 -23
- package/yida-skills/skills/yida-app/workflow/step-3-create-or-reuse-app.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-4-forms-processes.md +4 -15
- package/yida-skills/skills/yida-app/workflow/step-6-main-page.md +4 -6
- package/yida-skills/skills/yida-app/workflow/step-7-page-code.md +9 -15
- package/yida-skills/skills/yida-app/workflow/step-8-publish-navigation.md +11 -25
- package/yida-skills/skills/yida-app/workflow/step-9-output-finish.md +28 -68
- package/yida-skills/skills/yida-canvas-custom-page/SKILL.md +43 -42
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-style-implementation-guide.md +44 -60
- package/yida-skills/skills/yida-canvas-custom-page/references/canvas-theme-provider.md +50 -72
- package/yida-skills/skills/yida-canvas-custom-page/references/component-library-guide.md +1 -13
- package/yida-skills/skills/yida-canvas-custom-page/references/data-bridge-guide.md +1 -140
- package/yida-skills/skills/yida-canvas-custom-page/references/navigation-and-entry-guide.md +72 -101
- package/yida-skills/skills/yida-canvas-custom-page/references/page-generation-guide.md +32 -35
- package/yida-skills/skills/yida-canvas-custom-page/scripts/build-canvas-theme.js +3 -29
- package/yida-skills/skills/yida-canvas-custom-page/scripts/canvas-theme-provider.template.jsx +6 -69
- package/yida-skills/skills/yida-canvas-data-binding/SKILL.md +0 -26
- package/yida-skills/skills/yida-create-app/SKILL.md +0 -2
- package/yida-skills/skills/yida-create-form-page/SKILL.md +58 -72
- package/yida-skills/skills/yida-create-form-page/references/advanced-form-modes.md +5 -5
- package/yida-skills/skills/yida-create-form-page/references/association-form-field.md +4 -4
- package/yida-skills/skills/yida-create-form-page/references/batch-forms.md +5 -6
- package/yida-skills/skills/yida-create-form-page/references/field-definition-guide.md +19 -7
- package/yida-skills/skills/yida-create-form-page/references/form-field-properties.md +44 -62
- package/yida-skills/skills/yida-create-page/SKILL.md +6 -14
- package/yida-skills/skills/yida-create-process/SKILL.md +2 -13
- package/yida-skills/skills/yida-custom-page/SKILL.md +0 -2
- package/yida-skills/skills/yida-custom-page/references/design-system.md +1 -1
- package/yida-skills/skills/yida-dashboard/SKILL.md +4 -5
- package/yida-skills/skills/yida-data-management/SKILL.md +2 -4
- package/yida-skills/skills/yida-data-management/references/data-format-guide.md +4 -4
- package/yida-skills/skills/yida-design/SKILL.md +14 -29
- package/yida-skills/skills/yida-design/references/app/blueprint.md +70 -0
- package/yida-skills/skills/yida-design/references/app/navigation-patterns.md +43 -0
- package/yida-skills/skills/yida-design/references/app/role-journey.md +30 -0
- package/yida-skills/skills/yida-design/references/ask-human-interaction-contract.md +42 -67
- package/yida-skills/skills/yida-design/references/asset-workflow.md +2 -6
- package/yida-skills/skills/yida-design/references/design-mode.md +4 -4
- package/yida-skills/skills/yida-design/references/page-quality-gates.md +38 -26
- package/yida-skills/skills/yida-design/references/style-design-selection.md +137 -0
- package/yida-skills/skills/yida-design/references/style-designs/_design-md-template.md +185 -0
- package/yida-skills/skills/yida-design/references/style-designs/aqua-service-progress-dashboard.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-insight-operations-dashboard.md +243 -0
- package/yida-skills/skills/yida-design/references/style-designs/blue-productivity-insight-workbench.md +242 -0
- package/yida-skills/skills/yida-design/references/style-designs/command-filter-card-console.md +304 -0
- package/yida-skills/skills/yida-design/references/style-designs/contrast-command-analytics-workbench.md +261 -0
- package/yida-skills/skills/yida-design/references/style-designs/dark-stage-analytic-dashboard.md +369 -0
- package/yida-skills/skills/yida-design/references/style-designs/filterable-card-catalog.md +354 -0
- package/yida-skills/skills/yida-design/references/style-designs/green-timeline-progress-workbench.md +250 -0
- package/yida-skills/skills/yida-design/references/style-designs/registry.md +117 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-analytic-workbench.md +348 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-blue-grid-analytic-dashboard.md +658 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-bordered-analytic-workbench.md +385 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-curated-filter-gallery.md +300 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-modular-analytic-workbench.md +404 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-progress-analytics-workbench.md +382 -0
- package/yida-skills/skills/yida-design/references/style-designs/soft-timeline-analytics-workbench.md +367 -0
- package/yida-skills/skills/yida-design/references/style-designs/teal-rail-analytics-workbench.md +341 -0
- package/yida-skills/skills/yida-design/references/theme/app-custom-theme-template.css +432 -350
- package/yida-skills/skills/yida-design/references/visual-decision-engine.md +143 -19
- package/yida-skills/skills/yida-design/references/visual-scaffold-recipes.md +27 -15
- package/yida-skills/skills/yida-design/sub_skill/page-design/SKILL.md +0 -4
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/SKILL.md +8 -22
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/README.md +10 -14
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/assets/build-plan-template.html +4 -9
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-compact-schema.md +27 -49
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md +154 -33
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md +127 -48
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-theme-selection.md +51 -37
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/render_build_plan.py +48 -43
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/scripts/validate_design_themes.py +190 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/README.md +98 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-media-grid.md +339 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-modular-clarity.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/airy-structured-clarity.md +344 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ambient-halo-layered.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-focus-layered.md +355 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/dark-luminous-modular.md +377 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/deep-stage-duotone.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/hairline-runway-clarity.md +389 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/high-contrast-modular.md +364 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/index.json +329 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/interlocked-vivid-modules.md +348 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/matrix-grid-focus.md +345 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/media-rail-inspector.md +379 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mist-layered-signal.md +347 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/modular-rail-signal.md +352 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/mono-grid-signal.md +386 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/ribbon-ledger-lift.md +384 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/segmented-meter-clarity.md +388 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/split-rail-precision.md +341 -0
- package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/templates/design-themes/status-framed-media-grid.md +361 -0
- package/yida-skills/skills/yida-design/workflow/output-design.md +375 -117
- package/yida-skills/skills/yida-design/workflow/output-prd.md +185 -0
- package/yida-skills/skills/yida-design/workflow/step-1-read-brief.md +1 -1
- package/yida-skills/skills/yida-design/workflow/step-2-theme-system.md +29 -33
- package/yida-skills/skills/yida-design/workflow/step-4-wireframe-interaction.md +1 -3
- package/yida-skills/skills/yida-design/workflow/step-5-visual-states.md +106 -22
- package/yida-skills/skills/yida-design/workflow/step-6-handoff.md +22 -15
- package/yida-skills/skills/yida-form-permission/SKILL.md +0 -6
- package/yida-skills/skills/yida-image-assets/SKILL.md +50 -73
- package/yida-skills/skills/yida-image-assets/references/manifest-contract.md +52 -82
- package/yida-skills/skills/yida-image-assets/references/source-policy.md +15 -14
- package/yida-skills/skills/yida-integration/SKILL.md +0 -1
- package/yida-skills/skills/yida-login/SKILL.md +0 -2
- package/yida-skills/skills/yida-nav-group/SKILL.md +2 -4
- package/yida-skills/skills/yida-nav-shell/SKILL.md +12 -36
- package/yida-skills/skills/yida-nav-shell/references/nav-shell-patterns.md +136 -79
- package/yida-skills/skills/yida-page-config/SKILL.md +4 -13
- package/yida-skills/skills/yida-prd/SKILL.md +3 -5
- package/yida-skills/skills/yida-prd/references/app/blueprint.md +4 -4
- package/yida-skills/skills/yida-prd/references/app/navigation-patterns.md +3 -6
- package/yida-skills/skills/yida-prd/references/app/role-journey.md +3 -5
- package/yida-skills/skills/yida-prd/references/plan-content.md +0 -4
- package/yida-skills/skills/yida-prd/workflow/output-prd.md +11 -18
- package/yida-skills/skills/yida-prd/workflow/plan-business.md +4 -4
- package/yida-skills/skills/yida-prd/workflow/step-2-information-architecture.md +8 -11
- package/yida-skills/skills/yida-publish-page/SKILL.md +1 -9
- package/yida-skills/skills/yida-requirement-analysis/SKILL.md +39 -10
- package/yida-skills/skills/yida-requirement-analysis/workflow/prepare-brief.md +71 -40
- package/yida-skills/skills-index.json +16 -36
- package/lib/app/application-entry-urls.js +0 -31
- package/lib/app/application-style.js +0 -69
- package/lib/app/canvas-icon-exports.json +0 -6160
- package/lib/app/canvas-icon-guard.js +0 -87
- package/lib/app/canvas-navigation-guard.js +0 -84
- package/lib/app/canvas-path-guard.js +0 -78
- package/lib/app/canvas-theme-guard.js +0 -184
- package/lib/app/form-data-response-guard.js +0 -57
- package/lib/asset/asset-execution.js +0 -79
- package/lib/core/css-structure.js +0 -37
- package/lib/design/check-design.js +0 -51
- package/lib/design/document.js +0 -458
- package/lib/design/icon-contrast.js +0 -85
- package/lib/design/page-content.js +0 -11
- package/lib/design-plan/artifact-updates.js +0 -117
- package/lib/design-plan/confirmation.js +0 -13
- package/lib/design-plan/entry-navigation.js +0 -97
- package/lib/design-plan/navigation-policy.js +0 -38
- package/lib/design-plan/rebase.js +0 -60
- package/lib/design-plan/themes.js +0 -101
- package/lib/design-plan/visual-policy.js +0 -42
- package/lib/samples/openyida-scaffold/canvas-admin-entry.jsx +0 -62
- package/lib/samples/openyida-scaffold/canvas-navigation.jsx +0 -56
- package/lib/samples/openyida-scaffold/canvas-view-state.jsx +0 -74
- package/yida-skills/skills/yida-app/references/entry-navigation.md +0 -193
- package/yida-skills/skills/yida-canvas-custom-page/references/view-state-recovery.md +0 -52
- package/yida-skills/skills/yida-canvas-data-binding/references/business-action-permissions.md +0 -31
- package/yida-skills/skills/yida-design/references/application-style-library.md +0 -93
- package/yida-skills/skills/yida-design/references/application-theme-consistency.md +0 -150
- package/yida-skills/skills/yida-design/references/native-form-styles.md +0 -208
- package/yida-skills/skills/yida-design/references/navigation-decision.md +0 -53
- package/yida-skills/skills/yida-design/references/page-continuity.md +0 -42
- package/yida-skills/skills/yida-design/references/theme/application-style-recipes.css +0 -58
- package/yida-skills/skills/yida-design/references/theme-selection.md +0 -67
- package/yida-skills/skills/yida-design/scripts/validate_design_themes.py +0 -302
- package/yida-skills/skills/yida-design/templates/application-styles.json +0 -398
- package/yida-skills/skills/yida-design/templates/design-themes/README.md +0 -73
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-amber/form-layout.json +0 -15
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-editorial/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-executive/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-finance/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-glass/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-graphite/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-line/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-neon/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-nordic/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-paper/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-platinum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-plum/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/app_theme.css +0 -758
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/design.md +0 -281
- package/yida-skills/skills/yida-design/templates/design-themes/app-pop/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-sage/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-teal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/app_theme.css +0 -754
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/design.md +0 -279
- package/yida-skills/skills/yida-design/templates/design-themes/app-terminal/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/app_theme.css +0 -752
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/design.md +0 -278
- package/yida-skills/skills/yida-design/templates/design-themes/app-ticket/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/app_theme.css +0 -748
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/design.md +0 -274
- package/yida-skills/skills/yida-design/templates/design-themes/app-wire/form-layout.json +0 -14
- package/yida-skills/skills/yida-design/templates/design-themes/basic-tokens.json +0 -118
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/design.md +0 -382
- package/yida-skills/skills/yida-design/templates/design-themes/dark-inset-hairline/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/design.md +0 -380
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-fine-lines/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/app_theme.css +0 -696
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/design.md +0 -378
- package/yida-skills/skills/yida-design/templates/design-themes/dark-rail-signal-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/app_theme.css +0 -689
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/design.md +0 -238
- package/yida-skills/skills/yida-design/templates/design-themes/free-creative/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/design.md +0 -375
- package/yida-skills/skills/yida-design/templates/design-themes/graphite-bevel-grid/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/design.md +0 -362
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-shared-bands/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/design.md +0 -409
- package/yida-skills/skills/yida-design/templates/design-themes/hairline-soft-blocks/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/index.json +0 -464
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/app_theme.css +0 -701
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/design.md +0 -379
- package/yida-skills/skills/yida-design/templates/design-themes/ink-glow-soft-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/design.md +0 -404
- package/yida-skills/skills/yida-design/templates/design-themes/inset-frame-pixel-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/design.md +0 -389
- package/yida-skills/skills/yida-design/templates/design-themes/outlined-texture-duotone/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/app_theme.css +0 -691
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/design.md +0 -372
- package/yida-skills/skills/yida-design/templates/design-themes/soft-inset-surfaces/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/app_theme.css +0 -690
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/design.md +0 -455
- package/yida-skills/skills/yida-design/templates/design-themes/soft-outline-rhythm/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/app_theme.css +0 -698
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/design.md +0 -394
- package/yida-skills/skills/yida-design/templates/design-themes/soft-rail-bold-band/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/design.md +0 -391
- package/yida-skills/skills/yida-design/templates/design-themes/soft-spectral-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/app_theme.css +0 -711
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/design.md +0 -408
- package/yida-skills/skills/yida-design/templates/design-themes/warm-canvas-contrast-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/app_theme.css +0 -692
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/design.md +0 -383
- package/yida-skills/skills/yida-design/templates/design-themes/warm-rail-muted-panels/form-layout.json +0 -13
- package/yida-skills/skills/yida-design/templates/navigation-styles.json +0 -769
- package/yida-skills/skills/yida-requirement-analysis/references/experience-groups.md +0 -79
- package/yida-skills/skills/yida-requirement-analysis/references/handoff.md +0 -68
package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/build-plan-schema.md
CHANGED
|
@@ -8,8 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
`schemaVersion=2.0` 时,下文中的摘要、索引字段和标准规则可以不在源 JSON 中出现,由 materialize 确定性补齐;补齐后的完整逻辑结构仍遵守本文约束,派生产物完整度不变。
|
|
10
10
|
|
|
11
|
-
页面导航策略是[紧凑契约中的派生输出](build-plan-compact-schema.md#派生的页面导航策略):`pages[].navigationPolicy` 仅存在于 PRD 实施交接,不作为本源 JSON 或 pageSpecHandoff 的输入;旧计划同样从导航归属派生。
|
|
12
|
-
|
|
13
11
|
## 顶层结构
|
|
14
12
|
|
|
15
13
|
```json
|
|
@@ -144,12 +142,12 @@
|
|
|
144
142
|
|
|
145
143
|
约束:
|
|
146
144
|
|
|
147
|
-
-
|
|
145
|
+
- 计划生成前先确定应用范围与导航类型,再选择视觉方向。范围和导航归属不明时可合并询问,导航选项仅为“宜搭原生导航”和“自定义导航”;原生导航即平台导航,顶部、侧边、L 型等布局由 Agent 按场景确定,不进入 `ask_human`。回答后生成遵守导航决策的视觉候选;每个问题必须有 `interactionId` 和 `writeBackPath`。
|
|
148
146
|
- `questionType` 只取 `single_choice`、`multi_choice`、`free_text` 或最终计划使用的 `confirm`,不设置 AI 代填项中间确认类型。
|
|
149
147
|
- 只有宽泛应用名称且缺少模块、场景、任务、流程和可读需求时才问应用范围。
|
|
150
148
|
- 审批、角色权限、字段、首页、看板、页面和常规流程细节不进入 `ask_human`;用户已提供时承接,未提供时基于业务推断并在最终计划统一呈现。
|
|
151
149
|
- 来源不可读时只生成来源补齐问题。
|
|
152
|
-
-
|
|
150
|
+
- 视觉问题生成恰好三套完整方向;选中后原子写入 `visualDirection`、`internal.selectedTheme`、`colorStrategy` 和 `navigationStyle`,未选候选不写入最终 JSON。
|
|
153
151
|
|
|
154
152
|
`askhuman` 保留为 `build-plan.json` 的存储字段名;技能动作和用户交互统一称为 `ask_human`。
|
|
155
153
|
|
|
@@ -158,9 +156,9 @@
|
|
|
158
156
|
`meta.revision` 是四份产物共享的版本标识,`meta.status` 是当前状态,`meta.planState` 记录展示与确认事实。状态更新遵守 [`ask_human` 交互契约](../../../references/ask-human-interaction-contract.md)。
|
|
159
157
|
|
|
160
158
|
- `draft`:当前版本正在生成或调整。
|
|
161
|
-
- `awaiting_confirmation
|
|
159
|
+
- `awaiting_confirmation`:当前版本已通过会话摘要和 `build-plan.html` 展示,`presentedRevision=meta.revision`。
|
|
162
160
|
- `confirmed`:用户已在最终确认交互中确认,`confirmedRevision=meta.revision`、`planConfirmed=true`。
|
|
163
|
-
-
|
|
161
|
+
- 每次影响计划事实的修改都生成新的 `meta.revision`,并清空旧确认信息。
|
|
164
162
|
- 只有 `meta.status=confirmed`、`planConfirmed=true` 且 `meta.revision=presentedRevision=confirmedRevision` 时,应用生成链路才能消费该计划。
|
|
165
163
|
|
|
166
164
|
## overview
|
|
@@ -309,24 +307,153 @@
|
|
|
309
307
|
|
|
310
308
|
## visualStyle
|
|
311
309
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
310
|
+
```json
|
|
311
|
+
{
|
|
312
|
+
"evidence": [
|
|
313
|
+
{
|
|
314
|
+
"type": "user_explicit | brand_guide | logo | website | image_reference | template | inferred",
|
|
315
|
+
"value": "用户要求整体克制,不要大面积品牌色",
|
|
316
|
+
"confidence": "high | medium | low"
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"constraints": {
|
|
320
|
+
"brandColors": ["#F26B38"],
|
|
321
|
+
"preferredTone": ["professional"],
|
|
322
|
+
"forbiddenColors": [],
|
|
323
|
+
"avoidPatterns": ["large-kpi-cards", "excessive-whitespace"],
|
|
324
|
+
"referenceMaterials": [],
|
|
325
|
+
"accessibilityLevel": "AA"
|
|
326
|
+
},
|
|
327
|
+
"forUser": {
|
|
328
|
+
"visualDirection": {
|
|
329
|
+
"label": "稳重流程型",
|
|
330
|
+
"description": "强调流程状态、任务处理和异常识别,界面稳定而不沉闷。",
|
|
331
|
+
"source": "user_selected | user_explicit | material_extracted | ai_inferred"
|
|
332
|
+
},
|
|
333
|
+
"themeProfile": {
|
|
334
|
+
"tone": "<selectedIndexRecord.defaultProfile.tone>",
|
|
335
|
+
"surfaceStyle": "<selectedIndexRecord.defaultProfile.surfaceStyle>",
|
|
336
|
+
"contrastLevel": "<selectedIndexRecord.defaultProfile.contrastLevel>",
|
|
337
|
+
"brandIntensity": "<selectedIndexRecord.defaultProfile.brandIntensity>",
|
|
338
|
+
"radiusScale": "<selectedIndexRecord.defaultProfile.radiusScale>",
|
|
339
|
+
"shadowLevel": "<selectedIndexRecord.defaultProfile.shadowLevel>",
|
|
340
|
+
"iconStyle": "<selectedIndexRecord.defaultProfile.iconStyle>",
|
|
341
|
+
"motionLevel": "<selectedIndexRecord.defaultProfile.motionLevel>",
|
|
342
|
+
"colorStrategy": "<selectedIndexRecord.defaultProfile.colorStrategy>"
|
|
343
|
+
},
|
|
344
|
+
"styleSummary": "<已选主题与项目色彩策略的摘要>",
|
|
345
|
+
"styleSource": "用户选择",
|
|
346
|
+
"colorStrategy": {
|
|
347
|
+
"source": "user_selected | user_specified | brand_guide | material_extracted | ai_inferred",
|
|
348
|
+
"primaryColor": "#F26B38",
|
|
349
|
+
"primaryColorName": "品牌橙",
|
|
350
|
+
"usage": "用于主操作、当前状态和少量关键数据,不作为大面积背景",
|
|
351
|
+
"confidence": "high | medium | low"
|
|
352
|
+
},
|
|
353
|
+
"navigationStyle": {
|
|
354
|
+
"structure": "top | side",
|
|
355
|
+
"tone": "light | dark",
|
|
356
|
+
"source": "user_selected | user_explicit | material_extracted | ai_inferred",
|
|
357
|
+
"selectionReason": "高频流程处理需要稳定入口,深色导航加强模块边界。"
|
|
358
|
+
},
|
|
359
|
+
"pageApplications": [
|
|
360
|
+
{
|
|
361
|
+
"pageId": "sales-workbench",
|
|
362
|
+
"pageName": "工作台",
|
|
363
|
+
"visualApplication": "继承已选主题,在不改变页面模式的前提下说明表面、品牌色、主操作和状态如何呈现。",
|
|
364
|
+
"surface": "状态摘要和任务区使用轻边框表面,不使用大面积悬浮阴影。",
|
|
365
|
+
"primaryAction": "品牌色只用于主操作和当前选中对象。",
|
|
366
|
+
"states": "异常和逾期使用独立语义色、图标和文字共同表达。",
|
|
367
|
+
"visualMemoryApplications": [
|
|
368
|
+
{
|
|
369
|
+
"name": "<选中模板中的视觉记忆组件名称>",
|
|
370
|
+
"renderPolicy": "adapt_existing_slot | prd_match_only | direct | suggest_only",
|
|
371
|
+
"target": "<PRD 已有内容槽位>",
|
|
372
|
+
"reason": "<页面内容满足该记忆点内容契约的依据>"
|
|
373
|
+
}
|
|
374
|
+
],
|
|
375
|
+
"visualMemories": ["<由 visualMemoryApplications[].name 派生>"]
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
"visualMemories": [
|
|
379
|
+
{
|
|
380
|
+
"name": "清楚细边框",
|
|
381
|
+
"rule": "内容表面主要通过边框和明度差分层。",
|
|
382
|
+
"userValue": "业务区块边界稳定且易扫描。",
|
|
383
|
+
"failureMode": "只靠极弱阴影导致白色表面混在一起。"
|
|
384
|
+
}
|
|
385
|
+
],
|
|
386
|
+
"hierarchySummary": "中性背景承托清楚边界的内容表面,阴影只用于必要浮层。",
|
|
387
|
+
"componentToneSummary": "组件保持克制,品牌色用于关键操作,状态语义独立。",
|
|
388
|
+
"stateSummary": "空态、加载、错误、禁用、无权限和选中状态都有文字与视觉反馈。",
|
|
389
|
+
"responsiveSummary": "移动端保持页面规划中的主任务顺序,控件满足触控尺寸。",
|
|
390
|
+
"iconSummary": "使用统一线性图标体系,具体图标在开发阶段映射。",
|
|
391
|
+
"assetStrategy": {
|
|
392
|
+
"materialStatus": "final | draft | none",
|
|
393
|
+
"pages": [
|
|
394
|
+
{
|
|
395
|
+
"pageId": "page-home",
|
|
396
|
+
"imageNeed": "required | beneficial | none",
|
|
397
|
+
"reason": "<图片用途>",
|
|
398
|
+
"slots": [
|
|
399
|
+
{
|
|
400
|
+
"slotId": "home.hero",
|
|
401
|
+
"usage": "hero | background | product | scene | cover | empty-state",
|
|
402
|
+
"count": 1,
|
|
403
|
+
"aspectRatio": "16:9",
|
|
404
|
+
"minSize": "1600x900",
|
|
405
|
+
"focus": "主体靠右",
|
|
406
|
+
"objectFit": "cover | contain",
|
|
407
|
+
"generationAllowed": true
|
|
408
|
+
}
|
|
409
|
+
]
|
|
410
|
+
}
|
|
411
|
+
],
|
|
412
|
+
"missingAssets": [],
|
|
413
|
+
"notes": "素材交给 yida-image-assets;缺口保持草稿"
|
|
414
|
+
},
|
|
415
|
+
"designMdReady": "已同步生成 design.md,后续 AI 开发读取完整设计契约。"
|
|
416
|
+
},
|
|
417
|
+
"internal": {
|
|
418
|
+
"selectedTheme": {
|
|
419
|
+
"themeId": "<selectedIndexRecord.themeId>",
|
|
420
|
+
"source": "user_selected | user_custom | user_explicit | material_extracted | ai_inferred",
|
|
421
|
+
"customText": ""
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
"forDesignMd": {
|
|
425
|
+
"designTemplate": {
|
|
426
|
+
"themeId": "<selectedIndexRecord.themeId>",
|
|
427
|
+
"templatePath": "<selectedIndexRecord.templatePath>",
|
|
428
|
+
"instanceRule": "完整读取模板,替换项目变量,注入页面模式与页面视觉应用"
|
|
429
|
+
},
|
|
430
|
+
"productTopologyApplication": "<根据 experienceTopology、页面范围和前后台边界生成的主题应用说明,不改变页面规划>",
|
|
431
|
+
"pagePatterns": [
|
|
432
|
+
{
|
|
433
|
+
"pageId": "sales-workbench",
|
|
434
|
+
"mode": "adapted",
|
|
435
|
+
"id": "compact-workbench",
|
|
436
|
+
"adaptations": ["增加持续展开的客户与商机上下文区"],
|
|
437
|
+
"contentRichness": "rich-but-relevant",
|
|
438
|
+
"mustKeep": ["高频动作显眼", "首屏至少两层信息"]
|
|
439
|
+
}
|
|
440
|
+
],
|
|
441
|
+
"themeStrategy": {
|
|
442
|
+
"colorSource": "user_specified | brand_guide | material_extracted | ai_inferred",
|
|
443
|
+
"colorRoles": ["主色", "辅助色", "中性色", "语义色"],
|
|
444
|
+
"notes": "主题色策略与页面模式相互独立。"
|
|
445
|
+
},
|
|
446
|
+
"componentRules": [],
|
|
447
|
+
"stateRules": ["hover", "active", "focus", "disabled", "loading", "empty", "error", "no-permission", "selected"],
|
|
448
|
+
"responsiveRules": [],
|
|
449
|
+
"qualityGates": [
|
|
450
|
+
"视觉主题不得改变页面内容、页面模式和信息密度。",
|
|
451
|
+
"不使用低密大空白工作台。",
|
|
452
|
+
"不得编造图片 URL。"
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
```
|
|
330
457
|
|
|
331
458
|
## 结构约束
|
|
332
459
|
|
|
@@ -336,17 +463,11 @@
|
|
|
336
463
|
- `businessDomain` 决定业务对象与流程,`experienceTopology` 描述项目结构;两者都不排除或绑定视觉主题。
|
|
337
464
|
- `visualStyle.forUser.pageApplications` 与 `pages.customPageDetails[]` 按 `pageId` 一一对应,只记录项目真实存在的自定义页面。
|
|
338
465
|
- 页面视觉应用先消费全应用 Token 和页面已有组件,再匹配视觉记忆点;新计划不维护一份固定页面类型规则表。
|
|
339
|
-
- 1.x 结构中的 `candidateThemes` 与 `selectedTheme` 必须从 [主题索引](
|
|
466
|
+
- 1.x 结构中的 `candidateThemes` 与 `selectedTheme` 必须从 [主题索引](../templates/design-themes/index.json) 取得;2.0 不保存任何未选候选,模板路径由 `visualStyle.internal.selectedTheme.themeId` 确定性补齐。
|
|
340
467
|
- `forDesignMd.designTemplate` 必须与 `visualStyle.internal.selectedTheme` 指向同一模板;生成的 `design.md` 不得残留 `{{...}}` 占位符、Token 推导指令、主题 ID、模板名称或模板路径。
|
|
341
|
-
- 主题 ID 仅保存在 2.0 `build-plan.json` 的内部字段,模板路径由主题索引补齐;用户可见 HTML
|
|
468
|
+
- 主题 ID 仅保存在 2.0 `build-plan.json` 的内部字段,模板路径由主题索引补齐;用户可见 HTML 完整展示业务和视觉方案,内部主题 ID 与模板路径保留给执行过程。
|
|
342
469
|
- 视觉变化不得改写 `pages`;页面规划变化时允许重新生成 `visualStyle.forUser.pageApplications`。
|
|
343
470
|
- `prd.md`、`design.md` 和 `build-plan.html` 必须来自同一个 `meta.revision`;用户确认后把 `meta.status` 更新为 `confirmed`。
|
|
344
471
|
- 确认生成应用前,`build-plan.json` 是唯一搭建计划事实源。
|
|
345
472
|
- 旧数据中的 `selectedStyleOption`、`pageVisualPlanning`、`firstScreen`、`signatureMoment` 和 `visualAtmosphere` 仅用于渲染兼容;新计划不得继续写入。
|
|
346
|
-
-
|
|
347
|
-
|
|
348
|
-
### 紧凑区块输入(schemaVersion 2.0)
|
|
349
|
-
|
|
350
|
-
`blocks` 支持按优先顺序填写 `{name,purpose}` 数组,两项均为非空文本,每个区块只使用这两个键。CLI 将其转换为区块说明,并在省略时派生 contentPriority 和 contentRichness.contentLayers;明确填写的内容原样保留。旧版字符串数组继续沿用原字段。业务验收条件写入 execution.acceptanceCriteria,与按资源生成的通用检查合并去重。
|
|
351
|
-
|
|
352
|
-
自由创意(`free-creative`)没有模板导航默认值:在 `navigationStyle.tone` 明确填写项目设计的 `light` 或 `dark`,CLI 标记 `toneSource=project_defined`;此路径可通过 patch 调整 tone,并同步配套导航 Token。命名模板仍按模板派生导航明暗。
|
|
473
|
+
- 旧数据只有 `themeId` 时,ID 仍存在于当前索引 → 通过同一记录补齐 `templatePath`;ID 不存在于当前索引 → 返回 Step 2 重新选择当前主题,不凭印象映射旧主题。
|
package/yida-skills/skills/yida-design/sub_skill/yida-design-plan/references/visual-design.md
CHANGED
|
@@ -1,58 +1,137 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 视觉规划与 design.md 生成规则
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 用途与边界
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
1. 当前版本计划:项目、页面、业务约束、已选视觉方向、主色与导航。
|
|
8
|
-
2. [共享主题索引](../../../templates/design-themes/index.json) 的已选记录与一份完整主题。选前只读摘要,选后再读全文,不预读候选。
|
|
9
|
-
3. 每个实际自定义页的具体视觉决定、局部差异、特色配方绑定及素材需求。
|
|
10
|
-
|
|
11
|
-
PRD 决定页面任务、操作和内容优先级;主题决定这些内容如何呈现。视觉生成不增删业务资源,不改写页面模式、内容优先级与业务信息密度。正常设计不读取主题库维护说明。
|
|
12
|
-
|
|
13
|
-
## 逐页输入
|
|
14
|
-
|
|
15
|
-
`visualStyle.forUser.pageApplications` 与 `pages.customPageDetails[]` 按 pageId 一一对应。最终物化前,每页至少填写:
|
|
16
|
-
|
|
17
|
-
| 字段 | 类型与内容 |
|
|
18
|
-
| --- | --- |
|
|
19
|
-
| `pageId` | 对应真实页面的稳定 ID |
|
|
20
|
-
| `firstScreenFocus` | 非空字符串,进入页面第一眼关注什么及突出方式 |
|
|
21
|
-
| `primaryAction` | 非空字符串,真实主操作、所在位置及触发后的反馈,沿用 PRD 的动作 |
|
|
22
|
-
| `layout` | 非空字符串,真实区块的顺序、主次、宽度/比例、列数、对齐与内容增长安排 |
|
|
23
|
-
| `responsive` | 非空字符串,窄屏重排、折叠、工具栏与表格处理 |
|
|
24
|
-
| `acceptanceChecks` | 非空字符串数组,页面视觉与交互的可检查结果 |
|
|
25
|
-
|
|
26
|
-
`surface`、`states`、`visualApplication` 可补具体项目差异;公共规则由主题供给,不需要逐页复制。CLI 结合业务页面事实,将这些输入呈现为正文八项要点。没有自定义页时保留空数组,不添加页面。
|
|
27
|
-
|
|
28
|
-
缺少上述决定的旧计划和新草稿仍可预览;生成最终产物时提示准确缺项,补齐后继续,不用“继承主题”占位替代。仅维护草稿不代表 design.md 已就绪。
|
|
5
|
+
本文件供复杂视觉定制时按需查阅。常规规划使用紧凑契约和 CLI 返回的主题上下文。完整主题模板决定视觉设计内容和文档结构;本文件负责选择结果校验、项目事实融合、页面视觉应用和交付检查。
|
|
29
6
|
|
|
30
|
-
|
|
7
|
+
```text
|
|
8
|
+
PRD 决定做什么
|
|
9
|
+
页面规划决定内容如何组织
|
|
10
|
+
完整主题模板决定既定结构如何呈现
|
|
11
|
+
```
|
|
31
12
|
|
|
32
|
-
|
|
13
|
+
视觉生成保持 PRD 中的页面核心任务、内容优先级、首屏结构、页面模式和信息密度不变。正常生成应用时不读取 [主题模板维护说明](../templates/design-themes/README.md);该文件只用于维护主题模板库。
|
|
33
14
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
按 [页面与导航连续性](../../../references/page-continuity.md) 在 pageApplications.layout/responsive/states 写明布局和往返状态;materialize 同步规则到 design.md。导航明暗不决定占位/叠加。
|
|
37
|
-
|
|
38
|
-
`forUser.iconSystem` 可记录图标库和业务到组件映射,初始化沿用 brief 中的选择;没有配置时才默认 lucide-react 与空映射。图标尺寸和描边等实现规则保留在正文,不复制进定位索引。
|
|
39
|
-
|
|
40
|
-
## 配色与导航
|
|
41
|
-
|
|
42
|
-
项目主色写 `forUser.colorStrategy.primaryColor`,使用 6 位 HEX;平台变量覆盖与项目扩展变量都写入 `visualStyle.tokens`,不受模板现有变量数量或 `--oyd-*` 前缀限制。`themeProfile` 是输出摘要,不以修改摘要代替 token。CLI 组织 application-global 与 custom-page 分组,两组都会写入主题 CSS 的 `:root`;可引用已声明的共享变量,不能循环引用或依赖只在某个页面内定义的变量。
|
|
43
|
-
|
|
44
|
-
逐项核对已选方向承诺的画布、面板、文字、字体和特色强调是否有对应变量;差异由设计者补齐,不能只写在 description/usage 中。物化后按 [共用主题规则](../../../references/application-theme-consistency.md) 对照生成的 CSS,再交给页面作者。
|
|
45
|
-
|
|
46
|
-
颜色推导与 Fast 相同,直接使用所选主题的公式和项目 token,不增加 Plan 专用染色规则。应用根渐变写 `--pod-app-root-bg-image`;单页渐变与装饰在页面设计中说明作用区域,按 [背景规则](../../../workflow/output-design.md#背景颜色渐变与图片) 实现。
|
|
47
|
-
|
|
48
|
-
整体配色与主题的冲突按公共输出契约处理。导航和内容界面的明暗分别描述,导航明暗采用所选主题模板的 `navTheme`,既定入口范围保持不变;前台与后台可改变表达强度,但共享基础变量、字体、状态和组件语言。无法保留已选主题核心特征时回到主题选择,不在页面阶段另建主题。
|
|
15
|
+
## 运行时输入
|
|
49
16
|
|
|
50
|
-
|
|
17
|
+
CLI 生成项目 `design.md` 时读取:
|
|
51
18
|
|
|
52
|
-
|
|
19
|
+
1. 当前版本 `build-plan.json`:项目事实、产品形态、页面规划、视觉证据、项目视觉方向、主题色、导航选择和内部选中主题。
|
|
20
|
+
2. [主题索引](../templates/design-themes/index.json):校验内部 `selectedTheme`,取得 `defaultProfile` 和模板路径。
|
|
21
|
+
3. 内部选中主题对应的完整模板:作为项目 `design.md` 的设计底稿。
|
|
22
|
+
4. [page-patterns.md](page-patterns.md):解释各页面已经确定的页面模式。
|
|
53
23
|
|
|
54
|
-
|
|
24
|
+
CLI 完整读取选中的模板,不假设模板的章节、frontmatter 或内容组织方式。主题模板内部结构由模板自身维护。
|
|
55
25
|
|
|
56
|
-
|
|
26
|
+
## 产物关系
|
|
57
27
|
|
|
58
|
-
|
|
28
|
+
| 产物 | 面向对象 | 内容 |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `build-plan.html` | 用户确认 | 项目视觉方向、色彩策略、导航选择和素材缺口摘要 |
|
|
31
|
+
| `prd.md` | 后续 AI 开发 | 业务、数据、流程、页面任务、内容优先级、页面模式和权限 |
|
|
32
|
+
| `design.md` | 后续 AI 开发 | 完整主题模板的项目实例、组件状态和逐页视觉应用 |
|
|
33
|
+
|
|
34
|
+
主题 ID、模板路径等实现身份只保存在 `build-plan.json` 内部或物化内存中。最终 `prd.md`、`design.md` 和 `build-plan.html` 不展示主题模板名称、ID、路径或来源。页面实现阶段只读取最终 `prd.md` 和 `design.md`。
|
|
35
|
+
|
|
36
|
+
## 生成顺序
|
|
37
|
+
|
|
38
|
+
1. 校验 `visualStyle.internal.selectedTheme.themeId`,并从索引确定性取得模板路径;兼容旧计划时可读取 `forUser.selectedTheme`。
|
|
39
|
+
2. CLI 完整读取该路径指向的模板;模型使用初始化返回的主题上下文。
|
|
40
|
+
3. 以索引中的 `defaultProfile` 为起点,由 materialize 补齐 `themeProfile`;该摘要只读。模型将用户要求、品牌规范和可访问性约束落实为 `visualStyle.tokens`,主题色写入 `colorStrategy`。
|
|
41
|
+
4. 根据 `meta.experienceTopology`、页面范围和前后台边界生成 `visualStyle.forDesignMd.productTopologyApplication`,说明全应用共享主题基础语言、记忆点按真实页面内容使用;该字段不判断主题是否适用,也不增删页面或业务能力。
|
|
42
|
+
5. 保持 `pages.customPageDetails[]` 中的页面模式、内容优先级、首屏结构和信息密度;模型只生成每页 `visualMemoryApplications`,页面基础视觉应用由 materialize 从主题模板补齐。
|
|
43
|
+
6. 根据 `PRIMARY_COLOR` 推导模板要求的 Brand Token 和自定义页主题衍生色;导航背景按 `light → --color-brand1-3`、`dark → --color-brand1-5` 映射。
|
|
44
|
+
7. 由 materialize 在单一位置注入“项目视觉选择”,写明视觉方向、主题色、导航结构、导航明暗、导航背景 Token 和选择依据;不要求所有主题模板预留空字段。
|
|
45
|
+
8. 按模板自身结构写入其他项目事实、页面模式、页面视觉应用和素材状态;模板定义的占位符全部替换。
|
|
46
|
+
9. 保留模板中的视觉 DNA、消费规则、组件规则和交付检查,同时从最终项目文档移除主题 ID、模板名称、路径等内部身份字段。
|
|
47
|
+
10. 将 `build-plan.json`、`prd.md` 和 `design.md` 写入同一个 `meta.revision`,再执行交付检查。
|
|
48
|
+
|
|
49
|
+
Step 4 不重新发起常规视觉 `ask_human`。页面规划新暴露品牌素材冲突或前后台表达边界冲突时,返回 Step 2 更新视觉选择。
|
|
50
|
+
|
|
51
|
+
## 页面级视觉应用
|
|
52
|
+
|
|
53
|
+
每个自定义页面必须在 `visualStyle.forUser.pageApplications` 中有一条紧凑记录:
|
|
54
|
+
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"pageId": "procurement-workbench",
|
|
58
|
+
"visualMemoryApplications": [
|
|
59
|
+
{
|
|
60
|
+
"name": "<模板中的视觉记忆组件名称>",
|
|
61
|
+
"renderPolicy": "adapt_existing_slot | prd_match_only | direct | suggest_only",
|
|
62
|
+
"target": "<PRD 已有的指标、分类、进度、图表或其他内容槽位>",
|
|
63
|
+
"reason": "<该页面内容满足此记忆点内容契约的依据>"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
`pageName`、页面模式引用、基础表面、主操作、状态说明和 `visualMemories` 由 materialize 派生。模型只负责把模板记忆点绑定到真实内容,不改写 `contentPriority`、`firstScreenStructure`、`layoutPattern` 或 `density`。
|
|
70
|
+
|
|
71
|
+
### 全应用继承与逐页生成
|
|
72
|
+
|
|
73
|
+
1. 原生表单、流程页面和自定义页面共同消费模板 `tokens.application-global` 中的颜色、字体、间距和圆角;自定义页面再消费模板的 `tokens.custom-page`。
|
|
74
|
+
2. 生成器只遍历 `pages.customPageDetails[]` 中真实存在的自定义页面,不预先枚举工作台、列表、表单、详情等全部可能页面类型。
|
|
75
|
+
3. 每页先绑定主题画布、表面、文字、边界、主操作和状态语言,再读取该页的功能区块与真实组件。
|
|
76
|
+
4. 筛选、输入、表格、列表、图表、指标、状态和操作等组件只在页面规划已经包含对应内容时写入 `visualApplication`、`surface`、`primaryAction` 和 `states`。
|
|
77
|
+
5. 页面基础消费完成后,再按“页面级视觉记忆点应用”匹配主题记忆点;没有匹配记忆点的页面仍完整继承主题基础设计语言。
|
|
78
|
+
6. `{{PAGE_APPLICATIONS}}` 只渲染项目真实页面的应用结果,不输出项目中不存在的页面类型说明。
|
|
79
|
+
|
|
80
|
+
### 页面级视觉记忆点应用
|
|
81
|
+
|
|
82
|
+
1. 读取选中模板“视觉记忆点应用策略”中的 `content_contract`、`render_policy`、适配目标和 fallback。
|
|
83
|
+
2. 用当前页面已有的业务内容逐项判断内容契约;匹配时选择 1–3 个主记忆点,无匹配内容时记录空数组,同一页面不要求使用模板的全部记忆点。
|
|
84
|
+
3. `adapt_existing_slot` 和 `prd_match_only` 只绑定 PRD 已有内容;无匹配内容时不渲染该组件,并保留模板配方供后续真实内容使用。
|
|
85
|
+
4. 会新增业务能力、字段、对象或虚构数据的记忆点标记为 `suggest_only`,不进入默认页面实现。
|
|
86
|
+
5. `visualMemories` 由 `visualMemoryApplications[].name` 派生,用于 `prd.md` 和 `build-plan.html` 展示;结构化应用记录用于生成 `design.md`。
|
|
87
|
+
|
|
88
|
+
## 冲突处理
|
|
89
|
+
|
|
90
|
+
整体配色选择不能被模板默认灰阶覆盖。`colorStrategy.surfaceTone=brand-tinted` 时,CLI 在 design.md 开头注入项目配色适配,并同步派生浅色表面 token;与下方模板的固定无彩限制冲突时按项目适配执行。保持中性参考用 `theme`,显式 `visualStyle.tokens` 优先,深色表面保留。页面先读项目适配,再读组件配方;不能只消费品牌按钮而漏掉卡片、文字、填充与边界。
|
|
91
|
+
|
|
92
|
+
按以下优先级合并视觉规则:
|
|
93
|
+
|
|
94
|
+
```text
|
|
95
|
+
可访问性与真实素材要求
|
|
96
|
+
> 用户明确视觉约束
|
|
97
|
+
> 品牌与参考素材
|
|
98
|
+
> 已选完整主题模板
|
|
99
|
+
> AI 补齐
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- 页面任务与主题冲突:保留页面任务和页面模式,调整主题在该页的应用强度。
|
|
103
|
+
- 品牌色与模板示例色冲突:保留品牌色,复用模板的色彩角色和使用策略。
|
|
104
|
+
- 用户要求与模板必须保留特征冲突:返回主题选择阶段,选择更匹配的完整模板。
|
|
105
|
+
- 前后台表达不同:共享主题 Token、字体、图标和状态体系;前台提高品牌强度,后台使用同主题的克制变体。
|
|
106
|
+
|
|
107
|
+
## build-plan.html 展示边界
|
|
108
|
+
|
|
109
|
+
`build-plan.html` 只展示用户能判断和调整的视觉结果:
|
|
110
|
+
|
|
111
|
+
- 一句话视觉主题和确认来源
|
|
112
|
+
- 品牌色或主题色来源与使用强度
|
|
113
|
+
- 表面、对比、圆角、阴影、图标和动效摘要
|
|
114
|
+
- 页面级视觉应用与跨页面视觉记忆点
|
|
115
|
+
- 状态、响应式、可访问性和素材缺口摘要
|
|
116
|
+
|
|
117
|
+
模板名称、主题 ID、模板路径、模板全文、候选评分和内部实例化过程保存在内部数据中,不进入任何用户可见派生产物。
|
|
118
|
+
|
|
119
|
+
## 交付检查
|
|
120
|
+
|
|
121
|
+
- 内部 `selectedTheme` 的 ID 存在于主题索引,物化后的路径与同一索引记录一致。
|
|
122
|
+
- `visualDirection`、`colorStrategy` 和 `navigationStyle` 完整,导航结构与明暗值合法。
|
|
123
|
+
- `design.md` 包含项目视觉选择章节,导航背景 Token 与明暗选择一致。
|
|
124
|
+
- `design.md` 不包含主题 ID、模板名称或模板路径。
|
|
125
|
+
- 物化后的 `themeProfile` 以同一索引记录的 `defaultProfile` 为基础,;用户与品牌的具体 CSS 差异写入 `visualStyle.tokens`,再由 CLI 应用到 `design.md`。
|
|
126
|
+
- `design.md` 没有未解析的 `{{...}}` 占位符、Token 推导指令或无关示例业务数据。
|
|
127
|
+
- `PRODUCT_TOPOLOGY_APPLICATION` 已由产品形态、页面范围和前后台边界生成,且没有改变页面规划。
|
|
128
|
+
- 每个自定义页面都有页面模式摘要和页面视觉应用。
|
|
129
|
+
- 所有页面共享全应用 Token;`PAGE_APPLICATIONS` 只包含项目真实存在的自定义页面。
|
|
130
|
+
- 每条页面视觉应用只消费页面规划中已有的组件和内容。
|
|
131
|
+
- 每个页面只应用满足内容契约的视觉记忆点;无匹配内容时没有虚构指标、分类、进度或图表。
|
|
132
|
+
- 页面视觉应用与 PRD 的内容优先级、首屏结构、页面模式和信息密度一致。
|
|
133
|
+
- 状态覆盖加载、空态、错误、禁用、无权限、选中和移动端。
|
|
134
|
+
- 官网、品牌页和展示页记录真实素材来源或素材缺口。
|
|
135
|
+
- `build-plan.json`、`prd.md` 和 `design.md` 使用同一版本。
|
|
136
|
+
|
|
137
|
+
具体 token 差异写入 `visualStyle.tokens`(单行字符串值),不能只修改 `themeProfile.radiusScale` 等摘要而期待 CSS 改变。应用主题使用公共模板与 `sample --design-file` 流程;主题 Markdown 模板用于设计规则,不能替代公共 CSS 模板。
|
|
@@ -2,35 +2,49 @@
|
|
|
2
2
|
|
|
3
3
|
## 用途
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
- Plan 没有明确完整风格时,读取本文,准备三套配色、表面层次和组件样式方案供用户选择。
|
|
7
|
-
- 用户选界面风格,AI 负责匹配实现用的主题模板。
|
|
5
|
+
首次搭建的风格未明确、需要准备选项时读取;已有风格要求直接沿用。视觉方向是面向当前项目的一组完整决策;主题模板只是内部实现基底,不作为用户选择对象。
|
|
8
6
|
|
|
9
7
|
## 核心关系
|
|
10
8
|
|
|
11
9
|
```text
|
|
12
10
|
应用场景与视觉证据
|
|
13
11
|
→ AI 定义项目视觉方向
|
|
14
|
-
→
|
|
12
|
+
→ 绑定主题索引中的可落地基底
|
|
15
13
|
→ 用户选择一套完整方向
|
|
16
|
-
→
|
|
17
|
-
→ 命名模板的导航明暗由模板派生;自由创意明确设计导航明暗
|
|
14
|
+
→ 四组已选视觉事实
|
|
18
15
|
→ CLI 读取所选完整模板并生成 design.md
|
|
19
16
|
```
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
执行顺序是“先定义方向,再匹配模板”,但方向必须受主题索引的可落地能力约束。索引中没有核心视觉 DNA 匹配项的方向,不得展示给用户。
|
|
22
19
|
|
|
23
|
-
|
|
20
|
+
应用导航类型在候选生成前由需求分析与应用编排确定。视觉方向决定跨页面共享的视觉气质、主题色、导航明暗、表面层级和形状语言,不改变页面内容、首屏重点、页面模式、信息密度或操作优先级。
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
用户确认的是整体色彩氛围时,将其落到 `colorStrategy.surfaceTone=brand-tinted`;不要因为所选模板默认中性灰就降级成仅改强调色。明确仅改强调色或忠实保留参考配色时使用 `theme`,无需为这个实现字段另起提问。
|
|
26
23
|
|
|
27
|
-
##
|
|
24
|
+
## 输入与优先级
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
候选生成读取已确定导航类型的共享 brief、应用场景事实、视觉证据和 [主题索引](../templates/design-themes/index.json)。视觉证据优先级:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
用户明确视觉要求
|
|
30
|
+
> 品牌规范、Logo、官网、参考图和已有模板
|
|
31
|
+
> 业务场景特征
|
|
32
|
+
> AI 补齐
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
AI 需要综合判断:
|
|
36
|
+
|
|
37
|
+
- 关系经营 / 流程执行;
|
|
38
|
+
- 协作 / 执行 / 分析 / 服务;
|
|
39
|
+
- 使用频率、信息密度和主要终端;
|
|
40
|
+
- 产品气质和品牌强度;
|
|
41
|
+
- 已有品牌色、禁止项和参考素材。
|
|
42
|
+
|
|
43
|
+
CRM 与采购管理可以产生不同推荐方向,但依据不是行业名本身:CRM 更可能强调关系上下文、跟进节奏和信息浏览;采购更可能强调流程状态、批量处理、异常识别和高频执行。实际输入中的模块和任务始终优先于这种常见倾向。
|
|
30
44
|
|
|
31
45
|
## 候选结构与约束
|
|
32
46
|
|
|
33
|
-
|
|
47
|
+
生成恰好三套候选,每套包含:
|
|
34
48
|
|
|
35
49
|
```json
|
|
36
50
|
{
|
|
@@ -40,7 +54,8 @@
|
|
|
40
54
|
"themeId": "<有效索引记录,仅内部>",
|
|
41
55
|
"primaryColor": "#6F4E37",
|
|
42
56
|
"primaryColorName": "暖咖啡棕",
|
|
43
|
-
"
|
|
57
|
+
"navigationStructure": "side",
|
|
58
|
+
"navigationTone": "dark",
|
|
44
59
|
"recommendationReason": "适合需要持续查看关系历史和推进状态的日常工作。"
|
|
45
60
|
}
|
|
46
61
|
```
|
|
@@ -48,21 +63,19 @@
|
|
|
48
63
|
规则:
|
|
49
64
|
|
|
50
65
|
1. 第一项为推荐项。
|
|
51
|
-
2. `directionLabel`、`description` 和 `recommendationReason` 由 AI
|
|
52
|
-
3. `themeId`
|
|
53
|
-
4.
|
|
54
|
-
5.
|
|
66
|
+
2. `directionLabel`、`description` 和 `recommendationReason` 由 AI 根据项目生成,不直接复制主题索引的标签或摘要。
|
|
67
|
+
3. `themeId` 必须来自索引,三项绑定不同记录;模板路径由索引在选择后确定性补齐。
|
|
68
|
+
4. 候选保持已确认的导航类型;通过主题基底、主题色、导航明暗形成差异,优先至少两项不同。用户约束固定的部分保持不变。
|
|
69
|
+
5. “企业内部、专业、稳重”不能单独成为蓝色 + 浅色侧边导航的依据。
|
|
55
70
|
6. 用户明确品牌色时保留该颜色,通过主题基底、材质和组件表达形成差异。
|
|
56
|
-
7.
|
|
57
|
-
8.
|
|
71
|
+
7. 项目色彩和已确定导航可覆盖模板默认变量;表面层级、形状语言、组件机制等核心视觉 DNA 与模板冲突时必须换一个基底。
|
|
72
|
+
8. 未找到匹配模板的方向在展示前丢弃并重新生成,不能用运行时模板拼接补救。
|
|
58
73
|
|
|
59
|
-
|
|
74
|
+
平台顶部或侧边导航候选沿用对应结构;平台L型的最终布局由 `navigationType` 决定,候选不得将其改为单一顶部或侧边导航。自定义导航内部的顶部或侧边形态可由视觉设计细化,保持隐藏平台导航的决策。
|
|
60
75
|
|
|
61
76
|
## 用户可见边界
|
|
62
77
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
风格确定后,写“设计主题风格为{风格名称},适合{业务场景}”。名称取项目的视觉方向,场景取当前业务用途;建议阶段使用“建议采用……风格”。
|
|
78
|
+
进度围绕当前应用的用户、主要功能和界面效果说明,不播报读取规则、查找模板或生成候选等内部步骤。需要等待时可说“正在为萌宠社交应用设计配色和界面风格,让宠物动态和互动入口更清晰”,应用名与功能必须来自当前需求。方案准备好后直接询问“萌宠社交应用的这三种界面风格,你更喜欢哪一种?”,紧接选择问题时省略额外进度说明。
|
|
66
79
|
|
|
67
80
|
用户只看到:
|
|
68
81
|
|
|
@@ -71,7 +84,7 @@
|
|
|
71
84
|
- `recommendationReason`;
|
|
72
85
|
- 第一项的“推荐”标记。
|
|
73
86
|
|
|
74
|
-
|
|
87
|
+
用户不看到主题索引标签、`themeId`、`templatePath`、模板来源和内部匹配过程。
|
|
75
88
|
|
|
76
89
|
```json
|
|
77
90
|
{
|
|
@@ -92,9 +105,9 @@
|
|
|
92
105
|
"description": "<second.description> <second.recommendationReason>"
|
|
93
106
|
},
|
|
94
107
|
{
|
|
95
|
-
"value": "
|
|
96
|
-
"label": "
|
|
97
|
-
"description": "
|
|
108
|
+
"value": "<third.directionId>",
|
|
109
|
+
"label": "<third.directionLabel>",
|
|
110
|
+
"description": "<third.description> <third.recommendationReason>"
|
|
98
111
|
}
|
|
99
112
|
],
|
|
100
113
|
"allowCustom": true,
|
|
@@ -102,7 +115,7 @@
|
|
|
102
115
|
}
|
|
103
116
|
```
|
|
104
117
|
|
|
105
|
-
##
|
|
118
|
+
## 选择后的原子写入
|
|
106
119
|
|
|
107
120
|
选中一套方向后,一次写入四组事实:
|
|
108
121
|
|
|
@@ -123,8 +136,9 @@
|
|
|
123
136
|
},
|
|
124
137
|
"navigationStyle": {
|
|
125
138
|
"structure": "side",
|
|
139
|
+
"tone": "dark",
|
|
126
140
|
"source": "user_selected",
|
|
127
|
-
"selectionReason": "
|
|
141
|
+
"selectionReason": "持续工作场景需要稳定入口,深色导航加强模块边界。"
|
|
128
142
|
}
|
|
129
143
|
},
|
|
130
144
|
"internal": {
|
|
@@ -137,18 +151,18 @@
|
|
|
137
151
|
}
|
|
138
152
|
```
|
|
139
153
|
|
|
140
|
-
|
|
154
|
+
未选中的候选只保留在 `ask_human` 问答历史,不保存到最终 `build-plan.json`。
|
|
141
155
|
|
|
142
156
|
## 直接选择与自定义输入
|
|
143
157
|
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
158
|
+
- 用户已明确主题色、导航结构和导航明暗,或要求严格继承可信品牌/模板时,AI 匹配一个有效基底并直接写入,`source=user_explicit | material_extracted`。
|
|
159
|
+
- 用户明确采用推荐方案或不再提问时,选择第一项,`source=ai_inferred`。
|
|
160
|
+
- 用户自由描述新方向时,先匹配核心视觉 DNA 最近且不违反硬约束的模板。能够匹配则记录原文为 `customText` 并写入项目覆盖项。
|
|
161
|
+
- 所有模板都不支持时,只问一次:采用最接近的可用基底,或返回三套方向重新选择。收到选择后继续规划。
|
|
148
162
|
|
|
149
163
|
## 运行时读取边界
|
|
150
164
|
|
|
151
|
-
- Step 2
|
|
165
|
+
- Step 2 只读取本规则和完整主题索引,不打开任何主题 Markdown。
|
|
152
166
|
- 候选阶段只提供方向名称、配色与体验说明。
|
|
153
|
-
-
|
|
154
|
-
-
|
|
167
|
+
- 用户选择后只保存选中方向和内部主题绑定。
|
|
168
|
+
- 规划时读取 CLI 返回的主题上下文;CLI 按 selectedTheme.themeId 读取完整模板生成文档。
|