create-yss-spec 3.1.3 → 3.3.0

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 (457) hide show
  1. package/README.md +5 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  4. package/template/.agents/skills/code-review/SKILL.md +4 -0
  5. package/template/.agents/skills/code-review/agents/openai.yaml +1 -1
  6. package/template/.agents/skills/code-review/references/yss-review-standards.md +9 -2
  7. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  10. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  11. package/template/.agents/skills/yss-domain/SKILL.md +3 -3
  12. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  13. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  14. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  15. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  16. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  17. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  18. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  19. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  20. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  21. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  22. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  23. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  24. package/template/.agents/skills/yss-mvc-design/SKILL.md +16 -0
  25. package/template/.agents/skills/yss-mvc-design/agents/openai.yaml +4 -0
  26. package/template/.agents/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  27. package/template/.agents/skills/yss-mybatis/SKILL.md +34 -58
  28. package/template/.agents/skills/yss-mybatis/agents/openai.yaml +2 -2
  29. package/template/.agents/skills/yss-mybatis/references/source-index.md +88 -68
  30. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +48 -43
  31. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  32. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  33. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  34. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +6 -3
  35. package/template/.agents/skills/yss-repository/SKILL.md +28 -70
  36. package/template/.agents/skills/yss-repository/agents/openai.yaml +2 -2
  37. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  38. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  39. package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  40. package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  41. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  42. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  43. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  44. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  45. package/template/.agents/skills/yss-tactical-design/SKILL.md +2 -2
  46. package/template/.agents/skills/yss-tactical-design/references/output-template.md +2 -0
  47. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  48. package/template/.agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  49. package/template/.agents/skills/yss-technical-design/SKILL.md +31 -0
  50. package/template/.agents/skills/yss-technical-design/agents/openai.yaml +4 -0
  51. package/template/.agents/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  52. package/template/.agents/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  53. package/template/.agents/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  54. package/template/.agents/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  55. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  56. package/template/.agents/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  57. package/template/.agents/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  58. package/template/.claude/skills/code-review/SKILL.md +4 -0
  59. package/template/.claude/skills/code-review/agents/openai.yaml +1 -1
  60. package/template/.claude/skills/code-review/references/yss-review-standards.md +9 -2
  61. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  62. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  63. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  64. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  65. package/template/.claude/skills/yss-domain/SKILL.md +3 -3
  66. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  67. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  68. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  69. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  70. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  71. package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  72. package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  73. package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  74. package/template/.claude/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  75. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  76. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  77. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  78. package/template/.claude/skills/yss-mvc-design/SKILL.md +16 -0
  79. package/template/.claude/skills/yss-mvc-design/agents/openai.yaml +4 -0
  80. package/template/.claude/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  81. package/template/.claude/skills/yss-mybatis/SKILL.md +34 -58
  82. package/template/.claude/skills/yss-mybatis/agents/openai.yaml +2 -2
  83. package/template/.claude/skills/yss-mybatis/references/source-index.md +88 -68
  84. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +48 -43
  85. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  86. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  87. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  88. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +6 -3
  89. package/template/.claude/skills/yss-repository/SKILL.md +28 -70
  90. package/template/.claude/skills/yss-repository/agents/openai.yaml +2 -2
  91. package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  92. package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  93. package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  94. package/template/.claude/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  95. package/template/.claude/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  96. package/template/.claude/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  97. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  98. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  99. package/template/.claude/skills/yss-tactical-design/SKILL.md +2 -2
  100. package/template/.claude/skills/yss-tactical-design/references/output-template.md +2 -0
  101. package/template/.claude/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  102. package/template/.claude/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  103. package/template/.claude/skills/yss-technical-design/SKILL.md +31 -0
  104. package/template/.claude/skills/yss-technical-design/agents/openai.yaml +4 -0
  105. package/template/.claude/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  106. package/template/.claude/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  107. package/template/.claude/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  108. package/template/.claude/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  109. package/template/.claude/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  110. package/template/.claude/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  111. package/template/.claude/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  112. package/template/.codex/skills/code-review/SKILL.md +4 -0
  113. package/template/.codex/skills/code-review/agents/openai.yaml +1 -1
  114. package/template/.codex/skills/code-review/references/yss-review-standards.md +9 -2
  115. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  116. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  117. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  118. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  119. package/template/.codex/skills/yss-domain/SKILL.md +3 -3
  120. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  121. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  122. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  123. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  124. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  125. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  126. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  127. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  128. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  129. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  130. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  131. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  132. package/template/.codex/skills/yss-mvc-design/SKILL.md +16 -0
  133. package/template/.codex/skills/yss-mvc-design/agents/openai.yaml +4 -0
  134. package/template/.codex/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  135. package/template/.codex/skills/yss-mybatis/SKILL.md +34 -58
  136. package/template/.codex/skills/yss-mybatis/agents/openai.yaml +2 -2
  137. package/template/.codex/skills/yss-mybatis/references/source-index.md +88 -68
  138. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +48 -43
  139. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  140. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  141. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  142. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +6 -3
  143. package/template/.codex/skills/yss-repository/SKILL.md +28 -70
  144. package/template/.codex/skills/yss-repository/agents/openai.yaml +2 -2
  145. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  146. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  147. package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  148. package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  149. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  150. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  151. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  152. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  153. package/template/.codex/skills/yss-tactical-design/SKILL.md +2 -2
  154. package/template/.codex/skills/yss-tactical-design/references/output-template.md +2 -0
  155. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  156. package/template/.codex/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  157. package/template/.codex/skills/yss-technical-design/SKILL.md +31 -0
  158. package/template/.codex/skills/yss-technical-design/agents/openai.yaml +4 -0
  159. package/template/.codex/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  160. package/template/.codex/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  161. package/template/.codex/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  162. package/template/.codex/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  163. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  164. package/template/.codex/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  165. package/template/.codex/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  166. package/template/.cursor/skills/code-review/SKILL.md +4 -0
  167. package/template/.cursor/skills/code-review/agents/openai.yaml +1 -1
  168. package/template/.cursor/skills/code-review/references/yss-review-standards.md +9 -2
  169. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  170. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  171. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  172. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  173. package/template/.cursor/skills/yss-domain/SKILL.md +3 -3
  174. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  175. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  176. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  177. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  178. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  179. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  180. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  181. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  182. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  183. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  184. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  185. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  186. package/template/.cursor/skills/yss-mvc-design/SKILL.md +16 -0
  187. package/template/.cursor/skills/yss-mvc-design/agents/openai.yaml +4 -0
  188. package/template/.cursor/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  189. package/template/.cursor/skills/yss-mybatis/SKILL.md +34 -58
  190. package/template/.cursor/skills/yss-mybatis/agents/openai.yaml +2 -2
  191. package/template/.cursor/skills/yss-mybatis/references/source-index.md +88 -68
  192. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +48 -43
  193. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  194. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  195. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  196. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +6 -3
  197. package/template/.cursor/skills/yss-repository/SKILL.md +28 -70
  198. package/template/.cursor/skills/yss-repository/agents/openai.yaml +2 -2
  199. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  200. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  201. package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  202. package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  203. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  204. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  205. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  206. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  207. package/template/.cursor/skills/yss-tactical-design/SKILL.md +2 -2
  208. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +2 -0
  209. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  210. package/template/.cursor/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  211. package/template/.cursor/skills/yss-technical-design/SKILL.md +31 -0
  212. package/template/.cursor/skills/yss-technical-design/agents/openai.yaml +4 -0
  213. package/template/.cursor/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  214. package/template/.cursor/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  215. package/template/.cursor/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  216. package/template/.cursor/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  217. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  218. package/template/.cursor/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  219. package/template/.cursor/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  220. package/template/.pi/skills/code-review/SKILL.md +4 -0
  221. package/template/.pi/skills/code-review/agents/openai.yaml +1 -1
  222. package/template/.pi/skills/code-review/references/yss-review-standards.md +9 -2
  223. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  224. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  225. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  226. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  227. package/template/.pi/skills/yss-domain/SKILL.md +3 -3
  228. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  229. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  230. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  231. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  232. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  233. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  234. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  235. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  236. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  237. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  238. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  239. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  240. package/template/.pi/skills/yss-mvc-design/SKILL.md +16 -0
  241. package/template/.pi/skills/yss-mvc-design/agents/openai.yaml +4 -0
  242. package/template/.pi/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  243. package/template/.pi/skills/yss-mybatis/SKILL.md +34 -58
  244. package/template/.pi/skills/yss-mybatis/agents/openai.yaml +2 -2
  245. package/template/.pi/skills/yss-mybatis/references/source-index.md +88 -68
  246. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +48 -43
  247. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  248. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  249. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  250. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +6 -3
  251. package/template/.pi/skills/yss-repository/SKILL.md +28 -70
  252. package/template/.pi/skills/yss-repository/agents/openai.yaml +2 -2
  253. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  254. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  255. package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  256. package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  257. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  258. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  259. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  260. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  261. package/template/.pi/skills/yss-tactical-design/SKILL.md +2 -2
  262. package/template/.pi/skills/yss-tactical-design/references/output-template.md +2 -0
  263. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  264. package/template/.pi/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  265. package/template/.pi/skills/yss-technical-design/SKILL.md +31 -0
  266. package/template/.pi/skills/yss-technical-design/agents/openai.yaml +4 -0
  267. package/template/.pi/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  268. package/template/.pi/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  269. package/template/.pi/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  270. package/template/.pi/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  271. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  272. package/template/.pi/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  273. package/template/.pi/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  274. package/template/.qoder/skills/code-review/SKILL.md +4 -0
  275. package/template/.qoder/skills/code-review/agents/openai.yaml +1 -1
  276. package/template/.qoder/skills/code-review/references/yss-review-standards.md +9 -2
  277. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  278. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  279. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  280. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  281. package/template/.qoder/skills/yss-domain/SKILL.md +3 -3
  282. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  283. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  284. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  285. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  286. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  287. package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  288. package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  289. package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  290. package/template/.qoder/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  291. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  292. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  293. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  294. package/template/.qoder/skills/yss-mvc-design/SKILL.md +16 -0
  295. package/template/.qoder/skills/yss-mvc-design/agents/openai.yaml +4 -0
  296. package/template/.qoder/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  297. package/template/.qoder/skills/yss-mybatis/SKILL.md +34 -58
  298. package/template/.qoder/skills/yss-mybatis/agents/openai.yaml +2 -2
  299. package/template/.qoder/skills/yss-mybatis/references/source-index.md +88 -68
  300. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +48 -43
  301. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  302. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  303. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  304. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +6 -3
  305. package/template/.qoder/skills/yss-repository/SKILL.md +28 -70
  306. package/template/.qoder/skills/yss-repository/agents/openai.yaml +2 -2
  307. package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  308. package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  309. package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  310. package/template/.qoder/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  311. package/template/.qoder/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  312. package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  313. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  314. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  315. package/template/.qoder/skills/yss-tactical-design/SKILL.md +2 -2
  316. package/template/.qoder/skills/yss-tactical-design/references/output-template.md +2 -0
  317. package/template/.qoder/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  318. package/template/.qoder/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  319. package/template/.qoder/skills/yss-technical-design/SKILL.md +31 -0
  320. package/template/.qoder/skills/yss-technical-design/agents/openai.yaml +4 -0
  321. package/template/.qoder/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  322. package/template/.qoder/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  323. package/template/.qoder/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  324. package/template/.qoder/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  325. package/template/.qoder/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  326. package/template/.qoder/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  327. package/template/.qoder/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  328. package/template/.trae/skills/code-review/SKILL.md +4 -0
  329. package/template/.trae/skills/code-review/agents/openai.yaml +1 -1
  330. package/template/.trae/skills/code-review/references/yss-review-standards.md +9 -2
  331. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  332. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  333. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  334. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  335. package/template/.trae/skills/yss-domain/SKILL.md +3 -3
  336. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  337. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  338. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  339. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  340. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  341. package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  342. package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +9 -0
  343. package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +35 -2
  344. package/template/.trae/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +8 -1
  345. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  346. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  347. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  348. package/template/.trae/skills/yss-mvc-design/SKILL.md +16 -0
  349. package/template/.trae/skills/yss-mvc-design/agents/openai.yaml +4 -0
  350. package/template/.trae/skills/yss-mvc-design/references/mvc-design.schema.json +315 -0
  351. package/template/.trae/skills/yss-mybatis/SKILL.md +34 -58
  352. package/template/.trae/skills/yss-mybatis/agents/openai.yaml +2 -2
  353. package/template/.trae/skills/yss-mybatis/references/source-index.md +88 -68
  354. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +48 -43
  355. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  356. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +81 -19
  357. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +6 -2
  358. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +6 -3
  359. package/template/.trae/skills/yss-repository/SKILL.md +28 -70
  360. package/template/.trae/skills/yss-repository/agents/openai.yaml +2 -2
  361. package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  362. package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  363. package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  364. package/template/.trae/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  365. package/template/.trae/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  366. package/template/.trae/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  367. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  368. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  369. package/template/.trae/skills/yss-tactical-design/SKILL.md +2 -2
  370. package/template/.trae/skills/yss-tactical-design/references/output-template.md +2 -0
  371. package/template/.trae/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  372. package/template/.trae/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +3 -2
  373. package/template/.trae/skills/yss-technical-design/SKILL.md +31 -0
  374. package/template/.trae/skills/yss-technical-design/agents/openai.yaml +4 -0
  375. package/template/.trae/skills/yss-technical-design/references/technical-design-common.schema.json +290 -0
  376. package/template/.trae/skills/yss-technical-design/references/technical-design-contract.md +31 -0
  377. package/template/.trae/skills/yss-technical-design/references/technical-design.schema.json +759 -0
  378. package/template/.trae/skills/yss-technical-design/scripts/generate-schema.mjs +20 -0
  379. package/template/.trae/skills/yss-technical-design/scripts/validate-technical-design.mjs +134 -0
  380. package/template/.trae/skills/yss-technical-design/tests/fixtures.mjs +32 -0
  381. package/template/.trae/skills/yss-technical-design/tests/run-scenarios.mjs +82 -0
  382. package/template/CONTEXT.md +2 -1
  383. package/template/docs/agents/digital-human-roles.yaml +4 -2
  384. package/template/docs/agents/yss-skill-registry.yaml +25 -1
  385. package/template/docs/architecture/templates/architecture-review-checklist.md +1 -1
  386. package/template/docs/architecture/templates/system-overview-design-template.md +15 -4
  387. package/template/docs/process/lifecycle-artifact-map.md +6 -0
  388. package/template/docs/process/lifecycle-registry-baseline.json +8 -1
  389. package/template/docs/process/lifecycle-registry.yaml +32 -2
  390. package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +38 -0
  391. package/template/docs/process/schemas/project-scaffold-contract.schema.json +113 -0
  392. package/template/docs/process/schemas/strategic-design-handoff.schema.json +77 -4
  393. package/template/docs/process/strategic-handoff-package.md +4 -2
  394. package/template/docs/process/template-verification-profiles.yaml +37 -0
  395. package/template/docs/templates/implementation-repo-registry-template.md +8 -0
  396. package/template/docs/templates/review-report-template.md +7 -3
  397. package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +7 -6
  398. package/template/scripts/fixtures/strategic-handoff/fixture.mjs +3 -2
  399. package/template/scripts/lib/implementation-contract-compiler.mjs +8 -1
  400. package/template/scripts/lib/lifecycle-context-query.mjs +137 -0
  401. package/template/scripts/lib/lifecycle-transition.mjs +109 -3
  402. package/template/scripts/lib/scenario-checks.mjs +29 -26
  403. package/template/scripts/lib/skill-registry.mjs +9 -0
  404. package/template/scripts/lib/strategic-handoff-consumption.mjs +4 -4
  405. package/template/scripts/lib/strategic-handoff-design-targets.mjs +15 -0
  406. package/template/scripts/lib/technical-design-boundary.mjs +23 -0
  407. package/template/scripts/query-lifecycle-context +25 -0
  408. package/template/scripts/sync-strategic-handoff-tools +3 -2
  409. package/template/scripts/verify-business-language-scenarios +0 -7
  410. package/template/scripts/verify-frontend-scaffold-generator-scenarios +2 -0
  411. package/template/scripts/verify-lifecycle-context-query-scenarios +68 -0
  412. package/template/scripts/verify-lifecycle-transition-scenarios +44 -4
  413. package/template/scripts/verify-strategic-handoff-package-scenarios +7 -1
  414. package/template/skills-lock.json +48 -18
  415. package/template.snapshot.json +4 -4
  416. package/template/.agents/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  417. package/template/.agents/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  418. package/template/.agents/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  419. package/template/.agents/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  420. package/template/.agents/skills/yss-mybatis/references/README.md +0 -57
  421. package/template/.agents/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  422. package/template/.claude/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  423. package/template/.claude/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  424. package/template/.claude/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  425. package/template/.claude/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  426. package/template/.claude/skills/yss-mybatis/references/README.md +0 -57
  427. package/template/.claude/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  428. package/template/.codex/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  429. package/template/.codex/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  430. package/template/.codex/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  431. package/template/.codex/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  432. package/template/.codex/skills/yss-mybatis/references/README.md +0 -57
  433. package/template/.codex/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  434. package/template/.cursor/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  435. package/template/.cursor/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  436. package/template/.cursor/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  437. package/template/.cursor/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  438. package/template/.cursor/skills/yss-mybatis/references/README.md +0 -57
  439. package/template/.cursor/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  440. package/template/.pi/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  441. package/template/.pi/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  442. package/template/.pi/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  443. package/template/.pi/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  444. package/template/.pi/skills/yss-mybatis/references/README.md +0 -57
  445. package/template/.pi/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  446. package/template/.qoder/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  447. package/template/.qoder/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  448. package/template/.qoder/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  449. package/template/.qoder/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  450. package/template/.qoder/skills/yss-mybatis/references/README.md +0 -57
  451. package/template/.qoder/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  452. package/template/.trae/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  453. package/template/.trae/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  454. package/template/.trae/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  455. package/template/.trae/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  456. package/template/.trae/skills/yss-mybatis/references/README.md +0 -57
  457. package/template/.trae/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
