create-yss-spec 3.2.0 → 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 (317) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/template/.agents/skills/code-review/SKILL.md +4 -0
  4. package/template/.agents/skills/code-review/agents/openai.yaml +1 -1
  5. package/template/.agents/skills/code-review/references/yss-review-standards.md +9 -2
  6. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  7. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  10. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  11. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  12. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  13. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  14. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  15. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  16. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  17. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  18. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  19. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  20. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  21. package/template/.agents/skills/yss-mybatis/SKILL.md +34 -58
  22. package/template/.agents/skills/yss-mybatis/agents/openai.yaml +2 -2
  23. package/template/.agents/skills/yss-mybatis/references/source-index.md +88 -68
  24. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +48 -43
  25. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  26. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  27. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  28. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +5 -2
  29. package/template/.agents/skills/yss-repository/SKILL.md +28 -70
  30. package/template/.agents/skills/yss-repository/agents/openai.yaml +2 -2
  31. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  32. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  33. package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  34. package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  35. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  36. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  37. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  38. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  39. package/template/.claude/skills/code-review/SKILL.md +4 -0
  40. package/template/.claude/skills/code-review/agents/openai.yaml +1 -1
  41. package/template/.claude/skills/code-review/references/yss-review-standards.md +9 -2
  42. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  43. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  44. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  45. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  46. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  47. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  48. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  49. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  50. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  51. package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  52. package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  53. package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  54. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  55. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  56. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  57. package/template/.claude/skills/yss-mybatis/SKILL.md +34 -58
  58. package/template/.claude/skills/yss-mybatis/agents/openai.yaml +2 -2
  59. package/template/.claude/skills/yss-mybatis/references/source-index.md +88 -68
  60. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +48 -43
  61. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  62. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  63. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  64. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +5 -2
  65. package/template/.claude/skills/yss-repository/SKILL.md +28 -70
  66. package/template/.claude/skills/yss-repository/agents/openai.yaml +2 -2
  67. package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  68. package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  69. package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  70. package/template/.claude/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  71. package/template/.claude/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  72. package/template/.claude/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  73. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  74. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  75. package/template/.codex/skills/code-review/SKILL.md +4 -0
  76. package/template/.codex/skills/code-review/agents/openai.yaml +1 -1
  77. package/template/.codex/skills/code-review/references/yss-review-standards.md +9 -2
  78. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  79. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  80. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  81. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  82. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  83. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  84. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  85. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  86. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  87. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  88. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  89. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  90. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  91. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  92. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  93. package/template/.codex/skills/yss-mybatis/SKILL.md +34 -58
  94. package/template/.codex/skills/yss-mybatis/agents/openai.yaml +2 -2
  95. package/template/.codex/skills/yss-mybatis/references/source-index.md +88 -68
  96. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +48 -43
  97. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  98. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  99. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  100. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +5 -2
  101. package/template/.codex/skills/yss-repository/SKILL.md +28 -70
  102. package/template/.codex/skills/yss-repository/agents/openai.yaml +2 -2
  103. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  104. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  105. package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  106. package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  107. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  108. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  109. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  110. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  111. package/template/.cursor/skills/code-review/SKILL.md +4 -0
  112. package/template/.cursor/skills/code-review/agents/openai.yaml +1 -1
  113. package/template/.cursor/skills/code-review/references/yss-review-standards.md +9 -2
  114. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  115. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  116. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  117. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  118. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  119. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  120. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  121. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  122. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  123. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  124. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  125. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  126. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  127. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  128. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  129. package/template/.cursor/skills/yss-mybatis/SKILL.md +34 -58
  130. package/template/.cursor/skills/yss-mybatis/agents/openai.yaml +2 -2
  131. package/template/.cursor/skills/yss-mybatis/references/source-index.md +88 -68
  132. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +48 -43
  133. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  134. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  135. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  136. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +5 -2
  137. package/template/.cursor/skills/yss-repository/SKILL.md +28 -70
  138. package/template/.cursor/skills/yss-repository/agents/openai.yaml +2 -2
  139. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  140. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  141. package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  142. package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  143. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  144. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  145. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  146. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  147. package/template/.pi/skills/code-review/SKILL.md +4 -0
  148. package/template/.pi/skills/code-review/agents/openai.yaml +1 -1
  149. package/template/.pi/skills/code-review/references/yss-review-standards.md +9 -2
  150. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  151. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  152. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  153. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  154. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  155. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  156. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  157. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  158. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  159. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  160. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  161. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  162. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  163. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  164. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  165. package/template/.pi/skills/yss-mybatis/SKILL.md +34 -58
  166. package/template/.pi/skills/yss-mybatis/agents/openai.yaml +2 -2
  167. package/template/.pi/skills/yss-mybatis/references/source-index.md +88 -68
  168. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +48 -43
  169. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  170. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  171. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  172. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +5 -2
  173. package/template/.pi/skills/yss-repository/SKILL.md +28 -70
  174. package/template/.pi/skills/yss-repository/agents/openai.yaml +2 -2
  175. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  176. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  177. package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  178. package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  179. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  180. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  181. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  182. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  183. package/template/.qoder/skills/code-review/SKILL.md +4 -0
  184. package/template/.qoder/skills/code-review/agents/openai.yaml +1 -1
  185. package/template/.qoder/skills/code-review/references/yss-review-standards.md +9 -2
  186. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  187. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  188. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  189. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  190. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  191. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  192. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  193. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  194. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  195. package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  196. package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  197. package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  198. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  199. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  200. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  201. package/template/.qoder/skills/yss-mybatis/SKILL.md +34 -58
  202. package/template/.qoder/skills/yss-mybatis/agents/openai.yaml +2 -2
  203. package/template/.qoder/skills/yss-mybatis/references/source-index.md +88 -68
  204. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +48 -43
  205. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  206. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  207. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  208. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +5 -2
  209. package/template/.qoder/skills/yss-repository/SKILL.md +28 -70
  210. package/template/.qoder/skills/yss-repository/agents/openai.yaml +2 -2
  211. package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  212. package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  213. package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  214. package/template/.qoder/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  215. package/template/.qoder/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  216. package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  217. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  218. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  219. package/template/.trae/skills/code-review/SKILL.md +4 -0
  220. package/template/.trae/skills/code-review/agents/openai.yaml +1 -1
  221. package/template/.trae/skills/code-review/references/yss-review-standards.md +9 -2
  222. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  223. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  224. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  225. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  226. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  227. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  228. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +107 -0
  229. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +41 -0
  230. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +37 -0
  231. package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  232. package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  233. package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  234. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  235. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  236. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  237. package/template/.trae/skills/yss-mybatis/SKILL.md +34 -58
  238. package/template/.trae/skills/yss-mybatis/agents/openai.yaml +2 -2
  239. package/template/.trae/skills/yss-mybatis/references/source-index.md +88 -68
  240. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +48 -43
  241. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +4 -2
  242. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +67 -10
  243. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +5 -1
  244. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +5 -2
  245. package/template/.trae/skills/yss-repository/SKILL.md +28 -70
  246. package/template/.trae/skills/yss-repository/agents/openai.yaml +2 -2
  247. package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  248. package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  249. package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  250. package/template/.trae/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  251. package/template/.trae/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  252. package/template/.trae/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  253. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  254. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  255. package/template/docs/agents/digital-human-roles.yaml +2 -0
  256. package/template/docs/agents/yss-skill-registry.yaml +5 -0
  257. package/template/docs/process/lifecycle-artifact-map.md +4 -0
  258. package/template/docs/process/lifecycle-registry-baseline.json +6 -1
  259. package/template/docs/process/lifecycle-registry.yaml +23 -0
  260. package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +38 -0
  261. package/template/docs/process/schemas/project-scaffold-contract.schema.json +113 -0
  262. package/template/docs/process/template-verification-profiles.yaml +23 -0
  263. package/template/docs/templates/implementation-repo-registry-template.md +8 -0
  264. package/template/docs/templates/review-report-template.md +7 -3
  265. package/template/scripts/lib/lifecycle-context-query.mjs +137 -0
  266. package/template/scripts/lib/lifecycle-transition.mjs +109 -3
  267. package/template/scripts/lib/scenario-checks.mjs +29 -26
  268. package/template/scripts/lib/skill-registry.mjs +9 -0
  269. package/template/scripts/query-lifecycle-context +25 -0
  270. package/template/scripts/verify-business-language-scenarios +0 -7
  271. package/template/scripts/verify-frontend-scaffold-generator-scenarios +2 -0
  272. package/template/scripts/verify-lifecycle-context-query-scenarios +68 -0
  273. package/template/scripts/verify-lifecycle-transition-scenarios +44 -4
  274. package/template/skills-lock.json +9 -9
  275. package/template.snapshot.json +4 -4
  276. package/template/.agents/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  277. package/template/.agents/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  278. package/template/.agents/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  279. package/template/.agents/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  280. package/template/.agents/skills/yss-mybatis/references/README.md +0 -57
  281. package/template/.agents/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  282. package/template/.claude/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  283. package/template/.claude/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  284. package/template/.claude/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  285. package/template/.claude/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  286. package/template/.claude/skills/yss-mybatis/references/README.md +0 -57
  287. package/template/.claude/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  288. package/template/.codex/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  289. package/template/.codex/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  290. package/template/.codex/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  291. package/template/.codex/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  292. package/template/.codex/skills/yss-mybatis/references/README.md +0 -57
  293. package/template/.codex/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  294. package/template/.cursor/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  295. package/template/.cursor/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  296. package/template/.cursor/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  297. package/template/.cursor/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  298. package/template/.cursor/skills/yss-mybatis/references/README.md +0 -57
  299. package/template/.cursor/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  300. package/template/.pi/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  301. package/template/.pi/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  302. package/template/.pi/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  303. package/template/.pi/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  304. package/template/.pi/skills/yss-mybatis/references/README.md +0 -57
  305. package/template/.pi/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  306. package/template/.qoder/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  307. package/template/.qoder/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  308. package/template/.qoder/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  309. package/template/.qoder/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  310. package/template/.qoder/skills/yss-mybatis/references/README.md +0 -57
  311. package/template/.qoder/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  312. package/template/.trae/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  313. package/template/.trae/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  314. package/template/.trae/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  315. package/template/.trae/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  316. package/template/.trae/skills/yss-mybatis/references/README.md +0 -57
  317. package/template/.trae/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
