create-yss-spec 3.4.9 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/src/api/_sync-service.js +111 -18
  4. package/src/cli/args.js +1 -0
  5. package/src/cli/help.js +10 -1
  6. package/src/cli/index.js +3 -0
  7. package/src/cli/prompts.js +5 -1
  8. package/src/cli/router.js +2 -0
  9. package/src/commands/attach.js +12 -2
  10. package/src/commands/init.js +2 -0
  11. package/src/commands/skills.js +253 -0
  12. package/src/commands/sync.js +3 -0
  13. package/src/family-identity.js +1 -1
  14. package/src/template/asset-runtime.js +220 -0
  15. package/src/template/attach-planner.js +5 -0
  16. package/src/template/distribution-runtime.js +165 -0
  17. package/src/template/instance-runtime.js +76 -29
  18. package/src/template/ownership-policy.js +17 -1
  19. package/src/template/prune-planner.js +6 -1
  20. package/src/template/sync-planner.js +8 -0
  21. package/src/template/verification-runtime.js +56 -1
  22. package/src/validation/metadata.js +24 -1
  23. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  24. package/template/.agents/skills/yss-cache/SKILL.md +6 -5
  25. package/template/.agents/skills/yss-cache/references/annotations.md +3 -1
  26. package/template/.agents/skills/yss-cache/references/architecture.md +4 -2
  27. package/template/.agents/skills/yss-cache/references/configuration.md +6 -3
  28. package/template/.agents/skills/yss-cache/references/jetcache.md +21 -0
  29. package/template/.agents/skills/yss-cache/references/redis-fallback.md +5 -3
  30. package/template/.agents/skills/yss-cache/references/verification.md +10 -4
  31. package/template/.agents/skills/yss-cache/scripts/verify-cache-component.sh +26 -20
  32. package/template/.agents/skills/yss-distributed-id/SKILL.md +14 -58
  33. package/template/.agents/skills/yss-distributed-id/agents/openai.yaml +2 -2
  34. package/template/.agents/skills/yss-distributed-id/references/README.md +11 -47
  35. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  36. package/template/.agents/skills/yss-mybatis/SKILL.md +14 -2
  37. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -0
  38. package/template/.agents/skills/yss-openapi-governance/SKILL.md +4 -0
  39. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -5
  40. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +68 -5
  41. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  42. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +8 -8
  43. package/template/.agents/skills/yss-prototype-stage/SKILL.md +4 -2
  44. package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  45. package/template/.agents/skills/yss-repository/SKILL.md +1 -0
  46. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -0
  47. package/template/.agents/skills/yss-tactical-design/SKILL.md +2 -0
  48. package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
  49. package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  50. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  51. package/template/.codex/skills/yss-cache/SKILL.md +6 -5
  52. package/template/.codex/skills/yss-cache/references/annotations.md +3 -1
  53. package/template/.codex/skills/yss-cache/references/architecture.md +4 -2
  54. package/template/.codex/skills/yss-cache/references/configuration.md +6 -3
  55. package/template/.codex/skills/yss-cache/references/jetcache.md +21 -0
  56. package/template/.codex/skills/yss-cache/references/redis-fallback.md +5 -3
  57. package/template/.codex/skills/yss-cache/references/verification.md +10 -4
  58. package/template/.codex/skills/yss-cache/scripts/verify-cache-component.sh +26 -20
  59. package/template/.codex/skills/yss-distributed-id/SKILL.md +14 -58
  60. package/template/.codex/skills/yss-distributed-id/agents/openai.yaml +2 -2
  61. package/template/.codex/skills/yss-distributed-id/references/README.md +11 -47
  62. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  63. package/template/.codex/skills/yss-mybatis/SKILL.md +14 -2
  64. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -0
  65. package/template/.codex/skills/yss-openapi-governance/SKILL.md +4 -0
  66. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -5
  67. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +68 -5
  68. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  69. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +8 -8
  70. package/template/.codex/skills/yss-prototype-stage/SKILL.md +4 -2
  71. package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  72. package/template/.codex/skills/yss-repository/SKILL.md +1 -0
  73. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -0
  74. package/template/.codex/skills/yss-tactical-design/SKILL.md +2 -0
  75. package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
  76. package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  77. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  78. package/template/.cursor/skills/yss-cache/SKILL.md +6 -5
  79. package/template/.cursor/skills/yss-cache/references/annotations.md +3 -1
  80. package/template/.cursor/skills/yss-cache/references/architecture.md +4 -2
  81. package/template/.cursor/skills/yss-cache/references/configuration.md +6 -3
  82. package/template/.cursor/skills/yss-cache/references/jetcache.md +21 -0
  83. package/template/.cursor/skills/yss-cache/references/redis-fallback.md +5 -3
  84. package/template/.cursor/skills/yss-cache/references/verification.md +10 -4
  85. package/template/.cursor/skills/yss-cache/scripts/verify-cache-component.sh +26 -20
  86. package/template/.cursor/skills/yss-distributed-id/SKILL.md +14 -58
  87. package/template/.cursor/skills/yss-distributed-id/agents/openai.yaml +2 -2
  88. package/template/.cursor/skills/yss-distributed-id/references/README.md +11 -47
  89. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  90. package/template/.cursor/skills/yss-mybatis/SKILL.md +14 -2
  91. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -0
  92. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +4 -0
  93. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +11 -5
  94. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +68 -5
  95. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  96. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +8 -8
  97. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +4 -2
  98. package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  99. package/template/.cursor/skills/yss-repository/SKILL.md +1 -0
  100. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -0
  101. package/template/.cursor/skills/yss-tactical-design/SKILL.md +2 -0
  102. package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
  103. package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  104. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  105. package/template/.pi/skills/yss-cache/SKILL.md +6 -5
  106. package/template/.pi/skills/yss-cache/references/annotations.md +3 -1
  107. package/template/.pi/skills/yss-cache/references/architecture.md +4 -2
  108. package/template/.pi/skills/yss-cache/references/configuration.md +6 -3
  109. package/template/.pi/skills/yss-cache/references/jetcache.md +21 -0
  110. package/template/.pi/skills/yss-cache/references/redis-fallback.md +5 -3
  111. package/template/.pi/skills/yss-cache/references/verification.md +10 -4
  112. package/template/.pi/skills/yss-cache/scripts/verify-cache-component.sh +26 -20
  113. package/template/.pi/skills/yss-distributed-id/SKILL.md +14 -58
  114. package/template/.pi/skills/yss-distributed-id/agents/openai.yaml +2 -2
  115. package/template/.pi/skills/yss-distributed-id/references/README.md +11 -47
  116. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -0
  117. package/template/.pi/skills/yss-mybatis/SKILL.md +14 -2
  118. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -0
  119. package/template/.pi/skills/yss-openapi-governance/SKILL.md +4 -0
  120. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -5
  121. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +68 -5
  122. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  123. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +8 -8
  124. package/template/.pi/skills/yss-prototype-stage/SKILL.md +4 -2
  125. package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +2 -2
  126. package/template/.pi/skills/yss-repository/SKILL.md +1 -0
  127. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -0
  128. package/template/.pi/skills/yss-tactical-design/SKILL.md +2 -0
  129. package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
  130. package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +1 -1
  131. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +11 -8
  132. package/template/AGENTS.md +2 -0
  133. package/template/CONTEXT.md +2 -1
  134. package/template/README.md +3 -5
  135. package/template/docs/agents/issue-tracker.md +7 -0
  136. package/template/docs/agents/skill-migrations.md +4 -0
  137. package/template/docs/agents/yss-skill-registry.yaml +7 -6
  138. package/template/docs/design/README.md +0 -1
  139. package/template/docs/design/design.md +2 -2
  140. package/template/docs/design/templates/interaction-spec-template.md +1 -1
  141. package/template/docs/engineering/evidence/aliyun-artifact-resolution.json +446 -0
  142. package/template/docs/process/contract-reading.md +46 -0
  143. package/template/docs/process/lifecycle-artifact-map.md +2 -2
  144. package/template/docs/process/lifecycle-registry-baseline.json +2 -1
  145. package/template/docs/process/lifecycle-registry.yaml +10 -4
  146. package/template/docs/process/schemas/api-contract-decision-v2.schema.json +198 -0
  147. package/template/docs/process/schemas/digital-human-task-package.schema.json +8 -0
  148. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +259 -0
  149. package/template/docs/process/schemas/stage-tracking.schema.json +259 -0
  150. package/template/docs/process/stage-tracking.md +62 -0
  151. package/template/docs/process/strategic-handoff-package.md +8 -0
  152. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +2 -0
  153. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +1 -0
  154. package/template/docs/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 +243 -0
  155. package/template/scripts/api-contract-decision +16 -0
  156. package/template/scripts/complete-backend-delivery +17 -0
  157. package/template/scripts/contract +13 -0
  158. package/template/scripts/design-md +2 -0
  159. package/template/scripts/dispatch-slice-task +13 -0
  160. package/template/scripts/lib/api-contract-decision.mjs +45 -4
  161. package/template/scripts/lib/approval-record.mjs +1 -1
  162. package/template/scripts/lib/approved-execution-context.mjs +35 -7
  163. package/template/scripts/lib/backend-architecture.mjs +2 -2
  164. package/template/scripts/lib/backend-delivery-terminal.mjs +51 -0
  165. package/template/scripts/lib/backend-platform-provenance.mjs +1 -1
  166. package/template/scripts/lib/backend-platform.mjs +1 -1
  167. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +1 -1
  168. package/template/scripts/lib/context-contract.mjs +1 -1
  169. package/template/scripts/lib/context-reconciliation.mjs +1 -1
  170. package/template/scripts/lib/contract-source.mjs +22 -0
  171. package/template/scripts/lib/contract-views.mjs +109 -0
  172. package/template/scripts/lib/delivery-preflight.mjs +3 -2
  173. package/template/scripts/lib/design-md.mjs +230 -0
  174. package/template/scripts/lib/digital-human-roles.mjs +1 -1
  175. package/template/scripts/lib/existing-backend-architecture.mjs +4 -3
  176. package/template/scripts/lib/existing-ui-baseline.mjs +4 -2
  177. package/template/scripts/lib/frontend-delivery-boundary.mjs +1 -1
  178. package/template/scripts/lib/frontend-delivery.mjs +1 -1
  179. package/template/scripts/lib/harness-execution-scope.mjs +15 -1
  180. package/template/scripts/lib/implementation-contract-compiler.mjs +4 -4
  181. package/template/scripts/lib/json-schema.mjs +19 -4
  182. package/template/scripts/lib/lifecycle-context-query.mjs +5 -1
  183. package/template/scripts/lib/lifecycle-controls.mjs +1 -1
  184. package/template/scripts/lib/lifecycle-execution-scope.mjs +92 -0
  185. package/template/scripts/lib/lifecycle-registry.mjs +2 -1
  186. package/template/scripts/lib/lifecycle-transition.mjs +21 -3
  187. package/template/scripts/lib/openapi-draft-validation.mjs +2 -1
  188. package/template/scripts/lib/skill-registry.mjs +10 -3
  189. package/template/scripts/lib/skill-supply-chain.mjs +33 -14
  190. package/template/scripts/lib/slice-contract-preparation.mjs +16 -14
  191. package/template/scripts/lib/slice-contract-views.mjs +1 -1
  192. package/template/scripts/lib/slice-contract.mjs +18 -3
  193. package/template/scripts/lib/slice-execution-preflight.mjs +7 -3
  194. package/template/scripts/lib/slice-repositories.mjs +1 -1
  195. package/template/scripts/lib/slice-task-package.mjs +3 -2
  196. package/template/scripts/lib/stage-tracking-migration.mjs +176 -0
  197. package/template/scripts/lib/stage-tracking.mjs +184 -0
  198. package/template/scripts/lib/strategic-handoff-consumption.mjs +5 -4
  199. package/template/scripts/lib/strategic-handoff-io.mjs +5 -2
  200. package/template/scripts/lib/strategic-handoff-routing.mjs +31 -0
  201. package/template/scripts/lib/strategic-handoff.mjs +4 -2
  202. package/template/scripts/lib/task-package.mjs +2 -0
  203. package/template/scripts/lib/technical-design-boundary.mjs +4 -2
  204. package/template/scripts/lib/ui-baseline.mjs +1 -1
  205. package/template/scripts/lib/user-decision.mjs +1 -1
  206. package/template/scripts/lib/validation-phase.mjs +72 -0
  207. package/template/scripts/stage-tracking +25 -0
  208. package/template/scripts/strategic-consumer-entry +47 -0
  209. package/template/scripts/verify-context-reconciliation +4 -3
  210. package/template/scripts/verify-lifecycle-checkpoint +10 -0
  211. package/template/scripts/verify-project-instance +11 -10
  212. package/template/skills-lock.json +17 -32
  213. package/template.manifest.json +18 -3
  214. package/template.snapshot.json +5 -5
  215. package/template/.agents/skills/grill-me/SKILL.md +0 -7
  216. package/template/.agents/skills/grill-me/agents/openai.yaml +0 -5
  217. package/template/.agents/skills/yss-distributed-id/assets/AutoIdInterceptor.java +0 -246
  218. package/template/.agents/skills/yss-distributed-id/assets/EnableDistributedId.java +0 -25
  219. package/template/.agents/skills/yss-distributed-id/assets/LeafConf.java +0 -36
  220. package/template/.codex/skills/grill-me/SKILL.md +0 -7
  221. package/template/.codex/skills/grill-me/agents/openai.yaml +0 -5
  222. package/template/.codex/skills/yss-distributed-id/assets/AutoIdInterceptor.java +0 -246
  223. package/template/.codex/skills/yss-distributed-id/assets/EnableDistributedId.java +0 -25
  224. package/template/.codex/skills/yss-distributed-id/assets/LeafConf.java +0 -36
  225. package/template/.cursor/skills/grill-me/SKILL.md +0 -7
  226. package/template/.cursor/skills/grill-me/agents/openai.yaml +0 -5
  227. package/template/.cursor/skills/yss-distributed-id/assets/AutoIdInterceptor.java +0 -246
  228. package/template/.cursor/skills/yss-distributed-id/assets/EnableDistributedId.java +0 -25
  229. package/template/.cursor/skills/yss-distributed-id/assets/LeafConf.java +0 -36
  230. package/template/.pi/skills/grill-me/SKILL.md +0 -7
  231. package/template/.pi/skills/grill-me/agents/openai.yaml +0 -5
  232. package/template/.pi/skills/yss-distributed-id/assets/AutoIdInterceptor.java +0 -246
  233. package/template/.pi/skills/yss-distributed-id/assets/EnableDistributedId.java +0 -25
  234. package/template/.pi/skills/yss-distributed-id/assets/LeafConf.java +0 -36
  235. package/template/docs/agents/yss-plugin-dependency-contract.md +0 -45
  236. package/template/docs/api/.gitkeep +0 -0
  237. package/template/docs/api/specs/.gitkeep +0 -0
  238. package/template/docs/architecture/.gitkeep +0 -0
  239. package/template/docs/design/facts/antdv-next/1.5.2/cli-help.txt +0 -38
  240. package/template/docs/design/facts/antdv-next/1.5.2/component-list.json +0 -434
  241. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/demo-basic.json +0 -7
  242. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/info.json +0 -246
  243. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/semantic.json +0 -40
  244. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/token.json +0 -32
  245. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/demo-basic.json +0 -7
  246. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/info.json +0 -190
  247. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/semantic.json +0 -20
  248. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/token.json +0 -256
  249. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/demo-basic.json +0 -7
  250. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/info.json +0 -460
  251. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/semantic.json +0 -70
  252. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/token.json +0 -123
  253. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/demo-basic.json +0 -7
  254. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/info.json +0 -646
  255. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/semantic.json +0 -50
  256. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/token.json +0 -130
  257. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/demo-basic.json +0 -7
  258. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/info.json +0 -640
  259. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/semantic.json +0 -70
  260. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/token.json +0 -172
  261. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/demo-basic.json +0 -7
  262. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/info.json +0 -1010
  263. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/semantic.json +0 -70
  264. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/token.json +0 -263
  265. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/demo-basic.json +0 -7
  266. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/info.json +0 -321
  267. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/semantic.json +0 -25
  268. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/token.json +0 -25
  269. package/template/docs/design/facts/antdv-next/1.5.2/design-md.json +0 -3
  270. package/template/docs/design/facts/antdv-next/1.5.2/manifest.json +0 -215
  271. package/template/docs/design/facts/antdv-next/1.5.2/resolution-probe.json +0 -5
  272. package/template/docs/design/prototypes/.gitkeep +0 -1
  273. package/template/docs/implementation/.gitkeep +0 -1
  274. package/template/docs/plan/IDEATION.md +0 -96
  275. package/template/docs/process/PDCA-SCRUM.md +0 -10
  276. package/template/docs/process/harness-executive-blueprint.md +0 -10
  277. package/template/docs/releases/.gitkeep +0 -1
  278. package/template/docs/requirements/README.md +0 -85
  279. package/template/docs/requirements/tickets/.gitkeep +0 -1
  280. package/template/docs/templates/agent-brief-template.md +0 -46
  281. package/template/docs/templates/architecture-proposal-template.md +0 -18
  282. package/template/docs/templates/implementation-plan-template.md +0 -16
  283. package/template/docs/templates/implementation-routing-template.md +0 -350
  284. package/template/docs/templates/requirement-freeze-template.md +0 -63
  285. package/template/docs/templates/risk-register-template.md +0 -11
  286. package/template/docs/templates/user-story-template.md +0 -20
  287. package/template/docs/testing/README.md +0 -110
