create-yss-spec 3.4.1 → 3.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +2 -2
- package/template/.agents/skills/.strategic-design-skills-manifest.json +3 -3
- package/template/.agents/skills/archify/SKILL.md +1 -1
- package/template/.agents/skills/code-review/SKILL.md +12 -8
- package/template/.agents/skills/file-export-download/SKILL.md +1 -1
- package/template/.agents/skills/frontend-commit/SKILL.md +1 -1
- package/template/.agents/skills/java-backend-commit/SKILL.md +1 -1
- package/template/.agents/skills/llm-wiki/SKILL.md +1 -6
- package/template/.agents/skills/lombok/SKILL.md +10 -336
- package/template/.agents/skills/lombok/references/annotation-examples.md +307 -0
- package/template/.agents/skills/maintaining-skills/SKILL.md +2 -1
- package/template/.agents/skills/maintaining-skills/references/authoring.md +27 -0
- package/template/.agents/skills/mapstruct/SKILL.md +11 -318
- package/template/.agents/skills/mapstruct/references/annotation-examples.md +300 -0
- package/template/.agents/skills/page-form-module/SKILL.md +1 -1
- package/template/.agents/skills/page-skeleton/SKILL.md +1 -1
- package/template/.agents/skills/theme-token-usage/SKILL.md +1 -1
- package/template/.agents/skills/to-tickets/SKILL.md +1 -1
- package/template/.agents/skills/using-git-worktrees/SKILL.md +1 -1
- package/template/.agents/skills/wayfinder/SKILL.md +1 -1
- package/template/.agents/skills/yedit-table-usage/SKILL.md +1 -1
- package/template/.agents/skills/yss-api-integration/SKILL.md +1 -1
- package/template/.agents/skills/yss-audit-log/SKILL.md +1 -1
- package/template/.agents/skills/yss-cache/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +16 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
- package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.agents/skills/yss-distributed-id/SKILL.md +1 -1
- package/template/.agents/skills/yss-dto/SKILL.md +5 -1
- package/template/.agents/skills/yss-excel-mvc/SKILL.md +1 -1
- package/template/.agents/skills/yss-exception/SKILL.md +5 -1
- package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +14 -6
- package/template/.agents/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
- package/template/.agents/skills/yss-mybatis/SKILL.md +4 -0
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +1 -1
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +4 -4
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +29 -7
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +6 -2
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -1
- package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +24 -4
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +1 -1
- package/template/.agents/skills/yss-repository/SKILL.md +4 -0
- package/template/.agents/skills/yss-research/SKILL.md +1 -1
- package/template/.agents/skills/yss-resilience4j/SKILL.md +1 -1
- package/template/.agents/skills/yss-security-algorithm/SKILL.md +1 -1
- package/template/.agents/skills/yss-stage-decision/SKILL.md +1 -1
- package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +2 -0
- package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +3 -3
- package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +3 -3
- package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +33 -0
- package/template/.agents/skills/yss-tactical-design/SKILL.md +5 -1
- package/template/.agents/skills/yss-technical-design/SKILL.md +5 -1
- package/template/.agents/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
- package/template/.agents/skills/yss-technical-design/tests/run-scenarios.mjs +1 -1
- package/template/.agents/skills/yss-ui/SKILL.md +1 -1
- package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +1 -1
- package/template/.agents/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.agents/skills/yss-use-table-height/SKILL.md +1 -1
- package/template/.agents/skills/yss-use-tree-height/SKILL.md +1 -1
- package/template/.agents/skills/yss-userinfo/SKILL.md +1 -1
- package/template/.agents/skills/yss-validation/SKILL.md +5 -1
- package/template/.agents/skills/yss-web-controller/SKILL.md +5 -1
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
- package/template/.agents/skills/ytable-usage/SKILL.md +1 -1
- package/template/.agents/skills/ytree-usage/SKILL.md +1 -1
- package/template/.codex/skills/archify/SKILL.md +1 -1
- package/template/.codex/skills/code-review/SKILL.md +12 -8
- package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/index/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +1 -1
- package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +1 -1
- package/template/.codex/skills/file-export-download/SKILL.md +1 -1
- package/template/.codex/skills/frontend-commit/SKILL.md +1 -1
- package/template/.codex/skills/java-backend-commit/SKILL.md +1 -1
- package/template/.codex/skills/llm-wiki/SKILL.md +1 -6
- package/template/.codex/skills/lombok/SKILL.md +10 -336
- package/template/.codex/skills/lombok/references/annotation-examples.md +307 -0
- package/template/.codex/skills/maintaining-skills/SKILL.md +2 -1
- package/template/.codex/skills/maintaining-skills/references/authoring.md +27 -0
- package/template/.codex/skills/mapstruct/SKILL.md +11 -318
- package/template/.codex/skills/mapstruct/references/annotation-examples.md +300 -0
- package/template/.codex/skills/page-form-module/SKILL.md +1 -1
- package/template/.codex/skills/page-skeleton/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/audit/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/get-context/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/ideate/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/index/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/prototype/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/research/SKILL.md +1 -1
- package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
- package/template/.codex/skills/theme-token-usage/SKILL.md +1 -1
- package/template/.codex/skills/to-tickets/SKILL.md +1 -1
- package/template/.codex/skills/using-git-worktrees/SKILL.md +1 -1
- package/template/.codex/skills/wayfinder/SKILL.md +1 -1
- package/template/.codex/skills/yedit-table-usage/SKILL.md +1 -1
- package/template/.codex/skills/yss-api-integration/SKILL.md +1 -1
- package/template/.codex/skills/yss-audit-log/SKILL.md +1 -1
- package/template/.codex/skills/yss-cache/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +16 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
- package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.codex/skills/yss-distributed-id/SKILL.md +1 -1
- package/template/.codex/skills/yss-dto/SKILL.md +5 -1
- package/template/.codex/skills/yss-excel-mvc/SKILL.md +1 -1
- package/template/.codex/skills/yss-exception/SKILL.md +5 -1
- package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +14 -6
- package/template/.codex/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
- package/template/.codex/skills/yss-mybatis/SKILL.md +4 -0
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +1 -1
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +4 -4
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +29 -7
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +6 -2
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -1
- package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +24 -4
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +1 -1
- package/template/.codex/skills/yss-repository/SKILL.md +4 -0
- package/template/.codex/skills/yss-research/SKILL.md +1 -1
- package/template/.codex/skills/yss-resilience4j/SKILL.md +1 -1
- package/template/.codex/skills/yss-security-algorithm/SKILL.md +1 -1
- package/template/.codex/skills/yss-stage-decision/SKILL.md +1 -1
- package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +2 -0
- package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +3 -3
- package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +3 -3
- package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +33 -0
- package/template/.codex/skills/yss-tactical-design/SKILL.md +5 -1
- package/template/.codex/skills/yss-technical-design/SKILL.md +5 -1
- package/template/.codex/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
- package/template/.codex/skills/yss-technical-design/tests/run-scenarios.mjs +1 -1
- package/template/.codex/skills/yss-ui/SKILL.md +1 -1
- package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +1 -1
- package/template/.codex/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.codex/skills/yss-use-table-height/SKILL.md +1 -1
- package/template/.codex/skills/yss-use-tree-height/SKILL.md +1 -1
- package/template/.codex/skills/yss-userinfo/SKILL.md +1 -1
- package/template/.codex/skills/yss-validation/SKILL.md +5 -1
- package/template/.codex/skills/yss-web-controller/SKILL.md +5 -1
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
- package/template/.codex/skills/ytable-usage/SKILL.md +1 -1
- package/template/.codex/skills/ytree-usage/SKILL.md +1 -1
- package/template/.cursor/skills/archify/SKILL.md +1 -1
- package/template/.cursor/skills/code-review/SKILL.md +12 -8
- package/template/.cursor/skills/file-export-download/SKILL.md +1 -1
- package/template/.cursor/skills/frontend-commit/SKILL.md +1 -1
- package/template/.cursor/skills/java-backend-commit/SKILL.md +1 -1
- package/template/.cursor/skills/llm-wiki/SKILL.md +1 -6
- package/template/.cursor/skills/lombok/SKILL.md +10 -336
- package/template/.cursor/skills/lombok/references/annotation-examples.md +307 -0
- package/template/.cursor/skills/maintaining-skills/SKILL.md +2 -1
- package/template/.cursor/skills/maintaining-skills/references/authoring.md +27 -0
- package/template/.cursor/skills/mapstruct/SKILL.md +11 -318
- package/template/.cursor/skills/mapstruct/references/annotation-examples.md +300 -0
- package/template/.cursor/skills/page-form-module/SKILL.md +1 -1
- package/template/.cursor/skills/page-skeleton/SKILL.md +1 -1
- package/template/.cursor/skills/theme-token-usage/SKILL.md +1 -1
- package/template/.cursor/skills/to-tickets/SKILL.md +1 -1
- package/template/.cursor/skills/using-git-worktrees/SKILL.md +1 -1
- package/template/.cursor/skills/wayfinder/SKILL.md +1 -1
- package/template/.cursor/skills/yedit-table-usage/SKILL.md +1 -1
- package/template/.cursor/skills/yss-api-integration/SKILL.md +1 -1
- package/template/.cursor/skills/yss-audit-log/SKILL.md +1 -1
- package/template/.cursor/skills/yss-cache/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +16 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
- package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.cursor/skills/yss-distributed-id/SKILL.md +1 -1
- package/template/.cursor/skills/yss-dto/SKILL.md +5 -1
- package/template/.cursor/skills/yss-excel-mvc/SKILL.md +1 -1
- package/template/.cursor/skills/yss-exception/SKILL.md +5 -1
- package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +14 -6
- package/template/.cursor/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
- package/template/.cursor/skills/yss-mybatis/SKILL.md +4 -0
- package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +1 -1
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +4 -4
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +29 -7
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +6 -2
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +24 -4
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +1 -1
- package/template/.cursor/skills/yss-repository/SKILL.md +4 -0
- package/template/.cursor/skills/yss-research/SKILL.md +1 -1
- package/template/.cursor/skills/yss-resilience4j/SKILL.md +1 -1
- package/template/.cursor/skills/yss-security-algorithm/SKILL.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +2 -0
- package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +3 -3
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +3 -3
- package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +33 -0
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +5 -1
- package/template/.cursor/skills/yss-technical-design/SKILL.md +5 -1
- package/template/.cursor/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
- package/template/.cursor/skills/yss-technical-design/tests/run-scenarios.mjs +1 -1
- package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +1 -1
- package/template/.cursor/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.cursor/skills/yss-use-table-height/SKILL.md +1 -1
- package/template/.cursor/skills/yss-use-tree-height/SKILL.md +1 -1
- package/template/.cursor/skills/yss-userinfo/SKILL.md +1 -1
- package/template/.cursor/skills/yss-validation/SKILL.md +5 -1
- package/template/.cursor/skills/yss-web-controller/SKILL.md +5 -1
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
- package/template/.cursor/skills/ytable-usage/SKILL.md +1 -1
- package/template/.cursor/skills/ytree-usage/SKILL.md +1 -1
- package/template/.pi/skills/archify/SKILL.md +1 -1
- package/template/.pi/skills/code-review/SKILL.md +12 -8
- package/template/.pi/skills/file-export-download/SKILL.md +1 -1
- package/template/.pi/skills/frontend-commit/SKILL.md +1 -1
- package/template/.pi/skills/java-backend-commit/SKILL.md +1 -1
- package/template/.pi/skills/llm-wiki/SKILL.md +1 -6
- package/template/.pi/skills/lombok/SKILL.md +10 -336
- package/template/.pi/skills/lombok/references/annotation-examples.md +307 -0
- package/template/.pi/skills/maintaining-skills/SKILL.md +2 -1
- package/template/.pi/skills/maintaining-skills/references/authoring.md +27 -0
- package/template/.pi/skills/mapstruct/SKILL.md +11 -318
- package/template/.pi/skills/mapstruct/references/annotation-examples.md +300 -0
- package/template/.pi/skills/page-form-module/SKILL.md +1 -1
- package/template/.pi/skills/page-skeleton/SKILL.md +1 -1
- package/template/.pi/skills/theme-token-usage/SKILL.md +1 -1
- package/template/.pi/skills/to-tickets/SKILL.md +1 -1
- package/template/.pi/skills/using-git-worktrees/SKILL.md +1 -1
- package/template/.pi/skills/wayfinder/SKILL.md +1 -1
- package/template/.pi/skills/yedit-table-usage/SKILL.md +1 -1
- package/template/.pi/skills/yss-api-integration/SKILL.md +1 -1
- package/template/.pi/skills/yss-audit-log/SKILL.md +1 -1
- package/template/.pi/skills/yss-cache/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +16 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
- package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.pi/skills/yss-distributed-id/SKILL.md +1 -1
- package/template/.pi/skills/yss-dto/SKILL.md +5 -1
- package/template/.pi/skills/yss-excel-mvc/SKILL.md +1 -1
- package/template/.pi/skills/yss-exception/SKILL.md +5 -1
- package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +14 -6
- package/template/.pi/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
- package/template/.pi/skills/yss-mybatis/SKILL.md +4 -0
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +1 -1
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +4 -4
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +29 -7
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +6 -2
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -1
- package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +24 -4
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +1 -1
- package/template/.pi/skills/yss-repository/SKILL.md +4 -0
- package/template/.pi/skills/yss-research/SKILL.md +1 -1
- package/template/.pi/skills/yss-resilience4j/SKILL.md +1 -1
- package/template/.pi/skills/yss-security-algorithm/SKILL.md +1 -1
- package/template/.pi/skills/yss-stage-decision/SKILL.md +1 -1
- package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +2 -0
- package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
- package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +3 -3
- package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +3 -3
- package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +33 -0
- package/template/.pi/skills/yss-tactical-design/SKILL.md +5 -1
- package/template/.pi/skills/yss-technical-design/SKILL.md +5 -1
- package/template/.pi/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
- package/template/.pi/skills/yss-technical-design/tests/run-scenarios.mjs +1 -1
- package/template/.pi/skills/yss-ui/SKILL.md +1 -1
- package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +1 -1
- package/template/.pi/skills/yss-up-springboot3/SKILL.md +1 -1
- package/template/.pi/skills/yss-use-table-height/SKILL.md +1 -1
- package/template/.pi/skills/yss-use-tree-height/SKILL.md +1 -1
- package/template/.pi/skills/yss-userinfo/SKILL.md +1 -1
- package/template/.pi/skills/yss-validation/SKILL.md +5 -1
- package/template/.pi/skills/yss-web-controller/SKILL.md +5 -1
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
- package/template/.pi/skills/ytable-usage/SKILL.md +1 -1
- package/template/.pi/skills/ytree-usage/SKILL.md +1 -1
- package/template/AGENTS.md +1 -0
- package/template/CONTEXT.md +2 -1
- package/template/docs/agents/backend-architecture-profiles.md +1 -1
- package/template/docs/agents/digital-human-roles.yaml +29 -1
- package/template/docs/agents/issue-tracker.md +2 -0
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +6 -6
- package/template/docs/engineering/backend-platforms.json +174 -0
- package/template/docs/engineering/backend-platforms.md +77 -0
- package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +1 -0
- package/template/docs/process/existing-ui-baseline.md +1 -1
- package/template/docs/process/harness-process-tailoring.md +9 -1
- package/template/docs/process/lifecycle-artifact-map.md +6 -5
- package/template/docs/process/lifecycle-registry-baseline.json +2 -1
- package/template/docs/process/lifecycle-registry.yaml +17 -8
- package/template/docs/process/schemas/backend-architecture-identity.schema.json +91 -0
- package/template/docs/process/schemas/digital-human-task-package.schema.json +3 -1
- package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +8 -0
- package/template/docs/process/schemas/project-scaffold-contract.schema.json +602 -83
- package/template/docs/process/schemas/review-bundle.schema.json +42 -0
- package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +323 -39
- package/template/docs/process/schemas/slice-implementation-contract-v3.schema.json +925 -0
- package/template/docs/process/strategic-handoff-package.md +5 -11
- package/template/docs/templates/approval-record-template.yaml +2 -0
- package/template/docs/templates/build-architecture-checklist-template.md +2 -2
- package/template/docs/templates/implementation-routing-template.md +4 -4
- package/template/docs/templates/review-bundle-template.yaml +26 -0
- package/template/docs/templates/vertical-slice-ticket-template.md +22 -31
- package/template/scripts/backend-platforms +14 -0
- package/template/scripts/lib/approval-record.mjs +52 -7
- package/template/scripts/lib/approved-execution-context.mjs +31 -8
- package/template/scripts/lib/backend-architecture.mjs +6 -0
- package/template/scripts/lib/backend-platform-provenance.mjs +67 -0
- package/template/scripts/lib/backend-platform-verification.mjs +210 -0
- package/template/scripts/lib/backend-platform.mjs +175 -0
- package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
- package/template/scripts/lib/decision-continuation.mjs +79 -0
- package/template/scripts/lib/delivery-preflight.mjs +6 -5
- package/template/scripts/lib/digital-human-roles.mjs +10 -0
- package/template/scripts/lib/frontend-delivery-boundary.mjs +3 -0
- package/template/scripts/lib/implementation-contract-compiler.mjs +42 -9
- package/template/scripts/lib/lifecycle-controls.mjs +2 -2
- package/template/scripts/lib/lifecycle-transition.mjs +3 -1
- package/template/scripts/lib/plan-spec-entry.mjs +3 -3
- package/template/scripts/lib/scaffold-local-database.mjs +1 -0
- package/template/scripts/lib/slice-applicability.mjs +10 -0
- package/template/scripts/lib/slice-contract-preparation.mjs +257 -0
- package/template/scripts/lib/slice-contract-views.mjs +52 -0
- package/template/scripts/lib/slice-contract.mjs +211 -0
- package/template/scripts/lib/slice-repositories.mjs +49 -0
- package/template/scripts/lib/slice-task-package.mjs +66 -0
- package/template/scripts/lib/strategic-handoff-io.mjs +7 -0
- package/template/scripts/lib/strategic-handoff.mjs +33 -8
- package/template/scripts/lib/task-package.mjs +6 -2
- package/template/scripts/lib/technical-design-boundary.mjs +1 -0
- package/template/scripts/lib/user-decision-reuse.mjs +1 -0
- package/template/scripts/lib/user-decision.mjs +17 -3
- package/template/scripts/preflight-delivery +2 -2
- package/template/scripts/slice-contract +30 -0
- package/template/scripts/verify-backend-platform-matrix +69 -0
- package/template/scripts/verify-scaffold-architecture-decisions +5 -0
- package/template/scripts/verify-user-decision +7 -2
- package/template/skills-lock.json +62 -57
- package/template.snapshot.json +3 -3
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { loadBackendPlatforms, assertPlatformAgreement } from "../../../../scripts/lib/backend-platform.mjs";
|
|
2
3
|
import { createHash } from "node:crypto";
|
|
3
4
|
import { constants, access, copyFile, mkdir, mkdtemp, readFile, rm, unlink, writeFile } from "node:fs/promises";
|
|
4
5
|
import { tmpdir } from "node:os";
|
|
@@ -10,8 +11,8 @@ import { assertArchitectureAgreement, validateArchitectureIdentity } from "../..
|
|
|
10
11
|
|
|
11
12
|
const TYPE_MAPPING = { bigint: "Long", int: "Integer", integer: "Integer", smallint: "Integer", tinyint: "Integer", number: "Long", numeric: "BigDecimal", decimal: "BigDecimal", float: "Float", double: "Double", real: "Float", varchar: "String", varchar2: "String", nvarchar2: "String", char: "String", nchar: "String", text: "String", clob: "String", nclob: "String", date: "LocalDateTime", datetime: "LocalDateTime", timestamp: "LocalDateTime", "timestamp with time zone": "LocalDateTime", boolean: "Boolean", bool: "Boolean", bit: "Boolean", json: "String", jsonb: "String", uuid: "String" };
|
|
12
13
|
const PLATFORM_VALIDATION_NAMESPACES = {
|
|
13
|
-
|
|
14
|
-
"spring-boot-3-jdk17": "jakarta"
|
|
14
|
+
...Object.fromEntries(loadBackendPlatforms().profiles.map(profile => [profile.id, profile.validation_namespace])),
|
|
15
|
+
"spring-boot-3-jdk17": "jakarta" // Existing-project compatibility only; new scaffolds use exact catalog profiles.
|
|
15
16
|
};
|
|
16
17
|
const required = ["metadata-file", "contract-file", "dto-wire-profile-file", "base-package", "module-name", "domain-segment"];
|
|
17
18
|
const valued = new Set([...required, "output-dir", "web-project-dir", "web-output-dir", "author", "application-service-package", "validation-namespace", "scaffold-manifest-file"]);
|
|
@@ -170,6 +171,8 @@ async function validateContract(contract, args) {
|
|
|
170
171
|
if (implementationRoot !== scaffoldRoot) throw new Error("implementation_project_root does not match the scaffold manifest project root");
|
|
171
172
|
const expectedWebProject = mvc ? path.join(scaffoldRoot, `${manifest.project_name}-server`) : path.join(scaffoldRoot, `${manifest.project_name}-adapter`, `${manifest.project_name}-web`);
|
|
172
173
|
if (!args["web-project-dir"] || path.resolve(args["web-project-dir"]) !== expectedWebProject) throw new Error("--web-project-dir does not match the scaffold manifest project layout");
|
|
174
|
+
if (manifest.platform_verification === "candidate") throw new Error("backend-platform: candidate scaffold is not ready for downstream generation");
|
|
175
|
+
if (manifest.platform_configuration) assertPlatformAgreement(manifest.platform_configuration, contract.architecture_identity?.platform_configuration);
|
|
173
176
|
const profilePairs = mvc ? [["platform", "platform_profile"], ["validation_namespace", "validation_namespace"]] : [["architecture", "architecture_profile"], ["platform", "platform_profile"], ["validation_namespace", "validation_namespace"], ["dto_placement", "dto_placement"]];
|
|
174
177
|
for (const [manifestField, contractField] of profilePairs) {
|
|
175
178
|
if (manifest.profiles?.[manifestField] !== contract[contractField]) throw new Error(`scaffold manifest ${manifestField} profile does not match the approved Web contract`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ytable-usage
|
|
3
|
-
description:
|
|
3
|
+
description: "配置或修复 YSS UI YTable 的列、分页、行操作、筛选、拖拽与插槽;完整列表流程用 page-list-module。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YTable 使用
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: archify
|
|
3
|
-
description: Create
|
|
3
|
+
description: "Create interactive HTML architecture, workflow, sequence, data-flow or state diagrams. Use for requested diagrams or Mermaid conversion."
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
6
|
version: "2.16"
|
|
@@ -9,7 +9,7 @@ Review of a pinned candidate against a fixed point on two core axes, plus UI fid
|
|
|
9
9
|
- **Spec** — does the code faithfully implement the originating issue / spec?
|
|
10
10
|
- **UI fidelity** (only when the change has UI impact) — does the candidate match the confirmed prototype and `yss-design-system` / `yss-ui`? Type-check or claiming "already aligned" is not a pass. Invoke those skills' verification notes; do not collapse this axis into Standards or Spec. YSS page-module conventions stay on Standards.
|
|
11
11
|
|
|
12
|
-
Standards
|
|
12
|
+
普通功能默认由一名与实现者独立的审查者完成 Standards、Spec 和适用的 UI fidelity 检查,分别报告结论。只有专业能力缺口、结论冲突、明确外部制度或用户指定时,才拆成多个审查者;多个无依赖审查可以并行。检查轴不等于会签人数,不能要求用户为每个轴重复确认。
|
|
13
13
|
|
|
14
14
|
If `docs/agents/issue-tracker.md` is missing, tell the user to run `/setup-matt-pocock-skills`; do not invoke another user-invoked skill yourself.
|
|
15
15
|
|
|
@@ -34,7 +34,7 @@ Choose one candidate mode from the request or an upstream review contract:
|
|
|
34
34
|
- each untracked file's content, using `git diff --no-index --no-ext-diff --binary --full-index -- /dev/null <path>` when a diff representation is useful. Exit code `1` from this command means a difference was found, not that review failed;
|
|
35
35
|
- `git log <fixed-point>..HEAD --oneline` for the committed portion of the candidate.
|
|
36
36
|
|
|
37
|
-
Record one **candidate manifest** before
|
|
37
|
+
Record one **candidate manifest** before review:
|
|
38
38
|
|
|
39
39
|
```yaml
|
|
40
40
|
review_mode: committed # or worktree
|
|
@@ -51,9 +51,9 @@ commit_list_command: <command>
|
|
|
51
51
|
|
|
52
52
|
For a Committed candidate, resolve `HEAD` to an immutable commit and tree before review. Its manifest must include `merge_base`, `tracked_diff_command` and `commit_list_command`. For a Worktree candidate, the manifest must additionally include `untracked_inventory_command`, `untracked_diff_command` and the exact `untracked_files` inventory.
|
|
53
53
|
|
|
54
|
-
For a Worktree candidate, capture the tracked binary diff and every untracked file's bytes once into an immutable snapshot, compute `candidate_digest`, and make that **captured candidate** available to
|
|
54
|
+
For a Worktree candidate, capture the tracked binary diff and every untracked file's bytes once into an immutable snapshot, compute `candidate_digest`, and make that **captured candidate** available to the assigned reviewer(s). The following is normative, not illustrative: use the `yss-worktree-candidate-v1` byte stream. Start with ASCII `YSS-WORKTREE-CANDIDATE-V1` followed by one NUL byte. Append one tracked record: byte `0x54`, unsigned 64-bit big-endian binary-diff byte length, then the exact stdout bytes from `git diff --no-ext-diff --binary --full-index <merge-base>`. Then append one untracked record for each NUL-delimited raw path from `git ls-files -z --others --exclude-standard`, sorted bytewise by the raw path: byte `0x55`, unsigned 64-bit big-endian path length, raw path bytes, unsigned 32-bit big-endian `lstat` mode, entry-kind byte (`0x52` regular or `0x4c` symlink), unsigned 64-bit big-endian content length, then raw regular-file bytes or raw symlink-target bytes. Other entry kinds block capture. This is the sole length-prefixed framing and bytewise path order for the digest. SHA-256 is calculated over exactly this stream. New captures use a previously nonexistent directory under `.template-source/evidence/maintenance/`, land atomically, and store exactly `candidate-manifest.yaml`, `candidate.bin` and `tracked.diff`; `candidate.bin` already contains every untracked byte, so do not duplicate hundreds of `untracked-content/000xxx` files. Explicit exclusions are fail-closed to `.template-source/evidence/maintenance/` evidence and cannot exclude implementation or authority assets. Historical per-file snapshots remain readable. Every assigned reviewer must consume the captured stream and must not independently treat a live worktree as the reviewed candidate.
|
|
55
55
|
|
|
56
|
-
Before going further, confirm the fixed point and merge-base resolve. A committed candidate must have a non-empty committed diff. A Worktree candidate is non-empty when either its tracked diff or untracked inventory is non-empty. A bad ref, missing candidate part or empty candidate should fail here — not
|
|
56
|
+
Before going further, confirm the fixed point and merge-base resolve. A committed candidate must have a non-empty committed diff. A Worktree candidate is non-empty when either its tracked diff or untracked inventory is non-empty. A bad ref, missing candidate part or empty candidate should fail here — not during professional review. Do not silently downgrade Worktree review to `HEAD`-only review.
|
|
57
57
|
|
|
58
58
|
### 2. Identify the spec source
|
|
59
59
|
|
|
@@ -66,7 +66,7 @@ Look for the originating spec, in this order:
|
|
|
66
66
|
|
|
67
67
|
### 3. Identify the standards sources
|
|
68
68
|
|
|
69
|
-
Compile sources **before**
|
|
69
|
+
Compile sources **before** review. For YSS implementation candidates follow [yss-review-standards.md](references/yss-review-standards.md): run machine checks that exist in the implementation repo; then collect repo docs (`CODING_STANDARDS.md` / `CONTRIBUTING.md` if present), every Slice `required_skills` skill file, the impact-conditioned specialist inputs (`alibaba-java-code-style`, `yss-ui`, `yss-domain`, …), and `docs/templates/review-report-template.md`. Missing applicable coverage is `missing_evidence`, not a pass.
|
|
70
70
|
|
|
71
71
|
For YSS backend review, derive the review roots from the candidate project root, implementation-repository registry, Slice `project_roots` and `allowed_write_paths`. Review only the project itself and registered backend development projects; exclude frontend roots, unrelated submodules/vendor trees and unregistered directories. Never replace this resolution with a fixed `apps/backend` assumption.
|
|
72
72
|
|
|
@@ -94,7 +94,9 @@ Each smell reads *what it is* → *how to fix*; match it against the diff:
|
|
|
94
94
|
- **Middle Man** — a class or function that mostly just delegates onward. → cut it, call the real target direct.
|
|
95
95
|
- **Refused Bequest** — a subclass or implementer that ignores or overrides most of what it inherits. → drop the inheritance, use composition.
|
|
96
96
|
|
|
97
|
-
### 4.
|
|
97
|
+
### 4. Complete each applicable review axis
|
|
98
|
+
|
|
99
|
+
默认由当前独立 Reviewer 连续完成下列两份检查提纲,按轴保留结论,不派发额外 subagent。需要多专业参与时,按角色表和协作协议派发对应提纲;只增加缺少的能力,不默认启动两个额外 Agent。下面的 sub-agent prompts 同样是单 Reviewer 的检查清单。
|
|
98
100
|
|
|
99
101
|
**Standards sub-agent prompt** — include:
|
|
100
102
|
|
|
@@ -111,13 +113,15 @@ Each smell reads *what it is* → *how to fix*; match it against the diff:
|
|
|
111
113
|
|
|
112
114
|
If the spec is missing, skip the Spec sub-agent and note this in the final report.
|
|
113
115
|
|
|
116
|
+
普通审查只复验修复影响的结论及其依赖;候选摘要变化后仍须重新绑定当前候选,不能沿用过期证据。未受影响项记录依据后复用。已明确采用下节历史候选/多轴合同的审查继续遵守其约定。
|
|
117
|
+
|
|
114
118
|
### 5. Aggregate
|
|
115
119
|
|
|
116
120
|
For template-maintenance task packages carrying `review_round`, preserve the frozen scope and apply the two-round convergence contract. A hard requirement added during review must cite a rule that already applied when the candidate was frozen; otherwise report it as `judgement-call` for the backlog. Round 1 blocking findings return to the implementer and require a new digest plus all review axes. If Round 2 still has an open `violation`, `drift`, or `new_impacts`, return `needs-human` and stop; do not silently start Round 3. Candidate byte changes invalidate every earlier axis report.
|
|
117
121
|
|
|
118
|
-
Present the reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. If UI is in scope, add `## UI fidelity` from the separate pass. Fill `docs/templates/review-report-template.md` specialist tables as part of Standards evidence, not a fourth axis. Do **not** merge or rerank findings — the axes are deliberately separate (see _Why separate axes_). A YSS candidate with blank applicable specialist rows, skipped `required_skills`, or unaddressed mandatory violations is `blocked`, not `completed`. Do not close findings by writing implementation in the review session. `violation` / machine-check failure / blank applicable rows go back to the implementer on the original contract path, then recapture the candidate and rerun
|
|
122
|
+
Present the reports under `## Standards` and `## Spec` headings, verbatim or lightly cleaned. If UI is in scope, add `## UI fidelity` from the separate pass. Fill `docs/templates/review-report-template.md` specialist tables as part of Standards evidence, not a fourth axis. Do **not** merge or rerank findings — the axes are deliberately separate (see _Why separate axes_). A YSS candidate with blank applicable specialist rows, skipped `required_skills`, or unaddressed mandatory violations is `blocked`, not `completed`. Do not close findings by writing implementation in the review session. `violation` / machine-check failure / blank applicable rows go back to the implementer on the original contract path, then recapture the candidate and rerun affected axes and their dependencies; explicitly rebind unchanged evidence. `drift` / `new_impacts` / `required_skills` mismatch mark the contract `stale` and return to 实现合同编译器; do not keep coding on the old contract. `not-applicable` is only for untriggered impacts; mandatory gates have no waiver, only repair or a complete `seam-deferred` record.
|
|
119
123
|
|
|
120
|
-
For Worktree mode, recapture the candidate digest after
|
|
124
|
+
For Worktree mode, recapture the candidate digest after all applicable checks finish. If it differs from `candidate_digest`, mark the affected reports as reviewing a **stale candidate** and return `blocked`; the caller may start a new review against a new capture, but this invocation must not aggregate findings from different bytes. Recheck the same digest again at the completion/checkpoint boundary.
|
|
121
125
|
|
|
122
126
|
State the reviewed `review_mode`, fixed point, candidate digest and coverage before the two reports. End with a one-line summary: total findings per axis, and the worst issue _within each axis_ (if any). Don't pick a single winner across axes — that's the reranking the separation exists to prevent.
|
|
123
127
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: file-export-download
|
|
3
|
-
description:
|
|
3
|
+
description: "在 Vue3 YSS UI 中实现或修复文件下载与导出,处理 Orval 文件流、Blob、文件名和错误响应。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# YSS 文件导出下载 Skill
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: frontend-commit
|
|
3
|
-
description:
|
|
3
|
+
description: "为前端改动生成提交信息、审查原子提交或修复 Git hook;用户明确要求提交时执行 git commit。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# 前端规范提交
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: java-backend-commit
|
|
3
|
-
description:
|
|
3
|
+
description: "为 Java 后端改动生成提交信息、审查原子提交或修复 Git hook;用户明确要求提交时执行 git commit。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Java 后端规范提交
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: llm-wiki
|
|
3
|
-
description:
|
|
4
|
-
Compile and maintain a Karpathy-pattern LLM wiki (raw + wiki + schema) with
|
|
5
|
-
init, incremental refresh, global rebuild, lint, and narrow ingest. Use when
|
|
6
|
-
the user wants a local knowledge wiki, incremental wiki refresh, wiki rebuild,
|
|
7
|
-
compiling a named research note into the wiki, `/llm-wiki`, or an answer from
|
|
8
|
-
an existing wiki.
|
|
3
|
+
description: "Build or refresh a local LLM wiki; use for wiki init, ingest, rebuild, lint, or source-backed wiki questions."
|
|
9
4
|
---
|
|
10
5
|
|
|
11
6
|
# llm-wiki
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lombok
|
|
3
|
-
description:
|
|
4
|
-
Project Lombok for reducing Java boilerplate. Covers annotations for getters,
|
|
5
|
-
setters, constructors, builders, logging, and more. Based on production
|
|
6
|
-
patterns from castellino and gestionale-presenze projects.
|
|
7
|
-
|
|
8
|
-
USE WHEN: user mentions "lombok", "@Data", "@Builder", "@Slf4j", asks about
|
|
9
|
-
"boilerplate reduction", "getters/setters", "@RequiredArgsConstructor", "@Value"
|
|
10
|
-
|
|
11
|
-
DO NOT USE FOR: Java language features - use `java` skill instead
|
|
12
|
-
DO NOT USE FOR: MapStruct integration - use `mapstruct` skill
|
|
13
|
-
DO NOT USE FOR: Spring annotations - use `backend-spring-boot` skill
|
|
14
|
-
allowed-tools: Read, Grep, Glob, Write, Edit
|
|
3
|
+
description: "配置或排查 Lombok 注解、构造器、Builder 和注解处理器;按对象身份与敏感字段选择生成范围。"
|
|
15
4
|
---
|
|
16
5
|
# Project Lombok
|
|
17
6
|
|
|
18
|
-
> **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `lombok` for comprehensive documentation.
|
|
19
|
-
|
|
20
7
|
## YSS 阶段 7 执行结果
|
|
21
8
|
|
|
22
9
|
- 消费工程 Java 与处理器基线;三个新后端 Profile 为 Java 8。MapStruct binding 进入 annotationProcessorPaths,不作为业务依赖单独引入;示例不授权升级依赖。MVC PO 的身份/敏感字段风险与 DDD 相同,不能默认全量 @Data。
|
|
@@ -24,329 +11,16 @@ allowed-tools: Read, Grep, Glob, Write, Edit
|
|
|
24
11
|
- 受控生成必须记录对象类型、选用/排除注解、实体关系和敏感字段风险、编译/测试实际结果。
|
|
25
12
|
- 按 `yss-implementation-contract-compiler` 的统一 Execution Result 返回 changed files、证据、偏离和新增影响;`@Data` 实体风险、处理器配置缺失或越界路径返回 `violation`。
|
|
26
13
|
|
|
27
|
-
##
|
|
28
|
-
|
|
29
|
-
```xml
|
|
30
|
-
<dependency>
|
|
31
|
-
<groupId>org.projectlombok</groupId>
|
|
32
|
-
<artifactId>lombok</artifactId>
|
|
33
|
-
<version>1.18.34</version>
|
|
34
|
-
<optional>true</optional>
|
|
35
|
-
</dependency>
|
|
36
|
-
|
|
37
|
-
<!-- For MapStruct compatibility -->
|
|
38
|
-
<dependency>
|
|
39
|
-
<groupId>org.projectlombok</groupId>
|
|
40
|
-
<artifactId>lombok-mapstruct-binding</artifactId>
|
|
41
|
-
<version>0.2.0</version>
|
|
42
|
-
</dependency>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Common Annotations
|
|
46
|
-
|
|
47
|
-
### @Data (All-in-One)
|
|
48
|
-
|
|
49
|
-
```java
|
|
50
|
-
@Data
|
|
51
|
-
public class User {
|
|
52
|
-
private Long id;
|
|
53
|
-
private String name;
|
|
54
|
-
private String email;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Generates:
|
|
58
|
-
// - @Getter for all fields
|
|
59
|
-
// - @Setter for all non-final fields
|
|
60
|
-
// - @ToString
|
|
61
|
-
// - @EqualsAndHashCode
|
|
62
|
-
// - @RequiredArgsConstructor
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### @Getter / @Setter
|
|
66
|
-
|
|
67
|
-
```java
|
|
68
|
-
public class User {
|
|
69
|
-
@Getter @Setter
|
|
70
|
-
private String name;
|
|
71
|
-
|
|
72
|
-
@Getter // Read-only
|
|
73
|
-
private final String email;
|
|
74
|
-
|
|
75
|
-
@Setter(AccessLevel.PROTECTED)
|
|
76
|
-
private String internalId;
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### @NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor
|
|
81
|
-
|
|
82
|
-
```java
|
|
83
|
-
@NoArgsConstructor
|
|
84
|
-
@AllArgsConstructor
|
|
85
|
-
public class User {
|
|
86
|
-
private Long id;
|
|
87
|
-
private String name;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@RequiredArgsConstructor
|
|
91
|
-
public class UserService {
|
|
92
|
-
private final UserRepository userRepository; // Included in constructor
|
|
93
|
-
private final UserMapper userMapper; // Included in constructor
|
|
94
|
-
private String cacheName; // NOT included
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### @Builder
|
|
99
|
-
|
|
100
|
-
```java
|
|
101
|
-
@Data
|
|
102
|
-
@Builder
|
|
103
|
-
public class User {
|
|
104
|
-
private Long id;
|
|
105
|
-
private String name;
|
|
106
|
-
private String email;
|
|
107
|
-
@Builder.Default
|
|
108
|
-
private UserStatus status = UserStatus.ACTIVE;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Usage
|
|
112
|
-
User user = User.builder()
|
|
113
|
-
.name("John")
|
|
114
|
-
.email("john@example.com")
|
|
115
|
-
.build();
|
|
116
|
-
|
|
117
|
-
// With toBuilder for updates
|
|
118
|
-
User updated = user.toBuilder()
|
|
119
|
-
.name("Jane")
|
|
120
|
-
.build();
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### @Value (Immutable)
|
|
124
|
-
|
|
125
|
-
```java
|
|
126
|
-
@Value
|
|
127
|
-
public class UserResponse {
|
|
128
|
-
Long id;
|
|
129
|
-
String name;
|
|
130
|
-
String email;
|
|
131
|
-
LocalDateTime createdAt;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// Generates:
|
|
135
|
-
// - All fields are private final
|
|
136
|
-
// - @AllArgsConstructor
|
|
137
|
-
// - @Getter (no setters)
|
|
138
|
-
// - @ToString
|
|
139
|
-
// - @EqualsAndHashCode
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Entity Pattern
|
|
143
|
-
|
|
144
|
-
```java
|
|
145
|
-
@Entity
|
|
146
|
-
@Table(name = "users")
|
|
147
|
-
@Getter
|
|
148
|
-
@Setter
|
|
149
|
-
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
|
150
|
-
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
|
151
|
-
@Builder
|
|
152
|
-
@EntityListeners(AuditingEntityListener.class)
|
|
153
|
-
public class User {
|
|
154
|
-
|
|
155
|
-
@Id
|
|
156
|
-
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
157
|
-
private Long id;
|
|
158
|
-
|
|
159
|
-
@Column(nullable = false)
|
|
160
|
-
private String name;
|
|
161
|
-
|
|
162
|
-
@Column(unique = true, nullable = false)
|
|
163
|
-
private String email;
|
|
164
|
-
|
|
165
|
-
@Enumerated(EnumType.STRING)
|
|
166
|
-
@Builder.Default
|
|
167
|
-
private UserStatus status = UserStatus.ACTIVE;
|
|
168
|
-
|
|
169
|
-
@CreatedDate
|
|
170
|
-
@Column(updatable = false)
|
|
171
|
-
private LocalDateTime createdAt;
|
|
172
|
-
|
|
173
|
-
@LastModifiedDate
|
|
174
|
-
private LocalDateTime updatedAt;
|
|
175
|
-
|
|
176
|
-
@ManyToOne(fetch = FetchType.LAZY)
|
|
177
|
-
@JoinColumn(name = "department_id")
|
|
178
|
-
private Department department;
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
JPA/DDD entities must not default to `@Data`; choose equality and `toString` deliberately from stable identity and exclude lazy, relationship, and sensitive fields.
|
|
14
|
+
## 按需读取
|
|
183
15
|
|
|
184
|
-
|
|
16
|
+
先确认当前任务涉及的对象与批准合同,只读取对应参考段落:
|
|
185
17
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
private final UserRepository userRepository;
|
|
193
|
-
private final UserMapper userMapper;
|
|
194
|
-
private final PasswordEncoder passwordEncoder;
|
|
195
|
-
|
|
196
|
-
@Override
|
|
197
|
-
public UserResponse create(CreateUserRequest dto) {
|
|
198
|
-
log.info("Creating user: {}", dto.getEmail());
|
|
199
|
-
User user = userMapper.toEntity(dto);
|
|
200
|
-
return userMapper.toResponse(userRepository.save(user));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Logging
|
|
206
|
-
|
|
207
|
-
```java
|
|
208
|
-
@Slf4j // SLF4J logger
|
|
209
|
-
public class UserService {
|
|
210
|
-
public void process() {
|
|
211
|
-
log.info("Processing...");
|
|
212
|
-
log.debug("Debug info: {}", data);
|
|
213
|
-
log.error("Error occurred", exception);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
@Log4j2 // Log4j2 logger
|
|
218
|
-
@CommonsLog // Apache Commons Logging
|
|
219
|
-
@JBossLog // JBoss Logging
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## DTO Pattern
|
|
223
|
-
|
|
224
|
-
```java
|
|
225
|
-
// Request DTO
|
|
226
|
-
@Data
|
|
227
|
-
public class CreateUserRequest {
|
|
228
|
-
@NotBlank
|
|
229
|
-
private String name;
|
|
230
|
-
@Email
|
|
231
|
-
private String email;
|
|
232
|
-
@Size(min = 8)
|
|
233
|
-
private String password;
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Response DTO (immutable)
|
|
237
|
-
@Value
|
|
238
|
-
@Builder
|
|
239
|
-
public class UserResponse {
|
|
240
|
-
Long id;
|
|
241
|
-
String name;
|
|
242
|
-
String email;
|
|
243
|
-
UserStatus status;
|
|
244
|
-
LocalDateTime createdAt;
|
|
245
|
-
}
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
## @Cleanup
|
|
249
|
-
|
|
250
|
-
```java
|
|
251
|
-
public void readFile(String path) throws IOException {
|
|
252
|
-
@Cleanup InputStream in = new FileInputStream(path);
|
|
253
|
-
// in.close() called automatically
|
|
254
|
-
}
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
## @SneakyThrows
|
|
258
|
-
|
|
259
|
-
```java
|
|
260
|
-
@SneakyThrows // Wraps checked exception
|
|
261
|
-
public String readConfig() {
|
|
262
|
-
return new String(Files.readAllBytes(Paths.get("config.json")), StandardCharsets.UTF_8);
|
|
263
|
-
}
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
## @Synchronized
|
|
267
|
-
|
|
268
|
-
```java
|
|
269
|
-
public class Counter {
|
|
270
|
-
@Synchronized
|
|
271
|
-
public void increment() {
|
|
272
|
-
// Thread-safe
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
## @With (Immutable Updates)
|
|
278
|
-
|
|
279
|
-
```java
|
|
280
|
-
@Value
|
|
281
|
-
@With
|
|
282
|
-
public class Point {
|
|
283
|
-
int x;
|
|
284
|
-
int y;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
Point p1 = new Point(1, 2);
|
|
288
|
-
Point p2 = p1.withX(5); // Point(5, 2)
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
## Key Annotations
|
|
292
|
-
|
|
293
|
-
| Annotation | Purpose |
|
|
294
|
-
|------------|---------|
|
|
295
|
-
| `@Data` | Getter, Setter, ToString, Equals, Constructor |
|
|
296
|
-
| `@Value` | Immutable class |
|
|
297
|
-
| `@Builder` | Builder pattern |
|
|
298
|
-
| `@RequiredArgsConstructor` | Constructor for final fields |
|
|
299
|
-
| `@Slf4j` | Logger field |
|
|
300
|
-
| `@ToString.Exclude` | Exclude from toString |
|
|
301
|
-
| `@EqualsAndHashCode.Exclude` | Exclude from equals/hashCode |
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
|
|
305
|
-
## When NOT to Use This Skill
|
|
306
|
-
|
|
307
|
-
| Scenario | Use Instead |
|
|
308
|
-
|----------|-------------|
|
|
309
|
-
| Java core language | `java` skill |
|
|
310
|
-
| MapStruct mapping | `mapstruct` skill |
|
|
311
|
-
| Spring annotations | `backend-spring-boot` skill |
|
|
312
|
-
| JPA entities complex logic | Manual implementation |
|
|
313
|
-
| Public API design | Explicit methods for clarity |
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
## Anti-Patterns
|
|
318
|
-
|
|
319
|
-
| Anti-Pattern | Why It's Bad | Correct Approach |
|
|
320
|
-
|--------------|--------------|------------------|
|
|
321
|
-
| @Data on JPA entities | toString/equals issues | Use @Getter/@Setter selectively |
|
|
322
|
-
| Not excluding lazy relations | LazyInitializationException | Use @ToString.Exclude |
|
|
323
|
-
| @EqualsAndHashCode on entities | Proxy issues | Use @EqualsAndHashCode(onlyExplicitlyIncluded = true) |
|
|
324
|
-
| @SneakyThrows everywhere | Hides exceptions | Use proper exception handling |
|
|
325
|
-
| @Builder without @Default | Null fields | Add @Builder.Default |
|
|
326
|
-
| @Value with mutable fields | Breaks immutability | Use only immutable types |
|
|
327
|
-
| Mixing @Data and manual methods | Confusing API | Be consistent |
|
|
328
|
-
| Not configuring in lombok.config | Inconsistent behavior | Use lombok.config file |
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
## Quick Troubleshooting
|
|
333
|
-
|
|
334
|
-
| Issue | Cause | Solution |
|
|
335
|
-
|-------|-------|----------|
|
|
336
|
-
| "Cannot find symbol" for getters | IDE not processing | Enable annotation processing |
|
|
337
|
-
| LazyInitializationException | toString on lazy relation | Add @ToString.Exclude |
|
|
338
|
-
| MapStruct not working | Wrong processor order | Lombok before MapStruct |
|
|
339
|
-
| Builder missing fields | No @Builder.Default | Add defaults or check config |
|
|
340
|
-
| StackOverflowError in equals | Circular reference | Exclude relation fields |
|
|
341
|
-
| IDE shows errors but compiles | IDE cache | Invalidate caches/restart |
|
|
342
|
-
| @Slf4j logger not found | SLF4J not in classpath | Add SLF4J dependency |
|
|
343
|
-
| Generated code not visible | delombok needed | Run delombok task |
|
|
344
|
-
|
|
345
|
-
---
|
|
18
|
+
| 任务 | 参考 |
|
|
19
|
+
|---|---|
|
|
20
|
+
| 构造器、Builder、默认值或不可变对象 | [Common Annotations](references/annotation-examples.md#common-annotations) |
|
|
21
|
+
| 实体身份、关联与敏感字段 | [Entity Pattern](references/annotation-examples.md#entity-pattern) |
|
|
22
|
+
| 注解处理器与 MapStruct 集成 | [Maven Configuration](references/annotation-examples.md#maven-configuration),映射逻辑交给 `mapstruct` |
|
|
346
23
|
|
|
347
|
-
|
|
348
|
-
- [Lombok Documentation](https://projectlombok.org/features/)
|
|
349
|
-
- [Stable Features](https://projectlombok.org/features/all)
|
|
350
|
-
- [Configuration](https://projectlombok.org/features/configuration)
|
|
24
|
+
选择注解前核查生成的 equals/hashCode/toString 是否符合对象身份与数据边界。敏感字段不能进入生成的 toString 或日志;实体不默认使用全量 `@Data`。依赖和处理器版本复用工程基线,修改生成行为后编译受影响模块,并验证实际生成的访问器、构造器或身份行为。
|
|
351
25
|
|
|
352
|
-
|
|
26
|
+
查第三方行为时使用 `yss-research`,来源为 [Lombok 官方文档](https://projectlombok.org/features/);不假定某个 MCP 工具已安装。
|