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
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yss.example/schemas/implementation-repository-preparation-result.schema.json",
4
+ "title": "Implementation Repository Preparation Result",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "kind", "result", "current_version", "projects", "evidence_refs"],
8
+ "properties": {
9
+ "schema_version": { "const": 1 },
10
+ "kind": { "const": "implementation-repository-preparation-result" },
11
+ "result": { "const": "completed" },
12
+ "current_version": { "const": true },
13
+ "projects": {
14
+ "type": "array",
15
+ "minItems": 2,
16
+ "items": {
17
+ "type": "object",
18
+ "required": ["project_id", "delivery_role", "status"],
19
+ "properties": {
20
+ "project_id": { "type": "string", "minLength": 1 },
21
+ "delivery_role": { "enum": ["backend", "frontend"] },
22
+ "status": { "enum": ["existing-and-onboarded", "initialized-and-verified", "not-applicable"] },
23
+ "reason": { "type": "string" },
24
+ "repository_ref": { "type": "string" },
25
+ "project_root": { "type": "string" },
26
+ "repository_scope": { "enum": ["external-repository", "harness-apps", "git-submodule"] },
27
+ "onboarding_result": { "type": "object" },
28
+ "scaffold_contract": { "type": "object" },
29
+ "scaffold_manifest_ref": { "type": "string" },
30
+ "scaffold_verification": { "type": "object" },
31
+ "template_available": { "type": "boolean" },
32
+ "architecture_family": { "type": "string" }
33
+ }
34
+ }
35
+ },
36
+ "evidence_refs": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } }
37
+ }
38
+ }
@@ -0,0 +1,113 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yss.example/schemas/project-scaffold-contract.schema.json",
4
+ "title": "YSS Project Scaffold Contract v4",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "kind", "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"],
8
+ "properties": {
9
+ "schema_version": { "const": 4 },
10
+ "kind": { "const": "project-scaffold-contract" },
11
+ "contract_id": { "type": "string", "minLength": 1 },
12
+ "contract_version": { "oneOf": [{ "type": "string", "minLength": 1 }, { "type": "integer", "minimum": 1 }] },
13
+ "scaffold_request_id": { "type": "string", "minLength": 1 },
14
+ "compiler_draft_ref": { "type": "string", "minLength": 1 },
15
+ "lifecycle_approval_ref": { "type": "string", "minLength": 1 },
16
+ "status": { "const": "approved" },
17
+ "persisted_ref": { "type": "string", "minLength": 1 },
18
+ "current_version": { "const": true },
19
+ "delivery_role": { "enum": ["backend", "frontend"] },
20
+ "scaffold_kind": { "enum": ["backend-ddd", "backend-layered-mvc", "frontend-yss-vue3"] },
21
+ "generator_skill": { "enum": ["yss-ddd-scaffold-generator", "yss-layered-mvc-scaffold-generator", "yss-frontend-scaffold-generator"] },
22
+ "implementation_repository": { "type": "string", "minLength": 1 },
23
+ "backend_repository": { "type": "string", "minLength": 1 },
24
+ "scaffold_status": { "const": "required" },
25
+ "target_output_dir": { "type": "string", "minLength": 1 },
26
+ "repository_scope": { "enum": ["external-repository", "harness-apps", "git-submodule"] },
27
+ "init_git": { "type": "boolean" },
28
+ "project_name": { "type": "string", "minLength": 1 },
29
+ "base_package": { "type": "string", "minLength": 1 },
30
+ "architecture_family": { "enum": ["domain-driven", "layered-mvc"] },
31
+ "architecture_profile": { "type": "string", "minLength": 1 },
32
+ "decision_ref": { "type": "string", "minLength": 1 },
33
+ "decision_id": { "type": "string", "minLength": 1 },
34
+ "decision_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
35
+ "maven_coordinates": { "type": "object" },
36
+ "profiles": { "type": "object" },
37
+ "module_profile": { "type": "object" },
38
+ "frontend": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["app_name", "microapp_name", "base_route", "package_manager", "template", "openapi_impact"],
42
+ "properties": {
43
+ "app_name": { "type": "string", "minLength": 1 },
44
+ "microapp_name": { "type": "string", "minLength": 1 },
45
+ "base_route": { "type": "string", "pattern": "^/" },
46
+ "package_manager": { "const": "pnpm" },
47
+ "template": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["repository", "commit"],
51
+ "properties": {
52
+ "repository": { "type": "string", "minLength": 1 },
53
+ "commit": { "type": "string", "pattern": "^[a-f0-9]{40}$" }
54
+ }
55
+ },
56
+ "openapi_impact": { "enum": ["frozen", "not-applicable"] },
57
+ "openapi_json_ref": { "type": "string", "minLength": 1 },
58
+ "openapi_json_digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
59
+ "openapi_not_applicable_reason": { "type": "string", "minLength": 1 },
60
+ "replacements": { "type": "object", "additionalProperties": { "type": "string" } }
61
+ },
62
+ "allOf": [
63
+ { "if": { "properties": { "openapi_impact": { "const": "frozen" } } }, "then": { "required": ["openapi_json_ref", "openapi_json_digest"] } },
64
+ { "if": { "properties": { "openapi_impact": { "const": "not-applicable" } } }, "then": { "required": ["openapi_not_applicable_reason"] } }
65
+ ]
66
+ },
67
+ "allowed_write_paths": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
68
+ "expected_evidence_files": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
69
+ "verification_commands": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
70
+ "approval": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["approval_ref", "approver"],
74
+ "properties": { "approval_ref": { "type": "string", "minLength": 1 }, "approver": { "type": "string", "minLength": 1 }, "persisted_ref": { "type": "string", "minLength": 1 }, "current_version": { "oneOf": [{ "type": "boolean" }, { "type": "integer" }, { "type": "string" }] } }
75
+ },
76
+ "generation_policy": {
77
+ "type": "object",
78
+ "additionalProperties": false,
79
+ "required": ["mode", "existing_target", "old_project_migration", "template_upgrade"],
80
+ "properties": {
81
+ "mode": { "const": "initialize-only" },
82
+ "existing_target": { "const": "unsupported" },
83
+ "old_project_migration": { "const": "unsupported" },
84
+ "template_upgrade": { "const": "unsupported" }
85
+ }
86
+ },
87
+ "work_unit": {
88
+ "type": "object",
89
+ "required": ["id", "behavior", "primary_skill", "supporting_skills", "tdd_mode", "allowed_write_paths", "expected_evidence", "verification_commands", "controlled_generation"],
90
+ "properties": {
91
+ "id": { "type": "string" },
92
+ "behavior": { "enum": ["project-scaffold", "scaffold"] },
93
+ "primary_skill": { "type": "string" },
94
+ "supporting_skills": { "type": "array", "items": { "type": "string" } },
95
+ "tdd_mode": { "const": "controlled-generation" },
96
+ "allowed_write_paths": { "type": "array", "minItems": 1, "items": { "type": "string" } },
97
+ "expected_evidence": { "type": "array", "minItems": 1, "items": { "type": "string" } },
98
+ "verification_commands": { "type": "array", "minItems": 1, "items": { "type": "string" } },
99
+ "controlled_generation": { "const": true }
100
+ }
101
+ }
102
+ },
103
+ "allOf": [
104
+ {
105
+ "if": { "properties": { "delivery_role": { "const": "frontend" } } },
106
+ "then": { "required": ["frontend"], "properties": { "generator_skill": { "const": "yss-frontend-scaffold-generator" }, "scaffold_kind": { "const": "frontend-yss-vue3" } } }
107
+ },
108
+ {
109
+ "if": { "properties": { "delivery_role": { "const": "backend" } } },
110
+ "then": { "required": ["scaffold_request_id", "compiler_draft_ref", "lifecycle_approval_ref", "backend_repository", "scaffold_status", "project_name", "base_package", "architecture_family", "decision_ref", "decision_id", "decision_digest", "maven_coordinates", "profiles", "module_profile", "work_unit"] }
111
+ }
112
+ ]
113
+ }
@@ -117,7 +117,10 @@
117
117
  "const": "docs/process/schemas/context-reconciliation.schema.json"
