create-yss-spec 3.2.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/README.md +2 -2
  2. package/package.json +3 -2
  3. package/src/command-runner.mjs +107 -0
  4. package/src/self-update.js +7 -4
  5. package/src/template/instance-runtime.js +1 -1
  6. package/template/.agents/skills/.strategic-design-skills-manifest.json +2 -2
  7. package/template/.agents/skills/code-review/SKILL.md +4 -0
  8. package/template/.agents/skills/code-review/agents/openai.yaml +1 -1
  9. package/template/.agents/skills/code-review/references/yss-review-standards.md +9 -2
  10. package/template/.agents/skills/competitive-intelligence/SKILL.md +4 -4
  11. package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  12. package/template/.agents/skills/grill-with-docs/SKILL.md +1 -1
  13. package/template/.agents/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  14. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  15. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  16. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  17. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  18. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  19. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  20. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  21. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  22. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  23. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  24. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  25. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  26. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  27. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  28. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  29. package/template/.agents/skills/yss-mybatis/SKILL.md +34 -58
  30. package/template/.agents/skills/yss-mybatis/agents/openai.yaml +2 -2
  31. package/template/.agents/skills/yss-mybatis/references/source-index.md +88 -68
  32. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +50 -42
  33. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  34. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  35. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  36. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  37. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +5 -2
  38. package/template/.agents/skills/yss-repository/SKILL.md +28 -70
  39. package/template/.agents/skills/yss-repository/agents/openai.yaml +2 -2
  40. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  41. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  42. package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  43. package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  44. package/template/.agents/skills/yss-research/SKILL.md +1 -1
  45. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  46. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  47. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  48. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  49. package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -3
  50. package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  51. package/template/.claude/skills/code-review/SKILL.md +4 -0
  52. package/template/.claude/skills/code-review/agents/openai.yaml +1 -1
  53. package/template/.claude/skills/code-review/references/yss-review-standards.md +9 -2
  54. package/template/.claude/skills/competitive-intelligence/SKILL.md +4 -4
  55. package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  56. package/template/.claude/skills/grill-with-docs/SKILL.md +1 -1
  57. package/template/.claude/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  58. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  59. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  60. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  61. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  62. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  63. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  64. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  65. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  66. package/template/.claude/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  67. package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  68. package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  69. package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  70. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  71. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  72. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  73. package/template/.claude/skills/yss-mybatis/SKILL.md +34 -58
  74. package/template/.claude/skills/yss-mybatis/agents/openai.yaml +2 -2
  75. package/template/.claude/skills/yss-mybatis/references/source-index.md +88 -68
  76. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +50 -42
  77. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  78. package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  79. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  80. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  81. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +5 -2
  82. package/template/.claude/skills/yss-repository/SKILL.md +28 -70
  83. package/template/.claude/skills/yss-repository/agents/openai.yaml +2 -2
  84. package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  85. package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  86. package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  87. package/template/.claude/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  88. package/template/.claude/skills/yss-research/SKILL.md +1 -1
  89. package/template/.claude/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  90. package/template/.claude/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  91. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  92. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  93. package/template/.claude/skills/yss-stage-decision/SKILL.md +5 -3
  94. package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  95. package/template/.codex/skills/code-review/SKILL.md +4 -0
  96. package/template/.codex/skills/code-review/agents/openai.yaml +1 -1
  97. package/template/.codex/skills/code-review/references/yss-review-standards.md +9 -2
  98. package/template/.codex/skills/competitive-intelligence/SKILL.md +4 -4
  99. package/template/.codex/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  100. package/template/.codex/skills/grill-with-docs/SKILL.md +1 -1
  101. package/template/.codex/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  102. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  103. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  104. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  105. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  106. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  107. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  108. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  109. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  110. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  111. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  112. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  113. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  114. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  115. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  116. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  117. package/template/.codex/skills/yss-mybatis/SKILL.md +34 -58
  118. package/template/.codex/skills/yss-mybatis/agents/openai.yaml +2 -2
  119. package/template/.codex/skills/yss-mybatis/references/source-index.md +88 -68
  120. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +50 -42
  121. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  122. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  123. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  124. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  125. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +5 -2
  126. package/template/.codex/skills/yss-repository/SKILL.md +28 -70
  127. package/template/.codex/skills/yss-repository/agents/openai.yaml +2 -2
  128. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  129. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  130. package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  131. package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  132. package/template/.codex/skills/yss-research/SKILL.md +1 -1
  133. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  134. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  135. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  136. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  137. package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -3
  138. package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  139. package/template/.cursor/skills/code-review/SKILL.md +4 -0
  140. package/template/.cursor/skills/code-review/agents/openai.yaml +1 -1
  141. package/template/.cursor/skills/code-review/references/yss-review-standards.md +9 -2
  142. package/template/.cursor/skills/competitive-intelligence/SKILL.md +4 -4
  143. package/template/.cursor/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  144. package/template/.cursor/skills/grill-with-docs/SKILL.md +1 -1
  145. package/template/.cursor/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  146. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  147. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  148. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  149. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  150. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  151. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  152. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  153. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  154. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  155. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  156. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  157. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  158. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  159. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  160. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  161. package/template/.cursor/skills/yss-mybatis/SKILL.md +34 -58
  162. package/template/.cursor/skills/yss-mybatis/agents/openai.yaml +2 -2
  163. package/template/.cursor/skills/yss-mybatis/references/source-index.md +88 -68
  164. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +50 -42
  165. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  166. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  167. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  168. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  169. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +5 -2
  170. package/template/.cursor/skills/yss-repository/SKILL.md +28 -70
  171. package/template/.cursor/skills/yss-repository/agents/openai.yaml +2 -2
  172. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  173. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  174. package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  175. package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  176. package/template/.cursor/skills/yss-research/SKILL.md +1 -1
  177. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  178. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  179. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  180. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  181. package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -3
  182. package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  183. package/template/.pi/skills/code-review/SKILL.md +4 -0
  184. package/template/.pi/skills/code-review/agents/openai.yaml +1 -1
  185. package/template/.pi/skills/code-review/references/yss-review-standards.md +9 -2
  186. package/template/.pi/skills/competitive-intelligence/SKILL.md +4 -4
  187. package/template/.pi/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  188. package/template/.pi/skills/grill-with-docs/SKILL.md +1 -1
  189. package/template/.pi/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  190. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  191. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  192. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  193. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  194. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  195. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  196. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  197. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  198. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  199. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  200. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  201. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  202. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  203. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  204. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  205. package/template/.pi/skills/yss-mybatis/SKILL.md +34 -58
  206. package/template/.pi/skills/yss-mybatis/agents/openai.yaml +2 -2
  207. package/template/.pi/skills/yss-mybatis/references/source-index.md +88 -68
  208. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +50 -42
  209. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  210. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  211. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  212. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  213. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +5 -2
  214. package/template/.pi/skills/yss-repository/SKILL.md +28 -70
  215. package/template/.pi/skills/yss-repository/agents/openai.yaml +2 -2
  216. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  217. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  218. package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  219. package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  220. package/template/.pi/skills/yss-research/SKILL.md +1 -1
  221. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  222. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  223. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  224. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  225. package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -3
  226. package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  227. package/template/.qoder/skills/code-review/SKILL.md +4 -0
  228. package/template/.qoder/skills/code-review/agents/openai.yaml +1 -1
  229. package/template/.qoder/skills/code-review/references/yss-review-standards.md +9 -2
  230. package/template/.qoder/skills/competitive-intelligence/SKILL.md +4 -4
  231. package/template/.qoder/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  232. package/template/.qoder/skills/grill-with-docs/SKILL.md +1 -1
  233. package/template/.qoder/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  234. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  235. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  236. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  237. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  238. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  239. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  240. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  241. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  242. package/template/.qoder/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  243. package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  244. package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  245. package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  246. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  247. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  248. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  249. package/template/.qoder/skills/yss-mybatis/SKILL.md +34 -58
  250. package/template/.qoder/skills/yss-mybatis/agents/openai.yaml +2 -2
  251. package/template/.qoder/skills/yss-mybatis/references/source-index.md +88 -68
  252. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +50 -42
  253. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  254. package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  255. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  256. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  257. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +5 -2
  258. package/template/.qoder/skills/yss-repository/SKILL.md +28 -70
  259. package/template/.qoder/skills/yss-repository/agents/openai.yaml +2 -2
  260. package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  261. package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  262. package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  263. package/template/.qoder/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  264. package/template/.qoder/skills/yss-research/SKILL.md +1 -1
  265. package/template/.qoder/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  266. package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  267. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  268. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  269. package/template/.qoder/skills/yss-stage-decision/SKILL.md +5 -3
  270. package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  271. package/template/.trae/skills/code-review/SKILL.md +4 -0
  272. package/template/.trae/skills/code-review/agents/openai.yaml +1 -1
  273. package/template/.trae/skills/code-review/references/yss-review-standards.md +9 -2
  274. package/template/.trae/skills/competitive-intelligence/SKILL.md +4 -4
  275. package/template/.trae/skills/domain-modeling/CONTEXT-FORMAT.md +1 -1
  276. package/template/.trae/skills/grill-with-docs/SKILL.md +1 -1
  277. package/template/.trae/skills/setup-matt-pocock-skills/issue-tracker-local.md +1 -1
  278. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
  279. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +7 -3
  280. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +8 -8
  281. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +9 -0
  282. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +10 -7
  283. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +10 -0
  284. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +121 -0
  285. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +40 -0
  286. package/template/.trae/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +55 -0
  287. package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +1 -1
  288. package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +4 -0
  289. package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +25 -0
  290. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  291. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +8 -5
  292. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +17 -2
  293. package/template/.trae/skills/yss-mybatis/SKILL.md +34 -58
  294. package/template/.trae/skills/yss-mybatis/agents/openai.yaml +2 -2
  295. package/template/.trae/skills/yss-mybatis/references/source-index.md +88 -68
  296. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +50 -42
  297. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +5 -3
  298. package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +3 -3
  299. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +124 -16
  300. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +16 -2
  301. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +5 -2
  302. package/template/.trae/skills/yss-repository/SKILL.md +28 -70
  303. package/template/.trae/skills/yss-repository/agents/openai.yaml +2 -2
  304. package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +19 -1
  305. package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +19 -1
  306. package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +21 -1
  307. package/template/.trae/skills/yss-repository/tests/profile-routing.test.mjs +59 -0
  308. package/template/.trae/skills/yss-research/SKILL.md +1 -1
  309. package/template/.trae/skills/yss-skill-source-index-refresh/SKILL.md +8 -5
  310. package/template/.trae/skills/yss-skill-source-index-refresh/references/source-location.md +2 -1
  311. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +388 -18
  312. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.test.mjs +79 -1
  313. package/template/.trae/skills/yss-stage-decision/SKILL.md +5 -3
  314. package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +1 -1
  315. package/template/AGENTS.md +2 -2
  316. package/template/CONTEXT.md +3 -2
  317. package/template/README.md +3 -3
  318. package/template/docs/agents/digital-human-roles.md +1 -1
  319. package/template/docs/agents/digital-human-roles.yaml +13 -11
  320. package/template/docs/agents/issue-tracker.md +1 -1
  321. package/template/docs/agents/strategic-design-skills-integration.md +2 -0
  322. package/template/docs/agents/yss-skill-registry.yaml +5 -0
  323. package/template/docs/architecture/README.md +1 -1
  324. package/template/docs/architecture/templates/business-architecture-template.md +1 -1
  325. package/template/docs/architecture/templates/functional-architecture-template.md +1 -1
  326. package/template/docs/design/README.md +1 -1
  327. package/template/docs/design/templates/interaction-spec-template.md +1 -1
  328. package/template/docs/design/templates/product-overview-design-template.md +1 -1
  329. package/template/docs/{discovery → plan}/IDEATION.md +5 -5
  330. package/template/docs/plan/README.md +9 -0
  331. package/template/docs/plan/entry-review.md +23 -0
  332. package/template/docs/plan/templates/plan-template.md +58 -0
  333. package/template/docs/process/harness-process-tailoring.md +1 -1
  334. package/template/docs/process/lifecycle-artifact-map.md +10 -6
  335. package/template/docs/process/lifecycle-registry-baseline.json +10 -1
  336. package/template/docs/process/lifecycle-registry.yaml +48 -20
  337. package/template/docs/process/plan-migration.md +13 -0
  338. package/template/docs/process/schemas/digital-human-task-package.schema.json +2 -0
  339. package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +38 -0
  340. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +3 -0
  341. package/template/docs/process/schemas/lifecycle-registry.schema.json +1 -1
  342. package/template/docs/process/schemas/project-scaffold-contract.schema.json +113 -0
  343. package/template/docs/process/template-engineering-overview.md +2 -2
  344. package/template/docs/process/template-verification-profiles.yaml +25 -0
  345. package/template/docs/process/templates/context-reconciliation-template.yaml +2 -2
  346. package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +1 -1
  347. package/template/docs/requirements/README.md +2 -2
  348. package/template/docs/templates/implementation-repo-registry-template.md +8 -0
  349. package/template/docs/templates/local-parent-ticket-template.md +1 -1
  350. package/template/docs/templates/review-report-template.md +7 -3
  351. package/template/docs/templates/subagent-task-package-template.md +1 -1
  352. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1 -1
  353. package/template/scripts/cache-template-commit +2 -2
  354. package/template/scripts/fixtures/strategic-handoff/source-roles.json +7 -7
  355. package/template/scripts/fixtures/user-decision/plan-fixture.mjs +30 -0
  356. package/template/scripts/lib/backend-delivery.mjs +5 -2
  357. package/template/scripts/lib/command-runner.mjs +107 -0
  358. package/template/scripts/lib/context-reconciliation.mjs +34 -0
  359. package/template/scripts/lib/json-schema.mjs +42 -13
  360. package/template/scripts/lib/lifecycle-context-query.mjs +141 -0
  361. package/template/scripts/lib/lifecycle-transition.mjs +118 -6
  362. package/template/scripts/lib/plan-spec-entry.mjs +87 -0
  363. package/template/scripts/lib/scenario-checks.mjs +44 -38
  364. package/template/scripts/lib/skill-registry.mjs +9 -0
  365. package/template/scripts/lib/skill-supply-chain.mjs +18 -2
  366. package/template/scripts/lib/strategic-handoff-io.mjs +5 -4
  367. package/template/scripts/lib/strategic-handoff.mjs +10 -9
  368. package/template/scripts/lib/task-package.mjs +2 -0
  369. package/template/scripts/lib/template-commit-cache.mjs +7 -5
  370. package/template/scripts/query-lifecycle-context +25 -0
  371. package/template/scripts/run-template-verification +9 -3
  372. package/template/scripts/sync-strategic-handoff-tools +9 -0
  373. package/template/scripts/verify-business-language-scenarios +0 -7
  374. package/template/scripts/verify-context-reconciliation +2 -48
  375. package/template/scripts/verify-context-reconciliation-scenarios +1 -1
  376. package/template/scripts/verify-frontend-scaffold-generator-scenarios +2 -0
  377. package/template/scripts/verify-lifecycle-checkpoint +2 -0
  378. package/template/scripts/verify-lifecycle-context-query-scenarios +88 -0
  379. package/template/scripts/verify-lifecycle-transition-scenarios +44 -4
  380. package/template/scripts/verify-plan-spec-entry +11 -0
  381. package/template/scripts/verify-plan-spec-entry-scenarios +79 -0
  382. package/template/scripts/verify-script-performance-scenarios +56 -0
  383. package/template/scripts/verify-subagent-task-package-scenarios +9 -8
  384. package/template/scripts/verify-template-cache-scenarios +11 -1
  385. package/template/scripts/verify-user-decision-scenarios +4 -4
  386. package/template/skills-lock.json +23 -23
  387. package/template.manifest.json +2 -1
  388. package/template.snapshot.json +5 -5
  389. package/template/.agents/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  390. package/template/.agents/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  391. package/template/.agents/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  392. package/template/.agents/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  393. package/template/.agents/skills/yss-mybatis/references/README.md +0 -57
  394. package/template/.agents/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  395. package/template/.claude/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  396. package/template/.claude/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  397. package/template/.claude/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  398. package/template/.claude/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  399. package/template/.claude/skills/yss-mybatis/references/README.md +0 -57
  400. package/template/.claude/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  401. package/template/.codex/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  402. package/template/.codex/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  403. package/template/.codex/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  404. package/template/.codex/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  405. package/template/.codex/skills/yss-mybatis/references/README.md +0 -57
  406. package/template/.codex/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  407. package/template/.cursor/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  408. package/template/.cursor/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  409. package/template/.cursor/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  410. package/template/.cursor/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  411. package/template/.cursor/skills/yss-mybatis/references/README.md +0 -57
  412. package/template/.cursor/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  413. package/template/.pi/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  414. package/template/.pi/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  415. package/template/.pi/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  416. package/template/.pi/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  417. package/template/.pi/skills/yss-mybatis/references/README.md +0 -57
  418. package/template/.pi/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  419. package/template/.qoder/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  420. package/template/.qoder/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  421. package/template/.qoder/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  422. package/template/.qoder/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  423. package/template/.qoder/skills/yss-mybatis/references/README.md +0 -57
  424. package/template/.qoder/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  425. package/template/.trae/skills/yss-mybatis/assets/BaseRepository.java +0 -112
  426. package/template/.trae/skills/yss-mybatis/assets/EntityQueryAspect.java +0 -37
  427. package/template/.trae/skills/yss-mybatis/assets/MybatisBaseConfiguration.java +0 -18
  428. package/template/.trae/skills/yss-mybatis/assets/PageQueryEntityConfigration.java +0 -18
  429. package/template/.trae/skills/yss-mybatis/references/README.md +0 -57
  430. package/template/.trae/skills/yss-repository/references/infrastructure-layer-guide.md +0 -107
  431. package/template/docs/discovery/README.md +0 -87
  432. package/template/docs/discovery/reports/.gitkeep +0 -0
  433. package/template/docs/discovery/reports/agent-governance-options.md +0 -71
  434. package/template/docs/discovery/reports/competitor-deep-dive/.gitkeep +0 -0
  435. package/template/docs/discovery/templates/discovery-template.md +0 -94
  436. /package/template/docs/{discovery → plan}/templates/competitive-analysis-template.md +0 -0
  437. /package/template/docs/{discovery → plan}/templates/competitive-matrix-template.md +0 -0
  438. /package/template/docs/{discovery → plan}/templates/market-analysis-template.md +0 -0
  439. /package/template/docs/{discovery → plan}/templates/user-pain-points-template.md +0 -0
