create-yss-spec 3.4.1 → 3.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -2
  3. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  4. package/template/.agents/skills/archify/SKILL.md +1 -1
  5. package/template/.agents/skills/code-review/SKILL.md +12 -8
  6. package/template/.agents/skills/file-export-download/SKILL.md +1 -1
  7. package/template/.agents/skills/frontend-commit/SKILL.md +1 -1
  8. package/template/.agents/skills/java-backend-commit/SKILL.md +1 -1
  9. package/template/.agents/skills/llm-wiki/SKILL.md +1 -6
  10. package/template/.agents/skills/lombok/SKILL.md +10 -336
  11. package/template/.agents/skills/lombok/references/annotation-examples.md +307 -0
  12. package/template/.agents/skills/maintaining-skills/SKILL.md +2 -1
  13. package/template/.agents/skills/maintaining-skills/references/authoring.md +27 -0
  14. package/template/.agents/skills/mapstruct/SKILL.md +11 -318
  15. package/template/.agents/skills/mapstruct/references/annotation-examples.md +300 -0
  16. package/template/.agents/skills/page-form-module/SKILL.md +1 -1
  17. package/template/.agents/skills/page-skeleton/SKILL.md +1 -1
  18. package/template/.agents/skills/theme-token-usage/SKILL.md +1 -1
  19. package/template/.agents/skills/to-tickets/SKILL.md +1 -1
  20. package/template/.agents/skills/using-git-worktrees/SKILL.md +1 -1
  21. package/template/.agents/skills/wayfinder/SKILL.md +1 -1
  22. package/template/.agents/skills/yedit-table-usage/SKILL.md +1 -1
  23. package/template/.agents/skills/yss-api-integration/SKILL.md +1 -1
  24. package/template/.agents/skills/yss-audit-log/SKILL.md +1 -1
  25. package/template/.agents/skills/yss-cache/SKILL.md +1 -1
  26. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +15 -2
  27. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
  28. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
  29. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
  30. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
  31. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
  32. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
  33. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
  34. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  35. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
  36. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
  37. package/template/.agents/skills/yss-distributed-id/SKILL.md +1 -1
  38. package/template/.agents/skills/yss-dto/SKILL.md +5 -1
  39. package/template/.agents/skills/yss-excel-mvc/SKILL.md +1 -1
  40. package/template/.agents/skills/yss-exception/SKILL.md +5 -1
  41. package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +1 -1
  42. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +13 -5
  43. package/template/.agents/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
  44. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
  45. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
  46. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
  47. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
  48. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
  49. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
  50. package/template/.agents/skills/yss-mybatis/SKILL.md +4 -0
  51. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +1 -1
  52. package/template/.agents/skills/yss-openapi-governance/SKILL.md +1 -1
  53. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +4 -4
  54. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +7 -2
  55. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +4 -0
  56. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -0
  57. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +23 -3
  58. package/template/.agents/skills/yss-prototype-stage/SKILL.md +1 -1
  59. package/template/.agents/skills/yss-repository/SKILL.md +4 -0
  60. package/template/.agents/skills/yss-research/SKILL.md +1 -1
  61. package/template/.agents/skills/yss-resilience4j/SKILL.md +1 -1
  62. package/template/.agents/skills/yss-security-algorithm/SKILL.md +1 -1
  63. package/template/.agents/skills/yss-tactical-design/SKILL.md +4 -0
  64. package/template/.agents/skills/yss-technical-design/SKILL.md +4 -0
  65. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
  66. package/template/.agents/skills/yss-ui/SKILL.md +1 -1
  67. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  68. package/template/.agents/skills/yss-up-springboot3/SKILL.md +1 -1
  69. package/template/.agents/skills/yss-use-table-height/SKILL.md +1 -1
  70. package/template/.agents/skills/yss-use-tree-height/SKILL.md +1 -1
  71. package/template/.agents/skills/yss-userinfo/SKILL.md +1 -1
  72. package/template/.agents/skills/yss-validation/SKILL.md +5 -1
  73. package/template/.agents/skills/yss-web-controller/SKILL.md +5 -1
  74. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
  75. package/template/.agents/skills/ytable-usage/SKILL.md +1 -1
  76. package/template/.agents/skills/ytree-usage/SKILL.md +1 -1
  77. package/template/.codex/skills/archify/SKILL.md +1 -1
  78. package/template/.codex/skills/code-review/SKILL.md +12 -8
  79. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +1 -1
  80. package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +1 -1
  81. package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +1 -1
  82. package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +1 -1
  83. package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +1 -1
  84. package/template/.codex/skills/data-analytics/skills/index/SKILL.md +1 -1
  85. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +1 -1
  86. package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +1 -1
  87. package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +1 -1
  88. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +1 -1
  89. package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +1 -1
  90. package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +1 -1
  91. package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +1 -1
  92. package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +1 -1
  93. package/template/.codex/skills/file-export-download/SKILL.md +1 -1
  94. package/template/.codex/skills/frontend-commit/SKILL.md +1 -1
  95. package/template/.codex/skills/java-backend-commit/SKILL.md +1 -1
  96. package/template/.codex/skills/llm-wiki/SKILL.md +1 -6
  97. package/template/.codex/skills/lombok/SKILL.md +10 -336
  98. package/template/.codex/skills/lombok/references/annotation-examples.md +307 -0
  99. package/template/.codex/skills/maintaining-skills/SKILL.md +2 -1
  100. package/template/.codex/skills/maintaining-skills/references/authoring.md +27 -0
  101. package/template/.codex/skills/mapstruct/SKILL.md +11 -318
  102. package/template/.codex/skills/mapstruct/references/annotation-examples.md +300 -0
  103. package/template/.codex/skills/page-form-module/SKILL.md +1 -1
  104. package/template/.codex/skills/page-skeleton/SKILL.md +1 -1
  105. package/template/.codex/skills/product-design/skills/audit/SKILL.md +1 -1
  106. package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +1 -1
  107. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +1 -1
  108. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +1 -1
  109. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +1 -1
  110. package/template/.codex/skills/product-design/skills/index/SKILL.md +1 -1
  111. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +1 -1
  112. package/template/.codex/skills/product-design/skills/research/SKILL.md +1 -1
  113. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
  114. package/template/.codex/skills/theme-token-usage/SKILL.md +1 -1
  115. package/template/.codex/skills/to-tickets/SKILL.md +1 -1
  116. package/template/.codex/skills/using-git-worktrees/SKILL.md +1 -1
  117. package/template/.codex/skills/wayfinder/SKILL.md +1 -1
  118. package/template/.codex/skills/yedit-table-usage/SKILL.md +1 -1
  119. package/template/.codex/skills/yss-api-integration/SKILL.md +1 -1
  120. package/template/.codex/skills/yss-audit-log/SKILL.md +1 -1
  121. package/template/.codex/skills/yss-cache/SKILL.md +1 -1
  122. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +15 -2
  123. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
  124. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
  125. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
  126. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
  127. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
  128. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
  129. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
  130. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  131. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
  132. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
  133. package/template/.codex/skills/yss-distributed-id/SKILL.md +1 -1
  134. package/template/.codex/skills/yss-dto/SKILL.md +5 -1
  135. package/template/.codex/skills/yss-excel-mvc/SKILL.md +1 -1
  136. package/template/.codex/skills/yss-exception/SKILL.md +5 -1
  137. package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +1 -1
  138. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +13 -5
  139. package/template/.codex/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
  140. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
  141. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
  142. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
  143. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
  144. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
  145. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
  146. package/template/.codex/skills/yss-mybatis/SKILL.md +4 -0
  147. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +1 -1
  148. package/template/.codex/skills/yss-openapi-governance/SKILL.md +1 -1
  149. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +4 -4
  150. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +7 -2
  151. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +4 -0
  152. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -0
  153. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +23 -3
  154. package/template/.codex/skills/yss-prototype-stage/SKILL.md +1 -1
  155. package/template/.codex/skills/yss-repository/SKILL.md +4 -0
  156. package/template/.codex/skills/yss-research/SKILL.md +1 -1
  157. package/template/.codex/skills/yss-resilience4j/SKILL.md +1 -1
  158. package/template/.codex/skills/yss-security-algorithm/SKILL.md +1 -1
  159. package/template/.codex/skills/yss-tactical-design/SKILL.md +4 -0
  160. package/template/.codex/skills/yss-technical-design/SKILL.md +4 -0
  161. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
  162. package/template/.codex/skills/yss-ui/SKILL.md +1 -1
  163. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  164. package/template/.codex/skills/yss-up-springboot3/SKILL.md +1 -1
  165. package/template/.codex/skills/yss-use-table-height/SKILL.md +1 -1
  166. package/template/.codex/skills/yss-use-tree-height/SKILL.md +1 -1
  167. package/template/.codex/skills/yss-userinfo/SKILL.md +1 -1
  168. package/template/.codex/skills/yss-validation/SKILL.md +5 -1
  169. package/template/.codex/skills/yss-web-controller/SKILL.md +5 -1
  170. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
  171. package/template/.codex/skills/ytable-usage/SKILL.md +1 -1
  172. package/template/.codex/skills/ytree-usage/SKILL.md +1 -1
  173. package/template/.cursor/skills/archify/SKILL.md +1 -1
  174. package/template/.cursor/skills/code-review/SKILL.md +12 -8
  175. package/template/.cursor/skills/file-export-download/SKILL.md +1 -1
  176. package/template/.cursor/skills/frontend-commit/SKILL.md +1 -1
  177. package/template/.cursor/skills/java-backend-commit/SKILL.md +1 -1
  178. package/template/.cursor/skills/llm-wiki/SKILL.md +1 -6
  179. package/template/.cursor/skills/lombok/SKILL.md +10 -336
  180. package/template/.cursor/skills/lombok/references/annotation-examples.md +307 -0
  181. package/template/.cursor/skills/maintaining-skills/SKILL.md +2 -1
  182. package/template/.cursor/skills/maintaining-skills/references/authoring.md +27 -0
  183. package/template/.cursor/skills/mapstruct/SKILL.md +11 -318
  184. package/template/.cursor/skills/mapstruct/references/annotation-examples.md +300 -0
  185. package/template/.cursor/skills/page-form-module/SKILL.md +1 -1
  186. package/template/.cursor/skills/page-skeleton/SKILL.md +1 -1
  187. package/template/.cursor/skills/theme-token-usage/SKILL.md +1 -1
  188. package/template/.cursor/skills/to-tickets/SKILL.md +1 -1
  189. package/template/.cursor/skills/using-git-worktrees/SKILL.md +1 -1
  190. package/template/.cursor/skills/wayfinder/SKILL.md +1 -1
  191. package/template/.cursor/skills/yedit-table-usage/SKILL.md +1 -1
  192. package/template/.cursor/skills/yss-api-integration/SKILL.md +1 -1
  193. package/template/.cursor/skills/yss-audit-log/SKILL.md +1 -1
  194. package/template/.cursor/skills/yss-cache/SKILL.md +1 -1
  195. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +15 -2
  196. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
  197. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
  198. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
  199. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
  200. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
  201. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
  202. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
  203. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  204. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
  205. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
  206. package/template/.cursor/skills/yss-distributed-id/SKILL.md +1 -1
  207. package/template/.cursor/skills/yss-dto/SKILL.md +5 -1
  208. package/template/.cursor/skills/yss-excel-mvc/SKILL.md +1 -1
  209. package/template/.cursor/skills/yss-exception/SKILL.md +5 -1
  210. package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +1 -1
  211. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +13 -5
  212. package/template/.cursor/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
  213. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
  214. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
  215. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
  216. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
  217. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
  218. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
  219. package/template/.cursor/skills/yss-mybatis/SKILL.md +4 -0
  220. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +1 -1
  221. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +1 -1
  222. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +4 -4
  223. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +7 -2
  224. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +4 -0
  225. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +2 -0
  226. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +23 -3
  227. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +1 -1
  228. package/template/.cursor/skills/yss-repository/SKILL.md +4 -0
  229. package/template/.cursor/skills/yss-research/SKILL.md +1 -1
  230. package/template/.cursor/skills/yss-resilience4j/SKILL.md +1 -1
  231. package/template/.cursor/skills/yss-security-algorithm/SKILL.md +1 -1
  232. package/template/.cursor/skills/yss-tactical-design/SKILL.md +4 -0
  233. package/template/.cursor/skills/yss-technical-design/SKILL.md +4 -0
  234. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
  235. package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
  236. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  237. package/template/.cursor/skills/yss-up-springboot3/SKILL.md +1 -1
  238. package/template/.cursor/skills/yss-use-table-height/SKILL.md +1 -1
  239. package/template/.cursor/skills/yss-use-tree-height/SKILL.md +1 -1
  240. package/template/.cursor/skills/yss-userinfo/SKILL.md +1 -1
  241. package/template/.cursor/skills/yss-validation/SKILL.md +5 -1
  242. package/template/.cursor/skills/yss-web-controller/SKILL.md +5 -1
  243. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
  244. package/template/.cursor/skills/ytable-usage/SKILL.md +1 -1
  245. package/template/.cursor/skills/ytree-usage/SKILL.md +1 -1
  246. package/template/.pi/skills/archify/SKILL.md +1 -1
  247. package/template/.pi/skills/code-review/SKILL.md +12 -8
  248. package/template/.pi/skills/file-export-download/SKILL.md +1 -1
  249. package/template/.pi/skills/frontend-commit/SKILL.md +1 -1
  250. package/template/.pi/skills/java-backend-commit/SKILL.md +1 -1
  251. package/template/.pi/skills/llm-wiki/SKILL.md +1 -6
  252. package/template/.pi/skills/lombok/SKILL.md +10 -336
  253. package/template/.pi/skills/lombok/references/annotation-examples.md +307 -0
  254. package/template/.pi/skills/maintaining-skills/SKILL.md +2 -1
  255. package/template/.pi/skills/maintaining-skills/references/authoring.md +27 -0
  256. package/template/.pi/skills/mapstruct/SKILL.md +11 -318
  257. package/template/.pi/skills/mapstruct/references/annotation-examples.md +300 -0
  258. package/template/.pi/skills/page-form-module/SKILL.md +1 -1
  259. package/template/.pi/skills/page-skeleton/SKILL.md +1 -1
  260. package/template/.pi/skills/theme-token-usage/SKILL.md +1 -1
  261. package/template/.pi/skills/to-tickets/SKILL.md +1 -1
  262. package/template/.pi/skills/using-git-worktrees/SKILL.md +1 -1
  263. package/template/.pi/skills/wayfinder/SKILL.md +1 -1
  264. package/template/.pi/skills/yedit-table-usage/SKILL.md +1 -1
  265. package/template/.pi/skills/yss-api-integration/SKILL.md +1 -1
  266. package/template/.pi/skills/yss-audit-log/SKILL.md +1 -1
  267. package/template/.pi/skills/yss-cache/SKILL.md +1 -1
  268. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +15 -2
  269. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/application-pom.xml.template +1 -1
  270. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/parent-pom.xml.template +15 -10
  271. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/web-pom.xml.template +3 -3
  272. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +3 -3
  273. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +5 -1
  274. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-verification.test.mjs +5 -2
  275. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +13 -10
  276. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  277. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +35 -3
  278. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +1 -1
  279. package/template/.pi/skills/yss-distributed-id/SKILL.md +1 -1
  280. package/template/.pi/skills/yss-dto/SKILL.md +5 -1
  281. package/template/.pi/skills/yss-excel-mvc/SKILL.md +1 -1
  282. package/template/.pi/skills/yss-exception/SKILL.md +5 -1
  283. package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +1 -1
  284. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +13 -5
  285. package/template/.pi/skills/yss-implementation-contract-compiler/agents/openai.yaml +1 -1
  286. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +16 -0
  287. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +214 -0
  288. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +66 -204
  289. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +15 -2
  290. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +28 -19
  291. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +10 -10
  292. package/template/.pi/skills/yss-mybatis/SKILL.md +4 -0
  293. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +1 -1
  294. package/template/.pi/skills/yss-openapi-governance/SKILL.md +1 -1
  295. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +4 -4
  296. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +7 -2
  297. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +4 -0
  298. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -0
  299. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +23 -3
  300. package/template/.pi/skills/yss-prototype-stage/SKILL.md +1 -1
  301. package/template/.pi/skills/yss-repository/SKILL.md +4 -0
  302. package/template/.pi/skills/yss-research/SKILL.md +1 -1
  303. package/template/.pi/skills/yss-resilience4j/SKILL.md +1 -1
  304. package/template/.pi/skills/yss-security-algorithm/SKILL.md +1 -1
  305. package/template/.pi/skills/yss-tactical-design/SKILL.md +4 -0
  306. package/template/.pi/skills/yss-technical-design/SKILL.md +4 -0
  307. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +2 -2
  308. package/template/.pi/skills/yss-ui/SKILL.md +1 -1
  309. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  310. package/template/.pi/skills/yss-up-springboot3/SKILL.md +1 -1
  311. package/template/.pi/skills/yss-use-table-height/SKILL.md +1 -1
  312. package/template/.pi/skills/yss-use-tree-height/SKILL.md +1 -1
  313. package/template/.pi/skills/yss-userinfo/SKILL.md +1 -1
  314. package/template/.pi/skills/yss-validation/SKILL.md +5 -1
  315. package/template/.pi/skills/yss-web-controller/SKILL.md +5 -1
  316. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +5 -2
  317. package/template/.pi/skills/ytable-usage/SKILL.md +1 -1
  318. package/template/.pi/skills/ytree-usage/SKILL.md +1 -1
  319. package/template/AGENTS.md +1 -0
  320. package/template/CONTEXT.md +2 -1
  321. package/template/docs/agents/backend-architecture-profiles.md +1 -1
  322. package/template/docs/agents/digital-human-roles.yaml +25 -1
  323. package/template/docs/agents/issue-tracker.md +2 -0
  324. package/template/docs/engineering/backend-platforms.json +174 -0
  325. package/template/docs/engineering/backend-platforms.md +77 -0
  326. package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +1 -0
  327. package/template/docs/process/harness-process-tailoring.md +9 -1
  328. package/template/docs/process/lifecycle-artifact-map.md +4 -4
  329. package/template/docs/process/lifecycle-registry-baseline.json +1 -1
  330. package/template/docs/process/lifecycle-registry.yaml +4 -4
  331. package/template/docs/process/schemas/backend-architecture-identity.schema.json +91 -0
  332. package/template/docs/process/schemas/digital-human-task-package.schema.json +2 -1
  333. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +4 -0
  334. package/template/docs/process/schemas/project-scaffold-contract.schema.json +602 -83
  335. package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +323 -39
  336. package/template/docs/process/schemas/slice-implementation-contract-v3.schema.json +925 -0
  337. package/template/docs/templates/approval-record-template.yaml +2 -0
  338. package/template/docs/templates/vertical-slice-ticket-template.md +22 -31
  339. package/template/scripts/backend-platforms +14 -0
  340. package/template/scripts/lib/approval-record.mjs +32 -6
  341. package/template/scripts/lib/approved-execution-context.mjs +31 -8
  342. package/template/scripts/lib/backend-architecture.mjs +6 -0
  343. package/template/scripts/lib/backend-platform-provenance.mjs +67 -0
  344. package/template/scripts/lib/backend-platform-verification.mjs +210 -0
  345. package/template/scripts/lib/backend-platform.mjs +175 -0
  346. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
  347. package/template/scripts/lib/decision-continuation.mjs +79 -0
  348. package/template/scripts/lib/delivery-preflight.mjs +6 -5
  349. package/template/scripts/lib/digital-human-roles.mjs +10 -0
  350. package/template/scripts/lib/frontend-delivery-boundary.mjs +3 -0
  351. package/template/scripts/lib/implementation-contract-compiler.mjs +42 -9
  352. package/template/scripts/lib/lifecycle-controls.mjs +2 -2
  353. package/template/scripts/lib/lifecycle-transition.mjs +3 -1
  354. package/template/scripts/lib/plan-spec-entry.mjs +3 -3
  355. package/template/scripts/lib/scaffold-local-database.mjs +1 -0
  356. package/template/scripts/lib/slice-applicability.mjs +10 -0
  357. package/template/scripts/lib/slice-contract-preparation.mjs +257 -0
  358. package/template/scripts/lib/slice-contract-views.mjs +52 -0
  359. package/template/scripts/lib/slice-contract.mjs +211 -0
  360. package/template/scripts/lib/slice-repositories.mjs +49 -0
  361. package/template/scripts/lib/slice-task-package.mjs +66 -0
  362. package/template/scripts/lib/strategic-handoff.mjs +12 -1
  363. package/template/scripts/lib/task-package.mjs +6 -2
  364. package/template/scripts/lib/technical-design-boundary.mjs +1 -0
  365. package/template/scripts/lib/user-decision-reuse.mjs +1 -0
  366. package/template/scripts/lib/user-decision.mjs +4 -1
  367. package/template/scripts/preflight-delivery +2 -2
  368. package/template/scripts/slice-contract +30 -0
  369. package/template/scripts/verify-backend-platform-matrix +69 -0
  370. package/template/scripts/verify-scaffold-architecture-decisions +5 -0
  371. package/template/scripts/verify-user-decision +7 -2
  372. package/template/skills-lock.json +60 -55
  373. 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
