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
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const crypto = require("node:crypto");
|
|
4
|
+
const fs = require("node:fs");
|
|
5
|
+
|
|
6
|
+
const { targetPath, pathKind } = require("../filesystem/path-utils");
|
|
7
|
+
const {
|
|
8
|
+
createMigrationPlan,
|
|
9
|
+
addUnsafe,
|
|
10
|
+
addConflict,
|
|
11
|
+
addRemove,
|
|
12
|
+
} = require("./migration-planner");
|
|
13
|
+
|
|
14
|
+
const TRACKER_FROM = "docs/agents/issue-tracker.md";
|
|
15
|
+
const TRACKER_TO = ".template-spec/agents/issue-tracker.md";
|
|
16
|
+
const STATIC_DIRECTORIES = [
|
|
17
|
+
"docs/agents", "docs/process", "docs/templates", "docs/user-guide",
|
|
18
|
+
"docs/plan/templates", "docs/api/templates", "docs/architecture/templates",
|
|
19
|
+
"docs/design/templates", "docs/design/tokens", "docs/design/schemas",
|
|
20
|
+
"docs/design/diagrams", "docs/discovery/templates",
|
|
21
|
+
];
|
|
22
|
+
const STATIC_FILES = [
|
|
23
|
+
"docs/adr/README.md", "docs/architecture/README.md",
|
|
24
|
+
"docs/plan/README.md", "docs/plan/entry-review.md",
|
|
25
|
+
"docs/discovery/README.md", "docs/discovery/IDEATION.md",
|
|
26
|
+
"docs/design/README.md", "docs/design/design.md",
|
|
27
|
+
"docs/design/design-system-sync.yaml", "docs/design/preview.html",
|
|
28
|
+
"docs/design/preview-dark.html", "docs/design/preview.css",
|
|
29
|
+
"docs/design/preview.js", "docs/engineering/backend-platforms.json",
|
|
30
|
+
"docs/engineering/backend-platforms.md",
|
|
31
|
+
];
|
|
32
|
+
const RETIRED_SOURCE_ONLY = new Set([
|
|
33
|
+
"docs/agents/archify-integration.md", "docs/agents/skills-maintenance.md",
|
|
34
|
+
"docs/agents/strategic-design-skills-integration.md",
|
|
35
|
+
"docs/agents/yss-ui-skills-integration.md",
|
|
36
|
+
"docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md",
|
|
37
|
+
"docs/process/github-workflows.md", "docs/process/maintenance-intensity.yaml",
|
|
38
|
+
"docs/process/template-engineering-overview.md",
|
|
39
|
+
"docs/process/template-verification-profiles.yaml",
|
|
40
|
+
"docs/process/schemas/maintenance-review-record.schema.json",
|
|
41
|
+
"docs/process/templates/maintenance-checkpoint-template.yaml",
|
|
42
|
+
"docs/design/design-system-sync.yaml", "docs/design/preview.html",
|
|
43
|
+
"docs/design/preview-dark.html", "docs/design/preview.css",
|
|
44
|
+
"docs/design/preview.js",
|
|
45
|
+
]);
|
|
46
|
+
const SEPARATE_LEGACY_MAPPINGS = new Set([
|
|
47
|
+
"docs/templates/prd-template.md",
|
|
48
|
+
"docs/templates/vertical-slice-issue-template.md",
|
|
49
|
+
]);
|
|
50
|
+
|
|
51
|
+
function digest(bytes) {
|
|
52
|
+
return crypto.createHash("sha256").update(bytes).digest("hex");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function legacyStaticPath(ref) {
|
|
56
|
+
return STATIC_FILES.includes(ref) ||
|
|
57
|
+
STATIC_DIRECTORIES.some((directory) => ref.startsWith(`${directory}/`));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function collectLegacyFiles(targetDir, desiredOperations, managedFiles, plan) {
|
|
61
|
+
const found = new Set();
|
|
62
|
+
function inspect(ref) {
|
|
63
|
+
let kind;
|
|
64
|
+
try { kind = pathKind(targetPath(targetDir, ref)); }
|
|
65
|
+
catch (error) { addUnsafe(plan, ref, error.message); return; }
|
|
66
|
+
if (kind === "missing") return;
|
|
67
|
+
if (kind === "other") { addUnsafe(plan, ref, "旧治理路径是符号链接或特殊文件"); return; }
|
|
68
|
+
if (kind === "file") { found.add(ref); return; }
|
|
69
|
+
for (const entry of fs.readdirSync(targetPath(targetDir, ref))) {
|
|
70
|
+
if (entry === ".DS_Store") continue;
|
|
71
|
+
inspect(`${ref}/${entry}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
for (const directory of STATIC_DIRECTORIES) inspect(directory);
|
|
75
|
+
for (const ref of STATIC_FILES) inspect(ref);
|
|
76
|
+
for (const ref of Object.keys(managedFiles || {})) {
|
|
77
|
+
if (legacyStaticPath(ref)) inspect(ref);
|
|
78
|
+
}
|
|
79
|
+
for (const operation of desiredOperations) {
|
|
80
|
+
if (operation.relativePath.startsWith(".template-spec/")) {
|
|
81
|
+
inspect(`docs/${operation.relativePath.slice(".template-spec/".length)}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return [...found].filter((ref) => !SEPARATE_LEGACY_MAPPINGS.has(ref)).sort();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function prepareLayoutMigration({ targetDir, desiredOperations, managedFiles = {}, explicit = false }) {
|
|
88
|
+
const plan = createMigrationPlan(targetDir);
|
|
89
|
+
const legacyFiles = collectLegacyFiles(targetDir, desiredOperations, managedFiles, plan);
|
|
90
|
+
const desiredByPath = new Map(desiredOperations.map((operation) => [operation.relativePath, operation]));
|
|
91
|
+
const operations = [...desiredOperations];
|
|
92
|
+
|
|
93
|
+
for (const from of legacyFiles) {
|
|
94
|
+
const to = `.template-spec/${from.slice("docs/".length)}`;
|
|
95
|
+
if (!explicit) {
|
|
96
|
+
addConflict(plan, from, to, "旧治理目录布局需显式 --migrate-layout;普通 attach/sync 不写入");
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const source = targetPath(targetDir, from);
|
|
100
|
+
const destination = targetPath(targetDir, to);
|
|
101
|
+
const sourceBytes = fs.readFileSync(source);
|
|
102
|
+
const destinationKind = pathKind(destination);
|
|
103
|
+
if (destinationKind !== "missing" && destinationKind !== "file") {
|
|
104
|
+
addUnsafe(plan, to, "迁移目标不是普通文件");
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (from === TRACKER_FROM) {
|
|
108
|
+
if (destinationKind === "file" && !sourceBytes.equals(fs.readFileSync(destination))) {
|
|
109
|
+
addConflict(plan, from, to, "项目 tracker 的新旧配置不一致,需人工处理");
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const index = operations.findIndex((operation) => operation.relativePath === TRACKER_TO);
|
|
113
|
+
if (index < 0) {
|
|
114
|
+
addConflict(plan, from, to, "当前阶段缺少 tracker 目标资产");
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (destinationKind === "missing") {
|
|
118
|
+
operations[index] = {
|
|
119
|
+
...operations[index], type: "render", desiredContent: sourceBytes,
|
|
120
|
+
desiredHash: digest(sourceBytes),
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
addRemove(plan, from, "保留项目 tracker 原内容并退出旧路径", { action: "preserve-project-config", to });
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const recordedHash = managedFiles[from]?.contentHash;
|
|
127
|
+
if (!recordedHash || digest(sourceBytes) !== recordedHash) {
|
|
128
|
+
addConflict(plan, from, to, "缺少可信受管摘要或旧治理文件已被项目修改");
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const desired = desiredByPath.get(to);
|
|
132
|
+
if (!desired && !RETIRED_SOURCE_ONLY.has(from)) {
|
|
133
|
+
addConflict(plan, from, to, "目标阶段未安装对应治理资产,不能静默丢弃");
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (destinationKind === "file" && (!desired || digest(fs.readFileSync(destination)) !== desired.desiredHash)) {
|
|
137
|
+
addConflict(plan, from, to, "目标路径已存在且与当前模板不一致");
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
addRemove(plan, from, desired ? "可信旧治理文件由新模板取代" : "可信模板专用文件退出实例", {
|
|
141
|
+
action: desired ? "replace-with-current-template" : "retire-template-only",
|
|
142
|
+
to: desired ? to : null,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return { desiredOperations: operations, plan, legacyFiles };
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function combineMigrationPlans(...plans) {
|
|
149
|
+
const targetDir = plans[0]?.targetDir;
|
|
150
|
+
const combined = createMigrationPlan(targetDir);
|
|
151
|
+
for (const plan of plans) {
|
|
152
|
+
combined.operations.push(...plan.operations);
|
|
153
|
+
combined.legacy.push(...plan.legacy);
|
|
154
|
+
combined.conflicts.push(...plan.conflicts);
|
|
155
|
+
combined.unsafe.push(...plan.unsafe);
|
|
156
|
+
}
|
|
157
|
+
return combined;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
module.exports = { prepareLayoutMigration, combineMigrationPlans, TRACKER_FROM, TRACKER_TO };
|
|
@@ -28,10 +28,10 @@ const LEGACY_SKILL_MAPPINGS = [
|
|
|
28
28
|
];
|
|
29
29
|
|
|
30
30
|
const LEGACY_FILE_MAPPINGS = [
|
|
31
|
-
["docs/templates/prd-template.md", "
|
|
31
|
+
["docs/templates/prd-template.md", ".template-spec/templates/spec-template.md"],
|
|
32
32
|
[
|
|
33
33
|
"docs/templates/vertical-slice-issue-template.md",
|
|
34
|
-
"
|
|
34
|
+
".template-spec/templates/vertical-slice-ticket-template.md",
|
|
35
35
|
],
|
|
36
36
|
];
|
|
37
37
|
|
|
@@ -48,7 +48,7 @@ function classifySyncOperations({
|
|
|
48
48
|
continue;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
if (operation.relativePath === "
|
|
51
|
+
if (operation.relativePath === ".template-spec/agents/issue-tracker.md") {
|
|
52
52
|
unchanged.push({ ...operation, reason: "project-owned-tracker-configuration" });
|
|
53
53
|
continue;
|
|
54
54
|
}
|
|
@@ -4,6 +4,6 @@ trigger: always_on
|
|
|
4
4
|
|
|
5
5
|
# YSS UI 实现入口
|
|
6
6
|
|
|
7
|
-
仅在生产前端或 YSS UI 实现影响命中时使用本入口。先按当前 Slice Implementation Contract 与
|
|
7
|
+
仅在生产前端或 YSS UI 实现影响命中时使用本入口。先按当前 Slice Implementation Contract 与 `.template-spec/agents/yss-skill-registry.yaml` 选择最小技能集,再进入 `.agents/skills/yss-ui/SKILL.md`;完整业务页面使用 `.agents/skills/yss-ui-business-page-generation/SKILL.md`,并按任务触发读取其引用的 canonical `SKILL.md`。原型阶段使用 `yss-prototype-stage`,不得调用生产实现技能 `yss-ui`。
|
|
8
8
|
|
|
9
9
|
YTable 使用真实 API:不得臆造 `request`、`search-params` 或 `actionConfig.actions`;主操作必须放入 `#toolbar-right`,只有确实需要列设置时才使用 `toolbar-config.custom`。其余组件、表单、主题、API 与导出细则以下沉技能为准。
|
|
@@ -3,30 +3,29 @@
|
|
|
3
3
|
"source": "iloveZzz/yss-harness-design-agent",
|
|
4
4
|
"source_type": "git-submodule",
|
|
5
5
|
"source_root": ".agents/skills",
|
|
6
|
-
"source_revision": "
|
|
7
|
-
"adaptation_ref": "
|
|
6
|
+
"source_revision": "15953d4f0191b06e026df285a95f4535d3243151",
|
|
7
|
+
"adaptation_ref": ".template-source/agents/strategic-design-skills-integration.md",
|
|
8
8
|
"skills": [
|
|
9
9
|
{
|
|
10
10
|
"upstream": "prototype-review",
|
|
11
11
|
"canonical": "prototype-review",
|
|
12
|
-
"upstream_hash": "
|
|
12
|
+
"upstream_hash": "68c6e4613354ad919bab3d718739f1cc6930d8df0777d6f7db90435bdae77d52"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"upstream": "yss-prototype-stage",
|
|
16
16
|
"canonical": "yss-prototype-stage",
|
|
17
|
-
"upstream_hash": "
|
|
17
|
+
"upstream_hash": "7781df6293f381bd40781d2f6b163cf824f959624b1c34aeb9c241d6be709c89"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"upstream": "yss-design-system",
|
|
21
21
|
"canonical": "yss-design-system",
|
|
22
|
-
"upstream_hash": "
|
|
22
|
+
"upstream_hash": "ae040c639056ecf2160f1231e30ac67360bd8aa1e030eac778520dd56af8068c"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"upstream": "yss-stage-decision",
|
|
26
26
|
"canonical": "yss-stage-decision",
|
|
27
|
-
"upstream_hash": "
|
|
27
|
+
"upstream_hash": "6cd0ed5aa21d68cea871d0bd202beb3b28cca2981f075ad9c24667ac030118d2"
|
|
28
28
|
}
|
|
29
29
|
],
|
|
30
|
-
"source_state": "committed"
|
|
31
|
-
"source_state_note": "source_revision、upstream_hash 与 gitlink 绑定同一已提交战略设计来源。"
|
|
30
|
+
"source_state": "committed"
|
|
32
31
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"excluded_categories": ["library"],
|
|
8
8
|
"excluded_skills": ["component-selection-imports", "java-backend-commit", "page-form-module", "page-list-module", "page-module-development", "page-skeleton", "prototype-page-acceptance", "use-table-height", "use-tree-height", "vue3-best-practices"],
|
|
9
9
|
"source_revision": "c4d958f18cc947cb91cbe1bd48783fa4601cc18f",
|
|
10
|
-
"adaptation_ref": "
|
|
10
|
+
"adaptation_ref": ".template-source/agents/yss-ui-skills-integration.md",
|
|
11
11
|
"package": {
|
|
12
12
|
"name": "@yss-ui/skills",
|
|
13
13
|
"version": "1.3.9"
|
|
@@ -37,6 +37,6 @@
|
|
|
37
37
|
{ "path": ".cursor/mcp.json", "container": "mcpServers" },
|
|
38
38
|
{ "path": ".vscode/mcp.json", "container": "servers" }
|
|
39
39
|
],
|
|
40
|
-
"global_install_guide": "
|
|
40
|
+
"global_install_guide": ".template-spec/user-guide/yss-ui-mcp.md"
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -20,7 +20,7 @@ This skill distills the provided `阿里巴巴 Java 开发手册` 1.4.0 PDF into
|
|
|
20
20
|
|
|
21
21
|
## Core Priorities
|
|
22
22
|
|
|
23
|
-
- 先消费 architecture_identity 与工程 Java/数据库基线。MVC 分层按
|
|
23
|
+
- 先消费 architecture_identity 与工程 Java/数据库基线。MVC 分层按 `.template-spec/agents/backend-architecture-profiles.md`;MySQL 专属方言规则仅对批准的 MySQL 存储生效,不能要求 H2 骨架引入 MySQL 驱动。YSS 包装、命名及处理器差异逐项记录基线例外,安全、权限、敏感信息与 SQL 参数绑定不得豁免。
|
|
24
24
|
- Keep names readable, English, and consistent with Java layer conventions.
|
|
25
25
|
- Avoid null, equality, wrapper comparison, collection, and concurrency traps that compile cleanly but fail at runtime.
|
|
26
26
|
- Make logs useful without wasting CPU, disk, or alert budget.
|
|
@@ -11,13 +11,13 @@ Review of a pinned candidate against a fixed point on two core axes, plus UI fid
|
|
|
11
11
|
|
|
12
12
|
普通功能默认由一名与实现者独立的审查者完成 Standards、Spec 和适用的 UI fidelity 检查,分别报告结论。只有专业能力缺口、结论冲突、明确外部制度或用户指定时,才拆成多个审查者;多个无依赖审查可以并行。检查轴不等于会签人数,不能要求用户为每个轴重复确认。
|
|
13
13
|
|
|
14
|
-
If
|
|
14
|
+
If `.template-spec/agents/issue-tracker.md` is missing, tell the user to run `/setup-matt-pocock-skills`; do not invoke another user-invoked skill yourself.
|
|
15
15
|
|
|
16
|
-
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取
|
|
16
|
+
文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
|
|
17
17
|
|
|
18
18
|
## 文档写作
|
|
19
19
|
|
|
20
|
-
撰写审查报告时,读取
|
|
20
|
+
撰写审查报告时,读取 `.template-spec/process/document-writing.md` 的共用写法及审查指引;保留各审查轴的 findings、严重性、定位、证据及原裁决,不因压缩表达合并或降级。
|
|
21
21
|
|
|
22
22
|
## Process
|
|
23
23
|
|
|
@@ -30,13 +30,13 @@ If `docs/agents/issue-tracker.md` is missing, tell the user to run `/setup-matt-
|
|
|
30
30
|
Look for the originating spec, in this order:
|
|
31
31
|
|
|
32
32
|
1. A spec/Ticket/contract reference supplied by the user or an upstream lifecycle review input.
|
|
33
|
-
2. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in
|
|
33
|
+
2. Issue references in the commit messages (`#123`, `Closes #45`, GitLab `!67`, etc.) — fetch via the workflow in `.template-spec/agents/issue-tracker.md`.
|
|
34
34
|
3. A spec file under `docs/`, `specs/`, or `docs/.scratch/` matching the branch name or feature.
|
|
35
35
|
4. If nothing is found, ask the user where the spec is. If they say there isn't one, the **Spec** sub-agent will skip and report "no spec available".
|
|
36
36
|
|
|
37
37
|
### 3. Identify the standards sources
|
|
38
38
|
|
|
39
|
-
Compile sources **before** review. For YSS implementation candidates follow [yss-review-standards.md](references/yss-review-standards.md): run machine checks that exist in the implementation repo; then collect repo docs (`CODING_STANDARDS.md` / `CONTRIBUTING.md` if present), every Slice `required_skills` skill file, the impact-conditioned specialist inputs (`alibaba-java-code-style`, `yss-ui`, `yss-domain`, …), and
|
|
39
|
+
Compile sources **before** review. For YSS implementation candidates follow [yss-review-standards.md](references/yss-review-standards.md): run machine checks that exist in the implementation repo; then collect repo docs (`CODING_STANDARDS.md` / `CONTRIBUTING.md` if present), every Slice `required_skills` skill file, the impact-conditioned specialist inputs (`alibaba-java-code-style`, `yss-ui`, `yss-domain`, …), and `.template-spec/templates/review-report-template.md`. Missing applicable coverage is `missing_evidence`, not a pass.
|
|
40
40
|
|
|
41
41
|
For YSS backend review, derive the review roots from the candidate project root, implementation-repository registry, Slice `project_roots` and `allowed_write_paths`. Review only the project itself and registered backend development projects; exclude frontend roots, unrelated submodules/vendor trees and unregistered directories. Never replace this resolution with a fixed `apps/backend` assumption.
|
|
42
42
|
|
|
@@ -89,7 +89,7 @@ If the spec is missing, skip the Spec sub-agent and note this in the final repor
|
|
|
89
89
|
|
|
90
90
|
For template-maintenance task packages carrying `review_round`, preserve the frozen scope and apply the two-round convergence contract. A hard requirement added during review must cite a rule that already applied when the candidate was frozen; otherwise report it as `judgement-call` for the backlog. Round 1 blocking findings return to the implementer and require a new digest plus all review axes. If Round 2 still has an open `violation`, `drift`, or `new_impacts`, return `needs-human` and stop; do not silently start Round 3. Candidate byte changes invalidate every earlier axis report.
|
|
91
91
|
|
|
92
|
-
Present the reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. If UI is in scope, add `## UI fidelity` from the separate pass. Fill
|
|
92
|
+
Present the reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. If UI is in scope, add `## UI fidelity` from the separate pass. Fill `.template-spec/templates/review-report-template.md` specialist tables as part of Standards evidence, not a fourth axis. Do **not** merge or rerank findings — the axes are deliberately separate (see _Why separate axes_). A YSS candidate with blank applicable specialist rows, skipped `required_skills`, or unaddressed mandatory violations is `blocked`, not `completed`. Do not close findings by writing implementation in the review session. `violation` / machine-check failure / blank applicable rows go back to the implementer on the original contract path, then recapture the candidate and rerun affected axes and their dependencies; explicitly rebind unchanged evidence. `drift` / `new_impacts` / `required_skills` mismatch mark the contract `stale` and return to 实现合同编译器; do not keep coding on the old contract. `not-applicable` is only for untriggered impacts; mandatory gates have no waiver, only repair or a complete `seam-deferred` record.
|
|
93
93
|
|
|
94
94
|
For Worktree mode, recapture the candidate digest after all applicable checks finish. If it differs from `candidate_digest`, mark the affected reports as reviewing a **stale candidate** and return `blocked`; the caller may start a new review against a new capture, but this invocation must not aggregate findings from different bytes. Recheck the same digest again at the completion/checkpoint boundary.
|
|
95
95
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
本文件只服务唯一默认审查技能 `code-review`。Alibaba Java、YSS 前端 / 后端 skill 是 **Standards 轴的专项检查输入**,不是第二个通用审查 skill。
|
|
4
4
|
|
|
5
|
-
权威接线:`yss-product-lifecycle/references/orchestration-contract.yaml` 的 `work-unit.code-review.review_standards_route` 与 `review_input
|
|
5
|
+
权威接线:`yss-product-lifecycle/references/orchestration-contract.yaml` 的 `work-unit.code-review.review_standards_route` 与 `review_input`。报告形状:`.template-spec/templates/review-report-template.md`。
|
|
6
6
|
|
|
7
7
|
## 1. 编译标准源
|
|
8
8
|
|
|
@@ -16,12 +16,12 @@ description: Use when a Harness change or vertical slice may require work across
|
|
|
16
16
|
|
|
17
17
|
## Workflow
|
|
18
18
|
|
|
19
|
-
1. 读取
|
|
19
|
+
1. 读取 `.template-spec/process/implementation-repo-integration.md` 和当前 change 资产。
|
|
20
20
|
2. 判断影响面:Harness-only、backend-only、frontend-only、backend+frontend、contract-only、release-only。
|
|
21
21
|
3. 确认每个受影响实现仓库已有登记记录;缺失则阻断并要求 onboarding。
|
|
22
22
|
4. 核对项目根路径:Harness 内 `harness-apps` 与 `git-submodule` 项目必须是 `apps/backend/<project>/` 或 `apps/frontend/<project>/`;`apps/backend/`、`apps/frontend/` 只能作为容器,`app/backend/`、`app/frontend/` 及其子路径必须阻断。`git-submodule` 另核 gitlink、`.gitmodules` 和独立 `git_url`。外部 `external-repository` 记录各自的真实项目根。
|
|
23
23
|
5. 输出最小任务分配:Harness 文档 / OpenAPI / 后端 MR / 前端 MR / 验证 / 发布。`git-submodule` 必须追加 `superproject-gitlink-update`。
|
|
24
|
-
6. 按
|
|
24
|
+
6. 按 `.template-spec/templates/cross-repo-slice-template.md` 生成切片记录草案。
|
|
25
25
|
7. 给出 fresh verification 命令和阶段 checkpoint 回写字段。
|
|
26
26
|
|
|
27
27
|
## Routing Matrix
|
|
@@ -6,7 +6,7 @@ license: MIT
|
|
|
6
6
|
|
|
7
7
|
# i-have-adhd · YSS 适配
|
|
8
8
|
|
|
9
|
-
为当前产物应用
|
|
9
|
+
为当前产物应用 `.template-spec/process/document-writing.md`;该文是中文写法的唯一权威来源。需要例子时读取 `.template-spec/templates/examples/lifecycle-writing-examples.md`。本技能是原资产所有者的配套技能,不持有业务决定、批准或生命周期状态。
|
|
10
10
|
|
|
11
11
|
## 触发与作用域
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
| 原因与修复直接陈述 | 区分已知现象、待验证原因和实际验证结果 |
|
|
15
15
|
| 平台专属 agent 配置 | 不安装上游 Gemini 持久提示;项目 OpenAI 配置只描述当前文档配套用途 |
|
|
16
16
|
|
|
17
|
-
生命周期仍拥有门禁、状态、批准和资产;本技能没有独立授权、审批或分支流程。正文规则只在
|
|
17
|
+
生命周期仍拥有门禁、状态、批准和资产;本技能没有独立授权、审批或分支流程。正文规则只在 `.template-spec/process/document-writing.md` 维护;本文件只解释来源差异。
|
|
18
18
|
|
|
19
19
|
注册表将本技能声明为模型可调用、实例默认可发现的通用工作流 core 技能(仍只作为文档配套);调用者以条件依赖加载。上游 `disable-model-invocation: true` 在适配版移除;作用域由本技能触发条件限定,不延续上游会话开关。
|
|
20
20
|
|
|
@@ -7,7 +7,7 @@ import {pathToFileURL} from 'node:url';
|
|
|
7
7
|
const root=path.resolve(process.argv[2] || '.');
|
|
8
8
|
const read=ref=>fs.readFileSync(path.join(root,ref),'utf8');
|
|
9
9
|
const {parse}=await import(pathToFileURL(path.join(root,'scripts/vendor/yaml.mjs')));
|
|
10
|
-
const registry=parse(read('
|
|
10
|
+
const registry=parse(read('.template-spec/agents/yss-skill-registry.yaml'));
|
|
11
11
|
const skill=registry.skills.find(x=>x.id==='i-have-adhd');
|
|
12
12
|
assert.equal(skill.instance_default_discoverable,true);
|
|
13
13
|
assert.equal(registry.invocation_contract.overrides['i-have-adhd'].invocation_mode,'model');
|
|
@@ -27,7 +27,7 @@ for (const target of locked.targets) {
|
|
|
27
27
|
const skillPath=target.endsWith('/i-have-adhd')?target:path.join(target,'i-have-adhd');
|
|
28
28
|
assert.equal(treeHash(path.join(root,skillPath)),locked.effectiveHash,`projection ${target}`);
|
|
29
29
|
}
|
|
30
|
-
for(const ref of ['
|
|
30
|
+
for(const ref of ['.template-spec/process/document-writing.md','.template-spec/templates/examples/lifecycle-writing-examples.md']) {
|
|
31
31
|
assert.ok(read(ref).length);
|
|
32
32
|
assert.ok(!read(ref).includes('.template-source/'));
|
|
33
33
|
}
|
|
@@ -16,12 +16,12 @@ description: Use when connecting an existing frontend, backend, fullstack, or ot
|
|
|
16
16
|
|
|
17
17
|
## Workflow
|
|
18
18
|
|
|
19
|
-
1. 按根 `yss-project.yaml` 确认 `project-instance` 身份并消费根 `CONTEXT.md`,读取
|
|
19
|
+
1. 按根 `yss-project.yaml` 确认 `project-instance` 身份并消费根 `CONTEXT.md`,读取 `.template-spec/process/implementation-repo-integration.md`。命中既有 Java/Maven 跨仓交付接入时,先按 `.template-spec/process/delivery-preflight.md` 以已知原始引用准备清单并运行 `scripts/preflight-delivery --input <file> --stage prepare --json`;缺失来源保持缺失,不伪造 scope、批准、生成器或模块事实。预检可在拟初始化目标上列出当前缺项,但不会创建工程或执行输入命令。
|
|
20
20
|
2. 如果输入是本地路径,只读检查 Git remote、当前分支、目录结构、构建文件和测试脚本。
|
|
21
21
|
3. 如果输入是远端 URL,优先使用只读 Git 查询。需要完整工作树时:`external-repository` 只能 clone 到临时目录;`git-submodule` 只能通过 `git submodule add` / `git submodule update --init` 在已批准的 `apps/backend/<project>/` 或 `apps/frontend/<project>/` gitlink 挂载点检出,禁止普通 clone 或复制源码进 Harness。
|
|
22
22
|
4. 识别技术栈、包管理器、CI、测试命令、构建命令、OpenAPI 接入和设计 token 接入。
|
|
23
23
|
5. 判定实现位置与 `repository_scope`:`external-repository` 记录真实项目根;`harness-apps` 与 `git-submodule` 只能使用 `apps/backend/<project>/` 或 `apps/frontend/<project>/`。`apps/backend/`、`apps/frontend/` 仅为容器,`app/backend/`、`app/frontend/` 及其子路径必须标记为阻断。gitlink(mode `160000`)必须登记为 `git-submodule` 和 `layout_policy: git-submodule-harness-apps`,不得写成 `harness-apps`。必须对照工作树:`git ls-files --stage`、`.gitmodules` 与声明 scope 不一致时阻断;缺少 `git_entry_mode: 160000` 不得把挂载点当普通目录。
|
|
24
|
-
6. 按
|
|
24
|
+
6. 按 `.template-spec/templates/implementation-repo-registry-template.md` 输出实现仓库登记内容。`git-submodule` 必填 `gitmodules_name`、`gitlink_path`、`git_entry_mode`、`superproject_git_url` 和 `checkout_state`。`harness-apps` / `external-repository` 这些字段填 `不适用`。
|
|
25
25
|
7. 列出 `known_gaps`、人审点、fresh verification 命令和需要回写到 Harness change / Issue / checkpoint 的信息。命中交付预检时,登记和工程基线补齐后重跑 `prepare`;将结构化诊断的责任来源和恢复入口纳入缺口清单,在初始化或构建前关闭当前阶段阻断。后续阶段证据尚未形成不能被当作本阶段失败;其他技术栈/不涉及该交付协议的接入记录不适用原因,不能冒充后端 v2 正例。空 gitlink、detached HEAD、`--force` 覆盖挂载点或缺少递归检出凭据时标记阻断。需要转入已授权写入时,先按 [写范围核验](references/write-scope.md) 检查工具对象结果;只有 `.writable === true` 可写,其他形态或状态一律阻断。
|
|
26
26
|
|
|
27
27
|
## Baseline Checks
|
|
@@ -17,9 +17,9 @@ Unless the user replaces this list with the host's single source-of-truth table:
|
|
|
17
17
|
|
|
18
18
|
- Root authoritative files (for example `README`, `AGENTS`, `CONTEXT`, repository-identity manifest)
|
|
19
19
|
- `docs/adr/`
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
20
|
+
- `.template-spec/process/`
|
|
21
|
+
- `.template-spec/agents/`
|
|
22
|
+
- `.template-spec/templates/`
|
|
23
23
|
- Frozen contracts the user names
|
|
24
24
|
|
|
25
25
|
`full` adds only roots the user listed. It is not "everything under `docs/`".
|
|
@@ -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(", ")}`);
|