@@ -5,74 +5,82 @@ 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 --stage stage.plan --work-unit work-unit.plan-requirements --include execution_efficiency
26
+ ```
22
27
 
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。
28
+ `--include` 接受编排合同的顶层键;非法模式、ID 或合同键必须失败。查询结果只是带摘要的权威事实投影,不成为新的事实源。解释性细节按需读取 `references/orchestration.md`、`references/state-model.md`、`references/artifact-dependencies.md`、`references/user-decisions.md` 和 `references/matt-yss-adapter.md`,达到最小充分证据后停止扩展上下文。
24
29
 
25
- 入口分诊 → Discovery → Spec / 功能架构 → 产品设计 → 系统 / 数据架构与工程契约 → Ticket 正式化 → 垂直切片实现(前后端 TDD)→ 验证 / 发布 / 复盘。
30
+ 按 `execution_efficiency` 合并查询、复用未变资料并验证当前资产;产品流转不重跑模板套件。词汇对账、恢复核验及门禁不变,执行细节见 `references/orchestration.md`。
26
31
 
27
- 裁剪只允许将未命中的条件门禁标记为 `not-applicable` 并写原因;不得删除主阶段、已命中的门禁或必需产物。阶段是否完成取决于“内容 + 审查结论 + 上游新鲜度 + 可读证据”,文件存在不算通过。每个 `project-instance` 工作单元在请求批准或进入下一工作单元前,必须先把已确认稳定术语回写到项目根目录唯一的 `CONTEXT.md`,再产出通过 `scripts/verify-context-reconciliation` 的 `context_reconciliation`;它是横切证据,不新增门禁。存在候选术语、错误路径、无法解析的 `<ContextId>/<EnglishIdentifier>`、摘要漂移或未决冲突时返回 `blocked`。
32
+ ## 入口与模式
28
33
 
29
- ## 阶段路由与技能
34
+ 1. 严格解析 `yss-project.yaml`,不得按目录、Git remote 或占位符猜仓库身份。
35
+ 2. 判定影响面和最近可信阶段;阶段完成必须同时满足内容、审查结论、上游新鲜度和可读证据,文件存在不代表通过。
36
+ 3. 模式为 `route`、`orchestrate`、`resume`、`audit`;未明确时使用只读 `route`。具体写入边界从编排合同的 `modes` 子树读取。
37
+ 4. `project-instance` 按生命周期注册表推进;`template-source` 只走模板维护流程。
30
38
 
31
- 下表按 `lifecycle-registry.yaml` 的主阶段颗粒度编排;同一阶段内的多个工作单元、条件技能和门禁依赖以 references 为准。
39
+ Plan 入口读取 `docs/plan/README.md` 和 `docs/process/plan-migration.md`,按注册表的退出条件核查战略输入。关键未决项阻断进入 Spec;非关键细节须有责任人、解决时点和下游接收方。只使用 Plan 标识;旧阶段不提供兼容解析,历史批准不自动成为 Plan 批准。
32
40
 
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` 仍须生物人 |
41
+ ## 不可越过的边界
43
42
 
