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,198 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yss.example/schemas/api-contract-decision-v2.schema.json",
4
+ "title": "YSS API Contract Decision v2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version",
9
+ "kind",
10
+ "decision_id",
11
+ "decision_version",
12
+ "status",
13
+ "impact",
14
+ "assessment_ref",
15
+ "assessment_digest",
16
+ "evidence_refs"
17
+ ],
18
+ "properties": {
19
+ "schema_version": {
20
+ "const": 2
21
+ },
22
+ "kind": {
23
+ "const": "api-contract-decision"
24
+ },
25
+ "decision_id": {
26
+ "type": "string",
27
+ "minLength": 1
28
+ },
29
+ "decision_version": {
30
+ "type": "string",
31
+ "pattern": "^v[1-9][0-9]*$"
32
+ },
33
+ "status": {
34
+ "enum": [
35
+ "draft",
36
+ "approved"
37
+ ]
38
+ },
39
+ "impact": {
40
+ "enum": [
41
+ "required",
42
+ "not-applicable"
43
+ ]
44
+ },
45
+ "assessment_ref": {
46
+ "type": "string",
47
+ "minLength": 1
48
+ },
49
+ "assessment_digest": {
50
+ "type": "string",
51
+ "pattern": "^sha256:[a-f0-9]{64}$"
52
+ },
53
+ "evidence_refs": {
54
+ "type": "array",
55
+ "minItems": 1,
56
+ "items": {
57
+ "type": "string",
58
+ "minLength": 1
59
+ }
60
+ },
61
+ "reason": {
62
+ "type": "string",
63
+ "minLength": 1
64
+ },
65
+ "openapi": {
66
+ "$ref": "#/$defs/versionedArtifact"
67
+ },
68
+ "validation_record": {
69
+ "$ref": "#/$defs/artifact"
70
+ },
71
+ "draft_review": {
72
+ "$ref": "#/$defs/artifact"
73
+ },
74
+ "freeze": {
75
+ "type": "object",
76
+ "additionalProperties": false,
77
+ "required": [
78
+ "version",
79
+ "frozen_at"
80
+ ],
81
+ "properties": {
82
+ "version": {
83
+ "type": "string",
84
+ "pattern": "^v[1-9][0-9]*$"
85
+ },
86
+ "frozen_at": {
87
+ "type": "string",
88
+ "format": "date-time"
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "allOf": [
94
+ {
95
+ "if": {
96
+ "properties": {
97
+ "impact": {
98
+ "const": "required"
99
+ }
100
+ }
101
+ },
102
+ "then": {
103
+ "required": [
104
+ "openapi",
105
+ "validation_record",
106
+ "draft_review",
107
+ "freeze"
108
+ ]
109
+ }
110
+ },
111
+ {
112
+ "if": {
113
+ "properties": {
114
+ "impact": {
115
+ "const": "not-applicable"
116
+ }
117
+ }
118
+ },
119
+ "then": {
120
+ "required": [
121
+ "reason"
122
+ ],
123
+ "not": {
124
+ "anyOf": [
125
+ {
126
+ "required": [
127
+ "openapi"
128
+ ]
129
+ },
130
+ {
131
+ "required": [
132
+ "validation_record"
133
+ ]
134
+ },
135
+ {
136
+ "required": [
137
+ "draft_review"
138
+ ]
139
+ },
140
+ {
141
+ "required": [
142
+ "freeze"
143
+ ]
144
+ }
145
+ ]
146
+ }
147
+ }
148
+ }
149
+ ],
150
+ "$defs": {
151
+ "artifact": {
152
+ "type": "object",
153
+ "additionalProperties": false,
154
+ "required": [
155
+ "ref",
156
+ "digest"
157
+ ],
158
+ "properties": {
159
+ "ref": {
160
+ "type": "string",
161
+ "minLength": 1
162
+ },
163
+ "digest": {
164
+ "type": "string",
165
+ "pattern": "^sha256:[a-f0-9]{64}$"
166
+ }
167
+ }
168
+ },
169
+ "versionedArtifact": {
170
+ "type": "object",
171
+ "additionalProperties": false,
172
+ "required": [
173
+ "id",
174
+ "ref",
175
+ "version",
176
+ "digest"
177
+ ],
178
+ "properties": {
179
+ "id": {
180
+ "type": "string",
181
+ "minLength": 1
182
+ },
183
+ "ref": {
184
+ "type": "string",
185
+ "minLength": 1
186
+ },
187
+ "version": {
188
+ "type": "string",
189
+ "pattern": "^v[1-9][0-9]*$"
190
+ },
191
+ "digest": {
192
+ "type": "string",
193
+ "pattern": "^sha256:[a-f0-9]{64}$"
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
@@ -582,6 +582,10 @@
582
582
  "type": "string",
583
583
  "minLength": 1
584
584
  }
585
+ },
586
+ "checkpoint_ref": {
587
+ "type": "string",
588
+ "minLength": 1
585
589
  }
586
590
  }
587
591
  },
@@ -656,6 +660,10 @@
656
660
  "review_result_ref": {
657
661
  "type": "string",
658
662
  "minLength": 1
663
+ },
664
+ "checkpoint_ref": {
665
+ "type": "string",
666
+ "minLength": 1
659
667
  }
660
668
  },
661
669
  "allOf": [
@@ -255,6 +255,265 @@
255
255
  }
256
256
  },
257
257
  "additionalProperties": false
258
+ },
259
+ "stage_tracking": {
260
+ "type": "object",
261
+ "additionalProperties": false,
262
+ "required": [
263
+ "schema_version",
264
+ "feature_id",
265
+ "checkpoint_ref",
266
+ "entry_stage",
267
+ "entry",
268
+ "items"
269
+ ],
270
+ "properties": {
271
+ "schema_version": {
272
+ "const": 1
273
+ },
274
+ "feature_id": {
275
+ "type": "string",
276
+ "minLength": 1
277
+ },
278
+ "checkpoint_ref": {
279
+ "type": "string",
280
+ "minLength": 1
281
+ },
282
+ "entry_stage": {
283
+ "type": "string",
284
+ "minLength": 1
285
+ },
286
+ "entry": {
287
+ "type": "object",
288
+ "additionalProperties": false,
289
+ "required": [
290
+ "kind",
291
+ "ref"
292
+ ],
293
+ "properties": {
294
+ "kind": {
295
+ "enum": [
296
+ "parent-ticket",
297
+ "checkpoint"
298
+ ]
299
+ },
300
+ "ref": {
301
+ "type": "string",
302
+ "minLength": 1
303
+ }
304
+ }
305
+ },
306
+ "items": {
307
+ "type": "array",
308
+ "items": {
309
+ "type": "object",
310
+ "additionalProperties": false,
311
+ "required": [
312
+ "id",
313
+ "kind",
314
+ "title",
315
+ "stage",
316
+ "work_unit",
317
+ "owner",
318
+ "scope",
319
+ "acceptance",
320
+ "dependencies",
321
+ "source_refs",
322
+ "progress",
323
+ "split_reasons",
324
+ "completion"
325
+ ],
326
+ "properties": {
327
+ "id": {
328
+ "type": "string",
329
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
330
+ },
331
+ "kind": {
332
+ "const": "stage-work-item"
333
+ },
334
+ "title": {
335
+ "type": "string",
336
+ "minLength": 1
337
+ },
338
+ "stage": {
339
+ "type": "string",
340
+ "minLength": 1
341
+ },
342
+ "work_unit": {
343
+ "type": "string",
344
+ "minLength": 1
345
+ },
346
+ "owner": {
347
+ "type": "string",
348
+ "minLength": 1
349
+ },
350
+ "scope": {
351
+ "type": "string",
352
+ "minLength": 1
353
+ },
354
+ "acceptance": {
355
+ "type": "array",
356
+ "items": {
357
+ "type": "string",
358
+ "minLength": 1
359
+ },
360
+ "minItems": 1,
361
+ "uniqueItems": true
362
+ },
363
+ "dependencies": {
364
+ "type": "array",
365
+ "items": {
366
+ "type": "string",
367
+ "minLength": 1
368
+ },
369
+ "uniqueItems": true
370
+ },
371
+ "source_refs": {
372
+ "type": "array",
373
+ "items": {
374
+ "type": "object",
375
+ "additionalProperties": false,
376
+ "required": [
377
+ "ref",
378
+ "digest"
379
+ ],
380
+ "properties": {
381
+ "ref": {
382
+ "type": "string",
383
+ "minLength": 1
384
+ },
385
+ "digest": {
386
+ "type": "string",
387
+ "pattern": "^sha256:[0-9a-f]{64}$"
388
+ }
389
+ }
390
+ }
391
+ },
392
+ "progress": {
393
+ "enum": [
394
+ "pending",
395
+ "running",
396
+ "blocked",
397
+ "completed",
398
+ "cancelled"
399
+ ]
400
+ },
401
+ "split_reasons": {
402
+ "type": "array",
403
+ "items": {
404
+ "enum": [
405
+ "different-owner",
406
+ "independent-acceptance",
407
+ "blocks-other-work",
408
+ "cross-stage-deferral"
409
+ ]
410
+ },
411
+ "uniqueItems": true
412
+ },
413
+ "completion": {
414
+ "type": "array",
415
+ "items": {
416
+ "type": "object",
417
+ "additionalProperties": false,
418
+ "required": [
419
+ "criterion",
420
+ "evidence_refs"
421
+ ],
422
+ "properties": {
423
+ "criterion": {
424
+ "type": "string",
425
+ "minLength": 1
426
+ },
427
+ "evidence_refs": {
428
+ "type": "array",
429
+ "items": {
430
+ "type": "object",
431
+ "additionalProperties": false,
432
+ "required": [
433
+ "ref",
434
+ "digest"
435
+ ],
436
+ "properties": {
437
+ "ref": {
438
+ "type": "string",
439
+ "minLength": 1
440
+ },
441
+ "digest": {
442
+ "type": "string",
443
+ "pattern": "^sha256:[0-9a-f]{64}$"
444
+ }
445
+ }
446
+ },
447
+ "minItems": 1
448
+ }
449
+ }
450
+ }
451
+ },
452
+ "definition_ref": {
453
+ "type": "string",
454
+ "minLength": 1
455
+ },
456
+ "definition_digest": {
457
+ "type": "string",
458
+ "pattern": "^sha256:[0-9a-f]{64}$"
459
+ },
460
+ "recheck_required": {
461
+ "type": "boolean"
462
+ },
463
+ "cancellation_reason": {
464
+ "type": "string",
465
+ "minLength": 1
466
+ },
467
+ "deferred": {
468
+ "type": "object",
469
+ "additionalProperties": false,
470
+ "required": [
471
+ "owner",
472
+ "resolve_by",
473
+ "receiver",
474
+ "verification_plan",
475
+ "decision_ref",
476
+ "risk",
477
+ "follow_up_ref"
478
+ ],
479
+ "properties": {
480
+ "owner": {
481
+ "type": "string",
482
+ "minLength": 1
483
+ },
484
+ "resolve_by": {
485
+ "type": "string",
486
+ "format": "date-time"
487
+ },
488
+ "receiver": {
489
+ "type": "string",
490
+ "minLength": 1
491
+ },
492
+ "verification_plan": {
493
+ "type": "string",
494
+ "minLength": 1
495
+ },
496
+ "decision_ref": {
497
+ "type": "string",
498
+ "minLength": 1
499
+ },
500
+ "risk": {
501
+ "type": "string",
502
+ "minLength": 1
503
+ },
504
+ "follow_up_ref": {
505
+ "type": "string",
506
+ "minLength": 1
507
+ }
508
+ }
509
+ }
510
+ }
511
+ }
512
+ }
513
+ },
514
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
515
+ "$id": "https://yss.dev/schemas/stage-tracking.schema.json",
516
+ "title": "阶段工作追踪 v1"
258
517
  }
259
518
  }
260
519
  }