@@ -110,6 +110,9 @@ evidence:
110
110
  - id: evidence.fresh-verification
111
111
  name: Fresh Verification 记录
112
112
  description: 本轮实际执行的验证命令、结果和时间。
113
+ - id: evidence.implementation-repository-preparation
114
+ name: 实现仓库准备证据
115
+ description: 按项目记录交付面、已有仓库接入或新脚手架合同、生成清单、实际验证结果、仓库位置、Git 边界和当前版本。
113
116
  - id: evidence.checkpoint-and-rollback
114
117
  name: Checkpoint 与回滚点
115
118
  description: 可追溯的变更边界、发布记录和恢复动作。
@@ -183,6 +186,12 @@ gates:
183
186
  stage: stage.system-data-engineering
184
187
  trigger: 高风险或跨边界变化。
185
188
  evidence: [evidence.design-review-result]
189
+ - id: gate.implementation-repositories-ready
190
+ name: 实现仓库准备就绪
191
+ stage: stage.system-data-engineering
192
+ trigger: 后端或前端交付面进入 Ticket 正式化;未命中的交付面须记录带原因的 not-applicable。
193
+ evidence: [evidence.implementation-repository-preparation, evidence.fresh-verification]
194
+ requires_gates: [gate.engineering-baseline-accepted]
186
195
  - id: gate.slice-contract-approved
