create-yss-spec 3.5.0 → 3.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/package.json +1 -1
- package/src/api/_sync-service.js +31 -6
- package/src/cli/args.js +2 -0
- package/src/cli/help.js +4 -1
- package/src/commands/attach.js +9 -3
- package/src/commands/diff.js +1 -0
- package/src/commands/doctor.js +1 -0
- package/src/commands/init.js +2 -1
- package/src/commands/sync.js +1 -0
- package/src/family-identity.js +1 -1
- package/src/template/asset-runtime.js +57 -49
- package/src/template/attach-planner.js +1 -1
- package/src/template/distribution-runtime.js +9 -9
- package/src/template/instance-runtime.js +9 -9
- package/src/template/layout-migration.js +160 -0
- package/src/template/migration-runtime.js +2 -2
- package/src/template/sync-planner.js +1 -1
- package/template/.agents/rules/yss-ai-skills.md +1 -1
- package/template/.agents/skills/.strategic-design-skills-manifest.json +7 -8
- package/template/.agents/skills/.yss-skills-manifest.json +2 -2
- package/template/.agents/skills/alibaba-java-code-style/SKILL.md +1 -1
- package/template/.agents/skills/code-review/SKILL.md +6 -6
- package/template/.agents/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.agents/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.agents/skills/i-have-adhd/SKILL.md +1 -1
- package/template/.agents/skills/i-have-adhd/references/yss-adaptation.md +1 -1
- package/template/.agents/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
- package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.agents/skills/llm-wiki/references/discover.md +3 -3
- package/template/.agents/skills/prototype-review/SKILL.md +4 -4
- package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +10 -10
- package/template/.agents/skills/triage/SKILL.md +1 -1
- package/template/.agents/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
- package/template/.agents/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.agents/skills/yss-backend-spec-review/SKILL.md +1 -1
- package/template/.agents/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.agents/skills/yss-design-system/SKILL.md +10 -10
- package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +3 -3
- package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.agents/skills/yss-exception/SKILL.md +1 -1
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
- package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
- package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -2
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +7 -7
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -11
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +22 -14
- package/template/.agents/skills/yss-product-lifecycle/references/request-triage.md +2 -0
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +7 -7
- package/template/.agents/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
- package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
- package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
- package/template/.agents/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
- package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
- package/template/.agents/skills/yss-repository/SKILL.md +2 -2
- package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
- package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
- package/template/.agents/skills/yss-research/SKILL.md +2 -2
- package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -5
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
- package/template/.agents/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
- package/template/.agents/skills/yss-tactical-design/SKILL.md +2 -2
- package/template/.agents/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
- package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
- package/template/.agents/skills/yss-technical-design/SKILL.md +6 -6
- package/template/.agents/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.agents/skills/yss-ui/SKILL.md +1 -1
- package/template/.agents/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.agents/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.agents/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
- package/template/.codex/skills/alibaba-java-code-style/SKILL.md +1 -1
- package/template/.codex/skills/code-review/SKILL.md +6 -6
- package/template/.codex/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.codex/skills/i-have-adhd/SKILL.md +1 -1
- package/template/.codex/skills/i-have-adhd/references/yss-adaptation.md +1 -1
- package/template/.codex/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
- package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.codex/skills/llm-wiki/references/discover.md +3 -3
- package/template/.codex/skills/prototype-review/SKILL.md +4 -4
- package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +10 -10
- package/template/.codex/skills/triage/SKILL.md +1 -1
- package/template/.codex/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
- package/template/.codex/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.codex/skills/yss-backend-spec-review/SKILL.md +1 -1
- package/template/.codex/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.codex/skills/yss-design-system/SKILL.md +10 -10
- package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +3 -3
- package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.codex/skills/yss-exception/SKILL.md +1 -1
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
- package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
- package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -2
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +7 -7
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -11
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +22 -14
- package/template/.codex/skills/yss-product-lifecycle/references/request-triage.md +2 -0
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +7 -7
- package/template/.codex/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
- package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
- package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
- package/template/.codex/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
- package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
- package/template/.codex/skills/yss-repository/SKILL.md +2 -2
- package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
- package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
- package/template/.codex/skills/yss-research/SKILL.md +2 -2
- package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -5
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
- package/template/.codex/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
- package/template/.codex/skills/yss-tactical-design/SKILL.md +2 -2
- package/template/.codex/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
- package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
- package/template/.codex/skills/yss-technical-design/SKILL.md +6 -6
- package/template/.codex/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.codex/skills/yss-ui/SKILL.md +1 -1
- package/template/.codex/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.codex/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.codex/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
- package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +1 -1
- package/template/.cursor/skills/code-review/SKILL.md +6 -6
- package/template/.cursor/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.cursor/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.cursor/skills/i-have-adhd/SKILL.md +1 -1
- package/template/.cursor/skills/i-have-adhd/references/yss-adaptation.md +1 -1
- package/template/.cursor/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
- package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.cursor/skills/llm-wiki/references/discover.md +3 -3
- package/template/.cursor/skills/prototype-review/SKILL.md +4 -4
- package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +10 -10
- package/template/.cursor/skills/triage/SKILL.md +1 -1
- package/template/.cursor/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
- package/template/.cursor/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.cursor/skills/yss-backend-spec-review/SKILL.md +1 -1
- package/template/.cursor/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.cursor/skills/yss-design-system/SKILL.md +10 -10
- package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +3 -3
- package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.cursor/skills/yss-exception/SKILL.md +1 -1
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
- package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -2
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +7 -7
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +11 -11
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +22 -14
- package/template/.cursor/skills/yss-product-lifecycle/references/request-triage.md +2 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +7 -7
- package/template/.cursor/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
- package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
- package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
- package/template/.cursor/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
- package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
- package/template/.cursor/skills/yss-repository/SKILL.md +2 -2
- package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
- package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
- package/template/.cursor/skills/yss-research/SKILL.md +2 -2
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -5
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +2 -2
- package/template/.cursor/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
- package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
- package/template/.cursor/skills/yss-technical-design/SKILL.md +6 -6
- package/template/.cursor/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
- package/template/.cursor/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.cursor/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.cursor/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
- package/template/.cursorrules +1 -1
- package/template/.pi/skills/alibaba-java-code-style/SKILL.md +1 -1
- package/template/.pi/skills/code-review/SKILL.md +6 -6
- package/template/.pi/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.pi/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.pi/skills/i-have-adhd/SKILL.md +1 -1
- package/template/.pi/skills/i-have-adhd/references/yss-adaptation.md +1 -1
- package/template/.pi/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
- package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +2 -2
- package/template/.pi/skills/llm-wiki/references/discover.md +3 -3
- package/template/.pi/skills/prototype-review/SKILL.md +4 -4
- package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +10 -10
- package/template/.pi/skills/triage/SKILL.md +1 -1
- package/template/.pi/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
- package/template/.pi/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.pi/skills/yss-backend-spec-review/SKILL.md +1 -1
- package/template/.pi/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.pi/skills/yss-design-system/SKILL.md +10 -10
- package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +3 -3
- package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.pi/skills/yss-exception/SKILL.md +1 -1
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
- package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
- package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
- package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -2
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +7 -7
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -11
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +22 -14
- package/template/.pi/skills/yss-product-lifecycle/references/request-triage.md +2 -0
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -3
- package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +7 -7
- package/template/.pi/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
- package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
- package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
- package/template/.pi/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
- package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
- package/template/.pi/skills/yss-repository/SKILL.md +2 -2
- package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
- package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
- package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
- package/template/.pi/skills/yss-research/SKILL.md +2 -2
- package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -5
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
- package/template/.pi/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
- package/template/.pi/skills/yss-tactical-design/SKILL.md +2 -2
- package/template/.pi/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
- package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
- package/template/.pi/skills/yss-technical-design/SKILL.md +6 -6
- package/template/.pi/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.pi/skills/yss-ui/SKILL.md +1 -1
- package/template/.pi/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.pi/skills/yss-web-controller/SKILL.md +1 -1
- package/template/.pi/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
- package/template/{docs → .template-spec}/adr/README.md +1 -1
- package/template/{docs → .template-spec}/agents/README.md +1 -1
- package/template/{docs → .template-spec}/agents/backend-architecture-profiles.md +2 -2
- package/template/{docs → .template-spec}/agents/digital-human-roles.md +6 -6
- package/template/{docs → .template-spec}/agents/digital-human-roles.yaml +5 -5
- package/template/{docs → .template-spec}/agents/gitlab-workflow-skills.md +2 -2
- package/template/{docs → .template-spec}/agents/issue-tracker.md +1 -1
- package/template/{docs → .template-spec}/agents/skill-migrations.md +2 -2
- package/template/{docs → .template-spec}/agents/triage-labels.md +1 -1
- package/template/{docs → .template-spec}/agents/yss-skill-registry.yaml +2 -2
- package/template/{docs → .template-spec}/architecture/README.md +3 -3
- package/template/{docs → .template-spec}/architecture/templates/tech-design-template.md +3 -1
- package/template/{docs → .template-spec}/design/README.md +12 -11
- package/template/{docs → .template-spec}/design/design.md +19 -19
- package/template/{docs/design/templates/interaction-spec-template.md → .template-spec/design/templates/examples/model-publishing-interaction.example.md} +5 -3
- package/template/{docs/design/templates/state-matrix-template.md → .template-spec/design/templates/examples/model-publishing-state-matrix.example.md} +3 -1
- package/template/.template-spec/design/templates/interaction-spec-template.md +61 -0
- package/template/{docs → .template-spec}/design/templates/product-overview-design-template.md +11 -11
- package/template/{docs → .template-spec}/design/templates/prototype-evidence-template.yaml +4 -4
- package/template/{docs → .template-spec}/design/templates/prototype-review-checklist.md +1 -1
- package/template/.template-spec/design/templates/state-matrix-template.md +29 -0
- package/template/.template-spec/design/tokens/.design-md-projection.json +13 -0
- package/template/{docs → .template-spec}/engineering/backend-platforms.md +1 -1
- package/template/{docs → .template-spec}/plan/entry-review.md +8 -4
- package/template/{docs → .template-spec}/plan/templates/plan-template.md +1 -1
- package/template/{docs → .template-spec}/process/contract-reading.md +1 -1
- package/template/{docs → .template-spec}/process/lifecycle-artifact-map.md +5 -5
- package/template/.template-spec/process/lifecycle-registry-baseline.json +253 -0
- package/template/{docs → .template-spec}/process/lifecycle-registry.yaml +19 -12
- package/template/{docs → .template-spec}/process/plan-migration.md +1 -1
- package/template/{docs → .template-spec}/process/schemas/digital-human-task-package.schema.json +14 -1
- package/template/{docs → .template-spec}/process/schemas/lifecycle-checkpoint.schema.json +15 -0
- package/template/{docs → .template-spec}/process/schemas/lifecycle-registry.schema.json +1 -1
- package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v3.schema.json +1 -1
- package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v4.schema.json +1 -1
- package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v5.schema.json +1 -1
- package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff.schema.json +1 -1
- package/template/{docs → .template-spec}/process/stage-tracking.md +1 -1
- package/template/{docs → .template-spec}/process/subagent-collaboration.md +2 -2
- package/template/{docs → .template-spec}/templates/build-architecture-checklist-template.md +2 -2
- package/template/{docs → .template-spec}/templates/digital-human-runtime-profile-template.md +2 -2
- package/template/{docs → .template-spec}/templates/grok-bot-profile-template.md +1 -1
- package/template/{docs → .template-spec}/templates/local-parent-ticket-template.md +1 -1
- package/template/.template-spec/templates/release-note-template.md +29 -0
- package/template/.template-spec/templates/retro-report-template.md +24 -0
- package/template/{docs → .template-spec}/templates/subagent-task-package-template.md +3 -3
- package/template/.template-spec/templates/verification-record-template.md +64 -0
- package/template/{docs → .template-spec}/templates/vertical-slice-ticket-template.md +5 -10
- package/template/{docs → .template-spec}/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1 -1
- package/template/{docs → .template-spec}/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +4 -4
- package/template/AGENTS.md +12 -12
- package/template/CONTEXT.md +3 -3
- package/template/README.md +21 -21
- package/template/scripts/backend-delivery +1 -1
- package/template/scripts/lib/api-contract-decision.mjs +1 -1
- package/template/scripts/lib/approved-execution-context.mjs +5 -5
- package/template/scripts/lib/backend-delivery.mjs +4 -4
- package/template/scripts/lib/backend-platform.mjs +1 -1
- package/template/scripts/lib/backend-review.mjs +1 -1
- package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
- package/template/scripts/lib/backend-standards-coverage.mjs +2 -2
- package/template/scripts/lib/context-reconciliation.mjs +1 -1
- package/template/scripts/lib/contract-views.mjs +9 -9
- package/template/scripts/lib/delivery-preflight.mjs +6 -6
- package/template/scripts/lib/design-md.mjs +2 -2
- package/template/scripts/lib/digital-human-roles.mjs +2 -2
- package/template/scripts/lib/existing-backend-architecture.mjs +1 -1
- package/template/scripts/lib/existing-ui-baseline.mjs +1 -1
- package/template/scripts/lib/frontend-delivery.mjs +2 -2
- package/template/scripts/lib/governance-layout.mjs +74 -0
- package/template/scripts/lib/harness-execution-scope.mjs +2 -2
- package/template/scripts/lib/lifecycle-context-query.mjs +11 -3
- package/template/scripts/lib/lifecycle-registry.mjs +46 -7
- package/template/scripts/lib/lifecycle-status.mjs +111 -0
- package/template/scripts/lib/lifecycle-transition.mjs +71 -10
- package/template/scripts/lib/openapi-draft-validation.mjs +1 -1
- package/template/scripts/lib/plan-spec-entry-view.mjs +48 -0
- package/template/scripts/lib/plan-spec-entry.mjs +3 -3
- package/template/scripts/lib/skill-registry.mjs +8 -8
- package/template/scripts/lib/skill-supply-chain.mjs +1 -1
- package/template/scripts/lib/slice-contract-preparation.mjs +3 -3
- package/template/scripts/lib/slice-contract.mjs +1 -1
- package/template/scripts/lib/slice-repositories.mjs +1 -1
- package/template/scripts/lib/slice-task-package.mjs +3 -3
- package/template/scripts/lib/stage-tracking-migration.mjs +2 -2
- package/template/scripts/lib/stage-tracking.mjs +5 -5
- package/template/scripts/lib/strategic-feedback.mjs +2 -2
- package/template/scripts/lib/strategic-handoff-routing.mjs +2 -2
- package/template/scripts/lib/strategic-handoff.mjs +15 -15
- package/template/scripts/lib/task-package-schema.mjs +2 -2
- package/template/scripts/lib/task-package.mjs +1 -1
- package/template/scripts/lib/technical-design-boundary.mjs +1 -1
- package/template/scripts/lib/user-decision.mjs +2 -1
- package/template/scripts/lifecycle-status +14 -0
- package/template/scripts/plan-spec-entry +21 -0
- package/template/scripts/strategic-consumer-entry +1 -1
- package/template/scripts/strategic-handoff +1 -1
- package/template/scripts/verify-frontend-implementation-evidence +1 -1
- package/template/scripts/verify-governance-layout +15 -0
- package/template/scripts/verify-lifecycle-checkpoint +1 -1
- package/template/scripts/verify-project-instance +2 -0
- package/template/scripts/verify-scaffold-architecture-decisions +1 -1
- package/template/scripts/verify-strategic-context-import +3 -3
- package/template/skills-lock.json +77 -77
- package/template.manifest.json +19 -19
- package/template.snapshot.json +5 -5
- package/template/docs/agents/archify-integration.md +0 -19
- package/template/docs/design/design-system-sync.yaml +0 -13
- package/template/docs/design/preview-dark.html +0 -178
- package/template/docs/design/preview.css +0 -730
- package/template/docs/design/preview.html +0 -178
- package/template/docs/design/preview.js +0 -71
- package/template/docs/design/tokens/.design-md-projection.json +0 -13
- package/template/docs/engineering/evidence/aliyun-artifact-resolution.json +0 -446
- package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +0 -13
- package/template/docs/process/github-workflows.md +0 -52
- package/template/docs/templates/release-note-template.md +0 -14
- package/template/docs/templates/retro-report-template.md +0 -16
- package/template/docs/templates/verification-record-template.md +0 -53
- /package/template/{docs → .template-spec}/agents/domain.md +0 -0
- /package/template/{docs → .template-spec}/api/templates/openapi-draft-review-checklist.md +0 -0
- /package/template/{docs → .template-spec}/api/templates/openapi-draft-validation-record-template.yaml +0 -0
- /package/template/{docs → .template-spec}/api/templates/openapi-freeze-record-template.md +0 -0
- /package/template/{docs → .template-spec}/api/templates/openapi-json-export-record-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/architecture-deepening-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/architecture-review-checklist.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/business-architecture-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/data-architecture-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/engineering-baseline-review-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/functional-architecture-template.md +0 -0
- /package/template/{docs → .template-spec}/architecture/templates/system-overview-design-template.md +0 -0
- /package/template/{docs → .template-spec}/design/diagrams/README.md +0 -0
- /package/template/{docs → .template-spec}/design/schemas/visual-baseline.schema.json +0 -0
- /package/template/{docs → .template-spec}/design/templates/prototype-confirmation-template.md +0 -0
- /package/template/{docs → .template-spec}/design/templates/visual-baseline-template.yaml +0 -0
- /package/template/{docs → .template-spec}/design/tokens/theme.json +0 -0
- /package/template/{docs → .template-spec}/design/tokens/tokens.compact.json +0 -0
- /package/template/{docs → .template-spec}/design/tokens/tokens.dark.json +0 -0
- /package/template/{docs → .template-spec}/design/tokens/tokens.default.json +0 -0
- /package/template/{docs → .template-spec}/design/tokens/variables.css +0 -0
- /package/template/{docs → .template-spec}/design/tokens/variables.dark.css +0 -0
- /package/template/{docs → .template-spec}/engineering/backend-platforms.json +0 -0
- /package/template/{docs → .template-spec}/plan/README.md +0 -0
- /package/template/{docs → .template-spec}/plan/templates/competitive-analysis-template.md +0 -0
- /package/template/{docs → .template-spec}/plan/templates/competitive-matrix-template.md +0 -0
- /package/template/{docs → .template-spec}/plan/templates/market-analysis-template.md +0 -0
- /package/template/{docs → .template-spec}/plan/templates/user-pain-points-template.md +0 -0
- /package/template/{docs → .template-spec}/process/delivery-preflight.md +0 -0
- /package/template/{docs → .template-spec}/process/document-writing.md +0 -0
- /package/template/{docs → .template-spec}/process/existing-backend-architecture.md +0 -0
- /package/template/{docs → .template-spec}/process/existing-ui-baseline.md +0 -0
- /package/template/{docs → .template-spec}/process/frontend-backend-delivery.md +0 -0
- /package/template/{docs → .template-spec}/process/harness-process-tailoring.md +0 -0
- /package/template/{docs → .template-spec}/process/implementation-repo-integration.md +0 -0
- /package/template/{docs/process/lifecycle-registry-baseline.json → .template-spec/process/lifecycle-registry-baseline-v1.json} +0 -0
- /package/template/{docs → .template-spec}/process/schemas/api-contract-decision-v2.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/api-contract-decision.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/backend-architecture-identity.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/backend-delivery-verification.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/backend-delivery.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/context-reconciliation.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/data-architecture-decision.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/delivery-preflight-input.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/delivery-preflight-result.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/existing-ui-baseline.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance-v1.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance-v3.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-implementation-evidence.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-strategic-preflight-v2.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/frontend-strategic-preflight.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/implementation-repository-preparation-result.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/openapi-draft-validation-record.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/project-scaffold-contract.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/review-bundle.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/scaffold-architecture-decisions.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/slice-implementation-contract-v3.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/stage-tracking.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-consumer-feedback.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-feedback-adjudication.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-delivery-verification.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-delivery.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-domain-strategy.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-export-v2.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-export.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-import-receipt-v3.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-import-receipt.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-package.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-stage-decision-package.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/subagent-task-package.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/schemas/user-decision.schema.json +0 -0
- /package/template/{docs → .template-spec}/process/strategic-handoff-package.md +0 -0
- /package/template/{docs → .template-spec}/process/templates/context-reconciliation-template.yaml +0 -0
- /package/template/{docs → .template-spec}/process/templates/frontend-implementation-plan-template.yaml +0 -0
- /package/template/{docs → .template-spec}/process/templates/frontend-implementation-verification-template.yaml +0 -0
- /package/template/{docs → .template-spec}/process/templates/lifecycle-checkpoint-template.yaml +0 -0
- /package/template/{docs → .template-spec}/process/templates/scaffold-architecture-decisions-template.yaml +0 -0
- /package/template/{docs → .template-spec}/process/templates/stage-checkpoint-template.md +0 -0
- /package/template/{docs → .template-spec}/process/templates/user-decision-template.yaml +0 -0
- /package/template/{docs → .template-spec}/templates/adr-template.md +0 -0
- /package/template/{docs → .template-spec}/templates/approval-record-template.yaml +0 -0
- /package/template/{docs → .template-spec}/templates/cross-repo-slice-template.md +0 -0
- /package/template/{docs → .template-spec}/templates/examples/lifecycle-writing-examples.md +0 -0
- /package/template/{docs → .template-spec}/templates/implementation-repo-registry-template.md +0 -0
- /package/template/{docs → .template-spec}/templates/openapi-spec-template.yaml +0 -0
- /package/template/{docs → .template-spec}/templates/review-bundle-template.yaml +0 -0
- /package/template/{docs → .template-spec}/templates/review-report-template.md +0 -0
- /package/template/{docs → .template-spec}/templates/spec-delta-template.md +0 -0
- /package/template/{docs → .template-spec}/templates/spec-template.md +0 -0
- /package/template/{docs → .template-spec}/user-guide/yss-ui-mcp.md +0 -0
- /package/template/{docs → .template-spec}/user-guide//346/212/200/346/234/257/350/256/276/350/256/241/347/224/250/346/210/267/346/214/207/345/215/227.md" +0 -0
- /package/template/{docs → .template-spec}/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" +0 -0
- /package/template/{docs → .template-spec}/user-guide//351/230/266/346/256/265/346/216/245/345/205/245/344/270/216/344/272/247/347/211/251/345/244/215/347/224/250/344/275/277/347/224/250/346/211/213/345/206/214.md" +0 -0
|
@@ -7,7 +7,7 @@ description: Use when independently reviewing low-fidelity UI, interaction specs
|
|
|
7
7
|
|
|
8
8
|
Use this skill as the independent low-fidelity review in `yss-prototype-stage`. The review is fail-closed: if the design cannot drive calibrated requirements, API, frontend acceptance, and slices, send it back to product design. `yss-product-lifecycle` alone records the resulting `check.prototype-reviewed` decision.
|
|
9
9
|
|
|
10
|
-
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取
|
|
10
|
+
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
11
11
|
|
|
12
12
|
## Trigger Boundary
|
|
13
13
|
|
|
@@ -17,9 +17,9 @@ Run this independent gate only when UI changes affect a primary user flow, navig
|
|
|
17
17
|
|
|
18
18
|
- Spec baseline or confirmed user stories.
|
|
19
19
|
- `docs/.scratch/<feature>/design/<feature>-interaction-spec.md` or prototype link.
|
|
20
|
-
- State matrix, preferably based on
|
|
20
|
+
- State matrix, preferably based on `.template-spec/design/templates/state-matrix-template.md`.
|
|
21
21
|
- Existing OpenAPI Draft only if the review is checking alignment; do not require OpenAPI before product design.
|
|
22
|
-
- `docs/.scratch/<feature>/verification/prototype-evidence.yaml` may be created as a pending Prototype Evidence schema v4 record from
|
|
22
|
+
- `docs/.scratch/<feature>/verification/prototype-evidence.yaml` may be created as a pending Prototype Evidence schema v4 record from `.template-spec/design/templates/prototype-evidence-template.yaml`, but档位构建与浏览器验证属于后续 `check.prototype-verified`。
|
|
23
23
|
|
|
24
24
|
## Review Gates
|
|
25
25
|
|
|
@@ -74,4 +74,4 @@ Run this independent gate only when UI changes affect a primary user flow, navig
|
|
|
74
74
|
- <yss-prototype-stage / return to product design>
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
Use
|
|
77
|
+
Use `.template-spec/design/templates/prototype-review-checklist.md` when writing a persistent review artifact.
|
|
@@ -24,7 +24,7 @@ Look at the current repo to understand its starting state. Read whatever exists;
|
|
|
24
24
|
- Root `AGENTS.md` — does it exist, and is there already an `## Agent skills` section?
|
|
25
25
|
- The case-sensitive `CONTEXT.md` at the Git repository root; also detect lowercase, nested, or duplicate context files as migration problems
|
|
26
26
|
- `docs/adr/` and any `src/*/docs/adr/` directories
|
|
27
|
-
-
|
|
27
|
+
- `.template-spec/agents/` — does this skill's prior output already exist?
|
|
28
28
|
- `docs/.scratch/` — sign that the canonical local-markdown issue tracker convention is already in use
|
|
29
29
|
- `.scratch/` and `docs/requirements/tickets/` — legacy local-tracker roots; inspect them read-only for migration and never use them as new write targets
|
|
30
30
|
- Is the `triage` skill installed? (a `triage` skill folder alongside this one, or `triage` in your available skills.) This decides whether Section B runs at all.
|
|
@@ -40,7 +40,7 @@ Lead each section with the recommended answer so the user can accept it in a wor
|
|
|
40
40
|
> Explainer: The "issue tracker" is where issues live for this repo. Skills like `to-tickets`, `triage`, and `to-spec` read from and write to it — they need to know whether to call `gh issue create`, write a markdown file under `docs/.scratch/`, or follow some other workflow you describe. Pick the place you actually track work for this repo.
|
|
41
41
|
|
|
42
42
|
Path resolution is configuration-first: every Local-aware skill must read the
|
|
43
|
-
persisted `tracker.root` from
|
|
43
|
+
persisted `tracker.root` from `.template-spec/agents/issue-tracker.md` before resolving an
|
|
44
44
|
artifact path. If the field is absent, use `docs/.scratch` as the default. Do
|
|
45
45
|
not infer a tracker or replace the configured root from `git remote`; the legacy
|
|
46
46
|
`.scratch/` and `docs/requirements/tickets/` roots are read-only migration
|
|
@@ -54,7 +54,7 @@ The supported tracker choices in this template are exactly `local-markdown`, `gi
|
|
|
54
54
|
|
|
55
55
|
Do not offer an `Other` tracker or write an unsupported platform into the project configuration; extending the YSS tracker contract must happen before adding another platform.
|
|
56
56
|
|
|
57
|
-
Record the choice in
|
|
57
|
+
Record the choice in `.template-spec/agents/issue-tracker.md`. The GitHub and GitLab templates carry a "PRs as a request surface" flag, defaulted **off** — leave it off and don't raise it; a user who wants external PRs in the triage queue can flip the flag in the file later.
|
|
58
58
|
|
|
59
59
|
**Section B — Triage label vocabulary.** Skip this section entirely if the `triage` skill isn't installed (exploration told you) — an uninstalled skill needs no labels.
|
|
60
60
|
|
|
@@ -73,7 +73,7 @@ If the root `CONTEXT.md` is missing, initialize it with `context_schema_version:
|
|
|
73
73
|
Show the user a draft of:
|
|
74
74
|
|
|
75
75
|
- The `## Agent skills` block to add to `AGENTS.md`
|
|
76
|
-
- The contents of
|
|
76
|
+
- The contents of `.template-spec/agents/issue-tracker.md`, `.template-spec/agents/domain.md`, and `.template-spec/agents/triage-labels.md` (the last only when `triage` is installed)
|
|
77
77
|
|
|
78
78
|
Let them edit before writing.
|
|
79
79
|
|
|
@@ -93,18 +93,18 @@ The block:
|
|
|
93
93
|
|
|
94
94
|
### Issue tracker
|
|
95
95
|
|
|
96
|
-
[one-line summary of where issues are tracked]. See
|
|
96
|
+
[one-line summary of where issues are tracked]. See `.template-spec/agents/issue-tracker.md`.
|
|
97
97
|
|
|
98
98
|
### Triage labels
|
|
99
99
|
|
|
100
|
-
[one-line summary of the label vocabulary]. See
|
|
100
|
+
[one-line summary of the label vocabulary]. See `.template-spec/agents/triage-labels.md`.
|
|
101
101
|
|
|
102
102
|
### Domain docs
|
|
103
103
|
|
|
104
|
-
[one-line summary: one root `CONTEXT.md`, with bounded contexts represented inside its business glossary]. See
|
|
104
|
+
[one-line summary: one root `CONTEXT.md`, with bounded contexts represented inside its business glossary]. See `.template-spec/agents/domain.md`.
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
Include the `### Triage labels` sub-block, and write
|
|
107
|
+
Include the `### Triage labels` sub-block, and write `.template-spec/agents/triage-labels.md`, only when `triage` is installed and Section B ran. When it isn't, both are omitted.
|
|
108
108
|
|
|
109
109
|
Then write the docs files using the seed templates in this skill folder as a starting point:
|
|
110
110
|
|
|
@@ -114,8 +114,8 @@ Then write the docs files using the seed templates in this skill folder as a sta
|
|
|
114
114
|
- [triage-labels.md](./triage-labels.md) — label mapping (only if `triage` is installed)
|
|
115
115
|
- [domain.md](./domain.md) — domain doc consumer rules + layout
|
|
116
116
|
|
|
117
|
-
For an unsupported tracker request, stop and require a YSS tracker-contract extension; do not write an unsupported platform into
|
|
117
|
+
For an unsupported tracker request, stop and require a YSS tracker-contract extension; do not write an unsupported platform into `.template-spec/agents/issue-tracker.md`.
|
|
118
118
|
|
|
119
119
|
### 5. Done
|
|
120
120
|
|
|
121
|
-
Tell the user the setup is complete and which engineering skills will now read from these files. Mention they can edit
|
|
121
|
+
Tell the user the setup is complete and which engineering skills will now read from these files. Mention they can edit `.template-spec/agents/*.md` directly later — re-running this skill is only necessary if they want to switch issue trackers or restart from scratch.
|
|
@@ -30,7 +30,7 @@ Two categories:
|
|
|
30
30
|
- `bug` — something is broken
|
|
31
31
|
- `enhancement` — new feature or improvement
|
|
32
32
|
|
|
33
|
-
五态语义由
|
|
33
|
+
五态语义由 `.template-spec/agents/triage-labels.md` 定义:
|
|
34
34
|
|
|
35
35
|
- `needs-triage` — maintainer needs to evaluate
|
|
36
36
|
- `needs-info` — waiting on reporter for more information
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# layered-mvc-service
|
|
2
2
|
|
|
3
|
-
先读仓库
|
|
3
|
+
先读仓库 `.template-spec/agents/backend-architecture-profiles.md` 的 MVC 约定。写入 `service` 的 command/query/result/service 包;事务与业务行为通过公开用例 seam 做 behavior-tdd。调用 Repository/Adapter;不得生成 Domain Gateway 或引用 client DTO、Spring MVC、生产驱动。需要 HTTP 协议变更时返回 new_impacts,由 Web 工作单元处理。
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# mvc-data-analysis-v1
|
|
2
2
|
|
|
3
|
-
先读仓库
|
|
3
|
+
先读仓库 `.template-spec/agents/backend-architecture-profiles.md` 的 MVC 约定。写入 `core` 的 command/query/result/service 包;core 是薄应用层,拥有事务与内部模型,不依赖 client/server。读取/计算/导出编排不能自动扩大 SQL 或 API 合同;数据行为采用 behavior-tdd。不要套用 DDD application-layer-guide。
|
|
@@ -35,7 +35,7 @@ description: 审计既有 Java 后端工程对 YSS 技能规范和已批准业
|
|
|
35
35
|
|
|
36
36
|
## 输出与完成依据
|
|
37
37
|
|
|
38
|
-
复用
|
|
38
|
+
复用 `.template-spec/templates/review-report-template.md`、当前 Slice 的 YSS Skill Execution Result 和 [审计与整改流程中的记录要求](references/remediation-workflow.md#证据与交接)。报告列明审查覆盖、Standards / Spec 分轴结论、修复前后 finding、候选/规则摘要、实际验证、独立 Reviewer 身份和剩余阻塞。只对本次覆盖且有证据的范围声明符合规范,不自动证明平台已认证或允许发布。
|
|
39
39
|
|
|
40
40
|
## 必须评估、适用必审
|
|
41
41
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| wire / 参数 / 错误 | `yss-dto`、`yss-validation`、`yss-exception` | 真实响应/分页/错误协议、Bean Validation、命名空间、敏感字段与冻结 OpenAPI 一致 |
|
|
13
13
|
| 映射 / 注解处理 | `mapstruct`、`lombok` | 显式字段策略、处理器版本、领域工厂重建;不强迫聚合开放 setter |
|
|
14
14
|
| 实际组件调用 | Registry 中对应组件 Skill 与精确平台源码索引 | cache、userinfo、audit、ID、Excel、resilience 等按能力加载;不因“审查全面”要求安装不用的组件 |
|
|
15
|
-
| 工程和平台 |
|
|
15
|
+
| 工程和平台 | `.template-spec/engineering/backend-platforms.json`、当前工程基线、effective POM、依赖树 | 精确 JDK/Boot、父/BOM、starter、javax/jakarta 和源码索引;源码可编译不等于兼容认证 |
|
|
16
16
|
|
|
17
17
|
每个后端范围显式评估 `yss-web-controller` / `yss-dto` / `yss-domain` / `yss-application` / `yss-repository` / `yss-mybatis`。无持久化或 MyBatis 影响时分别说明原因;不可跳过适用项,也不可为了填表增加实现。MVC 不强制构造 DDD 聚合/Gateway;没有展示分页需求就不要求分页类。
|
|
18
18
|
|
|
@@ -32,7 +32,7 @@ description: 用于生成完整的 YSS DDD 多模块后端脚手架。当用户
|
|
|
32
32
|
- Spring MVC、Servlet、Validation、Jackson 和 starter 坐标消费共享平台清单;Java 下限和允许组合由当前平台条目决定。Jakarta 转换不包括 `javax.sql` 等 Java SE API。
|
|
33
33
|
- 平台候选维护验证产物标记 `platform_verification=candidate`,不能交给业务生成、升级完成等级或进入首切片验证。测试夹具不证明 YSS 兼容。
|
|
34
34
|
|
|
35
|
-
版本清单、合同字段、候选验证和支持晋级规则见 仓库共享合同
|
|
35
|
+
版本清单、合同字段、候选验证和支持晋级规则见 仓库共享合同 `.template-spec/engineering/backend-platforms.md`。
|
|
36
36
|
|
|
37
37
|
## 优先流程
|
|
38
38
|
|
|
@@ -74,7 +74,7 @@ description: 用于生成完整的 YSS DDD 多模块后端脚手架。当用户
|
|
|
74
74
|
- 生成后的后端工程必须使用项目根目录 `./mvnw ...` 执行构建、测试、运行和 CI 验证;不得在 README、实施记录、Ticket、Review 或 Release 中默认写裸 `mvn ...`。既有仓库确实无法使用 wrapper 时,必须记录受控例外。
|
|
75
75
|
- 原型确认后,`scaffold_status=required` 才能进入本 skill;本 skill 的生成边界是工程结构、POM、配置、Wrapper 和机械模板,不是业务实现。
|
|
76
76
|
- 脚手架合同必须携带 `contract_id`、`contract_version`、实现合同编译器 draft 引用、生命周期批准引用、持久化引用、当前版本、允许写路径、预期证据文件和验证命令;字段缺失或版本过期时阻断。
|
|
77
|
-
- 新脚手架只接受统一 Project Scaffold Contract schema v4,并必须以原始字节摘要绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision v1 和真实工程合同批准记录。API `required` 必须闭包绑定同一 OpenAPI YAML 字节的 Validation、独立 Review、Freeze 与工程批准;`not-applicable` 必须绑定评估、明确原因和证据且禁止空占位资产。历史 Manifest 只读审计见 [历史兼容边界](references/generator-maintenance.md),不得用于新生成。
|
|
77
|
+
- 新脚手架只接受统一 Project Scaffold Contract schema v4,并必须以原始字节摘要绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision(新建 v2;历史 v1 只读兼容,准备与迁移见 `.template-spec/process/contract-reading.md`) 和真实工程合同批准记录。API `required` 必须闭包绑定同一 OpenAPI YAML 字节的 Validation、独立 Review、Freeze 与工程批准;`not-applicable` 必须绑定评估、明确原因和证据且禁止空占位资产。历史 Manifest 只读审计见 [历史兼容边界](references/generator-maintenance.md),不得用于新生成。
|
|
78
78
|
- DDD 固定 `target-domain-model`、`mybatis-plus`、H2 验证、`web` DTO、`yss-internal`;平台与 Validation 命名空间由共享清单约束。普通 MyBatis、独立 client module、client-in-domain 和其他旧架构仍为 `unsupported`。
|
|
79
79
|
- 运行生成器必须传入 `--contract-file`;生成器会校验合同 `status=approved`、`current_version`、`primary_skill`、`controlled-generation`、实际输出路径和固定三条验证命令,不接受仅凭任意字符串引用的放行。
|
|
80
80
|
- 生成项目必须写入 Manifest v4 `.yss/scaffold-generation.json`,记录技术、数据与 API 设计门禁、架构选择及 digest、生成器、合同 digest、Target Profile、模块闭包、模板 digest、下游完整 当前合同 freshness、generator-owned 文件 hash、严格 `generation_policy` 和完成等级;清单缺失或不一致时不得交给后续 实现合同编译器。
|
|
@@ -209,7 +209,7 @@ export class ScaffoldGenerator {
|
|
|
209
209
|
if (!contract || Array.isArray(contract) || typeof contract !== "object") fail("脚手架合同必须是 JSON 对象");
|
|
210
210
|
if (contract.schema_version !== 4) fail(`unsupported: 后端新生成只接受 Project Scaffold Contract v4,收到 v${contract.schema_version}`);
|
|
211
211
|
if (contract.kind !== "project-scaffold-contract" || contract.delivery_role !== "backend" || contract.scaffold_kind !== "backend-ddd") fail("schema v4 合同必须绑定 backend/backend-ddd");
|
|
212
|
-
validateJsonSchema(contract, path.join(REPOSITORY_ROOT, "
|
|
212
|
+
validateJsonSchema(contract, path.join(REPOSITORY_ROOT, ".template-spec/process/schemas/project-scaffold-contract.schema.json"), { label: "Project Scaffold Contract v4" });
|
|
213
213
|
const requiredMetadata = [["--contract-id", this.options.contractId], ["--contract-version", this.options.contractVersion], ["--approval-ref", this.options.approvalRef], ["--compiler-draft-ref", this.options.compilerDraftRef], ["--persisted-ref", this.options.persistedRef]];
|
|
214
214
|
const missing = requiredMetadata.filter(([, value]) => !isPresent(value)).map(([flag]) => flag);
|
|
215
215
|
if (missing.length) fail(`生成项目必须提供当前已批准脚手架合同的完整元数据: ${missing.join(", ")}`);
|
|
@@ -10,24 +10,24 @@ description: 建立或核验 YSS 设计系统、主题 Token 与页面视觉一
|
|
|
10
10
|
## 权威资料
|
|
11
11
|
|
|
12
12
|
- 规范源:根 `DESIGN.md`,是项目视觉 Token 与组件视觉变体的唯一事实来源,使用 Google `design.md` alpha canonical H2 章节。
|
|
13
|
-
-
|
|
14
|
-
- 项目 Token
|
|
15
|
-
- 本技能执行清单:`references/design-system.md`,用于 Agent 执行和评审,不替代
|
|
13
|
+
- 团队治理说明:`.template-spec/design/design.md`,解释 YSS 生命周期、组件路线、状态与验收,不重新定义 `DESIGN.md` 中的具体值。
|
|
14
|
+
- 项目 Token 快照:`.template-spec/design/tokens/theme.json`、`.template-spec/design/tokens/tokens.default.json`、`.template-spec/design/tokens/tokens.dark.json`、`.template-spec/design/tokens/tokens.compact.json`、`.template-spec/design/tokens/variables.css`、`.template-spec/design/tokens/variables.dark.css`;它们是派生实现视图,不得反向覆盖规范源。
|
|
15
|
+
- 本技能执行清单:`references/design-system.md`,用于 Agent 执行和评审,不替代 `.template-spec/design/design.md`。
|
|
16
16
|
- 历史输入包:`/Users/zhudaoming/Downloads/Product-Design-System`,只用于追溯首次引入来源,不作为后续工程依赖。
|
|
17
17
|
- 默认主题来源:Data Quality 主题经项目适配后落到根 `DESIGN.md`;来源与 AntD v6 设计参考 / Vue 运行时的区别见 `references/data-quality-theme.md`。
|
|
18
18
|
- Codex `$design-qa` 项目对照:`references/design-qa-theme.md`,不替代官方 `design-qa` 流程,也不改上游插件正文。
|
|
19
19
|
- 原型阶段合同:`yss-prototype-stage`,用于统一 H1/H2 原型资产和浏览器验证证据。H1/H2 默认使用项目 Token 驱动的 HTML/CSS/JavaScript 离线原型。
|
|
20
20
|
|
|
21
|
-
如果只需要快速判断,先读本文件。若要写 UI 规范、实现页面、评审设计或调整 Token,必须按 `DESIGN.md` →
|
|
21
|
+
如果只需要快速判断,先读本文件。若要写 UI 规范、实现页面、评审设计或调整 Token,必须按 `DESIGN.md` → `.template-spec/design/design.md` 顺序读取,再按当前主题、密度与输出表面选择对应 Token 文件,不全量预读所有主题;若要执行评审或实现检查,再读 `references/design-system.md`。
|
|
22
22
|
|
|
23
23
|
## 使用流程
|
|
24
24
|
|
|
25
25
|
1. 先判断任务阶段:设计系统引入 / 产品设计 / 原型评审 / 前端实现 / UI 改造 / 主题 token 落地。
|
|
26
|
-
2. 读取已有资产:先读根 `DESIGN.md`,再读
|
|
26
|
+
2. 读取已有资产:先读根 `DESIGN.md`,再读 `.template-spec/design/design.md` 和 Token 派生快照,最后按任务读取相关 Spec、交互说明、状态矩阵、OpenAPI Draft、现有页面代码。
|
|
27
27
|
3. 按设计系统基线约束输出或修改产物:颜色、排版、间距、圆角、动效、组件、状态、响应式。
|
|
28
28
|
4. 若是产品设计阶段,先使用 `yss-prototype-stage`;规范直出由 YSS HTML adapter 执行;存在已选视觉稿时条件使用 `product-design:index`,其他 Agent 交付等价证据。
|
|
29
29
|
5. 若是前端实现阶段,配合 `yss-ui`、`yss-ui-business-page-generation`、`yss-formily` 及实际命中的组件专项,但本技能负责风格与体验一致性门禁。
|
|
30
|
-
6. 若发现视觉 Token 或组件变体不足,先更新根 `DESIGN.md` 并重新生成投影;只有治理、流程或验收说明不足时才更新
|
|
30
|
+
6. 若发现视觉 Token 或组件变体不足,先更新根 `DESIGN.md` 并重新生成投影;只有治理、流程或验收说明不足时才更新 `.template-spec/design/design.md`。
|
|
31
31
|
|
|
32
32
|
## 核心基线
|
|
33
33
|
|
|
@@ -62,7 +62,7 @@ description: 建立或核验 YSS 设计系统、主题 Token 与页面视觉一
|
|
|
62
62
|
|
|
63
63
|
设计类任务至少输出:
|
|
64
64
|
|
|
65
|
-
- 设计系统引用:明确引用根 `DESIGN.md`、治理说明
|
|
65
|
+
- 设计系统引用:明确引用根 `DESIGN.md`、治理说明 `.template-spec/design/design.md` 和所选主题的 Token 快照;原型证据记录规范与 Token 摘要。
|
|
66
66
|
- 页面和模块:页面清单、布局结构、主路径、异常路径。
|
|
67
67
|
- 组件选择:YSS UI / Ant Design 组件映射。
|
|
68
68
|
- 状态矩阵:加载、空、错、禁用、只读、无权限、冲突、成功。
|
|
@@ -99,10 +99,10 @@ description: 建立或核验 YSS 设计系统、主题 Token 与页面视觉一
|
|
|
99
99
|
当用户要求“引入设计系统”“形成项目规范”“更新设计系统 skill”时:
|
|
100
100
|
|
|
101
101
|
1. 分析来源设计系统,不原样堆拷贝。
|
|
102
|
-
2. 将稳定视觉 Token 与组件变体先落到根 `DESIGN.md`;治理、流程和验收说明再落到
|
|
103
|
-
3. 运行 `node .template-source/tooling/node/scripts/design-md.mjs export dtcg --write --write-manifest --antd-toolchain <固定antd6.6.4作者目录>` 更新派生视图;运行前先更新
|
|
102
|
+
2. 将稳定视觉 Token 与组件变体先落到根 `DESIGN.md`;治理、流程和验收说明再落到 `.template-spec/design/design.md`。
|
|
103
|
+
3. 运行 `node .template-source/tooling/node/scripts/design-md.mjs export dtcg --write --write-manifest --antd-toolchain <固定antd6.6.4作者目录>` 更新派生视图;运行前先更新 `.template-source/design/design-system-sync.yaml` 的规范源摘要。
|
|
104
104
|
4. 将 Agent 执行入口落到 `.agents/skills/yss-design-system/SKILL.md`,执行清单落到 `references/design-system.md`;两者只引用 Token 名和角色,不复制具体值。
|
|
105
|
-
5. 更新
|
|
105
|
+
5. 更新 `.template-spec/design/README.md` 和必要的 `AGENTS.md` 入口规则。
|
|
106
106
|
6. 运行 frontmatter、对应 `node --test`、`design-md lint/drift`、技能投影与 lock 校验。
|
|
107
107
|
|
|
108
108
|
默认主题事实见 `references/data-quality-theme.md`;运行时 Ant Design Vue 4 与 AntD v6 设计参考分别记录。
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
## Source visual truth
|
|
6
6
|
|
|
7
7
|
- 规范:根 `DESIGN.md`
|
|
8
|
-
-
|
|
9
|
-
- Token
|
|
8
|
+
- 治理说明:`.template-spec/design/design.md`
|
|
9
|
+
- Token 投影:`.template-spec/design/tokens/theme.json`、`.template-spec/design/tokens/tokens.default.json`、`.template-spec/design/tokens/variables.css`
|
|
10
10
|
- 主题选择:默认采用根 `DESIGN.md` 的 Data Quality 浅色主题;仅显式暗色 / 紧凑模式使用对应的 `tokens.dark.json` / `variables.dark.css` / `tokens.compact.json`,以实际消费文件记录摘要。
|
|
11
11
|
- 实现截图:当前原型或页面在同一 viewport / 主题 / 状态下的渲染
|
|
12
12
|
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
| 功能状态 | `colors.success*` / `warning*` / `error*` / `info-bg` | 改成非功能色装饰 |
|
|
24
24
|
| 页面 / 容器 / 浮层 | `colors.canvas-layout` / `surface*` | 用阴影或局部硬编码堆叠表面层级 |
|
|
25
25
|
| 主次文本 | `colors.text*` | 使用历史文本值或页面特例 |
|
|
26
|
-
| 运行时变量 |
|
|
26
|
+
| 运行时变量 | `.template-spec/design/tokens/variables.css` 必须与根规范 digest 同步 | 页面另写一套 Less/CSS 色值 |
|
|
27
27
|
|
|
28
28
|
上游预设色板不是品牌 seed,不要据此判定规范漂移。
|
|
29
29
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
权威资料:
|
|
6
6
|
|
|
7
7
|
- 规范源:根 `DESIGN.md`(项目视觉 Token 与组件视觉变体)
|
|
8
|
-
-
|
|
9
|
-
-
|
|
8
|
+
- 治理说明:`.template-spec/design/design.md`(生命周期、组件路线、状态与验收)
|
|
9
|
+
- 派生快照:`.template-spec/design/tokens/*`(实现映射,不得反向覆盖规范源)
|
|
10
10
|
- Skill 入口:`.agents/skills/yss-design-system/SKILL.md`
|
|
11
11
|
|
|
12
12
|
## 设计定位
|
|
@@ -205,7 +205,7 @@ YSS UI / Vue:
|
|
|
205
205
|
|
|
206
206
|
设计评审时检查:
|
|
207
207
|
|
|
208
|
-
- 是否引用根 `DESIGN.md`、治理说明
|
|
208
|
+
- 是否引用根 `DESIGN.md`、治理说明 `.template-spec/design/design.md` 与所选主题快照,并在原型证据中记录摘要。
|
|
209
209
|
- 是否符合中后台定位。
|
|
210
210
|
- 页面清单、主路径、异常路径是否清楚。
|
|
211
211
|
- 状态矩阵是否完整。
|
|
@@ -25,7 +25,7 @@ Read `references/source-index.md` as a path-hint index whenever the task depends
|
|
|
25
25
|
4. Check `YssGlobalExceptionProperties` when global exception output/logging behavior is configurable.
|
|
26
26
|
5. Keep logging semantics aligned: business exceptions usually do not require error-stack logging; system/unknown exceptions usually do.
|
|
27
27
|
6. In the `target-domain-model` profile, Domain owns stable error meaning and parameters but does not depend directly on YSS `BizException` or HTTP. Translate at the Web boundary after verifying the component handler precedence.
|
|
28
|
-
7. MVC Profile 的稳定业务错误归 service/core;Repository 保留 cause;server 持有 HTTP 映射与脱敏。不要为了复用错误码引入 Domain 层或让 core 依赖 client。分层依据
|
|
28
|
+
7. MVC Profile 的稳定业务错误归 service/core;Repository 保留 cause;server 持有 HTTP 映射与脱敏。不要为了复用错误码引入 Domain 层或让 core 依赖 client。分层依据 `.template-spec/agents/backend-architecture-profiles.md`。
|
|
29
29
|
|
|
30
30
|
## Boot 3 Current Source Behavior
|
|
31
31
|
|
|
@@ -32,7 +32,7 @@ description: Use when creating a new YSS frontend micro-application from the sta
|
|
|
32
32
|
|
|
33
33
|
## Workflow
|
|
34
34
|
|
|
35
|
-
采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按
|
|
35
|
+
采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `.template-spec/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
|
|
36
36
|
|
|
37
37
|
1. 确认当前任务已经通过 Harness 入口分诊、逐项目脚手架决定已由真实用户确认,且 schema v4 合同已由生命周期批准、持久化并保持当前。
|
|
38
38
|
2. 确认目标是外部实现仓库;只有用户明确选择时才输出到 Harness 仓库的 `apps/frontend/<project>/`。`apps/frontend/` 只能作为项目容器,`app/frontend/`、`app/backend/` 及其子路径禁止作为输出位置。`git-submodule` 只能在已初始化且附加分支的子仓工作树生成;空 gitlink、detached HEAD、`--force` 覆盖挂载点不得当成普通目录。
|
|
@@ -42,7 +42,7 @@ description: Use when creating a new YSS frontend micro-application from the sta
|
|
|
42
42
|
6. 有 API 影响时核验 OpenAPI Freeze 记录和 JSON 派生记录,将摘要一致的 JSON 原样物化到 `<frontend>/openapi/openapi.json`;`openapi_impact=not-applicable` 时必须有原因并禁止生成 API client。
|
|
43
43
|
7. 保持模板既有的前端代码生成配置不变;本 Harness 只将 SHA-256 一致的 JSON 原样交给既有前端代码生成流程,不修改该配置、不在此仓库执行生成,也不设置生成 CI 门禁。目标前端项目在需要时手动运行其既有命令。
|
|
44
44
|
8. 企业 registry / 认证由目标环境用户级 npm 配置提供,禁止复制来源 `.npmrc` 或 token。实际执行并记录 `pnpm install --frozen-lockfile`、`pnpm lint:check`、`pnpm type-check`、`pnpm build`、`pnpm build:standalone` 的退出码和日志;缺失脚本只能由批准的工程基线提供替代命令。任何必需命令失败都阻断。
|
|
45
|
-
9. 按
|
|
45
|
+
9. 按 `.template-spec/templates/implementation-repo-registry-template.md` 回写前端实现仓库登记。
|
|
46
46
|
|
|
47
47
|
## Expected Template Shape
|
|
48
48
|
|
package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs
CHANGED
|
@@ -28,7 +28,7 @@ function walk(root) {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
function validate(contract, outputDir) {
|
|
31
|
-
validateJsonSchema(contract, path.join(REPOSITORY_ROOT, "
|
|
31
|
+
validateJsonSchema(contract, path.join(REPOSITORY_ROOT, ".template-spec/process/schemas/project-scaffold-contract.schema.json"), { label: "Project Scaffold Contract v4" });
|
|
32
32
|
if (contract.schema_version !== 4 || contract.kind !== "project-scaffold-contract") fail("frontend scaffold requires Project Scaffold Contract schema v4");
|
|
33
33
|
if (contract.status !== "approved" || contract.current_version !== true || !contract.persisted_ref) fail("scaffold contract must be approved, persisted and current");
|
|
34
34
|
if (contract.delivery_role !== "frontend" || contract.scaffold_kind !== "frontend-yss-vue3" || contract.generator_skill !== "yss-frontend-scaffold-generator") fail("contract is not for the YSS frontend generator");
|
|
@@ -9,8 +9,8 @@ const assets = path.join(skill, 'assets/data-quality-v1');
|
|
|
9
9
|
const sha = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
|
|
10
10
|
const walk = root => readdirSync(root, { withFileTypes: true }).flatMap(item => item.isDirectory() ? walk(path.join(root, item.name)) : [path.join(root, item.name)]);
|
|
11
11
|
const design = readFileSync(path.join(repository, 'DESIGN.md'));
|
|
12
|
-
const theme = JSON.parse(readFileSync(path.join(repository, '
|
|
13
|
-
const css = readFileSync(path.join(repository, '
|
|
12
|
+
const theme = JSON.parse(readFileSync(path.join(repository, '.template-spec/design/tokens/theme.json')));
|
|
13
|
+
const css = readFileSync(path.join(repository, '.template-spec/design/tokens/variables.css'), 'utf8');
|
|
14
14
|
const token = name => css.match(new RegExp(`--${name}: ([^;]+);`))[1];
|
|
15
15
|
const projection = { ...theme, accessibility: { primaryControl: token('yss-color-primary-control'), primaryControlHover: token('yss-color-primary-control-hover') } };
|
|
16
16
|
const generated = { 'DESIGN.md': design, 'packages/src/config/theme.json': Buffer.from(JSON.stringify(projection, null, 2) + '\n') };
|
|
@@ -5,15 +5,15 @@ description: "编译或重验 YSS Slice Implementation Contract、最小 Skill
|
|
|
5
5
|
|
|
6
6
|
# YSS Implementation Contract Compiler
|
|
7
7
|
|
|
8
|
-
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见
|
|
8
|
+
已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `.template-spec/process/contract-reading.md`。
|
|
9
9
|
|
|
10
10
|
阶段 7 的实现合同编译器。它把已批准的生命周期资产、垂直切片、capability 和窄 Recipe 编译为 `Slice Implementation Contract` v3 草案;不批准合同、不写业务代码、不设置 `ready-for-agent`。
|
|
11
11
|
|
|
12
|
-
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取
|
|
12
|
+
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
13
13
|
|
|
14
14
|
## 文档写作
|
|
15
15
|
|
|
16
|
-
撰写实现合同的解释正文和切片交接说明前,读取
|
|
16
|
+
撰写实现合同的解释正文和切片交接说明前,读取 `.template-spec/process/document-writing.md` 的共用写法及工程契约 / Ticket 指引;不改变结构化合同、批准状态或就绪条件。
|
|
17
17
|
|
|
18
18
|
## 输入
|
|
19
19
|
|
|
@@ -22,8 +22,8 @@ description: "编译或重验 YSS Slice Implementation Contract、最小 Skill
|
|
|
22
22
|
## 编译循环
|
|
23
23
|
|
|
24
24
|
1. 判断 frontend/backend/API/data/domain/cross-repo 影响,并按 [compiler-contract.yaml](references/compiler-contract.yaml) 把 impact 映射为入口 capability;逐项填写 backend `component_impacts`。
|
|
25
|
-
2. 按
|
|
26
|
-
3. 从
|
|
25
|
+
2. 按 `.template-spec/process/delivery-preflight.md` 只读检查当前阶段交付前提,再检查工程存在性和核心/长尾 skill 可用性。既有 Java/Maven 工程按 `.template-spec/process/existing-backend-architecture.md` 加载登记、工程基线、独立观测的原始引用与摘要;不伪填生成器或 H2。
|
|
26
|
+
3. 从 `.template-spec/agents/yss-skill-registry.yaml` 选择一个或多个窄 Recipe,合并 `required_capabilities`;Recipe 不得直接引用 skill。
|
|
27
27
|
4. 由 capability 解析入口 skill,只递归 `context-required`;`context-conditional` 仅在显式 condition 命中时加载,其他依赖类型只进入原因链,不扩张执行上下文。
|
|
28
28
|
5. 按“Recipe 声明顺序 → 依赖拓扑 → skill ID”确定性排序,去重 skill 并保留全部原因;冻结 Registry 与编译器合同 SHA-256。
|
|
29
29
|
6. 为切片生成基线合同;为当前行为生成工作单元增量路由。
|
|
@@ -32,11 +32,11 @@ description: "编译或重验 YSS Slice Implementation Contract、最小 Skill
|
|
|
32
32
|
|
|
33
33
|
完整草案使用 `scripts/slice-contract prepare` 或 `prepareSliceImplementationContract` 从已有 Ticket / checkpoint 和必要细化组装;执行前读取唯一 YAML,视图和检查报告不授予权限。
|
|
34
34
|
|
|
35
|
-
合同结构见 [slice-implementation-contract.md](references/slice-implementation-contract.md),专项返回协议见 [yss-skill-execution-result.md](references/yss-skill-execution-result.md)。前端、后端和测试子任务必须由生命周期主控从批准的 Slice Contract 编译任务包;任务包 schema 为
|
|
35
|
+
合同结构见 [slice-implementation-contract.md](references/slice-implementation-contract.md),专项返回协议见 [yss-skill-execution-result.md](references/yss-skill-execution-result.md)。前端、后端和测试子任务必须由生命周期主控从批准的 Slice Contract 编译任务包;任务包 schema 为 `.template-spec/process/schemas/subagent-task-package.schema.json`,技能列表必须来自 `taskPackageDefaults`,不能由编译器或执行 Agent 另行手写。
|
|
36
36
|
|
|
37
37
|
## 硬规则
|
|
38
38
|
|
|
39
|
-
采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按
|
|
39
|
+
采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `.template-spec/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
|
|
40
40
|
|
|
41
41
|
- 编译器不得输出 `approved`、`ready-for-agent` 或 `completed`。
|
|
42
42
|
- Registry 和编译规则保持 schema v2;新 Slice 使用 v3,v2 按原规则读取和显式迁移。schema v1 一律拒绝,不自动升级,不提供旧技能名兼容。
|
|
@@ -49,7 +49,7 @@ description: "编译或重验 YSS Slice Implementation Contract、最小 Skill
|
|
|
49
49
|
- Harness 内实现路径必须落在 `apps/backend/<project>/` 或 `apps/frontend/<project>/` 的具体项目目录;`apps/backend/`、`apps/frontend/` 只能作为容器,`app/backend/`、`app/frontend/` 及其子路径一律阻断。外部实现仓库使用其登记的真实项目根路径。`git-submodule` 使用 `implementation_path_policy: git-submodule-harness-apps`,空 gitlink、detached HEAD 或 `--force` 覆盖挂载点不得脚手架;`inspectWorkingTreeScope.writable` 必须为显式布尔值。
|
|
50
50
|
- 当前用户、缓存、审计、Excel、分布式 ID、请求校验、错误映射、加解密或网关韧性命中时,必须按 `compiler-contract.yaml` 的 `impact_to_capabilities` 补齐入口 capability;不能只在 `boundaries.md` 中提及。仅复用已经验证的平台认证 / 授权能力不算 component impact,不自动增加权限专项 skill。
|
|
51
51
|
- 业务行为使用 `behavior-tdd`;只有机械脚手架/生成物可用 `controlled-generation`,并记录例外和验证。
|
|
52
|
-
- 阶段 5 若命中交付面且无已有工程,按 Project Scaffold Contract schema v4 编译 `controlled-generation` 合同 draft。后端先读取已通过 `gate.backend-architecture-platform-approved` 的架构与精确 Spring Boot 版本决定,并以原始字节 digest 绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision v1 及 `gate.engineering-contract-approved` 真实批准记录;编译器不得自行默认、提问或批准。既有工程核验并复用当前登记架构及固定工程基线/POM 中的实际版本,不重新询问或生成。API `required` 时工程批准还必须直接绑定冻结 OpenAPI YAML 的版本与摘要,`not-applicable` 时必须有影响评估、明确原因和证据。前端绑定标准模板精确 commit、应用标识、路由、OpenAPI 影响、目标路径和 `init_git` 决定。合同经生命周期批准并持久化后才能运行生成器。历史后端 schema v3 只允许 Manifest 只读恢复审计,并须补齐 API 对账,不得新生成;前端只接受 v4。生成与验证完成、仓库登记并通过 `check.implementation-repositories-ready` 后,才编译 Ticket 与业务 Slice Contract。
|
|
52
|
+
- 阶段 5 若命中交付面且无已有工程,按 Project Scaffold Contract schema v4 编译 `controlled-generation` 合同 draft。后端先读取已通过 `gate.backend-architecture-platform-approved` 的架构与精确 Spring Boot 版本决定,并以原始字节 digest 绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision(新建 v2;历史 v1 只读兼容,准备与迁移见 `.template-spec/process/contract-reading.md`) 及 `gate.engineering-contract-approved` 真实批准记录;编译器不得自行默认、提问或批准。既有工程核验并复用当前登记架构及固定工程基线/POM 中的实际版本,不重新询问或生成。API `required` 时工程批准还必须直接绑定冻结 OpenAPI YAML 的版本与摘要,`not-applicable` 时必须有影响评估、明确原因和证据。前端绑定标准模板精确 commit、应用标识、路由、OpenAPI 影响、目标路径和 `init_git` 决定。合同经生命周期批准并持久化后才能运行生成器。历史后端 schema v3 只允许 Manifest 只读恢复审计,并须补齐 API 对账,不得新生成;前端只接受 v4。生成与验证完成、仓库登记并通过 `check.implementation-repositories-ready` 后,才编译 Ticket 与业务 Slice Contract。
|
|
53
53
|
- 脚手架合同在编译阶段只能是 `draft` / `ready-for-lifecycle-review` / `blocked`;只有生命周期编排器可以把已持久化脚手架合同标记为 `approved`。脚手架合同只覆盖业务代码前的工程骨架工作单元;生成、基线校验和合同重编译完成后,它不能替代脚手架后的 Slice Implementation Contract。
|
|
54
54
|
- 脚手架输出消费批准的脚手架合同;脚手架后的所有生成后端代码都必须绑定当前批准且版本当前的 Slice Implementation Contract、主 YSS skill、依赖闭包、允许写路径、预期证据和 YSS Skill Execution Result。打印命令、`./mvnw validate` 单项通过或脚手架成功不能替代合同批准;生成范围从机械内容变成业务行为时触发完整重路由。
|
|
55
55
|
- 专项结果中的越界路径、缺失证据、`drift`、`violation` 或 `new_impacts` 必须阻断或重路由。
|
|
@@ -72,6 +72,6 @@ description: "编译或重验 YSS Slice Implementation Contract、最小 Skill
|
|
|
72
72
|
|
|
73
73
|
## 后端脚手架平台承接
|
|
74
74
|
|
|
75
|
-
消费生命周期已确认的架构与 `platform_configuration` v2;不得自行选择、批准或静默升级 Boot/Java。平台清单执行 `scripts/backend-platforms` 查询;只允许已验证 YSS 组合,新生成缺少配置或证据即阻断。决定、合同、Manifest 与下游架构身份须绑定同一平台及兼容摘要。详见 仓库共享合同
|
|
75
|
+
消费生命周期已确认的架构与 `platform_configuration` v2;不得自行选择、批准或静默升级 Boot/Java。平台清单执行 `scripts/backend-platforms` 查询;只允许已验证 YSS 组合,新生成缺少配置或证据即阻断。决定、合同、Manifest 与下游架构身份须绑定同一平台及兼容摘要。详见 仓库共享合同 `.template-spec/engineering/backend-platforms.md`。
|
|
76
76
|
|
|
77
77
|
后端 Slice 解析出 `component_binding: required` 的 capability 或其主 Skill 时,必须在同一平台兼容条目中逐项解析 `component_capabilities`。编译结果保存 `component_bindings` 与 `component_bindings_digest`;未登记、未验证、架构证据缺失、构件坐标冲突或摘要漂移均阻断。旧合同含组件 Skill 但没有组件绑定时直接 `stale`,重新编译并交生命周期批准,禁止自动补字段后沿用原批准。
|
package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# YSS Skill Boundaries
|
|
2
2
|
|
|
3
|
-
> Generated by `scripts/generate-yss-skill-boundaries` from
|
|
3
|
+
> Generated by `scripts/generate-yss-skill-boundaries` from `.template-spec/agents/yss-skill-registry.yaml` and `compiler-contract.yaml`. Do not hand-edit.
|
|
4
4
|
|
|
5
5
|
实现入口先选择 capability 或窄 Recipe,再由实现合同编译器计算最小 skill 闭包。下面是派生阅读视图,不是第二套路由事实源。
|
|
6
6
|
|
|
@@ -2,12 +2,12 @@ schema_version: 2
|
|
|
2
2
|
slice_contract_versions:
|
|
3
3
|
default: 3
|
|
4
4
|
accepted: [2, 3]
|
|
5
|
-
v3_schema:
|
|
5
|
+
v3_schema: .template-spec/process/schemas/slice-implementation-contract-v3.schema.json
|
|
6
6
|
normalization: scripts/lib/slice-contract.mjs
|
|
7
7
|
v2_migration: explicit-new-draft-no-inherited-approval
|
|
8
8
|
backend_architecture:
|
|
9
|
-
registry_source:
|
|
10
|
-
identity_schema:
|
|
9
|
+
registry_source: .template-spec/agents/yss-skill-registry.yaml
|
|
10
|
+
identity_schema: .template-spec/process/schemas/backend-architecture-identity.schema.json
|
|
11
11
|
required_evidence: [engineering_baseline, repository_registration, manifest]
|
|
12
12
|
evidence_loading: original-references-and-raw-sha256
|
|
13
13
|
existing_identity: {schema_version: 2, source_kind: existing-registration, profiles_source: existing_project_profiles}
|
|
@@ -18,8 +18,8 @@ backend_architecture:
|
|
|
18
18
|
readiness: supported-profile-and-current-identical-evidence
|
|
19
19
|
compiled_by: yss-implementation-contract-compiler
|
|
20
20
|
approved_by: yss-product-lifecycle
|
|
21
|
-
capability_source:
|
|
22
|
-
recipe_source:
|
|
21
|
+
capability_source: .template-spec/agents/yss-skill-registry.yaml
|
|
22
|
+
recipe_source: .template-spec/agents/yss-skill-registry.yaml
|
|
23
23
|
digest_algorithm: sha256
|
|
24
24
|
unsupported_inputs:
|
|
25
25
|
registry_schema_v1: reject-with-migration-guidance
|
|
@@ -73,7 +73,7 @@ readiness:
|
|
|
73
73
|
cross_repo: [repository_registry, delivery_order, integration_verification, rollback_order]
|
|
74
74
|
frontend_delivery:
|
|
75
75
|
when: specialized-frontend-profile-or-explicit-frontend-delivery-binding
|
|
76
|
-
source:
|
|
76
|
+
source: .template-spec/process/frontend-backend-delivery.md
|
|
77
77
|
verifier: scripts/verify-frontend-delivery
|
|
78
78
|
output_binding: frontend.delivery
|
|
79
79
|
inputs_verified_is_implementation_approval: false
|
|
@@ -146,7 +146,7 @@ resolution_contract:
|
|
|
146
146
|
component_bindings:
|
|
147
147
|
when: any-required-capability-provider-kind-is-yss-component
|
|
148
148
|
platform_configuration: required-v2
|
|
149
|
-
catalog_source:
|
|
149
|
+
catalog_source: .template-spec/engineering/backend-platforms.json
|
|
150
150
|
required_fields: [component_bindings, component_bindings_digest]
|
|
151
151
|
exact_artifact_binding: [group_id, artifact_id, declared_version, resolved_version, pom_sha256, jar_sha256, source_tree]
|
|
152
152
|
digest_change_status: stale
|
|
@@ -159,7 +159,7 @@ context_plan:
|
|
|
159
159
|
|
|
160
160
|
project_scaffold_contract_schema:
|
|
161
161
|
schema_version: 4
|
|
162
|
-
schema_ref:
|
|
162
|
+
schema_ref: .template-spec/process/schemas/project-scaffold-contract.schema.json
|
|
163
163
|
identity: project-engineering-baseline
|
|
164
164
|
discriminant: delivery_role
|
|
165
165
|
delivery_roles:
|
|
@@ -440,7 +440,7 @@ strategic_handoff_consumption:
|
|
|
440
440
|
|
|
441
441
|
backend_platform_contract:
|
|
442
442
|
schema_version: 2
|
|
443
|
-
catalog_ref:
|
|
443
|
+
catalog_ref: .template-spec/engineering/backend-platforms.json
|
|
444
444
|
configuration_field: platform_configuration
|
|
445
445
|
selection_owner: yss-product-lifecycle
|
|
446
446
|
new_generation_requires: [exact-boot-java, confirmed-decision, matching-yss-coordinates, verified-compatibility-entry]
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
# Slice Implementation Contract
|
|
6
6
|
|
|
7
|
-
后端合同还必须绑定 `architecture_identity`(schema 见
|
|
7
|
+
后端合同还必须绑定 `architecture_identity`(schema 见 `.template-spec/process/schemas/backend-architecture-identity.schema.json`),并与工程基线、登记和 Manifest 一致。将同一身份复制到 `resolution`、backend 工作单元和执行结果;Profile 的成熟度/Recipe 来源是技能注册表,draft 不得 ready-for-agent。旧 backend.domain-behavior/persistence-mybatis/http-api Recipe 只读退役,重新编译时显式选择 backend.ddd-* 或 backend.mvc-*。
|
|
8
8
|
|
|
9
9
|
`yss-implementation-contract-compiler` 生成草案;`yss-product-lifecycle` 核验、批准并持久化。合同缺少必填字段时状态为 `blocked`。schema v1 已停止支持,必须重新编译为 v2,不提供自动升级。
|
|
10
10
|
|
|
11
|
-
采用专职前端 profile 时,`frontend.delivery` 绑定 `{acceptance_ref, digest}`,来自 `scripts/verify-frontend-delivery` 的当前结果;也可由 `resolution.frontend_delivery` 承载,两处并存时必须一致。正式执行从持久化合同读取并重验输入。细则见
|
|
11
|
+
采用专职前端 profile 时,`frontend.delivery` 绑定 `{acceptance_ref, digest}`,来自 `scripts/verify-frontend-delivery` 的当前结果;也可由 `resolution.frontend_delivery` 承载,两处并存时必须一致。正式执行从持久化合同读取并重验输入。细则见 `.template-spec/process/frontend-backend-delivery.md`。
|
|
12
12
|
|
|
13
13
|
```yaml
|
|
14
14
|
slice_contract:
|
|
@@ -55,7 +55,7 @@ slice_contract:
|
|
|
55
55
|
recipe_ids: []
|
|
56
56
|
conditions: []
|
|
57
57
|
reason_chains: {}
|
|
58
|
-
registry_digest: # sha256 of normalized
|
|
58
|
+
registry_digest: # sha256 of normalized .template-spec/agents/yss-skill-registry.yaml
|
|
59
59
|
compiler_contract_digest: # sha256 of normalized compiler-contract.yaml
|
|
60
60
|
compiled_at:
|
|
61
61
|
freshness: current # digest 变化后为 stale
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
YAML 是唯一权威合同。Agent 从已确认上游整理草案;用户确认目标、范围、验收和关键取舍;独立专业审查核验工程约束,生命周期主控关闭 `gate.slice-contract-approved`。新合同使用 schema v3;[v2](slice-implementation-contract-v2.md) 保留原规则读取和校验,schema v1 继续拒绝。
|
|
4
4
|
|
|
5
|
-
结构权威为
|
|
5
|
+
结构权威为 `.template-spec/process/schemas/slice-implementation-contract-v3.schema.json`。Registry、编译规则与 Execution Result 继续使用各自版本;Slice v3 不要求它们一同升级。
|
|
6
6
|
|
|
7
7
|
## 只保存一次
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## 战略交接快照包
|
|
2
2
|
|
|
3
|
-
跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见
|
|
3
|
+
跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见 `.template-spec/process/strategic-handoff-package.md`。
|
|
4
4
|
|
|
5
5
|
来自战略交接包的技术设计合同(DDD / MVC)必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
|
|
6
6
|
|
|
@@ -11,7 +11,7 @@ description: 在生命周期已批准的脚手架合同下生成通用 YSS 分
|
|
|
11
11
|
|
|
12
12
|
- backend `scaffold_status=required`,目标目录已确认且不存在。
|
|
13
13
|
- `scaffold-architecture-decisions.yaml` 中对应项目已达到 `lifecycle-approved`,确认架构为 `layered-mvc`。
|
|
14
|
-
- `yss-implementation-contract-compiler` 已编译统一 Project Scaffold Contract schema v4,并绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision v1 和真实工程合同批准记录。API `required` 时 Draft、Validation、独立 Review、Freeze 与工程批准必须绑定同一 OpenAPI YAML 字节;`not-applicable` 时必须有评估、原因和证据且不得携带占位资产。合同须由生命周期批准并持久化。
|
|
14
|
+
- `yss-implementation-contract-compiler` 已编译统一 Project Scaffold Contract schema v4,并绑定批准且当前的 Technical Design、Data Architecture Decision v1、API Contract Decision(新建 v2;历史 v1 只读兼容,准备与迁移见 `.template-spec/process/contract-reading.md`) 和真实工程合同批准记录。API `required` 时 Draft、Validation、独立 Review、Freeze 与工程批准必须绑定同一 OpenAPI YAML 字节;`not-applicable` 时必须有评估、原因和证据且不得携带占位资产。合同须由生命周期批准并持久化。
|
|
15
15
|
- 合同中的 `decision_id`、文件 digest、Profile、能力闭包、写路径和验证命令仍为当前版本。
|
|
16
16
|
|
|
17
17
|
任一条件缺失时返回 `blocked`。本生成器无交互、无默认回退;用户选择由 `yss-product-lifecycle` 在 `work-unit.technical-analysis` 的工程基线内完成。
|
|
@@ -27,7 +27,7 @@ description: 在生命周期已批准的脚手架合同下生成通用 YSS 分
|
|
|
27
27
|
- Spring MVC、Servlet、Validation、Jackson 和 starter 坐标消费共享平台清单;Java 下限和允许组合由当前平台条目决定。Jakarta 转换不包括 `javax.sql` 等 Java SE API。
|
|
28
28
|
- 平台候选维护验证产物标记 `platform_verification=candidate`,不能交给业务生成、升级完成等级或进入首切片验证。测试夹具不证明 YSS 兼容。
|
|
29
29
|
|
|
30
|
-
版本清单、合同字段、候选验证和支持晋级规则见 仓库共享合同
|
|
30
|
+
版本清单、合同字段、候选验证和支持晋级规则见 仓库共享合同 `.template-spec/engineering/backend-platforms.md`。
|
|
31
31
|
|
|
32
32
|
## 架构与 Profile
|
|
33
33
|
|
package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs
CHANGED
|
@@ -32,7 +32,7 @@ async function sharedTools(outputDir, contract) {
|
|
|
32
32
|
}
|
|
33
33
|
const staging = await mkdtemp(path.join(outputDir, ".skillUtils.staging-"));
|
|
34
34
|
try {
|
|
35
|
-
for (const relative of [".agents/skills", ".codex/skills", ".cursor/skills", ".pi/skills", "scripts", "
|
|
35
|
+
for (const relative of [".agents/skills", ".codex/skills", ".cursor/skills", ".pi/skills", "scripts", ".template-spec/agents", ".template-spec/process", "AGENTS.md", "skills-lock.json"]) {
|
|
36
36
|
await mkdir(path.dirname(path.join(staging, relative)), { recursive: true });
|
|
37
37
|
await cp(path.join(REPOSITORY_ROOT, relative), path.join(staging, relative), { recursive: true });
|
|
38
38
|
}
|
|
@@ -55,7 +55,7 @@ export async function finalizeDataAnalysisProfile({ projectRoot, contract, archi
|
|
|
55
55
|
if (digest(context) !== contract.context_handoff_digest || !/^---\r?\ncontext_schema_version: 1\r?\n---/m.test(context.toString())) throw new Error("CONTEXT handoff schema/digest 不匹配");
|
|
56
56
|
if (spawnSync("git", ["--version"]).status !== 0) throw new Error("Git 不可用");
|
|
57
57
|
|
|
58
|
-
for (const relative of ["
|
|
58
|
+
for (const relative of [".template-spec/agents", ".template-spec/process", ".template-spec/templates", ".template-spec/architecture/templates"]) {
|
|
59
59
|
await mkdir(path.dirname(path.join(projectRoot, relative)), { recursive: true });
|
|
60
60
|
await cp(path.join(REPOSITORY_ROOT, relative), path.join(projectRoot, relative), { recursive: true });
|
|
61
61
|
}
|
|
@@ -73,9 +73,9 @@ export async function finalizeDataAnalysisProfile({ projectRoot, contract, archi
|
|
|
73
73
|
}
|
|
74
74
|
const lockDigest = await sharedTools(path.resolve(options.outputDir), contract);
|
|
75
75
|
await put(path.join(projectRoot, "skills-lock.json"), JSON.stringify({ version: 1, distribution: { mode: "sibling-directory", skillUtilsDir: "../skillUtils", required: true, compatibility: "skill-utils-v1", lock_digest: lockDigest } }, null, 2));
|
|
76
|
-
await put(path.join(projectRoot, "
|
|
77
|
-
await put(path.join(projectRoot, "
|
|
78
|
-
await put(path.join(projectRoot, "
|
|
76
|
+
await put(path.join(projectRoot, ".template-spec/process/engineering-baseline.json"), JSON.stringify({ schema_version: 1, architecture_identity: architectureIdentity, platform_profile: contract.profiles.platform, scaffold_completion: "generated" }, null, 2));
|
|
77
|
+
await put(path.join(projectRoot, ".template-spec/process/implementation-repo-registry.yaml"), JSON.stringify({ schema_version: 1, projects: [{ project_type: "backend", project_name: options.projectName, project_root: ".", git_root: ".", repository_scope: "external-repository", scaffold_status: "initialized", default_branch: "main", architecture_identity: architectureIdentity, allowed_write_paths: ["."], verification_commands: contract.verification_commands, expected_evidence_files: contract.expected_evidence_files, ci: "not-configured", rollback_point: "initial-empty-repository" }] }, null, 2));
|
|
78
|
+
await put(path.join(projectRoot, ".template-spec/process/service-initialization.json"), JSON.stringify({ work_unit: "work-unit.service-project-initialization", context_handoff_ref: contract.context_handoff_ref, context_handoff_digest: contract.context_handoff_digest, contract_id: contract.contract_id, architecture_identity: architectureIdentity, status: "generated" }, null, 2));
|
|
79
79
|
await put(path.join(projectRoot, ".gitignore"), "target/\n**/target/\n.idea/\n*.iml\n.env\n.env.*\n.local/");
|
|
80
80
|
const git = spawnSync("git", ["init", "--initial-branch=main"], { cwd: projectRoot, encoding: "utf8" });
|
|
81
81
|
if (git.status !== 0) throw new Error(`Git 初始化失败: ${git.stderr}`);
|