- "spring-boot-2.7-jdk8": "javax",
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: 指导 YSS UI 业务列表页、CRUD 表格、远程分页、操作列、气泡确认、列筛选、字典翻译、行拖拽、工具栏和自定义插槽正确使用 @yss-ui/components 的 YTable;当需要配置 YTableColumn、YTableActionConfig、pagination、filter-change 或表格实例方法时使用。
3
+ description: "配置或修复 YSS UI YTable 的列、分页、行操作、筛选、拖拽与插槽;完整列表流程用 page-list-module。"
4
4
  ---
5
5
 
6
6
  # YTable 使用
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ytree-usage
3
- description: 指导 YSS UI 左树右表、组织树、分类树、目录树和节点管理页使用 @yss-ui/components 的 YTree,覆盖 fieldNames 字段映射、搜索过滤、受控选中、节点动作、删除确认、虚拟滚动和自适应高度;当生成或修改树形筛选、左树右表、树搜索或树节点操作时使用。
3
+ description: "配置或修复 YSS UI YTree 的字段映射、搜索、选中与节点操作;用于树形筛选和节点管理。"
4
4
  ---
5
5
 
6
6
  # YTree 使用
@@ -73,6 +73,7 @@
73
73
  - 实现者不做独立审查,Reviewer 不写实现;代码审查统一用 `code-review`。mandatory 不豁免;`violation` 修复后重审,`drift` / `new_impacts` 使合同 `stale` 并回编译器。
