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
@@ -18,7 +18,7 @@ const capabilityModules = {
18
18
  combined: { capabilities: ["external-integration", "feign-client"], modules: ["server", "service", "repository", "adapter", "client", "feign-client"] }
19
19
  };
20
20
 
21
- async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator" } = {}) {
21
+ async function fixture(t, { profile = capabilityModules.basic, architectureProfile = "layered-mvc-service", skillId = "yss-layered-mvc-scaffold-generator", schemaVersion = 3 } = {}) {
22
22
  const root = await mkdtemp(path.join(os.tmpdir(), "yss-layered-mvc-"));
23
23
  t.after(() => rm(root, { recursive: true, force: true }));
24
24
  const output = path.join(root, "backend");
@@ -30,7 +30,12 @@ async function fixture(t, { profile = capabilityModules.basic, architectureProfi
30
30
  const decisionFile = path.join(root, "scaffold-architecture-decisions.yaml");
31
31
  await writeFile(decisionFile, decisionText);
32
32
  const contract = {
33
- schema_version: 3,
33
+ schema_version: schemaVersion,
34
+ kind: "project-scaffold-contract",
35
+ delivery_role: "backend",
36
+ scaffold_kind: "backend-layered-mvc",
37
+ repository_scope: "external-repository",
38
+ init_git: false,
34
39
  contract_id: "scaffold.demo-service.v1",
35
40
  contract_version: 1,
36
41
  scaffold_request_id: "request.demo-service",
@@ -97,6 +102,16 @@ test("旧数据库和 Mock 参数在写入前被拒绝", async (t) => {
97
102
  }
98
103
  });
99
104
 
105
+ test("统一 Project Scaffold Contract v4 可生成 Layered MVC 后端并保留 v4 Manifest", async (t) => {
106
+ const data = await fixture(t, { schemaVersion: 4 });
107
+ data.contract.current_version = true;
108
+ await writeFile(data.contractFile, JSON.stringify(data.contract));
109
+ const result = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
110
+ assert.equal(result.status, 0, result.stderr);
111
+ const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
112
+ assert.equal(manifest.schema_version, 4);
113
+ });
114
+
100
115
  test("可选离线 Maven 可行性检查(不替代受控仓库验收)", { skip: process.env.YSS_BACKEND_OFFLINE_PROBE !== "1" }, async (t) => {
101
116
  const data = await fixture(t);
102
117
  const generated = spawnSync(process.execPath, [script, ...data.args], { encoding: "utf8" });
@@ -1,77 +1,53 @@
1
1
  ---
2
2
  name: yss-mybatis
3
- description: 用于 YSS MyBatis 与 MyBatis-Plus 持久层规范、配置和排障。当用户提到 BaseRepository、BasePlusRepository、PageQuery 自动分页、多数据源、批量插入或 MyBatis 配置异常时调用。
3
+ description: 用于 YSS MyBatis / MyBatis-Plus 组件能力核验、接入决策和排障;涉及 Mapper/Repository 基类、分页、批量 SQL、扫描配置或数据源能力时使用,不负责生成持久层结构。
4
4
  ---
5
5
 
6
6
  # yss-mybatis
7
7
 
8
- 用于处理 `yss-component-persistence` 相关的持久层规范、接入和问题定位。
8
+ 本 Skill 只维护 `yss-component-persistence` 的组件能力、选择条件和排障顺序。PO、Repository、Convertor、Gateway/Query Adapter 的结构与生成边界由 `yss-repository` 负责。
9
9
 
10
- ## 何时使用
10
+ ## 入口与前置
11
11
 
12
- - 用户要定义新的 Repository。
13
- - 用户在 MyBatis 与 MyBatis-Plus 两种模式间排查问题。
14
- - 用户提到自动分页、`PageQuery`、批量插入、多数据源。
15
- - 用户反馈 Mapper 扫描、分页不生效、批量性能差。
12
+ 1. 读取批准且当前的 `architecture_identity`、`persistence_profile`、实现仓登记和 Slice Implementation Contract。没有合同的故障诊断可以继续,但不得据此生成或改变架构。
13
+ 2. 精确类名、方法签名、配置 key、默认值或启用条件必须先读 [source-index.md](references/source-index.md),并按 `yss-skill-source-index-refresh/references/source-location.md` 核验组件 tree 与组件子树 clean 状态。
14
+ 3. 组件 tree 不匹配或 persistence 子树为 dirty 时,路径提示只能用于定位;精确实现或审查结论返回 `stale` / `missing_evidence`,刷新索引后再继续。
15
+ 4. 新 DDD / MVC scaffold 只支持批准的 `mybatis-plus` Profile。普通 MyBatis 仅用于既有工程维护、兼容与排障;新增支持必须有独立 Profile 和 fixture,不自动猜测或混用。
16
16
 
17
- ## 工作方式
17
+ ## 稳定决策规则
18
18
 
19
- 1. 先读取批准的 `persistence_profile` 和 `architecture_identity`。新 DDD / MVC scaffold 都使用 `mybatis-plus`;普通 MyBatis 必须有独立 fixture 和批准 Profile,禁止自动猜测或混用。模块所有权按 `docs/agents/backend-architecture-profiles.md`;H2 仅用于本地/测试,生产数据库另行批准接入。
20
- 2. 涉及真实类名、配置项、模块依赖或排障时,先读 `references/source-index.md`,再定位源码或文档。
21
- 3. 先复用现有基类与配置,不手搓新的基础设施。
22
- 4. 涉及分页时,先验证 `PageQuery` 传递链路和拦截器是否生效。
19
+ - 基类、Mapper 注解、XML 位置和扫描范围以批准 Profile、当前工程基线及当前组件源码共同决定;不得在既有体系外再造 Mapper 抽象。
20
+ - 一条查询 seam 只能有一个分页责任模型。核对实际插件/切面开关、拦截范围、参数绑定条件和返回 total 的责任,不以“依赖已引入”代替行为验证。
21
+ - 批量写入必须证明是组件当前支持的 SQL 级批量能力,并验证分批大小、字段填充、主键和数据库方言;循环单条写入不能冒充批量 SQL。
22
+ - 多数据源实例创建不等于动态路由、线程上下文切换或事务传播。先做 capability check;组件未提供的路由能力必须由批准的上层适配承担。
23
+ - Mapper/XML、逻辑删除、审计字段、主键策略、动态排序/分组白名单和参数绑定必须与数据合同一致;任何 SQL/DDL/索引新影响返回 `new_impacts`。
24
+ - 事务边界归批准的 Application 用例或 MVC service/core;Repository 不临时声明新的业务事务。
23
25
 
24
- ## 源码索引
26
+ ## 任务分流
25
27
 
26
- - 源码位置不要假设固定目录;先按 `yss-skill-source-index-refresh/references/source-location.md` 定位。
27
- - 当前技能索引:`references/source-index.md`
28
- - 重点源码入口通常包括 `BaseRepository`、`BasePlusRepository`、`EntityQueryAspect`、`PageQueryEntityConfigration`、`MybatisBaseConfiguration`、`MybatisPlusConfiguration`、`MultiDataSourceConfiguration`、`MultiDataSourceHolder`。
29
-
30
- 当组件源码变化后,用 `yss-skill-source-index-refresh` 刷新索引;刷新或读取前先按源码定位策略确认真实位置。
31
-
32
- ## 实施建议
33
-
34
- - 通用模式优先继承 `BaseRepository`
35
- - MP 模式优先继承项目既有的 `BasePlusRepository`
36
- - 批量导入优先使用真正的 SQL 级批量方法,不要默认循环单条插入
37
- - 多数据源问题优先先看配置和扫描范围,再怀疑业务代码
38
- - DDD 分页经 Application Query Port 进入 Infrastructure;MVC 经 service/core 进入 Repository。不把 `PageQuery` 带入 Domain Gateway,也不得在 Repository 内临时发明分页参数。
39
- - 生成或重构持久层时,先看当前模块已有 Repository/Mapper 命名、包路径、XML 位置。
40
-
41
- ## 检查清单
42
-
43
- - Mapper 扫描路径是否正确。
44
- - XML 路径和接口是否对齐。
45
- - `PageQuery` 是否真的出现在被拦截的方法参数里。
46
- - 批量方法是否用了项目推荐实现。
47
- - 多数据源名称和主从配置是否一致。
48
- - MyBatis 与 MyBatis-Plus 的基类、分页插件和扫描配置是否混用。
49
- - 数据源切换是否在事务边界之前完成。
28
+ | 请求 | 本 Skill 动作 | 后续路由 |
29
+ |---|---|---|
30
+ | 组件接入、基类选择、配置核验 | 读取当前 Profile 和源码能力矩阵,给出来源可追踪的选择 | 需要结构实现时转 `yss-repository` |
31
+ | 分页、批量、扫描、XML、数据源故障 | 按下列顺序定位并保留实际证据 | 发现合同或数据影响时返回编译器 |
32
+ | 生成 PO / Repository / Convertor / GatewayImpl | 不生成 | `yss-repository` |
33
+ | 普通 MyBatis 新工程生成 | `unsupported` | 新 Profile / fixture 获批后再进入 |
50
34
 
51
35
  ## 排障顺序
52
36
 
53
- 1. 确认依赖模块:starter、mapper、plus starter、persistence common。
54
- 2. 确认 Mapper/Repository 扫描范围。
55
- 3. 确认分页参数、分页切面或插件是否参与调用。
56
- 4. 确认 XML、方法签名、resultMap/字段映射是否一致。
57
- 5. 确认多数据源配置和当前线程数据源上下文。
58
- 6. 最后再排查 SQL 本身和数据库执行计划。
59
-
60
- ## 修改约束
61
-
62
- - 不要同时引入两套分页机制而不说明谁生效。
63
- - 不要在已有 Repository 基类体系之外再造一套 Mapper 抽象。
64
- - 若用户只是要生成持久层骨架,优先衔接 `yss-repository`。
37
+ 1. 依赖与 Profile:starter、组件版本、MyBatis/MyBatis-Plus 模式是否与合同一致。
38
+ 2. 装配与开关:自动配置、条件属性、Mapper 扫描和 XML location 是否真实生效。
39
+ 3. 调用 seam:代理是否命中、分页参数位置/类型、分页插件链和 total 回填责任。
40
+ 4. 映射:接口签名、XML namespace、resultMap、字段、逻辑删除和主键策略。
41
+ 5. 批量:是否调用当前公开批量入口、分批与方言是否匹配、是否退化为循环单条。
42
+ 6. 数据源:先确认组件只提供了什么,再检查上层路由与事务进入顺序;不得假设存在当前线程数据源上下文。
43
+ 7. 最后检查 SQL、绑定参数、数据库方言与执行计划。
65
44
 
66
- ## 按需读取
45
+ ## Review 输入
67
46
 
68
- - 源码索引:`references/source-index.md`
69
- - 基础 Repository:`assets/BaseRepository.java`
70
- - 分页切面:`assets/EntityQueryAspect.java`
71
- - MyBatis 基础配置:`assets/MybatisBaseConfiguration.java`
47
+ 仅审查本体项目和合同/实现仓登记的后端研发项目。命中 Mapper、Repository、SQL、分页、批量、扫描配置或数据源能力时,`code-review` Standards 轴必须读取本 Skill 和当前 source index;无持久化影响时显式记录带原因的 `not-applicable`。
72
48
 
73
- ## 阶段 7 合同
49
+ ## 结果与验证
74
50
 
75
- - 仅在数据架构、Repository 策略和批准合同明确时使用。
76
- - Mapper/XML 骨架可受控生成;查询语义、分页、数据源切换和事务行为使用 `behavior-tdd`。
77
- - 按统一 `YSS Skill Execution Result` 返回 Mapper/XML/配置、集成测试、实际 `./mvnw ...` 结果和新增 SQL/DDL/索引影响。
51
+ - 行为变更使用 `behavior-tdd`;纯 Mapper/XML 骨架仅在批准合同明确为 `controlled-generation` 时允许。
52
+ - 使用项目根 `./mvnw ...` 记录实际命令、退出码和时间;H2 只证明本地/测试行为,不证明生产方言。
53
+ - 按 [YSS Skill Execution Result v2](../yss-implementation-contract-compiler/references/yss-skill-execution-result.md) 返回证据、`seam_deferred`、`deviations`、`new_impacts`、`drift` 和 `violation`。
@@ -1,5 +1,5 @@
1
1
  version: 1
2
2
  interface:
3
3
  display_name: "YSS MyBatis"
4
- short_description: "MyBatis 持久层、多数据源、分页与查询处理规范"
5
- default_prompt: "Use $yss-mybatis to implement or debug YSS MyBatis repositories, pagination, and multi-datasource access."
4
+ short_description: "MyBatis 组件能力、配置、分页、批量与数据源排障"
5
+ default_prompt: "Use $yss-mybatis to verify or troubleshoot current YSS MyBatis capabilities and configuration; route persistence structure work to $yss-repository."
@@ -1,13 +1,14 @@
1
1
  # yss-mybatis Source Index
2
2
 
3
- Generated: 2026-08-17T12:03:37.436Z
4
- Source commit: `38b556a5081e6c66c0c538cbc1ef839b19996ed3`
5
- Source worktree: `dirty`
3
+ Generated: 2026-09-08T17:00:36.490Z
4
+ Source commit: `2ccbd3f3f145f9bf74b217a2c211e4bf7a8a2074`
5
+ Component worktree: `clean`
6
+ Component tree `yss-microservice-components/yss-component-persistence`: `274d9f4c948d0bd8a58e7f6fb50685d6de740f7b`
6
7
  Indexed source root: resolved at refresh time; set `YSS_SOURCE_ROOT` to reproduce or refresh.
7
8
 
8
9
  This file is generated by `yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs`. Do not hand-edit generated sections.
9
10
 
10
- Paths below are source path hints captured at refresh time. If they do not exist in the current workspace, locate sources using `YSS_SOURCE_ROOT`, CodeGraph, package/class names, Maven artifact names, or repository search before assuming the source is unavailable.
11
+ Paths are relocatable source hints. Exact guidance requires a matching component tree and a clean indexed component subtree; the repository commit is trace metadata and may differ when unrelated components change.
11
12
 
12
13
  ## Component Path Hints
13
14
 
@@ -19,6 +20,8 @@ Paths below are source path hints captured at refresh time. If they do not exist
19
20
  - `yss-microservice-components/yss-component-persistence/README.md`
20
21
  - `yss-microservice-components/yss-component-persistence/TECHNICAL_DESIGN.md`
21
22
 
23
+ Component documentation is a discovery aid. For API signatures, conditions and defaults, prefer the indexed source facts below when documentation differs.
24
+
22
25
  ## Maven Modules
23
26
 
24
27
  - `yss-microservice-components/yss-component-persistence`
@@ -27,67 +30,84 @@ Paths below are source path hints captured at refresh time. If they do not exist
27
30
  - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter`
28
31
  - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common`
29
32
 
30
- ## Key Java Entry Points
31
-
32
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/config/defaults/UserConfig.java`
33
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/config/spring/SpringEnvAutoConfiguration.java`
34
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/BaseMapper.java`
35
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/Mapper.java`
36
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/base/EntityMapper.java`
37
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/config/MapperUserConfig.java`
38
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/example/ExampleMapper.java`
39
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/fn/FnMapper.java`
40
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/list/ListMapper.java`
41
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/logical/LogicalColumn.java`
42
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/logical/LogicalMapper.java`
43
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/mapper/logical/LogicalProvider.java`
44
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/EntityColumnFactory.java`
45
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/EntityFactory.java`
46
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/EntityInfoMapper.java`
47
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/EntityTableFactory.java`
48
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/SqlCache.java`
49
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/SqlScript.java`
50
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/SqlScriptWrapper.java`
51
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/SqlSourceCustomize.java`
52
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/SqlWrapper.java`
53
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/config/ProviderUserConfig.java`
54
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/AnnotationSqlScriptWrapper.java`
55
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/AnnotationSqlWrapper.java`
56
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/CachingEntityTableFactory.java`
57
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/DefaultEntityColumnFactory.java`
58
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/DefaultEntityColumnFactoryChain.java`
59
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/DefaultEntityTableFactory.java`
60
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/DefaultEntityTableFactoryChain.java`
61
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/defaults/GenericTypeResolver.java`
62
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/jpa/JpaEntityColumnFactory.java`
63
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/jpa/JpaEntityTableFactory.java`
64
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/jpa/SimpleTypeUtil.java`
65
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/keysql/GenId.java`
66
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/keysql/GenIdKeyGenerator.java`
67
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/keysql/GenIdSqlSource.java`
68
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/keysql/KeySqlMsCustomize.java`
69
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/java/io/mybatis/provider/keysql/KeySqlSqlSourceCustomize.java`
70
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/MybatisPlusConfiguration.java`
71
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/MybatisPlusGlobalProperties.java`
72
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/PageInterceptorProperties.java`
73
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java`
74
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchSqlInjector.java`
75
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java`
76
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MybatisPlusConfig.java`
77
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java`
78
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/LogbackImpl.java`
79
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/MybatisBaseConfiguration.java`
80
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/aop/EntityQueryAspect.java`
81
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/config/PageQueryEntityConfigration.java`
82
- - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java`
83
- - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceConfiguration.java`
84
- - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceHolder.java`
85
- - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceProperties.java`
86
- - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/PrimaryDataSourceConfiguration.java`
87
- - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/PrimaryDataSourceProperties.java`
88
-
89
- ## Recommended Next Reads
90
-
91
- - Start with the documentation files above when learning component usage.
92
- - Search the key Java entry points for annotations, auto configuration, properties, aspects, interceptors, handlers, and result objects before changing application code.
93
- - Prefer existing component extension points over rewriting framework logic in business modules.
33
+ ## Capability Matrix
34
+
35
+ ### Repository abstractions
36
+
37
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java` — `sha256:fd6d72ff759b3438a2cf9d8a2ba24e848a9e68995fc8a100a0a53c65ee3500bb`
38
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:20` — `public interface BaseRepository<T, D extends Serializable> extends Mapper<T>, BaseMapper<T, D>, ListMapper<T> {`
39
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:66` — `<S extends T> int insert(S entity);`
40
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:80` — `<S extends T> int insertSelective(S entity);`
41
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:85` — `<S extends T> int insertList(@Param("entityList") List<S> entityList);`
42
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:96` — `<S extends T> int updateList(@Param("entityList") List<S> entityList);`
43
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/support/BaseRepository.java:108` — `<S extends T> int updateListSelective(@Param("entityList") List<S> entityList);`
44
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java` — `sha256:3c37b73a2a2dcaa1ad47fee42f8fb4f9b9ecf51b095f8d1fef816cf785fcbb05`
45
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java:12` — `public interface BasePlusRepository<T> extends BaseMapper<T> {`
46
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java:21` — `default Integer insertBatchSomeColumn(List<T> entityList) {`
47
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java:29` — `Integer rows = insertBatchSomeColumnInternal(entityList.subList(fromIndex, toIndex));`
48
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/support/BasePlusRepository.java:43` — `Integer insertBatchSomeColumnInternal(List<T> entityList);`
49
+
50
+ ### Pagination and activation
51
+
52
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/aop/EntityQueryAspect.java` — `sha256:617d5eba33a8266bfc485c8e5f39f43519dd16f4d89c9fea7f918d87b00293ba`
53
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/aop/EntityQueryAspect.java:22` — `@Around("( (execution(public * (@org.springframework.stereotype.Repository *).*(..)) || execution(* com.yss..*.gateway.impl.*.*(..))))&& (args(pageQuery)||args(pageQuery,..))")`
54
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/aop/EntityQueryAspect.java:27` — `Page<Object> page = PageHelper.offsetPage(pageQuery.getOffset(), pageQuery.getPageSize());`
55
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/config/PageQueryEntityConfigration.java` — `sha256:c2659f417c10db7fd9e1a91f825d3b6396ae949f7858dbd3b3d9f8917ae42031`
56
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/java/com/yss/cloud/mybatis/config/PageQueryEntityConfigration.java:15` — `@ConditionalOnProperty(name = "yss.mybatis.page-helper.enabled", havingValue = "true", matchIfMissing = true)`
57
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java` — `sha256:2fda7b769434bd6942f680cdc7ffa71030c0d6a0e448d762e0f19b2d0b33cd85`
58
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:8` — `@ConfigurationProperties(value = "yss.mybatis",ignoreUnknownFields = false)`
59
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:10` — `private String mapperLocation = "mappers/*.xml";`
60
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:11` — `private String mapperScan = "com.yss.cloud.**.mapper";`
61
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:15` — `private Integer batchSize = 200;`
62
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:21` — `private PageHelper pageHelper = new PageHelper();`
63
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:27` — `private MybatisPlusPagination mybatisPlusPagination = new MybatisPlusPagination();`
64
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:36` — `private String dbType;`
65
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:164` — `private Boolean enabled = true;`
66
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/YssMybatisMapperProperties.java:183` — `private Boolean enabled = true;`
67
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java` — `sha256:79509947c12aeac7b9d6d3e8610edea438240b6613368b84b57b492f06a6b7fc`
68
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java:47` — `PageInterceptor pageInterceptor = new PageInterceptor();`
69
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java:264` — `batchSqlInjector.setDbType(dbType);`
70
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java:265` — `BatchInsertSettings.setBatchSize(yssMybatisMapperProperties.getBatchSize());`
71
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/MapperConfiguration.java:275` — `PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(dbType);`
72
+
73
+ ### SQL-level batch insertion
74
+
75
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java` — `sha256:b1ae05aed5f90a97c36ad29d240b05f9f7c5ee5796f2bc293917e09f7d1c8bd2`
76
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java:8` — `private static final int DEFAULT_BATCH_SIZE = 200;`
77
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java:9` — `private static volatile int batchSize = DEFAULT_BATCH_SIZE;`
78
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java:18` — `public static void setBatchSize(Integer configuredBatchSize) {`
79
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java:19` — `batchSize = configuredBatchSize == null || configuredBatchSize <= 0`
80
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchInsertSettings.java:20` — `? DEFAULT_BATCH_SIZE : configuredBatchSize;`
81
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchSqlInjector.java` — `sha256:463dfc881c0c33e27ed2a9157041e8b06d2b2e8bbab0dae1a106f467c31fb4ef`
82
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchSqlInjector.java:16` — `public class BatchSqlInjector extends DefaultSqlInjector {`
83
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/BatchSqlInjector.java:28` — `"insertBatchSomeColumnInternal", dbType, i -> FieldFill.UPDATE != i.getFieldFill()));`
84
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/DialectInsertBatchSomeColumn.java` — `sha256:9cc31f71154fffbc99e4f67816b9026f286f864cfb56a57420185f5e0362dca3`
85
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/DialectInsertBatchSomeColumn.java:24` — `public class DialectInsertBatchSomeColumn extends AbstractMethod {`
86
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/DialectInsertBatchSomeColumn.java:82` — `return dbType == DbType.ORACLE`
87
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/DialectInsertBatchSomeColumn.java:83` — `|| dbType == DbType.ORACLE_12C`
88
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/java/com/yss/cloud/mybatis/config/DialectInsertBatchSomeColumn.java:84` — `|| dbType == DbType.DM;`
89
+
90
+ ### Multi-data-source capability boundary
91
+
92
+ - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceHolder.java` — `sha256:d19370f6a63af76ccb0d05084ef9f0aa71488dcc98b320933ffb8ccf9b9bf896`
93
+ - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceHolder.java:10` — `public class MultiDataSourceHolder {`
94
+ - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/java/com/yss/cloud/mybatis/MultiDataSourceHolder.java:12` — `private Map<String, DataSource> multiDataSource;`
95
+
96
+ ### Auto-configuration registration
97
+
98
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-mapper/src/main/resources/META-INF/spring.factories` — `sha256:592ecdc43e8e11f86c6d1c4b335661f7a05ae8faf4ebb206ec49ef25512d5e46`
99
+ - `org.springframework.boot.autoconfigure.EnableAutoConfiguration=\`
100
+ - `io.mybatis.config.spring.SpringEnvAutoConfiguration`
101
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter/src/main/resources/META-INF/spring.factories` — `sha256:22d8e4510b67fffe9a132b20524c1982c530d80594a3c4e9f839e914068e0a58`
102
+ - `org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.yss.cloud.mybatis.MybatisPlusConfiguration`
103
+ - `yss-microservice-components/yss-component-persistence/yss-component-mybatis-starter/src/main/resources/META-INF/spring.factories` — `sha256:ab6be3903a3af9369ecc56d47dac769511e62bc4a7215ebb7171a920415fa23f`
104
+ - `org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.yss.cloud.mybatis.MybatisBaseConfiguration,com.yss.cloud.mybatis.MybatisPlusConfiguration`
105
+ - `yss-microservice-components/yss-component-persistence/yss-component-persistence-common/src/main/resources/META-INF/spring.factories` — `sha256:59e4a12550a854ad5a5b253ba3300058edc6646b2b221505aab4fb6bfcad1721`
106
+ - `org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.yss.cloud.mybatis.MultiDataSourceConfiguration`
107
+
108
+ ## Freshness and Use
109
+
110
+ - Locate the current source root using `YSS_SOURCE_ROOT`, CodeGraph, Maven artifact names or repository search.
111
+ - Compare each indexed `Component tree` with `git rev-parse HEAD:<component-path>` and require the current component subtree to be clean before exact guidance.
112
+ - A repository commit difference alone is not stale when the component tree is unchanged; a component tree mismatch or component-local dirty state is stale.
113
+ - Read only the source entries needed for the current decision or troubleshooting path.
@@ -5,74 +5,79 @@ description: 编排 YSS 产品或模块从机会调研到 Spec、原型、技术
5
5
 
6
6
  # YSS Product Lifecycle
7
7
 
8
- 这是生命周期主控 skill:负责识别阶段、判定影响面、检查产物与门禁、选择下一工作单元并验收结果。业务实现必须交给对应的 Matt/YSS 专项 skill;本 skill 不替代它们。
8
+ 生命周期的单一主控入口。它识别仓库身份和最近可信阶段,计算可执行 frontier,选择并验收下一个工作单元;业务设计、实现和独立审查交给相应专项 skill。主控不替代专项 skill,也不复制它们的执行手册。
9
9
 
10
- ## 入口与边界
10
+ ## 事实源与按需加载
11
11
 
12
- 1. 先读取 `yss-project.yaml`、`CONTEXT.md`、相关 ADR、父 Ticket/checkpoint 和当前资产。
13
- 2. `repository_mode=template-source` 只走模板维护流程;命中产品流程时返回 `blocked: template-source-product-artifact-forbidden`,不得生成产品 Spec、原型、OpenAPI 或切片 Ticket。
14
- 3. `repository_mode=project-instance` 以 `docs/process/lifecycle-registry.yaml`、`harness-process-tailoring.md` 和本目录 references 为唯一阶段、门禁和裁剪事实源;技能分层、别名、默认可发现性和运行时入口以 `docs/agents/yss-skill-registry.yaml`(`status: active`)为准,来源、版本、hash 和投影以 `skills-lock.json` 为准。数字人角色、阶段协作组、运行时绑定与会签级别以 `docs/agents/digital-human-roles.yaml` 为准;职称实例不另起编排器。
15
- 4. 模式:`route` 只读规划;`orchestrate` 有界推进;`resume` 重建后推进;`audit` 严格只读。未明确时使用 `route`。
12
+ 先读取项目根 `yss-project.yaml`、`CONTEXT.md`、相关 ADR、父 Ticket/checkpoint 和当前资产。随后只加载当前决策需要的合同子树:
16
13
 
17
- Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为显式兼容入口;默认路径是本 skill 持有的原生工作单元,由本编排器创建正式资产、维护状态并在会签门禁暂停(级别见数字人角色注册表)。兼容入口不得自动调用它们或代替其创建正式资产;Matt 只导航,不得写生命周期资产或改变门禁/Ticket 状态;任何写入前回交本编排器。
14
+ | 事实 | 权威来源 |
15
+ |---|---|
16
+ | 阶段、门禁、产物、工作单元、证据和稳定 ID | `docs/process/lifecycle-registry.yaml` |
17
+ | 执行模式、流转、readiness、暂停、结果和授权语义 | `references/orchestration-contract.yaml` |
18
+ | Skill 身份、capability、依赖和路由 | `docs/agents/yss-skill-registry.yaml` |
19
+ | 数字人角色、运行时和会签策略 | `docs/agents/digital-human-roles.yaml` |
20
+ | 影响面、裁剪和模板维护强度 | `docs/process/harness-process-tailoring.md`、`docs/process/maintenance-intensity.yaml` |
18
21
 
19
- 技能调用先消费 `docs/agents/yss-skill-registry.yaml` 的 `invocation_contract`:它只约束调用模式、触发/排除条件、主要输出和依赖,不替代生命周期证据或门禁。进入实现后,Slice Contract 的 `common.context_plan` 只加载当前切片的最小充分上下文;缺失权威上下文必须 `blocked` 或回 实现合同编译器,不得猜测补齐。质量标准由 `engineering-baseline` 一次定义并由切片、Execution Result、审查和发布复用;命中高风险影响时在途记录 Doubt-Driven 主张、反证、证据和残余风险。Wayfinder 仅作为超长或决策前沿不清晰工作的可选 Discovery → Spec 规划模式,完成后回到 `handoff → to-spec`,不改变生命周期状态。
22
+ 使用 `scripts/query-lifecycle-context` 获取确定性 JSON 投影,不要为普通路由整份读取编排合同:
20
23
 
21
- ## 不可裁剪的主链
24
+ ```bash
25
+ scripts/query-lifecycle-context --mode route
26
+ scripts/query-lifecycle-context --stage stage.discovery
27
+ scripts/query-lifecycle-context --work-unit work-unit.discovery-requirements
28
+ scripts/query-lifecycle-context --work-unit work-unit.slice-implementation --include ready_for_agent --include ticket_formalization
29
+ ```
22
30
 
23
- 新后端工程先按注册表选择 architecture_profile(target-domain-model / layered-mvc-service / mvc-data-analysis-v1),禁止从模块目录反推。全部新骨架只绑定 H2 本地/测试,不绑定生产数据库。独立数据分析 project-instance 走 `work-unit.service-project-initialization` 和 `yss-mvc-data-analysis-project-initializer`;通用 MVC 不调用该初始化器。父项目只保留交接/服务引用,子项目有自己的根 CONTEXT、Git 和生命周期。规则见 `docs/agents/backend-architecture-profiles.md`;Profile 为 draft 时不得 ready-for-agent。
31
+ `--include` 接受编排合同的顶层键;非法模式、ID 或合同键必须失败。查询结果只是带摘要的权威事实投影,不成为新的事实源。解释性细节按需读取 `references/orchestration.md`、`references/state-model.md`、`references/artifact-dependencies.md`、`references/user-decisions.md` 和 `references/matt-yss-adapter.md`,达到最小充分证据后停止扩展上下文。
24
32
 
25
- 入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
33
+ ## 入口与模式
26
34
 
27
- 裁剪只允许将未命中的条件门禁标记为 `not-applicable` 并写原因;不得删除主阶段、已命中的门禁或必需产物。阶段是否完成取决于“内容 + 审查结论 + 上游新鲜度 + 可读证据”,文件存在不算通过。每个 `project-instance` 工作单元在请求批准或进入下一工作单元前,必须先把已确认稳定术语回写到项目根目录唯一的 `CONTEXT.md`,再产出通过 `scripts/verify-context-reconciliation` 的 `context_reconciliation`;它是横切证据,不新增门禁。存在候选术语、错误路径、无法解析的 `<ContextId>/<EnglishIdentifier>`、摘要漂移或未决冲突时返回 `blocked`。
35
+ 1. 严格解析 `yss-project.yaml`,不得按目录、Git remote 或占位符猜仓库身份。
36
+ 2. 判定影响面和最近可信阶段;阶段完成必须同时满足内容、审查结论、上游新鲜度和可读证据,文件存在不代表通过。
37
+ 3. 模式为 `route`、`orchestrate`、`resume`、`audit`;未明确时使用只读 `route`。具体写入边界从编排合同的 `modes` 子树读取。
38
+ 4. `project-instance` 按生命周期注册表推进;`template-source` 只走模板维护流程。
28
39
 
29
- ## 阶段路由与技能
40
+ ## 不可越过的边界
30
41
 
31
- 下表按 `lifecycle-registry.yaml` 的主阶段颗粒度编排;同一阶段内的多个工作单元、条件技能和门禁依赖以 references 为准。
42
+ ### 仓库身份
32
43
 
33
- | 主阶段 | 必需产物/门禁 | 原生工作单元与技能 | 通过条件 |
34
- |---|---|---|---|
35
- | 入口分诊 `stage.entry-triage` | 身份、影响面、最近可信阶段 | `work-unit.entry-triage`;`yss-product-lifecycle` | `yss-project.yaml` 合法且影响面可解释 |
36
- | Discovery `stage.discovery` | 机会与目标、业务故事、用户/MVP/非目标/成功标准、测试 seam;需要时补充业务边界与规则设计和方案决策包 | `work-unit.discovery-opportunity` + `work-unit.discovery-requirements` + `work-unit.domain-strategy-design` + `work-unit.stage-decision`;市场/竞品事实用 `competitive-intelligence`,技术/标准事实用 `yss-research:technical-evidence`,业务边界与方案决策证据用 `yss-research:strategy-evidence`;需求澄清用 `grilling`,业务词汇和责任区梳理用 `domain-modeling` / `yss-stage-decision`;`grill-with-docs` 为兼容入口 | 未决事实已由 `yss-research` 核验或 handoff;业务板块、责任区、统一业务词汇、协作关系和不可违反规则可审查;方案决策包完成必要批准;`gate.domain-strategy-approved`、`gate.stage-decision-package-approved` |
37
- | Spec / 功能架构 `stage.spec-architecture` | Spec、产品总体设计、功能架构;必要时 Spec Delta | 原生 `work-unit.spec-synthesis`;`to-spec` 为兼容入口 | 初稿先为 `ready-for-human`;只有 Spec baseline 会签批准后资产才为 `approved` 并进入下游 |
38
- | 产品设计 `stage.product-design` | 交互说明、低保真、状态矩阵、H1/H2 原型交付物、评审记录 | `work-unit.prototype-design`;`yss-prototype-stage` 先消费 `yss-design-system`、低保真与独立 `prototype-review`,再按风险选择 H1 静态视觉或 H2 可运行流程;H2 默认调用 `yss-antdv-next-design`,显式 `react-antd-6` 兼容路线才调用 `yss-antd-design`,原型阶段禁止调用 `yss-ui` | `gate.prototype-reviewed`、`gate.prototype-verified`、`gate.user-confirmation` 均有 schema v3 证据;真实组件待验事项已交接到前端实现计划 |
39
- | 系统 / 数据架构与工程契约 `stage.system-data-engineering` | OpenAPI Draft/Freeze、数据架构、工程基线、架构审查;按已确认架构执行 DDD / MVC 技术设计 | `work-unit.technical-analysis`;`yss-technical-design` + `yss-implementation-contract-compiler`、 `yss-openapi-governance` / `yss-openapi-draft-review`、`codebase-design`、`implementation-repo-onboarding`;分支调用 `yss-tactical-design` / `yss-mvc-design`;用户或合同明确要求架构可视化时条件追加 `archify` | API/架构契约冻结;无 API 影响有明确记录;战术模型无未解释冲突;脚手架策略满足;Archify 图只作派生审查证据;`gate.openapi-draft-reviewed`、`gate.design-reviewed`、`gate.openapi-frozen`、`gate.engineering-baseline-accepted`、`gate.architecture-reviewed` |
40
- | Ticket 正式化 `stage.ticket-formalization` | 功能父 Ticket、垂直切片、Slice Implementation Contract | 原生 `work-unit.ticket-decomposition`;`yss-implementation-contract-compiler`;`to-tickets` 为兼容入口;生命周期复算 | 依赖、验收、测试 seam 可执行;合同已批准、持久化且为当前版本;`gate.slice-contract-approved`、`gate.slice-ready-for-agent` |
41
- | 垂直切片实现 `stage.vertical-slice-implementation` | 前端/后端代码、TDD 证据、YSS Skill Execution Result | 原生 `work-unit.slice-implementation`;`yss-implementation-contract-compiler` + `tdd`;前端按 `yss-ui` + `yss-ui-business-page-generation`,后端按 实现合同编译器 最小闭包;`implement` 为兼容入口 | 仅接收已完成 Ticket 正式化、已绑定垂直切片且 `ready-for-agent` 公式通过的输入;只写允许路径;业务行为用 `tdd` 的 `behavior-tdd` 模式;UI 影响必须有还原计划 |
42
- | 验证 / 发布 / 复盘 `stage.verification-release-retrospective` | 不可变候选快照、review 结论、fresh verification、发布 / 回滚证据、复盘记录 | `work-unit.frontend-implementation-verification` + `work-unit.code-review` + `work-unit.release-and-retrospective`;`code-review` 独立于实现者,Standards 消费合同 `required_skills` 与 YSS / Alibaba 专项检查输入;UI 影响追加 `yss-ui` + `yss-design-system` 的 UI fidelity 轴;发布 / 复盘由生命周期持有 | findings 已按合同分流处理(修复后全轴复审或 stale 回 实现合同编译器);同一候选快照通过全部审查轴、专项覆盖与验证;UI 影响追加 `gate.frontend-implementation-verified`;`gate.release-ready` 仍须生物人 |
44
+ `template-source` 不得生成产品 Spec、原型、OpenAPI 或垂直切片 Ticket;命中产品流程时返回 `blocked: template-source-product-artifact-forbidden`。模板维护使用 `maintaining-skills`,按 L1/L2/L3 留下对应证据。
43
45
 
44
- ## 面向业务角色的默认入口
46
+ ### 流转与实现
45
47
 
46
- Discovery 默认通过 Agent 引导,不要求产品、需求或商务直接填写内部模型字段。按以下主线推进:
48
+ 不得越过命中的阶段、门禁、实现仓库准备或 Ticket 正式化。实现只接收绑定垂直切片、已批准且持久化、版本当前并通过完整 `ready-for-agent` 计算的合同;父 Ticket、`ready-for-human` 切片、`stale`、`drift`、`new_impacts`、`violation` 或缺失证据均阻断。实现仓库、脚手架、UI 还原、review input 和发布条件从对应合同子树查询,不在入口重复定义。
47
49
 
48
- `机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
49
-
50
- Agent 先问清六件事:谁遇到什么问题并想得到什么结果;事情通常怎样发生;每一步由谁负责并交给谁;有哪些规则、例外和未决问题;哪一小段可以独立交付;用哪些例子和证据证明结果正确。需要分类业务板块时,改问“是否直接决定关键结果、是否有独特规则、是否可复用或外购”,再提出“重点业务、必要支撑、通用能力”建议,由业务负责人确认。
50
+ ### 用户决定
51
51
 
52
- 每轮路由先输出一页派生的“业务方案总览”,引用机会与目标、业务故事、业务责任区、规则与例子、Spec、页面验证、Ticket 和交接状态。总览只显示状态、权威资产引用、未决问题、责任人和下一步,不复制正文、不成为新的事实源,也不新增门禁。内部稳定 ID 和兼容字段只在 Agent 运行结果或维护者诊断中显示。
52
+ 命中 `docs/agents/digital-human-roles.yaml.user_decision_policy` 的关键决定,必须先展示当前资产、版本、变化、风险、推荐方案、批准范围和后续动作,再取得提问者或其明确指定生物人负责人的原始回复。数字人同意、超时、默认项或无反对意见不能代答;恢复前按 `references/user-decisions.md` 验证当前资产与原始回复绑定。
53
53
 
54
- ## 前端实现还原硬检查
54
+ ### 外部副作用与 Git
55
55
 
56
- 采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `docs/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
56
+ 生命周期批准、实现授权和自然语言意向不构成结构化 Git 授权。commit、push、远端仓库创建、发布及其他运行时外部副作用分别检查明确动作、范围和可读授权引用;缺失时保持外部状态不变。`git-submodule` 还必须遵守逐仓授权、非 detached HEAD 和先子仓后父仓 gitlink 的顺序。
57
57
 
58
- 原型通过不等于前端实现通过。`ready-for-agent` 前先产生 `frontend_implementation_plan`,绑定批准且 digest 当前的 Visual Baseline manifest,并按垂直切片选择 `case_id`;实现完成、发布前再产生 `frontend_implementation_verification`,逐 case 配对基准图、实现图、diff/mask 与差异解释,同时补齐交互、console warning、实际 `pnpm` 命令和退出码。模型必须先读 manifest 与语义引用再查看图片,禁止通过目录 glob 猜测含义。差异未解释、图片或摘要缺失、只做 type-check 或只声称“已对齐”均为 `blocked`;Visual Baseline 版本或 digest 变化使实现计划和 Slice Contract `stale`,新 API、状态或视觉行为返回 `new_impacts`/`drift` 并重新路由。优先使用 `yss-ui/references/verification.md` 的分层验证和既有 `pnpm` scripts。
58
+ ## 有界编排循环
59
59
 
60
- ## 真实用户决定
60
+ 1. 从真实资产重建当前状态,查询当前 mode、stage、work-unit 及必要合同子树。
61
+ 2. 评估影响面、上游新鲜度、门禁和阻塞,选择第一个未阻塞工作单元;不把 `not-applicable` 当作豁免。
62
+ 3. 原生工作单元由主控持有正式资产;专项工作通过结构化任务包派发,只调用编排合同允许的 model-invoked skill。
63
+ 4. Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等仅为显式 user-invoked 兼容入口。主控不得自动调用它们或代替其创建正式资产;Matt 仅导航,不得写生命周期资产或改变门禁/Ticket 状态,任何写入前回交本编排器。
64
+ 5. 验收 `Workflow Execution Result`:工作单元、合同、允许写路径、`context_reconciliation`、证据、实际验证、延期 seam、漂移和下一路由必须可核验。实现派发额外绑定当前 Slice Implementation Contract;其他阶段不得伪造该合同。
65
+ 6. 在授权边界内继续下一工作单元;遇到人工决定、新授权、证据冲突、专项失败或合并/发布结论时暂停。暂停不得阻断无依赖的独立工作。
61
66
 
62
- 关键决定按 `docs/agents/digital-human-roles.yaml.user_decision_policy` 强制取得提问者或其明确指定的生物人负责人的原始回复。先展示资产、版本、变化、风险、推荐方案、批准范围和后续动作,再等待决定;超时、默认选项、数字人同意、无反对意见均无效。数字人审查不能替代用户批准;已有同版本同范围的有效确认复用,依据变化或撤回后重新展示并确认。单项“同意”有效,多项“继续”不算全部批准。独立工作可继续,依赖工作不得流转。
67
+ 每个 `project-instance` 工作单元在申请批准或流转前,先把稳定术语回写到根目录唯一 `CONTEXT.md`,并生成通过校验的 `context_reconciliation`。候选术语、错误路径、摘要漂移或未决冲突必须阻断。质量标准只由 `engineering-baseline` 定义一次;高风险影响按裁剪合同补充反证和残余风险。
63
68
 
64
- 统一记录、跨平台来源、机器校验、批量批准、历史兼容和实施范围绑定见 [user-decisions.md](references/user-decisions.md)。批准、恢复和实施入口必须重读来源与当前资产;不得只填 `approved`、自行创建用户同意或用旧数字人记录关闭关键门禁。
69
+ ## 面向业务角色
65
70
 
66
- ## 结果与暂停
71
+ 默认使用业务语言推进:
67
72
 
68
- 凡主控向数字人角色或独立运行时正式派发生命周期工作单元,都必须通过结构化任务包派发,并返回 `Workflow Execution Result`(workflow reference、skill、changed files、`context_reconciliation`、evidence refs、actual verification、deferred seams、drift/new impacts)。任务包使用 `docs/process/schemas/digital-human-task-package.schema.json`,由 `scripts/verify-digital-human-task-package` 校验;其中 `role_id`、`runtime_id`、`execution_state`、`contract.kind/id/version`、允许写路径、预期证据和汇合引用必须完整。`slice-implementation` 任务包额外绑定批准且当前版本的 Slice Implementation Contract;Discovery、Spec、原型、技术分析、Ticket、Review、发布和模板维护分别绑定各自的生命周期资产或维护 checkpoint,不得伪造 Slice Contract。缺少可读证据、`context_reconciliation` 未通过、`stale`、`violation`、`drift`、`new_impacts` 或阻塞信号时不得标记 completed。实现授权不包含 Git commit/push 授权;仅自然语言意向不构成上述结构化 Git 授权。用户已明确授权的具体动作可从原始回复整理为结构化授权并复用,不重复要求用户填写内部字段。
73
+ `机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
69
74
 
70
- 输出固定包含:模式、当前阶段、影响面、资产/门禁状态、证据、Ticket 正式化状态、垂直切片引用、`ready-for-agent` 计算结果、阻塞项、本轮动作、下一工作单元、暂停/继续理由、Ticket 同步和 Git checkpoint 判断。原生路径未出现 `to-tickets` / `implement` 名称本身不构成异常;但没有完成 `work-unit.ticket-decomposition`、垂直切片仍为 `ready-for-human`、引用父 Ticket 或 `next_route` 越过 Ticket 正式化时必须返回 `blocked`。暂停会签时必须输出门禁 ID、指定 `role_id`、`runtime_id` 和会签文件路径(`docs/.scratch/<feature>/gates/<gate-id>-approval.yaml`)。恢复前运行 `scripts/verify-approval-record --require-approved`;错误会签记为 `blocked`,不得把该门禁标为 `approved`。任务包的 `core_skills` / `forbidden_skills` 必须从 `docs/agents/digital-human-roles.yaml` 复制(`taskPackageDefaults`),禁止手写第二套。
75
+ 先问清用户与结果、通常流程、责任交接、规则与例外、可独立交付的最小范围、证明结果正确的例子和证据。每轮可生成一页“业务方案总览”,只引用权威资产并显示状态、未决问题、责任人和下一步;不复制正文、不成为新的事实源、不新增门禁。
71
76
 
72
- 详细执行循环、readiness、脚手架(包括 `controlled-generation`)、审查快照、状态传播和 Matt 边界见 [orchestration.md](references/orchestration.md)、[orchestration-contract.yaml](references/orchestration-contract.yaml)、[artifact-dependencies.md](references/artifact-dependencies.md) 和 [state-model.md](references/state-model.md)。
77
+ ## 结果与暂停
73
78
 
74
- ## 战略交接快照包
79
+ 输出至少包含:模式、仓库身份、当前阶段和工作单元、影响面、资产与门禁状态、证据、新鲜度、Ticket/垂直切片/合同状态、`ready-for-agent` 结论、阻塞项、本轮动作、下一工作单元、暂停或继续理由、Ticket 同步和 Git checkpoint 判断。
75
80
 
76
- 跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见 `docs/process/strategic-handoff-package.md`。
81
+ 暂停会签时追加门禁 ID、`role_id`、`runtime_id`、会签文件路径、推荐答案和恢复动作;恢复前运行适用验证器。只有同一候选快照通过全部适用审查轴与 fresh verification,才能提出合并、发布或完成结论;发布仍须生物人决定。
77
82
 
78
- 来自战略交接包的技术设计合同(DDD / MVC)必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
83
+ 专项加载提示:实现仓库与脚手架查询 `implementation_repository_preparation`、`backend_scaffold`;切片实现查询 `ticket_formalization`、`ready_for_agent`;UI 查询 `frontend_implementation_plan`、`frontend_implementation_verification`;审查查询 `review_input`;发布查询 `release_readiness`、`git_authorization`、`user_decision_evidence`;战略交接读取 `docs/process/strategic-handoff-package.md` 并按其中验证器执行。
@@ -9,10 +9,12 @@ Spec + Product Overview → Product Design / Requirement Freeze
9
9
  Spec + Product Overview → API Impact / OpenAPI Draft
10
10
  Spec + Product Overview → System / Data Architecture
11
11
  System / Data Architecture + confirmed project architecture → Technical Design Contract (DDD / MVC)
12
- Technical Design Contract → Architecture Review / Engineering Baseline → Slice Implementation Contract draft
12
+ Technical Design Contract → Architecture Review / Engineering Baseline → implementation repository choice
13
+ implementation repository choice → existing repository onboarding OR approved Project Scaffold Contract → scaffold generation / verification
14
+ Repository Onboarding Result OR Scaffold Manifest + Verification → Implementation Repository Preparation Result → gate.implementation-repositories-ready
13
15
  API impact = yes: Requirement Freeze + Design Review + Draft Review → OpenAPI Freeze
14
16
  API impact = no: API Impact Assessment approved → No-API-Impact record;Draft/Freeze gates = not-applicable
15
- Frozen Contract → Vertical Slice Tickets
17
+ Frozen Contract + gate.implementation-repositories-ready → Vertical Slice Tickets
16
18
  Tickets + Architecture → Implementation Contract / Build Architecture Checklist
17
19
  Implementation → Independent Review → Fresh Verification → Release
18
20
  ```