118
118
  },
119
119
  "required_before_skill": {
120
- "const": "yss-tactical-design"
120
+ "enum": [
121
+ "yss-technical-design",
122
+ "yss-tactical-design"
123
+ ]
121
124
  },
122
125
  "status": {
123
126
  "const": "pending"
@@ -137,10 +140,16 @@
137
140
  "const": "downstream-rd-team"
138
141
  },
139
142
  "skill": {
140
- "const": "yss-tactical-design"
143
+ "enum": [
144
+ "yss-technical-design",
145
+ "yss-tactical-design"
146
+ ]
141
147
  },
142
148
  "output": {
143
- "const": "tactical-design-contract"
149
+ "enum": [
150
+ "technical-design-contract",
151
+ "tactical-design-contract"
152
+ ]
144
153
  }
145
154
  }
146
155
  },
@@ -666,5 +675,69 @@
666
675
  }
667
676
  }
668
677
  }
669
- }
678
+ },
679
+ "allOf": [
680
+ {
681
+ "if": {
682
+ "properties": {
683
+ "target": {
684
+ "properties": {
685
+ "skill": {
686
+ "const": "yss-technical-design"
687
+ }
688
+ }
689
+ }
690
+ }
691
+ },
692
+ "then": {
693
+ "properties": {
694
+ "target": {
695
+ "properties": {
696
+ "output": {
697
+ "const": "technical-design-contract"
698
+ }
699
+ }
700
+ },
701
+ "target_context_reconciliation": {
702
+ "properties": {
703
+ "required_before_skill": {
704
+ "const": "yss-technical-design"
705
+ }
706
+ }
707
+ }
708
+ }
709
+ }
710
+ },
711
+ {
712
+ "if": {
713
+ "properties": {
714
+ "target": {
715
+ "properties": {
716
+ "skill": {
717
+ "const": "yss-tactical-design"
718
+ }
719
+ }
720
+ }
721
+ }
722
+ },
723
+ "then": {
724
+ "properties": {
725
+ "target": {
726
+ "properties": {
727
+ "output": {
728
+ "const": "tactical-design-contract"
729
+ }
730
+ }
731
+ },
732
+ "target_context_reconciliation": {
733
+ "properties": {
734
+ "required_before_skill": {
735
+ "const": "yss-tactical-design"
736
+ }
737
+ }
738
+ }
739
+ }
740
+ }
741
+ }
742
+ ]
670
743
  }
@@ -31,7 +31,7 @@ scripts/strategic-handoff import --bundle <目录或ZIP> --target-root <研发
31
31
 