@@ -83,7 +83,7 @@ exclusive_flags:
83
83
 
84
84
  slice_contract_required:
85
85
  root: [schema_version, contract_id, contract_version, slice_id, status, lifecycle_refs, readiness, resolution, common, frontend, backend, contract, cross_repo, work_units]
86
- lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, prototype_profile_decision, prototype_deliverable, prototype_deliverable_verification, visual_baseline, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, tactical_design, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
86
+ lifecycle_refs: [spec, ticket, requirement_freeze, low_fidelity_review, prototype_review, prototype_profile_decision, prototype_deliverable, prototype_deliverable_verification, visual_baseline, prototype_confirmation, openapi_freeze_or_no_impact, architecture_review, data_architecture, technical_design, tactical_design, engineering_baseline, build_architecture_checklist, implementation_repository, frontend_repository, backend_repository, maven_wrapper]
87
87
  readiness: [blockers, stale_inputs, not_applicable]
88
88
  resolution: [required_capabilities, required_skills, recipe_ids, conditions, reason_chains, registry_digest, compiler_contract_digest, compiled_at, freshness]
89
89
  common: [impacted_areas, implementation_path_policy, project_roots, required_capabilities, required_skills, optional_skills, unavailable_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands, human_review_points, full_reroute_triggers, quality_baseline_ref, context_plan, doubt_driven_review]