@@ -0,0 +1,446 @@
1
+ {
2
+ "schema_version": 1,
3
+ "kind": "backend-component-artifact-resolution",
4
+ "report_id": "aliyun-maven-artifact-resolution-2026-09-18",
5
+ "generated_at": "2026-09-18T22:46:00+08:00",
6
+ "status": "resolved-with-blockers",
7
+ "settings_ref": "~/.m2/settings.xml",
8
+ "settings_usage": "configuration-evidence-only",
9
+ "credentials_recorded": false,
10
+ "repository": {
11
+ "id": "2306938-snapshot-Yloqmt",
12
+ "url": "https://packages.aliyun.com/6381d2a25db8487f76c8149c/maven/2306938-snapshot-yloqmt"
13
+ },
14
+ "resolution_command": "./mvnw -N -U -s ~/.m2/settings.xml org.apache.maven.plugins:maven-dependency-plugin:3.6.1:get -Dartifact=<GAV> -Dtransitive=false",
15
+ "source_root": "isolated-worktree",
16
+ "source_commit": "a3be2b2e33dca4545782e2b31894aaa00d0305cd",
17
+ "artifacts": [
18
+ {
19
+ "capability_id": "contract.dto-wire",
20
+ "group_id": "com.yss.cloud",
21
+ "artifact_id": "yss-component-dto",
22
+ "declared_version": "2.0.0-SNAPSHOT",
23
+ "repository_id": "2306938-snapshot-Yloqmt",
24
+ "metadata_sha256": "feff02992897c622c6403cfa9546c4a61d17e9d00de8f539d79065b956bf240e",
25
+ "resolved_version": "2.0.0-20260916.162843-1",
26
+ "jar_sha256": "65d05ae596242fb683f29938d0d5f0247a445ff4a24cb03618f14622b41fa5a3",
27
+ "pom_sha256": "5653ee0785cc005efa9dfb626a00bc43a26c411f78a87da3c2efaa2fbac7c181",
28
+ "sources_sha256": "65d4b5d09ca77b6fca3c009ead2f7f170bcaf1f4b26f5708eaf7d49c26522366",
29
+ "module_path": "yss-microservice-components/yss-component-dto",
30
+ "source_tree": "3add70b98d26f6534a4ebf7d9b09d74790ea60a5",
31
+ "sources_published_by_repository": true,
32
+ "sources_match_source_tree": true,
33
+ "source_mismatch": {
34
+ "missing": [],
35
+ "extra": [],
36
+ "changed": []
37
+ },
38
+ "pom_matches_source_tree": true,
39
+ "build_jdk_spec": "1.8",
40
+ "namespace_signals": {
41
+ "javax": false,
42
+ "jakarta": false
43
+ },
44
+ "auto_configuration": {
45
+ "spring_factories": false,
46
+ "auto_configuration_imports": false
47
+ },
48
+ "component_subtree_clean": true,
49
+ "worktree_change_count": 0,
50
+ "blockers": []
51
+ },
52
+ {
53
+ "capability_id": "contract.request-validation",
54
+ "group_id": "com.yss.cloud",
55
+ "artifact_id": "yss-component-validation-jsr303",
56
+ "declared_version": "2.0.0-SNAPSHOT",
57
+ "repository_id": "2306938-snapshot-Yloqmt",
58
+ "metadata_sha256": "90ca51bd3b376e21e0043c48cae842d231479045d20518c708a87ada770c451c",
59
+ "resolved_version": "2.0.0-20260916.163229-1",
60
+ "jar_sha256": "5a3a73e3ddd24cceb23ddd27680107952ac3cb030bd36ef1db243dacb0bedcc1",
61
+ "pom_sha256": "f0aef77e7b1f9e853cc7527b3977d29410cf7f953c3f19691ff6d788791b2a48",
62
+ "sources_sha256": "d1b538b9c6387a1da5158ef8f469017c1a4bc6f1c2f259374e47527ae7442d56",
63
+ "module_path": "yss-microservice-components/yss-component-validation-jsr303",
64
+ "source_tree": "fe5b36afb474afa41541fe1187a6828bdae080dc",
65
+ "sources_published_by_repository": true,
66
+ "sources_match_source_tree": true,
67
+ "source_mismatch": {
68
+ "missing": [],
69
+ "extra": [],
70
+ "changed": []
71
+ },
72
+ "pom_matches_source_tree": true,
73
+ "build_jdk_spec": "1.8",
74
+ "namespace_signals": {
75
+ "javax": true,
76
+ "jakarta": false
77
+ },
78
+ "auto_configuration": {
79
+ "spring_factories": false,
80
+ "auto_configuration_imports": false
81
+ },
82
+ "component_subtree_clean": true,
83
+ "worktree_change_count": 0,
84
+ "blockers": []
85
+ },
86
+ {
87
+ "capability_id": "contract.error-mapping",
88
+ "group_id": "com.yss.cloud",
89
+ "artifact_id": "yss-component-exception",
90
+ "declared_version": "2.0.0-SNAPSHOT",
91
+ "repository_id": "2306938-snapshot-Yloqmt",
92
+ "metadata_sha256": "f8ae4611bfdc80ee23b89ff626712c0586a95495f4aa0c7c89dc9a4f76c5d2c4",
93
+ "resolved_version": "2.0.0-20260916.162932-1",
94
+ "jar_sha256": "520363b8ced9df0c6a664a6abb5eec6439818ccae0d92de77184d229e64b6732",
95
+ "pom_sha256": "d51a60e37a97a686c295bb1d5001b376e939698eac256eb6b8cd4eee55ae68b3",
96
+ "sources_sha256": "ae75fb5bf395fcdd166db011dd597388f7461f252a473c0b39f169632608a090",
97
+ "module_path": "yss-microservice-components/yss-component-exception",
98
+ "source_tree": "e5d71e213f26cd7e52d419ded1c2f5e7b7fbf40b",
99
+ "sources_published_by_repository": true,
100
+ "sources_match_source_tree": true,
101
+ "source_mismatch": {
102
+ "missing": [],
103
+ "extra": [],
104
+ "changed": []
105
+ },
106
+ "pom_matches_source_tree": true,
107
+ "build_jdk_spec": "1.8",
108
+ "namespace_signals": {
109
+ "javax": true,
110
+ "jakarta": false
111
+ },
112
+ "auto_configuration": {
113
+ "spring_factories": true,
114
+ "auto_configuration_imports": false
115
+ },
116
+ "component_subtree_clean": false,
117
+ "worktree_change_count": 5,
118
+ "blockers": [
119
+ "candidate-not-published: isolated hardening worktree differs from the resolved artifact"
120
+ ]
121
+ },
122
+ {
123
+ "capability_id": "framework.mybatis",
124
+ "group_id": "com.yss.cloud",
125
+ "artifact_id": "yss-component-mybatis-plus-starter",
126
+ "declared_version": "2.0.0-SNAPSHOT",
127
+ "repository_id": "2306938-snapshot-Yloqmt",
128
+ "metadata_sha256": "6c5be1e763f10f97d4c7ddbdbd911ef9154d06dccc1ac60dab0c08ada71cbc61",
129
+ "resolved_version": "2.0.0-20260916.162918-1",
130
+ "jar_sha256": "bdb2a477bef0825e2bc668c242f83e75b72f6ee5d9f34b3edfdb887481ff2a05",
131
+ "pom_sha256": "51e036bc15fcf79e38c5656d056731c78385750adf700bcf885d7a0954bb9ff9",
132
+ "sources_sha256": "be55556c98042e2c1abbe089c235c7e364b55990dc32d0f54ac328a0eb717939",
133
+ "module_path": "yss-microservice-components/yss-component-persistence/yss-component-mybatis-plus-starter",
134
+ "source_tree": "03e29e6d74cf0b2bc8e4b879f7252766fb607356",
135
+ "sources_published_by_repository": true,
136
+ "sources_match_source_tree": true,
137
+ "source_mismatch": {
138
+ "missing": [],
139
+ "extra": [],
140
+ "changed": []
141
+ },
142
+ "pom_matches_source_tree": true,
143
+ "build_jdk_spec": "1.8",
144
+ "namespace_signals": {
145
+ "javax": true,
146
+ "jakarta": false
147
+ },
148
+ "auto_configuration": {
149
+ "spring_factories": true,
150
+ "auto_configuration_imports": false
151
+ },
152
+ "component_subtree_clean": true,
153
+ "worktree_change_count": 0,
154
+ "blockers": []
155
+ },
156
+ {
157
+ "capability_id": "component.cache",
158
+ "group_id": "com.yss.cloud",
159
+ "artifact_id": "yss-component-cache-starter",
160
+ "declared_version": "3.0.0-SNAPSHOT",
161
+ "repository_id": "2306938-snapshot-Yloqmt",
162
+ "metadata_sha256": "8d8130760288af01085e3fbc8ecdf3e66e0b892d56654faa9edbf6c46bb5ee4c",
163
+ "resolved_version": "3.0.0-20260916.163035-1",
164
+ "jar_sha256": "1631b4e5bc64d0d59727f3988366962c4bbc9fc368581f359e89aed757fe10c2",
165
+ "pom_sha256": "55b57d85d2b21fe4ec3ca2536631b4a0c850a06a891e9104f620e9b8160b8bda",
166
+ "sources_sha256": null,
167
+ "module_path": "yss-microservice-components/yss-component-cache-parent/yss-component-cache-starter",
168
+ "source_tree": "da5acccf1450fe48014ffff36d2ad212119a33a2",
169
+ "sources_published_by_repository": false,
170
+ "sources_match_source_tree": null,
171
+ "pom_matches_source_tree": true,
172
+ "build_jdk_spec": "1.8",
173
+ "namespace_signals": {
174
+ "javax": false,
175
+ "jakarta": false
176
+ },
177
+ "auto_configuration": {
178
+ "spring_factories": false,
179
+ "auto_configuration_imports": false
180
+ },
181
+ "component_subtree_clean": true,
182
+ "worktree_change_count": 0,
183
+ "blockers": [
184
+ "source-binding-missing: repository metadata does not publish a sources JAR",
185
+ "component-platform-generation-mismatch: published 3.x artifact was built with JDK 8 and belongs to the Boot 2 generation"
186
+ ]
187
+ },
188
+ {
189
+ "capability_id": "component.current-user-context",
190
+ "group_id": "com.yss.cloud",
191
+ "artifact_id": "yss-component-userinfo-starter",
192
+ "declared_version": "2.0.0-SNAPSHOT",
193
+ "repository_id": "2306938-snapshot-Yloqmt",
194
+ "metadata_sha256": "6562cde961b7f588200bf7ccc000eeb499863a94d2d7818e882e1a66b10c8491",
195
+ "resolved_version": "2.0.0-20260916.163623-1",
196
+ "jar_sha256": "cf85f2c6528c06adb296dd9c050b954fa33e6316fb22cdb2c57db5a59acf10c9",
197
+ "pom_sha256": "a56c3ed0e65f96ab81f8ebca378b70ad684b0c78e7a83e661aa5cef8912dbe0c",
198
+ "sources_sha256": "8941410b7a545e6ab8c9135a29dc7fb79d5408867ec1e941ca5af84ac992639c",
199
+ "module_path": "yss-microservice-components/yss-component-userinfo-starter",
200
+ "source_tree": "fc77d57e0be6ee81b10247c0746baed6a09c6bb4",
201
+ "sources_published_by_repository": true,
202
+ "sources_match_source_tree": true,
203
+ "source_mismatch": {
204
+ "missing": [],
205
+ "extra": [],
206
+ "changed": []
207
+ },
208
+ "pom_matches_source_tree": true,
209
+ "build_jdk_spec": "1.8",
210
+ "namespace_signals": {
211
+ "javax": true,
212
+ "jakarta": false
213
+ },
214
+ "auto_configuration": {
215
+ "spring_factories": false,
216
+ "auto_configuration_imports": false
217
+ },
218
+ "component_subtree_clean": false,
219
+ "worktree_change_count": 5,
220
+ "blockers": [
221
+ "candidate-not-published: isolated hardening worktree differs from the resolved artifact"
222
+ ]
223
+ },
224
+ {
225
+ "capability_id": "component.audit-log",
226
+ "group_id": "com.yss.cloud",
227
+ "artifact_id": "yss-component-audit-log",
228
+ "declared_version": "2.0.0-SNAPSHOT",
229
+ "repository_id": "2306938-snapshot-Yloqmt",
230
+ "metadata_sha256": "ba24c144ae630df1f0c0bc4dae467decebe03e3f21d483ab22b8d2a4a7aef803",
231
+ "resolved_version": "2.0.0-20260916.163223-1",
232
+ "jar_sha256": "01dd17d7fdf10bf1eef04957d59cf74f3b3abf2fbcf9bba6a1719055a537fb44",
233
+ "pom_sha256": "1eb2d2d1495ddc539e033c55a8cf4981427c9d054936a8dc09e794d81e5ddc9b",
234
+ "sources_sha256": "3483a0f158875f83beac1a46e098d75513d36d45ee77bff76033cffe28be5f84",
235
+ "module_path": "yss-microservice-components/yss-component-audit-log",
236
+ "source_tree": "d00f2e156714e43e8ec70b28e0bd33967d130485",
237
+ "sources_published_by_repository": true,
238
+ "sources_match_source_tree": true,
239
+ "source_mismatch": {
240
+ "missing": [],
241
+ "extra": [],
242
+ "changed": []
243
+ },
244
+ "pom_matches_source_tree": true,
245
+ "build_jdk_spec": "1.8",
246
+ "namespace_signals": {
247
+ "javax": true,
248
+ "jakarta": false
249
+ },
250
+ "auto_configuration": {
251
+ "spring_factories": false,
252
+ "auto_configuration_imports": false
253
+ },
254
+ "component_subtree_clean": true,
255
+ "worktree_change_count": 0,
256
+ "blockers": []
257
+ },
258
+ {
259
+ "capability_id": "component.excel-import-export",
260
+ "group_id": "com.yss.cloud",
261
+ "artifact_id": "yss-component-excel-starter",
262
+ "declared_version": "2.0.0-SNAPSHOT",
263
+ "repository_id": "2306938-snapshot-Yloqmt",
264
+ "metadata_sha256": "4e91090c8c13ceb3d775909b60b3e1ea236b812d3afd8ed39754ef6a61a3c2c9",
265
+ "resolved_version": "2.0.0-20260916.163244-1",
266
+ "jar_sha256": "1d5523b7b134c1bf63094ab274fa8d79fbea7c4e752cf434ef4b43a25ed86ce3",
267
+ "pom_sha256": "f106de25eef3c6b4a83dd5a5558cfc2e906b5a210b917638f26289be4019f466",
268
+ "sources_sha256": "a7077ca1c680800fec6d0c95e3a6563066d993f4495e0d8e91d2619a5b736b05",
269
+ "module_path": "yss-microservice-components/yss-component-excel-starter",
270
+ "source_tree": "82345616c26950981497f254c45bf0b2bc2077a8",
271
+ "sources_published_by_repository": true,
272
+ "sources_match_source_tree": true,
273
+ "source_mismatch": {
274
+ "missing": [],
275
+ "extra": [],
276
+ "changed": []
277
+ },
278
+ "pom_matches_source_tree": true,
279
+ "build_jdk_spec": "1.8",
280
+ "namespace_signals": {
281
+ "javax": true,
282
+ "jakarta": false
283
+ },
284
+ "auto_configuration": {
285
+ "spring_factories": true,
286
+ "auto_configuration_imports": false
287
+ },
288
+ "component_subtree_clean": true,
289
+ "worktree_change_count": 0,
290
+ "blockers": []
291
+ },
292
+ {
293
+ "capability_id": "component.excel-import-export",
294
+ "group_id": "com.yss.cloud",
295
+ "artifact_id": "yss-component-excel-mvc",
296
+ "declared_version": "2.0.0-SNAPSHOT",
297
+ "repository_id": "2306938-snapshot-Yloqmt",
298
+ "metadata_sha256": "ba3d5f3e05b048203c0ab7fe8716d4814c30c511bbba88857315a428d71a8586",
299
+ "resolved_version": "2.0.0-20260916.163630-1",
300
+ "jar_sha256": "986f4c5441749bd6f4d076893460b17c3015f74d2296969c89441da7d74e3bf7",
301
+ "pom_sha256": "fa6e8fb94edfc492e1b6da0814be266328c0f526347564797c3eaed8c8ca6a10",
302
+ "sources_sha256": "7a25a9578dba56e4d0a052271ce619c6f48a4bb49d5486eb92f30f7cc49201a5",
303
+ "module_path": "yss-microservice-components/yss-component-excel-mvc",
304
+ "source_tree": "acc02f7747905f715708dfe029c3f66a8457e3a5",
305
+ "sources_published_by_repository": true,
306
+ "sources_match_source_tree": true,
307
+ "source_mismatch": {
308
+ "missing": [],
309
+ "extra": [],
310
+ "changed": []
311
+ },
312
+ "pom_matches_source_tree": true,
313
+ "build_jdk_spec": "1.8",
314
+ "namespace_signals": {
315
+ "javax": true,
316
+ "jakarta": false
317
+ },
318
+ "auto_configuration": {
319
+ "spring_factories": false,
320
+ "auto_configuration_imports": false
321
+ },
322
+ "component_subtree_clean": true,
323
+ "worktree_change_count": 0,
324
+ "blockers": []
325
+ },
326
+ {
327
+ "capability_id": "component.distributed-id",
328
+ "group_id": "com.yss.cloud",
329
+ "artifact_id": "yss-component-distributed-id",
330
+ "declared_version": "3.0.0-SNAPSHOT",
331
+ "repository_id": "2306938-snapshot-Yloqmt",
332
+ "metadata_sha256": "ebc6e7431776dbb3d990fa6d1a297a51b4b145c56924aaa92ee672a56833430d",
333
+ "resolved_version": "3.0.0-20260916.163140-1",
334
+ "jar_sha256": "b22f0751d4fd6e465621e1743bae3452a66f8a648dc3e0aa2e74f8a0b75e71a8",
335
+ "pom_sha256": "0f43860eb182da2c82c6668c75436bff44e392279033bb5b24694a4e4ab63fb6",
336
+ "sources_sha256": "66dd0e67581264ce2b487e8bc739444937b276747dfab113219b6e42ed81b9a7",
337
+ "module_path": "yss-microservice-components/yss-component-distributed-id",
338
+ "source_tree": "ac54e61f980cfea3e0a574b0559b5fc6a6ccb9f6",
339
+ "sources_published_by_repository": true,
340
+ "sources_match_source_tree": true,
341
+ "source_mismatch": {
342
+ "missing": [],
343
+ "extra": [],
344
+ "changed": []
345
+ },
346
+ "pom_matches_source_tree": true,
347
+ "build_jdk_spec": "1.8",
348
+ "namespace_signals": {
349
+ "javax": true,
350
+ "jakarta": false
351
+ },
352
+ "auto_configuration": {
353
+ "spring_factories": true,
354
+ "auto_configuration_imports": false
355
+ },
356
+ "component_subtree_clean": true,
357
+ "worktree_change_count": 0,
358
+ "blockers": [
359
+ "component-platform-generation-mismatch: published 3.x artifact was built with JDK 8 and belongs to the Boot 2 generation"
360
+ ]
361
+ },
362
+ {
363
+ "capability_id": "component.security-algorithm",
364
+ "group_id": "com.yss.cloud",
365
+ "artifact_id": "yss-component-security-algorithm",
366
+ "declared_version": "2.0.0-SNAPSHOT",
367
+ "repository_id": "2306938-snapshot-Yloqmt",
368
+ "metadata_sha256": "56936651f0a9455db800111a017f7f27fb40aa1445f963d4eef6bc5ba1762bb9",
369
+ "resolved_version": "2.0.0-20260916.163215-1",
370
+ "jar_sha256": "e0a10bb655c24bb10397e8c75579bcb2b38469a48efc363a101d526f486f7f2d",
371
+ "pom_sha256": "e839c11d06abd1c324cc9e6c56339cbd65b7aad6e3fe80ea882372671e6a5a8a",
372
+ "sources_sha256": "a8016b719d65a8a12c9800f1462290cc0ca2f92300be67b8ca9357fb5ee0a10e",
373
+ "module_path": "yss-microservice-components/yss-component-security-algorithm",
374
+ "source_tree": "a28f507af00845909eef3ad6bdf8b716660f5b9d",
375
+ "sources_published_by_repository": true,
376
+ "sources_match_source_tree": true,
377
+ "source_mismatch": {
378
+ "missing": [],
379
+ "extra": [],
380
+ "changed": []
381
+ },
382
+ "pom_matches_source_tree": true,
383
+ "build_jdk_spec": "1.8",
384
+ "namespace_signals": {
385
+ "javax": true,
386
+ "jakarta": false
387
+ },
388
+ "auto_configuration": {
389
+ "spring_factories": true,
390
+ "auto_configuration_imports": false
391
+ },
392
+ "component_subtree_clean": false,
393
+ "worktree_change_count": 5,
394
+ "blockers": [
395
+ "candidate-not-published: isolated hardening worktree differs from the resolved artifact"
396
+ ]
397
+ },
398
+ {
399
+ "capability_id": "component.gateway-resilience",
400
+ "group_id": "com.yss.cloud",
401
+ "artifact_id": "yss-component-resilience4j-starter",
402
+ "declared_version": "2.0.0-SNAPSHOT",
403
+ "repository_id": "2306938-snapshot-Yloqmt",
404
+ "metadata_sha256": "a0d242173e1a6b54b2a701e46f5ced0492edc5d9e6648c7acbc022a7cafc56dd",
405
+ "resolved_version": "2.0.0-20260916.163208-1",
406
+ "jar_sha256": "69b92bb710267f5fe5d73cb144462157aaaa250c05685beeae62ee8aa623c58c",
407
+ "pom_sha256": "a4410689d02120d34e1b08cdbf46c513bec07aca0b3b9b8cdba9cf9149b68a59",
408
+ "sources_sha256": "66094d40ff02de7f44c717e898b1d417cd46f4ee8237e9e532c1a694eda723c0",
409
+ "module_path": "yss-microservice-components/yss-component-resilience4j-starter",
410
+ "source_tree": "10cdf49599161c77137cac47d047b23998aad75b",
411
+ "sources_published_by_repository": true,
412
+ "sources_match_source_tree": true,
413
+ "source_mismatch": {
414
+ "missing": [],
415
+ "extra": [],
416
+ "changed": []
417
+ },
418
+ "pom_matches_source_tree": true,
419
+ "build_jdk_spec": "1.8",
420
+ "namespace_signals": {
421
+ "javax": false,
422
+ "jakarta": false
423
+ },
424
+ "auto_configuration": {
425
+ "spring_factories": false,
426
+ "auto_configuration_imports": false
427
+ },
428
+ "component_subtree_clean": false,
429
+ "worktree_change_count": 11,
430
+ "blockers": [
431
+ "candidate-not-published: isolated hardening worktree differs from the resolved artifact"
432
+ ]
433
+ }
434
+ ],
435
+ "summary": {
436
+ "requested": 12,
437
+ "resolved": 12,
438
+ "source_bound": 11,
439
+ "candidate_subtree_clean": 8
440
+ },
441
+ "global_blockers": [
442
+ "architecture-evidence-missing: domain-driven and layered-mvc consuming-application reports are not recorded",
443
+ "candidate-publication-missing: hardening changes for Exception, UserInfo, Security and Resilience4j are not present in the resolved artifacts",
444
+ "settings-warning: distributionManagement under an active settings profile is ignored by Maven and must live in the publishing POM"
445
+ ]
446
+ }
@@ -0,0 +1,46 @@
1
+ # 合同阅读、准备与显式迁移
2
+
3
+ 本文件描述工具入口;阶段、批准和执行门禁仍由 `docs/process/lifecycle-registry.yaml` 及资产所有者定义。YAML 是权威文件,视图不能编辑、批准合同或授予执行权限。
4
+
5
+ ```sh
6
+ scripts/contract view <资产> --kind <类型> [--profile review|task|full] [--unit <ID>] [--json]
7
+ scripts/contract diff <旧资产> <新资产> --kind <类型> [--json]
8
+ ```
9
+
10
+ 默认 `review` 展示目标、非目标、验收、取舍、风险及未决事项,隐藏机器摘要明细,不附带折叠完整 JSON。`task` 保留适用工作单元、执行目录、写边界、Skill、验证、证据和未分类约束;Slice 必须明确 `--unit`。`full` 读取完整权威内容与绑定。三种视图均显示权威身份、版本、完整 SHA-256 和检查范围。批准有效性未核验;执行仍使用原预检和派发入口。来源未提供风险或取舍时明确标记缺口,不推断为无风险。
11
+
12
+ | 类型 | 资产组 | 阅读后的权威处理入口 |
13
+ |---|---|---|
14
+ | `plan`、`spec` | Plan、Spec 范围、用户决定 | 生命周期和用户决定校验 |
15
+ | `product-design`、`prototype-confirmation`、`visual-baseline` | 产品设计、确认、视觉基线 | 产品设计所有者校验 |
16
+ | `technical-design` | 技术设计 | 技术设计校验与生命周期批准 |
17
+ | `api-decision`、`data-decision` | API / 数据决定 | 对应决定校验、工程契约批准 |
18
+ | `scaffold`、`scaffold-decision` | 脚手架合同、架构选择 | 脚手架所有者及原始用户决定 |
19
+ | `slice` | Slice 与工作单元 | `scripts/slice-contract inspect`、原批准与派发 |
20
+ | `handoff`、`backend-delivery`、`frontend-acceptance` | 战略交接、后端交付、前端接收 | 对应包 / 交付 / 接收验证器 |
21
+ | `approval`、`user-decision`、`context-reconciliation` | 会签、原始回复、Context 对账 | 原批准 / 用户决定 / Context 校验 |
22
+
23
+ 通用适配器保留未知字段,只做可读取、适用 schema 和可识别来源绑定核对;不支持结构核验的类型会明确标记。专用资产所有者的业务校验并未被通用视图替代。Markdown 正文完整保留。API v2 审查结果从绑定的实际记录展示。摘要字段变化、数组顺序和纯字节变化均在 diff 中保留,不据此自动认定批准可沿用。
24
+
25
+ ## 准备机器字段
26
+
27
+ Slice 继续使用 `scripts/slice-contract prepare`。来源的原始字节摘要、版本、别名、Skill 闭包和验证映射由现有准备器生成。共用的 `scripts/lib/contract-source.mjs` 只读取明确选择的来源;冲突报告保留 supplied / observed 和恢复动作,不根据目录猜测授权。其他资产继续使用各自的生成器,不新增项目人员要维护的表单。
28
+
29
+ API 决定的新结构使用独立 v2 schema,v1 schema 和读取兼容保留:
30
+
31
+ ```sh
32
+ scripts/api-contract-decision prepare <来源选择.yaml> --output <新草案.yaml>
33
+ scripts/api-contract-decision migrate <已批准v1.yaml> --version v2 --output <新候选.yaml>
34
+ ```
35
+
36
+ 准备输入包括决定 ID / 版本、影响、评估引用、证据和业务原因;有 API 影响时再给 `openapi.id/ref/version`、`validation_record.ref`、`draft_review.ref` 和 `freeze.version/frozen_at`。摘要自动生成;来源明确但缺失时报告缺口。准备器不能产生批准状态。新路径以排他方式写入;已存在路径不能覆盖。
37
+
38
+ v2 的 `openapi` 是唯一 Draft 绑定,`draft_review` 只存 `ref/digest`,Freeze 只保存版本和时间;实际结果、阻断项与 Draft 来源从真实审查记录读取。v1/v2 在消费时归一,外部永远绑定原文件 SHA-256。迁移先验证完整 v1,旧审查额外证据合并到顶层,旧文件与旧批准保持原字节。新候选按既有差异及授权延续协议处理,不继承批准。
39
+
40
+ ## 验证阶段与回退
41
+
42
+ 预检、准备、派发各自建立私有验证阶段。阶段绑定根目录、用途、切片、工作单元、只读状态;只在本次操作内共享输入和纯校验结果。原始输入不可变,返回给调用者的是独立副本。相同 schema、输入和格式选项复用;外部 `$ref` 未追踪的校验不享受结果复用。Python 引擎、同步 API 和技术设计 Node 边界保留。
43
+
44
+ 成功返回前复核所有登记原字节、目录枚举及不存在项。技术设计子进程自行验证批准,再返回依赖清单;父进程合并读取集合,读取矛盾、遗漏报告或异常均阻断。此清单不是批准上下文。品牌上下文不能序列化、跨仓或从只读升级;在阶段中生成的上下文结束后失效。调用者可传入 `AbortSignal`,已收到的撤回事件须中止当前操作;下一次边界始终重新读取当前批准和回复。未接入读取追踪的消费者保留原检查,不共享结果。
45
+
46
+ P1 可回用原 `slice-contract` 阅读入口;P2 可回退阶段调用与本次改动的读取适配,恢复完整重复检查;P3 可停止创建 v2,但已生成 v2 的读取能力必须保留。回退后重新验证当前来源和批准,不恢复历史通过状态。
@@ -14,7 +14,7 @@
14
14
  | `stage.spec-architecture` | Spec / 功能架构 | 固化解决方案和功能边界。 | Spec 基线和功能边界可审查。 |