74
74
  - “完成 / 可合并 / 可发布”仅基于 Fresh Verification;历史结果、自述无效。
75
75
  - 会签按角色表 `gate_policy` 并经 `scripts/verify-approval-record --require-approved` 核验;`user_decision_policy` 命中的关键决定必须先展示可审阅资产,再取得提问者或其明确指定负责人的真实回复。无回复保持等待,数字人不能代答;原始来源、范围、复用和失效见生命周期 `references/user-decisions.md`。发布、商务承诺、运行时外部副作用仍须生物人。
76
+ - 普通功能默认一个推进负责人和一个独立审查者;候选角色列表不要求逐角色签字。相邻检查可组合审查、逐项留结论。已有范围授权按用户决定协议验证延续,实质变化或未知影响才重新决定;外部强制审批不得裁掉,缺陷和缺证据仍阻断,非阻断建议进入待办。
76
77
  - 会签暂停、handoff、实现、合并、发布边界同步范围、证据、风险、会签点、Ticket 状态和下一步。Git checkpoint 只含本轮范围;提交 / 推送须用户授权。
77
78
  - 发布或阶段完成时判断复盘;架构 / 验证返工、IMPORTANT / CRITICAL finding、人工确认延期时,落中文复盘并修订事实源。
78
79
 
@@ -55,7 +55,7 @@ context_schema_version: 1
55
55
  | 原型档位 | 用 H1 `visual-review`、H2 `flow-review` 表达原型需要回答的问题与最低证据强度。 | — | 不是实现技术栈分级,也不是成熟度评分;真实 YSS/AntDV 组件验证属于前端实现计划与实现还原验证,不属于第三种原型档位。 |
56
56
  | Visual Baseline Contract | 为生产前端还原冻结页面、视口、交互状态、参考图像和允许差异的可验收合同。 | — | 不是仅有一张原型截图或绝对像素匹配;每个基线必须可定位到同一视口和同一状态复验。 |
57
57
  | 垂直切片(Vertical Slice) | 贯穿所有受影响层、可独立验证的窄功能路径。 | — | 优先使用垂直切片,避免只按层拆分的横向任务。 |
