create-yss-spec 3.3.8 → 3.4.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 +1 -1
- package/package.json +1 -1
- package/template/.agents/skills/.strategic-design-skills-manifest.json +3 -13
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
- package/template/.agents/skills/yss-design-system/SKILL.md +19 -19
- package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +13 -0
- package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +3 -1
- package/template/.agents/skills/yss-design-system/references/design-system.md +7 -9
- package/template/.agents/skills/yss-formily/SKILL.md +21 -258
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
- package/template/.agents/skills/yss-hook/SKILL.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +13 -5
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -0
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +43 -15
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +12 -8
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
- package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
- package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +61 -0
- package/template/.agents/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
- package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
- package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
- package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
- package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
- package/template/.agents/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
- package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
- package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
- package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.agents/skills/yss-ui/SKILL.md +3 -2
- package/template/.agents/skills/yss-ui/references/component-routing.md +11 -10
- package/template/.agents/skills/yss-ui/references/specialized-components.md +52 -0
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
- package/template/.codex/skills/yss-design-system/SKILL.md +19 -19
- package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +13 -0
- package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +3 -1
- package/template/.codex/skills/yss-design-system/references/design-system.md +7 -9
- package/template/.codex/skills/yss-formily/SKILL.md +21 -258
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
- package/template/.codex/skills/yss-hook/SKILL.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +13 -5
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -0
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +43 -15
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +12 -8
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
- package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
- package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +61 -0
- package/template/.codex/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
- package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
- package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
- package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
- package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
- package/template/.codex/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
- package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
- package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
- package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.codex/skills/yss-ui/SKILL.md +3 -2
- package/template/.codex/skills/yss-ui/references/component-routing.md +11 -10
- package/template/.codex/skills/yss-ui/references/specialized-components.md +52 -0
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
- package/template/.cursor/skills/yss-design-system/SKILL.md +19 -19
- package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +13 -0
- package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +3 -1
- package/template/.cursor/skills/yss-design-system/references/design-system.md +7 -9
- package/template/.cursor/skills/yss-formily/SKILL.md +21 -258
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
- package/template/.cursor/skills/yss-hook/SKILL.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +13 -5
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +43 -15
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +12 -8
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
- package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
- package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +61 -0
- package/template/.cursor/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
- package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
- package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
- package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
- package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
- package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ui/SKILL.md +3 -2
- package/template/.cursor/skills/yss-ui/references/component-routing.md +11 -10
- package/template/.cursor/skills/yss-ui/references/specialized-components.md +52 -0
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
- package/template/.pi/skills/yss-design-system/SKILL.md +19 -19
- package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +13 -0
- package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +3 -1
- package/template/.pi/skills/yss-design-system/references/design-system.md +7 -9
- package/template/.pi/skills/yss-formily/SKILL.md +21 -258
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
- package/template/.pi/skills/yss-hook/SKILL.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +13 -5
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -0
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +43 -15
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +12 -8
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
- package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
- package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +61 -0
- package/template/.pi/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
- package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
- package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
- package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
- package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
- package/template/.pi/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
- package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
- package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
- package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.pi/skills/yss-ui/SKILL.md +3 -2
- package/template/.pi/skills/yss-ui/references/component-routing.md +11 -10
- package/template/.pi/skills/yss-ui/references/specialized-components.md +52 -0
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/CONTEXT.md +1 -0
- package/template/DESIGN.md +31 -14
- package/template/__yss_dotfile__.gitignore +4 -0
- package/template/docs/agents/digital-human-roles.yaml +4 -4
- package/template/docs/agents/skill-migrations.md +15 -2
- package/template/docs/agents/yss-skill-registry.yaml +6 -40
- package/template/docs/design/README.md +4 -4
- package/template/docs/design/design-system-sync.yaml +2 -1
- package/template/docs/design/design.md +23 -31
- package/template/docs/design/preview-dark.html +3 -3
- package/template/docs/design/preview.css +1 -1
- package/template/docs/design/preview.html +2 -2
- package/template/docs/design/templates/interaction-spec-template.md +2 -2
- package/template/docs/design/templates/prototype-evidence-template.yaml +18 -22
- package/template/docs/design/templates/prototype-review-checklist.md +3 -1
- package/template/docs/design/templates/state-matrix-template.md +1 -1
- package/template/docs/design/templates/visual-baseline-template.yaml +3 -2
- package/template/docs/design/tokens/.design-md-projection.json +7 -7
- package/template/docs/design/tokens/theme.json +16 -10
- package/template/docs/design/tokens/tokens.compact.json +521 -237
- package/template/docs/design/tokens/tokens.dark.json +527 -240
- package/template/docs/design/tokens/tokens.default.json +513 -235
- package/template/docs/design/tokens/variables.css +67 -65
- package/template/docs/design/tokens/variables.dark.css +41 -41
- package/template/docs/process/delivery-preflight.md +1 -1
- package/template/docs/process/frontend-backend-delivery.md +2 -1
- package/template/docs/process/lifecycle-registry-baseline.json +1 -1
- package/template/docs/process/lifecycle-registry.yaml +5 -5
- package/template/docs/process/schemas/api-contract-decision.schema.json +74 -0
- package/template/docs/process/schemas/data-architecture-decision.schema.json +34 -0
- package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +80 -24
- package/template/docs/process/schemas/project-scaffold-contract.schema.json +85 -11
- package/template/docs/process/schemas/strategic-design-handoff.schema.json +296 -107
- package/template/docs/process/schemas/strategic-handoff-delivery-verification.schema.json +19 -0
- package/template/docs/process/schemas/strategic-handoff-delivery.schema.json +84 -0
- package/template/docs/process/schemas/strategic-handoff-import-receipt-v3.schema.json +42 -0
- package/template/docs/process/strategic-handoff-package.md +26 -9
- package/template/docs/user-guide//350/256/276/345/244/207/345/200/237/347/224/250/350/264/257/347/251/277/346/241/210/344/276/213.md +1 -1
- package/template/scripts/audit-legacy-backend-scaffold +29 -0
- package/template/scripts/lib/api-contract-decision.mjs +49 -0
- package/template/scripts/lib/api-contract-decision.test.mjs +69 -0
- package/template/scripts/lib/backend-scaffold-prerequisites.mjs +123 -0
- package/template/scripts/lib/legacy-backend-scaffold-audit.mjs +87 -0
- package/template/scripts/lib/legacy-backend-scaffold-audit.test.mjs +64 -0
- package/template/scripts/lib/lifecycle-transition.mjs +153 -5
- package/template/scripts/lib/openapi-draft-validation.mjs +111 -0
- package/template/scripts/lib/skill-registry.mjs +17 -3
- package/template/scripts/lib/skill-supply-chain.mjs +12 -1
- package/template/scripts/lib/strategic-feedback.mjs +2 -2
- package/template/scripts/lib/strategic-handoff-consumption.mjs +2 -2
- package/template/scripts/lib/strategic-handoff.mjs +77 -3
- package/template/scripts/strategic-handoff +6 -4
- package/template/scripts/verify-openapi-draft-validation-record +10 -129
- package/template/scripts/verify-strategic-context-import +12 -14
- package/template/skills-lock.json +22 -77
- package/template/yss-public-skills.json +0 -6
- package/template.snapshot.json +8 -4
- package/template/.agents/skills/yss-antd-design/SKILL.md +0 -35
- package/template/.agents/skills/yss-antd-design/references/boundaries.md +0 -30
- package/template/.agents/skills/yss-antd-design/references/cli-matrix.md +0 -38
- package/template/.agents/skills/yss-antd-design/references/evidence.md +0 -35
- package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
- package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
- package/template/.agents/skills/yss-antdv-next-design/SKILL.md +0 -48
- package/template/.agents/skills/yss-antdv-next-design/references/boundaries.md +0 -25
- package/template/.agents/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
- package/template/.agents/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
- package/template/.agents/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
- package/template/.agents/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
- package/template/.agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
- package/template/.agents/skills/yss-components/SKILL.md +0 -386
- package/template/.agents/skills/yss-components/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-components/references/frontend-docs.md +0 -9
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
- package/template/.agents/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
- package/template/.agents/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
- package/template/.agents/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
- package/template/.codex/skills/yss-antd-design/SKILL.md +0 -35
- package/template/.codex/skills/yss-antd-design/references/boundaries.md +0 -30
- package/template/.codex/skills/yss-antd-design/references/cli-matrix.md +0 -38
- package/template/.codex/skills/yss-antd-design/references/evidence.md +0 -35
- package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
- package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
- package/template/.codex/skills/yss-antdv-next-design/SKILL.md +0 -48
- package/template/.codex/skills/yss-antdv-next-design/references/boundaries.md +0 -25
- package/template/.codex/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
- package/template/.codex/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
- package/template/.codex/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
- package/template/.codex/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
- package/template/.codex/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
- package/template/.codex/skills/yss-components/SKILL.md +0 -386
- package/template/.codex/skills/yss-components/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-components/references/frontend-docs.md +0 -9
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
- package/template/.codex/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
- package/template/.codex/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
- package/template/.codex/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
- package/template/.cursor/skills/yss-antd-design/SKILL.md +0 -35
- package/template/.cursor/skills/yss-antd-design/references/boundaries.md +0 -30
- package/template/.cursor/skills/yss-antd-design/references/cli-matrix.md +0 -38
- package/template/.cursor/skills/yss-antd-design/references/evidence.md +0 -35
- package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
- package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
- package/template/.cursor/skills/yss-antdv-next-design/SKILL.md +0 -48
- package/template/.cursor/skills/yss-antdv-next-design/references/boundaries.md +0 -25
- package/template/.cursor/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
- package/template/.cursor/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
- package/template/.cursor/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
- package/template/.cursor/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
- package/template/.cursor/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
- package/template/.cursor/skills/yss-components/SKILL.md +0 -386
- package/template/.cursor/skills/yss-components/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-components/references/frontend-docs.md +0 -9
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
- package/template/.cursor/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
- package/template/.cursor/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
- package/template/.cursor/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
- package/template/.pi/skills/yss-antd-design/SKILL.md +0 -35
- package/template/.pi/skills/yss-antd-design/references/boundaries.md +0 -30
- package/template/.pi/skills/yss-antd-design/references/cli-matrix.md +0 -38
- package/template/.pi/skills/yss-antd-design/references/evidence.md +0 -35
- package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
- package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
- package/template/.pi/skills/yss-antdv-next-design/SKILL.md +0 -48
- package/template/.pi/skills/yss-antdv-next-design/references/boundaries.md +0 -25
- package/template/.pi/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
- package/template/.pi/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
- package/template/.pi/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
- package/template/.pi/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
- package/template/.pi/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
- package/template/.pi/skills/yss-components/SKILL.md +0 -386
- package/template/.pi/skills/yss-components/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-components/references/frontend-docs.md +0 -9
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
- package/template/.pi/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
- package/template/.pi/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
- package/template/.pi/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs
CHANGED
|
@@ -7,6 +7,7 @@ import os from "node:os";
|
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import test from "node:test";
|
|
9
9
|
import { fileURLToPath } from "node:url";
|
|
10
|
+
import { attachDesignPrerequisites } from "../../../../scripts/fixtures/backend-scaffold/design-prerequisites.mjs";
|
|
10
11
|
|
|
11
12
|
const script = path.join(path.dirname(fileURLToPath(import.meta.url)), "generate_scaffold.mjs");
|
|
12
13
|
const digest = (value) => `sha256:${createHash("sha256").update(value).digest("hex")}`;
|
|
@@ -18,7 +19,7 @@ const capabilityModules = {
|
|
|
18
19
|
combined: { capabilities: ["external-integration", "feign-client"], modules: ["server", "service", "repository", "adapter", "client", "feign-client"] }
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator", schemaVersion =
|
|
22
|
+
async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator", schemaVersion = 4, dataImpact = "not-applicable", apiImpact = "not-applicable" } = {}) {
|
|
22
23
|
const root = await mkdtemp(path.join(os.tmpdir(), "yss-layered-mvc-"));
|
|
23
24
|
t.after(() => rm(root, { recursive: true, force: true }));
|
|
24
25
|
const output = path.join(root, "backend");
|
|
@@ -33,7 +34,7 @@ async function fixture(t, { profile = capabilityModules.basic, architectureProfi
|
|
|
33
34
|
schema_version: schemaVersion,
|
|
34
35
|
kind: "project-scaffold-contract",
|
|
35
36
|
delivery_role: "backend",
|
|
36
|
-
scaffold_kind: "backend-layered-mvc",
|
|
37
|
+
scaffold_kind: architectureProfile === "mvc-data-analysis-v1" ? "backend-mvc-data-analysis" : "backend-layered-mvc",
|
|
37
38
|
repository_scope: "external-repository",
|
|
38
39
|
init_git: false,
|
|
39
40
|
contract_id: "scaffold.demo-service.v1",
|
|
@@ -43,7 +44,7 @@ async function fixture(t, { profile = capabilityModules.basic, architectureProfi
|
|
|
43
44
|
compiler_draft_ref: "compiler://demo/1",
|
|
44
45
|
lifecycle_approval_ref: "approval://demo/1",
|
|
45
46
|
persisted_ref: "contract://demo/1",
|
|
46
|
-
current_version: 1,
|
|
47
|
+
current_version: schemaVersion === 4 ? true : 1,
|
|
47
48
|
implementation_repository: "external",
|
|
48
49
|
backend_repository: "external",
|
|
49
50
|
scaffold_status: "required",
|
|
@@ -65,10 +66,11 @@ async function fixture(t, { profile = capabilityModules.basic, architectureProfi
|
|
|
65
66
|
work_unit: { id: "scaffold.demo", behavior: "project-scaffold", primary_skill: skillId, supporting_skills: ["yss-implementation-contract-compiler"], tdd_mode: "controlled-generation", allowed_write_paths: ["."], expected_evidence: [".yss/scaffold-generation.json"], verification_commands: ["./mvnw validate", "./mvnw test", "./mvnw package"], controlled_generation: true },
|
|
66
67
|
generation_policy: { mode: "initialize-only", existing_target: "unsupported", old_project_migration: "unsupported", template_upgrade: "unsupported" }
|
|
67
68
|
};
|
|
69
|
+
const design = attachDesignPrerequisites(root, contract, { dataImpact, apiImpact });
|
|
68
70
|
const contractFile = path.join(root, "contract.json");
|
|
69
71
|
await writeFile(contractFile, `${JSON.stringify(contract, null, 2)}\n`);
|
|
70
72
|
const args = ["--project-name", "demo-service", "--base-package", "com.yss.demo", "--output-dir", output, "--contract-file", contractFile, "--contract-id", contract.contract_id, "--contract-version", "1", "--approval-ref", contract.lifecycle_approval_ref, "--compiler-draft-ref", contract.compiler_draft_ref, "--persisted-ref", contract.persisted_ref, "--group-id", "com.yss.demo", "--project-version", "1.0.0-SNAPSHOT", "--parent-group-id", "com.yss.cloud", "--parent-artifact-id", "yss-cloud-microservice", "--parent-version", "2.0.0-SNAPSHOT", "--yss-components-version", "2.0.0-SNAPSHOT"];
|
|
71
|
-
return { root, output, decisionFile, contractFile, contract, args, project: path.join(output, "demo-service") };
|
|
73
|
+
return { root, output, decisionFile, contractFile, contract, design, args, project: path.join(output, "demo-service") };
|
|
72
74
|
}
|
|
73
75
|
|
|
74
76
|
test("数据分析初始化生成 H2 六模块和独立治理信封", async (t) => {
|
|
@@ -102,14 +104,100 @@ test("旧数据库和 Mock 参数在写入前被拒绝", async (t) => {
|
|
|
102
104
|
}
|
|
103
105
|
});
|
|
104
106
|
|
|
105
|
-
test("统一 Project Scaffold Contract v4 可生成 Layered MVC
|
|
106
|
-
const data = await fixture(t
|
|
107
|
-
data.contract.current_version = true;
|
|
108
|
-
await writeFile(data.contractFile, JSON.stringify(data.contract));
|
|
107
|
+
test("统一 Project Scaffold Contract v4 可生成 Layered MVC 后端并保留设计门禁", async (t) => {
|
|
108
|
+
const data = await fixture(t);
|
|
109
109
|
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
110
110
|
assert.equal(result.status, 0, result.stderr);
|
|
111
111
|
const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
|
|
112
112
|
assert.equal(manifest.schema_version, 4);
|
|
113
|
+
assert.equal(manifest.design_prerequisites.data_architecture_decision.impact, "not-applicable");
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test("数据影响为 required 时绑定数据架构后可生成 Layered MVC 后端", async (t) => {
|
|
117
|
+
const data = await fixture(t, { dataImpact: "required" });
|
|
118
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
119
|
+
assert.equal(result.status, 0, result.stderr);
|
|
120
|
+
const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
|
|
121
|
+
assert.equal(manifest.design_prerequisites.data_architecture_decision.impact, "required");
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
test("API 影响为 required 时绑定同字节 Draft、Validation、Review 和 Freeze 后可生成 Layered MVC 后端", async (t) => {
|
|
125
|
+
const data = await fixture(t, { apiImpact: "required" });
|
|
126
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
127
|
+
assert.equal(result.status, 0, result.stderr);
|
|
128
|
+
const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
|
|
129
|
+
assert.equal(manifest.design_prerequisites.api_contract_decision.impact, "required");
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
test("缺少设计门禁时在写文件前拒绝 Layered MVC 新生成", async (t) => {
|
|
133
|
+
const data = await fixture(t);
|
|
134
|
+
delete data.contract.design_prerequisites;
|
|
135
|
+
await writeFile(data.contractFile, JSON.stringify(data.contract));
|
|
136
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
137
|
+
assert.notEqual(result.status, 0);
|
|
138
|
+
assert.match(result.stderr, /design_prerequisites|Technical Design/);
|
|
139
|
+
await assert.rejects(stat(data.project), { code: "ENOENT" });
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
test("技术和数据设计齐全但缺少 API Decision 时在写文件前拒绝 Layered MVC 新生成", async (t) => {
|
|
143
|
+
const data = await fixture(t);
|
|
144
|
+
delete data.contract.design_prerequisites.api_contract_decision;
|
|
145
|
+
await writeFile(data.contractFile, JSON.stringify(data.contract));
|
|
146
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
147
|
+
assert.notEqual(result.status, 0);
|
|
148
|
+
assert.match(result.stderr, /API Contract Decision|api_contract_decision/);
|
|
149
|
+
await assert.rejects(stat(data.project), { code: "ENOENT" });
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
test("API Draft、Validation、Review 或工程批准异常时均在零写入状态阻断 Layered MVC", async (t) => {
|
|
153
|
+
const mutations = [
|
|
154
|
+
async (data) => writeFile(data.design.openapi.file, "\n# drift\n", { flag: "a" }),
|
|
155
|
+
async (data) => {
|
|
156
|
+
const decision = JSON.parse(await readFile(data.design.api.file, "utf8"));
|
|
157
|
+
const file = path.join(data.root, decision.validation_record.ref);
|
|
158
|
+
const record = JSON.parse(await readFile(file, "utf8"));
|
|
159
|
+
record.status = "blocked";
|
|
160
|
+
record.toolchain.exit_code = 1;
|
|
161
|
+
record.checks.lint = "blocked";
|
|
162
|
+
await writeFile(file, `${JSON.stringify(record, null, 2)}\n`);
|
|
163
|
+
decision.validation_record.digest = digest(await readFile(file));
|
|
164
|
+
await writeFile(data.design.api.file, `${JSON.stringify(decision, null, 2)}\n`);
|
|
165
|
+
data.contract.design_prerequisites.api_contract_decision.digest = digest(await readFile(data.design.api.file));
|
|
166
|
+
await writeFile(data.contractFile, `${JSON.stringify(data.contract, null, 2)}\n`);
|
|
167
|
+
},
|
|
168
|
+
async (data) => {
|
|
169
|
+
const decision = JSON.parse(await readFile(data.design.api.file, "utf8"));
|
|
170
|
+
const file = path.join(data.root, decision.draft_review.ref);
|
|
171
|
+
const review = JSON.parse(await readFile(file, "utf8"));
|
|
172
|
+
review.result = "blocked";
|
|
173
|
+
review.blocking_findings = ["breaking response"];
|
|
174
|
+
await writeFile(file, `${JSON.stringify(review, null, 2)}\n`);
|
|
175
|
+
decision.draft_review.digest = digest(await readFile(file));
|
|
176
|
+
await writeFile(data.design.api.file, `${JSON.stringify(decision, null, 2)}\n`);
|
|
177
|
+
data.contract.design_prerequisites.api_contract_decision.digest = digest(await readFile(data.design.api.file));
|
|
178
|
+
await writeFile(data.contractFile, `${JSON.stringify(data.contract, null, 2)}\n`);
|
|
179
|
+
},
|
|
180
|
+
async (data) => {
|
|
181
|
+
const approval = JSON.parse(await readFile(data.design.approval.file, "utf8"));
|
|
182
|
+
approval.subject_ref = "approval://self-asserted";
|
|
183
|
+
await writeFile(data.design.approval.file, `${JSON.stringify(approval, null, 2)}\n`);
|
|
184
|
+
},
|
|
185
|
+
];
|
|
186
|
+
for (const mutate of mutations) {
|
|
187
|
+
const data = await fixture(t, { apiImpact: "required" });
|
|
188
|
+
await mutate(data);
|
|
189
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
190
|
+
assert.notEqual(result.status, 0, result.stderr);
|
|
191
|
+
await assert.rejects(stat(data.project), { code: "ENOENT" });
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
test("schema v3 只读兼容但禁止用于 Layered MVC 新生成", async (t) => {
|
|
196
|
+
const data = await fixture(t, { schemaVersion: 3 });
|
|
197
|
+
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
198
|
+
assert.notEqual(result.status, 0);
|
|
199
|
+
assert.match(result.stderr, /Project Scaffold Contract v4|新生成/);
|
|
200
|
+
await assert.rejects(stat(data.project), { code: "ENOENT" });
|
|
113
201
|
});
|
|
114
202
|
|
|
115
203
|
test("可选离线 Maven 可行性检查(不替代受控仓库验收)", { skip: process.env.YSS_BACKEND_OFFLINE_PROBE !== "1" }, async (t) => {
|
|
@@ -129,7 +217,7 @@ for (const database of ["h2"]) {
|
|
|
129
217
|
const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
|
|
130
218
|
assert.equal(result.status, 0, result.stderr);
|
|
131
219
|
const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
|
|
132
|
-
assert.equal(manifest.schema_version,
|
|
220
|
+
assert.equal(manifest.schema_version, 4);
|
|
133
221
|
assert.equal(manifest.architecture_family, "layered-mvc");
|
|
134
222
|
assert.equal(manifest.profiles.verification_database, database);
|
|
135
223
|
assert.equal(manifest.profiles.production_database, "not-bound");
|
|
@@ -5,11 +5,11 @@ description: 在生命周期批准的初始化合同下创建独立 Git 管理
|
|
|
5
5
|
|
|
6
6
|
# 数据分析 MVC 项目初始化
|
|
7
7
|
|
|
8
|
-
这是 `work-unit.service-project-initialization` 的执行器,不是通用 MVC 脚手架。通用 MVC 使用 `yss-layered-mvc-scaffold-generator`;DDD 使用 `yss-ddd-scaffold-generator
|
|
8
|
+
这是 `work-unit.service-project-initialization` 的执行器,不是通用 MVC 脚手架。通用 MVC 使用 `yss-layered-mvc-scaffold-generator`;DDD 使用 `yss-ddd-scaffold-generator`。历史数据分析初始化入口不提供自动别名,迁移关系只在 `docs/agents/skill-migrations.md` 记录。
|
|
9
9
|
|
|
10
10
|
## 执行合同
|
|
11
11
|
|
|
12
|
-
- 必须有生命周期批准且当前的 schema
|
|
12
|
+
- 必须有生命周期批准且当前的 schema v4 scaffold contract,绑定 `architecture_profile=mvc-data-analysis-v1`、本生成器、已批准的架构决策、Technical Design、Data Architecture Decision v1 和真实工程合同批准记录。
|
|
13
13
|
- 固定 server/core/client/repository/adapter/feign-client;core 是薄应用层,规则见 `docs/agents/backend-architecture-profiles.md`。不生成业务接口、SQL、DDL、Mock、生产数据库配置或额外数据源。
|
|
14
14
|
- `verification_database=h2` / `production_database=not-bound`;Java 8 / Boot 2.7 / javax。目标不存在,禁止覆盖、迁移、自动提交和推送。
|
|
15
15
|
- 合同必须包含 `context_handoff_ref`、`context_handoff_digest`:批准交接的完整根 CONTEXT.md(含 schema frontmatter),不得用跨仓路径替代本仓词汇表。初始化只复制已确认内容,不创造业务术语;父项目只保留服务引用和 handoff 证据。
|
package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs
CHANGED
|
@@ -71,7 +71,7 @@ export async function initialize(options) {
|
|
|
71
71
|
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
72
72
|
try {
|
|
73
73
|
const options = parseArgs(process.argv.slice(2));
|
|
74
|
-
if (options.help) process.stdout.write("
|
|
74
|
+
if (options.help) process.stdout.write("使用批准且绑定技术/数据设计的 MVC schema v4 合同与 Maven 坐标参数;输出独立数据分析项目,无数据库/Mock 选项。\n");
|
|
75
75
|
else await initialize(options);
|
|
76
76
|
} catch (error) { process.stderr.write(`数据分析项目初始化失败: ${error.message}\n`); process.exitCode = 1; }
|
|
77
77
|
}
|
|
@@ -32,6 +32,7 @@ YSS DTO 的可复用 HTTP/JSON 映射由 `.agents/skills/yss-dto/references/open
|
|
|
32
32
|
- 在 `docs/.scratch/<feature>/api/<feature>-validation.yaml` 持久化结构校验记录,并用 `scripts/verify-openapi-draft-validation-record` 复核当前 YAML SHA-256、锁定的 Redocly 版本、实际命令、退出码、执行时间和证据引用。
|
|
33
33
|
- 在 OpenAPI Freeze 后,用锁定的 Redocly CLI 将 YAML bundle 为 JSON,并记录可重现证据。
|
|
34
34
|
- 维护治理记录、Freeze 记录和 JSON 派生记录。
|
|
35
|
+
- 在技术分析中生成 `api-contract-decision-v1`:有 API 影响时以原始字节摘要闭包绑定权威 YAML、Validation、独立 Draft Review 和 Freeze;无 API 影响时绑定影响评估、明确原因和至少一项可读证据,且不得生成空占位资产。
|
|
35
36
|
- Spec Delta 影响存在时,在 `docs/.scratch/<feature>/spec-delta/` 记录与冻结 YAML 的关系;没有影响时明确记录 `not-applicable`。
|
|
36
37
|
|
|
37
38
|
不使用本 skill 来替代:
|
|
@@ -80,6 +81,7 @@ pnpm exec redocly bundle \
|
|
|
80
81
|
- 将通过 verifier 且 SHA-256 与当前 YAML 一致的 validation record 交给 `yss-openapi-draft-review`。缺锁定 lint 时可以先做语义预审,但独立 Review 总结果必须为 `Blocked`;不能用“Freeze 前补 lint”支持 `Approved`。
|
|
81
82
|
- YAML、validation record 或 lint ruleset 变化后,旧结构证据与旧 Review 立即失效,必须重新校验和审查。阻断项未关闭前,YAML 仍是 review-only Draft,不得生成生产客户端。
|
|
82
83
|
- Freeze 记录必须引用 YAML 路径、Git ref(如适用)和 YAML SHA-256。冻结后 API 行为变更必须先回到 YAML Draft 与审查。
|
|
84
|
+
- 将同一 YAML 的版本与摘要、validation record、独立 Review 和 Freeze 写入 API Contract Decision v1。`gate.engineering-contract-approved` 一次批准同时绑定 Technical Design、Data Architecture Decision、API Contract Decision;API `required` 时还必须直接绑定冻结 YAML。不得另造字符串 URI 或仅凭 `status: approved` 关闭门禁。
|
|
83
85
|
|
|
84
86
|
4. **从冻结 YAML 派生 JSON**
|
|
85
87
|
- 使用上面的锁定 `redocly bundle` 命令生成 `docs/.scratch/<feature>/api/<feature>.json`,JSON 不纳入人工编辑面。
|
|
@@ -28,7 +28,7 @@ service_project_initialization:
|
|
|
28
28
|
skill: yss-mvc-data-analysis-project-initializer
|
|
29
29
|
architecture_profile: mvc-data-analysis-v1
|
|
30
30
|
context_inputs: [context_handoff_ref, context_handoff_digest]
|
|
31
|
-
approval: current-schema-
|
|
31
|
+
approval: current-schema-v4-scaffold-contract-with-approved-technical-and-data-design
|
|
32
32
|
parent_ownership: service-references-and-handoff-only
|
|
33
33
|
child_ownership: independent-git-project-instance-root-context-and-lifecycle
|
|
34
34
|
supported_state_schema_versions: [1]
|
|
@@ -299,7 +299,7 @@ skill_source_contract:
|
|
|
299
299
|
lock_version: 3
|
|
300
300
|
source_revisions_required: [mattpocock/skills, iloveZzz/yss-ui]
|
|
301
301
|
adaptation_ref_required_when_effective_diff: true
|
|
302
|
-
retired_shared_skills: [ask-matt, batch-grill-me, dispatching-parallel-agents, loop-me, migrate-to-shoehorn, product-design-prototype, prototype-page-acceptance, scaffold-exercises, setup-pre-commit, setup-ts-deep-modules, teach, writing-beats, writing-fragments, writing-shape, yss-dictionary, yss-jdbc, yss-log, yss-microapp-commit, yss-page-module-development, yss-taskflow, yss-backend-scaffold-application, yss-backend-scaffold-domain, yss-backend-scaffold-infrastructure, yss-backend-scaffold-web]
|
|
302
|
+
retired_shared_skills: [yss-antd-design, yss-antdv-next-design, ask-matt, batch-grill-me, dispatching-parallel-agents, loop-me, migrate-to-shoehorn, product-design-prototype, prototype-page-acceptance, scaffold-exercises, setup-pre-commit, setup-ts-deep-modules, teach, writing-beats, writing-fragments, writing-shape, yss-components, yss-dictionary, yss-jdbc, yss-log, yss-microapp-commit, yss-mvc-scaffold-generator, yss-page-module-development, yss-taskflow, yss-backend-scaffold-application, yss-backend-scaffold-domain, yss-backend-scaffold-infrastructure, yss-backend-scaffold-web, yss-backend-scaffold-adapter, yss-application-layer-reference, yss-domain-layer-reference, yss-infrastructure-layer-reference, yss-web-layer-reference]
|
|
303
303
|
|
|
304
304
|
# 生命周期默认走原生工作单元;Matt user-invoked skill 仅保留为兼容入口。
|
|
305
305
|
lifecycle_native_entries:
|
|
@@ -357,8 +357,8 @@ work_unit_routes:
|
|
|
357
357
|
work-unit.prototype-design:
|
|
358
358
|
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
359
359
|
primary_skill: yss-prototype-stage
|
|
360
|
-
supporting_skills: [prototype-review, yss-design-system, product-design:index
|
|
361
|
-
skills: [prototype-review, yss-design-system, yss-prototype-stage, product-design:index
|
|
360
|
+
supporting_skills: [prototype-review, yss-design-system, product-design:index]
|
|
361
|
+
skills: [prototype-review, yss-design-system, yss-prototype-stage, product-design:index]
|
|
362
362
|
execution_order: [yss-design-system, low-fidelity-assets, prototype-review, prototype-profile-routing, profile-adapter-build, browser-design-qa-accessibility, user-confirmation]
|
|
363
363
|
profile_routing_ref: .agents/skills/yss-prototype-stage/references/prototype-profile-routing.md
|
|
364
364
|
prototype_adapter_ref: .agents/skills/yss-prototype-stage/references/product-design-adapter.md
|
|
@@ -370,7 +370,7 @@ work_unit_routes:
|
|
|
370
370
|
H1: {kind: visual-review, adapter: static-html, node_runtime_required: false, antd_facts: not-applicable}
|
|
371
371
|
H2: {kind: flow-review, adapter: runnable-flow, react_antd: supported-not-required, antd_facts: conditional}
|
|
372
372
|
implementation_handoff: {production_component_assumptions: required-array, verification_targets: frontend-implementation-only}
|
|
373
|
-
version_boundary: {h2_design_standard:
|
|
373
|
+
version_boundary: {h2_design_standard: html-css-js-offline, prototype_must_not_call: yss-ui, production_version_source: implementation-lockfile}
|
|
374
374
|
human_gate: gate.product-design-approved
|
|
375
375
|
applies_when: product_design_impact
|
|
376
376
|
not_applicable_reason: no_ui_or_product_design_impact
|
|
@@ -380,7 +380,8 @@ work_unit_routes:
|
|
|
380
380
|
supporting_skills: [yss-openapi-governance, yss-openapi-draft-review, codebase-design, implementation-repo-onboarding, yss-implementation-contract-compiler]
|
|
381
381
|
skills: [yss-technical-design, yss-openapi-governance, yss-openapi-draft-review, codebase-design, implementation-repo-onboarding, yss-implementation-contract-compiler]
|
|
382
382
|
technical_design:
|
|
383
|
-
applies_when:
|
|
383
|
+
applies_when: backend_delivery_impact
|
|
384
|
+
new_backend_repository: required
|
|
384
385
|
architecture_source: confirmed-project-architecture-before-branch-design
|
|
385
386
|
branches:
|
|
386
387
|
domain-driven: yss-tactical-design
|
|
@@ -393,6 +394,25 @@ work_unit_routes:
|
|
|
393
394
|
statuses: [draft, ready-for-human, approved, blocked, stale, drift, new_impacts, not-applicable]
|
|
394
395
|
approved_by: yss-product-lifecycle
|
|
395
396
|
forbidden: [self-approval, ready-for-agent, production-code-generation]
|
|
397
|
+
data_architecture_decision:
|
|
398
|
+
schema_version: 1
|
|
399
|
+
applies_when: backend_delivery_impact
|
|
400
|
+
impact_modes: [required, not-applicable]
|
|
401
|
+
required: [impact_assessment_ref, impact_assessment_digest, evidence_refs]
|
|
402
|
+
required_when_data_impact: [data_architecture_ref, data_architecture_digest, review_evidence_refs]
|
|
403
|
+
not_applicable_requires: [explicit_reason, evidence_refs]
|
|
404
|
+
empty_data_architecture_document: forbidden
|
|
405
|
+
api_contract_decision:
|
|
406
|
+
schema_version: 1
|
|
407
|
+
impact_modes: [required, not-applicable]
|
|
408
|
+
required: [impact_assessment_ref, impact_assessment_digest, evidence_refs]
|
|
409
|
+
required_when_api_impact: [openapi_ref, openapi_version, openapi_digest, validation_record_ref, validation_record_digest, draft_review_ref, draft_review_digest, freeze_version, freeze_time]
|
|
410
|
+
same_draft_bytes_required_across: [openapi, validation, draft-review, freeze, engineering-approval]
|
|
411
|
+
validation_requires: [openapi-3.1, locked-redocly, exit-code-zero, all-checks-passed]
|
|
412
|
+
review_requires: [approved, no-blocking-findings, independent-review-evidence]
|
|
413
|
+
not_applicable_requires: [explicit_reason, evidence_refs]
|
|
414
|
+
placeholder_assets: forbidden
|
|
415
|
+
atomic_approval_gate: gate.engineering-contract-approved
|
|
396
416
|
human_gate: gate.engineering-contract-approved
|
|
397
417
|
applies_when: technical_or_contract_impact
|
|
398
418
|
not_applicable_reason: no_technical_or_contract_impact
|
|
@@ -406,6 +426,8 @@ work_unit_routes:
|
|
|
406
426
|
decision_boundary: scaffold-choice
|
|
407
427
|
completion_states: [existing-and-onboarded, initialized-and-verified, not-applicable]
|
|
408
428
|
automatic_check: check.implementation-repositories-ready
|
|
429
|
+
result_schema_version: 2
|
|
430
|
+
backend_design_prerequisites_required: [technical_design, data_architecture_decision, api_contract_decision, engineering_contract_approval_ref]
|
|
409
431
|
must_complete_before: work-unit.ticket-decomposition
|
|
410
432
|
work-unit.ticket-decomposition:
|
|
411
433
|
native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
|
|
@@ -428,7 +450,7 @@ work_unit_routes:
|
|
|
428
450
|
page_orchestration_skill: yss-ui-business-page-generation
|
|
429
451
|
conditional_skills:
|
|
430
452
|
api_impact: [yss-api-integration]
|
|
431
|
-
formily_impact: [yss-formily
|
|
453
|
+
formily_impact: [yss-formily]
|
|
432
454
|
table_impact: [ytable-usage, yedit-table-usage]
|
|
433
455
|
tree_impact: [ytree-usage]
|
|
434
456
|
height_impact: [yss-use-table-height, yss-use-tree-height]
|
|
@@ -565,10 +587,13 @@ implementation_repository_preparation:
|
|
|
565
587
|
remote_repository_creation: explicit-authorization-only
|
|
566
588
|
approved_project_scaffold_contract_required: true
|
|
567
589
|
frontend_contract_minimum_schema_version: 4
|
|
568
|
-
|
|
590
|
+
backend_new_generation_schema_version: 4
|
|
591
|
+
backend_historical_read_only_schema_versions: [3]
|
|
569
592
|
target_policy: nonexistent-or-empty
|
|
570
593
|
force_overwrite: forbidden
|
|
571
|
-
completion_requires: [scaffold_manifest_ref, scaffold_verification]
|
|
594
|
+
completion_requires: [scaffold_manifest_ref, scaffold_verification, technical_design, data_architecture_decision, api_contract_decision, engineering_contract_approval_ref]
|
|
595
|
+
legacy_v3_requires: [legacy_reconciliation, unchanged_mechanical_ownership, completed_technical_data_api_prerequisites, recovery_approval]
|
|
596
|
+
premature_implementation: blocked-preserve-files
|
|
572
597
|
aggregate_result:
|
|
573
598
|
required: [result, current_version, projects, evidence_refs]
|
|
574
599
|
result: completed
|
|
@@ -591,12 +616,14 @@ transition_graph:
|
|
|
591
616
|
work-unit.plan-requirements: [work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis]
|
|
592
617
|
work-unit.domain-strategy-design: [work-unit.stage-decision, work-unit.spec-synthesis]
|
|
593
618
|
work-unit.stage-decision: [work-unit.spec-synthesis]
|
|
594
|
-
work-unit.spec-synthesis: [work-unit.prototype-design, work-unit.technical-analysis
|
|
595
|
-
work-unit.prototype-design: [work-unit.technical-analysis
|
|
619
|
+
work-unit.spec-synthesis: [work-unit.prototype-design, work-unit.technical-analysis]
|
|
620
|
+
work-unit.prototype-design: [work-unit.technical-analysis]
|
|
596
621
|
work-unit.technical-analysis: [work-unit.implementation-repository-preparation]
|
|
597
622
|
work-unit.implementation-repository-preparation: [work-unit.ticket-decomposition]
|
|
598
623
|
work-unit.ticket-decomposition: [work-unit.slice-implementation]
|
|
599
624
|
forbidden_shortcuts:
|
|
625
|
+
- {from: work-unit.spec-synthesis, to: work-unit.implementation-repository-preparation}
|
|
626
|
+
- {from: work-unit.prototype-design, to: work-unit.implementation-repository-preparation}
|
|
600
627
|
- {from: work-unit.spec-synthesis, to: work-unit.slice-implementation}
|
|
601
628
|
- {from: work-unit.prototype-design, to: work-unit.slice-implementation}
|
|
602
629
|
- {from: work-unit.technical-analysis, to: work-unit.slice-implementation}
|
|
@@ -789,7 +816,7 @@ backend_scaffold:
|
|
|
789
816
|
scaffold_statuses: [existing, required, initialized]
|
|
790
817
|
required_status: required
|
|
791
818
|
sequence:
|
|
792
|
-
after: [prototype_review, prototype_verification,
|
|
819
|
+
after: [prototype_review, prototype_verification, offline_html_verification, browser_verification, prototype_confirmation, engineering_baseline]
|
|
793
820
|
before_generator: [scaffold-architecture-decision-user-confirmed, scaffold-architecture-decision-lifecycle-approved, yss-implementation-contract-compiler-scaffold-contract, lifecycle-approve-scaffold-contract]
|
|
794
821
|
before: [business_code_generation, implement]
|
|
795
822
|
generator_routes:
|
|
@@ -830,10 +857,11 @@ backend_scaffold:
|
|
|
830
857
|
unsupported_inputs:
|
|
831
858
|
schema_v1: reject-no-auto-upgrade
|
|
832
859
|
schema_v2_new_generation: reject-no-auto-upgrade
|
|
860
|
+
schema_v3_new_generation: reject-historical-read-only
|
|
833
861
|
slice_id: forbidden-as-scaffold-identity
|
|
834
862
|
existing_project: reject-no-scaffold-migration
|
|
835
|
-
required_inputs: [implementation_repository, backend_repository, scaffold_status, scaffold_target_confirmed, scaffold_request_id, target_output_dir, project_name, base_package, architecture_family, generator_skill, decision_ref, decision_id, decision_digest, maven_group_id, project_version, parent_group_id, parent_artifact_id, parent_version, yss_components_version, architecture_profile, persistence_profile, verification_database, production_database, platform_profile, validation_namespace, dto_placement, repository_profile, requested_capabilities, resolved_modules, resolution_version, scaffold_contract_file, scaffold_contract_draft, scaffold_contract_id, scaffold_contract_version, scaffold_contract_status, scaffold_contract_approved, scaffold_contract_compiler_draft_ref, scaffold_contract_lifecycle_approval_ref, scaffold_contract_persisted, scaffold_contract_persisted_ref, scaffold_contract_current_version]
|
|
836
|
-
required_evidence: [scaffold_architecture_decision, user_confirmation_ref, decision_digest, generator_inputs, expected_files,
|
|
863
|
+
required_inputs: [implementation_repository, backend_repository, scaffold_status, scaffold_target_confirmed, scaffold_request_id, target_output_dir, project_name, base_package, architecture_family, generator_skill, decision_ref, decision_id, decision_digest, technical_design_ref, technical_design_version, technical_design_digest, data_architecture_decision_ref, data_architecture_decision_version, data_architecture_decision_digest, engineering_contract_approval_ref, maven_group_id, project_version, parent_group_id, parent_artifact_id, parent_version, yss_components_version, architecture_profile, persistence_profile, verification_database, production_database, platform_profile, validation_namespace, dto_placement, repository_profile, requested_capabilities, resolved_modules, resolution_version, scaffold_contract_file, scaffold_contract_draft, scaffold_contract_id, scaffold_contract_version, scaffold_contract_status, scaffold_contract_approved, scaffold_contract_compiler_draft_ref, scaffold_contract_lifecycle_approval_ref, scaffold_contract_persisted, scaffold_contract_persisted_ref, scaffold_contract_current_version]
|
|
864
|
+
required_evidence: [scaffold_architecture_decision, user_confirmation_ref, decision_digest, technical_design, data_architecture_decision, engineering_contract_approval, generator_inputs, expected_files, scaffold_generation_manifest_v4, generated_project_structure, generation_execution_result, verification_execution_result, architecture_rules, ./mvnw_validate, ./mvnw_test, ./mvnw_package, yss_skill_execution_result]
|
|
837
865
|
generation_options:
|
|
838
866
|
with_example: false
|
|
839
867
|
force: forbidden-by-default
|
|
@@ -1111,7 +1139,7 @@ prototype_modes:
|
|
|
1111
1139
|
replaces_yss_high_fidelity: false
|
|
1112
1140
|
yss_high_fidelity:
|
|
1113
1141
|
asset: ant_design_v6_html
|
|
1114
|
-
required: [prototype_mode, prototype_review,
|
|
1142
|
+
required: [prototype_mode, prototype_review, offline_html_verification, browser_verification, prototype_evidence, user_confirmation]
|
|
1115
1143
|
purpose: product_design_review
|
|
1116
1144
|
replaces_matt_logic: false
|
|
1117
1145
|
|
|
@@ -43,9 +43,9 @@ Matt phase boundary 是工作阶段之间的上下文决策,不是新的生命
|
|
|
43
43
|
|
|
44
44
|
`prototype_confirmation` 通过后,先判断实现仓库登记中的 backend `scaffold_status`。当状态为 `required` 时,在工程基线中先完成脚手架架构选择:Agent 按领域复杂度给出 `domain-driven` / `layered-mvc` 推荐和依据,本体选择作为子项目预填默认值,用户通过批量表确认全部项目或逐项覆盖。选择写入 `scaffold-architecture-decisions.yaml`;处于 `undecided`、`recommended`、`awaiting-user-decision` 或 `stale` 时必须阻断,不得默认 DDD,也不得在生成器内交互。
|
|
45
45
|
|
|
46
|
-
选择达到 `lifecycle-approved` 且 digest
|
|
46
|
+
选择达到 `lifecycle-approved` 且 digest 当前后,先完成批准且当前的 Technical Design、Data Architecture Decision v1 和 API Contract Decision v1。数据与 API 均按影响强制:命中则绑定设计及评审闭包,未命中则绑定评估、明确原因和证据。再由 `yss-implementation-contract-compiler` 编译脚手架 schema v4 `controlled-generation` 工作单元合同。顺序为:工程基线与架构推荐 → 用户确认与选择持久化 → 技术/数据/API 设计 → 工程合同原子批准 → 脚手架合同持久化 → `domain-driven` 使用 `yss-ddd-scaffold-generator` 或 `layered-mvc` 使用 `yss-layered-mvc-scaffold-generator` → 对应基线/Manifest v4 校验 → 仓库准备 v2 → 实现合同编译器业务合同重编译。`existing` / `initialized` 不重复生成;架构转换必须单独立项。schema v3 只允许历史 Manifest 的只读恢复审计,不得新生成。
|
|
47
47
|
|
|
48
|
-
脚手架工作单元必须使用结构化 schema
|
|
48
|
+
脚手架工作单元必须使用结构化 schema v4 合同 JSON,除工程身份、架构决定、Profile、模块闭包、允许路径和验证命令外,必须以原始字节 digest 绑定 Technical Design、Data Architecture Decision v1、API Contract Decision v1 和 `gate.engineering-contract-approved` 的真实批准记录。API `required` 时 Draft、Validation、独立 Review、Freeze 与工程批准必须绑定同一 OpenAPI YAML 字节;`not-applicable` 时不得携带空占位资产。生成器在创建输出目录前读取并校验所有引用、版本、主体、gate、批准范围、资产绑定与摘要;虚构 URI、字符串自证或仅有 `status: approved` 均无效。三条 Wrapper 命令必须由受控工作单元真实执行并留存证据。非空目标、`--force`、旧项目迁移和模板升级均阻断。脚手架不得生成 Controller、Repository 实现、SQL、领域行为、业务规则、状态机、权限、事务、复杂查询、错误映射、用户可见行为或示例业务 API;`empty-scaffold-verified` 仍不是 `ready-for-agent`。
|
|
49
49
|
|
|
50
50
|
脚手架完成后,所有后续生成的后端代码仍必须重新消费当前版本的批准 Slice Implementation Contract、YSS skill 依赖闭包、允许写路径、预期证据和 Execution Result。业务行为使用 `behavior-tdd`;只有机械结构、样板、配置和冻结客户端使用 `controlled-generation`。缺少合同、skill、证据或实际验证时立即阻断;生成范围从机械内容变成业务行为时触发完整重路由。
|
|
51
51
|
|
|
@@ -54,7 +54,7 @@ AND Slice Implementation Contract 的 `ticket_ref` 与 `vertical_slice_ticket_re
|
|
|
54
54
|
AND 当前工作单元消费的 contract_id/version 与最新批准版本一致
|
|
55
55
|
AND Backend Slice Implementation Contract(后端适用)和 Build Architecture Checklist 已完成
|
|
56
56
|
AND backend 影响且 scaffold_status=required 时,脚手架架构选择已由用户确认并达到 lifecycle-approved、兼容 schema v3 或统一 schema v4 合同与 Manifest 当前、对应 DDD / Layered MVC 基线、Wrapper 验证和 实现合同编译器重编译均已完成
|
|
57
|
-
AND frontend 影响且无已有工程时,统一 schema v4 Project Scaffold Contract 已批准、持久化且当前,模板 commit 已锁定,`pnpm install --frozen-lockfile` 与工程基线要求的 lint/type-check/build 已实际通过
|
|
57
|
+
AND frontend 影响且无已有工程时,统一 schema v4 Project Scaffold Contract 已批准、持久化且当前,模板 bundled manifest 摘要或 Git commit 已锁定,`pnpm install --frozen-lockfile` 与工程基线要求的 lint/type-check/build 已实际通过
|
|
58
58
|
AND 所有后续生成代码均绑定主 YSS skill、依赖闭包、允许写路径、预期证据和 YSS Skill Execution Result
|
|
59
59
|
AND UI 影响切片的前端实现还原计划已通过 schema 校验、`template=false`、`status=approved`,且基线引用可读取
|
|
60
60
|
```
|
|
@@ -19,30 +19,30 @@ description: Use when a YSS feature has product-design impact on a primary flow,
|
|
|
19
19
|
- 先读取 Spec、产品总体设计、`CONTEXT.md`、`yss-design-system`,再按 `DESIGN.md` → `docs/design/design.md` → `docs/design/tokens/*` 顺序消费设计基线,形成交互说明、低保真页面/流程和状态矩阵。
|
|
20
20
|
- 用独立 `prototype-review` 评审低保真与状态;未通过不得选择档位或构建原型交付物。
|
|
21
21
|
- 按 [原型档位路由](references/prototype-profile-routing.md) 选择 H1/H2 中满足当前决策风险的最低档位。没有充分证据时默认 H2。
|
|
22
|
-
-
|
|
22
|
+
- 默认以 `DESIGN.md`、交互说明和状态矩阵进入 YSS HTML 适配器;有已选视觉稿时才条件调用 `product-design:index` 的还原 workflow。规范直出不调用要求先有图片的 `prototype/image-to-code/design-qa`;六轴 QA 仍由本阶段合同持有,所有 Agent 交付等价证据。
|
|
23
23
|
- `high-fidelity-html-prototype` 仅为历史兼容入口;新资产统一为 `artifact.prototype-deliverable`、Prototype Evidence schema v4 与 Visual Baseline schema v1。
|
|
24
24
|
|
|
25
25
|
## 执行顺序
|
|
26
26
|
|
|
27
27
|
1. 形成交互说明、低保真与状态矩阵;状态至少包含事件、转换、guard、动作与可退出路径。
|
|
28
28
|
2. 完成独立 `prototype-review`,提取仍需由原型回答的风险。
|
|
29
|
-
3. 计算并记录 `prototype_profile
|
|
30
|
-
4. H1
|
|
29
|
+
3. 计算并记录 `prototype_profile`。新视觉方向或信息架构不确定时比较三个候选方案并由用户选择;可用低保真或 HTML 比较,图片 ideation 按需使用。已有规范和页面模式足够时记录 `not-applicable`、规范依据与理由。
|
|
30
|
+
4. H1 使用 `prototype-contract.mjs prepare-static`;H2 默认使用 `prepare-flow`,条件真实组件路线使用 `build-antd-prototype.mjs`。二者都交付 `index.html` 与本地 CSS/JS/资源。按 `references/product-design-adapter.md` 完成场景、离线复验和 `seal-project`,不把 starter 示例当作业务验收。
|
|
31
31
|
5. 自动采集版本、digest、视口、截图、console 与扫描结果。截图按 `route + page + state + viewport + theme + locale + data_scenario` 写入 `Visual Baseline Bundle`,执行 `visual-baseline-contract.mjs seal` 后由 feature 级 schema v4 `prototype-evidence.yaml` 引用;人工只补决策、风险、允许差异和用户确认。
|
|
32
32
|
6. 以统一六轴 Design QA 和档位验证矩阵完成浏览器/无障碍验证。用户确认后才可校准 Spec、分析 API 影响或进入 实现合同编译器 readiness。
|
|
33
33
|
|
|
34
34
|
## 档位边界
|
|
35
35
|
|
|
36
36
|
- H1 `visual-review`:浏览器可复验的 HTML/CSS/少量 JS 或设计工具导出;不得要求 `package.json`、lockfile、Node 或 AntD CLI。
|
|
37
|
-
- H2 `flow-review
|
|
37
|
+
- H2 `flow-review`:默认使用 `html-css-js`,主流程与关键异常状态可操作;场景可重复触发并重置。制作阶段允许必要工具,接收者无需安装 Node 或组件库,也不依赖网络。复杂控件只模拟当前决策需要的行为;简化会改变关键结论时,按 AntD 集成说明选择预构建真实控件;仍无法支撑的部分列为 gap 并回到设计澄清。
|
|
38
38
|
- 原型代码默认 throwaway;可复用的是项目 Token、组件语义映射、状态、测试场景和验收标准。任何源码进入生产仍需 实现合同编译器、Slice Contract 和 TDD。
|
|
39
39
|
- 原型阶段不得调用 `yss-ui`,不得读取生产组件 API 来制造“真实组件原型”。需要核验真实 YSS/AntDV 组件的事项写入 `implementation_handoff`,由前端实现计划、已批准切片的实现和实现还原验证负责。
|
|
40
40
|
|
|
41
41
|
## 事实、QA 与确认
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
优先级固定为:根 `DESIGN.md` 规范 Token / 组件变体 → `docs/design/design.md` 治理解释 → `docs/design/tokens/*` 派生快照。行为由 Spec、交互说明与状态矩阵定义。HTML 消费包内 Token CSS,保存根规范与 Token 摘要,不再调用组件 Provider 或采集新的 fact pack。标准格式与工具版本沿用项目锁定值,不跟随上游 main 自动升级。
|
|
44
44
|
|
|
45
|
-
Design QA 合并 visual、layout、interaction、content、accessibility、cross-platform 六轴,不再建立第二份评审。所有档位至少证明 desktop/narrow 非空渲染、项目 Token、console 和基础键盘/焦点/对比度;H2 追加主流程、关键异常、200% zoom/reduced motion
|
|
45
|
+
Design QA 合并 visual、layout、interaction、content、accessibility、cross-platform 六轴,不再建立第二份评审。所有档位至少证明 desktop/narrow 非空渲染、项目 Token、console 和基础键盘/焦点/对比度;H2 追加主流程、关键异常、200% zoom/reduced motion 与按风险视觉回归。规范直出使用 `design_qa.mode=design-contract`,对照规范和实际计算样式审查;已有视觉稿使用 `visual-comparison`,对照同视口同状态源图。首版截图在审查和用户确认后冻结,不能与自身对比来证明符合规范。图片是视觉基准而非唯一事实来源;模型必须从 `visual-baseline.yaml` 的 `case_id` 读取对应语义引用,禁止靠目录 glob 猜测页面含义。
|
|
46
46
|
|
|
47
47
|
用户确认必须绑定提问者或其明确指定负责人的原始回复,使用生命周期 `user_decision_policy` 和统一用户决定记录;产品数字人只提供确认建议,不能代答。正式证据追加 `user_decision_ref/decision_subject_ref`,校验原型、视觉基线和操作范围与用户所见快照一致。用户确认只描述原型确认了什么、哪些范围可操作、哪些为模拟或 gap,以及接受/拒绝结论;不要求用户确认技术栈、CLI 或构建细节。
|
|
48
48
|
|
|
@@ -57,9 +57,9 @@ Design QA 合并 visual、layout、interaction、content、accessibility、cross
|
|
|
57
57
|
|
|
58
58
|
## 常见错误
|
|
59
59
|
|
|
60
|
-
-
|
|
60
|
+
- 把 H1/H2 当作低/高保真;把离线 HTML 降为静态截图,或继续要求 Provider、Node starter、预先生成图片。
|
|
61
61
|
- 低保真未评审就选择技术栈;用主观评分代替确定性触发规则。
|
|
62
|
-
-
|
|
62
|
+
- 空填 lockfile/fact pack;把自身生成图当成独立来源,或宣称已验证生产真实组件。
|
|
63
63
|
- 重复抄写机器可采集的版本、digest、截图和 console;创建第二份状态机、QA 或 handoff 资产。
|
|
64
64
|
- 把原型源码直接复制进生产,或在原型阶段调用 `yss-ui`。
|
|
65
65
|
|
|
@@ -71,3 +71,7 @@ Design QA 合并 visual、layout、interaction、content、accessibility、cross
|
|
|
71
71
|
通过 `gate.product-design-approved` 的现有用户决定协议确认当前基线 manifest 原字节,Handoff v5 明确声明 `ui_baseline_kind: existing-ui-baseline`。截图、代码可运行或旧原型批准都不能替代该确认;本技能只能准备审阅资产,不代答或批准。发现任何 UI 改动,包括后端行为导致的体验变化,回到上述原型流程;新设计继续保留现有原型与验证要求。
|
|
72
72
|
|
|
73
73
|
消费者以 `scripts/preflight-delivery` 检查交付前提,再由 `scripts/lib/ui-baseline.mjs` 分派原型与既有基线。前端使用 Strategic Preflight v2 和 Delivery Acceptance v3 的通用 `baseline_case_ids` 承接;通过仅说明输入可核验,不授予写代码权限。
|
|
74
|
+
|
|
75
|
+
## AntD 组件补充
|
|
76
|
+
|
|
77
|
+
消费 [组件集成说明](references/antd-integration.md) 与 [组件索引](references/antd-component-catalog.json):默认原生 HTML,复杂交互确实影响评审结论时记录理由并选 `react-antd-prebuilt`。`--pattern workbench` 提供查询列表、详情、编辑和失败恢复 starter;真实 AntD 在独立作者目录按固定 lock 预构建,交付包仍离线运行、接收者无需 Node。两条路线统一根 DESIGN.md、六轴 QA、场景重置及当前用户确认,不恢复 Provider 技能、不证明生产 YSS 组件兼容。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "yss-antd-prototype-authoring",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"type": "module",
|
|
6
|
+
"packageManager": "pnpm@10.15.0",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"antd": "6.6.4",
|
|
9
|
+
"react": "19.2.4",
|
|
10
|
+
"react-dom": "19.2.4"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"esbuild": "0.28.2",
|
|
14
|
+
"@ant-design/cli": "6.6.4"
|
|
15
|
+
}
|
|
16
|
+
}
|