15
15
  | `stage.product-design` | 产品设计 | 在存在产品设计影响时校准页面流和状态。 | 命中的设计门禁通过;未命中项记录 not-applicable 及原因。 |
16
16
  | `stage.system-data-engineering` | 系统 / 数据架构与工程契约 | 固化系统、数据、工程基线和 API 契约。 | 新建后端已由用户确认 DDD / MVC 与精确 Spring Boot 版本,既有工程已核验并复用登记值;受影响工程契约冻结或记录无 API 影响;required 脚手架证据齐全。 |
17
- | `stage.ticket-formalization` | Ticket 正式化 | 将冻结范围拆为可追踪的父 Ticket 和垂直切片。 | 工作单元窄、依赖清晰、验收和测试 seam 可执行。 |
17
+ | `stage.ticket-formalization` | Ticket 正式化 | 在既有功能追踪入口下,将冻结范围正式化为垂直切片。 | 工作单元窄、依赖清晰、验收和测试 seam 可执行。 |
18
18
  | `stage.vertical-slice-implementation` | 垂直切片实现 | 以批准合同驱动 TDD 实现和跨仓库协作。 | 允许写路径、禁止模式、证据和验证命令全部满足。 |
19
19
  | `stage.verification-release-retrospective` | 验证 / 发布 / 复盘 | 完成 fresh verification、发布和回顾。 | 所有命中门禁通过,人工审查点已完成,checkpoint 可追溯。 |