187
196
  name: Slice Implementation Contract 批准
188
197
  stage: stage.ticket-formalization
@@ -285,6 +294,14 @@ artifacts:
285
294
  name: 技术设计合同
286
295
  stage: stage.system-data-engineering
287
296
  trigger: 后端技术设计需要按已确认 DDD 或 MVC 架构明确行为、分层、一致性或数据映射。
297
+ - id: artifact.project-scaffold-contract
298
+ name: Project Scaffold Contract
299
+ stage: stage.system-data-engineering
300
+ trigger: 命中的前端或后端交付面选择初始化新工程。
301
+ - id: artifact.implementation-repository-preparation-result
302
+ name: 实现仓库准备结果
303
+ stage: stage.system-data-engineering
304
+ trigger: 后端或前端交付面进入 Ticket 正式化。
288
305
  - id: artifact.tactical-design
289
306
  name: DDD 战术设计
290
307
  stage: stage.system-data-engineering
@@ -415,6 +432,12 @@ work_units:
415
432
  input: Spec、原型、API/数据/工程影响面。
416
433
  output: OpenAPI、数据架构、按确认架构形成的 DDD / MVC 技术设计合同、工程基线、架构审查和 Slice 合同草案。
417
434
  completion: 命中契约已冻结;无 API 影响有可读记录;命中技术设计影响时架构已确认、规则与场景承接无未解释冲突;工程基线通过。