32
32
  导入落盘到 `docs/handoffs/<handoff-id>/<version>/`,包含不可变 `package/`、`import-receipt.json`、`context-reconciliation-draft.json`、`tactical-traceability-draft.json`、`upstream-change-impact.json`。仅写快照与草案,不自动更新根词汇表或批准状态。目标侧确认增量后更新唯一根 `CONTEXT.md`,生成既有 schema 的正式 reconciliation 并校验。
33
33
 
34
- 战术合同的 `strategic_handoff` 绑定 `import_receipt_ref`、`bundle_digest`、`context_reconciliation_ref` 和 `rows`。逐条覆盖全部规则与 `critical: true` 的成功/失败场景;行字段如下:
34
+ Technical Design Contract v2(DDD / MVC 共用)的 `strategic_handoff` 绑定 `import_receipt_ref`、`bundle_digest`、`context_reconciliation_ref` 和 `rows`。逐条覆盖全部规则与 `critical: true` 的成功/失败场景;行字段如下:
35
35
 
36
36
  - `source_id`、源对象 `source_digest`、`disposition`、`dependency_status: known | unknown`、`dependent_slice_refs`。
37
37
  - `implemented`:`tactical_refs`、`test_seam_refs`、`evidence_refs` 必须可解析;关键场景另用 `scenario_tests` 分别绑定 `outcome: success | failure` 与 `seam_ref`。
@@ -42,9 +42,11 @@ scripts/strategic-handoff import --bundle <目录或ZIP> --target-root <研发
42
42
  ```bash
43
43
  scripts/verify-strategic-handoff-consumption --root <研发项目根> <战术合同>
44
44
  scripts/verify-strategic-handoff-consumption --root <研发项目根> --slice <切片ID> <已批准战术合同>
45
- node .agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs <战术合同> --root <研发项目根>
45
+ node .agents/skills/yss-technical-design/scripts/validate-technical-design.mjs <技术设计合同> --root <研发项目根>
46
46
  ```
47
47
 
48
+ 新交接的 target 使用 `yss-technical-design` / `technical-design-contract`,对账必须在通用入口前完成;旧 `yss-tactical-design` / `tactical-design-contract` 成对只读兼容,不修改已冻结包。`tactical_refs` 在 v2 可指向 `design` 中的 MVC 模块、用例、规则或 DDD 对象,测试 seam 同样在对应分支解析。无战略交接包的 MVC 项目直接消费批准需求,不要求补造战略 DDD。
49
+
48
50
  整体验证有未落实项时返回 blocked;按切片验证可放行有证据证明不依赖这些项的切片。输出 `block_all`、`blocked_slice_refs`、`issues`、实际消费包摘要与战术摘要。通过只证明结构化映射完整和引用可核验,业务语义仍需独立评审;不能代替 Slice Contract 批准。
49
51
 
50
52
  每版完整快照可独立消费,差异区分 added / updated / removed。更新须提升交接版本,内容变化的源资产也须提升其版本。接收新版本后,消费校验比较最新已导入源对象摘要;规则变化按行依赖阻断,未映射的新规则扩大阻断,战略责任边界、方案决策、Spec/视觉/原型源码等变化未重新绑定时整体阻断。`upstream-change-impact.json` 是生命周期处理 stale 的证据输入,不直接改 Tracker 或覆盖战术合同。
@@ -57,6 +57,9 @@ required_files:
57
57
  - .agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md
58
58
  - .agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs
59
59
  - .agents/skills/yss-skill-source-index-refresh/SKILL.md
60
+ - .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs
61
+ - .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs
62
+ - .agents/skills/yss-repository/tests/profile-routing.test.mjs
60
63
  - docs/agents/yss-ui-skills-integration.md
61
64
  - docs/agents/strategic-design-skills-integration.md
62
65
  - docs/user-guide/yss-ui-mcp.md
@@ -72,6 +75,8 @@ required_files:
72
75
  - docs/process/schemas/strategic-design-handoff.schema.json
73
76
  - docs/process/schemas/frontend-implementation-evidence.schema.json
74
77
  - docs/process/schemas/scaffold-architecture-decisions.schema.json
78
+ - docs/process/schemas/project-scaffold-contract.schema.json
79
+ - docs/process/schemas/implementation-repository-preparation-result.schema.json
75
80
  - docs/design/schemas/visual-baseline.schema.json
76
81
  - docs/process/schemas/subagent-task-package.schema.json
77
82
  - docs/process/templates/lifecycle-checkpoint-template.yaml
@@ -82,6 +87,11 @@ required_files:
82
87
  - docs/design/templates/visual-baseline-template.yaml
83
88
  - docs/process/templates/maintenance-checkpoint-template.yaml
84
89
  - docs/templates/subagent-task-package-template.md
90
+ - .agents/skills/yss-technical-design/SKILL.md
91
+ - .agents/skills/yss-technical-design/references/technical-design.schema.json
92
+ - .agents/skills/yss-technical-design/scripts/validate-technical-design.mjs
93
+ - .agents/skills/yss-mvc-design/SKILL.md
94
+ - .agents/skills/yss-mvc-design/references/mvc-design.schema.json
85
95
  - .agents/skills/yss-tactical-design/SKILL.md
86
96
  - .agents/skills/yss-tactical-design/agents/openai.yaml
87
97
  - .agents/skills/yss-tactical-design/references/tactical-design-contract.md
@@ -112,6 +122,9 @@ required_files:
112
122
  - scripts/verify-template-candidate
113
123
  - scripts/verify-template
114
124
  - scripts/verify-business-language-scenarios