44
- ## 面向业务角色的默认入口
43
+ ### 仓库身份
45
44
 
46
- Discovery 默认通过 Agent 引导,不要求产品、需求或商务直接填写内部模型字段。按以下主线推进:
45
+ `template-source` 不得生成产品 Spec、原型、OpenAPI 或垂直切片 Ticket;命中产品流程时返回 `blocked: template-source-product-artifact-forbidden`。模板维护使用 `maintaining-skills`,按 L1/L2/L3 留下对应证据。
47
46
 
48
- `机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
47
+ ### 流转与实现
49
48
 
50
- Agent 先问清六件事:谁遇到什么问题并想得到什么结果;事情通常怎样发生;每一步由谁负责并交给谁;有哪些规则、例外和未决问题;哪一小段可以独立交付;用哪些例子和证据证明结果正确。需要分类业务板块时,改问“是否直接决定关键结果、是否有独特规则、是否可复用或外购”,再提出“重点业务、必要支撑、通用能力”建议,由业务负责人确认。
49
+ 不得越过命中的阶段、门禁、实现仓库准备或 Ticket 正式化。实现只接收绑定垂直切片、已批准且持久化、版本当前并通过完整 `ready-for-agent` 计算的合同;父 Ticket、`ready-for-human` 切片、`stale`、`drift`、`new_impacts`、`violation` 或缺失证据均阻断。实现仓库、脚手架、UI 还原、review input 和发布条件从对应合同子树查询,不在入口重复定义。
51
50
 
52
- 每轮路由先输出一页派生的“业务方案总览”,引用机会与目标、业务故事、业务责任区、规则与例子、Spec、页面验证、Ticket 和交接状态。总览只显示状态、权威资产引用、未决问题、责任人和下一步,不复制正文、不成为新的事实源,也不新增门禁。内部稳定 ID 和兼容字段只在 Agent 运行结果或维护者诊断中显示。
51
+ ### 用户决定
53
52
 
54
- ## 前端实现还原硬检查
53
+ 命中 `docs/agents/digital-human-roles.yaml.user_decision_policy` 的关键决定,必须先展示当前资产、版本、变化、风险、推荐方案、批准范围和后续动作,再取得提问者或其明确指定生物人负责人的原始回复。数字人同意、超时、默认项或无反对意见不能代答;恢复前按 `references/user-decisions.md` 验证当前资产与原始回复绑定。
55
54
 
56
- 采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `docs/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
55
+ ### 外部副作用与 Git
57
56
 
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。
57
+ 生命周期批准、实现授权和自然语言意向不构成结构化 Git 授权。commit、push、远端仓库创建、发布及其他运行时外部副作用分别检查明确动作、范围和可读授权引用;缺失时保持外部状态不变。`git-submodule` 还必须遵守逐仓授权、非 detached HEAD 和先子仓后父仓 gitlink 的顺序。
59
58
 