@@ -109,6 +109,7 @@ lifecycle_ref_by_readiness:
109
109
  openapi_freeze: openapi_freeze_or_no_impact
110
110
  no_api_impact_record: openapi_freeze_or_no_impact
111
111
  data_architecture: data_architecture
112
+ technical_design: technical_design
112
113
  tactical_design: tactical_design
113
114
  engineering_baseline: engineering_baseline
114
115
  backend_repository: backend_repository
@@ -137,8 +138,33 @@ context_plan:
137
138
  context_stop_rule: minimal-sufficient-evidence
138
139
  missing_context_action: [blocked, reroute]
139
140
 
141
+ project_scaffold_contract_schema:
142
+ schema_version: 4
143
+ schema_ref: docs/process/schemas/project-scaffold-contract.schema.json
144
+ identity: project-engineering-baseline
145
+ discriminant: delivery_role
146
+ delivery_roles:
147
+ backend:
148
+ scaffold_kinds: [backend-ddd, backend-layered-mvc]
149
+ generators: [yss-ddd-scaffold-generator, yss-layered-mvc-scaffold-generator]
150
+ requires: [scaffold_request_id, architecture_family, decision_ref, decision_id, decision_digest, project_name, base_package, maven_coordinates, profiles, module_profile]
151
+ frontend:
152
+ scaffold_kinds: [frontend-yss-vue3]
153
+ generators: [yss-frontend-scaffold-generator]
154
+ requires: [frontend, repository_scope, init_git]
155
+ openapi_modes: [frozen, not-applicable]
156
+ common_required: [contract_id, contract_version, status, persisted_ref, current_version, delivery_role, scaffold_kind, generator_skill, implementation_repository, target_output_dir, repository_scope, init_git, allowed_write_paths, expected_evidence_files, verification_commands, approval, generation_policy]
157
+ approved_by: yss-product-lifecycle
158
+ generation_mode: controlled-generation
159
+ target_policy: nonexistent-or-empty
160
+ force_overwrite: forbidden
161
+ compatibility:
162
+ backend_schema_v3: read-only-and-complete-approved-generation
163
+ frontend_before_v4: unsupported
164
+
140
165
  scaffold_contract_schema:
