create-yss-spec 2.1.0 → 2.1.1

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 (277) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -2
  3. package/src/cli.js +1 -1
  4. package/template/.agents/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  5. package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +4 -2
  6. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  7. package/template/.agents/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  10. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  11. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  12. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +28 -0
  13. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  14. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  15. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -0
  16. package/template/.agents/skills/yss-router/SKILL.md +4 -0
  17. package/template/.agents/skills/yss-router/references/router-contract.yaml +48 -2
  18. package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +2 -0
  19. package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  20. package/template/.claude/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  21. package/template/.claude/skills/implementation-repo-onboarding/SKILL.md +4 -2
  22. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  23. package/template/.claude/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  24. package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  25. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  26. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  27. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  28. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +28 -0
  29. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  30. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  31. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +2 -0
  32. package/template/.claude/skills/yss-router/SKILL.md +4 -0
  33. package/template/.claude/skills/yss-router/references/router-contract.yaml +48 -2
  34. package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +2 -0
  35. package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  36. package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  37. package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +4 -2
  38. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  39. package/template/.codex/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  40. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  41. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  42. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  43. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  44. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +28 -0
  45. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  46. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  47. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -0
  48. package/template/.codex/skills/yss-router/SKILL.md +4 -0
  49. package/template/.codex/skills/yss-router/references/router-contract.yaml +48 -2
  50. package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +2 -0
  51. package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  52. package/template/.hermes/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  53. package/template/.hermes/skills/implementation-repo-onboarding/SKILL.md +4 -2
  54. package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  55. package/template/.hermes/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  56. package/template/.hermes/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  57. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  58. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  59. package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  60. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +28 -0
  61. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  62. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  63. package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +2 -0
  64. package/template/.hermes/skills/yss-router/SKILL.md +4 -0
  65. package/template/.hermes/skills/yss-router/references/router-contract.yaml +48 -2
  66. package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +2 -0
  67. package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  68. package/template/.pi/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  69. package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +4 -2
  70. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  71. package/template/.pi/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  72. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  73. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  74. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  75. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  76. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +28 -0
  77. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  78. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  79. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -0
  80. package/template/.pi/skills/yss-router/SKILL.md +4 -0
  81. package/template/.pi/skills/yss-router/references/router-contract.yaml +48 -2
  82. package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +2 -0
  83. package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  84. package/template/.qoder/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  85. package/template/.qoder/skills/implementation-repo-onboarding/SKILL.md +4 -2
  86. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  87. package/template/.qoder/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  88. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  89. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  90. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  91. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  92. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +28 -0
  93. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  94. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  95. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +2 -0
  96. package/template/.qoder/skills/yss-router/SKILL.md +4 -0
  97. package/template/.qoder/skills/yss-router/references/router-contract.yaml +48 -2
  98. package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +2 -0
  99. package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  100. package/template/.trae/skills/cross-repo-implementation-routing/SKILL.md +4 -3
  101. package/template/.trae/skills/implementation-repo-onboarding/SKILL.md +4 -2
  102. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +25 -5
  103. package/template/.trae/skills/yss-ddd-scaffold-generator/agents/openai.yaml +1 -1
  104. package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +25 -36
  105. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +474 -258
  106. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py +155 -0
  107. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +2 -1
  108. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +28 -0
  109. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +70 -2
  110. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +9 -0
  111. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +2 -0
  112. package/template/.trae/skills/yss-router/SKILL.md +4 -0
  113. package/template/.trae/skills/yss-router/references/router-contract.yaml +48 -2
  114. package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +2 -0
  115. package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +1 -1
  116. package/template/AGENTS.md +12 -8
  117. package/template/docs/architecture/templates/engineering-baseline-review-template.md +14 -0
  118. package/template/docs/process/implementation-repo-integration.md +17 -0
  119. package/template/docs/process/lifecycle-artifact-map.md +3 -3
  120. package/template/docs/templates/build-architecture-checklist-template.md +7 -1
  121. package/template/docs/templates/cross-repo-slice-template.md +2 -0
  122. package/template/docs/templates/implementation-repo-registry-template.md +14 -0
  123. package/template/docs/templates/implementation-routing-template.md +35 -6
  124. package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +4 -3
  125. package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +10 -2
  126. package/template/scripts/implementation-path-policy.rb +50 -0
  127. package/template/scripts/sync-skills +5 -0
  128. package/template/scripts/update-skill-lock +7 -1
  129. package/template/scripts/verify-implementation-path-scenarios +43 -0
  130. package/template/scripts/verify-lifecycle-scenarios +18 -0
  131. package/template/scripts/verify-matt-yss-integration-scenarios +1 -1
  132. package/template/scripts/verify-prototype-backend-scaffold-scenarios +239 -0
  133. package/template/scripts/verify-scaffold-generator-scenarios +438 -0
  134. package/template/scripts/verify-template +11 -0
  135. package/template/scripts/verify-yss-router-scenarios +76 -23
  136. package/template/skills-lock.json +6 -6
  137. package/template.snapshot.json +4 -4
  138. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  139. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  140. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  141. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  142. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  143. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  144. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  145. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  146. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  147. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  148. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  149. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  150. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  151. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  152. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  153. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  154. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  155. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  156. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  157. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  158. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  159. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  160. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  161. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  162. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  163. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  164. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  165. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  166. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  167. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  168. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  169. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  170. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  171. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  172. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  173. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  174. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  175. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  176. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  177. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  178. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  179. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  180. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  181. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  182. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  183. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  184. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  185. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  186. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  187. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  188. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  189. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  190. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  191. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  192. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  193. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  194. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  195. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  196. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  197. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  198. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  199. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  200. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  201. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  202. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  203. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  204. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  205. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  206. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  207. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  208. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  209. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  210. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  211. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  212. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  213. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  214. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  215. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  216. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  217. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  218. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  219. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  220. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  221. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  222. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  223. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  224. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  225. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  226. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  227. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  228. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  229. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  230. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  231. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  232. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  233. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  234. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  235. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  236. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  237. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  238. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  239. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  240. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  241. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  242. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  243. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  244. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  245. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  246. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  247. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  248. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  249. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  250. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  251. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  252. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  253. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  254. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  255. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  256. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  257. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
  258. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/adapter/UserController.java.template +0 -84
  259. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/application/UserConvertor.java.template +0 -21
  260. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/application/UserService.java.template +0 -48
  261. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/application/UserServiceImpl.java.template +0 -87
  262. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/bootstrap/YssDatamiddleApplication.java.template +0 -28
  263. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/data.sql.template +0 -2
  264. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/schema.sql.template +0 -27
  265. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/User.java.template +0 -17
  266. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserAddCmd.java.template +0 -27
  267. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserGateway.java.template +0 -54
  268. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserPageQuery.java.template +0 -12
  269. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserUpdateCmd.java.template +0 -21
  270. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/domain/UserVO.java.template +0 -52
  271. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/AuditableEntity.java.template +0 -25
  272. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/PageUtil.java.template +0 -13
  273. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserGatewayImpl.java.template +0 -85
  274. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPO.java.template +0 -35
  275. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserPOConvertor.java.template +0 -28
  276. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/UserRepository.java.template +0 -7
  277. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/infrastructure/YssDataMybatisConfig.java.template +0 -8
