create-yss-spec 3.5.0 → 3.5.2

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 (513) hide show
  1. package/README.md +6 -2
  2. package/package.json +1 -1
  3. package/src/api/_sync-service.js +31 -6
  4. package/src/cli/args.js +2 -0
  5. package/src/cli/help.js +4 -1
  6. package/src/commands/attach.js +9 -3
  7. package/src/commands/diff.js +1 -0
  8. package/src/commands/doctor.js +1 -0
  9. package/src/commands/init.js +2 -1
  10. package/src/commands/sync.js +1 -0
  11. package/src/family-identity.js +1 -1
  12. package/src/template/asset-runtime.js +57 -49
  13. package/src/template/attach-planner.js +1 -1
  14. package/src/template/distribution-runtime.js +9 -9
  15. package/src/template/instance-runtime.js +9 -9
  16. package/src/template/layout-migration.js +160 -0
  17. package/src/template/migration-runtime.js +2 -2
  18. package/src/template/sync-planner.js +1 -1
  19. package/template/.agents/rules/yss-ai-skills.md +1 -1
  20. package/template/.agents/skills/.strategic-design-skills-manifest.json +7 -8
  21. package/template/.agents/skills/.yss-skills-manifest.json +2 -2
  22. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +1 -1
  23. package/template/.agents/skills/code-review/SKILL.md +6 -6
  24. package/template/.agents/skills/code-review/references/yss-review-standards.md +1 -1
  25. package/template/.agents/skills/cross-repo-implementation-routing/SKILL.md +2 -2
  26. package/template/.agents/skills/i-have-adhd/SKILL.md +1 -1
  27. package/template/.agents/skills/i-have-adhd/references/yss-adaptation.md +1 -1
  28. package/template/.agents/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
  29. package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +2 -2
  30. package/template/.agents/skills/llm-wiki/references/discover.md +3 -3
  31. package/template/.agents/skills/prototype-review/SKILL.md +4 -4
  32. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +10 -10
  33. package/template/.agents/skills/triage/SKILL.md +1 -1
  34. package/template/.agents/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
  35. package/template/.agents/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
  36. package/template/.agents/skills/yss-backend-spec-review/SKILL.md +1 -1
  37. package/template/.agents/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
  38. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
  39. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  40. package/template/.agents/skills/yss-design-system/SKILL.md +10 -10
  41. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +3 -3
  42. package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
  43. package/template/.agents/skills/yss-exception/SKILL.md +1 -1
  44. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
  45. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  46. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
  47. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
  48. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
  49. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
  50. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
  51. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
  52. package/template/.agents/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
  53. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  54. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
  55. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
  56. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
  57. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -2
  58. package/template/.agents/skills/yss-openapi-governance/SKILL.md +7 -7
  59. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -11
  60. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
  61. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
  62. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +22 -14
  63. package/template/.agents/skills/yss-product-lifecycle/references/request-triage.md +2 -0
  64. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -3
  65. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
  66. package/template/.agents/skills/yss-prototype-stage/SKILL.md +7 -7
  67. package/template/.agents/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
  68. package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
  69. package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
  70. package/template/.agents/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
  71. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
  72. package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
  73. package/template/.agents/skills/yss-repository/SKILL.md +2 -2
  74. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
  75. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
  76. package/template/.agents/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
  77. package/template/.agents/skills/yss-research/SKILL.md +2 -2
  78. package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  79. package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -5
  80. package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
  81. package/template/.agents/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
  82. package/template/.agents/skills/yss-tactical-design/SKILL.md +2 -2
  83. package/template/.agents/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
  84. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  85. package/template/.agents/skills/yss-technical-design/SKILL.md +6 -6
  86. package/template/.agents/skills/yss-technical-design/references/technical-design-contract.md +1 -1
  87. package/template/.agents/skills/yss-ui/SKILL.md +1 -1
  88. package/template/.agents/skills/yss-up-springboot3/SKILL.md +1 -1
  89. package/template/.agents/skills/yss-web-controller/SKILL.md +1 -1
  90. package/template/.agents/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
  91. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +1 -1
  92. package/template/.codex/skills/code-review/SKILL.md +6 -6
  93. package/template/.codex/skills/code-review/references/yss-review-standards.md +1 -1
  94. package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +2 -2
  95. package/template/.codex/skills/i-have-adhd/SKILL.md +1 -1
  96. package/template/.codex/skills/i-have-adhd/references/yss-adaptation.md +1 -1
  97. package/template/.codex/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
  98. package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +2 -2
  99. package/template/.codex/skills/llm-wiki/references/discover.md +3 -3
  100. package/template/.codex/skills/prototype-review/SKILL.md +4 -4
  101. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +10 -10
  102. package/template/.codex/skills/triage/SKILL.md +1 -1
  103. package/template/.codex/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
  104. package/template/.codex/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
  105. package/template/.codex/skills/yss-backend-spec-review/SKILL.md +1 -1
  106. package/template/.codex/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
  107. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
  108. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  109. package/template/.codex/skills/yss-design-system/SKILL.md +10 -10
  110. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +3 -3
  111. package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
  112. package/template/.codex/skills/yss-exception/SKILL.md +1 -1
  113. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
  114. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  115. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
  116. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
  117. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
  118. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
  119. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
  120. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
  121. package/template/.codex/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
  122. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  123. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
  124. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
  125. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
  126. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -2
  127. package/template/.codex/skills/yss-openapi-governance/SKILL.md +7 -7
  128. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -11
  129. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
  130. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
  131. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +22 -14
  132. package/template/.codex/skills/yss-product-lifecycle/references/request-triage.md +2 -0
  133. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -3
  134. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
  135. package/template/.codex/skills/yss-prototype-stage/SKILL.md +7 -7
  136. package/template/.codex/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
  137. package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
  138. package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
  139. package/template/.codex/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
  140. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
  141. package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
  142. package/template/.codex/skills/yss-repository/SKILL.md +2 -2
  143. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
  144. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
  145. package/template/.codex/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
  146. package/template/.codex/skills/yss-research/SKILL.md +2 -2
  147. package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  148. package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -5
  149. package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
  150. package/template/.codex/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
  151. package/template/.codex/skills/yss-tactical-design/SKILL.md +2 -2
  152. package/template/.codex/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
  153. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  154. package/template/.codex/skills/yss-technical-design/SKILL.md +6 -6
  155. package/template/.codex/skills/yss-technical-design/references/technical-design-contract.md +1 -1
  156. package/template/.codex/skills/yss-ui/SKILL.md +1 -1
  157. package/template/.codex/skills/yss-up-springboot3/SKILL.md +1 -1
  158. package/template/.codex/skills/yss-web-controller/SKILL.md +1 -1
  159. package/template/.codex/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
  160. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +1 -1
  161. package/template/.cursor/skills/code-review/SKILL.md +6 -6
  162. package/template/.cursor/skills/code-review/references/yss-review-standards.md +1 -1
  163. package/template/.cursor/skills/cross-repo-implementation-routing/SKILL.md +2 -2
  164. package/template/.cursor/skills/i-have-adhd/SKILL.md +1 -1
  165. package/template/.cursor/skills/i-have-adhd/references/yss-adaptation.md +1 -1
  166. package/template/.cursor/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
  167. package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +2 -2
  168. package/template/.cursor/skills/llm-wiki/references/discover.md +3 -3
  169. package/template/.cursor/skills/prototype-review/SKILL.md +4 -4
  170. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +10 -10
  171. package/template/.cursor/skills/triage/SKILL.md +1 -1
  172. package/template/.cursor/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
  173. package/template/.cursor/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
  174. package/template/.cursor/skills/yss-backend-spec-review/SKILL.md +1 -1
  175. package/template/.cursor/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
  176. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
  177. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  178. package/template/.cursor/skills/yss-design-system/SKILL.md +10 -10
  179. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +3 -3
  180. package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
  181. package/template/.cursor/skills/yss-exception/SKILL.md +1 -1
  182. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
  183. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  184. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
  185. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
  186. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
  187. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
  188. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
  189. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
  190. package/template/.cursor/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
  191. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  192. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
  193. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
  194. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
  195. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -2
  196. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +7 -7
  197. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +11 -11
  198. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
  199. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
  200. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +22 -14
  201. package/template/.cursor/skills/yss-product-lifecycle/references/request-triage.md +2 -0
  202. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -3
  203. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
  204. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +7 -7
  205. package/template/.cursor/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
  206. package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
  207. package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
  208. package/template/.cursor/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
  209. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
  210. package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
  211. package/template/.cursor/skills/yss-repository/SKILL.md +2 -2
  212. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
  213. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
  214. package/template/.cursor/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
  215. package/template/.cursor/skills/yss-research/SKILL.md +2 -2
  216. package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  217. package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -5
  218. package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
  219. package/template/.cursor/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
  220. package/template/.cursor/skills/yss-tactical-design/SKILL.md +2 -2
  221. package/template/.cursor/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
  222. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  223. package/template/.cursor/skills/yss-technical-design/SKILL.md +6 -6
  224. package/template/.cursor/skills/yss-technical-design/references/technical-design-contract.md +1 -1
  225. package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
  226. package/template/.cursor/skills/yss-up-springboot3/SKILL.md +1 -1
  227. package/template/.cursor/skills/yss-web-controller/SKILL.md +1 -1
  228. package/template/.cursor/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
  229. package/template/.cursorrules +1 -1
  230. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +1 -1
  231. package/template/.pi/skills/code-review/SKILL.md +6 -6
  232. package/template/.pi/skills/code-review/references/yss-review-standards.md +1 -1
  233. package/template/.pi/skills/cross-repo-implementation-routing/SKILL.md +2 -2
  234. package/template/.pi/skills/i-have-adhd/SKILL.md +1 -1
  235. package/template/.pi/skills/i-have-adhd/references/yss-adaptation.md +1 -1
  236. package/template/.pi/skills/i-have-adhd/tests/verify-integration.mjs +2 -2
  237. package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +2 -2
  238. package/template/.pi/skills/llm-wiki/references/discover.md +3 -3
  239. package/template/.pi/skills/prototype-review/SKILL.md +4 -4
  240. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +10 -10
  241. package/template/.pi/skills/triage/SKILL.md +1 -1
  242. package/template/.pi/skills/yss-application/references/profiles/layered-mvc-service.md +1 -1
  243. package/template/.pi/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +1 -1
  244. package/template/.pi/skills/yss-backend-spec-review/SKILL.md +1 -1
  245. package/template/.pi/skills/yss-backend-spec-review/references/check-inputs.md +1 -1
  246. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +2 -2
  247. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  248. package/template/.pi/skills/yss-design-system/SKILL.md +10 -10
  249. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +3 -3
  250. package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
  251. package/template/.pi/skills/yss-exception/SKILL.md +1 -1
  252. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +2 -2
  253. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +1 -1
  254. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +2 -2
  255. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +9 -9
  256. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -1
  257. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +9 -9
  258. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract-v2.md +3 -3
  259. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +1 -1
  260. package/template/.pi/skills/yss-implementation-contract-compiler/references/strategic-handoff-routing.md +1 -1
  261. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  262. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/data-analysis-profile.mjs +5 -5
  263. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +2 -2
  264. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +42 -0
  265. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -2
  266. package/template/.pi/skills/yss-openapi-governance/SKILL.md +7 -7
  267. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -11
  268. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +5 -5
  269. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +65 -43
  270. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +22 -14
  271. package/template/.pi/skills/yss-product-lifecycle/references/request-triage.md +2 -0
  272. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -3
  273. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +2 -2
  274. package/template/.pi/skills/yss-prototype-stage/SKILL.md +7 -7
  275. package/template/.pi/skills/yss-prototype-stage/references/existing-ui-entry.md +1 -1
  276. package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +1 -1
  277. package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +3 -3
  278. package/template/.pi/skills/yss-prototype-stage/tests/browser-smoke.mjs +2 -2
  279. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +4 -4
  280. package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +1 -1
  281. package/template/.pi/skills/yss-repository/SKILL.md +2 -2
  282. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +1 -1
  283. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +1 -1
  284. package/template/.pi/skills/yss-repository/tests/profile-routing.test.mjs +2 -2
  285. package/template/.pi/skills/yss-research/SKILL.md +2 -2
  286. package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  287. package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -5
  288. package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +1 -1
  289. package/template/.pi/skills/yss-stage-decision/references/strategic-handoff-routing.md +1 -1
  290. package/template/.pi/skills/yss-tactical-design/SKILL.md +2 -2
  291. package/template/.pi/skills/yss-tactical-design/references/strategic-handoff-routing.md +1 -1
  292. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  293. package/template/.pi/skills/yss-technical-design/SKILL.md +6 -6
  294. package/template/.pi/skills/yss-technical-design/references/technical-design-contract.md +1 -1
  295. package/template/.pi/skills/yss-ui/SKILL.md +1 -1
  296. package/template/.pi/skills/yss-up-springboot3/SKILL.md +1 -1
  297. package/template/.pi/skills/yss-web-controller/SKILL.md +1 -1
  298. package/template/.pi/skills/yss-web-controller/references/profiles/layered-mvc-service.md +1 -1
  299. package/template/{docs → .template-spec}/adr/README.md +1 -1
  300. package/template/{docs → .template-spec}/agents/README.md +1 -1
  301. package/template/{docs → .template-spec}/agents/backend-architecture-profiles.md +2 -2
  302. package/template/{docs → .template-spec}/agents/digital-human-roles.md +6 -6
  303. package/template/{docs → .template-spec}/agents/digital-human-roles.yaml +5 -5
  304. package/template/{docs → .template-spec}/agents/gitlab-workflow-skills.md +2 -2
  305. package/template/{docs → .template-spec}/agents/issue-tracker.md +1 -1
  306. package/template/{docs → .template-spec}/agents/skill-migrations.md +2 -2
  307. package/template/{docs → .template-spec}/agents/triage-labels.md +1 -1
  308. package/template/{docs → .template-spec}/agents/yss-skill-registry.yaml +2 -2
  309. package/template/{docs → .template-spec}/architecture/README.md +3 -3
  310. package/template/{docs → .template-spec}/architecture/templates/tech-design-template.md +3 -1
  311. package/template/{docs → .template-spec}/design/README.md +12 -11
  312. package/template/{docs → .template-spec}/design/design.md +19 -19
  313. package/template/{docs/design/templates/interaction-spec-template.md → .template-spec/design/templates/examples/model-publishing-interaction.example.md} +5 -3
  314. package/template/{docs/design/templates/state-matrix-template.md → .template-spec/design/templates/examples/model-publishing-state-matrix.example.md} +3 -1
  315. package/template/.template-spec/design/templates/interaction-spec-template.md +61 -0
  316. package/template/{docs → .template-spec}/design/templates/product-overview-design-template.md +11 -11
  317. package/template/{docs → .template-spec}/design/templates/prototype-evidence-template.yaml +4 -4
  318. package/template/{docs → .template-spec}/design/templates/prototype-review-checklist.md +1 -1
  319. package/template/.template-spec/design/templates/state-matrix-template.md +29 -0
  320. package/template/.template-spec/design/tokens/.design-md-projection.json +13 -0
  321. package/template/{docs → .template-spec}/engineering/backend-platforms.md +1 -1
  322. package/template/{docs → .template-spec}/plan/entry-review.md +8 -4
  323. package/template/{docs → .template-spec}/plan/templates/plan-template.md +1 -1
  324. package/template/{docs → .template-spec}/process/contract-reading.md +1 -1
  325. package/template/{docs → .template-spec}/process/lifecycle-artifact-map.md +5 -5
  326. package/template/.template-spec/process/lifecycle-registry-baseline.json +253 -0
  327. package/template/{docs → .template-spec}/process/lifecycle-registry.yaml +19 -12
  328. package/template/{docs → .template-spec}/process/plan-migration.md +1 -1
  329. package/template/{docs → .template-spec}/process/schemas/digital-human-task-package.schema.json +14 -1
  330. package/template/{docs → .template-spec}/process/schemas/lifecycle-checkpoint.schema.json +15 -0
  331. package/template/{docs → .template-spec}/process/schemas/lifecycle-registry.schema.json +1 -1
  332. package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v3.schema.json +1 -1
  333. package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v4.schema.json +1 -1
  334. package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff-v5.schema.json +1 -1
  335. package/template/{docs → .template-spec}/process/schemas/strategic-design-handoff.schema.json +1 -1
  336. package/template/{docs → .template-spec}/process/stage-tracking.md +1 -1
  337. package/template/{docs → .template-spec}/process/subagent-collaboration.md +2 -2
  338. package/template/{docs → .template-spec}/templates/build-architecture-checklist-template.md +2 -2
  339. package/template/{docs → .template-spec}/templates/digital-human-runtime-profile-template.md +2 -2
  340. package/template/{docs → .template-spec}/templates/grok-bot-profile-template.md +1 -1
  341. package/template/{docs → .template-spec}/templates/local-parent-ticket-template.md +1 -1
  342. package/template/.template-spec/templates/release-note-template.md +29 -0
  343. package/template/.template-spec/templates/retro-report-template.md +24 -0
  344. package/template/{docs → .template-spec}/templates/subagent-task-package-template.md +3 -3
  345. package/template/.template-spec/templates/verification-record-template.md +64 -0
  346. package/template/{docs → .template-spec}/templates/vertical-slice-ticket-template.md +5 -10
  347. package/template/{docs → .template-spec}/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1 -1
  348. package/template/{docs → .template-spec}/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +4 -4
  349. package/template/AGENTS.md +12 -12
  350. package/template/CONTEXT.md +3 -3
  351. package/template/README.md +21 -21
  352. package/template/scripts/backend-delivery +1 -1
  353. package/template/scripts/lib/api-contract-decision.mjs +1 -1
  354. package/template/scripts/lib/approved-execution-context.mjs +5 -5
  355. package/template/scripts/lib/backend-delivery.mjs +4 -4
  356. package/template/scripts/lib/backend-platform.mjs +1 -1
  357. package/template/scripts/lib/backend-review.mjs +1 -1
  358. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
  359. package/template/scripts/lib/backend-standards-coverage.mjs +2 -2
  360. package/template/scripts/lib/context-reconciliation.mjs +1 -1
  361. package/template/scripts/lib/contract-views.mjs +9 -9
  362. package/template/scripts/lib/delivery-preflight.mjs +6 -6
  363. package/template/scripts/lib/design-md.mjs +2 -2
  364. package/template/scripts/lib/digital-human-roles.mjs +2 -2
  365. package/template/scripts/lib/existing-backend-architecture.mjs +1 -1
  366. package/template/scripts/lib/existing-ui-baseline.mjs +1 -1
  367. package/template/scripts/lib/frontend-delivery.mjs +2 -2
  368. package/template/scripts/lib/governance-layout.mjs +74 -0
  369. package/template/scripts/lib/harness-execution-scope.mjs +2 -2
  370. package/template/scripts/lib/lifecycle-context-query.mjs +11 -3
  371. package/template/scripts/lib/lifecycle-registry.mjs +46 -7
  372. package/template/scripts/lib/lifecycle-status.mjs +111 -0
  373. package/template/scripts/lib/lifecycle-transition.mjs +71 -10
  374. package/template/scripts/lib/openapi-draft-validation.mjs +1 -1
  375. package/template/scripts/lib/plan-spec-entry-view.mjs +48 -0
  376. package/template/scripts/lib/plan-spec-entry.mjs +3 -3
  377. package/template/scripts/lib/skill-registry.mjs +8 -8
  378. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  379. package/template/scripts/lib/slice-contract-preparation.mjs +3 -3
  380. package/template/scripts/lib/slice-contract.mjs +1 -1
  381. package/template/scripts/lib/slice-repositories.mjs +1 -1
  382. package/template/scripts/lib/slice-task-package.mjs +3 -3
  383. package/template/scripts/lib/stage-tracking-migration.mjs +2 -2
  384. package/template/scripts/lib/stage-tracking.mjs +5 -5
  385. package/template/scripts/lib/strategic-feedback.mjs +2 -2
  386. package/template/scripts/lib/strategic-handoff-routing.mjs +2 -2
  387. package/template/scripts/lib/strategic-handoff.mjs +15 -15
  388. package/template/scripts/lib/task-package-schema.mjs +2 -2
  389. package/template/scripts/lib/task-package.mjs +1 -1
  390. package/template/scripts/lib/technical-design-boundary.mjs +1 -1
  391. package/template/scripts/lib/user-decision.mjs +2 -1
  392. package/template/scripts/lifecycle-status +14 -0
  393. package/template/scripts/plan-spec-entry +21 -0
  394. package/template/scripts/strategic-consumer-entry +1 -1
  395. package/template/scripts/strategic-handoff +1 -1
  396. package/template/scripts/verify-frontend-implementation-evidence +1 -1
  397. package/template/scripts/verify-governance-layout +15 -0
  398. package/template/scripts/verify-lifecycle-checkpoint +1 -1
  399. package/template/scripts/verify-project-instance +2 -0
  400. package/template/scripts/verify-scaffold-architecture-decisions +1 -1
  401. package/template/scripts/verify-strategic-context-import +3 -3
  402. package/template/skills-lock.json +77 -77
  403. package/template.manifest.json +19 -19
  404. package/template.snapshot.json +5 -5
  405. package/template/docs/agents/archify-integration.md +0 -19
  406. package/template/docs/design/design-system-sync.yaml +0 -13
  407. package/template/docs/design/preview-dark.html +0 -178
  408. package/template/docs/design/preview.css +0 -730
  409. package/template/docs/design/preview.html +0 -178
  410. package/template/docs/design/preview.js +0 -71
  411. package/template/docs/design/tokens/.design-md-projection.json +0 -13
  412. package/template/docs/engineering/evidence/aliyun-artifact-resolution.json +0 -446
  413. package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +0 -13
  414. package/template/docs/process/github-workflows.md +0 -52
  415. package/template/docs/templates/release-note-template.md +0 -14
  416. package/template/docs/templates/retro-report-template.md +0 -16
  417. package/template/docs/templates/verification-record-template.md +0 -53
  418. /package/template/{docs → .template-spec}/agents/domain.md +0 -0
  419. /package/template/{docs → .template-spec}/api/templates/openapi-draft-review-checklist.md +0 -0
  420. /package/template/{docs → .template-spec}/api/templates/openapi-draft-validation-record-template.yaml +0 -0
  421. /package/template/{docs → .template-spec}/api/templates/openapi-freeze-record-template.md +0 -0
  422. /package/template/{docs → .template-spec}/api/templates/openapi-json-export-record-template.md +0 -0
  423. /package/template/{docs → .template-spec}/architecture/templates/architecture-deepening-template.md +0 -0
  424. /package/template/{docs → .template-spec}/architecture/templates/architecture-review-checklist.md +0 -0
  425. /package/template/{docs → .template-spec}/architecture/templates/business-architecture-template.md +0 -0
  426. /package/template/{docs → .template-spec}/architecture/templates/data-architecture-template.md +0 -0
  427. /package/template/{docs → .template-spec}/architecture/templates/engineering-baseline-review-template.md +0 -0
  428. /package/template/{docs → .template-spec}/architecture/templates/functional-architecture-template.md +0 -0
  429. /package/template/{docs → .template-spec}/architecture/templates/system-overview-design-template.md +0 -0
  430. /package/template/{docs → .template-spec}/design/diagrams/README.md +0 -0
  431. /package/template/{docs → .template-spec}/design/schemas/visual-baseline.schema.json +0 -0
  432. /package/template/{docs → .template-spec}/design/templates/prototype-confirmation-template.md +0 -0
  433. /package/template/{docs → .template-spec}/design/templates/visual-baseline-template.yaml +0 -0
  434. /package/template/{docs → .template-spec}/design/tokens/theme.json +0 -0
  435. /package/template/{docs → .template-spec}/design/tokens/tokens.compact.json +0 -0
  436. /package/template/{docs → .template-spec}/design/tokens/tokens.dark.json +0 -0
  437. /package/template/{docs → .template-spec}/design/tokens/tokens.default.json +0 -0
  438. /package/template/{docs → .template-spec}/design/tokens/variables.css +0 -0
  439. /package/template/{docs → .template-spec}/design/tokens/variables.dark.css +0 -0
  440. /package/template/{docs → .template-spec}/engineering/backend-platforms.json +0 -0
  441. /package/template/{docs → .template-spec}/plan/README.md +0 -0
  442. /package/template/{docs → .template-spec}/plan/templates/competitive-analysis-template.md +0 -0
  443. /package/template/{docs → .template-spec}/plan/templates/competitive-matrix-template.md +0 -0
  444. /package/template/{docs → .template-spec}/plan/templates/market-analysis-template.md +0 -0
  445. /package/template/{docs → .template-spec}/plan/templates/user-pain-points-template.md +0 -0
  446. /package/template/{docs → .template-spec}/process/delivery-preflight.md +0 -0
  447. /package/template/{docs → .template-spec}/process/document-writing.md +0 -0
  448. /package/template/{docs → .template-spec}/process/existing-backend-architecture.md +0 -0
  449. /package/template/{docs → .template-spec}/process/existing-ui-baseline.md +0 -0
  450. /package/template/{docs → .template-spec}/process/frontend-backend-delivery.md +0 -0
  451. /package/template/{docs → .template-spec}/process/harness-process-tailoring.md +0 -0
  452. /package/template/{docs → .template-spec}/process/implementation-repo-integration.md +0 -0
  453. /package/template/{docs/process/lifecycle-registry-baseline.json → .template-spec/process/lifecycle-registry-baseline-v1.json} +0 -0
  454. /package/template/{docs → .template-spec}/process/schemas/api-contract-decision-v2.schema.json +0 -0
  455. /package/template/{docs → .template-spec}/process/schemas/api-contract-decision.schema.json +0 -0
  456. /package/template/{docs → .template-spec}/process/schemas/backend-architecture-identity.schema.json +0 -0
  457. /package/template/{docs → .template-spec}/process/schemas/backend-delivery-verification.schema.json +0 -0
  458. /package/template/{docs → .template-spec}/process/schemas/backend-delivery.schema.json +0 -0
  459. /package/template/{docs → .template-spec}/process/schemas/context-reconciliation.schema.json +0 -0
  460. /package/template/{docs → .template-spec}/process/schemas/data-architecture-decision.schema.json +0 -0
  461. /package/template/{docs → .template-spec}/process/schemas/delivery-preflight-input.schema.json +0 -0
  462. /package/template/{docs → .template-spec}/process/schemas/delivery-preflight-result.schema.json +0 -0
  463. /package/template/{docs → .template-spec}/process/schemas/existing-ui-baseline.schema.json +0 -0
  464. /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance-v1.schema.json +0 -0
  465. /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance-v3.schema.json +0 -0
  466. /package/template/{docs → .template-spec}/process/schemas/frontend-delivery-acceptance.schema.json +0 -0
  467. /package/template/{docs → .template-spec}/process/schemas/frontend-implementation-evidence.schema.json +0 -0
  468. /package/template/{docs → .template-spec}/process/schemas/frontend-strategic-preflight-v2.schema.json +0 -0
  469. /package/template/{docs → .template-spec}/process/schemas/frontend-strategic-preflight.schema.json +0 -0
  470. /package/template/{docs → .template-spec}/process/schemas/implementation-repository-preparation-result.schema.json +0 -0
  471. /package/template/{docs → .template-spec}/process/schemas/openapi-draft-validation-record.schema.json +0 -0
  472. /package/template/{docs → .template-spec}/process/schemas/project-scaffold-contract.schema.json +0 -0
  473. /package/template/{docs → .template-spec}/process/schemas/review-bundle.schema.json +0 -0
  474. /package/template/{docs → .template-spec}/process/schemas/scaffold-architecture-decisions.schema.json +0 -0
  475. /package/template/{docs → .template-spec}/process/schemas/slice-implementation-contract-v3.schema.json +0 -0
  476. /package/template/{docs → .template-spec}/process/schemas/stage-tracking.schema.json +0 -0
  477. /package/template/{docs → .template-spec}/process/schemas/strategic-consumer-feedback.schema.json +0 -0
  478. /package/template/{docs → .template-spec}/process/schemas/strategic-feedback-adjudication.schema.json +0 -0
  479. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-delivery-verification.schema.json +0 -0
  480. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-delivery.schema.json +0 -0
  481. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +0 -0
  482. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-domain-strategy.schema.json +0 -0
  483. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-export-v2.schema.json +0 -0
  484. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-export.schema.json +0 -0
  485. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-import-receipt-v3.schema.json +0 -0
  486. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-import-receipt.schema.json +0 -0
  487. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-package.schema.json +0 -0
  488. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +0 -0
  489. /package/template/{docs → .template-spec}/process/schemas/strategic-handoff-stage-decision-package.schema.json +0 -0
  490. /package/template/{docs → .template-spec}/process/schemas/subagent-task-package.schema.json +0 -0
  491. /package/template/{docs → .template-spec}/process/schemas/user-decision.schema.json +0 -0
  492. /package/template/{docs → .template-spec}/process/strategic-handoff-package.md +0 -0
  493. /package/template/{docs → .template-spec}/process/templates/context-reconciliation-template.yaml +0 -0
  494. /package/template/{docs → .template-spec}/process/templates/frontend-implementation-plan-template.yaml +0 -0
  495. /package/template/{docs → .template-spec}/process/templates/frontend-implementation-verification-template.yaml +0 -0
  496. /package/template/{docs → .template-spec}/process/templates/lifecycle-checkpoint-template.yaml +0 -0
  497. /package/template/{docs → .template-spec}/process/templates/scaffold-architecture-decisions-template.yaml +0 -0
  498. /package/template/{docs → .template-spec}/process/templates/stage-checkpoint-template.md +0 -0
  499. /package/template/{docs → .template-spec}/process/templates/user-decision-template.yaml +0 -0
  500. /package/template/{docs → .template-spec}/templates/adr-template.md +0 -0
  501. /package/template/{docs → .template-spec}/templates/approval-record-template.yaml +0 -0
  502. /package/template/{docs → .template-spec}/templates/cross-repo-slice-template.md +0 -0
  503. /package/template/{docs → .template-spec}/templates/examples/lifecycle-writing-examples.md +0 -0
  504. /package/template/{docs → .template-spec}/templates/implementation-repo-registry-template.md +0 -0
  505. /package/template/{docs → .template-spec}/templates/openapi-spec-template.yaml +0 -0
  506. /package/template/{docs → .template-spec}/templates/review-bundle-template.yaml +0 -0
  507. /package/template/{docs → .template-spec}/templates/review-report-template.md +0 -0
  508. /package/template/{docs → .template-spec}/templates/spec-delta-template.md +0 -0
  509. /package/template/{docs → .template-spec}/templates/spec-template.md +0 -0
  510. /package/template/{docs → .template-spec}/user-guide/yss-ui-mcp.md +0 -0
  511. /package/template/{docs → .template-spec}/user-guide//346/212/200/346/234/257/350/256/276/350/256/241/347/224/250/346/210/267/346/214/207/345/215/227.md" +0 -0
  512. /package/template/{docs → .template-spec}/user-guide//350/256/276/345/244/207/345/200/237/347/224/250/350/264/257/347/251/277/346/241/210/344/276/213.md" +0 -0
  513. /package/template/{docs → .template-spec}/user-guide//351/230/266/346/256/265/346/216/245/345/205/245/344/270/216/344/272/247/347/211/251/345/244/215/347/224/250/344/275/277/347/224/250/346/211/213/345/206/214.md" +0 -0