141
166
  schema_version: 3
167
+ compatibility_status: legacy-backend-read-only
142
168
  identity: service-engineering-baseline
143
169
  compiled_by: yss-implementation-contract-compiler
144
170
  approved_by: yss-product-lifecycle
@@ -233,7 +259,14 @@ applicable_subcontract_nonempty:
233
259
  backend:
234
260
  scalar: [application_boundary, transaction_boundary, persistence_strategy]
235
261
  array: [affected_layers, required_skills, allowed_write_paths, forbidden_patterns, expected_evidence_files, verification_commands]
262
+ conditional_technical_design:
263
+ when: backend-technical-design-impact
264
+ binding: resolution.technical_design
265
+ scalar: [ref, version, digest]
266
+ architecture_match: resolution.architecture_identity.architecture_family
267
+ verification: node .agents/skills/yss-technical-design/scripts/validate-technical-design.mjs <contract> --root <target> --slice <slice-id>
236
268
  conditional_tactical_ddd:
269
+ architecture_family: domain-driven
237
270
  when: [aggregate-impact, state-machine-impact, invariant-impact, consistency-impact, domain-event-impact, gateway-boundary-impact, persistence-mapping-impact]
238
271
  scalar: [tactical_design_ref, tactical_design_version, gateway_boundary_ref]