60
- ## 真实用户决定
59
+ ## 有界编排循环
61
60
 
62
- 关键决定按 `docs/agents/digital-human-roles.yaml.user_decision_policy` 强制取得提问者或其明确指定的生物人负责人的原始回复。先展示资产、版本、变化、风险、推荐方案、批准范围和后续动作,再等待决定;超时、默认选项、数字人同意、无反对意见均无效。数字人审查不能替代用户批准;已有同版本同范围的有效确认复用,依据变化或撤回后重新展示并确认。单项“同意”有效,多项“继续”不算全部批准。独立工作可继续,依赖工作不得流转。
61
+ 1. 从真实资产重建当前状态,查询当前 mode、stage、work-unit 及必要合同子树。
62
+ 2. 评估影响面、上游新鲜度、门禁和阻塞,选择第一个未阻塞工作单元;不把 `not-applicable` 当作豁免。
63
+ 3. 原生工作单元由主控持有正式资产;专项工作通过结构化任务包派发,只调用编排合同允许的 model-invoked skill。
64
+ 4. Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等仅为显式 user-invoked 兼容入口。主控不得自动调用它们或代替其创建正式资产;Matt 仅导航,不得写生命周期资产或改变门禁/Ticket 状态,任何写入前回交本编排器。
65
+ 5. 验收 `Workflow Execution Result`:工作单元、合同、允许写路径、`context_reconciliation`、证据、实际验证、延期 seam、漂移和下一路由必须可核验。实现派发额外绑定当前 Slice Implementation Contract;其他阶段不得伪造该合同。
66
+ 6. 在授权边界内继续下一工作单元;遇到人工决定、新授权、证据冲突、专项失败或合并/发布结论时暂停。暂停不得阻断无依赖的独立工作。
63
67
 
64
- 统一记录、跨平台来源、机器校验、批量批准、历史兼容和实施范围绑定见 [user-decisions.md](references/user-decisions.md)。批准、恢复和实施入口必须重读来源与当前资产;不得只填 `approved`、自行创建用户同意或用旧数字人记录关闭关键门禁。
68
+ 每个 `project-instance` 工作单元在申请批准或流转前,先把稳定术语回写到根目录唯一 `CONTEXT.md`,并生成通过校验的 `context_reconciliation`。候选术语、错误路径、摘要漂移或未决冲突必须阻断。质量标准只由 `engineering-baseline` 定义一次;高风险影响按裁剪合同补充反证和残余风险。
65
69
 
66
- ## 结果与暂停
70
+ ## 面向业务角色
71
+
72
+ 默认使用业务语言推进:
67
73
 
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 授权。用户已明确授权的具体动作可从原始回复整理为结构化授权并复用,不重复要求用户填写内部字段。
74
+ `机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
75
+
76
+ 先问清用户与结果、通常流程、责任交接、规则与例外、可独立交付的最小范围、证明结果正确的例子和证据。每轮可生成一页“业务方案总览”,只引用权威资产并显示状态、未决问题、责任人和下一步;不复制正文、不成为新的事实源、不新增门禁。
69
77
 
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`),禁止手写第二套。
78
+ Plan → Spec(含正式草稿、恢复与显式 `to-spec`)写入前,按 `docs/plan/entry-review.md` 持久化审阅包并运行 `node scripts/verify-plan-spec-entry <state.yaml>`。检查默认 pending,缺项、过期或无真实回复即阻断;独立调研可继续。
71
79
 
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)。
80
+ ## 结果与暂停
73
81
 
74
- ## 战略交接快照包
82
+ 输出至少包含:模式、仓库身份、当前阶段和工作单元、影响面、资产与门禁状态、证据、新鲜度、Ticket/垂直切片/合同状态、`ready-for-agent` 结论、阻塞项、本轮动作、下一工作单元、暂停或继续理由、Ticket 同步和 Git checkpoint 判断。
75
83
 
76
- 跨仓交接使用 `scripts/strategic-handoff export / verify / import`。正式导出前补齐源战略的稳定规则 ID、关键场景和当前批准绑定;源资产原字节冻结、包内路径通过清单解析。目标导入只产生快照和对账/承接草案,正式 reconciliation 通过后才能进入战术设计。流程与字段见 `docs/process/strategic-handoff-package.md`。
84
+ 暂停会签时追加门禁 ID、`role_id`、`runtime_id`、会签文件路径、推荐答案和恢复动作;恢复前运行适用验证器。只有同一候选快照通过全部适用审查轴与 fresh verification,才能提出合并、发布或完成结论;发布仍须生物人决定。
77
85
 
78
- 来自战略交接包的技术设计合同(DDD / MVC)必须绑定 `strategic_handoff` 导入收据、包摘要、正式目标对账及逐条承接 rows。来自导入包时禁止仅填 `upstream_current: true`。批准前执行 `scripts/verify-strategic-handoff-consumption --root <target> <tactical>`;存在受控延期时按切片执行 `--slice <slice-id>`,实际核验通过且合同批准后才可继续相关切片。最新源规则、关键场景或资产变化使依赖项 stale;未知依赖扩大阻断,业务冲突回交战略方。结果绑定当前包与战术摘要,不能复用旧输出宣布 ready-for-agent。
86
+ 专项加载提示:实现仓库与脚手架查询 `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` 并按其中验证器执行。
@@ -3,16 +3,18 @@
3
3
  ## 基础依赖
4
4
 
5
5
  ```text
6
- Discovery → Spec → Product Overview / Functional Architecture
6
+ Plan → Spec → Product Overview / Functional Architecture
7
7
  Root CONTEXT.md + current work-unit changes → Context Reconciliation → approval / next work unit
8
8
  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
  ```
@@ -10,7 +10,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
10
10
  - **直接调用生命周期管理的 Matt user-invoked skill**(`setup-matt-pocock-skills`、`grill-with-docs`、`to-spec`、`to-tickets`、`implement`)时,用户仍是正式资产的创建者;生命周期先校验前置条件,再接受结果并重新计算阶段、门禁和状态。其他 user-invoked skill 同样不得由生命周期自动调用;只有在其专属适配合同存在时才进入 YSS 流程。
11
11
  - **直接调用 `yss-product-lifecycle`** 时,不机械嵌套调用任何 Matt user-invoked skill;编排器直接使用原生工作单元和允许的 model-invoked 原语。Matt user-invoked skill 保持显式兼容入口,生命周期负责准备、校验并验收其结果。
12
12
  - `template-source` 只允许进入模板维护流程。命中 `to-spec`、`to-tickets`、`implement`、Release 或 Retrospective 时返回 `blocked`,原因是 `template-source-product-artifact-forbidden`;`setup-matt-pocock-skills` 不得为具体产品生成 Spec、prototype、OpenAPI 或垂直切片 Ticket。
13
- - `project-instance` 才允许进入产品 Discovery → Spec → 设计 → 契约 → Ticket → 实现 → Release / Retrospective 链路。
13
+ - `project-instance` 才允许进入产品 Plan → Spec → 设计 → 契约 → Ticket → 实现 → Release / Retrospective 链路。
14
14
 
15
15
  | 情形 | Matt flow | 生命周期验收 |
16
16
  |---|---|---|
@@ -66,7 +66,7 @@ blocking_signals: []
66
66
 
67
67
  | Matt flow | 进入条件 | 生命周期结果 |
68
68
  |---|---|---|