58
- | Slice Implementation Contract | 阶段 7 进入实现前,由 `yss-implementation-contract-compiler` 根据冻结资产和垂直切片编译、再由生命周期编排器批准的实现合同,包含 Common、Frontend、Backend、Contract 和 Cross-repo 子合同。 | — | 实现合同编译器 只能生成草案,不能自行批准、设置 `ready-for-agent` 或宣布完成;Backend 子合同仍保留额外强约束。 |
58
+ | Slice Implementation Contract | 阶段 7 进入实现前,由 `yss-implementation-contract-compiler` 根据冻结资产和垂直切片编译、再由生命周期编排器批准的实现合同,新 v3 将上游依据、实施范围、冻结 Skill、工作单元及验证要求单点保存,仅展开适用专项约束;v2 保留历史读取。 | — | 实现合同编译器 只能生成草案,不能自行批准、设置 `ready-for-agent` 或宣布完成;Backend 子合同仍保留额外强约束。 |
59
59
  | YSS Skill Execution Result | YSS 专项 skill 完成工作单元后返回的结构化执行证据,记录合同版本、变更文件、证据文件、实际验证、延期 seam、偏离和新增影响。 | — | 实现者自报 `implemented` 不构成最终通过,必须由 实现合同编译器、生命周期编排器和独立 Reviewer 复核。 |
60
60
  | ADR | 架构决策记录,用于沉淀难以回滚、非显而易见且存在真实取舍的技术决策。 | — | 常规实现选择不要写 ADR。 |
61
61
  | Fresh Verification | 完成前重新执行的验证证据,包括测试命令、契约校验、关键路径检查或人工审查结论。 | — | 不等同于“之前跑过”或实现者自述。 |
@@ -104,6 +104,7 @@ context_schema_version: 1
104
104
  | 模板源治理区 | 仅供 `template-source` 使用、保存审查证据、研究记录、跨仓契约、发布路线、源仓库治理决策和源仓库 LLM Wiki 编译树的归档区域。 | — | 不随 CLI 分发;不等于产品实例的研发管理资产。`wiki-root` 为 `.template-source/wiki`。 |
105
105
  | 仓库身份清单 | 显式声明仓库身份和清单结构版本的机器可读资产。 | — | 不承载项目名称、团队规模、Tracker 或其他易变业务配置。 |
106
106
  | 聚合门禁 | 汇总适用自动检查和独立专业审查后,对当前资产与范围作一次批准或验收;权威定义见生命周期注册表。 | — | 内部检查失败仍阻断;有效批准只在相关依据、范围或授权变化时失效。 |
107
+ | 授权延续 | 原始用户批准明确覆盖当前边界、资产范围和决定依据时,经独立审查与当前验证继续推进。 | — | 不产生新的用户回复;未知或实质变化、撤回和外部强制审批缺失不能延续。证据格式见用户决定协议。 |
107
108
  | 内部检查 | 以 `check.*` 登记的自动前置核验、计算状态或独立专业审查;作为聚合门禁输入,不单独请求用户批准。 | — | 不等于省略检查或允许起草者自审。 |
108
109
  | 交付验收 | 对当前交付候选的独立审查、实际验证和回滚证据作出验收结论。 | — | 不授予实际合并、推送或发布权限;这些动作另按授权范围执行。 |
109
110
 