239
272
  array: [aggregate_refs, invariant_refs, state_behavior_refs, domain_test_seams, application_test_seams]
@@ -366,7 +399,7 @@ unavailable_skill_required: [skill, provider, fallback, resolution]
366
399
  strategic_handoff_consumption:
367
400
  when: upstream-source-is-imported-strategic-handoff
368
401
  required: [import_receipt_ref, bundle_digest, context_reconciliation_ref, rows]
369
- verification: scripts/verify-strategic-handoff-consumption --root <target> --slice <slice-id> <approved-tactical-contract>
402
+ verification: scripts/verify-strategic-handoff-consumption --root <target> --slice <slice-id> <approved-technical-design-contract>
370
403
  require_actual_exit_code: 0
371
404
  stale_policy: latest-imported-source-digest-and-dependent-slices
372
405
  unknown_dependency: block-all
@@ -28,7 +28,8 @@ slice_contract:
28
28
  architecture_review:
29
29
  data_architecture:
30
30
  engineering_baseline:
31
- tactical_design:
31
+ technical_design: # 阅读引用;与 resolution.technical_design.ref 指向同一文件
32
+ tactical_design: # 旧 DDD 引用兼容
32
33
  build_architecture_checklist:
33
34
  implementation_repository:
34
35
  frontend_repository:
@@ -41,6 +42,10 @@ slice_contract:
41
42
  - item:
42
43
  reason:
43
44
  resolution:
45
+ technical_design: # 有技术设计影响时由编译器绑定,DDD / MVC 共用
46
+ ref:
47
+ version:
48
+ digest: # 已持久化合同原始字节摘要
44
49
  required_capabilities: []
45
50
  required_skills: []
46
51
  recipe_ids: []
@@ -201,3 +206,5 @@ work_unit:
201
206
  `work_units` 中的前端、后端和测试任务是切片级子任务,不是新的生命周期阶段。每个子任务必须引用独立任务包;任务包只能消费同一份已批准且版本当前的 Slice Contract。`workflow_status` 追踪执行过程,不能替代生命周期状态;`contract_id`、`contract_version` 或 resolution digest 不一致时必须阻断并回到实现合同编译器。
202
207
 
203
208
  一个切片可以组合多个窄 Recipe,但只计算一次闭包。Recipe 只能引用 capability;合同同时冻结 `required_capabilities`、`required_skills`、完整原因链和 Registry/Compiler digest。任一 digest 或 Visual Baseline 版本 / digest 改变时,当前合同标记 `stale`,重新编译后仍须由 `yss-product-lifecycle` 再批准。UI 切片只消费 `visual_baseline_case_ids` 指定的图片,并先读取 manifest 与语义引用,禁止按目录 glob 猜测图片含义。
209
+
210
+ 技术设计编译绑定使用 `technical_design: {ref, version, digest}` 与 `slice_id`,校验器规则见 `yss-technical-design/references/technical-design-contract.md`。`backend.tactical_ddd` 仅适用于 `domain-driven`;MVC 消费共同技术设计绑定与 `design` 的用例、规则、事务和测试 seam,不填聚合或 Gateway 字段。
@@ -11,7 +11,7 @@ description: 用于在生命周期已批准的脚手架合同下生成通用 YSS
11
11
 
12
12
  - backend `scaffold_status=required`,目标目录已确认且不存在。
13
13
  - `scaffold-architecture-decisions.yaml` 中对应项目已达到 `lifecycle-approved`,确认架构为 `layered-mvc`。
14
- - `yss-implementation-contract-compiler` 已编译 scaffold contract schema v3,生命周期已批准并持久化。
14
+ - `yss-implementation-contract-compiler` 已编译统一 Project Scaffold Contract schema v4;已批准且当前的后端 schema v3 可完成兼容生成。合同须由生命周期批准并持久化。
15
15
  - 合同中的 `decision_id`、文件 digest、Profile、能力闭包、写路径和验证命令仍为当前版本。
16
16
 
17
17
  任一条件缺失时返回 `blocked`。本生成器无交互、无默认回退;用户选择由 `yss-product-lifecycle` 在 `work-unit.technical-analysis` 的工程基线内完成。
@@ -55,7 +55,7 @@ node scripts/generate_and_verify_scaffold.mjs \
55
55
 
56
56
  ## 硬约束
57
57
 
58
- - 只接受 scaffold contract schema v3 和 Manifest schema v3;历史 v2 只读兼容,不用于新生成。
58
+ - 接受统一 schema v4,兼容已批准后端 schema v3;验证器接受对应 Manifest v3/v4。历史 v2 只读兼容,不用于新生成。
59
59
  - `architecture_family` 必须为 `layered-mvc`,`generator_skill` 必须为本 skill。
60
60
  - 目标存在、`--force`、旧项目迁移、模板升级均为 `unsupported`。
61
61
  - Harness 内只允许以 `apps/backend/` 为输出父容器;外部实现仓库使用已登记真实路径。
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- /** 依据生命周期批准的 schema v3 合同生成纯机械 YSS 分层 MVC 后端骨架。 */
2
+ /** 依据生命周期批准的兼容 schema v3 或统一 schema v4 合同生成纯机械 YSS 分层 MVC 后端骨架。 */
3
3
  import { assertScaffoldUserDecision } from "../../../../scripts/lib/user-decision.mjs";
4
4
  import { createHash } from "node:crypto";
5
5
  import { chmod, cp, lstat, mkdir, mkdtemp, readFile, readdir, rename, rm, writeFile } from "node:fs/promises";
@@ -10,6 +10,7 @@ import { parseDocument } from "../../../../scripts/vendor/yaml.mjs";
10
10
  import { findGitRoot, gitSubmoduleScaffoldViolation, overlayMountViolation } from "../../../../scripts/lib/repository-scope-policy.mjs";