@@ -0,0 +1,438 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """验证 YSS 后端脚手架生成器的受控生成边界。"""
4
+
5
+ from __future__ import annotations
6
+
7
+ import subprocess
8
+ import sys
9
+ import tempfile
10
+ import json
11
+ import os
12
+ from pathlib import Path
13
+
14
+
15
+ REPOSITORY_ROOT = Path(__file__).resolve().parents[1]
16
+ GENERATOR = (
17
+ REPOSITORY_ROOT
18
+ / ".agents"
19
+ / "skills"
20
+ / "yss-ddd-scaffold-generator"
21
+ / "scripts"
22
+ / "generate_scaffold.py"
23
+ )
24
+ VERIFIER = (
25
+ REPOSITORY_ROOT
26
+ / ".agents"
27
+ / "skills"
28
+ / "yss-ddd-scaffold-generator"
29
+ / "scripts"
30
+ / "run_scaffold_verification.py"
31
+ )
32
+
33
+
34
+ def run_generator(*arguments: str) -> subprocess.CompletedProcess[str]:
35
+ return subprocess.run(
36
+ [sys.executable, str(GENERATOR), *arguments],
37
+ cwd=REPOSITORY_ROOT,
38
+ text=True,
39
+ capture_output=True,
40
+ check=False,
41
+ )
42
+
43
+
44
+ def require(condition: bool, message: str) -> None:
45
+ if not condition:
46
+ raise AssertionError(message)
47
+
48
+
49
+ def write_contract(
50
+ path: Path,
51
+ output_root: Path,
52
+ project_name: str,
53
+ contract_id: str,
54
+ approval_ref: str,
55
+ router_draft_ref: str,
56
+ persisted_ref: str,
57
+ force_allowed: bool = False,
58
+ ) -> None:
59
+ overwrite_scope = f"{project_name}/**" if force_allowed else None
60
+ rollback_ref = "git:checkpoint-001" if force_allowed else None
61
+ contract = {
62
+ "schema_version": 1,
63
+ "contract_id": contract_id,
64
+ "contract_version": 1,
65
+ "slice_id": f"{project_name}-scaffold",
66
+ "status": "approved",
67
+ "router_draft_ref": router_draft_ref,
68
+ "lifecycle_approval_ref": approval_ref,
69
+ "persisted_ref": persisted_ref,
70
+ "current_version": 1,
71
+ "implementation_repository": str(output_root),
72
+ "backend_repository": str(output_root),
73
+ "scaffold_status": "required",
74
+ "target_git_url_or_output_dir": str(output_root),
75
+ "allowed_write_paths": [f"{project_name}/**"],
76
+ "expected_evidence_files": [
77
+ f"{project_name}/.yss/scaffold-generation.json",
78
+ "scaffold-verification.json",
79
+ ],
80
+ "verification_commands": [
81
+ "./mvnw validate",
82
+ "./mvnw test",
83
+ "./mvnw package",
84
+ ],
85
+ "approval": {
86
+ "approval_ref": approval_ref,
87
+ "approver": "lifecycle-reviewer",
88
+ "persisted_ref": persisted_ref,
89
+ "current_version": 1,
90
+ },
91
+ "work_unit": {
92
+ "id": f"{project_name}-scaffold",
93
+ "behavior": "create pure project scaffold",
94
+ "primary_skill": "yss-ddd-scaffold-generator",
95
+ "supporting_skills": ["yss-backend-scaffold-parent", "alibaba-java-code-style"],
96
+ "tdd_mode": "controlled-generation",
97
+ "allowed_write_paths": [f"{project_name}/**"],
98
+ "expected_evidence": [".yss/scaffold-generation.json", "scaffold-verification.json"],
99
+ "verification_commands": [
100
+ "./mvnw validate",
101
+ "./mvnw test",
102
+ "./mvnw package",
103
+ ],
104
+ "controlled_generation": True,
105
+ },
106
+ "overwrite_policy": {
107
+ "force_allowed": force_allowed,
108
+ "overwrite_scope": overwrite_scope,
109
+ "rollback_ref": rollback_ref,
110
+ },
111
+ }
112
+ path.write_text(json.dumps(contract, ensure_ascii=False, indent=2), encoding="utf-8")
113
+
114
+
115
+ def assert_pure_scaffold(project_root: Path, contract_id: str) -> None:
116
+ require(project_root.is_dir(), "默认生成必须创建项目目录")
117
+ require((project_root / "pom.xml").is_file(), "默认生成必须包含父级 pom.xml")
118
+ require((project_root / "mvnw").is_file(), "默认生成必须包含 Maven wrapper")
119
+ manifest_path = project_root / ".yss" / "scaffold-generation.json"
120
+ require(manifest_path.is_file(), "生成项目必须携带脚手架合同元数据清单")
121
+ manifest = json.loads(manifest_path.read_text(encoding="utf-8"))
122
+ require(manifest["contract_id"] == contract_id, "生成清单必须记录脚手架合同 ID")
123
+ require(manifest["contract_version"] == 1, "生成清单必须记录脚手架合同版本")
124
+ require(manifest["approval_ref"], "生成清单必须记录生命周期批准引用")
125
+ require(manifest["router_draft_ref"], "生成清单必须记录 Router draft 引用")
126
+ require(manifest["persisted_ref"], "生成清单必须记录合同持久化引用")
127
+ require(manifest["generation_mode"] == "controlled-generation", "生成清单必须记录受控生成模式")
128
+ require(not (project_root / "API.md").exists(), "默认生成不得写入业务 API 文档")
129
+ require(not (project_root / "db" / "schema.sql").exists(), "默认生成不得写入业务 schema")
130
+ require(not (project_root / "db" / "data.sql").exists(), "默认生成不得写入业务初始化数据")
131
+
132
+ forbidden_tokens = (
133
+ "t_user",
134
+ "/api/users",
135
+ "default admin",
136
+ "User CRUD",
137
+ )
138
+ for path in project_root.rglob("*"):
139
+ if not path.is_file() or path.suffix in {".jar", ".class", ".db"}:
140
+ continue
141
+ content = path.read_text(encoding="utf-8")
142
+ for token in forbidden_tokens:
143
+ require(token not in content, f"纯骨架包含业务示例 {token}: {path}")
144
+
145
+
146
+ def main() -> int:
147
+ template_root = REPOSITORY_ROOT / ".agents/skills/yss-ddd-scaffold-generator/assets/templates"
148
+ user_templates = list(template_root.rglob("User*.java.template"))
149
+ require(not user_templates, "脚手架资产不得保留 User 业务 Java 模板")
150
+
151
+ with tempfile.TemporaryDirectory(prefix="yss-scaffold-test-") as temp_dir:
152
+ temp_root = Path(temp_dir)
153
+ output_root = temp_root / "output"
154
+
155
+ missing_contract_root = temp_root / "missing-contract-output"
156
+ missing_contract_result = run_generator(
157
+ "--project-name",
158
+ "missing-contract-service",
159
+ "--base-package",
160
+ "com.yss.missing",
161
+ "--output-dir",
162
+ str(missing_contract_root),
163
+ )
164
+ require(
165
+ missing_contract_result.returncode != 0,
166
+ "缺少批准脚手架合同元数据时不得生成项目",
167
+ )
168
+
169
+ forbidden_harness_output = run_generator(
170
+ "--project-name",
171
+ "forbidden-service",
172
+ "--base-package",
173
+ "com.yss.forbidden",
174
+ "--output-dir",
175
+ str(REPOSITORY_ROOT / "app" / "backend"),
176
+ "--contract-file",
177
+ str(temp_root / "forbidden-contract.json"),
178
+ )
179
+ require(
180
+ forbidden_harness_output.returncode != 0
181
+ and "禁止使用单数 app/backend" in (forbidden_harness_output.stdout + forbidden_harness_output.stderr),
182
+ "脚手架不得把 app/backend 作为工程输出路径",
183
+ )
184
+
185
+ stale_contract_root = temp_root / "stale-contract-output"
186
+ stale_contract = temp_root / "stale-contract.json"
187
+ write_contract(
188
+ stale_contract,
189
+ stale_contract_root,
190
+ "stale-service",
191
+ "backend-scaffold-stale",
192
+ "lifecycle/approval-stale",
193
+ "router/draft-stale",
194
+ "lifecycle/contracts/backend-scaffold-stale.yaml",
195
+ )
196
+ stale_payload = json.loads(stale_contract.read_text(encoding="utf-8"))
197
+ stale_payload["current_version"] = 2
198
+ stale_contract.write_text(json.dumps(stale_payload), encoding="utf-8")
199
+ stale_result = run_generator(
200
+ "--project-name",
201
+ "stale-service",
202
+ "--base-package",
203
+ "com.yss.stale",
204
+ "--output-dir",
205
+ str(stale_contract_root),
206
+ "--contract-id",
207
+ "backend-scaffold-stale",
208
+ "--contract-version",
209
+ "1",
210
+ "--approval-ref",
211
+ "lifecycle/approval-stale",
212
+ "--router-draft-ref",
213
+ "router/draft-stale",
214
+ "--persisted-ref",
215
+ "lifecycle/contracts/backend-scaffold-stale.yaml",
216
+ "--contract-file",
217
+ str(stale_contract),
218
+ )
219
+ require(stale_result.returncode != 0, "过期脚手架合同不得生成项目")
220
+
221
+ default_contract = temp_root / "pure-contract.json"
222
+ write_contract(
223
+ default_contract,
224
+ output_root,
225
+ "pure-service",
226
+ "backend-scaffold-000",
227
+ "lifecycle/approval-000",
228
+ "router/draft-000",
229
+ "lifecycle/contracts/backend-scaffold-000.yaml",
230
+ )
231
+
232
+ default_result = run_generator(
233
+ "--project-name",
234
+ "pure-service",
235
+ "--base-package",
236
+ "com.yss.pure",
237
+ "--output-dir",
238
+ str(output_root),
239
+ "--contract-id",
240
+ "backend-scaffold-000",
241
+ "--contract-version",
242
+ "1",
243
+ "--approval-ref",
244
+ "lifecycle/approval-000",
245
+ "--router-draft-ref",
246
+ "router/draft-000",
247
+ "--persisted-ref",
248
+ "lifecycle/contracts/backend-scaffold-000.yaml",
249
+ "--contract-file",
250
+ str(default_contract),
251
+ )
252
+ require(
253
+ default_result.returncode == 0,
254
+ f"默认纯骨架生成失败:\n{default_result.stdout}\n{default_result.stderr}",
255
+ )
256
+ assert_pure_scaffold(output_root / "pure-service", "backend-scaffold-000")
257
+
258
+ verification_project = temp_root / "verification-service"
259
+ verification_project.mkdir()
260
+ verification_manifest = verification_project / ".yss" / "scaffold-generation.json"
261
+ verification_manifest.parent.mkdir()
262
+ verification_manifest.write_text(
263
+ json.dumps(
264
+ {
265
+ "schema_version": 1,
266
+ "contract_id": "backend-scaffold-verification",
267
+ "contract_version": 1,
268
+ "slice_id": "verification-service-scaffold",
269
+ "approval_ref": "lifecycle/verification",
270
+ "lifecycle_approval_ref": "lifecycle/verification",
271
+ "router_draft_ref": "router/verification",
272
+ "persisted_ref": "lifecycle/contracts/verification.yaml",
273
+ "contract_file_ref": "lifecycle/contracts/verification.json",
274
+ "current_version": 1,
275
+ "approver": "lifecycle-reviewer",
276
+ "allowed_write_paths": ["verification-service/**"],
277
+ "expected_evidence_files": ["scaffold-verification.json"],
278
+ "verification_commands": [
279
+ "./mvnw validate",
280
+ "./mvnw test",
281
+ "./mvnw package",
282
+ ],
283
+ "generation_mode": "controlled-generation",
284
+ }
285
+ ),
286
+ encoding="utf-8",
287
+ )
288
+ wrapper = verification_project / "mvnw"
289
+ wrapper.write_text(
290
+ "#!/bin/sh\n"
291
+ "printf '%s\\n' \"$*\" >> \"$(dirname \"$0\")/commands.log\"\n"
292
+ "exit 0\n",
293
+ encoding="utf-8",
294
+ )
295
+ os.chmod(wrapper, 0o755)
296
+ evidence_dir = verification_project / "evidence"
297
+ verification_result = subprocess.run(
298
+ [
299
+ sys.executable,
300
+ str(VERIFIER),
301
+ "--project-root",
302
+ str(verification_project),
303
+ "--evidence-dir",
304
+ str(evidence_dir),
305
+ ],
306
+ cwd=REPOSITORY_ROOT,
307
+ text=True,
308
+ capture_output=True,
309
+ check=False,
310
+ )
311
+ require(
312
+ verification_result.returncode == 0,
313
+ f"受控验证执行器失败:\n{verification_result.stdout}\n{verification_result.stderr}",
314
+ )
315
+ report = json.loads((evidence_dir / "scaffold-verification.json").read_text(encoding="utf-8"))
316
+ require(
317
+ Path(report["scaffold_manifest_ref"]).resolve() == verification_manifest.resolve(),
318
+ "验证报告必须回勾脚手架生成元数据清单",
319
+ )
320
+ require(
321
+ [item["command"] for item in report["commands"]]
322
+ == ["./mvnw validate", "./mvnw test", "./mvnw package"],
323
+ "验证报告必须记录完整的 wrapper 命令",
324
+ )
325
+ require(
326
+ all(item["exit_code"] == 0 for item in report["commands"]),
327
+ "验证报告必须记录每条命令的 exit_code",
328
+ )
329
+ require(
330
+ all(Path(item["stdout_ref"]).is_file() for item in report["commands"]),
331
+ "验证报告必须包含 stdout 证据文件",
332
+ )
333
+ require(
334
+ all(Path(item["stderr_ref"]).is_file() for item in report["commands"]),
335
+ "验证报告必须包含 stderr 证据文件",
336
+ )
337
+ require(
338
+ all(item["duration_ms"] >= 0 and item["started_at"] and item["executed_at"] for item in report["commands"]),
339
+ "验证报告必须记录耗时和执行时间",
340
+ )
341
+ require(
342
+ (verification_project / "commands.log").read_text(encoding="utf-8").splitlines()
343
+ == ["validate", "test", "package"],
344
+ "验证器必须实际执行三条 wrapper 命令",
345
+ )
346
+
347
+ example_root = temp_root / "example-output"
348
+ example_result = run_generator(
349
+ "--project-name",
350
+ "example-service",
351
+ "--base-package",
352
+ "com.yss.example",
353
+ "--output-dir",
354
+ str(example_root),
355
+ "--with-example",
356
+ )
357
+ require(example_result.returncode != 0, "--with-example 必须被受控生成边界拒绝")
358
+ require(
359
+ not (example_root / "example-service").exists(),
360
+ "拒绝 --with-example 时不得留下部分生成目录",
361
+ )
362
+
363
+ force_root = temp_root / "force-output"
364
+ force_project = force_root / "force-service"
365
+ force_project.mkdir(parents=True)
366
+ sentinel = force_project / "user-owned.txt"
367
+ sentinel.write_text("preserve me", encoding="utf-8")
368
+
369
+ unapproved_force_result = run_generator(
370
+ "--project-name",
371
+ "force-service",
372
+ "--base-package",
373
+ "com.yss.force",
374
+ "--output-dir",
375
+ str(force_root),
376
+ "--force",
377
+ )
378
+ require(
379
+ unapproved_force_result.returncode != 0,
380
+ "非空目录的 --force 必须要求合同元数据",
381
+ )
382
+ require(sentinel.read_text(encoding="utf-8") == "preserve me", "未批准覆盖不得改变原目录")
383
+
384
+ force_contract = temp_root / "force-contract.json"
385
+ write_contract(
386
+ force_contract,
387
+ force_root,
388
+ "force-service",
389
+ "backend-scaffold-001",
390
+ "lifecycle/approval-001",
391
+ "router/draft-001",
392
+ "lifecycle/contracts/backend-scaffold-001.yaml",
393
+ force_allowed=True,
394
+ )
395
+
396
+ approved_force_result = run_generator(
397
+ "--project-name",
398
+ "force-service",
399
+ "--base-package",
400
+ "com.yss.force",
401
+ "--output-dir",
402
+ str(force_root),
403
+ "--force",
404
+ "--contract-id",
405
+ "backend-scaffold-001",
406
+ "--contract-version",
407
+ "1",
408
+ "--approval-ref",
409
+ "lifecycle/approval-001",
410
+ "--router-draft-ref",
411
+ "router/draft-001",
412
+ "--persisted-ref",
413
+ "lifecycle/contracts/backend-scaffold-001.yaml",
414
+ "--contract-file",
415
+ str(force_contract),
416
+ "--overwrite-scope",
417
+ "force-service/**",
418
+ "--rollback-ref",
419
+ "git:checkpoint-001",
420
+ )
421
+ require(
422
+ approved_force_result.returncode == 0,
423
+ f"具备合同元数据的覆盖生成失败:\n{approved_force_result.stdout}\n{approved_force_result.stderr}",
424
+ )
425
+ assert_pure_scaffold(force_root / "force-service", "backend-scaffold-001")
426
+ backup_dirs = list(force_root.glob(".force-service.backup-*"))
427
+ require(backup_dirs, "批准覆盖必须保留可回滚备份")
428
+ require(
429
+ (backup_dirs[0] / "user-owned.txt").read_text(encoding="utf-8") == "preserve me",
430
+ "批准覆盖的备份必须保留原目录内容",
431
+ )
432
+
433
+ print("YSS 脚手架生成器受控生成场景验证通过")
434
+ return 0
435
+
436
+
437
+ if __name__ == "__main__":
438
+ raise SystemExit(main())
@@ -31,7 +31,11 @@ required_files=(
31
31
  "docs/user-guide/规格与任务迁移指南.md"
32
32
  "scripts/sync-skills"
33
33
  "scripts/update-skill-lock"
34
+ "scripts/implementation-path-policy.rb"
34
35
  "scripts/verify-lifecycle-scenarios"
36
+ "scripts/verify-implementation-path-scenarios"
37
+ "scripts/verify-scaffold-generator-scenarios"
38
+ "scripts/verify-prototype-backend-scaffold-scenarios"
35
39
  "scripts/verify-matt-yss-integration-scenarios"
36
40
  "scripts/verify-yss-ui-scenarios"
37
41
  )