125
+ - scripts/query-lifecycle-context
126
+ - scripts/lib/lifecycle-context-query.mjs
127
+ - scripts/verify-lifecycle-context-query-scenarios
115
128
  - scripts/verify-frontend-implementation-evidence-scenarios
116
129
  - scripts/prepare-maintenance-review
117
130
  - scripts/evaluate-maintenance-review-round
@@ -126,6 +139,9 @@ syntax_files:
126
139
  - scripts/update-skill-lock
127
140
  - scripts/verify-upstream-skill-source
128
141
  - scripts/lib/skill-supply-chain.mjs
142
+ - .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs
143
+ - .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs
144
+ - .agents/skills/yss-repository/tests/profile-routing.test.mjs
129
145
  - scripts/generate-lifecycle-artifacts
130
146
  - scripts/verify-lifecycle-registry
131
147
  - scripts/verify-lifecycle-checkpoint
@@ -133,6 +149,9 @@ syntax_files:
133
149
  - scripts/verify-context-contract
134
150
  - scripts/verify-context-contract-scenarios
135
151
  - scripts/verify-business-language-scenarios
152
+ - scripts/query-lifecycle-context
153
+ - scripts/lib/lifecycle-context-query.mjs
154
+ - scripts/verify-lifecycle-context-query-scenarios
136
155
  - scripts/verify-context-reconciliation
137
156
  - scripts/verify-context-reconciliation-scenarios
138
157
  - scripts/verify-grill-with-docs-context-scenarios
@@ -167,6 +186,10 @@ syntax_files:
167
186
  - scripts/lib/lifecycle-transition.mjs
168
187
  - scripts/verify-lifecycle-scenarios
169
188
  - scripts/verify-lifecycle-transition-scenarios
189
+ - scripts/verify-frontend-scaffold-generator-scenarios
190
+ - .agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs
191
+ - .agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs
192
+ - .agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs
170
193
  - scripts/verify-matt-yss-integration-scenarios
171
194
  - scripts/verify-prototype-backend-scaffold-scenarios
172
195
  - scripts/verify-yss-implementation-contract-compiler-scenarios
@@ -191,6 +214,10 @@ syntax_files:
191
214
  - scripts/verify-maintenance-review-workflow-scenarios
192
215
  - scripts/verify-template-cache-scenarios
193
216
  routing:
217
+ - patterns: [".template-source/cli-core/**"]
218
+ groups: [dedicated-cli-core]
219
+ - patterns: [".agents/skills/yss-technical-design/**", ".agents/skills/yss-mvc-design/**", ".agents/skills/yss-tactical-design/**", "scripts/lib/technical-design-boundary.mjs", "scripts/lib/strategic-handoff-design-targets.mjs"]
220
+ groups: [tactical-design, implementation]
194
221
  - patterns: ["scripts/*backend-delivery*", "scripts/*frontend-delivery*", "scripts/lib/*backend-delivery*", "scripts/lib/*frontend-delivery*", "scripts/fixtures/backend-delivery/**", "docs/process/frontend-backend-delivery.md", "docs/process/schemas/backend-delivery*", "docs/process/schemas/frontend-delivery*"]
195
222
  groups: [frontend-delivery]
196
223
  - patterns: ["scripts/*user-decision*", "scripts/lib/user-decision*", "scripts/fixtures/user-decision/**", "docs/process/schemas/user-decision*", "docs/process/templates/user-decision*", "scripts/lib/approval-record.mjs", "scripts/verify-approval-record"]
@@ -230,6 +257,9 @@ routing:
230
257
  - patterns: ["scripts/**"]
231
258
  groups: [hygiene]
232
259
  groups:
260
+ dedicated-cli-core:
261
+ commands:
262
+ - { run: "node --test .template-source/cli-core/tests/*.test.mjs", when: template-source }
233
263
  frontend-delivery:
234
264
  commands:
235
265
  - { run: "scripts/verify-frontend-delivery-scenarios" }
@@ -257,8 +287,12 @@ groups:
257
287
  - { run: "scripts/verify-skill-governance" }
258
288
  - { run: "scripts/verify-upstream-skill-source --source=iloveZzz/yss-harness-design-agent --source-root=submodules/yss-harness-design-agent", when: template-source }
259
289
  - { run: "node .agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs" }
290
+ - { run: "node --test .agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs" }
291
+ - { run: "node --test .agents/skills/yss-repository/tests/profile-routing.test.mjs" }
260
292
  tactical-design:
261
293
  commands:
294
+ - { run: "node .agents/skills/yss-technical-design/scripts/generate-schema.mjs --check" }
295
+ - { run: "node .agents/skills/yss-technical-design/tests/run-scenarios.mjs" }
262
296
  - { run: "node --check .agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs" }
263
297
  - { run: "node --check .agents/skills/yss-tactical-design/tests/run-scenarios.mjs" }
264
298
  - { run: "node .agents/skills/yss-tactical-design/tests/run-scenarios.mjs" }
@@ -287,6 +321,7 @@ groups:
287
321
  - { run: "scripts/verify-grill-with-docs-context-scenarios" }
288
322
  - { run: "scripts/verify-strategic-context-import-scenarios" }
289
323
  - { run: "scripts/verify-lifecycle-registry" }
324
+ - { run: "scripts/verify-lifecycle-context-query-scenarios" }
290
325
  - { run: "scripts/verify-lifecycle-checkpoint docs/process/templates/lifecycle-checkpoint-template.yaml" }