@@ -21,7 +21,7 @@ Profile、模块闭包、生成器、成熟度和 Recipe 的权威映射见 `yss
21
21
 
22
22
  - 新脚手架统一 `verification_database=h2`、`production_database=not-bound`。仅测试和显式 `scaffold-local` 使用 H2;普通配置不设置数据库或默认激活 Profile。不另加生产驱动、第三方数据源或 Mock 服务。
23
23
  - 生产数据库、DDL、索引和方言在后续批准的存储工作单元接入;H2 测试不能证明生产方言兼容。脚手架不包含业务 SQL、schema/data 占位或业务 API。
24
- - 三种新 Profile 使用 `spring-boot-2.7-jdk8` / `javax`。组件 Skill 消费工程基线,不擅自升级 Java、Boot、处理器版本或替换依赖。MapStruct + Lombok 必须验证 binding 与生成代码编译。
24
+ - DDD / 通用 MVC 消费批准的 `platform_configuration` v1,平台清单与证据规则见 `docs/engineering/backend-platforms.md`。数据分析初始化器保留 `spring-boot-2.7-jdk8` / `javax`,不自动开放新平台。组件 Skill 不擅自升级 Java、Boot、处理器或替换 YSS 依赖。MapStruct + Lombok 必须验证 binding 与生成代码编译。
25
25
  - 对 SQL 注入、敏感信息、权限和事务的规则不因 H2 或模板而豁免。MySQL 专属语法规则仅适用于批准的 MySQL 存储工作单元;框架命名/返回包装等差异须记录明确的 YSS 基线例外。
26
26
 
27
27
  ## 验证含义
@@ -173,6 +173,20 @@ stage_groups:
173
173
  members: [ role.lifecycle-orchestrator, role.project-manager, role.test-engineer, role.product-manager ]
174
174
 
175
175
  gate_policy:
176
+ # countersigners 是可胜任该边界的候选角色,不是必须集齐的签字名单。
177
+ review_execution:
178
+ default_owner_count: 1
179
+ default_independent_reviewer_count: 1
180
+ additional_reviewers: uncovered-expertise-or-external-requirement
181
+ adjacent_checks: one-review-with-per-check-conclusions
182
+ suggestions: backlog-without-blocking
183
+ violations_or_missing_evidence: blocking
184
+ continuation_reviews:
185
+ gate.plan-approved: [role.product-manager]
186
+ gate.spec-baseline-approved: [role.product-manager]
187
+ gate.product-design-approved: [role.frontend-engineer, role.test-engineer]
188
+ gate.engineering-contract-approved: [role.backend-engineer, role.test-engineer]
189
+ implementation-scope: [role.test-engineer]
176
190
  default_if_unlisted: biological-human
177
191
  evidence_only: []
178
192
  orchestrator:
@@ -198,8 +212,9 @@ gate_policy:
198
212
  - gate: gate.engineering-contract-approved
199
213
  drafter: role.backend-engineer
200
214
  countersigners:
201
- - role.product-manager
202
215
  - role.test-engineer
216
+ # 保留既有合法记录的角色兼容;并非要求再增加一次产品会签。
217
+ - role.product-manager
203
218
  product_digital_human_with_biological_veto: []
204
219
  biological_human:
205
220
  - gate.product-design-approved
@@ -250,6 +265,15 @@ user_decision_policy:
250
265
  schema_version: 1
251
266
  default_responder: requester
252
267
  delegate_requires_requester_evidence: true
268
+ # 专业批准仍逐项核验;已有明确授权通过延续证明复用,不再重复询问用户。
269
+ continuation:
270
+ capability: approved-scope-continuation-v1
271
+ source_boundary: delivery-scope
272
+ boundaries: [gate.plan-approved, gate.spec-baseline-approved, gate.product-design-approved, gate.engineering-contract-approved, implementation-scope]
273
+ material_changes: [business-scope, acceptance, contract-commitments, authorization, risk-acceptance, quality, external-commitments]
274
+ unknown_change: blocked
275
+ external_requirements: preserve-project-policy
276
+ external_policy_unconfirmed: no-automatic-continuation
253
277
  source_kinds: [ platform-message, session-export, user-confirmation-file ]
254
278
  gates:
255
279
  - gate.plan-approved
@@ -34,6 +34,8 @@ tracker:
34
34
  4. 多个持久化配置声明不同平台时返回 `conflict`,暂停并要求迁移,不覆盖任何配置。
35
35
  5. 选定 GitHub / GitLab 但凭据或平台暂不可用时,先在 `docs/.scratch/<feature>/` 生成“待发布平台”草案;`parent-ticket.md` 保留目标平台、标记 `publication: pending` 和 `pending_publication_to`;不得自动改投另一远程平台。
36
36
 
37
+ Slice v3 声明冻结需求时,合同绑定的 Ticket 文件只保留冻结时状态。当前状态、验收结果和执行记录继续进入主 tracker;Local Markdown 使用现有父 Ticket / 任务包记录进度,远程平台不可用时沿用待发布记录。需求文件版本不得作为当前执行状态读取,也不得因更新进度而改写。协议见 [Slice 合同](../../.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md#第二轮增量规则)。
38
+
37
39
  ## Local Markdown 主 tracker
38
40
 
39
41
  Local 主 tracker 的完整功能包结构如下:
@@ -0,0 +1,174 @@
1
+ {
2
+ "schema_version": 1,
3
+ "kind": "backend-platform-catalog",
4
+ "profiles": [
5
+ {
6
+ "id": "spring-boot-2.7-jdk8",
7
+ "spring_boot_version": "2.7.18",
8
+ "java_version": 8,
9
+ "framework_line": "5.3",
10
+ "tomcat_line": "9.0",
11
+ "servlet_version": "4.0",
12
+ "validation_namespace": "javax",
13
+ "validation_group": "javax.validation",
14
+ "validation_artifact": "validation-api",
15
+ "web_starter": "spring-boot-starter-web",
16
+ "web_test_starter": "spring-boot-starter-test",
17
+ "aop_starter": "spring-boot-starter-aop",
18
+ "mybatis_plus_starter": "mybatis-plus-boot-starter",
19
+ "springdoc_major": 1,
20
+ "jackson_major": 2,
21
+ "swagger_artifact": "swagger-annotations",
22
+ "versions": {
23
+ "mapstruct": "1.5.5.Final",
24
+ "lombok": "1.18.30",
25
+ "lombok_mapstruct_binding": "0.2.0",
26
+ "swagger": "2.2.22",
27
+ "archunit": "1.2.1",
28
+ "compiler": "3.11.0",
29
+ "enforcer": "3.5.0",
30
+ "surefire": "3.2.5"
31
+ },
32
+ "candidate_blockers": [
33
+ "YSS parent/BOM/starter combination and real Maven/startup evidence required"
34
+ ],
35
+ "spring_cloud_line": "2021.0",
36
+ "openfeign_line": "3.1"
37
+ },
38
+ {
39
+ "id": "spring-boot-3.5-jdk17",
40
+ "spring_boot_version": "3.5.16",
41
+ "java_version": 17,
42
+ "framework_line": "6.2",
43
+ "tomcat_line": "10.1",
44
+ "servlet_version": "6.0",
45
+ "validation_namespace": "jakarta",
46
+ "validation_group": "jakarta.validation",
47
+ "validation_artifact": "jakarta.validation-api",
48
+ "web_starter": "spring-boot-starter-web",
49
+ "web_test_starter": "spring-boot-starter-test",
50
+ "aop_starter": "spring-boot-starter-aop",
51
+ "mybatis_plus_starter": "mybatis-plus-spring-boot3-starter",
52
+ "springdoc_major": 2,
53
+ "jackson_major": 2,
54
+ "swagger_artifact": "swagger-annotations-jakarta",
55
+ "versions": {
56
+ "mapstruct": "1.6.3",
57
+ "lombok": "1.18.42",
58
+ "lombok_mapstruct_binding": "0.2.0",
59
+ "swagger": "2.2.22",
60
+ "archunit": "1.4.1",
61
+ "compiler": "3.14.1",
62
+ "enforcer": "3.5.0",
63
+ "surefire": "3.5.4"
64
+ },
65
+ "candidate_blockers": [
66
+ "YSS parent/BOM/starter combination and real Maven/startup evidence required"
67
+ ],
68
+ "spring_cloud_line": "2025.0",
69
+ "openfeign_line": "4.3"
70
+ },
71
+ {
72
+ "id": "spring-boot-3.5-jdk21",
73
+ "spring_boot_version": "3.5.16",
74
+ "java_version": 21,
75
+ "framework_line": "6.2",
76
+ "tomcat_line": "10.1",
77
+ "servlet_version": "6.0",
78
+ "validation_namespace": "jakarta",
79
+ "validation_group": "jakarta.validation",
80
+ "validation_artifact": "jakarta.validation-api",
81
+ "web_starter": "spring-boot-starter-web",
82
+ "web_test_starter": "spring-boot-starter-test",
83
+ "aop_starter": "spring-boot-starter-aop",
84
+ "mybatis_plus_starter": "mybatis-plus-spring-boot3-starter",
85
+ "springdoc_major": 2,
86
+ "jackson_major": 2,
87
+ "swagger_artifact": "swagger-annotations-jakarta",
88
+ "versions": {
89
+ "mapstruct": "1.6.3",
90
+ "lombok": "1.18.42",
91
+ "lombok_mapstruct_binding": "0.2.0",
92
+ "swagger": "2.2.22",
93
+ "archunit": "1.4.1",
94
+ "compiler": "3.14.1",
95
+ "enforcer": "3.5.0",
96
+ "surefire": "3.5.4"
97
+ },
98
+ "candidate_blockers": [
99
+ "YSS parent/BOM/starter combination and real Maven/startup evidence required"
100
+ ],
101
+ "spring_cloud_line": "2025.0",
102
+ "openfeign_line": "4.3"
103
+ },
104
+ {
105
+ "id": "spring-boot-4.1-jdk17",
106
+ "spring_boot_version": "4.1.1",
107
+ "java_version": 17,
108
+ "framework_line": "7.0",
109
+ "tomcat_line": "11.0",
110
+ "servlet_version": "6.1",
111
+ "validation_namespace": "jakarta",
112
+ "validation_group": "jakarta.validation",
113
+ "validation_artifact": "jakarta.validation-api",
114
+ "web_starter": "spring-boot-starter-webmvc",
115
+ "web_test_starter": "spring-boot-starter-webmvc-test",
116
+ "aop_starter": "spring-boot-starter-aspectj",
117
+ "mybatis_plus_starter": "mybatis-plus-spring-boot4-starter",
118
+ "springdoc_major": 3,
119
+ "jackson_major": 3,
120
+ "swagger_artifact": "swagger-annotations-jakarta",
121
+ "versions": {
122
+ "mapstruct": "1.6.3",
123
+ "lombok": "1.18.42",
124
+ "lombok_mapstruct_binding": "0.2.0",
125
+ "swagger": "2.2.22",
126
+ "archunit": "1.4.1",
127
+ "compiler": "3.14.1",
128
+ "enforcer": "3.5.0",
129
+ "surefire": "3.5.4"
130
+ },
131
+ "candidate_blockers": [
132
+ "YSS parent/BOM/starter combination and real Maven/startup evidence required"
133
+ ],
134
+ "spring_cloud_line": "2025.1",
135
+ "openfeign_line": "5.0",
136
+ "spring_cloud_minimum": "2025.1.2"
137
+ },
138
+ {
139
+ "id": "spring-boot-4.1-jdk21",
140
+ "spring_boot_version": "4.1.1",
141
+ "java_version": 21,
142
+ "framework_line": "7.0",
143
+ "tomcat_line": "11.0",
144
+ "servlet_version": "6.1",
145
+ "validation_namespace": "jakarta",
146
+ "validation_group": "jakarta.validation",
147
+ "validation_artifact": "jakarta.validation-api",
148
+ "web_starter": "spring-boot-starter-webmvc",
149
+ "web_test_starter": "spring-boot-starter-webmvc-test",
150
+ "aop_starter": "spring-boot-starter-aspectj",
151
+ "mybatis_plus_starter": "mybatis-plus-spring-boot4-starter",
152
+ "springdoc_major": 3,
153
+ "jackson_major": 3,
154
+ "swagger_artifact": "swagger-annotations-jakarta",
155
+ "versions": {
156
+ "mapstruct": "1.6.3",
157
+ "lombok": "1.18.42",
158
+ "lombok_mapstruct_binding": "0.2.0",
159
+ "swagger": "2.2.22",
160
+ "archunit": "1.4.1",
161
+ "compiler": "3.14.1",
162
+ "enforcer": "3.5.0",
163
+ "surefire": "3.5.4"
164
+ },
165
+ "candidate_blockers": [
166
+ "YSS parent/BOM/starter combination and real Maven/startup evidence required"
167
+ ],
168
+ "spring_cloud_line": "2025.1",
169
+ "openfeign_line": "5.0",
170
+ "spring_cloud_minimum": "2025.1.2"
171
+ }
172
+ ],
173
+ "compatibility": []
174
+ }
@@ -0,0 +1,77 @@
1
+ # 后端脚手架平台合同
2
+
3
+ DDD 和 Layered MVC 共同消费 `backend-platforms.json`。平台定义是候选配方,`compatibility` 是维护者核验后的 YSS 组合清单;空清单表示尚无可开放组合,不表示官方框架不支持这些版本。
4
+
5
+ ## 用户选择
6
+
7
+ 运行 `scripts/backend-platforms` 展示 Boot 精确补丁、Java、YSS 父 POM/BOM、可选状态和阻塞原因。生命周期编排器将平台与架构放在同一次用户决定中。缺少选择时询问;已有批准且当前的选择只展示摘要并复用。独立子项目可继承或覆盖,也可一次确认明确列出的多个项目。同一 Maven Reactor 不混用平台。
8
+
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
+
11
+ ## 配置与一致性
12
+
13
+ Project Scaffold Contract v4 新增 `platform_configuration` v2,两个脚手架的新生成必须提供;前端及数据分析初始化器保持原边界。架构决策保存同一对象,参与原用户决定快照和 digest。Manifest 顶层及 `architecture_identity` 传递同一配置。
14
+
15
+ | 字段 | 内容 |
16
+ |---|---|
17
+ | `schema_version` | `2`(v1 只读审计) |
18
+ | `profile_id` | 如 `spring-boot-3.5-jdk17` |
19
+ | `spring_boot_version` | 精确补丁,如 `3.5.16` |
20
+ | `java_version` | 经选择的 `8`、`17` 或 `21` |
21
+ | `parent` / `bom` | `group_id`、`artifact_id`、`version` |
22
+ | `compatibility_id` | 清单组合 ID |
23
+ | `compatibility_digest` | `platformRecipeDigest(profile, entry)`,排除证据列表、支持状态和展示提示 |
24
+
25
+ 配置可由 `platformBinding(profile, entry)` 机械构造;该函数不批准用户选择或开放支持。修改平台、YSS 坐标或依赖配方会使绑定失效;仅更新同配方证据不改变用户选择摘要。历史 Manifest 继续只读验证,不自动补字段或重写批准。仅继承架构不等于继承平台批准。
26
+
27
+ ## 依赖与验证
28
+
29
+ Boot BOM 管理 Spring Framework/MVC、嵌入式容器、Servlet、Validation、Jackson 等依赖,Boot Plugin 与 Boot 精确版本相同。YSS 父 POM/BOM 仍由用户确认,解析结果冲突则阻断,不能依靠属性覆盖宣称兼容。清单记录构建工具、Lombok、MapStruct、Swagger、ArchUnit 的候选版本;YSS 组件源码不在脚手架步骤中改造。
30
+
31
+ Boot 4 使用对应 MVC / MVC 测试 starter、Jackson 3 默认栈与新的模块结构;MyBatis-Plus 必须使用相应 Boot 分支。Web/Validation 的 Jakarta 迁移不替换 `javax.sql` 等 Java SE API。Feign 等可选能力须在兼容条目的 `capabilities` 内有验证记录。清单记录 Cloud 2021.0 / 2025.0 / 2025.1(Boot 4.1 至少 2025.1.2)及 OpenFeign 3.1 / 4.3 / 5.0 线;实际内部 BOM 必须解析到对应组合。测试覆盖 Validation、JSON、MyBatis 查询映射和适用的 Feign JSON Decoder。
32
+
33
+ 真实验证保存 Maven 实际 JDK、effective POM、每个模块的依赖树、固定三条 Wrapper 命令结果,以及显式 `scaffold-local` 打包启动结果。启动检查只绑定回环地址,通过启动日志与 HTTP 响应验证机械 Web 服务;测试内 Controller 通过随机端口覆盖 JSON POST 往返及非法参数 400,不编译进生产 Jar,并终止验证进程。H2 仅用于测试和显式本地 Profile,不绑定生产数据库。生成器不添加用户业务示例。
34
+
35
+ ## 维护候选与开放组合
36
+
37
+ `scripts/verify-backend-platform-matrix --evidence-dir <目录> --inputs <输入.json>` 是维护入口;没有输入或环境时输出十组 `blocked` 及原因,不伪造 Maven 结果。输入结构:
38
+
39
+ - `catalog_ref`:相对输入文件的候选清单;保留官方平台定义,补充实际待验证的 YSS 组合。
40
+ - `java_homes`:以 `8`、`17`、`21` 为键的实际 JDK 根目录。
41
+ - `combinations`:每项有 `profile_id`、`spring_boot_version`、`architecture_family`、`contract_ref`,合同须真实批准、当前且指向不存在的输出目录。
42
+
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` 的相对路径与字节摘要,缺失或漂移即阻断。
44
+
45
+ 候选工程始终标记 `platform_verification=candidate`,不能进入普通验证完成升级、业务生成或首切片验证。维护者将真实证据及相关日志保存为可分发的相对路径包,审阅全部适用能力后才可把对应组合登记为 `verified`。候选晋级或替换同配方证据不改变配置摘要;真正的依赖配方变化才重新确认。矩阵命令不自动修改兼容清单、不批准合同、不发布版本。
46
+
47
+ `scripts/fixtures/backend-scaffold/` 下的合成合同仅测试机制,绝不作为兼容证据。标准生成 CLI 无候选参数或环境变量后门。
48
+
49
+ ## 官方依据
50
+
51
+ - [Boot 2.7 系统要求](https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/getting-started.html#getting-started.system-requirements):Java 8 起,默认 Tomcat 9 / Servlet 4.0。
52
+ - [Boot 3.5 系统要求](https://docs.spring.io/spring-boot/3.5/system-requirements.html):Java 17 起,Spring Framework 6.2,默认 Tomcat 10.1 / Servlet 6.0。
53
+ - [Boot 4.1.1 系统要求](https://docs.spring.io/spring-boot/system-requirements.html):Java 17 起,Spring Framework 7.0,Tomcat 11 / Servlet 6.1。
54
+ - [Boot 4 迁移说明](https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide):模块、starter、测试及 Jackson 变化。
55
+ - [MyBatis-Plus 安装](https://baomidou.com/getting-started/install/):Boot 2、3、4 的 starter 坐标。
56
+
57
+ - [Spring Cloud 兼容矩阵](https://spring.io/projects/spring-cloud/):发行列车、Boot 与 OpenFeign 版本对应。
58
+
59
+ 以上是候选配方依据,不替代内部 YSS 组合的实际验证。
60
+
61
+ ## 验证绑定与安全重试
62
+
63
+ 新生成使用平台配置 v2;Project Scaffold Contract 仍为 v4。v1 原始记录保留只读审计,不能原样用于新生成或新的支持认证。
64
+
65
+ 兼容证据同时绑定 recipe_digest、generator/verifier source_fingerprint 和 generated_tree_digest。模板、Wrapper、共享生成逻辑或验证逻辑改变时,旧证据不能开放新生成;源文件摘要不包括 Skill 说明文字。输入配方与验证记录分离不代表忽略证据,报告或日志缺失、漂移、失败仍阻断。
66
+
67
+ 版本行按 `(profile_id, spring_boot_version, java_version)` 唯一;同一版本线新增补丁时追加行,不覆盖旧行。多个补丁存在时不得只凭 profile_id 选第一个或最新版本;合同、组合条目和矩阵输入均带精确版本。原补丁的配方和批准不会因追加新补丁而变化。
68
+
69
+ 依赖核验以启动模块 compile/runtime 树为准,不用其他模块或 test/provided 依赖凑齐能力;从独立解析的所选 Boot BOM 获取精确托管版本进行比较,非 Boot 管理的内部兼容版本可通过组合 `components` 映射约束。随后检查实际可执行 Jar 的 BOOT-INF/lib。Maven effective-pom 的 artifact 参数及 dependency tree JSON 行为依据 [Maven Help Plugin](https://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html) 和 [Dependency Plugin](https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html)。
70
+
71
+ 首次生成成功而 Maven 验证失败时,使用原输入加 `--resume`。恢复前重新验证当前合同、架构决定与工程批准,并核对 Manifest、生成文件、文件清单和生成器/验证器摘要;任一漂移即阻断,绝不覆盖用户修改或再次生成。每次验证写入新的证据目录,旧日志保留。Surefire 报告必须来自本次命令执行,旧报告或跳过测试不能补足证据。发生源码或模板变化时,请使用新候选输出目录和对应合同,不通过恢复模式覆盖旧工程。
72
+
73
+ 空脚手架验证的证据目录必须位于生成工程外部,避免证据文件被误认为新增源码。首切片验证在批准的切片合同通过既有门禁后复用构建检查,但记录 `verification_scope=first-slice`;其证据不能用于开放平台组合,也不要求业务代码保持空脚手架摘要。
74
+
75
+ 兼容条目 `components` 按 `groupId:artifactId` → 精确版本记录实际引入的 MyBatis-Plus、Springdoc、Spring Cloud 与 YSS 运行时依赖;依赖树出现未登记组件或版本不符时阻断。独立 Boot BOM 管理的组件优先按 BOM 核验。
76
+
77
+ Jar 核验拒绝未登记或版本不符的额外库;仅允许 Boot 对应版本的 jarmode 工具以及已选配方中的 provided Lombok 随包出现。原因是 [Boot repackage 默认包含 provided 依赖](https://docs.spring.io/spring-boot/maven-plugin/packaging.html);这些打包例外不能补足必须存在于 compile/runtime 树的 Web、Servlet、JSON 等能力。
@@ -8,5 +8,6 @@ Matt Pocock Engineering Skills 提供轻量的澄清、实现、TDD、诊断和
8
8
  - Matt user-invoked 的 `grill-with-docs`、`to-spec`、`to-tickets` 和 `implement` 必须由用户显式启动,任何 skill 不得自动调用它们;YSS 生命周期只准备、校验和验收其结果。所有 Matt model-invoked skill 仍须遵守 `AGENTS.md` 的阶段、门禁和证据要求,并只能在生命周期允许的工作单元中调用。
9
9
  - `code-review` 保持唯一默认审查入口。YSS 适配把 Slice `required_skills`、`alibaba-java-code-style` 与命中的 `yss-ui` / `yss-domain` 等专项 skill 编译为 Standards 检查输入,并要求实现仓已有的 `pnpm` / `./mvnw` 机器检查;禁止再增加第二个通用审查 skill 或专用审查 Cloud 环境来代替这条接线。审查 finding 按编排合同分流:实现者修复后全轴复审,或合同 `stale` 后回 实现合同编译器;审查者不得写实现。
10
10
  - `template-source` 只执行模板维护流程,不生成具体产品 Spec、原型、OpenAPI 或垂直切片 Ticket。
11
+ - `code-review` 的 YSS 人员适配:普通功能默认一个独立 Reviewer,分别完成 Standards、Spec 与适用 UI 检查;能力缺口、冲突、外部制度或用户指定时才拆分多审查者。保留检查轴和证据,不将上游并行 Agent 形式转成固定多人会签。
11
12
  - Matt 的 `research` 已适配为 canonical `yss-research`,旧名只作为 deprecated alias。YSS 版本提供 `technical-evidence` / `strategy-evidence` profile、`quick` / `evidence-audited` 模式、证据合同和确定性校验,同时保留上游 revision 与原始 hash 以便追溯。
12
13
  - Agent 完成工作单元后返回可核验的 evidence refs、变更资产、验证命令、残余风险和下一路由。
@@ -8,6 +8,14 @@
8
8
 
9
9
  ## 1. 判定顺序
10
10
 
11
+ 普通功能采用一个推进负责人和一个独立审查者,按主要风险选择专业能力;仅在能力缺口、专业结论冲突或项目外部制度要求时增加审查者。角色表的 `countersigners` 是候选能力,不是全员签字名单。无依赖的审查可并行;同一候选的相邻检查可一次审查并逐项记录,聚合验收引用已有结论。
12
+
13
+ 人工暂停由决定变化触发:业务范围、关键规则、验收标准、契约承诺、授权边界、风险接受、已采纳质量标准或对外承诺发生实质变化时,展示差异后重新决定。API、数据和跨仓影响仍触发适用专业检查,但技术载体本身不要求重复人工批准。授权清单明确覆盖的范围按生命周期用户决定协议延续;未知变化先补影响分析,不默认沿用。
14
+
15
+ 排版、措辞和派生内容调整也必须更新当前摘要、差异说明和验证证据;独立审查证明决定依据未变后可延续,不通过忽略字节差异或修改原回复实现复用。普通实现细化补受影响测试和审查。项目外部制度未确认时不能使用自动延续;已登记的客户、公司和审计强制审批按原要求执行。
16
+
17
+ 违反验收/契约/已采纳质量标准、关键验证失败和关键证据缺失均阻断。个人偏好、未来优化等非阻断建议记明理由与待办去向,不新增强制门禁;未解决的重要风险须用户接受,不能改成建议绕过。
18
+
11
19
  1. 先读取 `yss-project.yaml`,非法、缺失或不支持的身份直接进入迁移检查。
12
20
  2. 判断是否为模板源维护、项目实例小改动、中等变更或全新产品 / 模块。
13
21
  3. 判断 UI、API、数据、后端、前端、跨仓库和高风险影响。
@@ -31,7 +39,7 @@
31
39
 
32
40
  ## 5. 上下文、反证与质量基线裁剪
33
41
 
34
- - Slice Contract 的 `common.context_plan` 是实现上下文的唯一轻量计划:先读 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线,再按影响面按需加载 references;达到最小充分证据后停止扩展。缺失权威上下文只能 `blocked` 或 `reroute`。
42
+ - Slice Contract 的 Context Plan(v2 `common.context_plan`,v3 `scope.context_plan`) 是实现上下文的唯一轻量计划:先读 `CONTEXT.md`、已批准 Spec、当前合同和适用 ADR / 工程基线,再按影响面按需加载 references;达到最小充分证据后停止扩展。缺失权威上下文只能 `blocked` 或 `reroute`。
35
43
  - `project-instance` 的所有生命周期工作单元在批准或 `next_route` 前必须生成并校验 `context_reconciliation`;它绑定根目录唯一 `CONTEXT.md`、结构化术语引用以及全文/引用集双摘要,是横切证据而不是新增 gate。`template-source` 维护只验证模板、schema、场景和分发投影,结果记录带原因的 `not-applicable`。
36
44
  - 质量标准在 `engineering-baseline` 中定义一次,以 `baseline_id` / `baseline_version` 被 Slice Contract、YSS Skill Execution Result、`code-review` 和发布检查复用;切片不得重定义同一标准。约束结果统一写入 `constraint_results`。
37
45
  - 只有命中高风险影响时才要求 Doubt-Driven 在途反证:API / 数据迁移、跨仓契约、发布回滚、实际改变的安全行为、生命周期或生成语义。反证写入现有决策 / 架构 / 契约 / 发布审查记录,不新增生命周期阶段;缺少反证、证据不足或残余风险未处理即阻断。
@@ -26,10 +26,10 @@
26
26
 
27
27
  | 稳定 ID | 门禁 | 所属阶段 | 触发条件 | 前置门禁 / 检查 | 必须留下的证据 |
28
28
  |---|---|---|---|---|---|
29
- | `gate.plan-approved` | Plan 批准 | `stage.plan` | Plan 结论进入 Spec;汇总战略检查后仅确认一次当前规划范围。 | `check.domain-strategy-approved`、`check.stage-decision-package-approved` | `evidence.approval-record` |
30
- | `gate.spec-baseline-approved` | Spec 基线批准 | `stage.spec-architecture` | 新功能、行为变化或范围扩大进入 Spec 基线。 | 无 | `evidence.approval-record` |
31
- | `gate.product-design-approved` | 产品设计批准 | `stage.product-design` | 存在产品设计影响;独立原型评审与交付物验证通过后确认最终原型。 | `check.prototype-reviewed`、`check.prototype-verified` | `evidence.prototype-confirmation` |
32
- | `gate.engineering-contract-approved` | 工程契约批准 | `stage.system-data-engineering` | 存在 API、架构或工程基线影响;完成适用专业审查后统一批准,有 API 影响时同时冻结当前 OpenAPI。 | `check.openapi-draft-reviewed`、`check.design-reviewed`、`check.architecture-reviewed`、`check.engineering-baseline-accepted`、`check.openapi-frozen` | `evidence.approval-record`、`evidence.fresh-verification` |
29
+ | `gate.plan-approved` | Plan 批准 | `stage.plan` | Plan 结论进入 Spec;汇总战略检查,核验当前规划范围的原始批准或有效授权延续。 | `check.domain-strategy-approved`、`check.stage-decision-package-approved` | `evidence.approval-record` |
30
+ | `gate.spec-baseline-approved` | Spec 基线批准 | `stage.spec-architecture` | 新功能、行为变化或范围扩大进入 Spec 基线;已授权范围内细化复用当前有效授权,实质变化重新决定。 | 无 | `evidence.approval-record` |
31
+ | `gate.product-design-approved` | 产品设计批准 | `stage.product-design` | 存在产品设计影响;独立原型评审与交付物验证通过后核验原批准或授权延续,新增体验取舍由用户决定。 | `check.prototype-reviewed`、`check.prototype-verified` | `evidence.prototype-confirmation` |
32
+ | `gate.engineering-contract-approved` | 工程契约批准 | `stage.system-data-engineering` | 存在 API、架构或工程基线影响;组合适用专业审查后统一批准并核验授权,有 API 影响时同时冻结当前 OpenAPI;范围内细化不重复请求用户确认。 | `check.openapi-draft-reviewed`、`check.design-reviewed`、`check.architecture-reviewed`、`check.engineering-baseline-accepted`、`check.openapi-frozen` | `evidence.approval-record`、`evidence.fresh-verification` |
33
33
  | `gate.slice-contract-approved` | 切片合同批准 | `stage.ticket-formalization` | 主控在已授权范围内批准已持久化且当前的垂直切片合同;不代替就绪计算。 | 无 | `evidence.contract-approval` |
34
34
  | `gate.delivery-accepted` | 交付验收 | `stage.verification-release-retrospective` | 实现交付验收;汇总独立审查、Fresh Verification 和回滚证据,不授予合并或发布权限。 | `check.frontend-implementation-verified` | `evidence.fresh-verification`、`evidence.checkpoint-and-rollback` |
35
35
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "registry_id": "yss.lifecycle",
4
- "semantic_sha256": "5ec72f7acca16869cb25c1089f925c5a60c1dd376b4fc4799b09f5678ae065c3",
4
+ "semantic_sha256": "6d994e65718fd614c03519fe72377206bba11f5bc77da7aed0e0f1cd792cee88",
5
5
  "published_ids": [
6
6
  "artifact.architecture-review",
7
7
  "artifact.data-architecture",
@@ -150,7 +150,7 @@ gates:
150
150
  - id: gate.plan-approved
151
151
  name: Plan 批准
152
152
  stage: stage.plan
153
- trigger: Plan 结论进入 Spec;汇总战略检查后仅确认一次当前规划范围。
153
+ trigger: Plan 结论进入 Spec;汇总战略检查,核验当前规划范围的原始批准或有效授权延续。
154
154
  evidence:
155
155
  - evidence.approval-record
156
156
  requires_checks:
@@ -159,14 +159,14 @@ gates:
159
159
  - id: gate.spec-baseline-approved
160
160
  name: Spec 基线批准
161
161
  stage: stage.spec-architecture
162
- trigger: 新功能、行为变化或范围扩大进入 Spec 基线。
162
+ trigger: 新功能、行为变化或范围扩大进入 Spec 基线;已授权范围内细化复用当前有效授权,实质变化重新决定。
163
163
  evidence:
164
164
  - evidence.approval-record
165
165
  requires_checks: []
166
166
  - id: gate.product-design-approved
167
167
  name: 产品设计批准
168
168
  stage: stage.product-design
169
- trigger: 存在产品设计影响;独立原型评审与交付物验证通过后确认最终原型。
169
+ trigger: 存在产品设计影响;独立原型评审与交付物验证通过后核验原批准或授权延续,新增体验取舍由用户决定。
170
170
  evidence:
171
171
  - evidence.prototype-confirmation
172
172
  requires_checks:
@@ -175,7 +175,7 @@ gates:
175
175
  - id: gate.engineering-contract-approved
176
176
  name: 工程契约批准
177
177
  stage: stage.system-data-engineering
178
- trigger: 存在 API、架构或工程基线影响;完成适用专业审查后统一批准,有 API 影响时同时冻结当前 OpenAPI。
178
+ trigger: 存在 API、架构或工程基线影响;组合适用专业审查后统一批准并核验授权,有 API 影响时同时冻结当前 OpenAPI;范围内细化不重复请求用户确认。
179
179
  evidence:
180
180
  - evidence.approval-record
181
181
  - evidence.fresh-verification
@@ -59,6 +59,97 @@
59
59
  },
60
60
  "production_database": {
61
61
  "const": "not-bound"
62
+ },
63
+ "platform_configuration": {
64
+ "type": "object",
65
+ "additionalProperties": false,
66
+ "required": [
67
+ "schema_version",
68
+ "profile_id",
69
+ "spring_boot_version",
70
+ "java_version",
71
+ "parent",
72
+ "bom",
73
+ "compatibility_id",
74
+ "compatibility_digest"
75
+ ],
76
+ "properties": {
77
+ "schema_version": {
78
+ "enum": [
79
+ 1,
80
+ 2
81
+ ]
82
+ },
83
+ "profile_id": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ },
87
+ "spring_boot_version": {
88
+ "type": "string",
89
+ "pattern": "^\\d+\\.\\d+\\.\\d+$"
90
+ },
91
+ "java_version": {
92
+ "enum": [
93
+ 8,
94
+ 17,
95
+ 21
96
+ ]
97
+ },
98
+ "compatibility_id": {
99
+ "type": "string",
100
+ "minLength": 1
101
+ },
102
+ "compatibility_digest": {
103
+ "type": "string",
104
+ "pattern": "^sha256:[a-f0-9]{64}$"
105
+ },
106
+ "parent": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "group_id",
111
+ "artifact_id",
112
+ "version"
113
+ ],
114
+ "properties": {
115
+ "group_id": {
116
+ "type": "string",
117
+ "pattern": "^[A-Za-z0-9_.-]+$"
118
+ },
119
+ "artifact_id": {
120
+ "type": "string",
121
+ "pattern": "^[A-Za-z0-9_.-]+$"
122
+ },
123
+ "version": {
124
+ "type": "string",
125
+ "pattern": "^[A-Za-z0-9_.-]+$"
126
+ }
127
+ }
128
+ },
129
+ "bom": {
130
+ "type": "object",
131
+ "additionalProperties": false,
132
+ "required": [
133
+ "group_id",
134
+ "artifact_id",
135
+ "version"
136
+ ],
137
+ "properties": {
138
+ "group_id": {
139
+ "type": "string",
140
+ "pattern": "^[A-Za-z0-9_.-]+$"
141
+ },
142
+ "artifact_id": {
143
+ "type": "string",
144
+ "pattern": "^[A-Za-z0-9_.-]+$"
145
+ },
146
+ "version": {
147
+ "type": "string",
148
+ "pattern": "^[A-Za-z0-9_.-]+$"
149
+ }
150
+ }
151
+ }
152
+ }
62
153
  }
63
154
  }
64
155
  },
@@ -8,6 +8,7 @@
8
8
  "properties": {
9
9
  "plan_review_ref": { "type": "string", "minLength": 1 },
10
10
  "plan_user_decision_ref": { "type": "string", "minLength": 1 },
11
+ "plan_continuation_ref": { "type": "string", "minLength": 1 },
11
12
  "schema_version": { "const": 1 },
12
13
  "frontend_delivery": {
13
14
  "type": "object", "additionalProperties": false, "required": ["acceptance_ref"],
@@ -58,7 +59,7 @@
58
59
  "gate_refs": { "type": "array", "items": { "type": "string", "minLength": 1 } }
59
60
  }
60
61
  },
61
- "user_decisions": { "type": "array", "items": { "type": "object", "required": ["boundary", "subject_ref", "scope", "user_decision_ref"], "properties": { "boundary": { "type": "string" }, "subject_ref": { "type": "string" }, "scope": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "user_decision_ref": { "type": "string" } }, "additionalProperties": false } },
62
+ "user_decisions": { "type": "array", "items": { "type": "object", "required": ["boundary", "subject_ref", "scope"], "oneOf": [{"required": ["user_decision_ref"]}, {"required": ["continuation_ref"]}], "properties": { "boundary": { "type": "string" }, "subject_ref": { "type": "string" }, "scope": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "user_decision_ref": { "type": "string", "minLength": 1 }, "continuation_ref": { "type": "string", "minLength": 1 } }, "additionalProperties": false } },
62
63
  "inputs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
63
64
  "allowed_read_paths": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
64
65
  "objective": { "type": "string", "minLength": 1 },