69
- | `to-spec`(用户显式) | Discovery work unit 或 `grill-with-docs` 已满足退出条件,且不存在未回流 runnable blocker;用户问题、MVP/非目标、成功标准、测试 seam 和术语审查均有证据 | 生命周期只准备/验收;Spec 初稿为 `ready-for-human`,不等于批准 |
69
+ | `to-spec`(用户显式) | Plan work unit 或 `grill-with-docs` 已满足退出条件,且不存在未回流 runnable blocker;用户问题、MVP/非目标、成功标准、测试 seam 和术语审查均有证据 | 生命周期只准备/验收;Spec 初稿为 `ready-for-human`,不等于批准 |
70
70
  | `to-tickets`(用户显式) | OpenAPI Freeze 或 `no-api-impact` 记录、必要门禁、垂直切片范围和阻塞边均已明确 | 生命周期只准备/验收;只能生成垂直切片 Ticket,初始统一为 `ready-for-human`;必须留下 `ticket_decomposition_result_ref` 和 `vertical_slice_ticket_ref` |
71
71
  | `implement`(用户显式) | `ready-for-agent` 公式、Ticket 正式化结果、垂直切片引用/类型/状态、Contract 已批准/持久化/版本一致、Build Architecture Checklist、实现仓库/分支/CI/验证命令/回滚点,以及后端 Contract(适用时)均满足 | 生命周期只准备/验收;单会话实现同样适用,不得绕过门禁;父 Ticket、`ready-for-human` 切片或跳过 Ticket 正式化的 `next_route` 必须 `blocked` |
72
72
 
@@ -100,7 +100,7 @@ Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明
100
100
 
101
101
  | Matt 产物 | Local 载体 |
102
102
  |---|---|
103
- | Discovery | `docs/.scratch/<feature>/discovery/` |
103
+ | Plan | `docs/.scratch/<feature>/plan/` |
104
104
  | Spec | `docs/.scratch/<feature>/spec.md` |
105
105
  | Spec Delta | `docs/.scratch/<feature>/spec-delta/` |
106
106
  | 功能父 Ticket | `docs/.scratch/<feature>/parent-ticket.md` |
@@ -48,6 +48,34 @@ modes:
48
48
  orchestrate: bounded_write
49
49
  resume: rebuild_then_bounded_write
50
50
 
51
+ execution_efficiency:
52
+ context_query:
53
+ strategy: combine-mode-stage-work-unit-and-required-includes
54
+ read_scope: current-work-unit-and-triggered-impacts
55
+ reuse: already-read-unchanged-sources-within-current-task
56
+ refresh_on: [source-changed, new-impact, evidence-conflict, resume, handoff]
57
+ verification:
58
+ scope: current-artifacts-and-triggered-contracts
59
+ timing: after-artifact-write-before-approval-or-transition
60
+ duplicate_check: reuse-only-within-same-boundary-and-unchanged-inputs
61
+ unchanged_inputs: [artifact-bytes, upstream-bytes, validator-and-schema, command-and-options, repository-root]
62
+ freshness_unknown: rerun
63
+ always_revalidate_on: [resume, handoff, implementation-entry, merge, release]
64
+ template_regression_suite: template-maintenance-or-explicit-regression-task
65
+ per_work_unit_context_reconciliation: required
66
+ skip_triggered_gates: forbidden
67
+ interaction:
68
+ questions: batch-independent-current-stage-questions
69
+ user_decision_policy_ref: docs/agents/digital-human-roles.yaml#user_decision_policy
70
+ decision_evidence_ref: references/user-decisions.md
71
+ dependent_future_approvals: forbidden
72
+ checkpoint_policy_ref: checkpoint_policy
73
+ timing_evidence:
74
+ location: existing-checkpoint-verification-evidence
75
+ script_fields: [command, duration_ms, exit_code]
76
+ distinguish: [script-execution, agent-orchestration, human-wait]
77
+ unmeasured_duration: unknown
78
+
51
79
  # 有效的 YSS 仓库必须先由生命周期编排器接管入口;Matt flow 只负责选择工作方式。
52
80
  entry_routing:
53
81
  manifest: yss-project.yaml
@@ -210,7 +238,7 @@ lifecycle_native_entries:
210
238
  implement: lifecycle-validate-and-accept
211
239
 
212
240
  work_unit_routes:
213
- work-unit.discovery-opportunity:
241
+ work-unit.plan-opportunity:
214
242
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
215
243
  primary_skill: yss-product-lifecycle
216
244
  supporting_skills: [competitive-intelligence, yss-research]
@@ -218,7 +246,7 @@ work_unit_routes:
218
246
  route_by: {market_or_competitor_fact: competitive-intelligence, technical_or_standard_fact: yss-research:technical-evidence, strategy_fact: yss-research:strategy-evidence, no_external_fact: yss-product-lifecycle}
219
247
  applies_when: opportunity_or_external_fact_requires_validation
220
248
  not_applicable_reason: no_external_fact
221
- work-unit.discovery-requirements:
249
+ work-unit.plan-requirements:
222
250
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
223
251
  primary_skill: yss-product-lifecycle
224
252
  supporting_skills: [grilling, domain-modeling]
@@ -241,7 +269,7 @@ work_unit_routes:
241
269
  skills: [yss-stage-decision, domain-modeling, yss-research]
242
270
  research_contract: {profile: strategy-evidence, mode_before_gate: evidence-audited, artifact_owner: yss-research, downstream_owner: yss-stage-decision}
243
271
  human_gate: stage-decision-package-approved
244
- applies_when: discovery_to_spec_requires_stable_decision_package
272
+ applies_when: plan_to_spec_requires_stable_decision_package
245
273
  not_applicable_reason: existing_approved_stage_decision_current
246
274
  work-unit.spec-synthesis:
247
275
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
@@ -294,6 +322,17 @@ work_unit_routes:
294
322
  human_gate: openapi-freeze_if_api_impact
295
323
  applies_when: technical_or_contract_impact
296
324
  not_applicable_reason: no_technical_or_contract_impact
325
+ work-unit.implementation-repository-preparation:
326
+ native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
327
+ primary_skill: implementation-repo-onboarding
328
+ supporting_skills: [yss-implementation-contract-compiler, yss-ddd-scaffold-generator, yss-layered-mvc-scaffold-generator, yss-frontend-scaffold-generator]
329
+ skills: [implementation-repo-onboarding, yss-implementation-contract-compiler, yss-ddd-scaffold-generator, yss-layered-mvc-scaffold-generator, yss-frontend-scaffold-generator]
330
+ applies_when: before_ticket_formalization
331
+ not_applicable_reason: no_frontend_or_backend_delivery_impact
332
+ decision_boundary: scaffold-choice
333
+ completion_states: [existing-and-onboarded, initialized-and-verified, not-applicable]
334
+ aggregate_gate: gate.implementation-repositories-ready
335
+ must_complete_before: work-unit.ticket-decomposition
297
336
  work-unit.ticket-decomposition:
298
337
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
299
338
  primary_skill: yss-product-lifecycle
@@ -342,8 +381,8 @@ work_unit_routes:
342
381
  work-unit.code-review:
343
382
  native: {source: yss-product-lifecycle, skill: code-review, invocation_mode: model-invoked}
344
383
  primary_skill: code-review
345
- supporting_skills: [alibaba-java-code-style, yss-ui, yss-design-system, yss-ui-business-page-generation, yss-domain, yss-application, yss-repository, yss-web-controller, yss-dto, mapstruct, lombok]
346
- skills: [code-review, alibaba-java-code-style, yss-ui, yss-design-system, yss-ui-business-page-generation, yss-domain, yss-application, yss-repository, yss-web-controller, yss-dto, mapstruct, lombok]
384
+ supporting_skills: [alibaba-java-code-style, yss-ui, yss-design-system, yss-ui-business-page-generation, yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-dto, mapstruct, lombok]
385
+ skills: [code-review, alibaba-java-code-style, yss-ui, yss-design-system, yss-ui-business-page-generation, yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-dto, mapstruct, lombok]
347
386
  review_standards_route:
348
387
  unique_default_skill: code-review
349
388
  second_generic_review_skill: forbidden
@@ -354,8 +393,13 @@ work_unit_routes:
354
393
  run_if_present: true
355
394
  missing_tooling: not-applicable-with-reason
356
395
  checkable_rule_without_machine: not-a-pass
396
+ project_scope:
397
+ sources: [candidate-project-root, implementation-repository-registry, slice-project-roots, allowed-write-paths]
398
+ include: [project-itself, registered-backend-development-projects]
399
+ exclude: [frontend-projects, unrelated-submodules, vendor, unregistered-directories]
400
+ fixed_apps_backend_assumption: forbidden
357
401
  conditional_skills:
358
- backend_impact: [alibaba-java-code-style, yss-domain, yss-application, yss-repository, yss-web-controller, yss-dto, mapstruct, lombok]
402
+ backend_impact: [alibaba-java-code-style, yss-domain, yss-application, yss-repository, yss-mybatis, yss-web-controller, yss-dto, mapstruct, lombok]
359
403
  ui_impact: [yss-ui, yss-design-system, yss-ui-business-page-generation]
360
404
  not_applicable_reasons:
361
405
  backend_impact: no_backend_impact
@@ -399,7 +443,7 @@ compatibility_flow_preconditions:
399
443
  evidence: [user_problem, mvp_and_non_goals, success_criteria, test_seam, terminology_review]
400
444
  output_role: ready-for-human
401
445
  to-tickets:
402
- required: [openapi_freeze_or_no_api_impact, required_gates_satisfied, vertical_slice_scope, blocking_edges]
446
+ required: [openapi_freeze_or_no_api_impact, required_gates_satisfied, implementation_repositories_ready, vertical_slice_scope, blocking_edges]
403
447
  output: vertical-slice-tickets
404
448
  output_role: ready-for-human
405
449
  implement:
@@ -407,6 +451,7 @@ compatibility_flow_preconditions:
407
451
  applies_to_single_session: true
408
452
 
409
453
  ticket_formalization:
454
+ repository_predecessor: work-unit.implementation-repository-preparation
410
455
  implementation_predecessor: work-unit.ticket-decomposition
411
456
  result_ref_required: true
412
457
  result_must_be: completed
@@ -424,7 +469,37 @@ ticket_formalization:
424
469
  current_version: true
425
470
  validator:
426
471
  module: scripts/lib/lifecycle-transition.mjs
427
- functions: [validateNextRoute, validateTicketFormalization, validateImplementationEntry]
472
+ functions: [validateNextRoute, validateImplementationRepositoriesReady, validateTicketFormalization, validateImplementationEntry]
473
+
474
+ implementation_repository_preparation:
475
+ stage: stage.system-data-engineering
476
+ work_unit: work-unit.implementation-repository-preparation
477
+ gate: gate.implementation-repositories-ready
478
+ applies_per_delivery_role: [backend, frontend]
479
+ affected_role_allowed_states: [existing-and-onboarded, initialized-and-verified]
480
+ unaffected_role_state: not-applicable
481
+ not_applicable_reason_required: true
482
+ existing_repository:
483
+ required: [repository_ref, project_root, repository_scope, onboarding_result]
484
+ onboarding_skill: implementation-repo-onboarding
485
+ architecture_migration: separate-initiative
486
+ new_repository:
487
+ default_scope: external-repository
488
+ allowed_scopes: [external-repository, harness-apps, git-submodule]
489
+ user_confirmation_required: [scope, project_root, init_git]
490
+ remote_repository_creation: explicit-authorization-only
491
+ approved_project_scaffold_contract_required: true
492
+ frontend_contract_minimum_schema_version: 4
493
+ backend_contract_compatibility_schema_versions: [3, 4]
494
+ target_policy: nonexistent-or-empty
495
+ force_overwrite: forbidden
496
+ completion_requires: [scaffold_manifest_ref, scaffold_verification]
497
+ aggregate_result:
498
+ required: [result, current_version, projects, evidence_refs]
499
+ result: completed
500
+ evidence_refs_readable: true
501
+ stale_action: return-to-work-unit.implementation-repository-preparation
502
+ blocking_signals: [implementation-repository-decision-required, implementation-repository-location-required, implementation-repository-onboarding-incomplete, scaffold-choice-required, scaffold-contract-unapproved, scaffold-generation-incomplete, scaffold-verification-failed, frontend-template-unavailable, implementation-repositories-stale]
428
503
 
429
504
  transition_graph:
430
505
  validator: scripts/lib/lifecycle-transition.mjs
@@ -437,14 +512,39 @@ transition_graph:
437
512
  work-unit.intensity-aware-verification: [work-unit.intensity-aware-review]
438
513
  work-unit.intensity-aware-review: [work-unit.release-and-rollback]
439
514
  work-unit.release-and-rollback: []
440
- work-unit.spec-synthesis: [work-unit.prototype-design, work-unit.technical-analysis, work-unit.ticket-decomposition]
441
- work-unit.prototype-design: [work-unit.technical-analysis, work-unit.ticket-decomposition]
442
- work-unit.technical-analysis: [work-unit.ticket-decomposition]
515
+ work-unit.plan-opportunity: [work-unit.plan-requirements, work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis]
516
+ work-unit.plan-requirements: [work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis]
517
+ work-unit.domain-strategy-design: [work-unit.stage-decision, work-unit.spec-synthesis]
518
+ work-unit.stage-decision: [work-unit.spec-synthesis]
519
+ work-unit.spec-synthesis: [work-unit.prototype-design, work-unit.technical-analysis, work-unit.implementation-repository-preparation]
520
+ work-unit.prototype-design: [work-unit.technical-analysis, work-unit.implementation-repository-preparation]
521
+ work-unit.technical-analysis: [work-unit.implementation-repository-preparation]
522
+ work-unit.implementation-repository-preparation: [work-unit.ticket-decomposition]
443
523
  work-unit.ticket-decomposition: [work-unit.slice-implementation]
444
524
  forbidden_shortcuts:
445
525
  - {from: work-unit.spec-synthesis, to: work-unit.slice-implementation}
446
526
  - {from: work-unit.prototype-design, to: work-unit.slice-implementation}
447
527
  - {from: work-unit.technical-analysis, to: work-unit.slice-implementation}
528
+ - {from: work-unit.technical-analysis, to: work-unit.ticket-decomposition}
529
+
530
+ planning:
531
+ entry_validator: scripts/verify-plan-spec-entry
532
+ review_contract: docs/plan/entry-review.md
533
+ check_policy: docs/process/lifecycle-registry.yaml
534
+ default_check_status: pending
535
+ formal_spec_draft_requires_passed_entry: true
536
+ stage: stage.plan
537
+ record: artifact.plan-record
538
+ template: docs/plan/templates/plan-template.md
539
+ exit_policy: docs/process/lifecycle-registry.yaml
540
+ migration_policy: docs/process/plan-migration.md
541
+ critical_open_questions: block-before-spec
542
+ deferred_details_require: [noncritical_reason, owner, resolution_point, downstream_recipient]
543
+ reuse_requires: [source_ref, current_version, applicable_scope, reason]
544
+ downstream: work-unit.spec-synthesis
545
+ implementation_authorized: false
546
+ frontier_scope: current-plan-decisions
547
+ deferred_details: excluded-from-frontier-only-after-user-confirms-deferral
448
548
 
449
549
  grill_exit:
450
550
  required: [frontier_empty, facts_resolved_or_routed, decisions_confirmed, shared_understanding_confirmed, no_unresolved_runnable_blocker]
@@ -453,7 +553,7 @@ grill_exit:
453
553
  runnable_question: handoff-prototype-handoff
454
554
  external_decision: external-input-required
455
555
  user_confirmation_required: true
456
- output: discovery-evidence
556
+ output: plan-evidence
457
557
 
458
558
  ticket_role_transition:
459
559
  yss_active:
@@ -470,6 +570,10 @@ review_input:
470
570
  second_generic_review_skill: forbidden
471
571
  axes: [standards, spec, ui_fidelity_if_ui_impact]
472
572
  standards_sources: [repo_coding_standards, slice_contract_required_skills, specialist_check_inputs, review_report_template]
573
+ scope_resolution:
574
+ sources: [candidate-project-root, implementation-repository-registry, slice-project-roots, allowed-write-paths]
575
+ backend_includes: [project-itself, registered-backend-development-projects]
576
+ excludes: [frontend-projects, unrelated-submodules, vendor, unregistered-directories]
473
577
  completed_requires_specialist_coverage: true
474
578
  finding_disposition_required: true
475
579
  completed_requires_no_open_mandatory_violations: true
