create-yss-spec 2.1.3 → 2.1.5

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 (296) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/code-review/SKILL.md +38 -10
  4. package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  5. package/template/.agents/skills/product-design-prototype/SKILL.md +6 -2
  6. package/template/.agents/skills/prototype-review/SKILL.md +6 -2
  7. package/template/.agents/skills/wireframe-prototype/SKILL.md +5 -1
  8. package/template/.agents/skills/yss-api-integration/SKILL.md +25 -7
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  10. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  11. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  12. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  13. package/template/.agents/skills/yss-design-system/SKILL.md +6 -5
  14. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  15. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +13 -17
  16. package/template/.agents/skills/yss-openapi-governance/SKILL.md +89 -114
  17. package/template/.agents/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  18. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +13 -7
  19. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  20. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  21. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  22. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  23. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +8 -0
  24. package/template/.agents/skills/yss-prototype-stage/SKILL.md +40 -0
  25. package/template/.agents/skills/yss-router/SKILL.md +2 -2
  26. package/template/.agents/skills/yss-router/references/router-contract.yaml +9 -8
  27. package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +4 -1
  28. package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  29. package/template/.claude/skills/code-review/SKILL.md +38 -10
  30. package/template/.claude/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  31. package/template/.claude/skills/product-design-prototype/SKILL.md +6 -2
  32. package/template/.claude/skills/prototype-review/SKILL.md +6 -2
  33. package/template/.claude/skills/wireframe-prototype/SKILL.md +5 -1
  34. package/template/.claude/skills/yss-api-integration/SKILL.md +25 -7
  35. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  36. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  37. package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  38. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  39. package/template/.claude/skills/yss-design-system/SKILL.md +6 -5
  40. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  41. package/template/.claude/skills/yss-openapi-draft-review/SKILL.md +13 -17
  42. package/template/.claude/skills/yss-openapi-governance/SKILL.md +89 -114
  43. package/template/.claude/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  44. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +13 -7
  45. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  46. package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  47. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  48. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  49. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +8 -0
  50. package/template/.claude/skills/yss-prototype-stage/SKILL.md +40 -0
  51. package/template/.claude/skills/yss-router/SKILL.md +2 -2
  52. package/template/.claude/skills/yss-router/references/router-contract.yaml +9 -8
  53. package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +4 -1
  54. package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  55. package/template/.codex/skills/code-review/SKILL.md +38 -10
  56. package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  57. package/template/.codex/skills/product-design-prototype/SKILL.md +6 -2
  58. package/template/.codex/skills/prototype-review/SKILL.md +6 -2
  59. package/template/.codex/skills/wireframe-prototype/SKILL.md +5 -1
  60. package/template/.codex/skills/yss-api-integration/SKILL.md +25 -7
  61. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  62. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  63. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  64. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  65. package/template/.codex/skills/yss-design-system/SKILL.md +6 -5
  66. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  67. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +13 -17
  68. package/template/.codex/skills/yss-openapi-governance/SKILL.md +89 -114
  69. package/template/.codex/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  70. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +13 -7
  71. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  72. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  73. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  74. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  75. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +8 -0
  76. package/template/.codex/skills/yss-prototype-stage/SKILL.md +40 -0
  77. package/template/.codex/skills/yss-router/SKILL.md +2 -2
  78. package/template/.codex/skills/yss-router/references/router-contract.yaml +9 -8
  79. package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +4 -1
  80. package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  81. package/template/.hermes/skills/code-review/SKILL.md +38 -10
  82. package/template/.hermes/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  83. package/template/.hermes/skills/product-design-prototype/SKILL.md +6 -2
  84. package/template/.hermes/skills/prototype-review/SKILL.md +6 -2
  85. package/template/.hermes/skills/wireframe-prototype/SKILL.md +5 -1
  86. package/template/.hermes/skills/yss-api-integration/SKILL.md +25 -7
  87. package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  88. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  89. package/template/.hermes/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  90. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  91. package/template/.hermes/skills/yss-design-system/SKILL.md +6 -5
  92. package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  93. package/template/.hermes/skills/yss-openapi-draft-review/SKILL.md +13 -17
  94. package/template/.hermes/skills/yss-openapi-governance/SKILL.md +89 -114
  95. package/template/.hermes/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  96. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +13 -7
  97. package/template/.hermes/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  98. package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  99. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  100. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  101. package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +8 -0
  102. package/template/.hermes/skills/yss-prototype-stage/SKILL.md +40 -0
  103. package/template/.hermes/skills/yss-router/SKILL.md +2 -2
  104. package/template/.hermes/skills/yss-router/references/router-contract.yaml +9 -8
  105. package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +4 -1
  106. package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  107. package/template/.pi/skills/code-review/SKILL.md +38 -10
  108. package/template/.pi/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  109. package/template/.pi/skills/product-design-prototype/SKILL.md +6 -2
  110. package/template/.pi/skills/prototype-review/SKILL.md +6 -2
  111. package/template/.pi/skills/wireframe-prototype/SKILL.md +5 -1
  112. package/template/.pi/skills/yss-api-integration/SKILL.md +25 -7
  113. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  114. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  115. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  116. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  117. package/template/.pi/skills/yss-design-system/SKILL.md +6 -5
  118. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  119. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +13 -17
  120. package/template/.pi/skills/yss-openapi-governance/SKILL.md +89 -114
  121. package/template/.pi/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  122. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +13 -7
  123. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  124. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  125. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  126. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  127. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +8 -0
  128. package/template/.pi/skills/yss-prototype-stage/SKILL.md +40 -0
  129. package/template/.pi/skills/yss-router/SKILL.md +2 -2
  130. package/template/.pi/skills/yss-router/references/router-contract.yaml +9 -8
  131. package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +4 -1
  132. package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  133. package/template/.qoder/skills/code-review/SKILL.md +38 -10
  134. package/template/.qoder/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  135. package/template/.qoder/skills/product-design-prototype/SKILL.md +6 -2
  136. package/template/.qoder/skills/prototype-review/SKILL.md +6 -2
  137. package/template/.qoder/skills/wireframe-prototype/SKILL.md +5 -1
  138. package/template/.qoder/skills/yss-api-integration/SKILL.md +25 -7
  139. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  140. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  141. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  142. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  143. package/template/.qoder/skills/yss-design-system/SKILL.md +6 -5
  144. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  145. package/template/.qoder/skills/yss-openapi-draft-review/SKILL.md +13 -17
  146. package/template/.qoder/skills/yss-openapi-governance/SKILL.md +89 -114
  147. package/template/.qoder/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  148. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +13 -7
  149. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  150. package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  151. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  152. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  153. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +8 -0
  154. package/template/.qoder/skills/yss-prototype-stage/SKILL.md +40 -0
  155. package/template/.qoder/skills/yss-router/SKILL.md +2 -2
  156. package/template/.qoder/skills/yss-router/references/router-contract.yaml +9 -8
  157. package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +4 -1
  158. package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  159. package/template/.trae/skills/code-review/SKILL.md +38 -10
  160. package/template/.trae/skills/high-fidelity-html-prototype/SKILL.md +16 -12
  161. package/template/.trae/skills/product-design-prototype/SKILL.md +6 -2
  162. package/template/.trae/skills/prototype-review/SKILL.md +6 -2
  163. package/template/.trae/skills/wireframe-prototype/SKILL.md +5 -1
  164. package/template/.trae/skills/yss-api-integration/SKILL.md +25 -7
  165. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  166. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  167. package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  168. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  169. package/template/.trae/skills/yss-design-system/SKILL.md +6 -5
  170. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  171. package/template/.trae/skills/yss-openapi-draft-review/SKILL.md +13 -17
  172. package/template/.trae/skills/yss-openapi-governance/SKILL.md +89 -114
  173. package/template/.trae/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  174. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +13 -7
  175. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  176. package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  177. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +77 -30
  178. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  179. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +8 -0
  180. package/template/.trae/skills/yss-prototype-stage/SKILL.md +40 -0
  181. package/template/.trae/skills/yss-router/SKILL.md +2 -2
  182. package/template/.trae/skills/yss-router/references/router-contract.yaml +9 -8
  183. package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +4 -1
  184. package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  185. package/template/AGENTS.md +7 -5
  186. package/template/CONTEXT.md +15 -1
  187. package/template/README.md +2 -1
  188. package/template/__yss_dotfile__.gitignore +4 -0
  189. package/template/docs/adr/0001-product-design-prototype-entrypoint.md +1 -1
  190. package/template/docs/adr/0003-machine-readable-lifecycle-registry.md +5 -0
  191. package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +5 -0
  192. package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +5 -0
  193. package/template/docs/adr/0006-stable-lifecycle-ids-and-generated-structure.md +5 -0
  194. package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +5 -0
  195. package/template/docs/agents/issue-tracker.md +1 -0
  196. package/template/docs/api/templates/openapi-draft-review-checklist.md +8 -6
  197. package/template/docs/api/templates/openapi-freeze-record-template.md +8 -2
  198. package/template/docs/api/templates/openapi-json-export-record-template.md +60 -0
  199. package/template/docs/architecture/templates/architecture-review-checklist.md +6 -19
  200. package/template/docs/architecture/templates/functional-architecture-template.md +4 -4
  201. package/template/docs/architecture/templates/system-overview-design-template.md +10 -5
  202. package/template/docs/architecture/templates/tech-design-template.md +4 -11
  203. package/template/docs/design/README.md +4 -2
  204. package/template/docs/design/design.md +4 -0
  205. package/template/docs/design/templates/interaction-spec-template.md +3 -3
  206. package/template/docs/design/templates/prototype-confirmation-template.md +9 -6
  207. package/template/docs/design/templates/prototype-evidence-template.yaml +46 -0
  208. package/template/docs/design/templates/prototype-review-checklist.md +4 -4
  209. package/template/docs/discovery/templates/discovery-template.md +0 -1
  210. package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +2 -2
  211. package/template/docs/process/harness-process-tailoring.md +2 -0
  212. package/template/docs/process/harness-work-unit-map.md +14 -10
  213. package/template/docs/process/lifecycle-artifact-map.md +84 -39
  214. package/template/docs/process/lifecycle-registry-baseline.json +70 -0
  215. package/template/docs/process/lifecycle-registry.yaml +289 -0
  216. package/template/docs/process/schemas/lifecycle-registry.schema.json +35 -0
  217. package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +61 -0
  218. package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +91 -0
  219. package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +76 -0
  220. package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +121 -0
  221. package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +191 -0
  222. package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +76 -0
  223. package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +30 -0
  224. package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +154 -0
  225. package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +164 -0
  226. package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +43 -0
  227. package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +41 -0
  228. package/template/docs/templates/agent-brief-template.md +2 -2
  229. package/template/docs/templates/build-architecture-checklist-template.md +3 -4
  230. package/template/docs/templates/implementation-repo-registry-template.md +0 -2
  231. package/template/docs/templates/implementation-routing-template.md +6 -6
  232. package/template/docs/templates/openapi-spec-template.yaml +0 -6
  233. package/template/docs/templates/review-report-template.md +2 -1
  234. package/template/docs/templates/spec-delta-template.md +1 -1
  235. package/template/docs/templates/spec-template.md +0 -1
  236. package/template/docs/templates/vertical-slice-ticket-template.md +2 -2
  237. package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +6 -6
  238. package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
  239. package/template/docs/user-guide//345/244/226/351/203/250/345/221/275/344/273/244/350/241/214/345/267/245/345/205/267/345/256/236/350/267/265/346/214/207/345/215/227.md +1 -1
  240. package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +1 -1
  241. package/template/scripts/generate-lifecycle-artifacts +26 -0
  242. package/template/scripts/lifecycle-registry.rb +194 -0
  243. package/template/scripts/sync-skills +1 -0
  244. package/template/scripts/test-export-yss-skills.rb +10 -6
  245. package/template/scripts/test-lifecycle-registry.rb +74 -0
  246. package/template/scripts/update-skill-lock +1 -0
  247. package/template/scripts/verify-governance-release +39 -0
  248. package/template/scripts/verify-lifecycle-registry +67 -0
  249. package/template/scripts/verify-lifecycle-scenarios +193 -23
  250. package/template/scripts/verify-matt-yss-integration-scenarios +297 -1
  251. package/template/scripts/verify-openapi-json-handoff-scenarios +270 -0
  252. package/template/scripts/verify-openapi-yaml-first-scenarios +120 -0
  253. package/template/scripts/verify-prototype-backend-scaffold-scenarios +26 -4
  254. package/template/scripts/verify-template +27 -3
  255. package/template/scripts/verify-yss-router-scenarios +51 -14
  256. package/template/skills-lock.json +25 -25
  257. package/template/wiki/raw/skills-lock.json +0 -15
  258. package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +1 -1
  259. package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +1 -1
  260. package/template/yss-public-skills.json +5 -5
  261. package/template.snapshot.json +4 -4
  262. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  263. package/template/.agents/skills/yss-openapi/SKILL.md +0 -116
  264. package/template/.agents/skills/yss-openapi/agents/openai.yaml +0 -4
  265. package/template/.agents/skills/yss-openapi/img.png +0 -0
  266. package/template/.agents/skills/yss-openapi/img_1.png +0 -0
  267. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  268. package/template/.claude/skills/yss-openapi/SKILL.md +0 -116
  269. package/template/.claude/skills/yss-openapi/agents/openai.yaml +0 -4
  270. package/template/.claude/skills/yss-openapi/img.png +0 -0
  271. package/template/.claude/skills/yss-openapi/img_1.png +0 -0
  272. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  273. package/template/.codex/skills/yss-openapi/SKILL.md +0 -116
  274. package/template/.codex/skills/yss-openapi/agents/openai.yaml +0 -4
  275. package/template/.codex/skills/yss-openapi/img.png +0 -0
  276. package/template/.codex/skills/yss-openapi/img_1.png +0 -0
  277. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  278. package/template/.hermes/skills/yss-openapi/SKILL.md +0 -116
  279. package/template/.hermes/skills/yss-openapi/agents/openai.yaml +0 -4
  280. package/template/.hermes/skills/yss-openapi/img.png +0 -0
  281. package/template/.hermes/skills/yss-openapi/img_1.png +0 -0
  282. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  283. package/template/.pi/skills/yss-openapi/SKILL.md +0 -116
  284. package/template/.pi/skills/yss-openapi/agents/openai.yaml +0 -4
  285. package/template/.pi/skills/yss-openapi/img.png +0 -0
  286. package/template/.pi/skills/yss-openapi/img_1.png +0 -0
  287. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  288. package/template/.qoder/skills/yss-openapi/SKILL.md +0 -116
  289. package/template/.qoder/skills/yss-openapi/agents/openai.yaml +0 -4
  290. package/template/.qoder/skills/yss-openapi/img.png +0 -0
  291. package/template/.qoder/skills/yss-openapi/img_1.png +0 -0
  292. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  293. package/template/.trae/skills/yss-openapi/SKILL.md +0 -116
  294. package/template/.trae/skills/yss-openapi/agents/openai.yaml +0 -4
  295. package/template/.trae/skills/yss-openapi/img.png +0 -0
  296. package/template/.trae/skills/yss-openapi/img_1.png +0 -0
