create-yss-spec 3.4.4 → 3.4.6
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 +1 -1
- package/template/.agents/skills/yss-application/SKILL.md +8 -6
- package/template/.agents/skills/yss-audit-log/SKILL.md +12 -7
- package/template/.agents/skills/yss-audit-log/references/source-index.boot2-java8.md +57 -0
- package/template/.agents/skills/yss-audit-log/references/source-index.boot3-java17.md +58 -0
- package/template/.agents/skills/yss-audit-log/references/source-index.md +6 -39
- package/template/.agents/skills/yss-cache/SKILL.md +5 -1
- package/template/.agents/skills/yss-cache/references/source-index.boot2-java8.md +81 -0
- package/template/.agents/skills/yss-cache/references/source-index.boot3-java17.md +83 -0
- package/template/.agents/skills/yss-cache/references/source-index.md +6 -63
- package/template/.agents/skills/yss-cache/scripts/check-skill-freshness.sh +20 -15
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/engineering-baseline.md +53 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +5 -51
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/agents/openai.yaml +3 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.agents/skills/yss-distributed-id/SKILL.md +4 -0
- package/template/.agents/skills/yss-distributed-id/references/source-index.boot2-java8.md +102 -0
- package/template/.agents/skills/yss-distributed-id/references/source-index.boot3-java17.md +90 -0
- package/template/.agents/skills/yss-distributed-id/references/source-index.md +6 -82
- package/template/.agents/skills/yss-dto/SKILL.md +2 -2
- package/template/.agents/skills/yss-dto/references/source-index.boot2-java8.md +67 -0
- package/template/.agents/skills/yss-dto/references/source-index.boot3-java17.md +70 -0
- package/template/.agents/skills/yss-dto/references/source-index.md +6 -51
- package/template/.agents/skills/yss-excel-mvc/SKILL.md +4 -0
- package/template/.agents/skills/yss-excel-mvc/references/source-index.boot2-java8.md +90 -0
- package/template/.agents/skills/yss-excel-mvc/references/source-index.boot3-java17.md +58 -0
- package/template/.agents/skills/yss-excel-mvc/references/source-index.md +6 -70
- package/template/.agents/skills/yss-exception/SKILL.md +12 -9
- package/template/.agents/skills/yss-exception/references/source-index.boot2-java8.md +50 -0
- package/template/.agents/skills/yss-exception/references/source-index.boot3-java17.md +50 -0
- package/template/.agents/skills/yss-exception/references/source-index.md +6 -31
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +3 -5
- package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +27 -2
- package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -1
- package/template/.agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +60 -14
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +6 -5
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +2 -2
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +2 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +82 -0
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +23 -9
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +30 -6
- package/template/.agents/skills/yss-layered-mvc-scaffold-generator/tests/scaffold-generator.test.mjs +2 -0
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +5 -15
- package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +9 -68
- package/template/.agents/skills/yss-mvc-design/SKILL.md +5 -9
- package/template/.agents/skills/yss-mvc-design/agents/openai.yaml +3 -3
- package/template/.agents/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.agents/skills/yss-mybatis/references/source-index.boot2-java8.md +126 -0
- package/template/.agents/skills/yss-mybatis/references/source-index.boot3-java17.md +126 -0
- package/template/.agents/skills/yss-mybatis/references/source-index.md +6 -109
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +10 -8
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.agents/skills/yss-repository/SKILL.md +1 -1
- package/template/.agents/skills/yss-resilience4j/SKILL.md +4 -0
- package/template/.agents/skills/yss-resilience4j/references/source-index.boot2-java8.md +48 -0
- package/template/.agents/skills/yss-resilience4j/references/source-index.boot3-java17.md +48 -0
- package/template/.agents/skills/yss-resilience4j/references/source-index.md +6 -29
- package/template/.agents/skills/yss-security-algorithm/SKILL.md +34 -10
- package/template/.agents/skills/yss-security-algorithm/references/source-index.boot2-java8.md +50 -0
- package/template/.agents/skills/yss-security-algorithm/references/source-index.boot3-java17.md +51 -0
- package/template/.agents/skills/yss-security-algorithm/references/source-index.md +6 -31
- package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +12 -6
- package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +27 -0
- package/template/.agents/skills/yss-skill-source-index-refresh/references/source-location.md +4 -4
- package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +10 -3
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/check-backend-skill-source-index.mjs +60 -0
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +247 -54
- package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +74 -7
- package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.agents/skills/yss-tactical-design/references/output-template.md +1 -1
- package/template/.agents/skills/yss-technical-design/SKILL.md +3 -1
- package/template/.agents/skills/yss-technical-design/references/mvc-design.schema.json +315 -0
- package/template/.agents/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.agents/skills/yss-technical-design/scripts/generate-schema.mjs +1 -1
- package/template/.agents/skills/yss-technical-design/tests/run-scenarios.mjs +4 -1
- package/template/.agents/skills/yss-up-springboot3/SKILL.md +23 -9
- package/template/.agents/skills/yss-userinfo/SKILL.md +21 -14
- package/template/.agents/skills/yss-userinfo/references/source-index.boot2-java8.md +49 -0
- package/template/.agents/skills/yss-userinfo/references/source-index.boot3-java17.md +54 -0
- package/template/.agents/skills/yss-userinfo/references/source-index.md +6 -30
- package/template/.agents/skills/yss-validation/SKILL.md +12 -17
- package/template/.agents/skills/yss-validation/references/source-index.boot2-java8.md +47 -0
- package/template/.agents/skills/yss-validation/references/source-index.boot3-java17.md +47 -0
- package/template/.agents/skills/yss-validation/references/source-index.md +6 -29
- package/template/.agents/skills/yss-web-controller/SKILL.md +4 -4
- package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.codex/skills/yss-application/SKILL.md +8 -6
- package/template/.codex/skills/yss-audit-log/SKILL.md +12 -7
- package/template/.codex/skills/yss-audit-log/references/source-index.boot2-java8.md +57 -0
- package/template/.codex/skills/yss-audit-log/references/source-index.boot3-java17.md +58 -0
- package/template/.codex/skills/yss-audit-log/references/source-index.md +6 -39
- package/template/.codex/skills/yss-cache/SKILL.md +5 -1
- package/template/.codex/skills/yss-cache/references/source-index.boot2-java8.md +81 -0
- package/template/.codex/skills/yss-cache/references/source-index.boot3-java17.md +83 -0
- package/template/.codex/skills/yss-cache/references/source-index.md +6 -63
- package/template/.codex/skills/yss-cache/scripts/check-skill-freshness.sh +20 -15
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/engineering-baseline.md +53 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +5 -51
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/agents/openai.yaml +3 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.codex/skills/yss-distributed-id/SKILL.md +4 -0
- package/template/.codex/skills/yss-distributed-id/references/source-index.boot2-java8.md +102 -0
- package/template/.codex/skills/yss-distributed-id/references/source-index.boot3-java17.md +90 -0
- package/template/.codex/skills/yss-distributed-id/references/source-index.md +6 -82
- package/template/.codex/skills/yss-dto/SKILL.md +2 -2
- package/template/.codex/skills/yss-dto/references/source-index.boot2-java8.md +67 -0
- package/template/.codex/skills/yss-dto/references/source-index.boot3-java17.md +70 -0
- package/template/.codex/skills/yss-dto/references/source-index.md +6 -51
- package/template/.codex/skills/yss-excel-mvc/SKILL.md +4 -0
- package/template/.codex/skills/yss-excel-mvc/references/source-index.boot2-java8.md +90 -0
- package/template/.codex/skills/yss-excel-mvc/references/source-index.boot3-java17.md +58 -0
- package/template/.codex/skills/yss-excel-mvc/references/source-index.md +6 -70
- package/template/.codex/skills/yss-exception/SKILL.md +12 -9
- package/template/.codex/skills/yss-exception/references/source-index.boot2-java8.md +50 -0
- package/template/.codex/skills/yss-exception/references/source-index.boot3-java17.md +50 -0
- package/template/.codex/skills/yss-exception/references/source-index.md +6 -31
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +3 -5
- package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +27 -2
- package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -1
- package/template/.codex/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +60 -14
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +6 -5
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +2 -2
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +2 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +82 -0
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +23 -9
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +30 -6
- package/template/.codex/skills/yss-layered-mvc-scaffold-generator/tests/scaffold-generator.test.mjs +2 -0
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +5 -15
- package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +9 -68
- package/template/.codex/skills/yss-mvc-design/SKILL.md +5 -9
- package/template/.codex/skills/yss-mvc-design/agents/openai.yaml +3 -3
- package/template/.codex/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.codex/skills/yss-mybatis/references/source-index.boot2-java8.md +126 -0
- package/template/.codex/skills/yss-mybatis/references/source-index.boot3-java17.md +126 -0
- package/template/.codex/skills/yss-mybatis/references/source-index.md +6 -109
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +10 -8
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.codex/skills/yss-repository/SKILL.md +1 -1
- package/template/.codex/skills/yss-resilience4j/SKILL.md +4 -0
- package/template/.codex/skills/yss-resilience4j/references/source-index.boot2-java8.md +48 -0
- package/template/.codex/skills/yss-resilience4j/references/source-index.boot3-java17.md +48 -0
- package/template/.codex/skills/yss-resilience4j/references/source-index.md +6 -29
- package/template/.codex/skills/yss-security-algorithm/SKILL.md +34 -10
- package/template/.codex/skills/yss-security-algorithm/references/source-index.boot2-java8.md +50 -0
- package/template/.codex/skills/yss-security-algorithm/references/source-index.boot3-java17.md +51 -0
- package/template/.codex/skills/yss-security-algorithm/references/source-index.md +6 -31
- package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +12 -6
- package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +27 -0
- package/template/.codex/skills/yss-skill-source-index-refresh/references/source-location.md +4 -4
- package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +10 -3
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/check-backend-skill-source-index.mjs +60 -0
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +247 -54
- package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +74 -7
- package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.codex/skills/yss-tactical-design/references/output-template.md +1 -1
- package/template/.codex/skills/yss-technical-design/SKILL.md +3 -1
- package/template/.codex/skills/yss-technical-design/references/mvc-design.schema.json +315 -0
- package/template/.codex/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.codex/skills/yss-technical-design/scripts/generate-schema.mjs +1 -1
- package/template/.codex/skills/yss-technical-design/tests/run-scenarios.mjs +4 -1
- package/template/.codex/skills/yss-up-springboot3/SKILL.md +23 -9
- package/template/.codex/skills/yss-userinfo/SKILL.md +21 -14
- package/template/.codex/skills/yss-userinfo/references/source-index.boot2-java8.md +49 -0
- package/template/.codex/skills/yss-userinfo/references/source-index.boot3-java17.md +54 -0
- package/template/.codex/skills/yss-userinfo/references/source-index.md +6 -30
- package/template/.codex/skills/yss-validation/SKILL.md +12 -17
- package/template/.codex/skills/yss-validation/references/source-index.boot2-java8.md +47 -0
- package/template/.codex/skills/yss-validation/references/source-index.boot3-java17.md +47 -0
- package/template/.codex/skills/yss-validation/references/source-index.md +6 -29
- package/template/.codex/skills/yss-web-controller/SKILL.md +4 -4
- package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.cursor/skills/yss-application/SKILL.md +8 -6
- package/template/.cursor/skills/yss-audit-log/SKILL.md +12 -7
- package/template/.cursor/skills/yss-audit-log/references/source-index.boot2-java8.md +57 -0
- package/template/.cursor/skills/yss-audit-log/references/source-index.boot3-java17.md +58 -0
- package/template/.cursor/skills/yss-audit-log/references/source-index.md +6 -39
- package/template/.cursor/skills/yss-cache/SKILL.md +5 -1
- package/template/.cursor/skills/yss-cache/references/source-index.boot2-java8.md +81 -0
- package/template/.cursor/skills/yss-cache/references/source-index.boot3-java17.md +83 -0
- package/template/.cursor/skills/yss-cache/references/source-index.md +6 -63
- package/template/.cursor/skills/yss-cache/scripts/check-skill-freshness.sh +20 -15
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/engineering-baseline.md +53 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +5 -51
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/agents/openai.yaml +3 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.cursor/skills/yss-distributed-id/SKILL.md +4 -0
- package/template/.cursor/skills/yss-distributed-id/references/source-index.boot2-java8.md +102 -0
- package/template/.cursor/skills/yss-distributed-id/references/source-index.boot3-java17.md +90 -0
- package/template/.cursor/skills/yss-distributed-id/references/source-index.md +6 -82
- package/template/.cursor/skills/yss-dto/SKILL.md +2 -2
- package/template/.cursor/skills/yss-dto/references/source-index.boot2-java8.md +67 -0
- package/template/.cursor/skills/yss-dto/references/source-index.boot3-java17.md +70 -0
- package/template/.cursor/skills/yss-dto/references/source-index.md +6 -51
- package/template/.cursor/skills/yss-excel-mvc/SKILL.md +4 -0
- package/template/.cursor/skills/yss-excel-mvc/references/source-index.boot2-java8.md +90 -0
- package/template/.cursor/skills/yss-excel-mvc/references/source-index.boot3-java17.md +58 -0
- package/template/.cursor/skills/yss-excel-mvc/references/source-index.md +6 -70
- package/template/.cursor/skills/yss-exception/SKILL.md +12 -9
- package/template/.cursor/skills/yss-exception/references/source-index.boot2-java8.md +50 -0
- package/template/.cursor/skills/yss-exception/references/source-index.boot3-java17.md +50 -0
- package/template/.cursor/skills/yss-exception/references/source-index.md +6 -31
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +3 -5
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +27 -2
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -1
- package/template/.cursor/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +60 -14
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +6 -5
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +2 -2
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +2 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +82 -0
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +23 -9
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +30 -6
- package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/tests/scaffold-generator.test.mjs +2 -0
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +5 -15
- package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +9 -68
- package/template/.cursor/skills/yss-mvc-design/SKILL.md +5 -9
- package/template/.cursor/skills/yss-mvc-design/agents/openai.yaml +3 -3
- package/template/.cursor/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.cursor/skills/yss-mybatis/references/source-index.boot2-java8.md +126 -0
- package/template/.cursor/skills/yss-mybatis/references/source-index.boot3-java17.md +126 -0
- package/template/.cursor/skills/yss-mybatis/references/source-index.md +6 -109
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +10 -8
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.cursor/skills/yss-repository/SKILL.md +1 -1
- package/template/.cursor/skills/yss-resilience4j/SKILL.md +4 -0
- package/template/.cursor/skills/yss-resilience4j/references/source-index.boot2-java8.md +48 -0
- package/template/.cursor/skills/yss-resilience4j/references/source-index.boot3-java17.md +48 -0
- package/template/.cursor/skills/yss-resilience4j/references/source-index.md +6 -29
- package/template/.cursor/skills/yss-security-algorithm/SKILL.md +34 -10
- package/template/.cursor/skills/yss-security-algorithm/references/source-index.boot2-java8.md +50 -0
- package/template/.cursor/skills/yss-security-algorithm/references/source-index.boot3-java17.md +51 -0
- package/template/.cursor/skills/yss-security-algorithm/references/source-index.md +6 -31
- package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +12 -6
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +27 -0
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-location.md +4 -4
- package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +10 -3
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/check-backend-skill-source-index.mjs +60 -0
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +247 -54
- package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +74 -7
- package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.cursor/skills/yss-tactical-design/references/output-template.md +1 -1
- package/template/.cursor/skills/yss-technical-design/SKILL.md +3 -1
- package/template/.cursor/skills/yss-technical-design/references/mvc-design.schema.json +315 -0
- package/template/.cursor/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.cursor/skills/yss-technical-design/scripts/generate-schema.mjs +1 -1
- package/template/.cursor/skills/yss-technical-design/tests/run-scenarios.mjs +4 -1
- package/template/.cursor/skills/yss-up-springboot3/SKILL.md +23 -9
- package/template/.cursor/skills/yss-userinfo/SKILL.md +21 -14
- package/template/.cursor/skills/yss-userinfo/references/source-index.boot2-java8.md +49 -0
- package/template/.cursor/skills/yss-userinfo/references/source-index.boot3-java17.md +54 -0
- package/template/.cursor/skills/yss-userinfo/references/source-index.md +6 -30
- package/template/.cursor/skills/yss-validation/SKILL.md +12 -17
- package/template/.cursor/skills/yss-validation/references/source-index.boot2-java8.md +47 -0
- package/template/.cursor/skills/yss-validation/references/source-index.boot3-java17.md +47 -0
- package/template/.cursor/skills/yss-validation/references/source-index.md +6 -29
- package/template/.cursor/skills/yss-web-controller/SKILL.md +4 -4
- package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/.pi/skills/yss-application/SKILL.md +8 -6
- package/template/.pi/skills/yss-audit-log/SKILL.md +12 -7
- package/template/.pi/skills/yss-audit-log/references/source-index.boot2-java8.md +57 -0
- package/template/.pi/skills/yss-audit-log/references/source-index.boot3-java17.md +58 -0
- package/template/.pi/skills/yss-audit-log/references/source-index.md +6 -39
- package/template/.pi/skills/yss-cache/SKILL.md +5 -1
- package/template/.pi/skills/yss-cache/references/source-index.boot2-java8.md +81 -0
- package/template/.pi/skills/yss-cache/references/source-index.boot3-java17.md +83 -0
- package/template/.pi/skills/yss-cache/references/source-index.md +6 -63
- package/template/.pi/skills/yss-cache/scripts/check-skill-freshness.sh +20 -15
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/engineering-baseline.md +53 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +5 -51
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/agents/openai.yaml +3 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
- package/template/.pi/skills/yss-distributed-id/SKILL.md +4 -0
- package/template/.pi/skills/yss-distributed-id/references/source-index.boot2-java8.md +102 -0
- package/template/.pi/skills/yss-distributed-id/references/source-index.boot3-java17.md +90 -0
- package/template/.pi/skills/yss-distributed-id/references/source-index.md +6 -82
- package/template/.pi/skills/yss-dto/SKILL.md +2 -2
- package/template/.pi/skills/yss-dto/references/source-index.boot2-java8.md +67 -0
- package/template/.pi/skills/yss-dto/references/source-index.boot3-java17.md +70 -0
- package/template/.pi/skills/yss-dto/references/source-index.md +6 -51
- package/template/.pi/skills/yss-excel-mvc/SKILL.md +4 -0
- package/template/.pi/skills/yss-excel-mvc/references/source-index.boot2-java8.md +90 -0
- package/template/.pi/skills/yss-excel-mvc/references/source-index.boot3-java17.md +58 -0
- package/template/.pi/skills/yss-excel-mvc/references/source-index.md +6 -70
- package/template/.pi/skills/yss-exception/SKILL.md +12 -9
- package/template/.pi/skills/yss-exception/references/source-index.boot2-java8.md +50 -0
- package/template/.pi/skills/yss-exception/references/source-index.boot3-java17.md +50 -0
- package/template/.pi/skills/yss-exception/references/source-index.md +6 -31
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +3 -5
- package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +27 -2
- package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -1
- package/template/.pi/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +60 -14
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +6 -5
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +2 -2
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +2 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +82 -0
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +23 -9
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +30 -6
- package/template/.pi/skills/yss-layered-mvc-scaffold-generator/tests/scaffold-generator.test.mjs +2 -0
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +5 -15
- package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +9 -68
- package/template/.pi/skills/yss-mvc-design/SKILL.md +5 -9
- package/template/.pi/skills/yss-mvc-design/agents/openai.yaml +3 -3
- package/template/.pi/skills/yss-mybatis/SKILL.md +2 -2
- package/template/.pi/skills/yss-mybatis/references/source-index.boot2-java8.md +126 -0
- package/template/.pi/skills/yss-mybatis/references/source-index.boot3-java17.md +126 -0
- package/template/.pi/skills/yss-mybatis/references/source-index.md +6 -109
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +10 -8
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
- package/template/.pi/skills/yss-repository/SKILL.md +1 -1
- package/template/.pi/skills/yss-resilience4j/SKILL.md +4 -0
- package/template/.pi/skills/yss-resilience4j/references/source-index.boot2-java8.md +48 -0
- package/template/.pi/skills/yss-resilience4j/references/source-index.boot3-java17.md +48 -0
- package/template/.pi/skills/yss-resilience4j/references/source-index.md +6 -29
- package/template/.pi/skills/yss-security-algorithm/SKILL.md +34 -10
- package/template/.pi/skills/yss-security-algorithm/references/source-index.boot2-java8.md +50 -0
- package/template/.pi/skills/yss-security-algorithm/references/source-index.boot3-java17.md +51 -0
- package/template/.pi/skills/yss-security-algorithm/references/source-index.md +6 -31
- package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +12 -6
- package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +27 -0
- package/template/.pi/skills/yss-skill-source-index-refresh/references/source-location.md +4 -4
- package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +10 -3
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/check-backend-skill-source-index.mjs +60 -0
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +247 -54
- package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +74 -7
- package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
- package/template/.pi/skills/yss-tactical-design/references/output-template.md +1 -1
- package/template/.pi/skills/yss-technical-design/SKILL.md +3 -1
- package/template/.pi/skills/yss-technical-design/references/mvc-design.schema.json +315 -0
- package/template/.pi/skills/yss-technical-design/references/technical-design-contract.md +1 -1
- package/template/.pi/skills/yss-technical-design/scripts/generate-schema.mjs +1 -1
- package/template/.pi/skills/yss-technical-design/tests/run-scenarios.mjs +4 -1
- package/template/.pi/skills/yss-up-springboot3/SKILL.md +23 -9
- package/template/.pi/skills/yss-userinfo/SKILL.md +21 -14
- package/template/.pi/skills/yss-userinfo/references/source-index.boot2-java8.md +49 -0
- package/template/.pi/skills/yss-userinfo/references/source-index.boot3-java17.md +54 -0
- package/template/.pi/skills/yss-userinfo/references/source-index.md +6 -30
- package/template/.pi/skills/yss-validation/SKILL.md +12 -17
- package/template/.pi/skills/yss-validation/references/source-index.boot2-java8.md +47 -0
- package/template/.pi/skills/yss-validation/references/source-index.boot3-java17.md +47 -0
- package/template/.pi/skills/yss-validation/references/source-index.md +6 -29
- package/template/.pi/skills/yss-web-controller/SKILL.md +4 -4
- package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
- package/template/docs/agents/backend-architecture-profiles.md +1 -1
- package/template/docs/agents/digital-human-roles.yaml +1 -1
- package/template/docs/agents/skill-migrations.md +23 -0
- package/template/docs/agents/yss-skill-registry.yaml +109 -40
- package/template/docs/api/templates/openapi-draft-review-checklist.md +1 -1
- package/template/docs/architecture/templates/engineering-baseline-review-template.md +3 -3
- package/template/docs/architecture/templates/system-overview-design-template.md +1 -1
- package/template/docs/engineering/backend-platforms.json +662 -9
- package/template/docs/engineering/backend-platforms.md +33 -7
- package/template/docs/process/schemas/backend-architecture-identity.schema.json +102 -0
- package/template/docs/process/schemas/project-scaffold-contract.schema.json +16 -4
- package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +7 -0
- package/template/docs/process/schemas/slice-implementation-contract-v3.schema.json +143 -0
- package/template/docs/process/strategic-handoff-package.md +1 -1
- package/template/docs/templates/implementation-routing-template.md +1 -1
- package/template/docs/user-guide//346/212/200/346/234/257/350/256/276/350/256/241/347/224/250/346/210/267/346/214/207/345/215/227.md +2 -2
- package/template/scripts/backend-platforms +77 -8
- package/template/scripts/lib/backend-platform.mjs +232 -5
- package/template/scripts/lib/existing-backend-architecture.mjs +3 -2
- package/template/scripts/lib/implementation-contract-compiler.mjs +93 -9
- package/template/scripts/lib/skill-registry.mjs +165 -12
- package/template/scripts/lib/slice-contract-preparation.mjs +6 -5
- package/template/scripts/verify-backend-platform-matrix +1 -1
- package/template/skills-lock.json +29 -29
- package/template.snapshot.json +5 -5
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 后端脚手架平台合同
|
|
2
2
|
|
|
3
|
-
DDD 和 Layered MVC 共同消费 `backend-platforms.json`。平台定义是候选配方,`compatibility`
|
|
3
|
+
DDD 和 Layered MVC 共同消费 `backend-platforms.json`。平台定义是候选配方,`compatibility` 是 YSS 父 POM、BOM、组件能力与证据的同一组合清单。`blocked` 条目只表达已经定位的坐标和缺口,不表示组合已获认证;没有 `verified` 条目表示尚无可开放组合,不表示官方框架不支持这些版本。
|
|
4
4
|
|
|
5
5
|
## 用户选择
|
|
6
6
|
|
|
7
|
-
运行 `scripts/backend-platforms` 展示 Boot 精确补丁、Java、YSS 父 POM/BOM
|
|
7
|
+
运行 `scripts/backend-platforms` 展示 Boot 精确补丁、Java、YSS 父 POM/BOM、逐组件状态、构件证据和阻塞原因。`scripts/backend-platforms --require-profile <profile-id>` 只校验指定 Profile 的平台基础组合;缺条目或组合阻断时输出 JSON 诊断并返回非 0。组件状态独立展示,是否可用由编译器针对实际请求的 capability 调用组件解析器判定,单个组件阻断不会降级一个已经验证的平台基础组合。新建后端在进入 DDD / MVC 分支设计前必须通过 `gate.backend-architecture-platform-approved`;生命周期编排器将平台与架构放在同一次用户决定中。缺少选择时询问;已有批准且当前的选择只展示摘要并复用。既有工程核验并复用登记的 `architecture_identity` 与固定工程基线/POM 中的实际 Spring Boot 版本,该门禁记录为 `not-applicable`,不重复询问;平台升级另行立项。独立子项目可继承或覆盖,也可一次确认明确列出的多个项目。同一 Maven Reactor 不混用平台。
|
|
8
8
|
|
|
9
9
|
候选为 2.7.18 / Java 8、3.5.16 / Java 17 或 21、4.1.1 / Java 17 或 21。3.5 和 4.1 推荐 Java 17。新增补丁必须先通过组合验证,生成合同不接受 `x`、版本范围或 `latest`。
|
|
10
10
|
|
|
@@ -18,17 +18,43 @@ Project Scaffold Contract v4 新增 `platform_configuration` v2,两个脚手
|
|
|
18
18
|
| `profile_id` | 如 `spring-boot-3.5-jdk17` |
|
|
19
19
|
| `spring_boot_version` | 精确补丁,如 `3.5.16` |
|
|
20
20
|
| `java_version` | 经选择的 `8`、`17` 或 `21` |
|
|
21
|
+
| `component_platform_line` | 组件源码与 Skill 索引平台线;只允许 `boot2-java8` 或 `boot3-java17` |
|
|
21
22
|
| `parent` / `bom` | `group_id`、`artifact_id`、`version` |
|
|
22
23
|
| `compatibility_id` | 清单组合 ID |
|
|
23
24
|
| `compatibility_digest` | `platformRecipeDigest(profile, entry)`,排除证据列表、支持状态和展示提示 |
|
|
24
25
|
|
|
25
|
-
配置可由 `platformBinding(profile, entry)`
|
|
26
|
+
配置可由 `platformBinding(profile, entry)` 机械构造;该函数把 Profile 中规范化的 `component_platform_line` 持久化到 v2 binding,并由 schema、解析器、架构身份摘要和 Slice 组件绑定摘要共同校验。组件平台线表示可消费的双平台源码索引,不承载 `maintenance`、`candidate` 或 `blocked` 生命周期;生命周期继续由 compatibility 与 capability 状态表达。当前 Boot 2 与 Boot 3 分别固定为 `boot2-java8`、`boot3-java17`。Boot 4 没有现有组件平台线,不生成可批准的 v2 `platform_configuration`,继续在选择阶段阻断。该函数不批准用户选择或开放支持。修改平台、YSS 坐标或依赖配方会使绑定失效;仅更新同配方证据不改变用户选择摘要。历史 Manifest 继续只读验证,不自动补字段或重写批准。仅继承架构不等于继承平台批准。
|
|
27
|
+
|
|
28
|
+
`resolveBackendPlatform(binding, { root })` 在未显式传入 catalog 时读取该 `root` 下的 `docs/engineering/backend-platforms.json`;未传 `root` 时读取模板仓目录。这样 Slice freshness 与隔离 fixture 使用各自的目录事实,不会意外回退到模板工作区。
|
|
29
|
+
|
|
30
|
+
## 组件能力绑定
|
|
31
|
+
|
|
32
|
+
组件能力不在 catalog 顶层建立第二套目录。它只存在于绑定组合内,以注册表 capability ID 为键:`compatibility[].component_capabilities.<capability-id>`。当前登记 11 项:`contract.dto-wire`、`contract.request-validation`、`contract.error-mapping`、`framework.mybatis`、`component.cache`、`component.current-user-context`、`component.audit-log`、`component.excel-import-export`、`component.distributed-id`、`component.security-algorithm`、`component.gateway-resilience`。Maven `artifact_id` 只出现在 `artifacts`。
|
|
33
|
+
|
|
34
|
+
每项记录 `status`、`verified_architectures`、`artifacts`、`evidence`、`blockers` 和 `component_digest`。每个构件固定字段为 `group_id`、`artifact_id`、`declared_version`、`resolved_version`、`pom_sha256`、`jar_sha256`、`source_tree`。SNAPSHOT 的声明版本与仓库实际解析版本必须分离;已验证条目的 POM/JAR 摘要使用 `sha256:<64 位小写十六进制>`,`source_tree` 使用 40 位小写 Git tree SHA。阻断条目可将尚未取得的解析版本、摘要和 tree 设为 `null`,但必须给出稳定 blocker。
|
|
35
|
+
|
|
36
|
+
Boot 3.5 / JDK 17 Profile 固定 `Spring Cloud 2025.0.3`、`Spring Cloud Alibaba 2025.0.0.0`、Jakarta Validation、Jackson 2,并要求 `META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`。同一 compatibility entry 通过 `platform_artifact_bindings.parent/bom` 保存父 POM 与组件 BOM 候选,通过 `external_snapshot_bindings` 和 `external_artifact_bindings` 区分外部 SNAPSHOT 与正式发布构件。候选未发布或未完成本地解析时,`resolved_version`、`published_at`、POM/JAR SHA、`source_tree` 保持 `null`,`evidence` 保持空数组并写明 blocker;这些字段参与平台 recipe digest,不能在批准后静默变化。
|
|
37
|
+
|
|
38
|
+
`resolveComponentCapabilities(binding, capabilityIds, architectureFamily, options?)` 先按 binding 精确找到同一 compatibility entry,再解析其中的 capability map。成功结果是可序列化 binding 数组;未登记、非 `verified`、架构不符、构件字段缺失、同坐标解析不一致、组件摘要或证据字节漂移均 fail-closed。错误前缀及稳定码为:
|
|
39
|
+
|
|
40
|
+
- `component-capability: component-unavailable-for-platform`
|
|
41
|
+
- `component-capability: component-artifact-coordinate-conflict`
|
|
42
|
+
- `component-capability: component-evidence-missing`
|
|
43
|
+
- `component-capability: component-binding-drift`
|
|
44
|
+
|
|
45
|
+
编译器在需要组件而缺少平台 binding 时使用 `component-capability: component-platform-binding-required`。平台解析和组件解析保持两个独立步骤;组件 evidence 不伪装成平台空脚手架的 Maven、启动或集成测试证据。
|
|
46
|
+
|
|
47
|
+
当前 `spring-boot-2.7-jdk8` 组合登记为 `blocked`。阿里云 Maven 私服已解析出 12 个 timestamped SNAPSHOT 及 POM/JAR SHA-256;其中 11 个构件的发布 POM 与 sources JAR 可逐字节绑定到固定 Git tree,Cache 3.x 没有发布 sources JAR,仍缺源码绑定。Exception、UserInfo、Security 和 Resilience4j 的已解析构件对应固定提交,不包含当前隔离工作树中的加固候选。所有能力仍缺 DDD 与 Layered MVC 消费应用认证,因此未写入 `verified_architectures` 或组件 evidence。
|
|
48
|
+
|
|
49
|
+
Boot 2 私服中的 Cache `3.0.0-SNAPSHOT` 使用 JDK 8 构建且 BOM 2.x 管理的是 `2.0.0-SNAPSHOT`;Distributed ID 3.x 同样是 JDK 8 / `javax` 代际。这两个坐标不能作为 Boot 3 主线证据。UserInfo 源模块继承 `com.yss.cloud`,BOM 仍登记 `com.yss.datamiddle`,坐标冲突继续阻断。Boot 3.5 候选单独绑定 Cache 与 Distributed ID `3.1.0-SNAPSHOT`,Validation 使用平台管理的 `org.springframework.boot:spring-boot-starter-validation:3.5.16`;Excel 只保留 `yss-component-excel-mvc`,已移除的 `yss-component-excel-starter` 不再登记。Fesod `2.1.0-SNAPSHOT` 在当前私服不可解析,因此 `external_snapshot_bindings` 为空;Excel 外部依赖改用 Apache 正式发布的 `org.apache.fesod:fesod-sheet:2.0.2-incubating`,并以实际 POM、二进制 JAR 与 sources JAR SHA-256 保存为不可变 `resolved` release binding。Fesod 字节绑定不替代消费认证;YSS parent/BOM、timestamped SNAPSHOT、源码绑定、`AutoConfiguration.imports` 与 DDD/Layered MVC 消费证据仍未闭合,所以 Boot 3.5 compatibility 继续 `blocked`。Boot 4.1 没有 compatibility entry;当前目录不对任何 Profile 宣称可选择。
|
|
50
|
+
|
|
51
|
+
`compatibility[].artifact_resolution_evidence` 绑定私服解析报告的相对路径和原始字节摘要。加载 catalog 时会同时核对 report ID、仓库 ID、timestamped version、POM/JAR SHA-256 与可证明的 Git tree;报告字节或任一构件绑定变化都返回 `component-binding-drift`。报告不保存 Maven 用户名、密码或令牌。用户级 `settings.xml` 只提供下载配置;其中 profile 下的 `distributionManagement` 会被 Maven 忽略,发布目标必须由发布 POM 持有。
|
|
26
52
|
|
|
27
53
|
## 依赖与验证
|
|
28
54
|
|
|
29
|
-
Boot BOM 管理 Spring Framework/MVC、嵌入式容器、Servlet、Validation、Jackson 等依赖,Boot Plugin 与 Boot 精确版本相同。YSS 父 POM/BOM 仍由用户确认,解析结果冲突则阻断,不能依靠属性覆盖宣称兼容。清单记录构建工具、Lombok、MapStruct、Swagger、ArchUnit 的候选版本;YSS 组件源码不在脚手架步骤中改造。
|
|
55
|
+
Boot BOM 管理 Spring Framework/MVC、嵌入式容器、Servlet、Validation、Jackson 等依赖,Boot Plugin 与 Boot 精确版本相同。Boot 3.5 Validation 作为 `platform-managed` capability 解析,不再要求 YSS Validation starter。YSS 父 POM/BOM 仍由用户确认,解析结果冲突则阻断,不能依靠属性覆盖宣称兼容。清单记录构建工具、Lombok、MapStruct、Swagger、ArchUnit 的候选版本;YSS 组件源码不在脚手架步骤中改造。
|
|
30
56
|
|
|
31
|
-
Boot 4 使用对应 MVC / MVC 测试 starter、Jackson 3 默认栈与新的模块结构;MyBatis-Plus 必须使用相应 Boot 分支。Web/Validation 的 Jakarta 迁移不替换 `javax.sql` 等 Java SE API。Feign 等可选能力须在兼容条目的 `capabilities` 内有验证记录。清单记录
|
|
57
|
+
Boot 4 使用对应 MVC / MVC 测试 starter、Jackson 3 默认栈与新的模块结构;MyBatis-Plus 必须使用相应 Boot 分支。Web/Validation 的 Jakarta 迁移不替换 `javax.sql` 等 Java SE API。Feign 等可选能力须在兼容条目的 `capabilities` 内有验证记录。清单记录 Boot 3.5 的 Spring Cloud `2025.0.3`、Spring Cloud Alibaba `2025.0.0.0`,以及其他候选线;实际内部 BOM 必须解析到对应组合。测试覆盖 Validation、JSON、MyBatis 查询映射和适用的 Feign JSON Decoder。
|
|
32
58
|
|
|
33
59
|
真实验证保存 Maven 实际 JDK、effective POM、每个模块的依赖树、固定三条 Wrapper 命令结果,以及显式 `scaffold-local` 打包启动结果。启动检查只绑定回环地址,通过启动日志与 HTTP 响应验证机械 Web 服务;测试内 Controller 通过随机端口覆盖 JSON POST 往返及非法参数 400,不编译进生产 Jar,并终止验证进程。H2 仅用于测试和显式本地 Profile,不绑定生产数据库。生成器不添加用户业务示例。
|
|
34
60
|
|
|
@@ -40,7 +66,7 @@ Boot 4 使用对应 MVC / MVC 测试 starter、Jackson 3 默认栈与新的模
|
|
|
40
66
|
- `java_homes`:以 `8`、`17`、`21` 为键的实际 JDK 根目录。
|
|
41
67
|
- `combinations`:每项有 `profile_id`、`spring_boot_version`、`architecture_family`、`contract_ref`,合同须真实批准、当前且指向不存在的输出目录。
|
|
42
68
|
|
|
43
|
-
兼容条目包含 `id`、`profile_id`、`spring_boot_version`、`parent`、`bom`、`status`、`capabilities` 和 `evidence`。未验证时使用 `candidate`。每条证据绑定架构、可读取报告的 `ref` 与原始字节 `digest`。报告须匹配 Boot、Java、父 POM/BOM,三条 Maven 命令真实成功,并通过依赖、Surefire 实际用例和启动检查;跳过测试不通过。报告的 `verified_capabilities` 逐架构覆盖所选能力。`evidence_artifacts` 绑定日志、effective POM、依赖树和 `platform-tests.xml` 的相对路径与字节摘要,缺失或漂移即阻断。
|
|
69
|
+
兼容条目包含 `id`、`profile_id`、`spring_boot_version`、`parent`、`bom`、`status`、`capabilities`、`component_capabilities` 和 `evidence`。未验证时使用 `candidate` 或 `blocked`。每条证据绑定架构、可读取报告的 `ref` 与原始字节 `digest`。报告须匹配 Boot、Java、父 POM/BOM,三条 Maven 命令真实成功,并通过依赖、Surefire 实际用例和启动检查;跳过测试不通过。报告的 `verified_capabilities` 逐架构覆盖所选能力。`evidence_artifacts` 绑定日志、effective POM、依赖树和 `platform-tests.xml` 的相对路径与字节摘要,缺失或漂移即阻断。
|
|
44
70
|
|
|
45
71
|
候选工程始终标记 `platform_verification=candidate`,不能进入普通验证完成升级、业务生成或首切片验证。维护者将真实证据及相关日志保存为可分发的相对路径包,审阅全部适用能力后才可把对应组合登记为 `verified`。候选晋级或替换同配方证据不改变配置摘要;真正的依赖配方变化才重新确认。矩阵命令不自动修改兼容清单、不批准合同、不发布版本。
|
|
46
72
|
|
|
@@ -72,6 +98,6 @@ Boot 4 使用对应 MVC / MVC 测试 starter、Jackson 3 默认栈与新的模
|
|
|
72
98
|
|
|
73
99
|
空脚手架验证的证据目录必须位于生成工程外部,避免证据文件被误认为新增源码。首切片验证在批准的切片合同通过既有门禁后复用构建检查,但记录 `verification_scope=first-slice`;其证据不能用于开放平台组合,也不要求业务代码保持空脚手架摘要。
|
|
74
100
|
|
|
75
|
-
|
|
101
|
+
通用运行时依赖仍由真实依赖树和 Boot BOM 核验。YSS 组件能力的精确构件绑定只读取同一兼容条目内的 `component_capabilities`,不得再从 catalog 顶层列表或平行 `components` 目录推断。
|
|
76
102
|
|
|
77
103
|
Jar 核验拒绝未登记或版本不符的额外库;仅允许 Boot 对应版本的 jarmode 工具以及已选配方中的 provided Lombok 随包出现。原因是 [Boot repackage 默认包含 provided 依赖](https://docs.spring.io/spring-boot/maven-plugin/packaging.html);这些打包例外不能补足必须存在于 compile/runtime 树的 Web、Servlet、JSON 等能力。
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"profile_id",
|
|
69
69
|
"spring_boot_version",
|
|
70
70
|
"java_version",
|
|
71
|
+
"component_platform_line",
|
|
71
72
|
"parent",
|
|
72
73
|
"bom",
|
|
73
74
|
"compatibility_id",
|
|
@@ -95,6 +96,12 @@
|
|
|
95
96
|
21
|
|
96
97
|
]
|
|
97
98
|
},
|
|
99
|
+
"component_platform_line": {
|
|
100
|
+
"enum": [
|
|
101
|
+
"boot2-java8",
|
|
102
|
+
"boot3-java17"
|
|
103
|
+
]
|
|
104
|
+
},
|
|
98
105
|
"compatibility_id": {
|
|
99
106
|
"type": "string",
|
|
100
107
|
"minLength": 1
|
|
@@ -200,6 +207,101 @@
|
|
|
200
207
|
"build_units_digest": {
|
|
201
208
|
"type": "string",
|
|
202
209
|
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
210
|
+
},
|
|
211
|
+
"platform_configuration": {
|
|
212
|
+
"type": "object",
|
|
213
|
+
"additionalProperties": false,
|
|
214
|
+
"required": [
|
|
215
|
+
"schema_version",
|
|
216
|
+
"profile_id",
|
|
217
|
+
"spring_boot_version",
|
|
218
|
+
"java_version",
|
|
219
|
+
"component_platform_line",
|
|
220
|
+
"parent",
|
|
221
|
+
"bom",
|
|
222
|
+
"compatibility_id",
|
|
223
|
+
"compatibility_digest"
|
|
224
|
+
],
|
|
225
|
+
"properties": {
|
|
226
|
+
"schema_version": {
|
|
227
|
+
"const": 2
|
|
228
|
+
},
|
|
229
|
+
"profile_id": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"minLength": 1
|
|
232
|
+
},
|
|
233
|
+
"spring_boot_version": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
236
|
+
},
|
|
237
|
+
"java_version": {
|
|
238
|
+
"enum": [
|
|
239
|
+
8,
|
|
240
|
+
17,
|
|
241
|
+
21
|
|
242
|
+
]
|
|
243
|
+
},
|
|
244
|
+
"component_platform_line": {
|
|
245
|
+
"enum": [
|
|
246
|
+
"boot2-java8",
|
|
247
|
+
"boot3-java17"
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
"compatibility_id": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"minLength": 1
|
|
253
|
+
},
|
|
254
|
+
"compatibility_digest": {
|
|
255
|
+
"type": "string",
|
|
256
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
257
|
+
},
|
|
258
|
+
"parent": {
|
|
259
|
+
"type": "object",
|
|
260
|
+
"additionalProperties": false,
|
|
261
|
+
"required": [
|
|
262
|
+
"group_id",
|
|
263
|
+
"artifact_id",
|
|
264
|
+
"version"
|
|
265
|
+
],
|
|
266
|
+
"properties": {
|
|
267
|
+
"group_id": {
|
|
268
|
+
"type": "string",
|
|
269
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
270
|
+
},
|
|
271
|
+
"artifact_id": {
|
|
272
|
+
"type": "string",
|
|
273
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
274
|
+
},
|
|
275
|
+
"version": {
|
|
276
|
+
"type": "string",
|
|
277
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"bom": {
|
|
282
|
+
"type": "object",
|
|
283
|
+
"additionalProperties": false,
|
|
284
|
+
"required": [
|
|
285
|
+
"group_id",
|
|
286
|
+
"artifact_id",
|
|
287
|
+
"version"
|
|
288
|
+
],
|
|
289
|
+
"properties": {
|
|
290
|
+
"group_id": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
293
|
+
},
|
|
294
|
+
"artifact_id": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
297
|
+
},
|
|
298
|
+
"version": {
|
|
299
|
+
"type": "string",
|
|
300
|
+
"pattern": "^[A-Za-z0-9_.-]+$"
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
203
305
|
}
|
|
204
306
|
}
|
|
205
307
|
}
|
|
@@ -88,7 +88,6 @@
|
|
|
88
88
|
"enum": [
|
|
89
89
|
"yss-ddd-scaffold-generator",
|
|
90
90
|
"yss-layered-mvc-scaffold-generator",
|
|
91
|
-
"yss-mvc-data-analysis-project-initializer",
|
|
92
91
|
"yss-frontend-scaffold-generator"
|
|
93
92
|
]
|
|
94
93
|
},
|
|
@@ -468,6 +467,7 @@
|
|
|
468
467
|
"profile_id",
|
|
469
468
|
"spring_boot_version",
|
|
470
469
|
"java_version",
|
|
470
|
+
"component_platform_line",
|
|
471
471
|
"parent",
|
|
472
472
|
"bom",
|
|
473
473
|
"compatibility_id",
|
|
@@ -495,6 +495,12 @@
|
|
|
495
495
|
21
|
|
496
496
|
]
|
|
497
497
|
},
|
|
498
|
+
"component_platform_line": {
|
|
499
|
+
"enum": [
|
|
500
|
+
"boot2-java8",
|
|
501
|
+
"boot3-java17"
|
|
502
|
+
]
|
|
503
|
+
},
|
|
498
504
|
"compatibility_id": {
|
|
499
505
|
"type": "string",
|
|
500
506
|
"minLength": 1
|
|
@@ -607,12 +613,12 @@
|
|
|
607
613
|
{
|
|
608
614
|
"if": {
|
|
609
615
|
"properties": {
|
|
610
|
-
"
|
|
611
|
-
"const": "
|
|
616
|
+
"architecture_profile": {
|
|
617
|
+
"const": "mvc-data-analysis-v1"
|
|
612
618
|
}
|
|
613
619
|
},
|
|
614
620
|
"required": [
|
|
615
|
-
"
|
|
621
|
+
"architecture_profile"
|
|
616
622
|
]
|
|
617
623
|
},
|
|
618
624
|
"then": {
|
|
@@ -626,6 +632,12 @@
|
|
|
626
632
|
},
|
|
627
633
|
"architecture_family": {
|
|
628
634
|
"const": "layered-mvc"
|
|
635
|
+
},
|
|
636
|
+
"generator_skill": {
|
|
637
|
+
"const": "yss-layered-mvc-scaffold-generator"
|
|
638
|
+
},
|
|
639
|
+
"init_git": {
|
|
640
|
+
"const": true
|
|
629
641
|
}
|
|
630
642
|
}
|
|
631
643
|
}
|
|
@@ -263,6 +263,7 @@
|
|
|
263
263
|
"profile_id",
|
|
264
264
|
"spring_boot_version",
|
|
265
265
|
"java_version",
|
|
266
|
+
"component_platform_line",
|
|
266
267
|
"parent",
|
|
267
268
|
"bom",
|
|
268
269
|
"compatibility_id",
|
|
@@ -290,6 +291,12 @@
|
|
|
290
291
|
21
|
|
291
292
|
]
|
|
292
293
|
},
|
|
294
|
+
"component_platform_line": {
|
|
295
|
+
"enum": [
|
|
296
|
+
"boot2-java8",
|
|
297
|
+
"boot3-java17"
|
|
298
|
+
]
|
|
299
|
+
},
|
|
293
300
|
"compatibility_id": {
|
|
294
301
|
"type": "string",
|
|
295
302
|
"minLength": 1
|
|
@@ -331,6 +331,149 @@
|
|
|
331
331
|
},
|
|
332
332
|
"architecture_identity": {
|
|
333
333
|
"type": "object"
|
|
334
|
+
},
|
|
335
|
+
"component_bindings": {
|
|
336
|
+
"type": "array",
|
|
337
|
+
"minItems": 1,
|
|
338
|
+
"items": {
|
|
339
|
+
"type": "object",
|
|
340
|
+
"additionalProperties": false,
|
|
341
|
+
"properties": {
|
|
342
|
+
"capability_id": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"minLength": 1
|
|
345
|
+
},
|
|
346
|
+
"status": {
|
|
347
|
+
"const": "verified"
|
|
348
|
+
},
|
|
349
|
+
"verified_architectures": {
|
|
350
|
+
"type": "array",
|
|
351
|
+
"minItems": 1,
|
|
352
|
+
"uniqueItems": true,
|
|
353
|
+
"items": {
|
|
354
|
+
"enum": [
|
|
355
|
+
"domain-driven",
|
|
356
|
+
"layered-mvc"
|
|
357
|
+
]
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"artifacts": {
|
|
361
|
+
"type": "array",
|
|
362
|
+
"minItems": 1,
|
|
363
|
+
"items": {
|
|
364
|
+
"type": "object",
|
|
365
|
+
"additionalProperties": false,
|
|
366
|
+
"properties": {
|
|
367
|
+
"group_id": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"minLength": 1
|
|
370
|
+
},
|
|
371
|
+
"artifact_id": {
|
|
372
|
+
"type": "string",
|
|
373
|
+
"minLength": 1
|
|
374
|
+
},
|
|
375
|
+
"declared_version": {
|
|
376
|
+
"type": "string",
|
|
377
|
+
"minLength": 1
|
|
378
|
+
},
|
|
379
|
+
"resolved_version": {
|
|
380
|
+
"type": "string",
|
|
381
|
+
"minLength": 1
|
|
382
|
+
},
|
|
383
|
+
"pom_sha256": {
|
|
384
|
+
"type": "string",
|
|
385
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
386
|
+
},
|
|
387
|
+
"jar_sha256": {
|
|
388
|
+
"type": "string",
|
|
389
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
390
|
+
},
|
|
391
|
+
"source_tree": {
|
|
392
|
+
"type": "string",
|
|
393
|
+
"pattern": "^[a-f0-9]{40}$"
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"required": [
|
|
397
|
+
"group_id",
|
|
398
|
+
"artifact_id",
|
|
399
|
+
"declared_version",
|
|
400
|
+
"resolved_version",
|
|
401
|
+
"pom_sha256",
|
|
402
|
+
"jar_sha256",
|
|
403
|
+
"source_tree"
|
|
404
|
+
]
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
"evidence": {
|
|
408
|
+
"type": "array",
|
|
409
|
+
"minItems": 1,
|
|
410
|
+
"items": {
|
|
411
|
+
"type": "object",
|
|
412
|
+
"additionalProperties": false,
|
|
413
|
+
"properties": {
|
|
414
|
+
"architecture_family": {
|
|
415
|
+
"enum": [
|
|
416
|
+
"domain-driven",
|
|
417
|
+
"layered-mvc"
|
|
418
|
+
]
|
|
419
|
+
},
|
|
420
|
+
"ref": {
|
|
421
|
+
"type": "string",
|
|
422
|
+
"minLength": 1
|
|
423
|
+
},
|
|
424
|
+
"digest": {
|
|
425
|
+
"type": "string",
|
|
426
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
"required": [
|
|
430
|
+
"architecture_family",
|
|
431
|
+
"ref",
|
|
432
|
+
"digest"
|
|
433
|
+
]
|
|
434
|
+
}
|
|
435
|
+
},
|
|
436
|
+
"component_digest": {
|
|
437
|
+
"type": "string",
|
|
438
|
+
"pattern": "^sha256:[a-f0-9]{64}$"
|
|
439
|
+
},
|
|
440
|
+
"architecture_family": {
|
|
441
|
+
"enum": [
|
|
442
|
+
"domain-driven",
|
|
443
|
+
"layered-mvc"
|
|
444
|
+
]
|
|
445
|
+
},
|
|
446
|
+
"platform_configuration": {
|
|
447
|
+
"type": "object",
|
|
448
|
+
"minProperties": 1,
|
|
449
|
+
"required": [
|
|
450
|
+
"component_platform_line"
|
|
451
|
+
],
|
|
452
|
+
"properties": {
|
|
453
|
+
"component_platform_line": {
|
|
454
|
+
"enum": [
|
|
455
|
+
"boot2-java8",
|
|
456
|
+
"boot3-java17"
|
|
457
|
+
]
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"required": [
|
|
463
|
+
"capability_id",
|
|
464
|
+
"status",
|
|
465
|
+
"verified_architectures",
|
|
466
|
+
"artifacts",
|
|
467
|
+
"evidence",
|
|
468
|
+
"component_digest",
|
|
469
|
+
"architecture_family",
|
|
470
|
+
"platform_configuration"
|
|
471
|
+
]
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
"component_bindings_digest": {
|
|
475
|
+
"type": "string",
|
|
476
|
+
"pattern": "^[a-f0-9]{64}$"
|
|
334
477
|
}
|
|
335
478
|
},
|
|
336
479
|
"required": [
|
|
@@ -78,7 +78,7 @@ scripts/verify-strategic-handoff-consumption --root <研发项目根> --slice <
|
|
|
78
78
|
node .agents/skills/yss-technical-design/scripts/validate-technical-design.mjs <技术设计合同> --root <研发项目根>
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
Handoff v4/v5 后端消费必须绑定 `backend-technical-design` 的 `route_id`,先对账,再由 `yss-technical-design`
|
|
81
|
+
Handoff v4/v5 后端消费必须绑定 `backend-technical-design` 的 `route_id`,先对账,再由 `yss-technical-design` 依据已批准架构进入自身 `layered-mvc` 分支或调用 `yss-tactical-design`。Handoff v3/v4 仅作历史只读兼容,不修改已冻结包。`tactical_refs` 在 v2 Technical Design 可指向 MVC 或 DDD 分支对象;无战略交接包的 MVC 项目直接消费批准需求,不补造战略 DDD。
|
|
82
82
|
|
|
83
83
|
前端先验证与交接版本匹配的 Strategic Preflight:Handoff v4 使用 v1,Handoff v5 使用 v2 的 `ui_baseline_kind/ui_baseline_ref`,只允许起草前端工程设计与实现计划,固定返回 `ready_for_agent: false`。最终 Frontend Delivery Acceptance v2(Handoff v4)或 v3(Handoff v5)在 Backend/API/Data 有影响时必须绑定真实 Backend Delivery 收据与版本探测;UI-only 时使用与战略路由一致的 `backend-not-applicable`,此时 `operation_ids` 必须为空。无论哪条路径,当前且已批准的 Slice Contract 仍是实现入口。
|
|
84
84
|
|
|
@@ -253,7 +253,7 @@ owner: ai
|
|
|
253
253
|
| 生成选项 | 关闭 `--with-example`;生成器严格 initialize-only,非空目录、`--force`、旧项目迁移和当前模板升级均为 `unsupported` |
|
|
254
254
|
| Profile | DDD:`target-domain-model`;MVC:`layered-mvc-service`;Spring Boot / Java 使用用户确认且兼容清单验证通过的精确组合,不使用版本范围或 `latest` |
|
|
255
255
|
| 验证 | 使用一键生成验证入口,实际执行项目根目录 `./mvnw validate`、`./mvnw test`、`./mvnw package`;通过后仅为 `empty-scaffold-verified`,golden first slice 通过后才是 `first-slice-verified` |
|
|
256
|
-
| 后置 |
|
|
256
|
+
| 后置 | 生成器内部工程基线校验、`yss-implementation-contract-compiler` 业务合同重编译、YSS Skill Execution Result |
|
|
257
257
|
|
|
258
258
|
所有后续生成代码必须绑定当前批准且版本一致的 Slice Implementation Contract、主 YSS skill、依赖闭包、允许写路径、预期证据和 Execution Result。业务行为必须使用 `behavior-tdd`;缺任一条件即阻断,不得以脚手架成功或时间压力豁免。
|
|
259
259
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 技术设计用户指南
|
|
2
2
|
|
|
3
|
-
本指南说明批准战略或 Spec 如何进入后端技术设计。统一入口是 `yss-technical-design`;工程采用 `domain-driven` 时调用 `yss-tactical-design`,采用 `layered-mvc`
|
|
3
|
+
本指南说明批准战略或 Spec 如何进入后端技术设计。统一入口是 `yss-technical-design`;工程采用 `domain-driven` 时调用 `yss-tactical-design`,采用 `layered-mvc` 时使用统一入口内的 MVC 分支。架构类型来自当前工程登记或经用户确认的脚手架决定,不能按目录或个人偏好猜测。
|
|
4
4
|
|
|
5
5
|
## 开始前检查
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
```text
|
|
10
10
|
请读取当前批准战略或 Spec、根 CONTEXT.md 和工程登记。
|
|
11
11
|
核对架构身份与既有工程证据,再用 yss-technical-design 起草当前技术设计。
|
|
12
|
-
domain-driven 使用 yss-tactical-design;layered-mvc 使用 yss-
|
|
12
|
+
domain-driven 使用 yss-tactical-design;layered-mvc 使用 yss-technical-design 的 MVC 分支。
|
|
13
13
|
说明状态、事务、并发、幂等、持久化和公开测试 seam,并逐项映射源规则与关键场景。
|
|
14
14
|
列出冲突、延期、依赖和需要的批准;不要提前实现代码。
|
|
15
15
|
```
|
|
@@ -1,14 +1,83 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { loadBackendPlatforms, platformBinding, resolveBackendPlatform } from "./lib/backend-platform.mjs";
|
|
3
|
+
|
|
4
|
+
function parseArgs(argv) {
|
|
5
|
+
const result = { requireVerified: false, requireProfile: null };
|
|
6
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
7
|
+
const arg = argv[index];
|
|
8
|
+
if (arg === "--require-verified") result.requireVerified = true;
|
|
9
|
+
else if (arg === "--require-profile") {
|
|
10
|
+
const value = argv[++index];
|
|
11
|
+
if (!value || value.startsWith("--")) throw new TypeError("--require-profile requires a profile id");
|
|
12
|
+
result.requireProfile = value;
|
|
13
|
+
} else if (arg.startsWith("--require-profile=")) {
|
|
14
|
+
result.requireProfile = arg.slice("--require-profile=".length);
|
|
15
|
+
if (!result.requireProfile) throw new TypeError("--require-profile requires a profile id");
|
|
16
|
+
} else throw new TypeError(`unknown argument: ${arg}`);
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function componentView(entry) {
|
|
22
|
+
return Object.fromEntries(Object.entries(entry.component_capabilities ?? {}).map(([capabilityId, item]) => [capabilityId, {
|
|
23
|
+
status: item.status,
|
|
24
|
+
provider_kind: item.provider_kind ?? "yss-component",
|
|
25
|
+
lifecycle: item.lifecycle ?? "active",
|
|
26
|
+
adoption_policy: item.adoption_policy ?? "allowed",
|
|
27
|
+
platform_line: item.platform_line ?? null,
|
|
28
|
+
replacement_gav: item.replacement_gav ?? null,
|
|
29
|
+
verified_architectures: item.verified_architectures,
|
|
30
|
+
artifacts: item.artifacts,
|
|
31
|
+
evidence: item.evidence,
|
|
32
|
+
blockers: item.blockers,
|
|
33
|
+
component_digest: item.component_digest
|
|
34
|
+
}]));
|
|
35
|
+
}
|
|
36
|
+
|
|
3
37
|
try {
|
|
38
|
+
const args = parseArgs(process.argv.slice(2));
|
|
4
39
|
const catalog = loadBackendPlatforms();
|
|
5
40
|
const rows = catalog.profiles.map(profile => {
|
|
6
|
-
const combinations = catalog.compatibility
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
41
|
+
const combinations = catalog.compatibility
|
|
42
|
+
.filter(entry => entry.profile_id === profile.id && entry.spring_boot_version === profile.spring_boot_version)
|
|
43
|
+
.map(entry => {
|
|
44
|
+
let platformReason = null;
|
|
45
|
+
try { resolveBackendPlatform(platformBinding(profile, entry)); }
|
|
46
|
+
catch (error) { platformReason = error.message; }
|
|
47
|
+
const componentCapabilities = componentView(entry);
|
|
48
|
+
const componentValues = Object.values(componentCapabilities);
|
|
49
|
+
return {
|
|
50
|
+
id: entry.id,
|
|
51
|
+
status: platformReason ? "blocked" : "verified",
|
|
52
|
+
parent: entry.parent,
|
|
53
|
+
bom: entry.bom,
|
|
54
|
+
architectures: [...new Set(componentValues.flatMap(item => item.verified_architectures))],
|
|
55
|
+
capabilities: entry.capabilities ?? [],
|
|
56
|
+
platform_artifact_bindings: entry.platform_artifact_bindings ?? {},
|
|
57
|
+
external_snapshot_bindings: entry.external_snapshot_bindings ?? [],
|
|
58
|
+
external_artifact_bindings: entry.external_artifact_bindings ?? [],
|
|
59
|
+
component_capabilities: componentCapabilities,
|
|
60
|
+
component_status: {
|
|
61
|
+
verified: componentValues.filter(item => item.status === "verified").length,
|
|
62
|
+
blocked: componentValues.filter(item => item.status !== "verified").length
|
|
63
|
+
},
|
|
64
|
+
blockers: platformReason ? [platformReason] : []
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
const selectable = combinations.some(entry => entry.status === "verified");
|
|
68
|
+
const blockers = selectable ? [] : [...new Set([...profile.candidate_blockers, ...combinations.flatMap(item => item.blockers)])];
|
|
69
|
+
return { profile_id: profile.id, spring_boot_version: profile.spring_boot_version, java_version: profile.java_version, component_platform_line: profile.component_platform_line ?? null, recommended_java: profile.java_version === 8 || profile.java_version === 17, selectable, combinations, blockers };
|
|
11
70
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
71
|
+
const matches = args.requireProfile ? rows.filter(row => row.profile_id === args.requireProfile) : [];
|
|
72
|
+
const requiredProfile = !args.requireProfile ? null : matches.length === 1 ? matches[0] : {
|
|
73
|
+
profile_id: args.requireProfile,
|
|
74
|
+
selectable: false,
|
|
75
|
+
combinations: [],
|
|
76
|
+
blockers: [matches.length ? "backend-platform: multiple patches require an exact catalog selection" : `backend-platform: unsupported platform_profile: ${args.requireProfile}`]
|
|
77
|
+
};
|
|
78
|
+
process.stdout.write(`${JSON.stringify({ schema_version: 2, requested_profile: args.requireProfile, required_profile: requiredProfile, profiles: rows }, null, 2)}\n`);
|
|
79
|
+
if ((args.requireVerified && rows.some(row => !row.selectable)) || (requiredProfile && !requiredProfile.selectable)) process.exitCode = 1;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
process.stderr.write(`${error.message}\n`);
|
|
82
|
+
process.exitCode = 1;
|
|
83
|
+
}
|