435
+ - id: work-unit.implementation-repository-preparation
436
+ name: 实现仓库准备
437
+ scope: project-instance
438
+ input: 工程影响面、工程基线、逐项目用户决定、实现仓库位置;新建工程还需批准且当前的 Project Scaffold Contract。
439
+ output: 已有工程的 Repository Onboarding Result,或新工程的 Scaffold Manifest 与 Scaffold Verification;并汇总 Implementation Repository Preparation Result。
440
+ completion: 每个命中的交付面均为 existing-and-onboarded 或 initialized-and-verified,未命中的交付面有带原因的 not-applicable;聚合结果当前且证据可读。
418
441
  - id: work-unit.service-project-initialization
419
442
  name: 独立服务项目初始化
420
443
  scope: project-instance
@@ -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
+ }
@@ -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
@@ -117,6 +122,9 @@ required_files:
117
122
  - scripts/verify-template-candidate
118
123
  - scripts/verify-template
119
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
120
128
  - scripts/verify-frontend-implementation-evidence-scenarios
121
129
  - scripts/prepare-maintenance-review
122
130
  - scripts/evaluate-maintenance-review-round
@@ -131,6 +139,9 @@ syntax_files:
131
139
  - scripts/update-skill-lock
132
140
  - scripts/verify-upstream-skill-source
133
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
134
145
  - scripts/generate-lifecycle-artifacts
135
146
  - scripts/verify-lifecycle-registry
136
147
  - scripts/verify-lifecycle-checkpoint
@@ -138,6 +149,9 @@ syntax_files:
138
149
  - scripts/verify-context-contract
139
150
  - scripts/verify-context-contract-scenarios
140
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
141
155
  - scripts/verify-context-reconciliation
142
156
  - scripts/verify-context-reconciliation-scenarios
143
157
  - scripts/verify-grill-with-docs-context-scenarios
@@ -172,6 +186,10 @@ syntax_files:
172
186
  - scripts/lib/lifecycle-transition.mjs
173
187
  - scripts/verify-lifecycle-scenarios
174
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
175
193
  - scripts/verify-matt-yss-integration-scenarios
176
194
  - scripts/verify-prototype-backend-scaffold-scenarios
177
195
  - scripts/verify-yss-implementation-contract-compiler-scenarios
@@ -269,6 +287,8 @@ groups:
269
287
  - { run: "scripts/verify-skill-governance" }
270
288
  - { run: "scripts/verify-upstream-skill-source --source=iloveZzz/yss-harness-design-agent --source-root=submodules/yss-harness-design-agent", when: template-source }
271
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" }
272
292
  tactical-design:
273
293
  commands:
274
294
  - { run: "node .agents/skills/yss-technical-design/scripts/generate-schema.mjs --check" }
@@ -301,6 +321,7 @@ groups:
301
321
  - { run: "scripts/verify-grill-with-docs-context-scenarios" }
302
322
  - { run: "scripts/verify-strategic-context-import-scenarios" }
303
323
  - { run: "scripts/verify-lifecycle-registry" }
324
+ - { run: "scripts/verify-lifecycle-context-query-scenarios" }
304
325
  - { run: "scripts/verify-lifecycle-checkpoint docs/process/templates/lifecycle-checkpoint-template.yaml" }