11
11
  import { assertLocalDatabaseProfile, localDatabaseConfiguration, scaffoldArchitectureIdentity } from "../../../../scripts/lib/scaffold-local-database.mjs";
12
12
  import { validateArchitectureIdentity } from "../../../../scripts/lib/backend-architecture.mjs";
13
+ import { validateJsonSchema } from "../../../../scripts/lib/json-schema.mjs";
13
14
 
14
15
  const SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url));
15
16
  const SKILL_ROOT = path.resolve(SCRIPT_DIR, "..");
@@ -151,11 +152,13 @@ async function validateContract(options, skillId, architectureProfile) {
151
152
  const contractText = await readFile(contractFile, "utf8").catch(() => fail(`脚手架合同不可读取: ${contractFile}`));
152
153
  let contract;
153
154
  try { contract = JSON.parse(contractText); } catch { fail("脚手架合同必须是 JSON 对象"); }
154
- if (contract.schema_version !== 3) fail(`unsupported: 新生成只接受 scaffold contract schema v3,收到 v${contract.schema_version}`);
155
+ if (![3, 4].includes(contract.schema_version)) fail(`unsupported: 只接受兼容 scaffold contract v3 或统一 v4,收到 v${contract.schema_version}`);
156
+ if (contract.schema_version === 4 && (contract.kind !== "project-scaffold-contract" || contract.delivery_role !== "backend" || contract.scaffold_kind !== "backend-layered-mvc")) fail("schema v4 合同必须绑定 backend/backend-layered-mvc");
157
+ if (contract.schema_version === 4) validateJsonSchema(contract, path.join(REPOSITORY_ROOT, "docs/process/schemas/project-scaffold-contract.schema.json"), { label: "Project Scaffold Contract v4" });
155
158
  const required = ["contract_id", "contract_version", "scaffold_request_id", "status", "compiler_draft_ref", "lifecycle_approval_ref", "persisted_ref", "current_version", "implementation_repository", "backend_repository", "scaffold_status", "project_name", "target_output_dir", "base_package", "architecture_family", "generator_skill", "decision_ref", "decision_id", "decision_digest", "maven_coordinates", "profiles", "module_profile", "allowed_write_paths", "expected_evidence_files", "verification_commands", "approval", "work_unit", "generation_policy"];
156
159
  const missing = required.filter((field) => !isPresent(contract[field]));
157
160
  if (missing.length) fail(`脚手架合同缺少字段: ${missing.join(", ")}`);
158
- if (contract.status !== "approved" || contract.current_version !== contract.contract_version) fail("脚手架合同必须已批准且为当前版本");
161
+ if (contract.status !== "approved" || (contract.current_version !== contract.contract_version && !(contract.schema_version === 4 && contract.current_version === true))) fail("脚手架合同必须已批准且为当前版本");
159
162
  if (contract.contract_id !== options.contractId || contract.contract_version !== options.contractVersion || contract.compiler_draft_ref !== options.compilerDraftRef || contract.lifecycle_approval_ref !== options.approvalRef || contract.persisted_ref !== options.persistedRef) fail("命令行合同元数据与批准合同不一致");
160
163
  if (contract.scaffold_status !== "required" || contract.architecture_family !== "layered-mvc" || contract.generator_skill !== skillId) fail("合同必须绑定 layered-mvc 与本生成器");
161
164
  if (contract.project_name !== options.projectName || contract.base_package !== options.basePackage || path.resolve(contract.target_output_dir) !== path.resolve(options.outputDir)) fail("项目身份或输出目录与合同不一致");
@@ -244,14 +247,14 @@ export async function generate(options, { skillId = SKILL_ID, architectureProfil
244
247
  await cp(wrapper, projectRoot, { recursive: true });
245
248
  await chmod(path.join(projectRoot, "mvnw"), 0o755);
246
249
  if (finalize) await finalize({ projectRoot, contract, architectureIdentity: scaffoldArchitectureIdentity(contract, sha256(contractText)) });
247
- await put(projectRoot, "README.md", `# ${options.projectName}\n\n该工程由 ${skillId} 根据批准的 schema v3 合同生成。模块:${modules.join("、")}。不包含业务 API、SQL 或生产数据库绑定。\n\n本地运行需同时显式启用 Maven -Pscaffold-local 和 Spring scaffold-local Profile;测试独立使用 H2。生产数据库须由后续已批准存储工作单元接入。`);
250
+ await put(projectRoot, "README.md", `# ${options.projectName}\n\n该工程由 ${skillId} 根据批准的 schema v${contract.schema_version} 合同生成。模块:${modules.join("、")}。不包含业务 API、SQL 或生产数据库绑定。\n\n本地运行需同时显式启用 Maven -Pscaffold-local 和 Spring scaffold-local Profile;测试独立使用 H2。生产数据库须由后续已批准存储工作单元接入。`);
248
251
  const generatedFiles = [];
249
252
  for (const entry of await fileEntries(projectRoot, new Set([".yss/scaffold-generation.json"]))) generatedFiles.push({ path: entry.relative, owner: "generator", sha256: rawSha256(await readFile(entry.target)) });
250
253
  const architectureRuleset = `${serverRoot}/src/test/java/${packagePath}/architecture/LayeredMvcArchitectureTest.java`;
251
254
  const downstream = {};
252
255
  for (const skill of ["yss-application", "yss-repository", "yss-mybatis", "yss-web-controller", "yss-dto", "yss-exception", "yss-validation", "mapstruct", "lombok", "alibaba-java-code-style"]) downstream[skill] = (await treeDigest(path.join(REPOSITORY_ROOT, ".agents/skills", skill))).replace(/^sha256:/, "");
253
256
  const manifest = {
254
- schema_version: 3,
257
+ schema_version: contract.schema_version,
255
258
  kind: architectureProfile === "mvc-data-analysis-v1" ? "service-project-initialization" : "backend-scaffold",
256
259
  architecture_profile: contract.architecture_profile,
257
260
  architecture_identity: scaffoldArchitectureIdentity(contract, sha256(contractText)),
@@ -18,7 +18,7 @@ const capabilityModules = {
18
18
  combined: { capabilities: ["external-integration", "feign-client"], modules: ["server", "service", "repository", "adapter", "client", "feign-client"] }
19
19
  };
20
20
 
21
- async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator" } = {}) {
21
+ async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator", schemaVersion = 3 } = {}) {
22
22
  const root = await mkdtemp(path.join(os.tmpdir(), "yss-layered-mvc-"));
23
23
  t.after(() => rm(root, { recursive: true, force: true }));
24
24
  const output = path.join(root, "backend");
@@ -30,7 +30,12 @@ async function fixture(t, { profile = capabilityModules.basic, architectureProfi
30
30
  const decisionFile = path.join(root, "scaffold-architecture-decisions.yaml");
31
31
  await writeFile(decisionFile, decisionText);
32
32
  const contract = {
33
- schema_version: 3,
33
+ schema_version: schemaVersion,
34
+ kind: "project-scaffold-contract",
35
+ delivery_role: "backend",
36
+ scaffold_kind: "backend-layered-mvc",
37
+ repository_scope: "external-repository",
38
+ init_git: false,
34
39
  contract_id: "scaffold.demo-service.v1",
35
40
  contract_version: 1,
36
41
  scaffold_request_id: "request.demo-service",
@@ -97,6 +102,16 @@ test("旧数据库和 Mock 参数在写入前被拒绝", async (t) => {
97
102
  }
98
103
  });
99
104
 
105
+ test("统一 Project Scaffold Contract v4 可生成 Layered MVC 后端并保留 v4 Manifest", async (t) => {
106
+ const data = await fixture(t, { schemaVersion: 4 });
107
+ data.contract.current_version = true;
108
+ await writeFile(data.contractFile, JSON.stringify(data.contract));
109
+ const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
110
+ assert.equal(result.status, 0, result.stderr);
111
+ const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
112
+ assert.equal(manifest.schema_version, 4);
113
+ });
114
+
100
115
  test("可选离线 Maven 可行性检查(不替代受控仓库验收)", { skip: process.env.YSS_BACKEND_OFFLINE_PROBE !== "1" }, async (t) => {
101
116
  const data = await fixture(t);
102
117
  const generated = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: yss-mvc-design
3
+ description: 为已确认 layered-mvc 的 YSS 项目设计分层职责、用例、业务规则、事务和持久化映射,不生成代码。
4
+ ---
5
+
6
+ # YSS MVC 技术设计
7
+
8
+ 由 `yss-technical-design` 在 `layered-mvc` 分支调用,输入和批准边界由通用技术设计合同持有。既有工程按已登记 Profile 设计,不重选架构。
9
+
10
+ 必须说明模块职责与依赖方向、用例流程、业务规则、状态转换、事务边界、失败回滚、幂等与并发、持久化映射、外部集成与公开测试 seam。无状态流转或外部集成时记录有原因的不适用,不硬造对象。
11
+
12
+ 分层边界消费 `docs/agents/backend-architecture-profiles.md`:Controller 处理 HTTP 边界;service/core 承载用例、规则与事务;Repository 负责持久化;适用时 Adapter 承接外部集成。不得为 MVC 加载 `yss-domain` 或生成 DDD Gateway。
13
+
14
+ 输出 Technical Design Contract 的 `design` 分支,结构见 `references/mvc-design.schema.json`。业务规则和关键场景必须关联具体用例与测试 seam;关键场景覆盖成功和失败。与 DDD 使用同一承接和审查要求,不能因采用 MVC 省略规则、一致性或测试设计。
15
+
16
+ 由通用入口校验整个合同并回交生命周期独立审查。本技能不自行批准、不创建 Ticket、不设置 `ready-for-agent`,不生成 Java、SQL 或生产 API。实现由编译器按批准的架构 Profile 和最小技能闭包路由。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "YSS MVC 技术设计"
3
+ short_description: "设计 MVC 用例、分层、事务和测试边界"
4
+ default_prompt: "基于当前批准输入和已确认架构,设计 MVC 用例、分层、事务和测试边界,返回待生命周期审查的结果。"
@@ -0,0 +1,315 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "module_catalog": {
5
+ "type": "array",
6
+ "minItems": 1,
7
+ "items": {
8
+ "type": "object",
9
+ "properties": {
10
+ "module_id": {
11
+ "type": "string",
12
+ "minLength": 1
13
+ },
14
+ "responsibility": {
15
+ "type": "string",
16
+ "minLength": 1
17
+ },
18
+ "layer": {
19
+ "enum": [
20
+ "server",
21
+ "service",
22
+ "core",
23
+ "repository",
24
+ "adapter",
25
+ "client",
26
+ "feign-client"
27
+ ]
28
+ },
29
+ "depends_on": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "uniqueItems": true
36
+ }
37
+ },
38
+ "required": [
39
+ "module_id",
40
+ "responsibility",
41
+ "layer",
42
+ "depends_on"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ },
47
+ "use_case_catalog": {
48
+ "type": "array",
49
+ "minItems": 1,
50
+ "items": {
51
+ "type": "object",
52
+ "properties": {
53
+ "use_case_id": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "module_ref": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ },
61
+ "flow": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ },
67
+ "uniqueItems": true,
68
+ "minItems": 1
69
+ },
70
+ "rule_refs": {
71
+ "type": "array",
72
+ "items": {
73
+ "type": "string",
74
+ "minLength": 1
75
+ },
76
+ "uniqueItems": true,
77
+ "minItems": 1
78
+ },
79
+ "failure_handling": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ }
83
+ },
84
+ "required": [
85
+ "use_case_id",
86
+ "module_ref",
87
+ "flow",
88
+ "rule_refs",
89
+ "failure_handling"
90
+ ],
91
+ "additionalProperties": false
92
+ }
93
+ },
94
+ "rule_catalog": {
95
+ "type": "array",
96
+ "minItems": 1,
97
+ "items": {
98
+ "type": "object",
99
+ "properties": {
100
+ "rule_id": {
101
+ "type": "string",
102
+ "minLength": 1
103
+ },
104
+ "statement": {
105
+ "type": "string",
106
+ "minLength": 1
107
+ },
108
+ "use_case_refs": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string",
112
+ "minLength": 1
113
+ },
114
+ "uniqueItems": true,
115
+ "minItems": 1
116
+ }
117
+ },
118
+ "required": [
119
+ "rule_id",
120
+ "statement",
121
+ "use_case_refs"
122
+ ],
123
+ "additionalProperties": false
124
+ }
125
+ },
126
+ "state_transition_catalog": {
127
+ "type": "array",
128
+ "minItems": 0,
129
+ "items": {
130
+ "type": "object",
131
+ "properties": {
132
+ "transition_id": {
133
+ "type": "string",
134
+ "minLength": 1
135
+ },
136
+ "use_case_ref": {
137
+ "type": "string",
138
+ "minLength": 1
139
+ },
140
+ "from": {
141
+ "type": "string",
142
+ "minLength": 1
143
+ },
144
+ "to": {
145
+ "type": "string",
146
+ "minLength": 1
147
+ },
148
+ "guard": {
149
+ "type": "string",
150
+ "minLength": 1
151
+ }
152
+ },
153
+ "required": [
154
+ "transition_id",
155
+ "use_case_ref",
156
+ "from",
157
+ "to",
158
+ "guard"
159
+ ],
160
+ "additionalProperties": false
161
+ }
162
+ },
163
+ "state_not_applicable_reason": {
164
+ "type": "string"
165
+ },
166
+ "consistency_policy": {
167
+ "type": "object",
168
+ "properties": {
169
+ "transaction_boundary": {
170
+ "type": "string",
171
+ "minLength": 1
172
+ },
173
+ "rollback": {
174
+ "type": "string",
175
+ "minLength": 1
176
+ },
177
+ "concurrency": {
178
+ "type": "string",
179
+ "minLength": 1
180
+ },
181
+ "idempotency": {
182
+ "type": "string",
183
+ "minLength": 1
184
+ }
185
+ },
186
+ "required": [
187
+ "transaction_boundary",
188
+ "rollback",
189
+ "concurrency",
190
+ "idempotency"
191
+ ],
192
+ "additionalProperties": false
193
+ },
194
+ "persistence_mapping": {
195
+ "type": "array",
196
+ "minItems": 1,
197
+ "items": {
198
+ "type": "object",
199
+ "properties": {
200
+ "mapping_id": {
201
+ "type": "string",
202
+ "minLength": 1
203
+ },
204
+ "use_case_ref": {
205
+ "type": "string",
206
+ "minLength": 1
207
+ },
208
+ "repository_ref": {
209
+ "type": "string",
210
+ "minLength": 1
211
+ },
212
+ "storage_model": {
213
+ "type": "string",
214
+ "minLength": 1
215
+ },
216
+ "notes": {
217
+ "type": "string",
218
+ "minLength": 1
219
+ }
220
+ },
221
+ "required": [
222
+ "mapping_id",
223
+ "use_case_ref",
224
+ "repository_ref",
225
+ "storage_model",
226
+ "notes"
227
+ ],
228
+ "additionalProperties": false
229
+ }
230
+ },
231
+ "integration_catalog": {
232
+ "type": "array",
233
+ "minItems": 0,
234
+ "items": {
235
+ "type": "object",
236
+ "properties": {
237
+ "integration_id": {
238
+ "type": "string",
239
+ "minLength": 1
240
+ },
241
+ "adapter_ref": {
242
+ "type": "string",
243
+ "minLength": 1
244
+ },
245
+ "capability": {
246
+ "type": "string",
247
+ "minLength": 1
248
+ },
249
+ "failure_handling": {
250
+ "type": "string",
251
+ "minLength": 1
252
+ }
253
+ },
254
+ "required": [
255
+ "integration_id",
256
+ "adapter_ref",
257
+ "capability",
258
+ "failure_handling"
259
+ ],
260
+ "additionalProperties": false
261
+ }
262
+ },
263
+ "integration_not_applicable_reason": {
264
+ "type": "string"
265
+ },
266
+ "test_seams": {
267
+ "type": "array",
268
+ "minItems": 1,
269
+ "items": {
270
+ "type": "object",
271
+ "properties": {
272
+ "seam_id": {
273
+ "type": "string",
274
+ "minLength": 1
275
+ },
276
+ "kind": {
277
+ "type": "string",
278
+ "minLength": 1
279
+ },
280
+ "subject_ref": {
281
+ "type": "string",
282
+ "minLength": 1
283
+ },
284
+ "assertion": {
285
+ "type": "string",
286
+ "minLength": 1
287
+ }
288
+ },
289
+ "required": [
290
+ "seam_id",
291
+ "kind",
292
+ "subject_ref",
293
+ "assertion"
294
+ ],
295
+ "additionalProperties": false
296
+ }
297
+ }
298
+ },
299
+ "required": [
300
+ "module_catalog",
301
+ "use_case_catalog",
302
+ "rule_catalog",
303
+ "state_transition_catalog",
304
+ "state_not_applicable_reason",
305
+ "consistency_policy",
306
+ "persistence_mapping",
307
+ "integration_catalog",
308
+ "integration_not_applicable_reason",
309
+ "test_seams"
310
+ ],
311
+ "additionalProperties": false,
312
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
313
+ "$id": "https://yss.dev/schemas/mvc-design-v1.json",
314
+ "title": "YSS MVC 技术设计内容"
315
+ }