291
326
  - { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-plan-template.yaml" }
292
327
  - { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-verification-template.yaml" }
@@ -295,6 +330,7 @@ groups:
295
330
  - { run: "scripts/verify-scaffold-architecture-decision-scenarios" }
296
331
  - { run: "scripts/verify-lifecycle-scenarios" }
297
332
  - { run: "scripts/verify-lifecycle-transition-scenarios" }
333
+ - { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
298
334
  maintenance:
299
335
  commands:
300
336
  - { run: "scripts/verify-maintenance-checkpoint .template-source/evidence/maintenance/yss-tactical-design-l3-checkpoint-2026-08-27.yaml", when: template-source }
@@ -307,6 +343,7 @@ groups:
307
343
  - { run: "scripts/verify-scaffold-generator-scenarios" }
308
344
  - { run: "node --test .agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs" }
309
345
  - { run: "node --test .agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs" }
346
+ - { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
310
347
  - { run: "scripts/verify-prototype-backend-scaffold-scenarios" }
311
348
  - { run: "scripts/verify-matt-yss-integration-scenarios" }
312
349
  - { run: "scripts/verify-yss-implementation-contract-compiler-scenarios" }
@@ -28,11 +28,17 @@ owner: ai
28
28
  | superproject_git_url | 父仓远端;必须与 `git_url` 不同 |
29
29
  | checkout_state | attached-branch / detached-head / uninitialized / empty-gitlink / 不适用 |
30
30
  | scaffold_status | existing / required / initialized |
31
+ | preparation_status | existing-and-onboarded / initialized-and-verified / not-applicable |
32
+ | preparation_result_ref | `artifact.implementation-repository-preparation-result` 的当前引用 |
33
+ | project_scaffold_contract_ref | 新建工程必填;统一 schema v4,历史已批准后端 v3 只读兼容 |
34
+ | scaffold_manifest_ref | 新建工程必填 |
35
+ | scaffold_verification_ref | 新建工程必填,且 status=passed |
31
36
  | scaffold_architecture | `domain-driven` / `layered-mvc` / 不适用;required 时必须由用户确认 |
32
37
  | scaffold_decision_ref | `scaffold-architecture-decisions.yaml` 的 decision_id + digest |
33
38
  | scaffold_skill | `yss-ddd-scaffold-generator` / `yss-layered-mvc-scaffold-generator` / `yss-frontend-scaffold-generator` / none |
34
39
  | scaffold_target_confirmed | 是 / 否 / 不适用 |
35
40
  | target_git_url_or_output_dir | |
41
+ | init_git | true / false;必须来自真实用户确认 |
36
42
  | owner | |
37
43
  | ci_system | GitLab CI / GitHub Actions / Jenkins / other / none |
38
44
  | issue_tracker | GitLab / GitHub / other |
@@ -85,4 +91,6 @@ Harness 内项目路径约束:`apps/backend/`、`apps/frontend/` 只能作为
85
91
  - 关联 Harness change:
86
92
  - 关联垂直切片:
87
93
  - 关联阶段 checkpoint:
94
+ - 实现仓库准备聚合结果:
95
+ - `gate.implementation-repositories-ready`:approved / blocked
88
96
  - fresh verification 命令:
@@ -59,7 +59,8 @@ Approved / Changes requested / Blocked
59
59
  | 已存在 `Backend Slice Implementation Contract`,且 required skills / allowed paths / forbidden patterns / evidence / seam / verification 完整 | pass / violation / not-applicable | |
60
60
  | `yss-domain` 已按影响面落实,Domain 不依赖 Adapter、Infrastructure、Mapper、Controller 或 Web DTO | pass / violation / not-applicable | |
61
61
  | `yss-application` 已按影响面落实,Application 只做用例编排、事务边界和跨聚合协调 | pass / violation / not-applicable | |
62
- | `yss-repository` 已按影响面落实,需要持久化的切片有 PO / Repository / Convertor / GatewayImpl | pass / seam-deferred / violation / not-applicable | |
62
+ | `yss-repository` 已按影响面落实;所选 Profile、层边界、PO / Repository / Convertor / GatewayImpl 或 MVC repository 结构、事务归属均有文件和测试证据 | pass / seam-deferred / violation / not-applicable | |
63
+ | `yss-mybatis` 已按影响面落实;基类、Mapper/XML 扫描、分页责任、批量 SQL、条件开关和数据源能力与当前组件索引一致;精确结论已核验 component tree / clean 状态 | pass / seam-deferred / violation / missing_evidence / not-applicable | |
63
64
  | `yss-web-controller` / `yss-dto` 已按影响面落实,CMD / Query / VO / Result 按既有 DTO 体系定义或复用,Controller 不用内部类或非约定包临时承载主要 DTO / VO、不手工分页主要业务集合、不穿透 Repository | pass / violation / not-applicable | |
64
65
  | `mapstruct` 已按影响面落实,PO / Domain Model / DTO / VO / CMD / Query 转换使用 MapStruct Convertor / Mapper,未使用 `BeanUtils.copyProperties`、反射拷贝或重复手写字段赋值;例外已记录测试和补齐落点 | pass / violation / not-applicable | |
65
66
  | `lombok` 已按影响面落实,POJO 样板代码使用 Lombok,未成片手写 getter/setter、constructor、builder、logger;实体 / POJO 未触发 `@Data` 等反模式或已说明例外 | pass / violation / not-applicable | |
@@ -72,10 +73,11 @@ Approved / Changes requested / Blocked
72
73
  ### 后端 smoke check
73
74
 
74
75
  ```bash
75
- rg -n "class (SingleResult|MultiResult|PageResult|Result)<|public static class .*(Command|Cmd|Query|VO)|subList\\(|InMemory.*Gateway|implements .*Gateway|extends .*Repository|@TableName|Mappers\\.getMapper" apps/backend
76
+ # <review-root...> 必须由本体项目、实现仓登记、Slice project_roots 与 allowed_write_paths 解析。
77
+ rg -n "class (SingleResult|MultiResult|PageResult|Result)<|public static class .*(Command|Cmd|Query|VO)|subList\\(|InMemory.*Gateway|implements .*Gateway|extends Base(Plus)?Repository|@TableName|@MapperScan|Mappers\\.getMapper|PageQuery|insertBatchSomeColumn|yss\\.mybatis" <review-root...>
76
78
  ```
77
79
 
78
- 命中说明:`SingleResult` / `PageResult`、`CMD` / `Query` / `VO` 命中不等于失败;需要说明其是否来自 `yss-dto` / 项目既有体系、是否位于约定包路径、是否继承约定基类。
80
+ 命中说明:DTO/Result 或 MyBatis 基类、`PageQuery`、批量/扫描配置命中不等于失败;需要按当前合同、Repository Profile 和 MyBatis source index 说明其来源、分页责任与配置是否匹配。
79
81
 
80
82
  | 命中 | 解释 | 结论 |
81
83
  |---|---|---|
@@ -119,6 +121,8 @@ rg -n "from 'ant-design-vue'|<(Table|Tree|Form)[ >]|YFormily|YssFormily|YTable|Y
119
121
  | Agent 尝试用 `BeanUtils.copyProperties`、反射拷贝或大段手写字段赋值完成 POJO 转换 | 应被标记为 `violation`,回到 `mapstruct` 补 Convertor / Mapper,或补受控例外、测试和 review 证据 | |
120
122
  | Agent 尝试成片手写 getter/setter、constructor、builder 或 logger | 应被标记为 `violation`,回到 `lombok` 补注解,或补受控例外、测试和 review 证据 | |
121
123
  | Agent 尝试用 `InMemory*Gateway` 完成正式持久化 | 只能 `seam-deferred`,必须有补齐切片和风险说明 | |
124
+ | Agent 未核验 Profile/source index 就选择 `BaseRepository` / `BasePlusRepository`,或把两套分页责任混在同一查询 seam | 应按 `yss-repository` / `yss-mybatis` 标记 `violation` 或 `missing_evidence` | |
125
+ | Agent 把多数据源实例集合误当成线程上下文动态路由,或在事务进入后才尝试切换 | 应标记 `violation`;先核验组件能力,再由批准的上层适配承担路由 | |
122
126
  | Agent 只写“符合 YSS”但没有 skill / 文件 / 测试证据 | 应被标记为 `violation` | |
123
127
  | Agent 在后端验证、CI、README 或发布说明中写裸 `mvn ...` | 应改为项目根目录 `./mvnw ...`,否则标记为 `violation` | |
124
128
  | Agent 将英文 skill / 模板的标题和说明原样输出为项目持久化文档 | 应改为中文正文和中文章节标题,否则标记为 `violation` | |
@@ -1,14 +1,15 @@
1
1
  # 战术设计子项目用户手册
2
2
 
3
- 本入口保留给既有读者。Tactical Design 把已批准业务规则映射为聚合、状态、不变量、一致性边界和测试 seam;它不是新的模板家族,不代替 API Freeze 或 Slice Contract 批准。
3
+ 本入口保留给既有读者。“战术设计子项目”通过 `yss-technical-design` 统一承接技术设计,整体主控仍为 `yss-product-lifecycle`。先确认后端项目采用 `domain-driven` 或 `layered-mvc`,再分别调用 `yss-tactical-design` 或 `yss-mvc-design`;DDD 是选项,不是默认要求。技术设计不代替 API Freeze 或 Slice Contract 批准。
4
4
 
5
5
  ## 输入与开始
6
6
 
7
- 先核对本仓身份、profile、根 CONTEXT.md、当前战略交接及批准证据。导入快照后完成目标词汇对账,再逐项登记源规则/关键场景的承接;缺失、冲突或过期先回交,不能猜测业务规则。
7
+ 先核对本仓身份、profile、根 CONTEXT.md、适用的战略交接、需求及批准证据。已有战略包时,导入快照后完成目标词汇对账,再逐项登记源规则/关键场景的承接;缺失、冲突或过期先回交,不能猜测业务规则。
8
8
 
9
9
  ```text
10
10
  请按本仓生命周期检查“设备领用”当前战略输入及目标词汇对账。
11
- 有领域行为影响时,使用 yss-tactical-design 起草战术设计,
11
+ 使用 yss-technical-design 核对已确认的项目架构并起草技术设计,
12
+ DDD 调用 yss-tactical-design,传统 MVC 调用 yss-mvc-design;
12
13
  解释设备占用的竞争、状态转换和一致性边界,并映射公开测试 seam。
13
14
  逐项列出已承接、冲突、延期及依赖切片,等待适用审查后再编译实现合同。
14
15
  ```
@@ -20,15 +21,15 @@
20
21
  | 谁保护不变量 | 哪个对象/边界保证设备不能同时被领用 |
21
22
  | 状态是否合法 | 未批准申请是否允许领用;重复归还如何处理 |
22
23
  | 一致性在哪里保证 | 申请与设备占用是否同事务;失败如何恢复 |
23
- | 外部依赖如何隔离 | API/Repository/Gateway 怎样映射而不篡改业务含义 |
24
+ | 外部依赖如何隔离 | API/Repository/适配边界怎样映射而不篡改业务含义 |
24
25
  | 如何证伪设计 | 并发领用、无权限、重复请求的公开 seam 与预期结果 |
25
26
 
26
- 案例只是提问方向,答案由项目实际业务与工程条件决定。没有领域行为影响时按当前政策记录带原因的 not-applicable,不为简单页面硬造聚合。
27
+ 案例只是提问方向,答案由项目实际业务与工程条件决定。MVC 不要求先完成战略 DDD,也不要求聚合、值对象或 DDD Gateway;用例、规则、事务、幂等、并发和测试承接仍须清晰。没有相关技术设计影响时记录带原因的 not-applicable。
27
28
 
28
29
  ## 从设计到实现
29
30
 
30
31
  综合项目由本仓生命周期继续路由,通用研发/后端由 Harness 流程承接。前端专职只消费上游规则、冻结接口并准备前端工程设计,不在本仓派发后端战术实现。
31
32
 
32
- 编译器起草当前合同,批准与可实现状态由本仓编排和门禁控制。实现前确认工程登记、冻结接口、测试 seam、允许路径与回滚点。战术评审通过不等于 ready-for-agent。
33
+ 技术设计经现有门禁批准后,编译器消费当前设计并起草实现合同,批准与可实现状态由本仓编排和门禁控制。实现前确认工程登记、冻结接口、测试 seam、允许路径与回滚点。战术评审通过不等于 ready-for-agent。
33
34
 
34
35
  过程示例见 [设备借用贯穿案例](设备借用贯穿案例.md);项目选型见 [用户手册](用户手册.md)。
@@ -16,7 +16,8 @@ context_schema_version: 1
16
16
  |---|---|---|---|---|
17
17
  | 供应商 | 提供产品或服务的主体 | Supplier | Global | |
18
18
  `;
19
- export async function fixture(root) {
19
+ // Legacy fixture remains the default for released CLI compatibility tests.
20
+ export async function fixture(root, { technicalDesign = false } = {}) {
20
21
  const put=(ref,value)=>{const p=path.join(root,ref);mkdirSync(path.dirname(p),{recursive:true});writeFileSync(p,typeof value==='string'?value:json(value));};
21
22
  put('yss-project.yaml','schema_version: 1\nrepository_mode: project-instance\n');put('CONTEXT.md',context);
22
23
  const source=parseContextSource(context), resolved=resolveContextTermRefs(source,['Global/Supplier']);
@@ -51,7 +52,7 @@ const visualBaselineRef = { baseline_id: sealedBaseline.baseline_id, version: se
51
52
  const terminalGate=countersignRuleForGate(roles.gate_policy,'gate.strategic-design-handoff-approved')?'gate.strategic-design-handoff-approved':'gate.stage-decision-package-approved';
52
53
  const gates={domain_strategy_ref:'gate.domain-strategy-approved',stage_decision_package_ref:'gate.stage-decision-package-approved',spec_ref:'gate.spec-baseline-approved',prototype_ref:'gate.user-confirmation',visual_baseline_ref:'gate.user-confirmation',business_ticket_set_ref:terminalGate,handoff:terminalGate};
53
54
  const approvals=Object.fromEntries([...Object.keys(sourceRefs),'handoff'].map(key=>[key,{record_ref:`approvals/${key}.yaml`,gate_id:gates[key],digest_kind:key==='visual_baseline_ref'?'visual-baseline':['domain_strategy_ref','stage_decision_package_ref','business_ticket_set_ref'].includes(key)?'canonical-json':'sha256-bytes'}]));
54
- const handoff={schema_version:3,handoff_id:'strategic-design-handoff.supplier',handoff_version:'v1',status:'approved',source:sourceRefs,source_context_snapshot:snapshot,context_delta:{added:resolved.terms.map(({term_ref,term,meaning,english_identifier,context_id,forbidden_aliases})=>({term_ref,term,meaning,english_identifier,context_id,forbidden_aliases})),updated:[],deprecated:[]},target_context_reconciliation:{target_context_ref:'CONTEXT.md',reconciliation_schema_ref:'docs/process/schemas/context-reconciliation.schema.json',required_before_skill:'yss-tactical-design',status:'pending'},target:{team:'downstream-rd-team',skill:'yss-tactical-design',output:'tactical-design-contract'},problem_and_business_outcomes:['提交供应商材料'],bounded_context_and_subdomain_map:['SupplierManagement'],context_map_and_translation_responsibility:['SupplierManagement'],ubiquitous_language_and_concept_candidates:['Global/Supplier'],scenarios_and_business_invariants:['rule.complete','scenario.submit'],tactical_design_questions:['一致性边界'],deferred_decisions_and_ownership:[],evidence_and_version_digests:['evidence/offline.log'],acceptance:['traceability'],package_export:{schema_version:1,approvals,additional_files:[],reference_map:{},prototype:{profile:'H2',preview_root:'preview',entry_ref:'preview/index.html',verification_ref:'evidence/offline.json',verification_digest:hash(readFileSync(path.join(root,'evidence/offline.json'))),source_digest:treeDigest(root,'prototype-src'),source_root:'prototype-src',lock_ref:'prototype-src/pnpm-lock.yaml'}}};
55
+ const handoff={schema_version:3,handoff_id:'strategic-design-handoff.supplier',handoff_version:'v1',status:'approved',source:sourceRefs,source_context_snapshot:snapshot,context_delta:{added:resolved.terms.map(({term_ref,term,meaning,english_identifier,context_id,forbidden_aliases})=>({term_ref,term,meaning,english_identifier,context_id,forbidden_aliases})),updated:[],deprecated:[]},target_context_reconciliation:{target_context_ref:'CONTEXT.md',reconciliation_schema_ref:'docs/process/schemas/context-reconciliation.schema.json',required_before_skill:technicalDesign?'yss-technical-design':'yss-tactical-design',status:'pending'},target:{team:'downstream-rd-team',skill:technicalDesign?'yss-technical-design':'yss-tactical-design',output:technicalDesign?'technical-design-contract':'tactical-design-contract'},problem_and_business_outcomes:['提交供应商材料'],bounded_context_and_subdomain_map:['SupplierManagement'],context_map_and_translation_responsibility:['SupplierManagement'],ubiquitous_language_and_concept_candidates:['Global/Supplier'],scenarios_and_business_invariants:['rule.complete','scenario.submit'],tactical_design_questions:['一致性边界'],deferred_decisions_and_ownership:[],evidence_and_version_digests:['evidence/offline.log'],acceptance:['traceability'],package_export:{schema_version:1,approvals,additional_files:[],reference_map:{},prototype:{profile:'H2',preview_root:'preview',entry_ref:'preview/index.html',verification_ref:'evidence/offline.json',verification_digest:hash(readFileSync(path.join(root,'evidence/offline.json'))),source_digest:treeDigest(root,'prototype-src'),source_root:'prototype-src',lock_ref:'prototype-src/pnpm-lock.yaml'}}};
55
56
  const sign=()=>{put('handoff.yaml',handoff);for(const[key,approval]of Object.entries(approvals)){const asset=key==='handoff'?{id:handoff.handoff_id,version:handoff.handoff_version,digest:hash(readFileSync(path.join(root,'handoff.yaml')))}:sourceRefs[key];put(approval.record_ref,{schema_version:1,gate_id:approval.gate_id,decision:'approved',actor_kind:'digital-human',role_id:countersignRuleForGate(roles.gate_policy,approval.gate_id).countersigners[0],runtime_id:'runtime.generic',principal_ref:'synthetic-maintenance-fixture',artifact_bindings:[{id:asset.id||asset.baseline_id,version:asset.version,digest:asset.digest}]});}};
56
57
  sign();return{handoff,strategy,stage,put,sign,snapshot};
57
58
  }
@@ -1,3 +1,4 @@
1
+ import { enforceTechnicalDesign } from './technical-design-boundary.mjs';
1
2
  import { enforceHarnessSkillScope } from "./harness-execution-scope.mjs";
2
3
  import { createHash } from "node:crypto";
3
4
  import { readFileSync } from "node:fs";
@@ -66,7 +67,8 @@ export function compileImplementationContract({
66
67
  architecture_evidence,
67
68
  root = ROOT,
68
69
  slice_id,
69
- frontend_delivery
70
+ frontend_delivery,
71
+ technical_design
70
72
  }) {
71
73
  assertV2(registry, compilerContract);
72
74
  const deliveryInput = enforceFrontendDelivery({ slice_id, frontend_delivery }, { root });
@@ -91,6 +93,8 @@ export function compileImplementationContract({
91
93
  for (const recipe of orderedRecipes) if (recipe.architecture_family && recipe.architecture_family !== architecture_identity.architecture_family) fail(`Recipe ${recipe.id} 与架构族不匹配`);
92
94
  }
93
95
 
96
+ enforceTechnicalDesign({ technical_design, conditions, architecture_identity, slice_id }, { root });
97
+
94
98
  const capabilitySources = new Map();
95
99
  const orderedCapabilities = [];
96
100
  const addCapability = (capabilityId, source) => {
@@ -175,6 +179,7 @@ export function compileImplementationContract({
175
179
  readiness_blockers: architectureProfile.maturity === "supported" ? [] : ["backend-profile-not-supported"],
176
180
  skill_profiles: Object.fromEntries(orderedSkills.map((skill) => [skill, architecture_identity.architecture_profile]))
177
181
  } : {}),
182
+ ...(technical_design ? { technical_design, slice_id } : {}),
178
183
  recipe_ids: orderedRecipes.map((recipe) => recipe.id),
179
184
  conditions: [...conditionSet].sort(),
180
185
  required_capabilities: orderedCapabilities,
@@ -202,6 +207,8 @@ export function evaluateContractFreshness(contract, { registry, compilerContract
202
207
  if (contract?.schema_version !== 2) fail("Slice Implementation Contract schema v1 已停止支持;必须重新编译 v2 合同");
203
208
  const resolution = contract.resolution ?? contract;
204
209
  const reasons = [];
210
+ try { enforceTechnicalDesign({ ...resolution, slice_id: contract.slice_id ?? resolution.slice_id }, { root }); }
211
+ catch { reasons.push("technical-design-stale-or-unavailable"); }
205
212
  try { enforceFrontendDelivery(contract, { root }); }
206
213
  catch { reasons.push("frontend-delivery-stale-or-unavailable"); }
207
214
  if (resolution.registry_digest !== digestDocument(registry)) reasons.push("registry-digest-changed");