305
326
  - { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-plan-template.yaml" }
306
327
  - { run: "scripts/verify-frontend-implementation-evidence --allow-template docs/process/templates/frontend-implementation-verification-template.yaml" }
@@ -309,6 +330,7 @@ groups:
309
330
  - { run: "scripts/verify-scaffold-architecture-decision-scenarios" }
310
331
  - { run: "scripts/verify-lifecycle-scenarios" }
311
332
  - { run: "scripts/verify-lifecycle-transition-scenarios" }
333
+ - { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
312
334
  maintenance:
313
335
  commands:
314
336
  - { run: "scripts/verify-maintenance-checkpoint .template-source/evidence/maintenance/yss-tactical-design-l3-checkpoint-2026-08-27.yaml", when: template-source }
@@ -321,6 +343,7 @@ groups:
321
343
  - { run: "scripts/verify-scaffold-generator-scenarios" }
322
344
  - { run: "node --test .agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs" }
323
345
  - { run: "node --test .agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs" }
346
+ - { run: "scripts/verify-frontend-scaffold-generator-scenarios" }
324
347
  - { run: "scripts/verify-prototype-backend-scaffold-scenarios" }
325
348
  - { run: "scripts/verify-matt-yss-integration-scenarios" }
326
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` | |
@@ -0,0 +1,137 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import { parseDocument } from "../vendor/yaml.mjs";
5
+ import { ROOT, loadRegistry, semanticDigest, validateRegistry } from "./lifecycle-registry.mjs";
6
+ import { loadSkillRegistry } from "./skill-registry.mjs";
7
+
8
+ const LIFECYCLE_REGISTRY_REF = "docs/process/lifecycle-registry.yaml";
9
+ const ORCHESTRATION_CONTRACT_REF = ".agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml";
10
+ const SKILL_REGISTRY_REF = "docs/agents/yss-skill-registry.yaml";
11
+
12
+ function read(relativePath) {
13
+ return readFileSync(path.join(ROOT, relativePath), "utf8");
14
+ }
15
+
16
+ function sha256(source) {
17
+ return createHash("sha256").update(source).digest("hex");
18
+ }
19
+
20
+ function loadYaml(relativePath, label) {
21
+ const document = parseDocument(read(relativePath), { maxAliasCount: 0, uniqueKeys: true });
22
+ if (document.errors.length) throw new TypeError(`无法解析${label}: ${document.errors[0].message}`);
23
+ const value = document.toJS({ maxAliasCount: 0 });
24
+ if (!value || typeof value !== "object" || Array.isArray(value)) throw new TypeError(`${label}必须是对象`);
25
+ return value;
26
+ }
27
+
28
+ function canonicalize(value) {
29
+ if (Array.isArray(value)) return value.map(canonicalize);
30
+ if (value && typeof value === "object") {
31
+ return Object.fromEntries(Object.keys(value).sort().map((key) => [key, canonicalize(value[key])]));
32
+ }
33
+ return value;
34
+ }
35
+
36
+ function selectById(records, id, label) {
37
+ if (!id) return null;
38
+ const selected = records.find((record) => record.id === id);
39
+ if (!selected) throw new TypeError(`未知${label}: ${id}`);
40
+ return selected;
41
+ }
42
+
43
+ function collectPathReferences(value, references = new Set()) {
44
+ if (Array.isArray(value)) {
45
+ for (const item of value) collectPathReferences(item, references);
46
+ } else if (value && typeof value === "object") {
47
+ for (const item of Object.values(value)) collectPathReferences(item, references);
48
+ } else if (typeof value === "string" && /(?:^|\/)[^\s]+\.(?:md|ya?ml|json|mjs)(?:#.*)?$/.test(value)) {
49
+ references.add(value);
50
+ }
51
+ return references;
52
+ }
53
+
54
+ function selectedSkills(route, skillRegistry) {
55
+ if (!route) return [];
56
+ const ids = new Set([
57
+ route.primary_skill,
58
+ route.native?.skill,
59
+ ...(route.supporting_skills ?? []),
60
+ ...(route.skills ?? []),
61
+ ].filter(Boolean));
62
+ return skillRegistry.skills.filter((skill) => ids.has(skill.id));
63
+ }
64
+
65
+ export function queryLifecycleContext({ mode, stageId, workUnitId, include = [] } = {}) {
66
+ if (!mode && !stageId && !workUnitId && include.length === 0) {
67
+ throw new TypeError("至少提供 --mode、--stage、--work-unit 或 --include 之一");
68
+ }
69
+
70
+ const lifecycle = validateRegistry(loadRegistry());
71
+ const orchestration = loadYaml(ORCHESTRATION_CONTRACT_REF, "生命周期编排合同");
72
+ const skillRegistry = loadSkillRegistry();
73
+ const stage = selectById(lifecycle.stages, stageId, "阶段");
74
+ const workUnit = selectById(lifecycle.work_units, workUnitId, "工作单元");
75
+
76
+ if (mode && !(mode in orchestration.modes)) throw new TypeError(`未知模式: ${mode}`);
77
+ const normalizedIncludes = [...new Set(include.flatMap((value) => value.split(",")).map((value) => value.trim()).filter(Boolean))].sort();
78
+ for (const key of normalizedIncludes) {
79
+ if (!(key in orchestration)) throw new TypeError(`未知编排合同子树: ${key}`);
80
+ }
81
+
82
+ const route = workUnitId ? orchestration.work_unit_routes?.[workUnitId] ?? null : null;
83
+ const gates = stageId ? lifecycle.gates.filter((gate) => gate.stage === stageId) : [];
84
+ const artifacts = stageId ? lifecycle.artifacts.filter((artifact) => artifact.stage === stageId) : [];
85
+ const evidenceIds = new Set(gates.flatMap((gate) => gate.evidence ?? []));
86
+ const selected = Object.fromEntries(normalizedIncludes.map((key) => [key, orchestration[key]]));
87
+ const transition = workUnitId ? {
88
+ next: orchestration.transition_graph?.routes?.[workUnitId] ?? [],
89
+ forbidden_shortcuts: (orchestration.transition_graph?.forbidden_shortcuts ?? [])
90
+ .filter((edge) => edge.from === workUnitId || edge.to === workUnitId),
91
+ } : null;
92
+
93
+ const result = {
94
+ schema_version: 1,
95
+ query: {
96
+ include: normalizedIncludes,
97
+ mode: mode ?? null,
98
+ stage: stageId ?? null,
99
+ work_unit: workUnitId ?? null,
100
+ },
101
+ sources: {
102
+ lifecycle_registry: {
103
+ ref: LIFECYCLE_REGISTRY_REF,
104
+ semantic_sha256: semanticDigest(lifecycle),
105
+ status: lifecycle.status,
106
+ },
107
+ orchestration_contract: {
108
+ ref: ORCHESTRATION_CONTRACT_REF,
109
+ sha256: sha256(read(ORCHESTRATION_CONTRACT_REF)),
110
+ },
111
+ skill_registry: {
112
+ ref: SKILL_REGISTRY_REF,
113
+ sha256: sha256(read(SKILL_REGISTRY_REF)),
114
+ status: skillRegistry.status,
115
+ },
116
+ },
117
+ lifecycle: {
118
+ artifacts,
119
+ evidence: lifecycle.evidence.filter((item) => evidenceIds.has(item.id)),
120
+ gates,
121
+ stage,
122
+ work_unit: workUnit,
123
+ },
124
+ execution: {
125
+ mode: mode ? orchestration.modes[mode] : null,
126
+ selected,
127
+ transition,
128
+ work_unit_route: route,
129
+ },
130
+ skills: selectedSkills(route, skillRegistry),
131
+ };
132
+ result.references = [...collectPathReferences(result), LIFECYCLE_REGISTRY_REF, ORCHESTRATION_CONTRACT_REF, SKILL_REGISTRY_REF]
133
+ .filter((value, index, all) => all.indexOf(value) === index)
134
+ .sort();
135
+ return canonicalize(result);
136
+ }
137
+