create-yss-spec 3.0.1 → 3.1.3
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 +117 -91
- package/bin/create-yss-spec.js +11 -3
- package/package.json +9 -2
- package/src/api/_sync-service.js +191 -0
- package/src/api/index.js +22 -0
- package/src/api/project-diff.js +9 -0
- package/src/api/project-doctor.js +10 -0
- package/src/api/template-apply.js +10 -0
- package/src/api/template-plan.js +9 -0
- package/src/cli/args.js +60 -0
- package/src/cli/error-output.js +52 -0
- package/src/cli/flags.js +9 -0
- package/src/cli/help.js +95 -0
- package/src/cli/index.js +82 -0
- package/src/cli/plan-output.js +61 -0
- package/src/cli/prompts.js +91 -0
- package/src/cli/router.js +41 -0
- package/src/cli.js +5 -2253
- package/src/commands/attach.js +280 -0
- package/src/commands/diff.js +23 -0
- package/src/commands/doctor.js +417 -0
- package/src/commands/init.js +193 -0
- package/src/commands/sync.js +146 -0
- package/src/commands/update.js +14 -0
- package/src/contracts/apply-result-v1.json +45 -0
- package/src/contracts/customization-policy-v1.json +28 -0
- package/src/contracts/doctor-report-v1.json +29 -0
- package/src/contracts/error-envelope-v1.json +24 -0
- package/src/contracts/generator-policy-v1.json +24 -0
- package/src/contracts/ownership-policy-v1.json +40 -0
- package/src/contracts/plan-schema-v1.json +115 -0
- package/src/family-identity.js +365 -0
- package/src/family-runtime.js +23 -0
- package/src/filesystem/apply-plan.js +44 -0
- package/src/filesystem/copy-path.js +28 -0
- package/src/filesystem/path-utils.js +67 -0
- package/src/filesystem/transaction-runner.js +41 -0
- package/src/filesystem/transaction.js +153 -0
- package/src/git/submodule.js +115 -0
- package/src/git/worktree.js +69 -0
- package/src/template/attach-planner-runtime.js +51 -0
- package/src/template/attach-planner.js +160 -0
- package/src/template/instance-runtime.js +463 -0
- package/src/template/lifecycle-metadata.js +99 -0
- package/src/template/lifecycle-policy.js +129 -0
- package/src/template/lifecycle-runtime.js +90 -0
- package/src/template/migration-planner.js +95 -0
- package/src/template/migration-runtime.js +247 -0
- package/src/template/ownership-metadata.js +79 -0
- package/src/template/ownership-policy.js +149 -0
- package/src/template/ownership-runtime.js +109 -0
- package/src/template/plan-schema.js +36 -0
- package/src/template/sync-planner-runtime.js +57 -0
- package/src/template/sync-planner.js +206 -0
- package/src/template/verification-runtime.js +154 -0
- package/src/validation/identity.js +41 -0
- package/src/validation/metadata.js +105 -0
- package/src/validation/security.js +67 -0
- package/src/validation/snapshot.js +47 -0
- package/template/.agents/rules/yss-ai-skills.md +3 -55
- package/template/.agents/skills/.strategic-design-skills-manifest.json +11 -6
- package/template/.agents/skills/.yss-skills-manifest.json +1 -3
- package/template/.agents/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.agents/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.agents/skills/domain-modeling/SKILL.md +10 -26
- package/template/.agents/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.agents/skills/lombok/SKILL.md +2 -1
- package/template/.agents/skills/mapstruct/SKILL.md +3 -2
- package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.agents/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.agents/skills/wait-what/SKILL.md +1 -1
- package/template/.agents/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.agents/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.agents/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.agents/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.agents/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.agents/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.agents/skills/yss-application/SKILL.md +6 -0
- package/template/.agents/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.agents/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.agents/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.agents/skills/yss-components/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.agents/skills/yss-design-system/SKILL.md +25 -22
- package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.agents/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.agents/skills/yss-domain/SKILL.md +1 -1
- package/template/.agents/skills/yss-dto/SKILL.md +1 -0
- package/template/.agents/skills/yss-exception/SKILL.md +1 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.agents/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.agents/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.agents/skills/yss-repository/SKILL.md +6 -0
- package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.agents/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.agents/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.agents/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.agents/skills/yss-ui/SKILL.md +3 -2
- package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.agents/skills/yss-validation/SKILL.md +1 -0
- package/template/.agents/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.agents/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.agents/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.agents/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.agents/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.claude/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.claude/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.claude/skills/domain-modeling/SKILL.md +10 -26
- package/template/.claude/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.claude/skills/lombok/SKILL.md +2 -1
- package/template/.claude/skills/mapstruct/SKILL.md +3 -2
- package/template/.claude/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.claude/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.claude/skills/wait-what/SKILL.md +1 -1
- package/template/.claude/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.claude/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.claude/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.claude/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.claude/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.claude/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.claude/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.claude/skills/yss-application/SKILL.md +6 -0
- package/template/.claude/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.claude/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.claude/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.claude/skills/yss-components/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.claude/skills/yss-design-system/SKILL.md +25 -22
- package/template/.claude/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.claude/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.claude/skills/yss-domain/SKILL.md +1 -1
- package/template/.claude/skills/yss-dto/SKILL.md +1 -0
- package/template/.claude/skills/yss-exception/SKILL.md +1 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.claude/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.claude/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.claude/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.claude/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.claude/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.claude/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.claude/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.claude/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.claude/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.claude/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.claude/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.claude/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.claude/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.claude/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.claude/skills/yss-repository/SKILL.md +6 -0
- package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.claude/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.claude/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.claude/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.claude/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.claude/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.claude/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.claude/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.claude/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.claude/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.claude/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.claude/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.claude/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.claude/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.claude/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.claude/skills/yss-ui/SKILL.md +3 -2
- package/template/.claude/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.claude/skills/yss-validation/SKILL.md +1 -0
- package/template/.claude/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.claude/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.claude/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.claude/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.claude/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.claude/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.claude/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.codex/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.codex/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.codex/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.codex/skills/domain-modeling/SKILL.md +10 -26
- package/template/.codex/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.codex/skills/lombok/SKILL.md +2 -1
- package/template/.codex/skills/mapstruct/SKILL.md +3 -2
- package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.codex/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.codex/skills/wait-what/SKILL.md +1 -1
- package/template/.codex/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.codex/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.codex/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.codex/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.codex/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.codex/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.codex/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.codex/skills/yss-application/SKILL.md +6 -0
- package/template/.codex/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.codex/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.codex/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.codex/skills/yss-components/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.codex/skills/yss-design-system/SKILL.md +25 -22
- package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.codex/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.codex/skills/yss-domain/SKILL.md +1 -1
- package/template/.codex/skills/yss-dto/SKILL.md +1 -0
- package/template/.codex/skills/yss-exception/SKILL.md +1 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.codex/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.codex/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.codex/skills/yss-repository/SKILL.md +6 -0
- package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.codex/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.codex/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.codex/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.codex/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.codex/skills/yss-ui/SKILL.md +3 -2
- package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.codex/skills/yss-validation/SKILL.md +1 -0
- package/template/.codex/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.codex/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.codex/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.codex/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.codex/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.cursor/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.cursor/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.cursor/skills/domain-modeling/SKILL.md +10 -26
- package/template/.cursor/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.cursor/skills/lombok/SKILL.md +2 -1
- package/template/.cursor/skills/mapstruct/SKILL.md +3 -2
- package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.cursor/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.cursor/skills/wait-what/SKILL.md +1 -1
- package/template/.cursor/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.cursor/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.cursor/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.cursor/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.cursor/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.cursor/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.cursor/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.cursor/skills/yss-application/SKILL.md +6 -0
- package/template/.cursor/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.cursor/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.cursor/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.cursor/skills/yss-components/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.cursor/skills/yss-design-system/SKILL.md +25 -22
- package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.cursor/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.cursor/skills/yss-domain/SKILL.md +1 -1
- package/template/.cursor/skills/yss-dto/SKILL.md +1 -0
- package/template/.cursor/skills/yss-exception/SKILL.md +1 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.cursor/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.cursor/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.cursor/skills/yss-repository/SKILL.md +6 -0
- package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.cursor/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.cursor/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.cursor/skills/yss-ui/SKILL.md +3 -2
- package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.cursor/skills/yss-validation/SKILL.md +1 -0
- package/template/.cursor/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.cursor/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.cursor/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.cursor/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.cursor/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.cursorrules +6 -34
- package/template/.pi/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.pi/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.pi/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.pi/skills/domain-modeling/SKILL.md +10 -26
- package/template/.pi/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.pi/skills/lombok/SKILL.md +2 -1
- package/template/.pi/skills/mapstruct/SKILL.md +3 -2
- package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.pi/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.pi/skills/wait-what/SKILL.md +1 -1
- package/template/.pi/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.pi/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.pi/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.pi/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.pi/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.pi/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.pi/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.pi/skills/yss-application/SKILL.md +6 -0
- package/template/.pi/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.pi/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.pi/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.pi/skills/yss-components/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.pi/skills/yss-design-system/SKILL.md +25 -22
- package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.pi/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.pi/skills/yss-domain/SKILL.md +1 -1
- package/template/.pi/skills/yss-dto/SKILL.md +1 -0
- package/template/.pi/skills/yss-exception/SKILL.md +1 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.pi/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.pi/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.pi/skills/yss-repository/SKILL.md +6 -0
- package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.pi/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.pi/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.pi/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.pi/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.pi/skills/yss-ui/SKILL.md +3 -2
- package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.pi/skills/yss-validation/SKILL.md +1 -0
- package/template/.pi/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.pi/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.pi/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.pi/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.pi/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.qoder/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.qoder/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.qoder/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.qoder/skills/domain-modeling/SKILL.md +10 -26
- package/template/.qoder/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.qoder/skills/lombok/SKILL.md +2 -1
- package/template/.qoder/skills/mapstruct/SKILL.md +3 -2
- package/template/.qoder/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.qoder/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.qoder/skills/wait-what/SKILL.md +1 -1
- package/template/.qoder/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.qoder/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.qoder/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.qoder/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.qoder/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.qoder/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.qoder/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.qoder/skills/yss-application/SKILL.md +6 -0
- package/template/.qoder/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.qoder/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.qoder/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.qoder/skills/yss-components/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.qoder/skills/yss-design-system/SKILL.md +25 -22
- package/template/.qoder/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.qoder/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.qoder/skills/yss-domain/SKILL.md +1 -1
- package/template/.qoder/skills/yss-dto/SKILL.md +1 -0
- package/template/.qoder/skills/yss-exception/SKILL.md +1 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.qoder/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.qoder/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.qoder/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.qoder/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.qoder/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.qoder/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.qoder/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.qoder/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.qoder/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.qoder/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.qoder/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.qoder/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.qoder/skills/yss-repository/SKILL.md +6 -0
- package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.qoder/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.qoder/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.qoder/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.qoder/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.qoder/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.qoder/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.qoder/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.qoder/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.qoder/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.qoder/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.qoder/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.qoder/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.qoder/skills/yss-ui/SKILL.md +3 -2
- package/template/.qoder/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.qoder/skills/yss-validation/SKILL.md +1 -0
- package/template/.qoder/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.qoder/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.qoder/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.qoder/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.qoder/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/.trae/skills/alibaba-java-code-style/SKILL.md +1 -0
- package/template/.trae/skills/code-review/references/yss-review-standards.md +1 -1
- package/template/.trae/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
- package/template/.trae/skills/domain-modeling/SKILL.md +10 -26
- package/template/.trae/skills/grill-with-docs/SKILL.md +6 -5
- package/template/.trae/skills/lombok/SKILL.md +2 -1
- package/template/.trae/skills/mapstruct/SKILL.md +3 -2
- package/template/.trae/skills/setup-matt-pocock-skills/SKILL.md +5 -6
- package/template/.trae/skills/setup-matt-pocock-skills/domain.md +6 -20
- package/template/.trae/skills/wait-what/SKILL.md +1 -1
- package/template/.trae/skills/yss-antdv-next-design/SKILL.md +48 -0
- package/template/.trae/skills/yss-antdv-next-design/references/boundaries.md +25 -0
- package/template/.trae/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
- package/template/.trae/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
- package/template/.trae/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
- package/template/.trae/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
- package/template/.trae/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
- package/template/.trae/skills/yss-application/SKILL.md +6 -0
- package/template/.trae/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
- package/template/.trae/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.trae/skills/yss-application/references/profiles/target-domain-model.md +3 -0
- package/template/.trae/skills/yss-components/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
- package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
- package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
- package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
- package/template/.trae/skills/yss-design-system/SKILL.md +25 -22
- package/template/.trae/skills/yss-design-system/references/design-qa-theme.md +22 -24
- package/template/.trae/skills/yss-design-system/references/design-system.md +39 -56
- package/template/.trae/skills/yss-domain/SKILL.md +1 -1
- package/template/.trae/skills/yss-dto/SKILL.md +1 -0
- package/template/.trae/skills/yss-exception/SKILL.md +1 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
- package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
- package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
- package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
- package/template/.trae/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
- package/template/.trae/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
- package/template/.trae/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
- package/template/.trae/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
- package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
- package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
- package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
- package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
- package/template/.trae/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
- package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
- package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
- package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
- package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
- package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
- package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
- package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
- package/template/.trae/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.trae/skills/yss-product-lifecycle/SKILL.md +33 -7
- package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +9 -3
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +7 -2
- package/template/.trae/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
- package/template/.trae/skills/yss-prototype-stage/SKILL.md +9 -8
- package/template/.trae/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
- package/template/.trae/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
- package/template/.trae/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
- package/template/.trae/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
- package/template/.trae/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
- package/template/.trae/skills/yss-repository/SKILL.md +6 -0
- package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
- package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
- package/template/.trae/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
- package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
- package/template/.trae/skills/yss-stage-decision/SKILL.md +16 -12
- package/template/.trae/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
- package/template/.trae/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
- package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
- package/template/.trae/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
- package/template/.trae/skills/yss-stage-decision/references/validation-rules.md +1 -1
- package/template/.trae/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
- package/template/.trae/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
- package/template/.trae/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
- package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
- package/template/.trae/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
- package/template/.trae/skills/yss-tactical-design/SKILL.md +8 -2
- package/template/.trae/skills/yss-tactical-design/references/output-template.md +3 -0
- package/template/.trae/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
- package/template/.trae/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
- package/template/.trae/skills/yss-ui/SKILL.md +3 -2
- package/template/.trae/skills/yss-ui-business-page-generation/SKILL.md +3 -3
- package/template/.trae/skills/yss-validation/SKILL.md +1 -0
- package/template/.trae/skills/yss-web-controller/SKILL.md +6 -0
- package/template/.trae/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
- package/template/.trae/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
- package/template/.trae/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
- package/template/.trae/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
- package/template/.trae/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
- package/template/.trae/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
- package/template/AGENTS.md +52 -91
- package/template/CONTEXT.md +17 -5
- package/template/DESIGN.md +85 -41
- package/template/README.md +4 -0
- package/template/__yss_dotfile__.gitignore +1 -0
- package/template/docs/agents/backend-architecture-profiles.md +25 -0
- package/template/docs/agents/digital-human-roles.md +3 -3
- package/template/docs/agents/digital-human-roles.yaml +47 -13
- package/template/docs/agents/domain.md +7 -6
- package/template/docs/agents/skill-migrations.md +20 -2
- package/template/docs/agents/skills-maintenance.md +3 -3
- package/template/docs/agents/strategic-design-skills-integration.md +6 -1
- package/template/docs/agents/yss-skill-registry.yaml +78 -94
- package/template/docs/agents/yss-ui-skills-integration.md +3 -3
- package/template/docs/api/templates/openapi-draft-review-checklist.md +2 -2
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +18 -6
- package/template/docs/design/README.md +9 -6
- package/template/docs/design/design-system-sync.yaml +1 -1
- package/template/docs/design/design.md +86 -118
- package/template/docs/design/facts/antdv-next/1.5.2/cli-help.txt +38 -0
- package/template/docs/design/facts/antdv-next/1.5.2/component-list.json +434 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/info.json +246 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/semantic.json +40 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/token.json +32 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Button/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Button/info.json +190 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Button/semantic.json +20 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Button/token.json +256 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Input/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Input/info.json +460 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Input/semantic.json +70 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Input/token.json +123 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/info.json +646 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/semantic.json +50 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/token.json +130 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Select/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Select/info.json +640 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Select/semantic.json +70 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Select/token.json +172 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Table/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Table/info.json +1010 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Table/semantic.json +70 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Table/token.json +263 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/demo-basic.json +7 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/info.json +321 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/semantic.json +25 -0
- package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/token.json +25 -0
- package/template/docs/design/facts/antdv-next/1.5.2/design-md.json +3 -0
- package/template/docs/design/facts/antdv-next/1.5.2/manifest.json +215 -0
- package/template/docs/design/facts/antdv-next/1.5.2/resolution-probe.json +5 -0
- package/template/docs/design/preview-dark.html +170 -7
- package/template/docs/design/preview.css +730 -0
- package/template/docs/design/preview.html +168 -10
- package/template/docs/design/preview.js +71 -0
- package/template/docs/design/schemas/visual-baseline.schema.json +66 -0
- package/template/docs/design/templates/interaction-spec-template.md +1 -1
- package/template/docs/design/templates/product-overview-design-template.md +6 -6
- package/template/docs/design/templates/prototype-evidence-template.yaml +21 -8
- package/template/docs/design/templates/prototype-review-checklist.md +1 -1
- package/template/docs/design/templates/visual-baseline-template.yaml +70 -0
- package/template/docs/design/tokens/.design-md-projection.json +3 -3
- package/template/docs/design/tokens/theme.json +2 -2
- package/template/docs/design/tokens/variables.css +5 -0
- package/template/docs/process/frontend-backend-delivery.md +72 -0
- package/template/docs/process/harness-executive-blueprint.md +1 -1
- package/template/docs/process/harness-process-tailoring.md +1 -0
- package/template/docs/process/implementation-repo-integration.md +2 -0
- package/template/docs/process/lifecycle-artifact-map.md +6 -4
- package/template/docs/process/lifecycle-registry-baseline.json +8 -5
- package/template/docs/process/lifecycle-registry.yaml +27 -0
- package/template/docs/process/schemas/backend-architecture-identity.schema.json +19 -0
- package/template/docs/process/schemas/backend-delivery-verification.schema.json +113 -0
- package/template/docs/process/schemas/backend-delivery.schema.json +301 -0
- package/template/docs/process/schemas/context-reconciliation.schema.json +57 -0
- package/template/docs/process/schemas/digital-human-task-package.schema.json +18 -0
- package/template/docs/process/schemas/frontend-delivery-acceptance.schema.json +200 -0
- package/template/docs/process/schemas/frontend-implementation-evidence.schema.json +65 -29
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +16 -2
- package/template/docs/process/schemas/lifecycle-registry.schema.json +4 -4
- package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +68 -0
- package/template/docs/process/schemas/strategic-design-handoff.schema.json +670 -0
- package/template/docs/process/schemas/strategic-handoff-domain-strategy.schema.json +146 -0
- package/template/docs/process/schemas/strategic-handoff-export.schema.json +295 -0
- package/template/docs/process/schemas/strategic-handoff-package.schema.json +97 -0
- package/template/docs/process/schemas/strategic-handoff-stage-decision-package.schema.json +98 -0
- package/template/docs/process/schemas/user-decision.schema.json +357 -0
- package/template/docs/process/strategic-handoff-package.md +56 -0
- package/template/docs/process/template-verification-profiles.yaml +66 -1
- package/template/docs/process/templates/context-reconciliation-template.yaml +18 -0
- package/template/docs/process/templates/frontend-implementation-plan-template.yaml +11 -5
- package/template/docs/process/templates/frontend-implementation-verification-template.yaml +25 -5
- package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +9 -0
- package/template/docs/process/templates/scaffold-architecture-decisions-template.yaml +32 -0
- package/template/docs/process/templates/stage-checkpoint-template.md +5 -0
- package/template/docs/process/templates/user-decision-template.yaml +30 -0
- package/template/docs/templates/approval-record-template.yaml +4 -0
- package/template/docs/templates/build-architecture-checklist-template.md +3 -3
- package/template/docs/templates/implementation-repo-registry-template.md +3 -1
- package/template/docs/templates/implementation-routing-template.md +8 -6
- package/template/docs/templates/requirement-freeze-template.md +1 -1
- package/template/docs/templates/review-report-template.md +1 -1
- package/template/docs/templates/spec-template.md +5 -5
- package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +20 -204
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +63 -963
- package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +11 -14
- package/template/docs/user-guide//350/256/276/345/244/207/345/200/237/347/224/250/350/264/257/347/251/277/346/241/210/344/276/213.md +127 -0
- package/template/scripts/backend-delivery +14 -0
- package/template/scripts/fixtures/backend-delivery/revision-server.mjs +11 -0
- package/template/scripts/fixtures/strategic-handoff/base-stage.json +91 -0
- package/template/scripts/fixtures/strategic-handoff/base-strategy.json +205 -0
- package/template/scripts/fixtures/strategic-handoff/fixture.mjs +57 -0
- package/template/scripts/fixtures/strategic-handoff/source-roles.json +528 -0
- package/template/scripts/fixtures/user-decision/build-fixture.mjs +61 -0
- package/template/scripts/instantiate-harness +69 -0
- package/template/scripts/lib/approval-record.mjs +32 -1
- package/template/scripts/lib/backend-architecture.mjs +43 -0
- package/template/scripts/lib/backend-delivery.mjs +164 -0
- package/template/scripts/lib/context-contract.mjs +203 -0
- package/template/scripts/lib/digital-human-roles.mjs +21 -3
- package/template/scripts/lib/first-slice-architecture.mjs +23 -0
- package/template/scripts/lib/frontend-delivery-boundary.mjs +49 -0
- package/template/scripts/lib/frontend-delivery.mjs +73 -0
- package/template/scripts/lib/harness-execution-scope.mjs +52 -0
- package/template/scripts/lib/implementation-contract-compiler.mjs +45 -2
- package/template/scripts/lib/lifecycle-registry.mjs +14 -6
- package/template/scripts/lib/lifecycle-transition.mjs +26 -4
- package/template/scripts/lib/scaffold-local-database.mjs +26 -0
- package/template/scripts/lib/scenario-checks.mjs +25 -12
- package/template/scripts/lib/skill-governance.mjs +25 -10
- package/template/scripts/lib/skill-registry.mjs +1 -1
- package/template/scripts/lib/skill-supply-chain.mjs +1 -1
- package/template/scripts/lib/strategic-handoff-consumption.mjs +83 -0
- package/template/scripts/lib/strategic-handoff-io.mjs +75 -0
- package/template/scripts/lib/strategic-handoff-rules.mjs +37 -0
- package/template/scripts/lib/strategic-handoff-zip.py +52 -0
- package/template/scripts/lib/strategic-handoff.mjs +259 -0
- package/template/scripts/lib/task-package.mjs +17 -2
- package/template/scripts/lib/user-decision.mjs +210 -0
- package/template/scripts/strategic-handoff +14 -0
- package/template/scripts/sync-strategic-handoff-tools +20 -0
- package/template/scripts/verify-approval-record +5 -4
- package/template/scripts/verify-business-language-scenarios +59 -0
- package/template/scripts/verify-context-contract +15 -0
- package/template/scripts/verify-context-contract-scenarios +105 -0
- package/template/scripts/verify-context-reconciliation +58 -0
- package/template/scripts/verify-context-reconciliation-scenarios +69 -0
- package/template/scripts/verify-digital-human-roles-scenarios +1 -1
- package/template/scripts/verify-frontend-delivery +9 -0
- package/template/scripts/verify-frontend-delivery-scenarios +131 -0
- package/template/scripts/verify-frontend-implementation-evidence +33 -8
- package/template/scripts/verify-frontend-implementation-evidence-scenarios +56 -0
- package/template/scripts/verify-grill-with-docs-context-scenarios +15 -0
- package/template/scripts/verify-lifecycle-checkpoint +9 -1
- package/template/scripts/verify-lifecycle-transition-scenarios +13 -3
- package/template/scripts/verify-retired-skill-ids +30 -4
- package/template/scripts/verify-scaffold-architecture-decision-scenarios +30 -0
- package/template/scripts/verify-scaffold-architecture-decisions +61 -0
- package/template/scripts/verify-scaffold-generator-scenarios +74 -3
- package/template/scripts/verify-strategic-context-import +65 -0
- package/template/scripts/verify-strategic-context-import-scenarios +50 -0
- package/template/scripts/verify-strategic-handoff-consumption +10 -0
- package/template/scripts/verify-strategic-handoff-package-scenarios +102 -0
- package/template/scripts/verify-subagent-task-package-scenarios +17 -3
- package/template/scripts/verify-template-verification-scenarios +6 -1
- package/template/scripts/verify-user-decision +17 -0
- package/template/scripts/verify-user-decision-scenarios +103 -0
- package/template/skills-lock.json +77 -270
- package/template/yss-public-skills.json +4 -4
- package/template.manifest.json +43 -1
- package/template.snapshot.json +5 -5
- package/template/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.agents/skills/ask-matt/SKILL.md +0 -95
- package/template/.agents/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.agents/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.agents/skills/loop-me/SKILL.md +0 -32
- package/template/.agents/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.agents/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.agents/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.agents/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.agents/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.agents/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.agents/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.agents/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.agents/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.agents/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.agents/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.agents/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.agents/skills/teach/SKILL.md +0 -140
- package/template/.agents/skills/teach/agents/openai.yaml +0 -5
- package/template/.agents/skills/writing-beats/SKILL.md +0 -67
- package/template/.agents/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.agents/skills/writing-fragments/SKILL.md +0 -79
- package/template/.agents/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.agents/skills/writing-shape/SKILL.md +0 -79
- package/template/.agents/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.agents/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.agents/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.agents/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.agents/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.agents/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.agents/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.agents/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.claude/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.claude/skills/ask-matt/SKILL.md +0 -95
- package/template/.claude/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.claude/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.claude/skills/loop-me/SKILL.md +0 -32
- package/template/.claude/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.claude/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.claude/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.claude/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.claude/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.claude/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.claude/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.claude/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.claude/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.claude/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.claude/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.claude/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.claude/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.claude/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.claude/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.claude/skills/teach/SKILL.md +0 -140
- package/template/.claude/skills/teach/agents/openai.yaml +0 -5
- package/template/.claude/skills/writing-beats/SKILL.md +0 -67
- package/template/.claude/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.claude/skills/writing-fragments/SKILL.md +0 -79
- package/template/.claude/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.claude/skills/writing-shape/SKILL.md +0 -79
- package/template/.claude/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.claude/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.claude/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.claude/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.claude/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.claude/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.claude/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.claude/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.claude/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.claude/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.codex/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.codex/skills/ask-matt/SKILL.md +0 -95
- package/template/.codex/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.codex/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.codex/skills/loop-me/SKILL.md +0 -32
- package/template/.codex/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.codex/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.codex/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.codex/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.codex/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.codex/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.codex/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.codex/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.codex/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.codex/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.codex/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.codex/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.codex/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.codex/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.codex/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.codex/skills/teach/SKILL.md +0 -140
- package/template/.codex/skills/teach/agents/openai.yaml +0 -5
- package/template/.codex/skills/writing-beats/SKILL.md +0 -67
- package/template/.codex/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.codex/skills/writing-fragments/SKILL.md +0 -79
- package/template/.codex/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.codex/skills/writing-shape/SKILL.md +0 -79
- package/template/.codex/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.codex/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.codex/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.codex/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.codex/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.codex/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.codex/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.codex/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.cursor/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.cursor/skills/ask-matt/SKILL.md +0 -95
- package/template/.cursor/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.cursor/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.cursor/skills/loop-me/SKILL.md +0 -32
- package/template/.cursor/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.cursor/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.cursor/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.cursor/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.cursor/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.cursor/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.cursor/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.cursor/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.cursor/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.cursor/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.cursor/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.cursor/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.cursor/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.cursor/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.cursor/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.cursor/skills/teach/SKILL.md +0 -140
- package/template/.cursor/skills/teach/agents/openai.yaml +0 -5
- package/template/.cursor/skills/writing-beats/SKILL.md +0 -67
- package/template/.cursor/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.cursor/skills/writing-fragments/SKILL.md +0 -79
- package/template/.cursor/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.cursor/skills/writing-shape/SKILL.md +0 -79
- package/template/.cursor/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.cursor/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.cursor/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.cursor/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.cursor/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.cursor/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.cursor/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.cursor/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.pi/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.pi/skills/ask-matt/SKILL.md +0 -95
- package/template/.pi/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.pi/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.pi/skills/loop-me/SKILL.md +0 -32
- package/template/.pi/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.pi/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.pi/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.pi/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.pi/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.pi/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.pi/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.pi/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.pi/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.pi/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.pi/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.pi/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.pi/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.pi/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.pi/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.pi/skills/teach/SKILL.md +0 -140
- package/template/.pi/skills/teach/agents/openai.yaml +0 -5
- package/template/.pi/skills/writing-beats/SKILL.md +0 -67
- package/template/.pi/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.pi/skills/writing-fragments/SKILL.md +0 -79
- package/template/.pi/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.pi/skills/writing-shape/SKILL.md +0 -79
- package/template/.pi/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.pi/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.pi/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.pi/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.pi/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.pi/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.pi/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.pi/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.qoder/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.qoder/skills/ask-matt/SKILL.md +0 -95
- package/template/.qoder/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.qoder/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.qoder/skills/loop-me/SKILL.md +0 -32
- package/template/.qoder/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.qoder/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.qoder/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.qoder/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.qoder/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.qoder/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.qoder/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.qoder/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.qoder/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.qoder/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.qoder/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.qoder/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.qoder/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.qoder/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.qoder/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.qoder/skills/teach/SKILL.md +0 -140
- package/template/.qoder/skills/teach/agents/openai.yaml +0 -5
- package/template/.qoder/skills/writing-beats/SKILL.md +0 -67
- package/template/.qoder/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.qoder/skills/writing-fragments/SKILL.md +0 -79
- package/template/.qoder/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.qoder/skills/writing-shape/SKILL.md +0 -79
- package/template/.qoder/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.qoder/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.qoder/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.qoder/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.qoder/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.qoder/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.qoder/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.qoder/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.qoder/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.qoder/skills/yss-page-module-development/references/utils-map.md +0 -14
- package/template/.trae/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
- package/template/.trae/skills/ask-matt/SKILL.md +0 -95
- package/template/.trae/skills/ask-matt/agents/openai.yaml +0 -5
- package/template/.trae/skills/dispatching-parallel-agents/SKILL.md +0 -185
- package/template/.trae/skills/loop-me/SKILL.md +0 -32
- package/template/.trae/skills/loop-me/agents/openai.yaml +0 -5
- package/template/.trae/skills/migrate-to-shoehorn/SKILL.md +0 -118
- package/template/.trae/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
- package/template/.trae/skills/prototype-page-acceptance/SKILL.md +0 -62
- package/template/.trae/skills/scaffold-exercises/SKILL.md +0 -106
- package/template/.trae/skills/scaffold-exercises/agents/openai.yaml +0 -3
- package/template/.trae/skills/setup-pre-commit/SKILL.md +0 -91
- package/template/.trae/skills/setup-pre-commit/agents/openai.yaml +0 -3
- package/template/.trae/skills/setup-ts-deep-modules/SKILL.md +0 -102
- package/template/.trae/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
- package/template/.trae/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
- package/template/.trae/skills/teach/GLOSSARY-FORMAT.md +0 -35
- package/template/.trae/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
- package/template/.trae/skills/teach/MISSION-FORMAT.md +0 -31
- package/template/.trae/skills/teach/RESOURCES-FORMAT.md +0 -32
- package/template/.trae/skills/teach/SKILL.md +0 -140
- package/template/.trae/skills/teach/agents/openai.yaml +0 -5
- package/template/.trae/skills/writing-beats/SKILL.md +0 -67
- package/template/.trae/skills/writing-beats/agents/openai.yaml +0 -5
- package/template/.trae/skills/writing-fragments/SKILL.md +0 -79
- package/template/.trae/skills/writing-fragments/agents/openai.yaml +0 -5
- package/template/.trae/skills/writing-shape/SKILL.md +0 -79
- package/template/.trae/skills/writing-shape/agents/openai.yaml +0 -5
- package/template/.trae/skills/yss-microapp-commit/SKILL.md +0 -201
- package/template/.trae/skills/yss-microapp-commit/agents/openai.yaml +0 -5
- package/template/.trae/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
- package/template/.trae/skills/yss-page-module-development/SKILL.md +0 -165
- package/template/.trae/skills/yss-page-module-development/agents/openai.yaml +0 -5
- package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
- package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
- package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
- package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
- package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
- package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
- package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
- package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
- package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
- package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
- package/template/.trae/skills/yss-page-module-development/references/component-map.md +0 -34
- package/template/.trae/skills/yss-page-module-development/references/frontend-docs.md +0 -11
- package/template/.trae/skills/yss-page-module-development/references/hooks-map.md +0 -11
- package/template/.trae/skills/yss-page-module-development/references/utils-map.md +0 -14
package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs
CHANGED
|
@@ -1,337 +1,9 @@
|
|
|
1
1
|
import test from "node:test";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
|
-
import { mkdtemp, readFile, readdir, rm, stat, writeFile, mkdir } from "node:fs/promises";
|
|
4
3
|
import { spawnSync } from "node:child_process";
|
|
5
|
-
import os from "node:os";
|
|
6
|
-
import path from "node:path";
|
|
7
4
|
import { fileURLToPath } from "node:url";
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const gitAuthorEnvironment = {
|
|
13
|
-
GIT_CONFIG_COUNT: "1",
|
|
14
|
-
GIT_CONFIG_KEY_0: "user.name",
|
|
15
|
-
GIT_CONFIG_VALUE_0: "Scaffold Tester"
|
|
16
|
-
};
|
|
17
|
-
function run(args, options = {}) {
|
|
18
|
-
return spawnSync(process.execPath, [script, ...args], {
|
|
19
|
-
encoding: "utf8",
|
|
20
|
-
...options,
|
|
21
|
-
env: { ...process.env, ...gitAuthorEnvironment, ...(options.env ?? {}) }
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
async function expectedDistributedLock() {
|
|
25
|
-
const lock = JSON.parse(await readFile(path.join(harnessRoot, "skills-lock.json"), "utf8"));
|
|
26
|
-
delete lock.skills?.shared?.["yss-mvc-scaffold-generator"];
|
|
27
|
-
for (const platform of Object.values(lock.skills?.platform ?? {})) delete platform?.["yss-mvc-scaffold-generator"];
|
|
28
|
-
return `${JSON.stringify(lock, null, 2)}\n`;
|
|
29
|
-
}
|
|
30
|
-
test("生成固定六模块和 mock endpoint", async (t) => {
|
|
31
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-scaffold-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
32
|
-
const target = path.join(base, "item1"); const result = run(["--project-name", "data-analysis-item1", "--base-package", "com.yss.dataanalysis.item1", "--target-dir", target, "--database", "oracle", "--with-mock"]);
|
|
33
|
-
assert.equal(result.status, 0, result.stderr); const backend = target; const pom = await readFile(path.join(backend, "pom.xml"), "utf8");
|
|
34
|
-
const skillUtils = path.join(base, "skillUtils");
|
|
35
|
-
for (const module of ["server", "core", "client", "repository", "adapter", "feign-client"]) assert.match(pom, new RegExp(`<module>${module}</module>`));
|
|
36
|
-
const controller = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/controller/AnalysisController.java"), "utf8"); assert.match(controller, /\/api\/analysis/); assert.doesNotMatch(controller, /;[ \t]+import /);
|
|
37
|
-
assert.match(controller, /\* \u6570\u636e\u5206\u6790\u67e5\u8be2\u63a5\u53e3\u3002/);
|
|
38
|
-
assert.match(controller, /@author Scaffold Tester/);
|
|
39
|
-
assert.match(controller, /@date \d{4}\/\d{2}\/\d{2} \d{2}:\d{2}/);
|
|
40
|
-
assert.match(controller, /\* \u5206\u9875\u67e5\u8be2\u6570\u636e\u5206\u6790\u7ed3\u679c\u3002[\s\S]*@param query[\s\S]*@return \u6570\u636e\u5206\u6790\u5206\u9875\u7ed3\u679c/);
|
|
41
|
-
const mock = await readFile(path.join(backend, "adapter/src/main/java/com/yss/dataanalysis/item1/adapter/mock/MockAnalysisQueryExecutor.java"), "utf8"); assert.match(mock, /source|"mock"/);
|
|
42
|
-
const configuration = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/configuration/AnalysisConfiguration.java"), "utf8"); assert.match(configuration, /Profile\("mock"\)/); assert.match(configuration, /Profile\("oracle & !mock"\)/);
|
|
43
|
-
await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/Application.java"), "utf8");
|
|
44
|
-
const controllerTest = await readFile(path.join(backend, "server/src/test/java/com/yss/dataanalysis/item1/server/controller/AnalysisControllerTest.java"), "utf8");
|
|
45
|
-
assert.match(controllerTest, /pageNo/);
|
|
46
|
-
assert.match(await readFile(path.join(target, "yss-project.yaml"), "utf8"), /repository_mode: project-instance/);
|
|
47
|
-
assert.match(await readFile(path.join(target, "CONTEXT.md"), "utf8"), /AnalysisDataset/);
|
|
48
|
-
assert.match(await readFile(path.join(target, ".artifact-workspace.yaml"), "utf8"), /kind: service/);
|
|
49
|
-
assert.match(await readFile(path.join(target, "docs/service/module-map.md"), "utf8"), /feign-client/);
|
|
50
|
-
assert.match(await readFile(path.join(target, "docs/service/current-capabilities.md"), "utf8"), /普通功能开发不手工修改/);
|
|
51
|
-
assert.match(await readFile(path.join(target, "docs/process/implementation-repo-registry.yaml"), "utf8"), /repository_scope: external-repository/);
|
|
52
|
-
const analysisProject = await readFile(path.join(target, "docs/process/analysis-project.yaml"), "utf8"); assert.match(analysisProject, /project_name: data-analysis-item1/); assert.doesNotMatch(analysisProject, /galaxy-data-analysis|fegin-client/);
|
|
53
|
-
assert.match(await readFile(path.join(target, "docs/process/lifecycle-registry.yaml"), "utf8"), /schema_version:/);
|
|
54
|
-
assert.match(await readFile(path.join(target, "docs/templates/vertical-slice-ticket-template.md"), "utf8"), /status: ready-for-human/);
|
|
55
|
-
assert.match(await readFile(path.join(target, "docs/templates/local-parent-ticket-template.md"), "utf8"), /lifecycle_status \| routing \/ running \/ paused-human-gate \/ blocked \/ completed/);
|
|
56
|
-
const lifecycleContract = await readFile(path.join(skillUtils, ".agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml"), "utf8");
|
|
57
|
-
assert.match(lifecycleContract, /entry_routing:/);
|
|
58
|
-
assert.match(lifecycleContract, /workflow_execution_result:/);
|
|
59
|
-
assert.match(lifecycleContract, /work_unit_routes:/);
|
|
60
|
-
assert.match(await readFile(path.join(target, "docs/templates/approval-record-template.yaml"), "utf8"), /gate_id:/);
|
|
61
|
-
assert.match(await readFile(path.join(target, "docs/templates/implementation-routing-template.md"), "utf8"), /implementation/);
|
|
62
|
-
assert.match(await readFile(path.join(target, "docs/templates/verification-record-template.md"), "utf8"), /verification/i);
|
|
63
|
-
await readFile(path.join(skillUtils, ".agents/skills/yss-product-lifecycle/SKILL.md"), "utf8");
|
|
64
|
-
for (const projection of [".agents", ".claude", ".codex", ".cursor", ".pi", ".qoder", ".trae"]) {
|
|
65
|
-
await assert.rejects(stat(path.join(skillUtils, projection, "skills/yss-mvc-scaffold-generator")), { code: "ENOENT" });
|
|
66
|
-
}
|
|
67
|
-
assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
|
|
68
|
-
assert.equal(spawnSync("git", ["-C", target, "branch", "--show-current"], { encoding: "utf8" }).stdout.trim(), "main");
|
|
69
|
-
assert.equal(spawnSync("git", ["-C", target, "rev-list", "--all", "--count"], { encoding: "utf8" }).stdout.trim(), "0");
|
|
70
|
-
assert.equal(spawnSync("git", ["-C", target, "remote"], { encoding: "utf8" }).stdout.trim(), "");
|
|
71
|
-
const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
|
|
72
|
-
assert.equal(verification.status, 0, verification.stderr);
|
|
73
|
-
await assert.rejects(stat(path.join(skillUtils, ".agents/skills/data-analysis-java-implementation")), { code: "ENOENT" });
|
|
74
|
-
const implementationRegistry = await readFile(path.join(target, "docs/process/implementation-repo-registry.yaml"), "utf8");
|
|
75
|
-
assert.doesNotMatch(implementationRegistry, /data-analysis-java-implementation|verify_java_web_style\.mjs/);
|
|
76
|
-
assert.match(implementationRegistry, /fmt-maven-plugin:2\.9\.1:check/);
|
|
77
|
-
assert.doesNotMatch(implementationRegistry, /smart-doc-maven-plugin:[^\s]+:openapi/);
|
|
78
|
-
assert.doesNotMatch(implementationRegistry, /smart-doc-verification\.md/);
|
|
79
|
-
const projectInstanceDocs = await Promise.all([
|
|
80
|
-
"AGENTS.md",
|
|
81
|
-
"docs/agents/skills-maintenance.md",
|
|
82
|
-
"docs/agents/gitlab-workflow-skills.md",
|
|
83
|
-
"docs/agents/issue-tracker.md",
|
|
84
|
-
"docs/process/implementation-repo-integration.md",
|
|
85
|
-
"docs/process/harness-process-tailoring.md",
|
|
86
|
-
"docs/templates/build-architecture-checklist-template.md"
|
|
87
|
-
].map((relative) => readFile(path.join(target, relative), "utf8")));
|
|
88
|
-
const staleProjectCommands = /scripts\/(?:verify-template|sync-skills|update-skill-lock|export-yss-skills|verify-upstream-skill-source|verify-maintenance-checkpoint|verify-implementation-path-scenarios|gitworks)/;
|
|
89
|
-
for (const body of projectInstanceDocs) assert.doesNotMatch(body, staleProjectCommands);
|
|
90
|
-
const serverPom = await readFile(path.join(backend, "server/pom.xml"), "utf8");
|
|
91
|
-
assert.match(serverPom, /<profiles>[\s\S]*<id>nacos<\/id>[\s\S]*<activeByDefault>true<\/activeByDefault>/);
|
|
92
|
-
assert.match(serverPom, /<app\.env>dev<\/app\.env>[\s\S]*<app\.profiles>nacos<\/app\.profiles>/);
|
|
93
|
-
assert.match(serverPom, /spring-boot-maven-plugin/);
|
|
94
|
-
assert.match(serverPom, /<includes>[\s\S]*data-analysis-item1-client[\s\S]*data-analysis-item1-core[\s\S]*data-analysis-item1-repository[\s\S]*<\/includes>/);
|
|
95
|
-
const smartDocPlugin = serverPom.match(/<plugin>(?:(?!<\/plugin>)[\s\S])*?<artifactId>smart-doc-maven-plugin<\/artifactId>(?:(?!<\/plugin>)[\s\S])*?<\/plugin>/)?.[0];
|
|
96
|
-
assert.ok(smartDocPlugin);
|
|
97
|
-
assert.doesNotMatch(smartDocPlugin, /<executions>/);
|
|
98
|
-
const smartDoc = await readFile(path.join(backend, "server/src/main/resources/smart-doc.json"), "utf8");
|
|
99
|
-
assert.match(smartDoc, /"projectName": "data-analysis-item1"/);
|
|
100
|
-
assert.match(smartDoc, /"packageFilters": "com\.yss\.dataanalysis\.item1\.server\.controller\.\*"/);
|
|
101
|
-
assert.match(smartDoc, /"showAuthor": true/);
|
|
102
|
-
assert.match(smartDoc, /"appToken": ""/);
|
|
103
|
-
assert.doesNotMatch(smartDoc, /43fd1d4bc1c743c1b83bf4843e8167bf|192\.168\./);
|
|
104
|
-
const logback = await readFile(path.join(backend, "server/src/main/resources/logback-spring.xml"), "utf8");
|
|
105
|
-
assert.match(logback, /springProfile name="dev,mock"/);
|
|
106
|
-
assert.match(logback, /springProfile name="uat,pro,oracle,oceanbase-oracle"/);
|
|
107
|
-
assert.match(logback, /com\.yss\.dataanalysis\.item1/);
|
|
108
|
-
const bootstrap = await readFile(path.join(backend, "server/src/main/resources/bootstrap.yml"), "utf8");
|
|
109
|
-
assert.match(bootstrap, /active: \$\{app\.env:dev\},datasource,nacos,oracle,mock/);
|
|
110
|
-
assert.doesNotMatch(bootstrap, /mock,\s*$/m);
|
|
111
|
-
const bootstrapNacos = await readFile(path.join(backend, "server/src/main/resources/bootstrap-nacos.yml"), "utf8");
|
|
112
|
-
assert.match(bootstrapNacos, /server-addr: \$\{nacosserver:192\.168\.165\.58:8848\}/);
|
|
113
|
-
assert.match(bootstrapNacos, /group: \$\{nacos_group:yss-dm\}/);
|
|
114
|
-
assert.match(bootstrapNacos, /discovery:[\s\S]*enabled: true[\s\S]*config:[\s\S]*enabled: true/);
|
|
115
|
-
const bootstrapMock = await readFile(path.join(backend, "server/src/main/resources/bootstrap-mock.yml"), "utf8");
|
|
116
|
-
assert.match(bootstrapMock, /discovery:[\s\S]*enabled: false/);
|
|
117
|
-
assert.match(bootstrapMock, /config:[\s\S]*enabled: false[\s\S]*import-check:[\s\S]*enabled: false/);
|
|
118
|
-
const applicationMock = await readFile(path.join(backend, "server/src/main/resources/application-mock.yml"), "utf8");
|
|
119
|
-
assert.match(applicationMock, /leaf:[\s\S]*leafSegmentEnable: false[\s\S]*leafSnowflakeEnable: false/);
|
|
120
|
-
assert.match(applicationMock, /com\.yss\.cloud\.mybatis\.MybatisPlusConfiguration/);
|
|
121
|
-
assert.match(applicationMock, /com\.yss\.cloud\.sankuai\.config\.LeafDataSourceConfiguration/);
|
|
122
|
-
const application = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/Application.java"), "utf8");
|
|
123
|
-
assert.doesNotMatch(application, /@EnableDistributedId/);
|
|
124
|
-
const databaseInfrastructure = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/configuration/DatabaseInfrastructureConfiguration.java"), "utf8");
|
|
125
|
-
assert.match(databaseInfrastructure, /@Profile\("!mock"\)/);
|
|
126
|
-
assert.match(databaseInfrastructure, /@EnableDistributedId/);
|
|
127
|
-
assert.match(databaseInfrastructure, /@Import\(MapperConfiguration.class\)/);
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
test("已有 skillUtils 落后时原子刷新并保留备份", async (t) => {
|
|
131
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-refresh-"));
|
|
132
|
-
t.after(() => rm(base, { recursive: true, force: true }));
|
|
133
|
-
const skillUtils = path.join(base, "skillUtils");
|
|
134
|
-
await mkdir(skillUtils, { recursive: true });
|
|
135
|
-
await writeFile(path.join(skillUtils, "skill-utils.yaml"), "schema_version: 1\nkind: yss-skill-utils\n", "utf8");
|
|
136
|
-
await writeFile(path.join(skillUtils, "skills-lock.json"), "{\"version\":0}\n", "utf8");
|
|
137
|
-
await writeFile(path.join(skillUtils, "local-marker.txt"), "preserve old installation\n", "utf8");
|
|
138
|
-
const target = path.join(base, "item-refresh");
|
|
139
|
-
const result = run(["--project-name", "data-analysis-refresh", "--base-package", "com.yss.dataanalysis.refresh", "--target-dir", target]);
|
|
140
|
-
assert.equal(result.status, 0, result.stderr);
|
|
141
|
-
const output = JSON.parse(result.stdout);
|
|
142
|
-
assert.equal(output.skill_utils_created, false);
|
|
143
|
-
assert.equal(output.skill_utils_refreshed, true);
|
|
144
|
-
assert.ok(output.skill_utils_backup);
|
|
145
|
-
assert.equal(await readFile(path.join(output.skill_utils_backup, "local-marker.txt"), "utf8"), "preserve old installation\n");
|
|
146
|
-
assert.equal(await readFile(path.join(skillUtils, "skills-lock.json"), "utf8"), await expectedDistributedLock());
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
test("已有 skillUtils 与源锁一致时直接复用", async (t) => {
|
|
150
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-reuse-"));
|
|
151
|
-
t.after(() => rm(base, { recursive: true, force: true }));
|
|
152
|
-
const first = run(["--project-name", "data-analysis-reuse-a", "--base-package", "com.yss.dataanalysis.reusea", "--target-dir", path.join(base, "item-a")]);
|
|
153
|
-
assert.equal(first.status, 0, first.stderr);
|
|
154
|
-
const second = run(["--project-name", "data-analysis-reuse-b", "--base-package", "com.yss.dataanalysis.reuseb", "--target-dir", path.join(base, "item-b")]);
|
|
155
|
-
assert.equal(second.status, 0, second.stderr);
|
|
156
|
-
const output = JSON.parse(second.stdout);
|
|
157
|
-
assert.equal(output.skill_utils_created, false);
|
|
158
|
-
assert.equal(output.skill_utils_refreshed, false);
|
|
159
|
-
assert.equal(output.skill_utils_backup, null);
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
test("dry-run 仅报告 skillUtils 将刷新且不修改旧目录", async (t) => {
|
|
163
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-dry-refresh-"));
|
|
164
|
-
t.after(() => rm(base, { recursive: true, force: true }));
|
|
165
|
-
const skillUtils = path.join(base, "skillUtils");
|
|
166
|
-
await mkdir(skillUtils, { recursive: true });
|
|
167
|
-
await writeFile(path.join(skillUtils, "skill-utils.yaml"), "schema_version: 1\nkind: yss-skill-utils\n", "utf8");
|
|
168
|
-
await writeFile(path.join(skillUtils, "skills-lock.json"), "{\"version\":0}\n", "utf8");
|
|
169
|
-
const result = run(["--project-name", "data-analysis-dry-refresh", "--base-package", "com.yss.dataanalysis.dryrefresh", "--target-dir", path.join(base, "item"), "--dry-run"]);
|
|
170
|
-
assert.equal(result.status, 0, result.stderr);
|
|
171
|
-
const output = JSON.parse(result.stdout);
|
|
172
|
-
assert.equal(output.skill_utils_refreshed, true);
|
|
173
|
-
assert.equal(output.skill_utils_backup, null);
|
|
174
|
-
assert.equal(await readFile(path.join(skillUtils, "skills-lock.json"), "utf8"), "{\"version\":0}\n");
|
|
175
|
-
assert.deepEqual((await readdir(base)).sort(), ["skillUtils"]);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
test("Git 当前用户写入 Javadoc 且缺失时拒绝生成", async (t) => {
|
|
179
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-author-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
180
|
-
const target = path.join(base, "author-project");
|
|
181
|
-
const generated = run(["--project-name", "author-project", "--base-package", "com.yss.author", "--target-dir", target], {
|
|
182
|
-
env: { GIT_CONFIG_VALUE_0: "张三" }
|
|
183
|
-
});
|
|
184
|
-
assert.equal(generated.status, 0, generated.stderr);
|
|
185
|
-
const controller = await readFile(path.join(target, "server/src/main/java/com/yss/author/server/controller/AnalysisController.java"), "utf8");
|
|
186
|
-
assert.match(controller, /@author 张三/);
|
|
187
|
-
assert.doesNotMatch(controller, /@author system/);
|
|
188
|
-
|
|
189
|
-
const missingTarget = path.join(base, "missing-author");
|
|
190
|
-
const missing = run(["--project-name", "missing-author", "--base-package", "com.yss.missing", "--target-dir", missingTarget], {
|
|
191
|
-
env: { GIT_CONFIG_COUNT: "0", GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: path.join(base, "not-found.gitconfig") }
|
|
192
|
-
});
|
|
193
|
-
assert.notEqual(missing.status, 0);
|
|
194
|
-
assert.match(missing.stderr, /Git user\.name/);
|
|
195
|
-
await assert.rejects(stat(missingTarget), { code: "ENOENT" });
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
test("不启用 Mock 时不生成 bootstrap-mock 且不激活 mock profile", async (t) => {
|
|
199
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-no-mock-profile-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
200
|
-
const target = path.join(base, "data-analysis-no-mock");
|
|
201
|
-
const result = run(["--project-name", "data-analysis-no-mock", "--base-package", "com.yss.dataanalysis.nomock", "--target-dir", target]);
|
|
202
|
-
assert.equal(result.status, 0, result.stderr);
|
|
203
|
-
const bootstrap = await readFile(path.join(target, "server/src/main/resources/bootstrap.yml"), "utf8");
|
|
204
|
-
assert.match(bootstrap, /active: \$\{app\.env:dev\},datasource,nacos,oracle/);
|
|
205
|
-
assert.doesNotMatch(bootstrap, /,mock/);
|
|
206
|
-
await assert.rejects(stat(path.join(target, "server/src/main/resources/bootstrap-mock.yml")), { code: "ENOENT" });
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
test("Maven settings \u4f5c\u4e3a外部验证输入且不写入项目", async (t) => {
|
|
210
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-settings-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
211
|
-
const settings = path.join(base, "settings.xml");
|
|
212
|
-
await writeFile(settings, "<settings/>\n");
|
|
213
|
-
const target = path.join(base, "data-analysis-item-settings");
|
|
214
|
-
const result = run(["--project-name", "data-analysis-item-settings", "--base-package", "com.yss.dataanalysis.settings", "--target-dir", target, "--maven-settings", settings]);
|
|
215
|
-
assert.equal(result.status, 0, result.stderr);
|
|
216
|
-
const manifest = await readFile(path.join(target, ".yss/scaffold-generation.json"), "utf8");
|
|
217
|
-
assert.match(manifest, /"maven_settings_mode": "external"/);
|
|
218
|
-
assert.match(manifest, /"maven_settings_required": true/);
|
|
219
|
-
assert.doesNotMatch(manifest, new RegExp(settings.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")));
|
|
220
|
-
assert.equal((await readdir(target)).includes("settings.xml"), false);
|
|
221
|
-
});
|
|
222
|
-
test("Maven settings 支持环境变量且显式参数优先", async (t) => {
|
|
223
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-settings-resolution-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
224
|
-
const environmentSettings = path.join(base, "environment-settings.xml");
|
|
225
|
-
const explicitSettings = path.join(base, "explicit-settings.xml");
|
|
226
|
-
await writeFile(environmentSettings, "<settings/>\n");
|
|
227
|
-
await writeFile(explicitSettings, "<settings/>\n");
|
|
228
|
-
const environmentTarget = path.join(base, "environment-project");
|
|
229
|
-
const fromEnvironment = run(["--project-name", "environment-project", "--base-package", "com.yss.environment", "--target-dir", environmentTarget, "--dry-run"], { env: { YSS_MAVEN_SETTINGS: environmentSettings } });
|
|
230
|
-
assert.equal(fromEnvironment.status, 0, fromEnvironment.stderr);
|
|
231
|
-
assert.match(fromEnvironment.stdout, /"maven_settings_source": "environment"/);
|
|
232
|
-
const explicitTarget = path.join(base, "explicit-project");
|
|
233
|
-
const fromExplicit = run(["--project-name", "explicit-project", "--base-package", "com.yss.explicit", "--target-dir", explicitTarget, "--maven-settings", explicitSettings, "--dry-run"], { env: { YSS_MAVEN_SETTINGS: environmentSettings } });
|
|
234
|
-
assert.equal(fromExplicit.status, 0, fromExplicit.stderr);
|
|
235
|
-
assert.match(fromExplicit.stdout, /"maven_settings_source": "explicit"/);
|
|
236
|
-
});
|
|
237
|
-
test("未指定 settings 时仍完整生成,并将依赖解析延后到验证阶段", async (t) => {
|
|
238
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "yss-mvc-no-settings-"));
|
|
239
|
-
t.after(() => rm(base, { recursive: true, force: true }));
|
|
240
|
-
const target = path.join(base, "no-settings-project");
|
|
241
|
-
const result = run(["--project-name", "no-settings-project", "--base-package", "com.yss.nosettings", "--target-dir", target], {
|
|
242
|
-
env: { YSS_MAVEN_SETTINGS: "", USERPROFILE: path.join(base, "missing-user"), HOME: path.join(base, "missing-home") }
|
|
243
|
-
});
|
|
244
|
-
assert.equal(result.status, 0, result.stderr);
|
|
245
|
-
const output = JSON.parse(result.stdout);
|
|
246
|
-
assert.equal(output.maven_settings_source, "maven-default");
|
|
247
|
-
assert.equal(output.maven_settings_available, false);
|
|
248
|
-
assert.equal(output.dependency_resolution, "deferred");
|
|
249
|
-
assert.equal(output.network_access_during_generation, "disabled");
|
|
250
|
-
for (const module of ["server", "core", "client", "repository", "adapter", "feign-client"]) {
|
|
251
|
-
await stat(path.join(target, module, "pom.xml"));
|
|
252
|
-
}
|
|
253
|
-
await stat(path.join(target, "mvnw"));
|
|
254
|
-
assert.equal((await readdir(target)).includes("settings.xml"), false);
|
|
255
|
-
});
|
|
256
|
-
test("拒绝非空目标目录", async (t) => {
|
|
257
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-scaffold-nonempty-")); t.after(() => rm(base, { recursive: true, force: true })); await mkdir(base, { recursive: true }); await writeFile(path.join(base, "keep.txt"), "keep");
|
|
258
|
-
const result = run(["--project-name", "data-analysis-item1", "--base-package", "com.yss.dataanalysis.item1", "--target-dir", base]); assert.notEqual(result.status, 0); assert.match(result.stderr, /目标目录非空/);
|
|
259
|
-
});
|
|
260
|
-
test("允许已存在的空目标目录", async (t) => {
|
|
261
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-empty-target-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
262
|
-
const target = path.join(base, "data-analysis-item-empty"); await mkdir(target);
|
|
263
|
-
const result = run(["--project-name", "data-analysis-item-empty", "--base-package", "com.yss.dataanalysis.empty", "--target-dir", target]);
|
|
264
|
-
assert.equal(result.status, 0, result.stderr);
|
|
265
|
-
assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
|
|
266
|
-
});
|
|
267
|
-
test("嵌套在父仓目录时仍初始化为独立 Git 根", async (t) => {
|
|
268
|
-
const parent = await mkdtemp(path.join(os.tmpdir(), "data-analysis-parent-repo-")); t.after(() => rm(parent, { recursive: true, force: true }));
|
|
269
|
-
assert.equal(spawnSync("git", ["init", "--initial-branch=parent-main", parent], { encoding: "utf8" }).status, 0);
|
|
270
|
-
const target = path.join(parent, "data-analysis-item2");
|
|
271
|
-
const result = run(["--project-name", "data-analysis-item2", "--base-package", "com.yss.dataanalysis.item2", "--target-dir", target]);
|
|
272
|
-
assert.equal(result.status, 0, result.stderr);
|
|
273
|
-
assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
|
|
274
|
-
assert.equal(spawnSync("git", ["-C", target, "branch", "--show-current"], { encoding: "utf8" }).stdout.trim(), "main");
|
|
275
|
-
});
|
|
276
|
-
test("dry-run 不创建目录或 Git 仓库", async (t) => {
|
|
277
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-dry-run-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
278
|
-
const target = path.join(base, "data-analysis-item3");
|
|
279
|
-
const result = run(["--project-name", "data-analysis-item3", "--base-package", "com.yss.dataanalysis.item3", "--target-dir", target, "--dry-run"]);
|
|
280
|
-
assert.equal(result.status, 0, result.stderr);
|
|
281
|
-
assert.match(result.stdout, /"mode": "dry-run"/);
|
|
282
|
-
assert.equal(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).status, 128);
|
|
283
|
-
});
|
|
284
|
-
test("Git 预检失败时不留下目标目录或 staging", async (t) => {
|
|
285
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-no-git-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
286
|
-
const target = path.join(base, "data-analysis-item4");
|
|
287
|
-
const result = run(["--project-name", "data-analysis-item4", "--base-package", "com.yss.dataanalysis.item4", "--target-dir", target], { env: { ...process.env, PATH: "" } });
|
|
288
|
-
assert.notEqual(result.status, 0); assert.match(result.stderr, /未检测到可用的 Git/);
|
|
289
|
-
await assert.rejects(stat(target), { code: "ENOENT" });
|
|
290
|
-
assert.deepEqual((await readdir(base)).filter((name) => name.includes(".staging-")), []);
|
|
291
|
-
});
|
|
292
|
-
test("staging 创建后中间步骤失败时只清理本轮 staging", async (t) => {
|
|
293
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-git-init-fail-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
294
|
-
const occupied = path.join(base, ".data-analysis-item5.staging-occupied"); await mkdir(occupied); await writeFile(path.join(occupied, "keep.txt"), "keep");
|
|
295
|
-
const target = path.join(base, "data-analysis-item5");
|
|
296
|
-
const result = run(["--project-name", "data-analysis-item5", "--base-package", "com.yss.dataanalysis.item5", "--target-dir", target], { env: { ...process.env, NODE_ENV: "test", YSS_SCAFFOLD_TEST_FAIL_AFTER_STAGING: "1" } });
|
|
297
|
-
assert.notEqual(result.status, 0); assert.match(result.stderr, /staging 后失败/);
|
|
298
|
-
await assert.rejects(stat(target), { code: "ENOENT" });
|
|
299
|
-
assert.equal(await readFile(path.join(occupied, "keep.txt"), "utf8"), "keep");
|
|
300
|
-
assert.deepEqual((await readdir(base)).filter((name) => name.startsWith(".data-analysis-item5.staging-") && name !== path.basename(occupied)), []);
|
|
301
|
-
});
|
|
302
|
-
test("生成期间空目标目录被写入时保留新内容并拒绝替换", async (t) => {
|
|
303
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-target-race-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
304
|
-
const target = path.join(base, "data-analysis-item6"); await mkdir(target);
|
|
305
|
-
const result = run(["--project-name", "data-analysis-item6", "--base-package", "com.yss.dataanalysis.item6", "--target-dir", target], { env: { ...process.env, NODE_ENV: "test", YSS_SCAFFOLD_TEST_WRITE_TARGET_DURING_STAGING: "1" } });
|
|
306
|
-
assert.notEqual(result.status, 0);
|
|
307
|
-
assert.equal(await readFile(path.join(target, "keep.txt"), "utf8"), "concurrent content\n");
|
|
308
|
-
assert.deepEqual((await readdir(base)).filter((name) => name.startsWith(".data-analysis-item6.staging-")), []);
|
|
309
|
-
});
|
|
310
|
-
test("结构验证器拒绝与生成清单不一致的实现仓登记", async (t) => {
|
|
311
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-registry-drift-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
312
|
-
const target = path.join(base, "data-analysis-item7");
|
|
313
|
-
const result = run(["--project-name", "data-analysis-item7", "--base-package", "com.yss.dataanalysis.item7", "--target-dir", target]);
|
|
314
|
-
assert.equal(result.status, 0, result.stderr);
|
|
315
|
-
const registryPath = path.join(target, "docs/process/implementation-repo-registry.yaml");
|
|
316
|
-
const registry = await readFile(registryPath, "utf8");
|
|
317
|
-
await writeFile(registryPath, registry.replace("repository_scope: external-repository", "repository_scope: harness-apps"));
|
|
318
|
-
const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
|
|
319
|
-
assert.notEqual(verification.status, 0);
|
|
320
|
-
assert.match(verification.stderr, /实现仓登记与生成清单不一致/);
|
|
321
|
-
});
|
|
322
|
-
test("OceanBase Oracle 仅生成指定驱动并保持 Java 8 基线", async (t) => {
|
|
323
|
-
const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-oceanbase-")); t.after(() => rm(base, { recursive: true, force: true }));
|
|
324
|
-
const target = path.join(base, "data-analysis-item8");
|
|
325
|
-
const result = run(["--project-name", "data-analysis-item8", "--base-package", "com.yss.dataanalysis.item8", "--target-dir", target, "--database", "oceanbase-oracle", "--with-mock"]);
|
|
326
|
-
assert.equal(result.status, 0, result.stderr);
|
|
327
|
-
const parentPom = await readFile(path.join(target, "pom.xml"), "utf8");
|
|
328
|
-
const repositoryPom = await readFile(path.join(target, "repository/pom.xml"), "utf8");
|
|
329
|
-
assert.match(parentPom, /<java.version>1.8<\/java.version>/);
|
|
330
|
-
assert.match(parentPom, /<version>2.0.0-SNAPSHOT<\/version>/);
|
|
331
|
-
assert.match(repositoryPom, /oceanbase-client/);
|
|
332
|
-
assert.doesNotMatch(repositoryPom, /ojdbc8/);
|
|
333
|
-
const querySource = await readFile(path.join(target, "client/src/main/java/com/yss/dataanalysis/item8/client/query/AnalysisQuery.java"), "utf8");
|
|
334
|
-
assert.doesNotMatch(querySource, /\brecord\b|List\.of|Map\.of|jakarta\./);
|
|
335
|
-
const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
|
|
336
|
-
assert.equal(verification.status, 0, verification.stderr);
|
|
5
|
+
test("退役入口拒绝旧数据库和 Mock,不作静默别名", () => {
|
|
6
|
+
const result = spawnSync(process.execPath, [fileURLToPath(new URL("./generate_project.mjs", import.meta.url)), "--database", "oracle", "--with-mock"], { encoding: "utf8" });
|
|
7
|
+
assert.equal(result.status, 1);
|
|
8
|
+
assert.match(result.stderr, /deprecated.*yss-mvc-data-analysis-project-initializer/);
|
|
337
9
|
});
|
|
@@ -5,20 +5,28 @@ import { HARNESS_ROOT, MODULES, PROJECT_SCRIPT_FILES, exists, fail } from "./run
|
|
|
5
5
|
import { put } from "./storage.mjs";
|
|
6
6
|
|
|
7
7
|
const TEMPLATE_SOURCE_COMMAND = /scripts\/(?:verify-template(?:-fast|-candidate)?|sync-skills|update-skill-lock|export-yss-skills|verify-upstream-skill-source|verify-maintenance-checkpoint|verify-implementation-path-scenarios|gitworks)/g;
|
|
8
|
+
const TEMPLATE_SOURCE_SECTION = /(^## 4\. `template-source` 模板维护路由[^\S\r\n]*$)[\s\S]*?(?=^## 5\. `project-instance` 产品研发路由[^\S\r\n]*$)/m;
|
|
8
9
|
|
|
9
10
|
function removeTemplateSourceCommands(content) {
|
|
10
11
|
return content.replace(TEMPLATE_SOURCE_COMMAND, "上游 Harness 专用命令");
|
|
11
12
|
}
|
|
12
13
|
|
|
14
|
+
export function renderProjectInstanceAgents(content) {
|
|
15
|
+
if (!TEMPLATE_SOURCE_SECTION.test(content)) fail("无法定位 AGENTS.md 的模板维护章节边界");
|
|
16
|
+
return content.replace(
|
|
17
|
+
TEMPLATE_SOURCE_SECTION,
|
|
18
|
+
"$1\n\n当前仓库是 `project-instance`,模板维护只在上游 Harness 执行。\n\n"
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
export async function writeProjectEnvelope(o) {
|
|
14
23
|
await put(o.targetDir, "yss-project.yaml", "schema_version: 1\nrepository_mode: project-instance");
|
|
15
24
|
await put(o.targetDir, ".artifact-workspace.yaml", `schema_version: 1\nkind: service\nservice_id: ${o.projectName}\nowner: ${JSON.stringify(o.gitAuthor)}`);
|
|
16
25
|
await cp(path.join(HARNESS_ROOT, "AGENTS.md"), path.join(o.targetDir, "AGENTS.md"));
|
|
17
26
|
const generatedAgents = await readFile(path.join(o.targetDir, "AGENTS.md"), "utf8");
|
|
18
|
-
await writeFile(path.join(o.targetDir, "AGENTS.md"), generatedAgents
|
|
27
|
+
await writeFile(path.join(o.targetDir, "AGENTS.md"), renderProjectInstanceAgents(generatedAgents)
|
|
19
28
|
.replaceAll(".agents/skills", "../skillUtils/.agents/skills")
|
|
20
|
-
.replaceAll(".codex/skills", "../skillUtils/.codex/skills")
|
|
21
|
-
.replace("- 模板维护默认以 `scripts/verify-template-fast` 完成 `implementation-ready`;显式晋级审查时用 `scripts/verify-template-candidate`,首次冻结前和最终发布前仍必须执行完整 `scripts/verify-template`。后者是不可裁剪的模板发布阻断门禁。模板与外部 `create-yss-spec` 的跨仓库契约未完成集成验证时,不得声称可发布。", "- 模板发布门禁只在上游 Harness 模板源执行;当前项目实例不分发或运行模板验证命令。"), "utf8");
|
|
29
|
+
.replaceAll(".codex/skills", "../skillUtils/.codex/skills"), "utf8");
|
|
22
30
|
await put(o.targetDir, "CONTEXT.md", "# 领域上下文\n\n## 业务术语\n\n| 术语 | 定义 | 英文标识 | 避免 / 备注 |\n|---|---|---|---|\n| 分析数据集 | 支撑一个数据分析功能的表结构、字段语义和查询边界。 | AnalysisDataset | 具体业务术语在需求分析后补充 |\n| 分析结果 | 数据分析接口返回的分页明细或聚合结果。 | AnalysisResult | 不表示未经约束的原始结果集 |");
|
|
23
31
|
for (const relative of ["docs/agents", "docs/process", "docs/templates", "docs/architecture/templates"]) {
|
|
24
32
|
const source = path.join(HARNESS_ROOT, relative);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import test from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
|
|
4
|
+
import { renderProjectInstanceAgents } from "./envelope.mjs";
|
|
5
|
+
|
|
6
|
+
test("按章节边界把模板维护路由转换为项目实例说明", () => {
|
|
7
|
+
const source = `# AGENTS.md
|
|
8
|
+
|
|
9
|
+
## 3. 上文
|
|
10
|
+
|
|
11
|
+
保留。
|
|
12
|
+
|
|
13
|
+
## 4. \`template-source\` 模板维护路由
|
|
14
|
+
|
|
15
|
+
这里的自然语言允许持续精简,不应参与匹配。
|
|
16
|
+
|
|
17
|
+
- 模板源命令也不应进入项目实例。
|
|
18
|
+
|
|
19
|
+
## 5. \`project-instance\` 产品研发路由
|
|
20
|
+
|
|
21
|
+
继续保留。
|
|
22
|
+
`;
|
|
23
|
+
|
|
24
|
+
const result = renderProjectInstanceAgents(source);
|
|
25
|
+
|
|
26
|
+
assert.match(result, /## 4\. `template-source` 模板维护路由\n\n当前仓库是 `project-instance`,模板维护只在上游 Harness 执行。/);
|
|
27
|
+
assert.doesNotMatch(result, /这里的自然语言允许持续精简/);
|
|
28
|
+
assert.match(result, /## 5\. `project-instance` 产品研发路由\n\n继续保留/);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
test("模板维护章节边界缺失时明确失败", () => {
|
|
32
|
+
assert.throws(
|
|
33
|
+
() => renderProjectInstanceAgents("# AGENTS.md\n\n## 5. `project-instance` 产品研发路由\n"),
|
|
34
|
+
/无法定位 AGENTS\.md 的模板维护章节边界/
|
|
35
|
+
);
|
|
36
|
+
});
|
|
@@ -16,7 +16,7 @@ description: 用于 YSS MyBatis 与 MyBatis-Plus 持久层规范、配置和排
|
|
|
16
16
|
|
|
17
17
|
## 工作方式
|
|
18
18
|
|
|
19
|
-
1. 先读取批准的 `persistence_profile`。新 DDD scaffold
|
|
19
|
+
1. 先读取批准的 `persistence_profile` 和 `architecture_identity`。新 DDD / MVC scaffold 都使用 `mybatis-plus`;普通 MyBatis 必须有独立 fixture 和批准 Profile,禁止自动猜测或混用。模块所有权按 `docs/agents/backend-architecture-profiles.md`;H2 仅用于本地/测试,生产数据库另行批准接入。
|
|
20
20
|
2. 涉及真实类名、配置项、模块依赖或排障时,先读 `references/source-index.md`,再定位源码或文档。
|
|
21
21
|
3. 先复用现有基类与配置,不手搓新的基础设施。
|
|
22
22
|
4. 涉及分页时,先验证 `PageQuery` 传递链路和拦截器是否生效。
|
|
@@ -35,7 +35,7 @@ description: 用于 YSS MyBatis 与 MyBatis-Plus 持久层规范、配置和排
|
|
|
35
35
|
- MP 模式优先继承项目既有的 `BasePlusRepository`
|
|
36
36
|
- 批量导入优先使用真正的 SQL 级批量方法,不要默认循环单条插入
|
|
37
37
|
- 多数据源问题优先先看配置和扫描范围,再怀疑业务代码
|
|
38
|
-
-
|
|
38
|
+
- DDD 分页经 Application Query Port 进入 Infrastructure;MVC 经 service/core 进入 Repository。不把 `PageQuery` 带入 Domain Gateway,也不得在 Repository 内临时发明分页参数。
|
|
39
39
|
- 生成或重构持久层时,先看当前模块已有 Repository/Mapper 命名、包路径、XML 位置。
|
|
40
40
|
|
|
41
41
|
## 检查清单
|
|
@@ -20,9 +20,11 @@ Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为
|
|
|
20
20
|
|
|
21
21
|
## 不可裁剪的主链
|
|
22
22
|
|
|
23
|
+
新后端工程先按注册表选择 architecture_profile(target-domain-model / layered-mvc-service / mvc-data-analysis-v1),禁止从模块目录反推。全部新骨架只绑定 H2 本地/测试,不绑定生产数据库。独立数据分析 project-instance 走 `work-unit.service-project-initialization` 和 `yss-mvc-data-analysis-project-initializer`;通用 MVC 不调用该初始化器。父项目只保留交接/服务引用,子项目有自己的根 CONTEXT、Git 和生命周期。规则见 `docs/agents/backend-architecture-profiles.md`;Profile 为 draft 时不得 ready-for-agent。
|
|
24
|
+
|
|
23
25
|
入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
|
|
24
26
|
|
|
25
|
-
裁剪只允许将未命中的条件门禁标记为 `not-applicable` 并写原因;不得删除主阶段、已命中的门禁或必需产物。阶段是否完成取决于“内容 + 审查结论 + 上游新鲜度 +
|
|
27
|
+
裁剪只允许将未命中的条件门禁标记为 `not-applicable` 并写原因;不得删除主阶段、已命中的门禁或必需产物。阶段是否完成取决于“内容 + 审查结论 + 上游新鲜度 + 可读证据”,文件存在不算通过。每个 `project-instance` 工作单元在请求批准或进入下一工作单元前,必须先把已确认稳定术语回写到项目根目录唯一的 `CONTEXT.md`,再产出通过 `scripts/verify-context-reconciliation` 的 `context_reconciliation`;它是横切证据,不新增门禁。存在候选术语、错误路径、无法解析的 `<ContextId>/<EnglishIdentifier>`、摘要漂移或未决冲突时返回 `blocked`。
|
|
26
28
|
|
|
27
29
|
## 阶段路由与技能
|
|
28
30
|
|
|
@@ -31,22 +33,46 @@ Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为
|
|
|
31
33
|
| 主阶段 | 必需产物/门禁 | 原生工作单元与技能 | 通过条件 |
|
|
32
34
|
|---|---|---|---|
|
|
33
35
|
| 入口分诊 `stage.entry-triage` | 身份、影响面、最近可信阶段 | `work-unit.entry-triage`;`yss-product-lifecycle` | `yss-project.yaml` 合法且影响面可解释 |
|
|
34
|
-
| Discovery `stage.discovery` |
|
|
36
|
+
| Discovery `stage.discovery` | 机会与目标、业务故事、用户/MVP/非目标/成功标准、测试 seam;需要时补充业务边界与规则设计和方案决策包 | `work-unit.discovery-opportunity` + `work-unit.discovery-requirements` + `work-unit.domain-strategy-design` + `work-unit.stage-decision`;市场/竞品事实用 `competitive-intelligence`,技术/标准事实用 `yss-research:technical-evidence`,业务边界与方案决策证据用 `yss-research:strategy-evidence`;需求澄清用 `grilling`,业务词汇和责任区梳理用 `domain-modeling` / `yss-stage-decision`;`grill-with-docs` 为兼容入口 | 未决事实已由 `yss-research` 核验或 handoff;业务板块、责任区、统一业务词汇、协作关系和不可违反规则可审查;方案决策包完成必要批准;`gate.domain-strategy-approved`、`gate.stage-decision-package-approved` |
|
|
35
37
|
| Spec / 功能架构 `stage.spec-architecture` | Spec、产品总体设计、功能架构;必要时 Spec Delta | 原生 `work-unit.spec-synthesis`;`to-spec` 为兼容入口 | 初稿先为 `ready-for-human`;只有 Spec baseline 会签批准后资产才为 `approved` 并进入下游 |
|
|
36
|
-
| 产品设计 `stage.product-design` | 交互说明、低保真、状态矩阵、H1/H2 原型交付物、评审记录 | `work-unit.prototype-design`;`yss-prototype-stage` 先消费 `yss-design-system`、低保真与独立 `prototype-review`,再按风险选择 H1 静态视觉或 H2
|
|
38
|
+
| 产品设计 `stage.product-design` | 交互说明、低保真、状态矩阵、H1/H2 原型交付物、评审记录 | `work-unit.prototype-design`;`yss-prototype-stage` 先消费 `yss-design-system`、低保真与独立 `prototype-review`,再按风险选择 H1 静态视觉或 H2 可运行流程;H2 默认调用 `yss-antdv-next-design`,显式 `react-antd-6` 兼容路线才调用 `yss-antd-design`,原型阶段禁止调用 `yss-ui` | `gate.prototype-reviewed`、`gate.prototype-verified`、`gate.user-confirmation` 均有 schema v3 证据;真实组件待验事项已交接到前端实现计划 |
|
|
37
39
|
| 系统 / 数据架构与工程契约 `stage.system-data-engineering` | OpenAPI Draft/Freeze、数据架构、工程基线、架构审查;按领域影响执行 Tactical DDD Check | `work-unit.technical-analysis`;`yss-implementation-contract-compiler` + `yss-openapi-governance` / `yss-openapi-draft-review`、`codebase-design`、`implementation-repo-onboarding`、`yss-tactical-design`;用户或合同明确要求架构可视化时条件追加 `archify` | API/架构契约冻结;无 API 影响有明确记录;战术模型无未解释冲突;脚手架策略满足;Archify 图只作派生审查证据;`gate.openapi-draft-reviewed`、`gate.design-reviewed`、`gate.openapi-frozen`、`gate.engineering-baseline-accepted`、`gate.architecture-reviewed` |
|
|
38
40
|
| Ticket 正式化 `stage.ticket-formalization` | 功能父 Ticket、垂直切片、Slice Implementation Contract | 原生 `work-unit.ticket-decomposition`;`yss-implementation-contract-compiler`;`to-tickets` 为兼容入口;生命周期复算 | 依赖、验收、测试 seam 可执行;合同已批准、持久化且为当前版本;`gate.slice-contract-approved`、`gate.slice-ready-for-agent` |
|
|
39
|
-
| 垂直切片实现 `stage.vertical-slice-implementation` | 前端/后端代码、TDD 证据、YSS Skill Execution Result | 原生 `work-unit.slice-implementation`;`yss-implementation-contract-compiler` + `tdd`;前端按 `yss-ui` + `yss-page-
|
|
41
|
+
| 垂直切片实现 `stage.vertical-slice-implementation` | 前端/后端代码、TDD 证据、YSS Skill Execution Result | 原生 `work-unit.slice-implementation`;`yss-implementation-contract-compiler` + `tdd`;前端按 `yss-ui` + `yss-ui-business-page-generation`,后端按 实现合同编译器 最小闭包;`implement` 为兼容入口 | 仅接收已完成 Ticket 正式化、已绑定垂直切片且 `ready-for-agent` 公式通过的输入;只写允许路径;业务行为用 `tdd` 的 `behavior-tdd` 模式;UI 影响必须有还原计划 |
|
|
40
42
|
| 验证 / 发布 / 复盘 `stage.verification-release-retrospective` | 不可变候选快照、review 结论、fresh verification、发布 / 回滚证据、复盘记录 | `work-unit.frontend-implementation-verification` + `work-unit.code-review` + `work-unit.release-and-retrospective`;`code-review` 独立于实现者,Standards 消费合同 `required_skills` 与 YSS / Alibaba 专项检查输入;UI 影响追加 `yss-ui` + `yss-design-system` 的 UI fidelity 轴;发布 / 复盘由生命周期持有 | findings 已按合同分流处理(修复后全轴复审或 stale 回 实现合同编译器);同一候选快照通过全部审查轴、专项覆盖与验证;UI 影响追加 `gate.frontend-implementation-verified`;`gate.release-ready` 仍须生物人 |
|
|
41
43
|
|
|
44
|
+
## 面向业务角色的默认入口
|
|
45
|
+
|
|
46
|
+
Discovery 默认通过 Agent 引导,不要求产品、需求或商务直接填写内部模型字段。按以下主线推进:
|
|
47
|
+
|
|
48
|
+
`机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
|
|
49
|
+
|
|
50
|
+
Agent 先问清六件事:谁遇到什么问题并想得到什么结果;事情通常怎样发生;每一步由谁负责并交给谁;有哪些规则、例外和未决问题;哪一小段可以独立交付;用哪些例子和证据证明结果正确。需要分类业务板块时,改问“是否直接决定关键结果、是否有独特规则、是否可复用或外购”,再提出“重点业务、必要支撑、通用能力”建议,由业务负责人确认。
|
|
51
|
+
|
|
52
|
+
每轮路由先输出一页派生的“业务方案总览”,引用机会与目标、业务故事、业务责任区、规则与例子、Spec、页面验证、Ticket 和交接状态。总览只显示状态、权威资产引用、未决问题、责任人和下一步,不复制正文、不成为新的事实源,也不新增门禁。内部稳定 ID 和兼容字段只在 Agent 运行结果或维护者诊断中显示。
|
|
53
|
+
|
|
42
54
|
## 前端实现还原硬检查
|
|
43
55
|
|
|
44
|
-
|
|
56
|
+
采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `docs/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
|
|
57
|
+
|
|
58
|
+
原型通过不等于前端实现通过。`ready-for-agent` 前先产生 `frontend_implementation_plan`,绑定批准且 digest 当前的 Visual Baseline manifest,并按垂直切片选择 `case_id`;实现完成、发布前再产生 `frontend_implementation_verification`,逐 case 配对基准图、实现图、diff/mask 与差异解释,同时补齐交互、console warning、实际 `pnpm` 命令和退出码。模型必须先读 manifest 与语义引用再查看图片,禁止通过目录 glob 猜测含义。差异未解释、图片或摘要缺失、只做 type-check 或只声称“已对齐”均为 `blocked`;Visual Baseline 版本或 digest 变化使实现计划和 Slice Contract `stale`,新 API、状态或视觉行为返回 `new_impacts`/`drift` 并重新路由。优先使用 `yss-ui/references/verification.md` 的分层验证和既有 `pnpm` scripts。
|
|
59
|
+
|
|
60
|
+
## 真实用户决定
|
|
61
|
+
|
|
62
|
+
关键决定按 `docs/agents/digital-human-roles.yaml.user_decision_policy` 强制取得提问者或其明确指定的生物人负责人的原始回复。先展示资产、版本、变化、风险、推荐方案、批准范围和后续动作,再等待决定;超时、默认选项、数字人同意、无反对意见均无效。数字人审查不能替代用户批准;已有同版本同范围的有效确认复用,依据变化或撤回后重新展示并确认。单项“同意”有效,多项“继续”不算全部批准。独立工作可继续,依赖工作不得流转。
|
|
63
|
+
|
|
64
|
+
统一记录、跨平台来源、机器校验、批量批准、历史兼容和实施范围绑定见 [user-decisions.md](references/user-decisions.md)。批准、恢复和实施入口必须重读来源与当前资产;不得只填 `approved`、自行创建用户同意或用旧数字人记录关闭关键门禁。
|
|
45
65
|
|
|
46
66
|
## 结果与暂停
|
|
47
67
|
|
|
48
|
-
凡主控向数字人角色或独立运行时正式派发生命周期工作单元,都必须通过结构化任务包派发,并返回 `Workflow Execution Result`(workflow reference、skill、changed files
|
|
68
|
+
凡主控向数字人角色或独立运行时正式派发生命周期工作单元,都必须通过结构化任务包派发,并返回 `Workflow Execution Result`(workflow reference、skill、changed files、`context_reconciliation`、evidence refs、actual verification、deferred seams、drift/new impacts)。任务包使用 `docs/process/schemas/digital-human-task-package.schema.json`,由 `scripts/verify-digital-human-task-package` 校验;其中 `role_id`、`runtime_id`、`execution_state`、`contract.kind/id/version`、允许写路径、预期证据和汇合引用必须完整。`slice-implementation` 任务包额外绑定批准且当前版本的 Slice Implementation Contract;Discovery、Spec、原型、技术分析、Ticket、Review、发布和模板维护分别绑定各自的生命周期资产或维护 checkpoint,不得伪造 Slice Contract。缺少可读证据、`context_reconciliation` 未通过、`stale`、`violation`、`drift`、`new_impacts` 或阻塞信号时不得标记 completed。实现授权不包含 Git commit/push 授权;仅自然语言意向不构成上述结构化 Git 授权。用户已明确授权的具体动作可从原始回复整理为结构化授权并复用,不重复要求用户填写内部字段。
|
|
49
69
|
|
|
50
|
-
输出固定包含:模式、当前阶段、影响面、资产/门禁状态、证据、Ticket 正式化状态、垂直切片引用、`ready-for-agent` 计算结果、阻塞项、本轮动作、下一工作单元、暂停/继续理由、Ticket 同步和 Git checkpoint 判断。原生路径未出现 `to-tickets` / `implement` 名称本身不构成异常;但没有完成 `work-unit.ticket-decomposition`、垂直切片仍为 `ready-for-human`、引用父 Ticket 或 `next_route` 越过 Ticket 正式化时必须返回 `blocked`。暂停会签时必须输出门禁 ID、指定 `role_id`、`runtime_id` 和会签文件路径(`docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`)。恢复前运行 `scripts/verify-approval-record`;错误会签记为 `blocked`,不得把该门禁标为 `approved`。任务包的 `core_skills` / `forbidden_skills` 必须从 `docs/agents/digital-human-roles.yaml` 复制(`taskPackageDefaults`),禁止手写第二套。
|
|
70
|
+
输出固定包含:模式、当前阶段、影响面、资产/门禁状态、证据、Ticket 正式化状态、垂直切片引用、`ready-for-agent` 计算结果、阻塞项、本轮动作、下一工作单元、暂停/继续理由、Ticket 同步和 Git checkpoint 判断。原生路径未出现 `to-tickets` / `implement` 名称本身不构成异常;但没有完成 `work-unit.ticket-decomposition`、垂直切片仍为 `ready-for-human`、引用父 Ticket 或 `next_route` 越过 Ticket 正式化时必须返回 `blocked`。暂停会签时必须输出门禁 ID、指定 `role_id`、`runtime_id` 和会签文件路径(`docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`)。恢复前运行 `scripts/verify-approval-record --require-approved`;错误会签记为 `blocked`,不得把该门禁标为 `approved`。任务包的 `core_skills` / `forbidden_skills` 必须从 `docs/agents/digital-human-roles.yaml` 复制(`taskPackageDefaults`),禁止手写第二套。
|
|
51
71
|
|
|
52
72
|
详细执行循环、readiness、脚手架(包括 `controlled-generation`)、审查快照、状态传播和 Matt 边界见 [orchestration.md](references/orchestration.md)、[orchestration-contract.yaml](references/orchestration-contract.yaml)、[artifact-dependencies.md](references/artifact-dependencies.md) 和 [state-model.md](references/state-model.md)。
|
|
73
|
+
|
|
74
|
+
## 战略交接快照包
|
|
75
|
+
|
|
76
|
+
跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见 `docs/process/strategic-handoff-package.md`。
|
|
77
|
+
|
|
78
|
+
战术合同必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
```text
|
|
6
6
|
Discovery → Spec → Product Overview / Functional Architecture
|
|
7
|
+
Root CONTEXT.md + current work-unit changes → Context Reconciliation → approval / next work unit
|
|
7
8
|
Spec + Product Overview → Product Design / Requirement Freeze
|
|
8
9
|
Spec + Product Overview → API Impact / OpenAPI Draft
|
|
9
10
|
Spec + Product Overview → System / Data Architecture
|
|
@@ -34,3 +35,5 @@ Implementation → Independent Review → Fresh Verification → Release
|
|
|
34
35
|
OpenAPI Freeze 后发生上游变化时,不得仅因父 Ticket 仍写阶段 6 就继续实现。先做影响分析,再精准更新相关资产和门禁。
|
|
35
36
|
|
|
36
37
|
战术设计合同上游引用发生版本变化时,先将 tactical-design 标记为 `stale`,再传播到 Slice Contract;发现新的聚合、状态、不变量、一致性或 Gateway 影响时标记 `drift` / `new_impacts` 并重新路由。
|
|
38
|
+
|
|
39
|
+
`CONTEXT.md` 全文摘要变化时,先复核当前和下游资产保存的 `document_digest`;只有其 `referenced_terms_digest` 也变化,才将实际引用这些术语的资产精准标记为 `stale`。无法解析、作用域变化或候选术语未确认时阻断批准/流转,不得用嵌套文件、跨仓路径或 Markdown 锚点绕过。
|
|
@@ -7,16 +7,14 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
7
7
|
## 入口与仓库身份裁决
|
|
8
8
|
|
|
9
9
|
- 所有入口先读取 `yss-project.yaml`。缺失、解析失败、schema 不支持或 `repository_mode` 非法时,停止路由并进入 migration-check。
|
|
10
|
-
-
|
|
11
|
-
- **直接调用生命周期管理的 Matt user-invoked skill**(`setup-matt-pocock-skills`、`grill-with-docs`、`to-spec`、`to-tickets`、`implement`)时,用户仍是正式资产的创建者;生命周期先校验前置条件,再接受结果并重新计算阶段、门禁和状态。它们不适用 `ask-matt` 的 `navigate-only` 限制。其他 user-invoked skill 同样不得由生命周期自动调用;只有在其专属适配合同存在时才进入 YSS 流程。
|
|
10
|
+
- **直接调用生命周期管理的 Matt user-invoked skill**(`setup-matt-pocock-skills`、`grill-with-docs`、`to-spec`、`to-tickets`、`implement`)时,用户仍是正式资产的创建者;生命周期先校验前置条件,再接受结果并重新计算阶段、门禁和状态。其他 user-invoked skill 同样不得由生命周期自动调用;只有在其专属适配合同存在时才进入 YSS 流程。
|
|
12
11
|
- **直接调用 `yss-product-lifecycle`** 时,不机械嵌套调用任何 Matt user-invoked skill;编排器直接使用原生工作单元和允许的 model-invoked 原语。Matt user-invoked skill 保持显式兼容入口,生命周期负责准备、校验并验收其结果。
|
|
13
|
-
- `template-source` 只允许进入模板维护流程。命中 `to-spec`、`to-tickets`、`implement`、Release 或 Retrospective 时返回 `blocked`,原因是 `template-source-product-artifact-forbidden`;`
|
|
12
|
+
- `template-source` 只允许进入模板维护流程。命中 `to-spec`、`to-tickets`、`implement`、Release 或 Retrospective 时返回 `blocked`,原因是 `template-source-product-artifact-forbidden`;`setup-matt-pocock-skills` 不得为具体产品生成 Spec、prototype、OpenAPI 或垂直切片 Ticket。
|
|
14
13
|
- `project-instance` 才允许进入产品 Discovery → Spec → 设计 → 契约 → Ticket → 实现 → Release / Retrospective 链路。
|
|
15
14
|
|
|
16
15
|
| 情形 | Matt flow | 生命周期验收 |
|
|
17
16
|
|---|---|---|
|
|
18
17
|
| 首次启用或配置缺失 | `setup-matt-pocock-skills`(用户显式) | `needs-human`,说明缺失项;用户完成 setup 后重新计算 readiness |
|
|
19
|
-
| 通用入口 | `ask-matt` | 检测到 YSS 后由本编排器最终裁决 |
|
|
20
18
|
| 需求澄清 | `grill-with-docs`(用户显式)或 `grilling`、`domain-modeling`(生命周期原语) | 按退出判定检查未决项和回流 |
|
|
21
19
|
| 信息在其他人手中 | `to-questionnaire` | 使用 `external-input-required` 暂停;答案回流后记录 response、重新分类影响面,再进入 `grill-with-docs` 或 `to-spec` |
|
|
22
20
|
| 大型模糊工作 | `wayfinder`(可选) | 仅在跨会话 / 跨 Agent 或 frontier 不清晰时启用;map 真正完成后 `handoff → to-spec` |
|
|
@@ -28,7 +26,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
|
|
|
28
26
|
| Bug | `diagnosing-bugs`、`tdd` | 先建立红色反馈;高风险影响升级上游门禁 |
|
|
29
27
|
| 审查 | `code-review` | 唯一默认代码审查入口;审查者独立且不得写实现;Standards 消费 Spec、仓库治理规则、Slice `required_skills` 和 YSS / Alibaba 专项检查输入;finding 按合同分流修复或 stale 回 实现合同编译器 |
|
|
30
28
|
| 跨上下文 | `handoff` | 保存来源、阶段、未决项、命令和下一责任人 |
|
|
31
|
-
| 阶段边界 |
|
|
29
|
+
| 阶段边界 | 生命周期 phase-boundary 合同 | 按 `Continue → /clear → /handoff → subagent → /compact` 选择上下文动作;只记录证据,不扩展生命周期状态 |
|
|
32
30
|
| 解释未落地 | `wait-what` | 只重新解释当前结论,不改变阶段、门禁、Ticket 或 `ready-for-agent` |
|
|
33
31
|
| 人工步骤 | 人工 checkpoint | 记录 Agent 无法替代的点击、审批、凭据和迁移步骤;秘密值必须隐藏并脱敏 |
|
|
34
32
|
| 编写 Agent 文档 | `writing-for-agents`;维护 skill 时使用 `maintaining-skills` | 共享 skill 只改 `.agents/skills`;流程文档保持简体中文 |
|
|
@@ -119,4 +117,4 @@ Matt 的上下文建议不能覆盖 YSS 的 phase-boundary 契约。固定按 `C
|
|
|
119
117
|
|
|
120
118
|
## Release / Retrospective
|
|
121
119
|
|
|
122
|
-
Release 和 Retrospective
|
|
120
|
+
Release 和 Retrospective 是生命周期编排器拥有的工作单元,不由任何兼容流程隐式完成。进入发布或完成结论前必须重新取得 fresh verification、发布/回滚证据和独立审查结果;复盘同样必须有 fresh verification,再按模板治理规则回流 `AGENTS.md`、`CONTEXT.md`、ADR 或 Skill。
|