@@ -116,6 +120,9 @@ RUBY
116
120
  scripts/sync-skills --check
117
121
  scripts/update-skill-lock --check
118
122
  scripts/verify-lifecycle-scenarios
123
+ scripts/verify-implementation-path-scenarios
124
+ scripts/verify-scaffold-generator-scenarios
125
+ scripts/verify-prototype-backend-scaffold-scenarios
119
126
  ruby scripts/verify-matt-yss-integration-scenarios
120
127
  scripts/verify-yss-router-scenarios
121
128
  scripts/verify-yss-ui-scenarios
@@ -249,9 +256,13 @@ RUBY
249
256
 
250
257
  ruby -c scripts/sync-skills >/dev/null
251
258
  ruby -c scripts/update-skill-lock >/dev/null
259
+ ruby -c scripts/implementation-path-policy.rb >/dev/null
252
260
  ruby -c scripts/verify-lifecycle-scenarios >/dev/null
261
+ ruby -c scripts/verify-prototype-backend-scaffold-scenarios >/dev/null
253
262
  ruby -c scripts/verify-matt-yss-integration-scenarios >/dev/null
254
263
  ruby -c scripts/verify-yss-ui-scenarios >/dev/null
264
+ python3 -m py_compile .agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py
265
+ python3 -m py_compile .agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.py
255
266
  if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
256
267
  git diff --check
257
268
  else