20
20
 
@@ -82,7 +82,7 @@
82
82
  | `artifact.implementation-repository-preparation-result` | 实现仓库准备结果 | `stage.system-data-engineering` | 后端或前端交付面进入 Ticket 正式化。 |
83
83
  | `artifact.tactical-design` | DDD 战术设计 | `stage.system-data-engineering` | 聚合边界、状态机、一致性或持久化映射复杂到无法在系统概要设计的 Tactical DDD Check 中清楚表达。 |
84
84
  | `artifact.spec-delta` | Spec Delta | `stage.spec-architecture` | 已有冻结 Spec 的高风险行为变化。 |
85
- | `artifact.parent-ticket` | 功能父 Ticket | `stage.ticket-formalization` | 每个进入追踪的功能。 |
85
+ | `artifact.parent-ticket` | 功能父 Ticket | `stage.plan` | 每个功能首次进入 Plan 或最近可信接入阶段时建立,正式化时复用;Design profile 不创建工程父 Ticket。 |
86
86
  | `artifact.vertical-slice-ticket` | 垂直切片 Ticket | `stage.ticket-formalization` | 进入实现前。 |
87
87
  | `artifact.slice-implementation-contract` | Slice Implementation Contract | `stage.ticket-formalization` | Agent 进入实现。 |