@@ -618,7 +722,11 @@ backend_scaffold:
618
722
  layered-mvc: { recipe: backend.mvc-scaffold, generator_skill: yss-layered-mvc-scaffold-generator, baseline_skills: [] }
619
723
  tdd_mode: controlled-generation
620
724
  contract_schema:
621
- schema_version: 3
725
+ schema_version: 4
726
+ current_schema_version: 4
727
+ schema_ref: docs/process/schemas/project-scaffold-contract.schema.json
728
+ compatible_backend_versions: [3, 4]
729
+ frontend_minimum_version: 4
622
730
  identity: service-engineering-baseline
623
731
  required: [contract_id, contract_version, scaffold_request_id, status, compiler_draft_ref, lifecycle_approval_ref, persisted_ref, current_version, implementation_repository, backend_repository, scaffold_status, project_name, target_output_dir, base_package, architecture_family, generator_skill, decision_ref, decision_id, decision_digest, maven_coordinates, profiles, module_profile, allowed_write_paths, expected_evidence_files, verification_commands, approval, work_unit, generation_policy]
624
732
  status_by_owner:
@@ -704,7 +812,7 @@ tracker:
704
812
  local_markdown:
705
813
  root: docs/.scratch
706
814
  legacy_roots: [.scratch, docs/requirements/tickets]
707
- feature_layout: [map.md, discovery, spec.md, spec-delta, parent-ticket.md, design, api, architecture, gates, verification, issues]
815
+ feature_layout: [map.md, plan, spec.md, spec-delta, parent-ticket.md, design, api, architecture, gates, verification, issues]
708
816
  primary_sync: local
709
817
  remote_ticket_required: false
710
818
  remote_mirror: optional
@@ -760,7 +868,7 @@ wayfinder_mode:
760
868
  - multi-session-or-multi-agent-work
761
869
  - unclear-decision-frontier
762
870
  - cross-domain-dependency-map-needed
763
- lifecycle_position: discovery-to-spec-planning
871
+ lifecycle_position: plan-to-spec-planning
764
872
  completion_route: wayfinder -> handoff -> to-spec
765
873
  does_not_replace: [lifecycle-gates, spec-baseline, ticket-formalization]
766
874
  forbidden_state_mutations: [ready-for-agent, gate-approval, ticket-role]
@@ -796,7 +904,7 @@ quality_baseline_reuse:
796
904
  redefinition: forbidden
797
905
 
798
906
  ready_for_agent:
799
- required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, context_plan, quality_baseline_ref, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
907
+ required: [gates_satisfied, no_stale_artifacts, blockers_closed, implementation_context_ready, context_plan, quality_baseline_ref, implementation_repositories_ready, implementation_repository_preparation_ref, implementation_repo, implementation_branch, ci, verification_commands, rollback_point, predecessor_work_unit, ticket_decomposition_result_ref, ticket_decomposition_result_status, vertical_slice_ticket_ref, vertical_slice_ticket_role, vertical_slice_ticket_kind, slice_contract_approved, slice_contract_persisted, slice_contract_current_version, build_architecture_checklist, backend_slice_contract_if_applicable, backend_scaffold_policy_satisfied, frontend_implementation_plan_if_ui_impact]
800
908
  ticket_formalization_validator: scripts/lib/lifecycle-transition.mjs
801
909
  requires_vertical_slice_ticket: true
802
910
  parent_ticket_as_implementation_ref: forbidden
@@ -13,6 +13,16 @@
13
13
 
14
14
  连续阶段自动推进时累积 Ticket 同步和 Git 判断证据,在人工暂停、handoff、进入实现、合并或发布边界集中 checkpoint。发生阻塞、责任人变化或资产需要单独批准时立即落 checkpoint,不因合并记录而丢失阶段因果关系。
15
15
 
16
+ ## 执行成本
17
+
18
+ 执行策略以 `orchestration-contract.yaml.execution_efficiency` 为准,通过同一次 `query-lifecycle-context` 查询取得。Plan → Spec → Ticket 的耗时应分清脚本执行、Agent 读取与编排、人工等待;没有计时记录时不把总时长归因于摘要计算。
19
+
20
+ 同一工作单元把 mode、stage、work-unit 和必要 include 放进一次查询。查询已给出的内容不再整份读取;已读资料在当前任务内未变化时复用,变化、新影响或恢复时重新加载。只问当前阶段尚缺且会影响判断的问题,独立问题可合并;依赖尚未形成资产的后续批准仍按用户决定协议逐边界取得。
21
+
22
+ 资产写入稳定后、批准或流转前执行当前合同要求的验证。同一边界内,只有输入字节、上游、验证器/schema、参数和仓库根均已确认未变化且实际结果可读时,才引用已执行结果;不确定就重跑。每个工作单元仍生成并校验自己的 context reconciliation;恢复、交接、实现、合并和发布边界重新执行适用验证。`verify-*-scenarios` 与模板全量核验用于模板维护或明确的回归任务,不因产品阶段切换而重复执行;实例合同显式要求的检查仍须执行。
23
+
24
+ 脚本命令、实际退出码和 duration_ms 记入已有 checkpoint 的验证证据;Agent 编排和人工等待仅在有计时来源时记录,否则标为 unknown。无需为耗时再建一套阶段产物。
25
+
16
26
  ## 阶段边界
17
27
 
18
28
  Matt phase boundary 是工作阶段之间的上下文决策,不是新的生命周期状态。按以下顺序判断,第一项适用即停止判断:
@@ -27,6 +37,10 @@ Matt phase boundary 是工作阶段之间的上下文决策,不是新的生命
27
37
 
28
38
  ## 原型到后端脚手架的接力
29
39
 
40
+ 阶段 5 在技术分析后固定进入 `work-unit.implementation-repository-preparation`。编排器按 backend / frontend 影响逐项目展示已有或新建工程、Agent 推荐、仓库 scope、目标路径、Git 初始化、验证命令和风险,取得真实用户确认后再执行。已有工程调用 `implementation-repo-onboarding`;新后端按已确认架构调用对应生成器;新前端调用 `yss-frontend-scaffold-generator`。默认 `external-repository`,`harness-apps` / `git-submodule`、`git init` 和远端仓库创建均须显式选择或授权。
41
+
42
+ 所有命中项目必须达到 `existing-and-onboarded` 或 `initialized-and-verified`,未命中的交付面必须有带原因的 `not-applicable`。聚合结果、Manifest、验证和 onboarding 证据必须可读且当前;否则 `gate.implementation-repositories-ready` 阻断 Ticket 正式化。旧实例恢复时保留已有 Ticket,但将相关 Ticket / Slice Contract 标为 `blocked` / `stale` 并返回本工作单元。
43
+
30
44
  `prototype_confirmation` 通过后,先判断实现仓库登记中的 backend `scaffold_status`。当状态为 `required` 时,在工程基线中先完成脚手架架构选择:Agent 按领域复杂度给出 `domain-driven` / `layered-mvc` 推荐和依据,本体选择作为子项目预填默认值,用户通过批量表确认全部项目或逐项覆盖。选择写入 `scaffold-architecture-decisions.yaml`;处于 `undecided`、`recommended`、`awaiting-user-decision` 或 `stale` 时必须阻断,不得默认 DDD,也不得在生成器内交互。
31
45
 
32
46
  选择达到 `lifecycle-approved` 且 digest 当前后,由 `yss-implementation-contract-compiler` 编译脚手架 schema v3 `controlled-generation` 工作单元合同,生命周期批准并持久化后才能运行对应生成器。顺序为:工程基线与架构推荐 → 用户确认与选择持久化 → 实现合同编译器脚手架合同 draft → 生命周期批准/持久化 → `domain-driven` 使用 `yss-ddd-scaffold-generator` 或 `layered-mvc` 使用 `yss-layered-mvc-scaffold-generator` → 对应基线/Manifest v3 校验 → 实现合同编译器业务合同重编译。`existing` / `initialized` 不重复生成;架构转换必须单独立项。
@@ -55,10 +69,10 @@ tracker 选择和冲突按 `docs/agents/issue-tracker.md` 裁决:已持久化
55
69
 