@@ -166,7 +166,7 @@ export async function validateContract(options, skillId, architectureProfile, pl
166
166
  if (contract.init_git !== true) fail("mvc-data-analysis-v1 必须由合同显式要求独立 Git 初始化");
167
167
  if (!contract.context_handoff_ref || !contract.context_handoff_digest) fail("mvc-data-analysis-v1 缺少批准的 CONTEXT handoff");
168
168
  }
169
- validateJsonSchema(contract, path.join(REPOSITORY_ROOT, "docs/process/schemas/project-scaffold-contract.schema.json"), { label: "Project Scaffold Contract v4" });
169
+ validateJsonSchema(contract, path.join(REPOSITORY_ROOT, ".template-spec/process/schemas/project-scaffold-contract.schema.json"), { label: "Project Scaffold Contract v4" });
170
170
  const 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"];
171
171
  const missing = required.filter((field) => !isPresent(contract[field]));
172
172
  if (missing.length) fail(`脚手架合同缺少字段: ${missing.join(", ")}`);
@@ -319,7 +319,7 @@ export async function generate(options, { skillId = SKILL_ID, architectureProfil
319
319
  verification_commands: COMMANDS,
320
320
  generator: { id: skillId, template_digest: await treeDigest(SKILL_ROOT) },
321
321
  ownership: { generated_files: generatedFiles, user_owned_globs: ["**/src/main/java/**", "**/src/test/java/**", "db/**"] },
322
- readiness: { downstream_skills: downstream, contracts: { architecture_profiles: rawSha256(await readFile(path.join(REPOSITORY_ROOT, "docs/agents/backend-architecture-profiles.md"))), compiler_contract: rawSha256(await readFile(path.join(REPOSITORY_ROOT, ".agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml"))) }, architecture_ruleset: rawSha256(await readFile(path.join(projectRoot, architectureRuleset))) },
322
+ readiness: { downstream_skills: downstream, contracts: { architecture_profiles: rawSha256(await readFile(path.join(REPOSITORY_ROOT, ".template-spec/agents/backend-architecture-profiles.md"))), compiler_contract: rawSha256(await readFile(path.join(REPOSITORY_ROOT, ".agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml"))) }, architecture_ruleset: rawSha256(await readFile(path.join(projectRoot, architectureRuleset))) },
323
323
  generated_at: new Date().toISOString()
324
324
  };
325
325
  await put(projectRoot, ".yss/scaffold-generation.json", JSON.stringify(manifest, null, 2));
@@ -8,6 +8,7 @@ import path from "node:path";
8
8
  import test from "node:test";
9
9
  import { fileURLToPath } from "node:url";
10
10
  import { attachDesignPrerequisites } from "../../../../scripts/fixtures/backend-scaffold/design-prerequisites.mjs";
11
+ import { validateNextRoute } from "../../../../scripts/lib/lifecycle-transition.mjs";
11
12
 
12
13
  const script = path.join(path.dirname(fileURLToPath(import.meta.url)), "generate_scaffold.mjs");
13
14
  const digest = (value) => `sha256:${createHash("sha256").update(value).digest("hex")}`;
@@ -80,8 +81,27 @@ test("数据分析初始化生成 H2 六模块和独立治理信封", async (t)
80
81
  data.contract.context_handoff_ref = "context-handoff.md";
81
82
  data.contract.context_handoff_digest = digest(context);
82
83
  await writeFile(data.contractFile, JSON.stringify(data.contract));
84
+ const contractBytes = await readFile(data.contractFile);
85
+ const state = { service_project_initialization: {
86
+ project_id: "demo-service", contract_ref: data.contractFile, contract_digest: digest(contractBytes),
87
+ project_root: data.project, context_handoff_digest: digest(context)
88
+ } };
89
+ const edge = (from, to, value = state) => validateNextRoute(from, to, value, { root: data.root });
90
+ assert.equal(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization").result, "allowed", JSON.stringify(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization")));
91
+ const missingContract = structuredClone(state); missingContract.service_project_initialization.contract_ref = path.join(data.root, "missing-contract.json");
92
+ assert.equal(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization", missingContract).result, "blocked");
93
+ const changedContract = structuredClone(state); changedContract.service_project_initialization.contract_digest = digest("stale");
94
+ assert.equal(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization", changedContract).result, "blocked");
95
+ const approvedContract = structuredClone(data.contract);
96
+ data.contract.design_prerequisites.engineering_contract_approval_ref = "missing-approval.json";
97
+ await writeFile(data.contractFile, JSON.stringify(data.contract));
98
+ const missingApproval = structuredClone(state); missingApproval.service_project_initialization.contract_digest = digest(await readFile(data.contractFile));
99
+ assert.equal(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization", missingApproval).result, "blocked");
100
+ await writeFile(data.contractFile, JSON.stringify(approvedContract));
101
+ assert.equal(edge("work-unit.service-project-initialization", "work-unit.implementation-repository-preparation").result, "blocked");
83
102
  const result = spawnSync(process.execPath, [path.resolve(path.dirname(script), "../../../../scripts/fixtures/backend-scaffold/generate-candidate.mjs"), script, ...data.args], { encoding: "utf8" });
84
103
  assert.equal(result.status, 0, result.stderr);
104
+ assert.equal(edge("work-unit.implementation-repository-preparation", "work-unit.service-project-initialization").result, "blocked", "重复初始化不得放行");
85
105
  const manifest = JSON.parse(await readFile(path.join(data.project, ".yss/scaffold-generation.json"), "utf8"));
86
106
  assert.equal(manifest.architecture_identity.architecture_profile, "mvc-data-analysis-v1");
87
107
  assert.equal(manifest.generator_skill, "yss-layered-mvc-scaffold-generator");
@@ -89,6 +109,28 @@ test("数据分析初始化生成 H2 六模块和独立治理信封", async (t)
89
109
  await stat(path.join(data.project, ".git"));
90
110
  await stat(path.join(data.output, "skillUtils/skills-lock.json"));
91
111
  assert.ok(!manifest.ownership.generated_files.some((entry) => entry.path.startsWith(".git/")));
112
+ const manifestRef = path.join(data.project, ".yss/scaffold-generation.json");
113
+ const verificationRef = path.join(data.root, "scaffold-verification.json");
114
+ const resultRef = path.join(data.root, "service-result.json");
115
+ manifest.completion_level = "empty-scaffold-verified";
116
+ await writeFile(manifestRef, JSON.stringify(manifest));
117
+ const commands = [];
118
+ for (const phase of ["validate", "test", "package"]) {
119
+ const stdout_ref = path.join(data.root, `${phase}.stdout.log`), stderr_ref = path.join(data.root, `${phase}.stderr.log`);
120
+ await writeFile(stdout_ref, "synthetic route fixture"); await writeFile(stderr_ref, "");
121
+ commands.push({ phase, command: `./mvnw ${phase}`, exit_code: 0, stdout_ref, stderr_ref });
122
+ }
123
+ await writeFile(verificationRef, JSON.stringify({ status: "passed", completion_level: "empty-scaffold-verified", project_root: data.project, commands }));
124
+ await writeFile(resultRef, JSON.stringify({ result_schema: "workflow-execution-result-v1", work_unit: "work-unit.service-project-initialization", result: "completed", evidence_refs: [manifestRef, verificationRef] }));
125
+ Object.assign(state.service_project_initialization, { manifest_ref: manifestRef, verification_ref: verificationRef, result_ref: resultRef });
126
+ assert.equal(edge("work-unit.service-project-initialization", "work-unit.implementation-repository-preparation").result, "allowed");
127
+ const stale = structuredClone(state); stale.service_project_initialization.context_handoff_digest = digest("stale");
128
+ assert.equal(edge("work-unit.service-project-initialization", "work-unit.implementation-repository-preparation", stale).result, "blocked");
129
+ commands[0].exit_code = 1; await writeFile(verificationRef, JSON.stringify({ status: "passed", completion_level: "empty-scaffold-verified", project_root: data.project, commands }));
130
+ assert.equal(edge("work-unit.service-project-initialization", "work-unit.implementation-repository-preparation").result, "blocked", "Wrapper 非零退出不得放行");
131
+ commands[0].exit_code = 0;
132
+ commands.pop(); await writeFile(verificationRef, JSON.stringify({ status: "passed", completion_level: "empty-scaffold-verified", project_root: data.project, commands }));
133
+ assert.equal(edge("work-unit.service-project-initialization", "work-unit.implementation-repository-preparation").result, "blocked", "缺失 Wrapper 命令不得放行");
92
134
  const core = await readFile(path.join(data.project, "demo-service-core/pom.xml"), "utf8");
93
135
  assert.doesNotMatch(core, /demo-service-client|spring-web|ojdbc|mysql-connector/);
94
136
  });
@@ -5,7 +5,7 @@ description: "审查 YSS OpenAPI Draft 的需求覆盖、页面动作、响应
5
5
 
6
6
  # YSS OpenAPI Draft Review
7
7
 
8
- 已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
8
+ 已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `.template-spec/process/contract-reading.md`。
9
9
 
10
10
  Use this skill after OpenAPI Draft creation and before Engineering Baseline / YSS DDD Review. It is a fail-closed contract review skill for design-time OpenAPI files under `docs/.scratch/<feature>/api/`; it does not bundle JSON or generate Orval clients.
11
11
 
@@ -96,4 +96,4 @@ Block if any of these are true:
96
96
 
97
97
  `Review Result` 只有在 `Structural Validation` 与 `Semantic Review` 均为 `Passed` 时才能是 `Approved`;不使用 `Conditionally Approved` 或 `Semantic Approved` 作为顶层结论。
98
98
 
99
- Prefer `docs/api/templates/openapi-draft-review-checklist.md` when a tabular checklist is useful.
99
+ Prefer `.template-spec/api/templates/openapi-draft-review-checklist.md` when a tabular checklist is useful.
@@ -5,7 +5,7 @@ description: "维护、校验、冻结或导出 YSS OpenAPI 3.1 设计合同;
5
5
 
6
6
  # YSS OpenAPI Governance
7
7
 
8
- 已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `docs/process/contract-reading.md`。
8
+ 已有生命周期资产优先用 `scripts/contract view <资产> --kind <类型>` 阅读;执行任务用 `--profile task --unit <ID>`,绑定与校验明细用 `--profile full`。视图不授予执行权限,仍按本 Skill 的原始来源和批准门禁处理。类型、准备和迁移见 `.template-spec/process/contract-reading.md`。
9
9
 
10
10
  本 skill 负责 YSS OpenAPI 的 **YAML-first** 工作流:
11
11
 
@@ -17,11 +17,11 @@ Spec / 设计输入 → OpenAPI YAML Draft → 审查与 Freeze → JSON 派生
17
17
 
18
18
  YSS DTO 的可复用 HTTP/JSON 映射由 `.agents/skills/yss-dto/references/openapi-wire-profile.yaml` 单一维护。它描述公开 wire shape,不是 Java 字段或 getter 清单;本 skill 必须消费 profile,不能在治理文档、feature YAML 和 JSON 中各自发明 `SingleResult`、`PageResult` 或 `PageQuery` 字段表。
19
19
 
20
- 文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `docs/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
20
+ 文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
21
21
 
22
22
  ## 文档写作
23
23
 
24
- 编写接口说明和契约评审交接正文前,读取 `docs/process/document-writing.md` 的共用写法及工程契约指引;协议标识、schema、冻结状态和验证记录按原合同保存。
24
+ 编写接口说明和契约评审交接正文前,读取 `.template-spec/process/document-writing.md` 的共用写法及工程契约指引;协议标识、schema、冻结状态和验证记录按原合同保存。
25
25
 
26
26
  ## 边界与职责
27
27
 
@@ -34,7 +34,7 @@ YSS DTO 的可复用 HTTP/JSON 映射由 `.agents/skills/yss-dto/references/open
34
34
  - 在 `docs/.scratch/<feature>/api/<feature>-validation.yaml` 持久化结构校验记录,并用 `scripts/verify-openapi-draft-validation-record` 复核当前 YAML SHA-256、锁定的 Redocly 版本、实际命令、退出码、执行时间和证据引用。
35
35
  - 在 OpenAPI Freeze 后,用锁定的 Redocly CLI 将 YAML bundle 为 JSON,并记录可重现证据。
36
36
  - 维护治理记录、Freeze 记录和 JSON 派生记录。
37
- - 在技术分析中生成 `api-contract-decision-v1`:有 API 影响时以原始字节摘要闭包绑定权威 YAML、Validation、独立 Draft Review 和 Freeze;无 API 影响时绑定影响评估、明确原因和至少一项可读证据,且不得生成空占位资产。
37
+ - 在技术分析中生成 API Contract Decision(版本与历史兼容见下文第 3 步):有 API 影响时以原始字节摘要闭包绑定权威 YAML、Validation、独立 Draft Review 和 Freeze;无 API 影响时绑定影响评估、明确原因和至少一项可读证据,且不得生成空占位资产。
38
38
  - Spec Delta 影响存在时,在 `docs/.scratch/<feature>/spec-delta/` 记录与冻结 YAML 的关系;没有影响时明确记录 `not-applicable`。
39
39
 
40
40
  不使用本 skill 来替代:
@@ -72,7 +72,7 @@ pnpm exec redocly bundle \
72
72
  2. **运行结构与治理校验**
73
73
  - 先执行项目 lockfile 锁定版本的 `pnpm exec redocly lint`;CI 可以包装调用,但 validation record 必须记录这条实际命令与退出码。
74
74
  - 检查 YAML 可解析、`$ref` 可解析、路径参数完整、operationId 唯一、examples 合法、schema 命名稳定。
75
- - 从 `docs/api/templates/openapi-draft-validation-record-template.yaml` 创建 `<feature>-validation.yaml`,记录 YAML SHA-256 与 lint 工具链;运行 `scripts/verify-openapi-draft-validation-record --root <project-root> <record>`。自定义解析脚本可以补充诊断,但不能代替锁定的 Redocly lint evidence。
75
+ - 从 `.template-spec/api/templates/openapi-draft-validation-record-template.yaml` 创建 `<feature>-validation.yaml`,记录 YAML SHA-256 与 lint 工具链;运行 `scripts/verify-openapi-draft-validation-record --root <project-root> <record>`。自定义解析脚本可以补充诊断,但不能代替锁定的 Redocly lint evidence。
76
76
  - 对每个 P0 写模型、配置模型及影响关键交互的读模型建立字段级追踪:`Spec/交互来源 → operationId → request/response schema → property path → 类型与嵌套形状 → create/update requiredness → nullable/default/enum/format → error/test seam`。数组元素使用 `items[].property` 一类稳定 property path。
77
77
  - create/update 或其他不同生命周期操作复用同一写 schema 时,逐操作证明 requiredness 与省略语义一致;若不一致,拆分 schema 或明确条件契约。凭据类字段还要说明创建、更新、掩码回显、省略保留与显式清空语义,不能仅凭字段名统一设为必填。
78
78
  - 先运行 `scripts/verify-yss-dto-openapi-profile`,并记录 profile 版本;检查 `/api/v1/` 版本策略(或记录例外)、`x-yss-response-wrapper`、`YssResultMeta` + `allOf` 具体 schema、统一错误结构、分页、幂等 / 乐观锁和契约测试 seam。
@@ -83,12 +83,12 @@ pnpm exec redocly bundle \
83
83
  - 将通过 verifier 且 SHA-256 与当前 YAML 一致的 validation record 交给 `yss-openapi-draft-review`。缺锁定 lint 时可以先做语义预审,但独立 Review 总结果必须为 `Blocked`;不能用“Freeze 前补 lint”支持 `Approved`。
84
84
  - YAML、validation record 或 lint ruleset 变化后,旧结构证据与旧 Review 立即失效,必须重新校验和审查。阻断项未关闭前,YAML 仍是 review-only Draft,不得生成生产客户端。
85
85
  - Freeze 记录必须引用 YAML 路径、Git ref(如适用)和 YAML SHA-256。冻结后 API 行为变更必须先回到 YAML Draft 与审查。
86
- - 将同一 YAML 的版本与摘要、validation record、独立 Review 和 Freeze 写入 API Contract Decision v1。`gate.engineering-contract-approved` 一次批准同时绑定 Technical Design、Data Architecture Decision、API Contract Decision;API `required` 时还必须直接绑定冻结 YAML。不得另造字符串 URI 或仅凭 `status: approved` 关闭门禁。
86
+ - 将同一 YAML 的版本与摘要、validation record、独立 Review 和 Freeze 写入 API Contract Decision(新建 v2;历史 v1 只读兼容,准备与迁移见 `.template-spec/process/contract-reading.md`)。`gate.engineering-contract-approved` 一次批准同时绑定 Technical Design、Data Architecture Decision、API Contract Decision;API `required` 时还必须直接绑定冻结 YAML。不得另造字符串 URI 或仅凭 `status: approved` 关闭门禁。
87
87
 
88
88
  4. **从冻结 YAML 派生 JSON**
89
89
  - 使用上面的锁定 `redocly bundle` 命令生成 `docs/.scratch/<feature>/api/<feature>.json`,JSON 不纳入人工编辑面。
90
90
  - 对输出 JSON 重新执行解析 / lint(按项目工具链),确认 bundle 未产生组件重名冲突或无法解析的引用。
91
- - 写入 `docs/.scratch/<feature>/api/<feature>-json-export.md`,可从 `docs/api/templates/openapi-json-export-record-template.md` 创建。
91
+ - 写入 `docs/.scratch/<feature>/api/<feature>-json-export.md`,可从 `.template-spec/api/templates/openapi-json-export-record-template.md` 创建。
92
92
  - 记录 YAML SHA-256、JSON SHA-256、OAS 版本、Redocly CLI 版本与 lockfile 引用、完整命令、metafile、`$ref` 例外以及结果。
93
93
 
94
94
  5. **交给下游前端**
@@ -5,11 +5,11 @@ description: 编排 YSS 研发全生命周期;当阶段、产物、门禁或 S
5
5
 
6
6
  # YSS Product Lifecycle
7
7
 
8
- 合同阅读:`scripts/contract view`;见 `docs/process/contract-reading.md`。
8
+ 合同阅读:`scripts/contract view`;见 `.template-spec/process/contract-reading.md`。
9
9
 
10
- 主控识别请求、仓库身份和可信阶段,计算 frontier、派发与验收工作单元;专项 Skill 负责设计、实现和独立审查。
10
+ 主控识别请求、身份及可信阶段,计算 frontier 并派发、验收工作单元;专项 Skill 执行与独立审查。
11
11
 
12
- 文档按 `document_writing` 条件调用 `i-have-adhd`,并传递 `docs/process/document-writing.md` 规范。
12
+ 文档按 `document_writing` 条件调用 `i-have-adhd`,并传递 `.template-spec/process/document-writing.md` 规范。
13
13
 
14
14
  ## 事实源与按需加载
15
15
 
@@ -17,11 +17,11 @@ description: 编排 YSS 研发全生命周期;当阶段、产物、门禁或 S
17
17
 
18
18
  | 事实 | 权威来源 |
19
19
  |---|---|
20
- | 阶段、聚合门禁、内部检查、产物、工作单元、证据和稳定 ID | `docs/process/lifecycle-registry.yaml` |
20
+ | 阶段、聚合门禁、内部检查、产物、工作单元、证据和稳定 ID | `.template-spec/process/lifecycle-registry.yaml` |
21
21
  | 执行模式、流转、readiness、暂停、结果和授权语义 | `references/orchestration-contract.yaml` |
22
- | Skill 身份、capability、依赖和路由 | `docs/agents/yss-skill-registry.yaml` |
23
- | 数字人角色、运行时和会签策略 | `docs/agents/digital-human-roles.yaml` |
24
- | 影响面、裁剪和模板维护强度 | `docs/process/harness-process-tailoring.md`、`docs/process/maintenance-intensity.yaml` |
22
+ | Skill 身份、capability、依赖和路由 | `.template-spec/agents/yss-skill-registry.yaml` |
23
+ | 数字人角色、运行时和会签策略 | `.template-spec/agents/digital-human-roles.yaml` |
24
+ | 影响面、裁剪和模板维护强度 | `.template-spec/process/harness-process-tailoring.md`、`.template-source/process/maintenance-intensity.yaml` |
25
25
 
26
26
  用 `scripts/query-lifecycle-context` 查询合同:
27
27
 
@@ -40,7 +40,7 @@ scripts/query-lifecycle-context --mode route --stage stage.plan --work-unit work
40
40
  3. 按合同 `request_triage` 选择 `route`、`orchestrate`、`resume`、`audit`;明确行动请求无需模式关键字,意图不明时只读 `route`。`modes`、门禁及授权边界仍适用。
41
41
  4. `project-instance` 按生命周期注册表推进;`template-source` 只走模板维护流程。
42
42
 
43
- Plan 入口读取 `docs/plan/README.md` 和 `docs/process/plan-migration.md`,按注册表的退出条件核查战略输入。关键未决项阻断进入 Spec;非关键细节须有责任人、解决时点和下游接收方。只使用 Plan 标识;旧阶段不提供兼容解析,历史批准不自动成为 Plan 批准。
43
+ Plan 入口读取 `.template-spec/plan/README.md` 和 `.template-spec/process/plan-migration.md`,核查战略输入与退出条件。关键未决项阻断 Spec;其他未决项记录责任人、解决时点和接收方。只用 Plan 标识;旧阶段不兼容解析,历史批准不自动沿用。
44
44
 
45
45
  理解、澄清与纠错见 [请求分诊协议](references/request-triage.md);用 `scripts/query-lifecycle-context --include request_triage` 查询合同。先查上下文和证据,只问影响下一动作的缺口,不按问题长度追问。
46
46
 
@@ -83,9 +83,9 @@ Plan 入口读取 `docs/plan/README.md` 和 `docs/process/plan-migration.md`,
83
83
 
84
84
  `机会与目标 → 业务故事 → 责任与交接 → 规则、例子与疑问 → 可验收需求 → 页面验证 → 业务任务 → 交接研发`
85
85
 
86
- 按当前决策澄清目标、流程、责任、规则、最小范围和验收例子。可生成引用权威资产的“业务方案总览”,展示状态、未决项、责任人和下一步;不复制正文或新增门禁。
86
+ 按当前决策澄清目标、流程、责任、规则、范围和验收例子。业务方案总览引用权威资产,展示状态、未决项、责任人和下一步;不复制正文或新增门禁。
87
87
 
88
- Plan → Spec(含正式草稿、恢复与显式 `to-spec`)写入前,按 `docs/plan/entry-review.md` 持久化审阅包并运行 `node scripts/verify-plan-spec-entry <state.yaml>`。检查默认 pending,缺项、过期或无真实回复即阻断;独立调研可继续。
88
+ Plan → Spec(含正式草稿、恢复与显式 `to-spec`)写入前,按 `.template-spec/plan/entry-review.md` 持久化审阅包并运行 `node scripts/verify-plan-spec-entry <state.yaml>`。检查默认 pending,缺项、过期或无真实回复即阻断;独立调研可继续。
89
89
 
90
90
  ## 结果与暂停
91
91
 
@@ -97,4 +97,4 @@ Plan → Spec(含正式草稿、恢复与显式 `to-spec`)写入前,按 `d
97
97
 
98
98
  专项合同加载索引见 `references/orchestration.md`。
99
99
 
100
- Plan / Spec / Design 追踪按 `docs/process/stage-tracking.md`。
100
+ Plan / Spec / Design 追踪按 `.template-spec/process/stage-tracking.md`。
@@ -19,7 +19,7 @@ Matt skills 决定如何工作;YSS 生命周期决定是否允许推进;YSS
19
19
  | 信息在其他人手中 | `to-questionnaire` | 使用 `external-input-required` 暂停;答案回流后记录 response、重新分类影响面,再进入 `grill-with-docs` 或 `to-spec` |
20
20
  | 大型模糊工作 | `wayfinder`(可选) | 仅在跨会话 / 跨 Agent 或 frontier 不清晰时启用;map 真正完成后 `handoff → to-spec` |
21
21
  | 技术或战略事实 | `yss-research`(`research` 为 deprecated alias) | `technical-evidence` 核验一手技术资料;`strategy-evidence` 为领域战略和阶段决策提供可审计证据;研究包不得自行修改或批准下游资产 |
22
- | runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,只能作为阶段 4 输入,不得替代低保真评审、H1/H2 档位路由、schema v3 验证和用户确认 |
22
+ | runnable 问题 | `prototype` | 生成单文件可分享 HTML,保留 `prototype/<name>` 分支作为主来源;必须 source/return handoff 和结论回填,只能作为阶段 4 输入,不得替代低保真评审、H1/H2 档位路由、schema v4 验证和用户确认 |
23
23
  | Spec 综合 | 原生 `work-unit.spec-synthesis`;`to-spec`(用户显式兼容) | 初稿进入 `ready-for-human`,不得直接实现 |
24
24
  | 切片 | 原生 `work-unit.ticket-decomposition`;`to-tickets`(用户显式兼容) | 仅在冻结/无影响记录后拆垂直切片,初始 Ticket 状态为 `ready-for-human` |
25
25
  | 实现 | 原生 `work-unit.slice-implementation`;`implement`(用户显式兼容) | 当前合同批准并持久化后执行;内部使用 `tdd`,结果回交后再次核验 |
@@ -48,7 +48,7 @@ workflow_reference:
48
48
  invocation_mode: reference
49
49
  result: completed # completed / blocked / needs-human / failed
50
50
  evidence_refs:
51
- - docs/process/yss-product-lifecycle-orchestrator-validation.md
51
+ - .template-spec/process/yss-product-lifecycle-orchestrator-validation.md
52
52
  changed_artifacts: []
53
53
  new_impacts: []
54
54
  stale_candidates: []
@@ -74,7 +74,7 @@ blocking_signals: []
74
74
 
75
75
  ## Review 候选与 Git 授权
76
76
 
77
- YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present` 执行。质量标准只从 `engineering-baseline` 引用,禁止在 review input 或切片中另起一份。命中高风险影响时,review input 还要引用 Doubt-Driven 主张 / 反证记录;缺少反证或残余风险未处理时返回 `blocked`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让两个 Reviewer 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空、专项覆盖缺失、未关闭 mandatory `violation`、适用行空白或摘要变化时返回 `blocked`,不能缩小审查范围、另起通用审查 skill、由审查者改实现,或合并不同候选的结论。`violation` 类 finding 交实现者在原合同路径修复后全轴复审;`drift` / `new_impacts` 使合同 `stale` 并回 实现合同编译器。
77
+ YSS 调用 `code-review` 前必须形成 review input,至少包含 `review_mode`、`review_base_ref`、`implementation_candidate_ref`、`candidate_snapshot_ref`、`candidate_digest`、`spec_ref`、`ticket_ref`、`slice_contract_ref`、`build_architecture_checklist_ref` 和 `yss_execution_result_refs`,并满足 `orchestration-contract.yaml.review_input.manifest_required_by_mode`。Standards 还必须编译 `review_standards_route`:合同 `required_skills`、影响面专项检查输入、报告模板与 `finding_disposition`;机器检查按 `run_if_present` 执行。质量标准只从 `engineering-baseline` 引用,禁止在 review input 或切片中另起一份。命中高风险影响时,review input 还要引用 Doubt-Driven 主张 / 反证记录;缺少反证或残余风险未处理时返回 `blocked`。`committed` 审查 merge-base 到不可变 `HEAD`;`worktree` 一次捕获 merge-base 到 working tree 的 committed、staged、unstaged 和 untracked 内容,使用 `yss-worktree-candidate-v1` 规定的 raw path、uint64 big-endian 长度、tracked/untracked record 和不支持条目阻断规则计算 SHA-256,让所有参与审查者(人数按 `orchestration-contract.yaml.gate_consolidation`) 消费同一不可变快照,并在返回和完成 checkpoint 复核摘要未变化。缺少输入、候选为空、专项覆盖缺失、未关闭 mandatory `violation`、适用行空白或摘要变化时返回 `blocked`,不能缩小审查范围、另起通用审查 skill、由审查者改实现,或合并不同候选的结论。`violation` 类 finding 交实现者在原合同路径修复后全轴复审;`drift` / `new_impacts` 使合同 `stale` 并回 实现合同编译器。
78
78
 
79
79
  Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明确给出 `commit_authorized` 为 `true`、非空 `commit_scope` 和 `commit_authorization_ref` 时才能 commit;只有明确给出 `push_authorized` 为 `true`、非空 `push_scope` 和 `push_authorization_ref` 时才能 push。缺少任一字段时保持工作区不变,只输出 checkpoint 判断;不得把 `orchestrate`、实现授权、当前分支、测试通过或负责人要求解释为隐含授权。`git-submodule` 还必须按仓授权、禁止 detached HEAD 提交,并先推子仓再更新父仓 gitlink。
80
80
 
@@ -92,11 +92,11 @@ Matt `implement` 的通用提交指令不构成 YSS Git 授权。只有用户明
92
92
 
93
93
  当 YSS 生命周期处于 active 状态时,Matt `to-spec` 中独立运行时的 `ready-for-agent` 发布提示由本适配层覆盖为 `ready-for-human`:Spec 必须先经过产品总体设计 / 功能架构、必要的设计与契约门禁,之后才由生命周期编排器决定垂直切片 Ticket 的 `ready-for-agent`。这只约束 YSS 编排下的状态写入,不修改 Matt skill 单独运行时的核心行为。
94
94
 
95
- `setup-matt-pocock-skills` 仅由用户显式启动。readiness=`missing` 时返回 `needs-human`、`requested_skill=setup-matt-pocock-skills` 和 `resume_route=setup-readiness`;仅发现旧路径资产仍进入 migration-check 并暂停写入。`ready` 直接继续,`conflict` 进入迁移裁决,`degraded` 保留待发布草案,`not-applicable` 仅验证模板契约。通用 setup 文案与 YSS tracker 合同冲突时,以 `docs/agents/issue-tracker.md` 和本编排契约为准。
95
+ `setup-matt-pocock-skills` 仅由用户显式启动。readiness=`missing` 时返回 `needs-human`、`requested_skill=setup-matt-pocock-skills` 和 `resume_route=setup-readiness`;仅发现旧路径资产仍进入 migration-check 并暂停写入。`ready` 直接继续,`conflict` 进入迁移裁决,`degraded` 保留待发布草案,`not-applicable` 仅验证模板契约。通用 setup 文案与 YSS tracker 合同冲突时,以 `.template-spec/agents/issue-tracker.md` 和本编排契约为准。
96
96
 
97
97
  ### Local Markdown 兼容映射
98
98
 
99
- 当 `docs/agents/issue-tracker.md` 的 `platform` 为 `local-markdown` 时,Matt flow 的本地输出归一化为以下 YSS 载体:
99
+ 当 `.template-spec/agents/issue-tracker.md` 的 `platform` 为 `local-markdown` 时,Matt flow 的本地输出归一化为以下 YSS 载体:
100
100
 
101
101
  | Matt 产物 | Local 载体 |
102
102
  |---|---|
@@ -4,21 +4,21 @@ document_writing:
4
4
  condition: lifecycle-document-output
5
5
  scope: current-document-work-only
6
6
  dispatch: pass-condition-and-reference-to-document-owner
7
- reference: docs/process/document-writing.md
8
- examples: docs/templates/examples/lifecycle-writing-examples.md
7
+ reference: .template-spec/process/document-writing.md
8
+ examples: .template-spec/templates/examples/lifecycle-writing-examples.md
9
9
  load_when: [lifecycle-document-draft, lifecycle-document-revision, progress-or-decision-presentation]
10
10
  dispatch_input: include-reference-for-document-work
11
11
  artifact_ownership: unchanged
12
12
  gate_and_status_semantics: unchanged
13
13
 
14
14
  backend_architecture_identity_policy:
15
- source: docs/agents/yss-skill-registry.yaml
15
+ source: .template-spec/agents/yss-skill-registry.yaml
16
16
  generated_profiles: architecture_profiles
17
17
  existing_profiles: existing_project_profiles
18
18
  existing_evidence: [repository-registration, engineering-baseline, existing-project-observation]
19
19
  evidence_policy: original-ref-digest-and-current-source-verification
20
20
  delivery_preflight: scripts/preflight-delivery
21
- schema: docs/process/schemas/backend-architecture-identity.schema.json
21
+ schema: .template-spec/process/schemas/backend-architecture-identity.schema.json
22
22
  required_surfaces: [engineering-baseline, repository-registration, scaffold-manifest, slice-contract, work-unit, execution-result]
23
23
  agreement: exact-identity-and-digest
24
24
  missing_or_drift: blocked-and-recompile
@@ -89,6 +89,7 @@ request_triage:
89
89
  explicit_audit: audit
90
90
  authorized_continuation: resume
91
91
  clear_action_request: orchestrate
92
+ clear_read_only_investigation_request: orchestrate
92
93
  unresolved_intent: route
93
94
  investigation: read-only-actions-unless-additional-scope-authorized
94
95
  mode_keywords_required: false
@@ -138,9 +139,19 @@ execution_efficiency:
138
139
  template_regression_suite: template-maintenance-or-explicit-regression-task
139
140
  per_work_unit_context_reconciliation: required
140
141
  skip_triggered_gates: forbidden
142
+ recovery:
143
+ state_source: current-checkpoint-stage-tracking-and-readable-task-results
144
+ status_view: read-only-diagnostics-never-execution-authorization
145
+ running_or_unknown_task: inspect-existing-task-identity-before-dispatch
146
+ completed_task: verify-current-evidence-then-recompute-frontier
147
+ action_completed_before_checkpoint: reconcile-actual-artifacts-before-repeating-side-effects
148
+ changed_inputs: invalidate-affected-dependencies-and-revalidate
149
+ missing_legacy_tracking: existing-compatibility-or-explicit-migration
150
+ unknown_external_result: stop-duplicate-side-effect-and-report-missing-evidence
151
+ approval: revalidate-current-decision-or-supported-continuation
141
152
  interaction:
142
153
  questions: batch-independent-current-stage-questions
143
- user_decision_policy_ref: docs/agents/digital-human-roles.yaml#user_decision_policy
154
+ user_decision_policy_ref: .template-spec/agents/digital-human-roles.yaml#user_decision_policy
144
155
  decision_evidence_ref: references/user-decisions.md
145
156
  dependent_future_approvals: forbidden
146
157
  checkpoint_policy_ref: checkpoint_policy
@@ -208,7 +219,7 @@ workflow_execution_result:
208
219
  evidence_ref_validation: readable-or-resolvable
209
220
  completed_requires_no_blocking_signals: true
210
221
  context_reconciliation:
211
- schema_ref: docs/process/schemas/context-reconciliation.schema.json
222
+ schema_ref: .template-spec/process/schemas/context-reconciliation.schema.json
212
223
  validator: scripts/verify-context-reconciliation
213
224
  project-instance: {required_status: reconciled, readable_ref_required: true, transition_without_reconciliation: blocked}
214
225
  template-source: {required_status: not-applicable, reason_required: true}
@@ -233,8 +244,8 @@ workflow_execution_result:
233
244
  task_package:
234
245
  schema_version: 1
235
246
  applies_to: all-formal-digital-human-dispatches
236
- schema_ref: docs/process/schemas/digital-human-task-package.schema.json
237
- compatibility_schema_ref: docs/process/schemas/subagent-task-package.schema.json
247
+ schema_ref: .template-spec/process/schemas/digital-human-task-package.schema.json
248
+ compatibility_schema_ref: .template-spec/process/schemas/subagent-task-package.schema.json
238
249
  validator: scripts/verify-digital-human-task-package
239
250
  compatibility_validator: scripts/verify-subagent-task-package
240
251
  persistence_layout: docs/.scratch/<feature>/task-packages/<task-id>.yaml
@@ -242,7 +253,7 @@ task_package:
242
253
  execution_states: [Explorer, Drafter, Worker, Reviewer, Verifier]
243
254
  workflow_statuses: [not-started, active, paused, resolved, failed]
244
255
  skill_source:
245
- registry_ref: docs/agents/digital-human-roles.yaml
256
+ registry_ref: .template-spec/agents/digital-human-roles.yaml
246
257
  defaults: taskPackageDefaults(role_id)
247
258
  copy_required: [core_skills, forbidden_skills]
248
259
  contract:
@@ -305,7 +316,7 @@ skill_source_contract:
305
316
  lifecycle_native_entries:
306
317
  default_entry: yss-product-lifecycle
307
318
  formal_artifact_owner: yss-product-lifecycle
308
- user_confirmation_policy_ref: docs/agents/digital-human-roles.yaml#user_decision_policy
319
+ user_confirmation_policy_ref: .template-spec/agents/digital-human-roles.yaml#user_decision_policy
309
320
  compatibility_entries:
310
321
  to-spec: lifecycle-validate-and-accept
311
322
  to-tickets: lifecycle-validate-and-accept
@@ -354,7 +365,7 @@ work_unit_routes:
354
365
  human_gate: spec-baseline
355
366
  applies_when: new_feature_or_behavior_change
356
367
  not_applicable_reason: existing_frozen_spec_is_current
357
- work-unit.prototype-design:
368
+ work-unit.prototype-design-v2:
358
369
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
359
370
  primary_skill: yss-prototype-stage
360
371
  supporting_skills: [prototype-review, yss-design-system, product-design:index]
@@ -362,7 +373,7 @@ work_unit_routes:
362
373
  execution_order: [yss-design-system, low-fidelity-assets, prototype-review, prototype-profile-routing, profile-adapter-build, browser-design-qa-accessibility, user-confirmation]
363
374
  profile_routing_ref: .agents/skills/yss-prototype-stage/references/prototype-profile-routing.md
364
375
  prototype_adapter_ref: .agents/skills/yss-prototype-stage/references/product-design-adapter.md
365
- evidence_schema_version: 3
376
+ evidence_schema_version: 4
366
377
  profile_contract:
367
378
  default_when_uncertain: H2
368
379
  highest_matching_profile_wins: true
@@ -388,7 +399,7 @@ work_unit_routes:
388
399
  applies_when: new_backend_repository
389
400
  confirms: [architecture_family, exact_spring_boot_version]
390
401
  architecture_choices: [domain-driven, layered-mvc]
391
- platform_source: docs/engineering/backend-platforms.json
402
+ platform_source: .template-spec/engineering/backend-platforms.json
392
403
  existing_repository: not-applicable-reuse-current-registration
393
404
  missing_or_stale: blocked
394
405
  branches:
@@ -438,6 +449,16 @@ work_unit_routes:
438
449
  result_schema_version: 2
439
450
  backend_design_prerequisites_required: [technical_design, data_architecture_decision, api_contract_decision, engineering_contract_approval_ref]
440
451
  must_complete_before: work-unit.ticket-decomposition
452
+ work-unit.service-project-initialization:
453
+ native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
454
+ primary_skill: yss-layered-mvc-scaffold-generator
455
+ supporting_skills: []
456
+ skills: [yss-layered-mvc-scaffold-generator]
457
+ parent_work_unit: work-unit.implementation-repository-preparation
458
+ return_to: work-unit.implementation-repository-preparation
459
+ applies_when: new_backend_project_with_approved_current_v4_mvc-data-analysis-v1_contract
460
+ completion_evidence: [scaffold-manifest-v4, scaffold-verification, workflow-execution-result, context-handoff-digest]
461
+ not_applicable_reason: existing_project_or_other_architecture_profile
441
462
  work-unit.ticket-decomposition:
442
463
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
443
464
  primary_skill: yss-product-lifecycle
@@ -498,7 +519,7 @@ work_unit_routes:
498
519
  review_standards_route:
499
520
  unique_default_skill: code-review
500
521
  second_generic_review_skill: forbidden
501
- report_template: docs/templates/review-report-template.md
522
+ report_template: .template-spec/templates/review-report-template.md
502
523
  contract_required_skills: required
503
524
  write_implementation: forbidden
504
525
  machine_checks:
@@ -621,21 +642,22 @@ transition_graph:
621
642
  validator: scripts/lib/lifecycle-transition.mjs
622
643
  implementation_requires_predecessor: work-unit.ticket-decomposition
623
644
  routes:
624
- work-unit.ssot-update: [work-unit.skill-projection-sync, work-unit.intensity-aware-verification]
625
- work-unit.skill-projection-sync: [work-unit.template-snapshot-build, work-unit.intensity-aware-verification]
626
- work-unit.template-snapshot-build: [work-unit.attach-sync-integration, work-unit.intensity-aware-verification]
627
- work-unit.attach-sync-integration: [work-unit.intensity-aware-verification]
628
- work-unit.intensity-aware-verification: [work-unit.intensity-aware-review]
629
- work-unit.intensity-aware-review: [work-unit.release-and-rollback]
645
+ work-unit.ssot-update: [work-unit.skill-projection-sync, work-unit.intensity-aware-verification-v2]
646
+ work-unit.skill-projection-sync: [work-unit.template-snapshot-build, work-unit.intensity-aware-verification-v2]
647
+ work-unit.template-snapshot-build: [work-unit.attach-sync-integration, work-unit.intensity-aware-verification-v2]
648
+ work-unit.attach-sync-integration: [work-unit.intensity-aware-verification-v2]
649
+ work-unit.intensity-aware-verification-v2: [work-unit.intensity-aware-review-v2]
650
+ work-unit.intensity-aware-review-v2: [work-unit.release-and-rollback]
630
651
  work-unit.release-and-rollback: []
631
652
  work-unit.plan-opportunity: [work-unit.plan-requirements, work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis]
632
653
  work-unit.plan-requirements: [work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis]
633
654
  work-unit.domain-strategy-design: [work-unit.stage-decision, work-unit.spec-synthesis]
634
655
  work-unit.stage-decision: [work-unit.spec-synthesis]
635
- work-unit.spec-synthesis: [work-unit.prototype-design, work-unit.technical-analysis]
636
- work-unit.prototype-design: [work-unit.technical-analysis]
656
+ work-unit.spec-synthesis: [work-unit.prototype-design-v2, work-unit.technical-analysis]
657
+ work-unit.prototype-design-v2: [work-unit.technical-analysis]
637
658
  work-unit.technical-analysis: [work-unit.implementation-repository-preparation]
638
- work-unit.implementation-repository-preparation: [work-unit.ticket-decomposition]
659
+ work-unit.implementation-repository-preparation: [work-unit.service-project-initialization, work-unit.ticket-decomposition]
660
+ work-unit.service-project-initialization: [work-unit.implementation-repository-preparation]
639
661
  work-unit.ticket-decomposition: [work-unit.slice-implementation]
640
662
  work-unit.slice-implementation: [work-unit.frontend-implementation-verification, work-unit.code-review]
641
663
  work-unit.frontend-implementation-verification: [work-unit.code-review]
@@ -644,23 +666,23 @@ transition_graph:
644
666
  work-unit.release-and-retrospective: []
645
667
  forbidden_shortcuts:
646
668
  - {from: work-unit.spec-synthesis, to: work-unit.implementation-repository-preparation}
647
- - {from: work-unit.prototype-design, to: work-unit.implementation-repository-preparation}
669
+ - {from: work-unit.prototype-design-v2, to: work-unit.implementation-repository-preparation}
648
670
  - {from: work-unit.spec-synthesis, to: work-unit.slice-implementation}
649
- - {from: work-unit.prototype-design, to: work-unit.slice-implementation}
671
+ - {from: work-unit.prototype-design-v2, to: work-unit.slice-implementation}
650
672
  - {from: work-unit.technical-analysis, to: work-unit.slice-implementation}
651
673
  - {from: work-unit.technical-analysis, to: work-unit.ticket-decomposition}
652
674
 
653
675
  planning:
654
676
  entry_validator: scripts/verify-plan-spec-entry
655
- review_contract: docs/plan/entry-review.md
656
- check_policy: docs/process/lifecycle-registry.yaml
677
+ review_contract: .template-spec/plan/entry-review.md
678
+ check_policy: .template-spec/process/lifecycle-registry.yaml
657
679
  default_check_status: pending
658
680
  formal_spec_draft_requires_passed_entry: true
659
681
  stage: stage.plan
660
682
  record: artifact.plan-record
661
- template: docs/plan/templates/plan-template.md
662
- exit_policy: docs/process/lifecycle-registry.yaml
663
- migration_policy: docs/process/plan-migration.md
683
+ template: .template-spec/plan/templates/plan-template.md
684
+ exit_policy: .template-spec/process/lifecycle-registry.yaml
685
+ migration_policy: .template-spec/process/plan-migration.md
664
686
  critical_open_questions: block-before-spec
665
687
  deferred_details_require: [noncritical_reason, owner, resolution_point, downstream_recipient]
666
688
  reuse_requires: [source_ref, current_version, applicable_scope, reason]
@@ -805,7 +827,7 @@ scaffold_architecture_decision:
805
827
  display_name: MVC 开发脚手架
806
828
  recommendation_signals: [crud, reporting-query, data-transformation, external-system-orchestration, thin-domain]
807
829
  platform_choice:
808
- source: docs/engineering/backend-platforms.json
830
+ source: .template-spec/engineering/backend-platforms.json
809
831
  confirms: [platform_profile, spring_boot_version, java_version]
810
832
  version_format: exact-patch
811
833
  latest_or_range: forbidden
@@ -855,7 +877,7 @@ backend_scaffold:
855
877
  contract_schema:
856
878
  schema_version: 4
857
879
  current_schema_version: 4
858
- schema_ref: docs/process/schemas/project-scaffold-contract.schema.json
880
+ schema_ref: .template-spec/process/schemas/project-scaffold-contract.schema.json
859
881
  compatible_backend_versions: [3, 4]
860
882
  frontend_minimum_version: 4
861
883
  identity: service-engineering-baseline
@@ -878,9 +900,9 @@ backend_scaffold:
878
900
  component_version_policy: per-artifact-from-verified-component-capabilities
879
901
  profiles:
880
902
  discriminant: architecture_family
881
- source: docs/engineering/backend-platforms.json
903
+ source: .template-spec/engineering/backend-platforms.json
882
904
  platform_binding: platform_configuration-v2
883
- architecture_profiles_source: docs/agents/yss-skill-registry.yaml
905
+ architecture_profiles_source: .template-spec/agents/yss-skill-registry.yaml
884
906
  unsupported: [old-architecture-profile, arbitrary-module-combination, unverified-platform-or-component-capability]
885
907
  module_profile:
886
908
  required: [requested_capabilities, resolved_modules, resolution_version]
@@ -1048,7 +1070,7 @@ frontend_implementation_plan:
1048
1070
  applies_when: [ui_impact]
1049
1071
  required_before: [ready_for_agent]
1050
1072
  required: [prototype_ref, spec_ref, visual_baseline, route_and_page_inventory, baseline_case_ids, desktop_viewport, narrow_viewport, state_cases, pnpm_commands]
1051
- schema: docs/process/schemas/frontend-implementation-evidence.schema.json
1073
+ schema: .template-spec/process/schemas/frontend-implementation-evidence.schema.json
1052
1074
  validator: scripts/verify-frontend-implementation-evidence
1053
1075
  acceptance: [kind_plan, template_false, status_approved, no_template_placeholders, readable_baseline_refs, approved_visual_baseline_digest_current, selected_case_ids_exist]
1054
1076
 
@@ -1057,7 +1079,7 @@ frontend_implementation_verification:
1057
1079
  required_before: [release]
1058
1080
  required: [prototype_ref, spec_ref, visual_baseline, route_and_page_inventory, case_results, interaction_results, console_warning_check, pnpm_commands, actual_verification, uncovered_differences, difference_owner]
1059
1081
  verification: [actual_command, exit_code, executed_at, evidence_ref]
1060
- schema: docs/process/schemas/frontend-implementation-evidence.schema.json
1082
+ schema: .template-spec/process/schemas/frontend-implementation-evidence.schema.json
1061
1083
  validator: scripts/verify-frontend-implementation-evidence
1062
1084
  acceptance: [kind_verification, template_false, status_approved, no_template_placeholders, visual_baseline_identity_and_digest_match, case_results_pair_every_selected_case, no_unexplained_difference, console_warning_pass, pnpm_exit_codes_zero, independent_review_approved]
1063
1085
  blocked_when: [unexplained_visual_difference, missing_visual_evidence, typecheck_only, claimed_alignment_without_evidence]
@@ -1182,8 +1204,8 @@ behavioral_invariants:
1182
1204
  diagnostics_redact_secrets: true
1183
1205
 
1184
1206
  user_decision_evidence:
1185
- policy_ref: docs/agents/digital-human-roles.yaml#user_decision_policy
1186
- schema_ref: docs/process/schemas/user-decision.schema.json
1207
+ policy_ref: .template-spec/agents/digital-human-roles.yaml#user_decision_policy
1208
+ schema_ref: .template-spec/process/schemas/user-decision.schema.json
1187
1209
  protocol_ref: references/user-decisions.md
1188
1210
  verifier: scripts/verify-user-decision
1189
1211
  workflow_result_fields: [user_decisions, user_decision_not_applicable]
@@ -1195,8 +1217,8 @@ user_decision_evidence:
1195
1217
  basis_changed: revalidate_then_continue_only_with_independent_equivalence_evidence
1196
1218
 
1197
1219
  gate_consolidation:
1198
- source: docs/process/lifecycle-registry.yaml
1199
- check_policy: docs/agents/digital-human-roles.yaml
1220
+ source: .template-spec/process/lifecycle-registry.yaml
1221
+ check_policy: .template-spec/agents/digital-human-roles.yaml
1200
1222
  checks: automatic_or_independent_review_without_separate_user_decision
1201
1223
  check_failure: blocks_aggregate_gate
1202
1224
  plan_decision_boundary: gate.plan-approved
@@ -1220,7 +1242,7 @@ execution_scopes:
1220
1242
  validator: scripts/lib/lifecycle-execution-scope.mjs
1221
1243
  terminal_work_unit: work-unit.backend-delivery
1222
1244
  terminal_record: .yss-backend-delivery.json
1223
- allowed_work_units: [work-unit.entry-triage, work-unit.plan-opportunity, work-unit.plan-requirements, work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis, work-unit.prototype-design, work-unit.technical-analysis, work-unit.implementation-repository-preparation, work-unit.scaffold-generation, work-unit.ticket-decomposition, work-unit.slice-implementation, work-unit.code-review, work-unit.backend-delivery]
1245
+ allowed_work_units: [work-unit.entry-triage, work-unit.plan-opportunity, work-unit.plan-requirements, work-unit.domain-strategy-design, work-unit.stage-decision, work-unit.spec-synthesis, work-unit.prototype-design-v2, work-unit.technical-analysis, work-unit.implementation-repository-preparation, work-unit.service-project-initialization, work-unit.scaffold-generation, work-unit.ticket-decomposition, work-unit.slice-implementation, work-unit.code-review, work-unit.backend-delivery]
1224
1246
  route_overrides:
1225
1247
  work-unit.code-review: [work-unit.slice-implementation, work-unit.backend-delivery]
1226
1248
  work-unit.slice-implementation: [work-unit.code-review]
@@ -1251,8 +1273,8 @@ consumer_entry_routes:
1251
1273
  target_work_unit: work-unit.technical-design
1252
1274
 
1253
1275
  stage_tracking:
1254
- contract: docs/process/stage-tracking.md
1255
- schema: docs/process/schemas/stage-tracking.schema.json
1276
+ contract: .template-spec/process/stage-tracking.md
1277
+ schema: .template-spec/process/schemas/stage-tracking.schema.json
1256
1278
  verifier: scripts/stage-tracking
1257
1279
  configuration: tracker.lifecycle_tracking_version
1258
1280
  machine_state_owner: checkpoint.stage_tracking