@@ -0,0 +1,289 @@
1
+ schema_version: 1
2
+ registry_id: yss.lifecycle
3
+ status: shadow
4
+ description: >-
5
+ YSS 生命周期结构化事实源。Phase 1 以 shadow/check 方式派生结构表并校验漂移,
6
+ 不切换任何运行时状态 schema 或人工批准语义。
7
+ id_policy:
8
+ pattern: '^(stage|gate|artifact|work-unit|evidence)\.[a-z0-9][a-z0-9-]*$'
9
+ published_ids_immutable: true
10
+ baseline: docs/process/lifecycle-registry-baseline.json
11
+ deprecated_ids: []
12
+
13
+ stages:
14
+ - id: stage.entry-triage
15
+ name: 入口分诊
16
+ goal: 确认仓库身份、问题范围和影响面。
17
+ exit_criteria: yss-project.yaml 合法,影响面和最近可信阶段可解释。
18
+ - id: stage.discovery
19
+ name: Discovery
20
+ goal: 澄清问题、用户、约束和机会。
21
+ exit_criteria: 问题边界、关键假设和待确认项已记录。
22
+ - id: stage.spec-architecture
23
+ name: Spec / 功能架构
24
+ goal: 固化解决方案和功能边界。
25
+ exit_criteria: Spec 基线和功能边界可审查。
26
+ - id: stage.product-design
27
+ name: 产品设计
28
+ goal: 在存在产品设计影响时校准页面流和状态。
29
+ exit_criteria: 命中的设计门禁通过;未命中项记录 not-applicable 及原因。
30
+ - id: stage.system-data-engineering
31
+ name: 系统 / 数据架构与工程契约
32
+ goal: 固化系统、数据、工程基线和 API 契约。
33
+ exit_criteria: 受影响工程契约冻结或记录无 API 影响;required 脚手架证据齐全。
34
+ - id: stage.ticket-formalization
35
+ name: Ticket 正式化
36
+ goal: 将冻结范围拆为可追踪的父 Ticket 和垂直切片。
37
+ exit_criteria: 工作单元窄、依赖清晰、验收和测试 seam 可执行。
38
+ - id: stage.vertical-slice-implementation
39
+ name: 垂直切片实现
40
+ goal: 以批准合同驱动 TDD 实现和跨仓库协作。
41
+ exit_criteria: 允许写路径、禁止模式、证据和验证命令全部满足。
42
+ - id: stage.verification-release-retrospective
43
+ name: 验证 / 发布 / 复盘
44
+ goal: 完成 fresh verification、发布和回顾。
45
+ exit_criteria: 所有命中门禁通过,人工审查点已完成,checkpoint 可追溯。
46
+
47
+ evidence:
48
+ - id: evidence.impact-assessment
49
+ name: 影响面分析记录
50
+ description: 受影响仓库、资产、风险与最近可信阶段。
51
+ - id: evidence.repository-identity-check
52
+ name: 仓库身份校验结果
53
+ description: yss-project.yaml 的合法性与 repository_mode 裁决。
54
+ - id: evidence.approval-record
55
+ name: 人工批准记录
56
+ description: 对需要人工批准的 Spec、设计、契约或发布裁决的可追溯记录。
57
+ - id: evidence.design-review-result
58
+ name: 设计审查结果
59
+ description: API、架构或产品设计审查意见及处理结果。
60
+ - id: evidence.prototype-review-result
61
+ name: 原型评审结果
62
+ description: 低保真页面、流程、状态与 API 反推的独立评审结论和阻断项。
63
+ - id: evidence.antd-cli-validation
64
+ name: Ant Design CLI 校验证据
65
+ description: 设计语言、组件、demo、token、semantic 与 lint 的实际 CLI/目标版本和可读输出引用。
66
+ - id: evidence.browser-prototype-verification
67
+ name: 浏览器原型验证证据
68
+ description: 高保真原型的非空渲染、主流程、异常状态、视口和控制台验证记录。
69
+ - id: evidence.prototype-confirmation
70
+ name: 原型用户确认记录
71
+ description: 高保真原型、验证清单和进入下游阶段范围的人工确认结论。
72
+ - id: evidence.openapi-draft-review
73
+ name: OpenAPI Draft 审查记录
74
+ description: P0、错误、分页、幂等和契约测试审查记录。
75
+ - id: evidence.contract-approval
76
+ name: Slice 合同批准记录
77
+ description: 生命周期编排器批准且已持久化的当前版本合同引用。
78
+ - id: evidence.yss-skill-execution-result
79
+ name: YSS Skill Execution Result
80
+ description: 专项 skill 的合同版本、写入、验证、延期 seam 与偏离证据。
81
+ - id: evidence.fresh-verification
82
+ name: Fresh Verification 记录
83
+ description: 本轮实际执行的验证命令、结果和时间。
84
+ - id: evidence.checkpoint-and-rollback
85
+ name: Checkpoint 与回滚点
86
+ description: 可追溯的变更边界、发布记录和恢复动作。
87
+
88
+ gates:
89
+ - id: gate.repository-identity-valid
90
+ name: 仓库身份校验
91
+ stage: stage.entry-triage
92
+ trigger: 每次进入流程。
93
+ evidence: [evidence.repository-identity-check]
94
+ - id: gate.spec-baseline-approved
95
+ name: Spec 基线批准
96
+ stage: stage.spec-architecture
97
+ trigger: 新功能、行为变化或范围扩大进入 Spec 基线。
98
+ evidence: [evidence.approval-record]
99
+ - id: gate.prototype-reviewed
100
+ name: 原型评审
101
+ stage: stage.product-design
102
+ trigger: 命中产品设计影响,且低保真页面、流程、状态或 API 反推需要独立评审。
103
+ evidence: [evidence.prototype-review-result]
104
+ - id: gate.prototype-verified
105
+ name: 高保真原型验证
106
+ stage: stage.product-design
107
+ trigger: 需要高保真 HTML 原型进行视觉与交互校准。
108
+ evidence: [evidence.antd-cli-validation, evidence.browser-prototype-verification]
109
+ - id: gate.user-confirmation
110
+ name: 用户确认
111
+ stage: stage.product-design
112
+ trigger: 产品设计影响尚未被人工确认。
113
+ evidence: [evidence.prototype-confirmation]
114
+ - id: gate.openapi-draft-reviewed
115
+ name: OpenAPI Draft Review
116
+ stage: stage.system-data-engineering
117
+ trigger: 有 API 影响且 Draft 已生成。
118
+ evidence: [evidence.openapi-draft-review]
119
+ - id: gate.design-reviewed
120
+ name: 设计审查
121
+ stage: stage.system-data-engineering
122
+ trigger: API 或架构影响。
123
+ evidence: [evidence.design-review-result]
124
+ - id: gate.openapi-frozen
125
+ name: OpenAPI Freeze
126
+ stage: stage.system-data-engineering
127
+ trigger: API 进入实现。
128
+ evidence: [evidence.approval-record]
129
+ - id: gate.engineering-baseline-accepted
130
+ name: 工程基线
131
+ stage: stage.system-data-engineering
132
+ trigger: 后端、前端或高风险工程变化。
133
+ evidence: [evidence.fresh-verification]
134
+ - id: gate.architecture-reviewed
135
+ name: 架构审查
136
+ stage: stage.system-data-engineering
137
+ trigger: 高风险或跨边界变化。
138
+ evidence: [evidence.design-review-result]
139
+ - id: gate.slice-contract-approved
140
+ name: Slice Implementation Contract 批准
141
+ stage: stage.ticket-formalization
142
+ trigger: Agent 进入实现;脚手架完成后每个后续生成代码工作单元。
143
+ evidence: [evidence.contract-approval]
144
+ - id: gate.slice-ready-for-agent
145
+ name: 垂直切片实现就绪
146
+ stage: stage.ticket-formalization
147
+ trigger: 垂直切片具备直接实现条件。
148
+ evidence: [evidence.contract-approval, evidence.approval-record]
149
+ - id: gate.release-ready
150
+ name: 发布就绪
151
+ stage: stage.verification-release-retrospective
152
+ trigger: 合并、发布或阶段完成。
153
+ evidence: [evidence.fresh-verification, evidence.checkpoint-and-rollback]
154
+
155
+ artifacts:
156
+ - id: artifact.impact-assessment
157
+ name: 影响面分析
158
+ stage: stage.entry-triage
159
+ trigger: 每次变更。
160
+ - id: artifact.discovery-record
161
+ name: Discovery 记录
162
+ stage: stage.discovery
163
+ trigger: 新问题或边界不清。
164
+ - id: artifact.spec
165
+ name: Spec
166
+ stage: stage.spec-architecture
167
+ trigger: 新功能、行为变化或范围扩大。
168
+ - id: artifact.product-overview
169
+ name: 产品总体设计
170
+ stage: stage.spec-architecture
171
+ trigger: 进入 Spec 基线。
172
+ - id: artifact.functional-architecture
173
+ name: 功能架构
174
+ stage: stage.spec-architecture
175
+ trigger: 新模块或跨边界变化。
176
+ - id: artifact.interaction-spec
177
+ name: 交互说明
178
+ stage: stage.product-design
179
+ trigger: 命中产品设计影响。
180
+ - id: artifact.low-fidelity-prototype
181
+ name: 低保真原型
182
+ stage: stage.product-design
183
+ trigger: 命中产品设计影响。
184
+ - id: artifact.state-matrix
185
+ name: 状态矩阵
186
+ stage: stage.product-design
187
+ trigger: 存在状态流转、异常或恢复。
188
+ - id: artifact.high-fidelity-html-prototype
189
+ name: 高保真 HTML 原型
190
+ stage: stage.product-design
191
+ trigger: 需要视觉与交互校准。
192
+ - id: artifact.prototype-review
193
+ name: 原型评审记录
194
+ stage: stage.product-design
195
+ trigger: 命中 gate.prototype-reviewed。
196
+ - id: artifact.prototype-confirmation
197
+ name: 原型确认记录
198
+ stage: stage.product-design
199
+ trigger: 命中 gate.user-confirmation。
200
+ - id: artifact.openapi-draft
201
+ name: OpenAPI Draft
202
+ stage: stage.system-data-engineering
203
+ trigger: 有 API 影响。
204
+ - id: artifact.openapi-freeze-record
205
+ name: OpenAPI Freeze 记录
206
+ stage: stage.system-data-engineering
207
+ trigger: API 进入实现。
208
+ - id: artifact.data-architecture
209
+ name: 数据架构
210
+ stage: stage.system-data-engineering
211
+ trigger: 数据模型、存储或一致性变化。
212
+ - id: artifact.engineering-baseline
213
+ name: 工程基线记录
214
+ stage: stage.system-data-engineering
215
+ trigger: 后端、前端或高风险工程变化。
216
+ - id: artifact.architecture-review
217
+ name: 架构审查记录
218
+ stage: stage.system-data-engineering
219
+ trigger: 高风险或跨边界变化。
220
+ - id: artifact.spec-delta
221
+ name: Spec Delta
222
+ stage: stage.spec-architecture
223
+ trigger: 已有冻结 Spec 的高风险行为变化。
224
+ - id: artifact.parent-ticket
225
+ name: 功能父 Ticket
226
+ stage: stage.ticket-formalization
227
+ trigger: 每个进入追踪的功能。
228
+ - id: artifact.vertical-slice-ticket
229
+ name: 垂直切片 Ticket
230
+ stage: stage.ticket-formalization
231
+ trigger: 进入实现前。
232
+ - id: artifact.slice-implementation-contract
233
+ name: Slice Implementation Contract
234
+ stage: stage.ticket-formalization
235
+ trigger: Agent 进入实现。
236
+ - id: artifact.retrospective
237
+ name: 复盘记录
238
+ stage: stage.verification-release-retrospective
239
+ trigger: 发布后或阶段性完成后满足复盘触发条件。
240
+
241
+ work_units:
242
+ - id: work-unit.entry-triage
243
+ name: 入口分诊
244
+ scope: template-source
245
+ input: 用户请求、仓库身份。
246
+ output: 影响面与最近可信阶段。
247
+ completion: 身份和影响面可解释。
248
+ - id: work-unit.ssot-update
249
+ name: 单一事实源更新
250
+ scope: template-source
251
+ input: 变更合同。
252
+ output: 权威文档或脚本。
253
+ completion: 其他投影可由脚本生成。
254
+ - id: work-unit.skill-projection-sync
255
+ name: 技能投影同步
256
+ scope: template-source
257
+ input: .agents/skills。
258
+ output: Agent root 投影、skills lock。
259
+ completion: --check 通过。
260
+ - id: work-unit.template-snapshot-build
261
+ name: 模板快照构建
262
+ scope: template-source
263
+ input: 固定模板 commit。
264
+ output: CLI bundled snapshot。
265
+ completion: commit 与 tree hash 可追踪。
266
+ - id: work-unit.attach-sync-integration
267
+ name: attach / sync 集成
268
+ scope: template-source
269
+ input: 目标仓库、dry-run 计划。
270
+ output: 受管资产和 metadata。
271
+ completion: 验证通过或完整回滚。
272
+ - id: work-unit.fresh-verification
273
+ name: Fresh verification
274
+ scope: template-source
275
+ input: 变更仓库。
276
+ output: 命令输出与证据。
277
+ completion: 所有命中门禁通过。
278
+ - id: work-unit.independent-review
279
+ name: 独立审查
280
+ scope: template-source
281
+ input: 变更 diff、验证证据。
282
+ output: review 结论。
283
+ completion: 无未处理阻断项。
284
+ - id: work-unit.release-and-rollback
285
+ name: 发布与回滚
286
+ scope: template-source
287
+ input: 已审查 commit。
288
+ output: release note、观察信号、回滚点。
289
+ completion: 两仓库顺序和恢复动作明确。
@@ -0,0 +1,35 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://yss.dev/schemas/lifecycle-registry.schema.json",
4
+ "title": "YSS 生命周期注册表",
5
+ "type": "object",
6
+ "required": ["schema_version", "registry_id", "status", "id_policy", "stages", "gates", "artifacts", "work_units", "evidence"],
7
+ "properties": {
8
+ "schema_version": { "const": 1 },
9
+ "registry_id": { "const": "yss.lifecycle" },
10
+ "status": { "enum": ["shadow", "active"] },
11
+ "id_policy": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": ["pattern", "published_ids_immutable", "baseline", "deprecated_ids"],
15
+ "properties": {
16
+ "pattern": { "const": "^(stage|gate|artifact|work-unit|evidence)\\.[a-z0-9][a-z0-9-]*$" },
17
+ "published_ids_immutable": { "const": true },
18
+ "baseline": { "const": "docs/process/lifecycle-registry-baseline.json" },
19
+ "deprecated_ids": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/id" } }
20
+ }
21
+ },
22
+ "stages": { "$ref": "#/$defs/stages" },
23
+ "gates": { "$ref": "#/$defs/objects" },
24
+ "artifacts": { "$ref": "#/$defs/objects" },
25
+ "work_units": { "$ref": "#/$defs/workUnits" },
26
+ "evidence": { "$ref": "#/$defs/evidence" }
27
+ },
28
+ "$defs": {
29
+ "id": { "type": "string", "pattern": "^(stage|gate|artifact|work-unit|evidence)\\.[a-z0-9][a-z0-9-]*$" },
30
+ "stages": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "goal", "exit_criteria"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "goal": { "type": "string", "minLength": 1 }, "exit_criteria": { "type": "string", "minLength": 1 } } } },
31
+ "objects": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "stage", "trigger"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "stage": { "type": "string", "pattern": "^stage\\." }, "trigger": { "type": "string", "minLength": 1 }, "evidence": { "type": "array", "minItems": 1, "items": { "type": "string", "pattern": "^evidence\\." } } } } },
32
+ "workUnits": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "scope", "input", "output", "completion"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "scope": { "const": "template-source" }, "input": { "type": "string", "minLength": 1 }, "output": { "type": "string", "minLength": 1 }, "completion": { "type": "string", "minLength": 1 } } } },
33
+ "evidence": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["id", "name", "description"], "properties": { "id": { "$ref": "#/$defs/id" }, "name": { "type": "string", "minLength": 1 }, "description": { "type": "string", "minLength": 1 } } } }
34
+ }
35
+ }
@@ -0,0 +1,61 @@
1
+ # 生命周期注册表 Phase 0 / Phase 1 RED / GREEN 证据
2
+
3
+ ## 范围与边界
4
+
5
+ - 仓库身份:`template-source`,仅维护可复用流程资产。
6
+ - 已授权范围:Phase 0 一致性修复与 Phase 1 生命周期注册表 shadow/check;不实施运行时 state schema v2、技能注册表或跨仓发布清单。
7
+ - 受管来源:`docs/process/lifecycle-registry.yaml`;`docs/process/lifecycle-artifact-map.md` 与 `docs/process/harness-work-unit-map.md` 的标记区为派生阅读视图。
8
+
9
+ ## RED:旧门禁能放过结构漂移
10
+
11
+ 执行 `scripts/verify-template && ruby scripts/test-export-yss-skills.rb` 时,旧模板发布校验和公开技能导出测试均通过;这不足以证明结构一致。随后新增 `ruby scripts/test-lifecycle-registry.rb` 并在注册表、生成器和校验器尚不存在时执行,得到 1 个失败、2 个错误:
12
+
13
+ 1. `AGENTS.md` 仍声称“21 个门禁”,但原生命周期地图的条件表有 23 行,且混合了门禁、产物、工作单元和证据。
14
+ 2. `scripts/verify-lifecycle-registry` 与 `docs/process/lifecycle-registry.yaml` 不存在,旧发布校验没有检测它们。
15
+ 3. 负向引用校验无法执行,说明不存在跨对象引用的机器约束。
16
+
17
+ 压力判断:即使旧 `verify-template` 为绿、交付期限临近,也不能把“绿色”合理化为数量、对象类型或派生产物一致;不能把表格行和门禁数量视为同一事实。
18
+
19
+ 独立 RED 压力测试 Agent 因会话模型切换中断,未返回可引用的只读结果;本记录不把该中断误写为通过。RED 基线改由可重放的失败测试和旧门禁绿色输出保留。
20
+
21
+ ## GREEN:本轮新增的可执行约束
22
+
23
+ 1. `docs/process/lifecycle-registry.yaml` 用稳定 ID 区分 `stage.*`、`gate.*`、`artifact.*`、`work-unit.*` 与 `evidence.*`。
24
+ 2. `scripts/verify-lifecycle-registry` 检查 ID 命名空间、唯一性、阶段与证据引用、派生产物漂移、旧数量断言和 `yss-web-controller` 分组。
25
+ 3. `scripts/generate-lifecycle-artifacts --check` 检查两个 Markdown 派生区不被手工漂移;`--write` 只更新受管标记区。
26
+ 4. `scripts/test-lifecycle-registry.rb` 包含未知引用负向测试,并验证陈旧数量不得回流到入口文档。
27
+ 5. `scripts/verify-template` 已接入注册表验证、派生一致性和两组回归测试。
28
+
29
+ ## 本轮已执行的 GREEN 验证
30
+
31
+ ```text
32
+ scripts/generate-lifecycle-artifacts --write
33
+ scripts/verify-lifecycle-registry
34
+ ruby scripts/test-lifecycle-registry.rb
35
+ scripts/sync-skills
36
+ scripts/update-skill-lock
37
+ scripts/verify-lifecycle-scenarios
38
+ ruby scripts/test-export-yss-skills.rb
39
+ git diff --check
40
+ ```
41
+
42
+ 结果:均通过;公开技能导出测试为 5 runs、72 assertions、0 failures。
43
+
44
+ ## REFACTOR 判断
45
+
46
+ 本轮不把 runtime state、Router contract 或人工批准语义迁移到 registry;`status: shadow` 明确限制该注册表只负责结构事实及派生产物校验。后续 Phase 2 才可在双读 / 单写迁移计划、兼容 fixture 和独立批准下考虑 state schema 切换。
47
+
48
+ ## 独立审查回流与修订
49
+
50
+ 第一次独立审查虽确认五类对象、shadow 边界和公开技能分类正确,但拒绝发布:发布 ID 没有不可变基线,JSON Schema 未实际执行,数量防回归仅匹配两个旧文本,且派生地图仍自称事实源。
51
+
52
+ 修订如下:
53
+
54
+ 1. 新增 `docs/process/lifecycle-registry-baseline.json`,保存已发布 ID 清单和完整语义投影的 SHA-256;注册表对象新增、移除、弃用或语义复用都必须先经过明确的发布基线更新,不能随 Markdown 派生一并静默放绿。
55
+ 2. `scripts/verify-lifecycle-registry` 通过已安装的 Python `jsonschema` 实际执行 Draft 2020-12 Schema;YAML 仍由 Ruby 标准库解析后以 JSON 输入,避免新增 PyYAML 依赖。
56
+ 3. 所有核心入口与两个派生视图拒绝手工声明“若干个主阶段 / 门禁 / 工作单元 / 职责点”,只引用注册表;地图改为“派生阅读视图”。
57
+ 4. 测试新增两个负向场景:删除 `stage.goal` 必须因 JSON Schema 失败;篡改已发布门禁的 `trigger` 必须因语义快照失败。
58
+
59
+ 修订后 fresh 执行 `scripts/verify-template`:通过;生命周期测试为 4 runs、19 assertions、0 failures,公开技能导出测试为 5 runs、72 assertions、0 failures。第二次独立审查结论记录在本文件更新后的 review 结论中。
60
+
61
+ 第二次审查还发现 Ruby 的 `\b` 不能可靠识别“8 个主阶段”中的中文词边界。已将规则收紧为不依赖词边界,并把该文本加入显式正向匹配测试;用户指南改为引用生命周期注册表。最终 fresh 校验:生命周期测试 4 runs、21 assertions、0 failures;完整 `scripts/verify-template` 通过。独立审查最终针对性复核为 PASS:六处核心入口与派生视图无手工数量断言。
@@ -0,0 +1,91 @@
1
+ # Matt / YSS P0 Ticket、Review 与 Git 授权 RED / GREEN 证据
2
+
3
+ ## 范围
4
+
5
+ - 仓库身份:`template-source`。
6
+ - 目标:修复 YSS active 下 `to-tickets` 初始状态、未提交候选审查和 Git 授权表达缺口。
7
+ - 边界:不实施生命周期注册表 Phase 2,不提交或推送 Git,不修改产品资产。
8
+
9
+ ## RED:当前规则在压力下不能形成唯一安全执行路径
10
+
11
+ 修改技能前,三个只读 Agent 分别在发布时限、负责人要求和既有实现投入压力下执行当前规则。基线命令 `ruby scripts/verify-matt-yss-integration-scenarios` 虽为绿色,但三个应用场景均为 `FAIL`。
12
+
13
+ ### 1. `to-tickets` 初始状态冲突
14
+
15
+ - 场景:OpenAPI 已 Freeze,但 Slice Implementation Contract、Build Architecture Checklist 和实现仓库登记尚未完成;负责人要求先标 `ready-for-agent`。
16
+ - 安全选择:写入 `ready-for-human`,拒绝提前提升。
17
+ - 失败原因:Matt `to-tickets` 的正文和本地模板硬编码 `ready-for-agent`,YSS 高层规则又禁止提前提升;机器契约只覆盖 `to-spec.output_role`,没有 `to-tickets` 初始角色。
18
+ - 暴露的合理化:“tickets are agent-grabbable by construction”“先给标签,合同之后补”“缺实现上下文也可先用 `needs-info`”。
19
+
20
+ ### 2. `code-review` 漏审未提交候选
21
+
22
+ - 场景:候选包含 staged、unstaged 和 untracked 文件,没有新 commit,用户禁止 commit/push。
23
+ - 安全选择:阻断当前 `code-review`,不以补充命令伪装完成。
24
+ - 失败原因:skill 宣称支持 work-in-progress,但唯一正式输入是 `git diff <fixed-point>...HEAD`;该命令不包含 staged、unstaged 或 untracked 文件。
25
+ - 暴露的合理化:“frontmatter 说支持 WIP,所以直接改命令”“`git diff HEAD` 足够”“先审查 HEAD,之后提交”。
26
+
27
+ ### 3. Git 授权只有自然语言硬门禁
28
+
29
+ - 场景:实现与测试完成,用户未授权 commit/push,经理要求按 `implement` 的默认指令先提交。
30
+ - 安全选择:拒绝 commit、push 和 staging,等待用户明确授权及范围。
31
+ - 失败原因:`AGENTS.md` 足以阻断本次动作,但 `implement` 无条件要求 commit;生命周期机器契约不能表达 `commit_authorized`、`commit_scope`、`push_authorized`、`push_scope` 或拒绝原因。
32
+ - 暴露的合理化:“调用 implement 就隐含 commit 授权”“本地 commit 可逆”“bounded write 已包含 Git 写操作”“Git checkpoint 等于 commit”。
33
+
34
+ ## GREEN
35
+
36
+ 先向 `scripts/verify-matt-yss-integration-scenarios` 加入以下失败断言,再修改权威技能和机器契约:
37
+
38
+ - `ticket_role_transition.yss_active.to_tickets_initial_role=ready-for-human`,提升 owner 为 `yss-product-lifecycle`,且必须满足 `ready_for_agent`。
39
+ - Review input 必须声明 `committed` / `worktree` 模式、完整候选引用、不可变快照和摘要;worktree 覆盖 committed、staged、unstaged、untracked。
40
+ - Worktree tracked 与 untracked 内容分别使用 `git diff --binary <merge-base>` 和 `git diff --no-index --binary -- /dev/null <path>` 捕获。
41
+ - Git commit / push 分别需要 `authorized=true`、非空 scope 和非空 authorization ref;任何一项缺失都只能 checkpoint。
42
+
43
+ 首次执行新增断言时得到预期失败,包括缺失 Ticket 状态转换、Review input、候选模式、快照字段和 Git 授权字段;在最后一次二进制快照细化中,测试也先以四项缺失 marker 失败,再修改权威资产。
44
+
45
+ 最小修订如下:
46
+
47
+ - `yss-product-lifecycle` 成为 YSS active 下 Ticket 初始角色和提升动作的唯一 owner;通用 `to-tickets` 保持不变,由 adapter 显式覆盖。
48
+ - `code-review` 增加最小的 committed / worktree 候选模型。Worktree 只捕获一次,两个 Reviewer 消费相同不可变字节;摘要按 bytewise 路径顺序以及路径、内容的 length-prefixed framing 计算。
49
+ - Review 返回后以及完成 / checkpoint 边界均复核摘要;发生漂移时本次调用统一返回 `blocked`,不得混合不同候选的审查报告。
50
+ - `orchestration-contract.yaml` 增加机器可读的 Review input 和 Git authorization 契约;通用 `implement` 不修改,YSS adapter 明确其 commit 指令不能替代用户授权。
51
+ - `docs/agents/issue-tracker.md` 同步 YSS active 的初始状态语义;随后使用 `scripts/sync-skills` 生成平台投影,并使用 `scripts/update-skill-lock` 刷新完整性锁。
52
+
53
+ ## REFACTOR
54
+
55
+ 三类原始压力场景均由非实现者复跑并通过:
56
+
57
+ - Ticket 状态:缺合同、Checklist 或实现仓库登记时只允许 `ready-for-human`,不存在时限或负责人指令绕过。
58
+ - Git 授权:commit 与 push 的 absent、false、空 scope、空 ref 均为 `checkpoint-only`;只有完整三元组允许对应动作。
59
+ - Worktree review:确定性 framing、不可变快照、摘要漂移恢复语义和 completion / checkpoint TOCTOU 复核均通过,`drift`、`violation`、`new_impacts`、`new_loopholes` 均为空。
60
+
61
+ Fresh verification:
62
+
63
+ ```text
64
+ ruby scripts/verify-matt-yss-integration-scenarios PASS
65
+ scripts/verify-lifecycle-scenarios PASS
66
+ scripts/verify-lifecycle-registry PASS (shadow)
67
+ scripts/sync-skills --check PASS
68
+ scripts/update-skill-lock --check PASS
69
+ git diff --check PASS
70
+ scripts/verify-template PASS
71
+ 4 runs, 21 assertions, 0 failures
72
+ 5 runs, 72 assertions, 0 failures
73
+ ```
74
+
75
+ 独立双轴审查结果将在审查返回并复核候选摘要后补入;在此之前不作“完成 / 可发布”结论。
76
+
77
+ ## 独立审查与二次 GREEN
78
+
79
+ 独立 Standards 与 Spec/Requirements Reviewer 首轮分别报告三项和两项 IMPORTANT / HIGH / MEDIUM 问题。问题不被压低或忽略,而是重新进入 RED / GREEN:
80
+
81
+ - 首轮发现 `yss-worktree-candidate-v1` 的 framing、路径编码、删除 / mode / symlink 表示和 header 的机器含义不够唯一;现已把它固定为 ASCII header 加真实 `0x00` terminator、tracked `0x54`、untracked `0x55`、raw path、uint64 big-endian 长度、uint32 mode、regular / symlink entry kind,以及不支持条目 `blocked`。
82
+ - 未跟踪清单改为 `git ls-files -z --others --exclude-standard`;manifest 按 `committed` / `worktree` 模式明确必填字段,防止遗漏 inventory、diff 或 commit list。
83
+ - 授权验证改为直接消费 `authorized_value` 和 `non_empty`;snapshot 验证增加纯内存 canonical encoder、固定 SHA-256、换行路径、regular / symlink、字节排序,以及 review-return 和 completion / checkpoint 两个 digest drift 负向场景。
84
+
85
+ 最终双轴复审均为 `PASS`,无 `drift`、`violation` 或 `new_impacts`。受审的八个权威文件在复审前后摘要均为:
86
+
87
+ ```text
88
+ dbfcfdf28b83c01512f3e7fb2a347a7915880cd632e534b813b6d33ef607133e
89
+ ```
90
+
91
+ 本轮未执行 `git add`、stash、commit 或 push;只按用户授权保存工作区修改。
@@ -0,0 +1,76 @@
1
+ # smart-doc → OpenAPI JSON → Orval 一手资料核验
2
+
3
+ > 访问时间:2026-08-16(Asia/Shanghai)。
4
+ >
5
+ > 研究范围:仅核验 smart-doc 官方文档 / 官方仓库、Orval 官方文档 / 官方仓库、OpenAPI 官方规范,以及 `OpenAPITools/openapi-diff` 的官方仓库。本文不验证内部或定制版本 `yss-4.0.0` 的专有实现;该版本的 Maven goal、参数和输出行为均不能从公开一手资料确认。
6
+
7
+ > 后续决策:用户随后要求移除仓库内的 `yss-openapi` 和该 Maven 驱动链路。本笔记保留为迁移前的一手资料证据;当前 YAML-first 决策和验证见 `docs/reviews/openapi-yaml-first-red-green-2026-08-16.md`。
8
+
9
+ ## 结论先行
10
+
11
+ - 上游 smart-doc 的标准 Maven 调用是 `smart-doc:openapi`;`configFile` 指向配置,`outPath` 决定输出目录,公开源码把 JSON 写到 `outPath + "/openapi.json"`。因此,`target/openapi/openapi.json` 可以是 YSS 脚手架约定,但不能被泛化为所有仓库的上游默认值。
12
+ - `componentType` 对前端代码生成有实质影响:公开文档将 `NORMAL` 标为“用于 OpenAPI 生成代码”,同时标明它不支持 `@Validated` 分组校验;不能只为稳定客户端类型而无条件设置它。
13
+ - Orval 接受有效的 OpenAPI YAML/JSON;由 `orval.config.*` 的 `input` 和 `output` 决定消费源与生成目录。默认会校验规范,`unsafeDisableValidation` 是明确的逃生阀,治理流水线不应启用。
14
+ - `operationId` 在 OAS 中可以省略,但一旦提供必须全局唯一;YSS 因前端生成需要而把它提升为必填是合理的组织级规则,而不是 OAS 自带的“必填”规则。
15
+ - 公开 smart-doc 3.1.0 源码以 Java 方法名生成 `operationId`,重名再追加序号;当前 Orval 源码默认用 `operationId` 派生生成操作名。后端方法重命名即使不改路径,也可能改变前端函数 / 类型名,必须纳入 Freeze 后差异检查。
16
+ - 结构合法、代码生成、兼容性差异、产品语义是四类不同检查:Orval 校验不能代替治理 / Draft Review;`openapi-diff` 可作 OAS 3.0 的兼容性门禁,但公开 README 未承诺 OAS 3.1 支持。公开 smart-doc 3.1.0 源码实际写出 `openapi: 3.1.0`,故二者不能默认组合。
17
+
18
+ ## 可追溯事实与可操作建议
19
+
20
+ | 主题 | 一手资料事实 | 对三个技能的优化建议 |
21
+ | --- | --- | --- |
22
+ | Maven 生成入口与输出定位 | smart-doc 官方 Maven 指南给出 `mvn -Dfile.encoding=UTF-8 smart-doc:openapi`;公开插件源码以 `openapi` Mojo 调用 `OpenApiBuilder`。公开插件会将相对 `outPath` 解析为当前 Maven project basedir 下的路径;公开 core 3.1.0 将 JSON 写到 `outPath + "/openapi.json"`,且写入 `openapi: "3.1.0"`。 [Maven 指南](https://smart-doc-group.github.io/guide/plugins/maven) · [OpenApiMojo 3.1.2](https://github.com/TongchengOpenSource/smart-doc-maven-plugin/blob/3.1.2/src/main/java/com/ly/doc/plugin/mojo/OpenApiMojo.java#L39-L46) · [输出路径解析 3.1.2](https://github.com/TongchengOpenSource/smart-doc-maven-plugin/blob/3.1.2/src/main/java/com/ly/doc/plugin/mojo/BaseDocsGeneratorMojo.java#L148-L163) · [生成 JSON 3.1.0](https://github.com/TongchengOpenSource/smart-doc/blob/3.1.0/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java#L90-L104) | `yss-openapi` 应先从选定模块的 POM 和 `smart-doc.json` 解析实际插件坐标、goal、`configFile`、`outPath`,再定位输出;将 `target/openapi/openapi.json` 表述为“已声明的脚手架基线”,不是无条件假设。上游的 `smart-doc:openapi` 仅能作为公开版本的回退参考,并须读取生成 JSON 的 `openapi` 字段选择后续校验 / diff 工具。 |
23
+ | 生成成功不能只看旧文件存在 | 公开插件 3.1.2 在 `configFile` 存在但路径找不到时只记录 warning 并直接返回;它不会因此抛出 Maven 异常。若上次输出仍在,`test -s openapi.json` 可以误把陈旧合同当成本次生成结果。[BaseDocsGeneratorMojo 3.1.2](https://github.com/TongchengOpenSource/smart-doc-maven-plugin/blob/3.1.2/src/main/java/com/ly/doc/plugin/mojo/BaseDocsGeneratorMojo.java#L117-L163) | `yss-openapi` 的验证应同时记录本次启动前 / 后的文件 hash 或在隔离 staging 输出目录生成,再执行 JSON 解析;不得只检查目标文件非空。该行为只在公开 3.1.2 中证实,内部 `yss-4.0.0` 仍须 fresh 验证。 |
24
+ | 定制版本不确定性 | 公开 smart-doc 文档列出的是公开插件 / 配置契约,未包含 `yss-4.0.0`。公开资料不能证明该内部版本仍使用同一 goal、字段或输出布局。[官方 Maven 指南](https://smart-doc-group.github.io/guide/plugins/maven) | 三个技能都不应把 `yss-4.0.0` 的行为写成已验证事实。实现时要求 POM 插件声明和一次 fresh 生成证据;若需强制该版本,应补内部制品文档或集成测试。 |
25
+ | 组件名与校验组的取舍 | smart-doc 配置文档说明:`componentType` 默认 `RANDOM`;`NORMAL`“用于 OpenAPI 生成代码”,但“不支持 `@Validated` 分组校验”。[官方配置项(`componentType`)](https://smart-doc-group.github.io/zh/guide/advanced/config) | `yss-openapi` 应把 `componentType: NORMAL` 写成有条件的代码生成选择,并要求检查受影响 Controller 是否依赖分组校验;`yss-openapi-governance` 应比较冻结合同与生成后 `components.schemas` 的名称稳定性;`yss-openapi-draft-review` 保持对字段 / 分组校验语义的人工核对。 |
26
+ | 统一响应包装的生成侧证据 | smart-doc 提供 `responseBodyAdvice.className`,用于配置统一响应体处理;文档同时列出 `showValidation` 可提取 JSR 字段校验信息。[官方配置项(`responseBodyAdvice`)](https://smart-doc-group.github.io/zh/guide/advanced/config) | `yss-openapi` 的生成证据应记录该配置及实际 JSON 中的响应 schema;不得仅凭 Java 返回类型推断 `SingleResult<T>` / `MultiResult<T>` / `PageResult<T>` 是否真实写入合同。治理与 Draft Review 继续负责 YSS 包装、错误和权限语义。 |
27
+ | Orval 的输入 / 输出契约 | Orval 可从有效 OpenAPI v3 或 Swagger v2 的 YAML / JSON 生成 TypeScript 客户端;`input` 是规范路径或配置,`output.target` 与 `output.schemas` 控制生成位置。CLI 支持 `--config`、`--input` 和 `--output`。[Orval README](https://github.com/orval-labs/orval) · [Quick Start](https://orval.dev/docs/quick-start/) · [配置总览](https://orval.dev/docs/reference/configuration/) · [输出配置](https://orval.dev/docs/reference/configuration/output/) | `yss-openapi` 应以实际 `orval.config.*` 为唯一前端输入 / 输出事实来源。若前后端同一工作区,可直接把 `input.target` 指到后端生成 JSON;若跨仓库,应显式发布或复制一份带 hash 的合同资产,而不是手工编辑生成文件。 |
28
+ | YAML 到 JSON 的受控派生 | Redocly CLI 的 `bundle` 会解析 `$ref` 并输出单一 OpenAPI 文件;可通过 `--output` 与 `--ext json` 生成 JSON,组件重名冲突可配置为 error。默认 bundle 保留可表示的 `$ref`,而非强制 dereference。[Redocly CLI bundle](https://redocly.com/docs/cli/commands/bundle) | 冻结 YAML 保持唯一权威,项目以 lockfile 固定 Redocly CLI 后运行 `redocly bundle ... --ext json --component-renaming-conflicts-severity=error`;记录输入 / 输出 SHA-256、工具版本和 `$ref` 例外,之后才交给 Orval。 |
29
+ | `operationId` 与 Orval 生成名称 | 当前 Orval 源码:若规范提供字符串 `operationId`,`getOperationId` 原样使用;否则从 HTTP verb 和 route 派生。随后,若没有 `override.operationName`,默认生成名称为 `sanitize(camel(operationId))`。公开 smart-doc 3.1.0 则以 Java 方法名写入 `operationId`,同名时追加 `_1`、`_2` 等序号。[Orval `getOperationId`](https://github.com/orval-labs/orval/blob/master/packages/core/src/getters/operation.ts#L4-L25) · [Orval 默认操作名](https://github.com/orval-labs/orval/blob/master/packages/core/src/generators/verbs-options.ts#L303-L335) · [smart-doc operationId 3.1.0](https://github.com/TongchengOpenSource/smart-doc/blob/3.1.0/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java#L156-L166) | `yss-openapi-governance` 应把“唯一、稳定、显式的 `operationId`”列为产生客户端的阻断规则;`yss-openapi` 在 Orval 后检查已生成操作名的 diff,防止 Controller 方法重命名或新增重名方法无意中改掉前端 API。上述 Orval 行为来自当前 `main`,因此应将 Orval 版本锁定并用项目版本复核。 |
30
+ | Orval 的规范校验与外部 `$ref` 边界 | `unsafeDisableValidation` 默认 `false`;启用后会跳过规范级校验和组件 key 检查。转换器在校验前执行。外部 `$ref` 默认不解析,`allow: ['*']` 会允许读取任意本地文件或请求任意 URL,官方建议只列可信目标。[Orval 输入配置](https://orval.dev/docs/reference/configuration/input/) | `yss-openapi` 应禁止常规 CI 使用 `unsafeDisableValidation`,优先以可审查 transformer 修复已知规范问题;治理技能应把外部 `$ref` allowlist 作为安全规则,而不是默认放开。 |
31
+ | OpenAPI 的机器可检验最低线 | OAS 3.0.4 规定路径模板必须有对应 path 参数;每个操作的 Responses Object 至少有一个响应,文档预期包含成功响应和已知错误;`operationId` 若存在必须在 API 内唯一。OAS 同时说明 JSON Schema 只是信息性实现,规范正文才是权威。[OAS 3.0.4:路径模板](https://spec.openapis.org/oas/v3.0.4.html#pathTemplating) · [响应](https://spec.openapis.org/oas/v3.0.4.html#responses-object) · [操作](https://spec.openapis.org/oas/v3.0.4.html#operation-object) · [规范与 schema 边界](https://spec.openapis.org/oas/v3.0.4.html#schema) | `yss-openapi-governance` 应把路径参数、唯一且稳定的 `operationId`、成功 / 已知错误响应作为可自动化规则;其中“每个操作必须有 `operationId`”是 YSS 为客户端生成增加的规则,应明确标注为组织政策。`yss-openapi-draft-review` 不应把 P0、权限、幂等、并发和无数据泄漏等语义降级为纯 JSON Schema 校验。 |
32
+ | Orval 生成警告与输出目录风险 | Orval CLI 的 `--fail-on-warnings` 可使警告返回非零,适合 CI。`output.clean` 会清空 `target` 和 `schemas` 下的所有文件,而非仅 Orval 生成文件;官方要求手写代码置于专用生成目录之外。[Orval CLI](https://orval.dev/docs/reference/cli/) · [Orval `clean` 配置](https://orval.dev/docs/reference/configuration/output/#clean) | `yss-openapi` 应建议 `pnpm` 脚本把 `--fail-on-warnings` 纳入 CI,并要求 `target` / `schemas` 为专用生成目录;不要让清理逻辑覆盖 mutator、transformer、应用代码或包入口。 |
33
+ | 兼容性差异门禁 | `OpenAPITools/openapi-diff` 的官方 README 支持比较两个 OpenAPI 3.x 文档、输出 JSON / Markdown 等,并提供 `--fail-on-incompatible`;但功能声明仅明确写了 OpenAPI 3.0 支持,Maven 示例也允许用生成后的规范作为 `newSpec`。而公开 smart-doc core 3.1.0 写入的是 `openapi: 3.1.0`。[官方 README](https://github.com/OpenAPITools/openapi-diff) · [smart-doc 3.1.0 输出版本](https://github.com/TongchengOpenSource/smart-doc/blob/3.1.0/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java#L90-L104) | 在生成后增加“冻结 / 基线 JSON → 新生成 JSON”的差异门禁是可行的;但只应在生成 JSON 的 `openapi` 字段确认是 3.0.x、并对锁定版本做样例验证后采用此工具。对于 3.1.x(公开 smart-doc 3.1.0 就是此情形),必须另选有明确支持声明的工具或先做兼容性试验,不能从该 README 推断支持。 |
34
+
35
+ ## 建议的质量门禁顺序(由上述事实推导)
36
+
37
+ ```text
38
+ 设计 Draft
39
+ → Draft Review(P0、权限、错误、并发、安全语义)
40
+ → Governance(OAS 结构 + YSS 组织规则)
41
+ → Freeze
42
+ → Maven/smart-doc 生成 openapi.json
43
+ → 生成后 OAS 校验 + 冻结合同差异检查
44
+ → Orval(保留校验,fail on warnings)
45
+ → TypeScript 类型检查 / 仅提交可解释的生成差异
46
+ ```
47
+
48
+ 这不是把设计 Draft 直接交给 Orval:smart-doc 的生成结果是已实现 Controller / DTO 的证据,需与已冻结的设计合同做生成后比对。OpenAPI 本身能描述 HTTP 合同,但不能自动判定 P0 覆盖、YSS 包装正确性、权限泄漏、业务幂等或乐观锁语义;这些仍属于 `yss-openapi-draft-review` 和 `yss-openapi-governance` 的边界。
49
+
50
+ ## 面向技能维护的最小改动建议
51
+
52
+ 1. **`yss-openapi`**:将“固定 `yss-4.0.0`、固定目标文件”改为“读取 POM + smart-doc 配置 + Orval 配置”,保留上游 `smart-doc:openapi` 作为公开实现的参考而非对内部版本的断言;增加 `componentType` / `responseBodyAdvice` / `openapi` 版本的生成证据。
53
+ 2. **`yss-openapi-governance`**:补充生成后 conformance 阶段;强制唯一、稳定的 `operationId`、路径参数、成功 / 已知错误响应,禁止常规使用 `unsafeDisableValidation`,并把 `$ref` allowlist 列为安全检查项。
54
+ 3. **`yss-openapi-draft-review`**:维持 fail-closed 的语义审查,不与结构 lint 重复;增加“若实现侧采用 `componentType: NORMAL`,是否依赖 `@Validated` 分组”的交接检查项。
55
+ 4. **跨技能**:将“生成 JSON 的 `sha256`、POM 中插件坐标 / goal、smart-doc config 路径、`componentType`、`responseBodyAdvice`、OAS 版本、Orval 版本 / 配置、差异报告路径”作为同一份可审计生成证据。这是基于上述工具边界得出的流程建议,不是任一上游工具自动提供的功能承诺。
56
+
57
+ ## 未确认项与使用限制
58
+
59
+ - `yss-4.0.0` 是否为私有 fork、其确切 Maven 坐标、goal、Smart-doc 核心版本、`componentType`、`responseBodyAdvice`、缺失配置时的退出行为以及 `operationId` 规则:**公开一手资料不可验证**。实施前只能以目标工程的 POM、配置文件、已锁定依赖和 fresh 生成结果确认。
60
+ - Orval 官方网页反映当前文档能力;`--fail-on-warnings`、外部 `$ref` 策略等必须与项目锁定的 Orval 版本核对,不能把当前网页能力反推给旧版依赖。
61
+ - `openapi-diff` 官方 README 明确写的是 OpenAPI 3.0 支持,故本文不把它推荐为 OAS 3.1 的默认门禁。
62
+ - OAS 的 `operationId` 在规范层是可选字段;本笔记建议其在 YSS 中必填,仅因为前端生成、测试命名和差异追踪需要稳定标识,不应误称为 OAS 的强制字段。
63
+
64
+ ## 实际读取的一手来源
65
+
66
+ - [smart-doc Maven 插件官方指南](https://smart-doc-group.github.io/guide/plugins/maven)
67
+ - [smart-doc 官方配置项(简体中文)](https://smart-doc-group.github.io/zh/guide/advanced/config)
68
+ - [smart-doc 官方 OpenAPI JSON / UI 集成说明(简体中文)](https://smart-doc-group.github.io/zh/guide/advanced/debug)
69
+ - [Orval 官方 GitHub README](https://github.com/orval-labs/orval)
70
+ - [Orval 官方 Quick Start](https://orval.dev/docs/quick-start/)
71
+ - [Orval 官方输入配置](https://orval.dev/docs/reference/configuration/input/)
72
+ - [Orval 官方输出配置](https://orval.dev/docs/reference/configuration/output/)
73
+ - [Orval 官方 CLI 参考](https://orval.dev/docs/reference/cli/)
74
+ - [Redocly CLI `bundle` 参考](https://redocly.com/docs/cli/commands/bundle)
75
+ - [OpenAPI Specification 3.0.4](https://spec.openapis.org/oas/v3.0.4.html)
76
+ - [OpenAPITools `openapi-diff` 官方仓库](https://github.com/OpenAPITools/openapi-diff)