56
70
  - `work-unit.technical-analysis` 由 `yss-technical-design` 组织后端技术设计,先按项目确认架构,再调用 DDD `yss-tactical-design` 或传统 MVC `yss-mvc-design`。状态、规则、一致性、持久化影响本身不意味着选择 DDD。无后端技术设计影响记录带原因的 `not-applicable`,其他 API / 前端技术分析继续各自路由。新合同使用 `artifact.technical-design`,通过 `evidence.technical-design-review` 回交现有架构审查;旧 DDD 稳定 ID 只读兼容。批准仍由生命周期维护,编译器消费批准且当前的设计起草实现合同;`stale`、`drift` 或 `new_impacts` 时不得继续 Ticket 正式化。
57
71
 
58
- - `work-unit.discovery-requirements` 实际调用 `grilling` 和 `domain-modeling`;`work-unit.discovery-opportunity` 按事实类型路由 `competitive-intelligence` 或 `yss-research`。`yss-research:quick` 只用于探索;外部证据进入领域战略、阶段决策或其他生命周期批准输入前必须升级为 `evidence-audited`。生命周期原生工作单元默认负责 Spec、Ticket 和实现资产;`to-spec`、`to-tickets`、`implement` 仅保留为显式兼容入口,结果必须回交生命周期验收。
72
+ - `work-unit.plan-requirements` 实际调用 `grilling` 和 `domain-modeling`;`work-unit.plan-opportunity` 按事实类型路由 `competitive-intelligence` 或 `yss-research`。`yss-research:quick` 只用于探索;外部证据进入领域战略、阶段决策或其他生命周期批准输入前必须升级为 `evidence-audited`。生命周期原生工作单元默认负责 Spec、Ticket 和实现资产;`to-spec`、`to-tickets`、`implement` 仅保留为显式兼容入口,结果必须回交生命周期验收。
59
73
  - 原生 `work-unit.ticket-decomposition` 只能在 OpenAPI Freeze 或无 API 影响记录后创建垂直切片,初始 Ticket 状态统一为 `ready-for-human`;生命周期复算完整公式后才能提升 `ready-for-agent`。该工作单元必须返回 `ticket_decomposition_result_ref` 和垂直切片引用,并作为实现的必经前置证据。
60
74
  - 原生 `work-unit.slice-implementation` 必须在生命周期批准并持久化 Slice Implementation Contract 和 Build Architecture Checklist 后执行;用户显式 `implement` 仍走兼容入口,不得绕过生命周期。
61
- - `Workflow Execution Result.next_route` 必须通过生命周期转换校验;Spec、原型和技术分析不得直接跳转到 `work-unit.slice-implementation`,只能先进入 `work-unit.ticket-decomposition`。
75
+ - `Workflow Execution Result.next_route` 必须通过生命周期转换校验;Spec、原型和技术分析不得直接跳转到 Ticket 正式化或实现,必须先完成 `work-unit.implementation-repository-preparation`,再进入 `work-unit.ticket-decomposition`。
62
76
  - `implement` 遇到 backend `scaffold_status=required` 时,还必须满足原型确认后的脚手架策略:脚手架 Execution Result、`yss-backend-scaffold-parent` 基线、Wrapper 验证和 实现合同编译器 合同重编译均已回写;否则停在工程基线,不得写业务代码。
63
77
  - `Workflow Execution Result` 出现 `drift`、`new_impacts`、`stale_candidates`、`violation`、`missing_evidence`、空 `evidence_refs` 或缺少必需字段时暂停当前工作单元;旧结果只能先经只读兼容 adapter 归一化。
64
78
 
@@ -41,6 +41,8 @@ required gates ∈ {approved, not-applicable}
41
41
  AND 关键决定及当前切片实施范围已有可追溯、当前且未撤回的真实用户批准
42
42
  AND related artifacts 不含 stale(若命中技术设计影响,`artifact.technical-design` 必须已批准且版本当前、架构一致;旧 DDD 合同仅按显式兼容入口消费)
43
43
  AND blocking edges 全部关闭
44
+ AND `gate.implementation-repositories-ready` 已通过,所有命中的前后端项目均为 `existing-and-onboarded` 或 `initialized-and-verified`,未命中的交付面有带原因的 `not-applicable`
45
+ AND `work-unit.implementation-repository-preparation` 已返回当前且证据可读的 `completed` 结果
44
46
  AND implementation repo/branch/CI/test/rollback 已明确
45
47
  AND `work-unit.ticket-decomposition` 已返回 `completed`,且其 `ticket_decomposition_result_ref` 证据可读取
46
48
  AND `vertical_slice_ticket_ref` 指向 `docs/.scratch/<feature>/issues/` 下的垂直切片 Ticket
@@ -50,7 +52,8 @@ AND Slice Implementation Contract 已由生命周期编排器批准并持久化
50
52
  AND Slice Implementation Contract 的 `ticket_ref` 与 `vertical_slice_ticket_ref` 完全一致
51
53
  AND 当前工作单元消费的 contract_id/version 与最新批准版本一致
52
54
  AND Backend Slice Implementation Contract(后端适用)和 Build Architecture Checklist 已完成
53
- AND backend 影响且 scaffold_status=required 时,脚手架架构选择已由用户确认并达到 lifecycle-approved、schema v3 合同与 Manifest v3 当前、对应 DDD / Layered MVC 基线、Wrapper 验证和 实现合同编译器重编译均已完成
55
+ AND backend 影响且 scaffold_status=required 时,脚手架架构选择已由用户确认并达到 lifecycle-approved、兼容 schema v3 或统一 schema v4 合同与 Manifest 当前、对应 DDD / Layered MVC 基线、Wrapper 验证和 实现合同编译器重编译均已完成
56
+ AND frontend 影响且无已有工程时,统一 schema v4 Project Scaffold Contract 已批准、持久化且当前,模板 commit 已锁定,`pnpm install --frozen-lockfile` 与工程基线要求的 lint/type-check/build 已实际通过
54
57
  AND 所有后续生成代码均绑定主 YSS skill、依赖闭包、允许写路径、预期证据和 YSS Skill Execution Result
55
58
  AND UI 影响切片的前端实现还原计划已通过 schema 校验、`template=false`、`status=approved`,且基线引用可读取
56
59
  ```
@@ -61,7 +64,7 @@ AND UI 影响切片的前端实现还原计划已通过 schema 校验、`templat
61
64
 
62
65
  任何 `project-instance` 工作单元进入下一步、任何阶段会签暂停或阶段完成 checkpoint,还必须引用当前工作单元的 `context_reconciliation`。其中 `status=reconciled`、`context_ref=CONTEXT.md`、`document_digest` 与 `referenced_terms_digest` 必须和根目录唯一 `CONTEXT.md` 一致;该证据不改变门禁数量。`template-source` 仅允许以带原因的 `not-applicable` 表示它只校验模板合同,不产生产品业务术语。
63
66
 
64
- 用户显式运行 `to-tickets` 后,垂直切片初始 Ticket 状态固定为 `ready-for-human`。原生路径执行 `work-unit.ticket-decomposition` 时同样必须产生等价的垂直切片和 `Workflow Execution Result` 证据。只有 `yss-product-lifecycle` 复算上述公式全部为真后,才能把它提升为 `ready-for-agent`;生命周期不会自动调用 `to-tickets`,但不得跳过 Ticket 正式化工作单元。其默认标签也不参与该裁决。
67
+ 用户显式运行 `to-tickets` 后,垂直切片初始 Ticket 状态固定为 `ready-for-human`。原生路径执行 `work-unit.ticket-decomposition` 时同样必须产生等价的垂直切片和 `Workflow Execution Result` 证据。只有 `yss-product-lifecycle` 复算上述公式全部为真后,才能把它提升为 `ready-for-agent`;生命周期不会自动调用 `to-tickets`,但不得跳过实现仓库准备和 Ticket 正式化工作单元。旧实例恢复时若缺少当前工程准备结果,保留既有 Ticket,将 Ticket 与 Slice Contract 标为 `blocked` / `stale` 并回到阶段 5。其默认标签也不参与该裁决。
65
68
 
66
69
  ## Review 与 Git 授权状态
67
70