88
88
  | `artifact.frontend-implementation-plan` | 前端实现还原计划 | `stage.ticket-formalization` | UI 影响切片提升 ready-for-agent 前。 |
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": 1,
3
3
  "registry_id": "yss.lifecycle",
4
- "semantic_sha256": "38afc53efe827596c036133c826acd818c8dab85fab0f430d62a60cf62005196",
4
+ "semantic_sha256": "09490c2a354d5452d52522cc36e04cec044faf62cb3c80c90bf95cd07963f0fb",
5
5
  "published_ids": [
6
6
  "artifact.architecture-review",
7
7
  "artifact.data-architecture",
@@ -104,6 +104,7 @@
104
104
  "stage.verification-release-retrospective",
105
105
  "stage.vertical-slice-implementation",
106
106
  "work-unit.attach-sync-integration",
107
+ "work-unit.backend-delivery",
107
108
  "work-unit.code-review",
108
109
  "work-unit.discovery-opportunity",
109
110
  "work-unit.discovery-requirements",
@@ -62,7 +62,7 @@ stages:
62
62
  exit_criteria: 新建后端已由用户确认 DDD / MVC 与精确 Spring Boot 版本,既有工程已核验并复用登记值;受影响工程契约冻结或记录无 API 影响;required 脚手架证据齐全。
63
63
  - id: stage.ticket-formalization
64
64
  name: Ticket 正式化
65
- goal: 将冻结范围拆为可追踪的父 Ticket 和垂直切片。
65
+ goal: 在既有功能追踪入口下,将冻结范围正式化为垂直切片。
66
66
  exit_criteria: 工作单元窄、依赖清晰、验收和测试 seam 可执行。
67
67
  - id: stage.vertical-slice-implementation
68
68
  name: 垂直切片实现
@@ -309,8 +309,8 @@ artifacts:
309
309
  trigger: 已有冻结 Spec 的高风险行为变化。
310
310
  - id: artifact.parent-ticket
311
311
  name: 功能父 Ticket
312
- stage: stage.ticket-formalization
313
- trigger: 每个进入追踪的功能。
312
+ stage: stage.plan
313
+ trigger: 每个功能首次进入 Plan 或最近可信接入阶段时建立,正式化时复用;Design profile 不创建工程父 Ticket。
314
314
  - id: artifact.vertical-slice-ticket
315
315
  name: 垂直切片 Ticket
316
316
  stage: stage.ticket-formalization
@@ -445,7 +445,7 @@ work_units:
445
445
  name: 垂直切片 Ticket 正式化
446
446
  scope: project-instance
447
447
  input: 冻结 Spec、设计、契约和阻塞关系。
448
- output: 功能父 Ticket、垂直切片和批准的 Slice Implementation Contract。
448
+ output: 更新既有功能父 Ticket 的关联、形成垂直切片和批准的 Slice Implementation Contract。
449
449
  completion: 切片可独立验证;生命周期复算后才能 ready-for-agent。
450
450
  - id: work-unit.slice-implementation
451
451
  name: 垂直切片实现
@@ -465,6 +465,12 @@ work_units:
465
465
  input: 不可变候选快照、Spec、Ticket、合同和执行结果。
466
466
  output: Standards、Spec、UI fidelity 三轴 Review 与 fresh verification。
467
467
  completion: findings 已处理;修复后重新捕获候选并全量复审。
468
+ - id: work-unit.backend-delivery
469
+ name: 后端职责交付终点
470
+ scope: project-instance
471
+ input: plan-to-backend 职责范围、当前 Slice 批准与独立代码审查、Backend Delivery 源文件及正式导出包。
472
+ output: 绑定当前源、独立审查和正式包的后端终点记录及下游前端待办。
473
+ completion: 完整复验源文件与正式包;仅后端可交付,不能宣布全业务完成或自动发布。
468
474
  - id: work-unit.release-and-retrospective
469
475
  name: 发布与复盘
470
476
  scope: project-instance