create-yss-spec 2.1.2 → 2.1.4

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 (253) 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/yss-api-integration/SKILL.md +25 -7
  5. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  6. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  7. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  9. package/template/.agents/skills/yss-design-system/SKILL.md +1 -1
  10. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  11. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +13 -17
  12. package/template/.agents/skills/yss-openapi-governance/SKILL.md +89 -114
  13. package/template/.agents/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  14. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +11 -5
  15. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  16. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  17. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  18. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  19. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +8 -0
  20. package/template/.agents/skills/yss-router/SKILL.md +2 -2
  21. package/template/.agents/skills/yss-router/references/router-contract.yaml +4 -6
  22. package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +1 -1
  23. package/template/.agents/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  24. package/template/.claude/skills/code-review/SKILL.md +38 -10
  25. package/template/.claude/skills/yss-api-integration/SKILL.md +25 -7
  26. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  27. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  28. package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  29. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  30. package/template/.claude/skills/yss-design-system/SKILL.md +1 -1
  31. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  32. package/template/.claude/skills/yss-openapi-draft-review/SKILL.md +13 -17
  33. package/template/.claude/skills/yss-openapi-governance/SKILL.md +89 -114
  34. package/template/.claude/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  35. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +11 -5
  36. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  37. package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  38. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  39. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  40. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +8 -0
  41. package/template/.claude/skills/yss-router/SKILL.md +2 -2
  42. package/template/.claude/skills/yss-router/references/router-contract.yaml +4 -6
  43. package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +1 -1
  44. package/template/.claude/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  45. package/template/.codex/skills/code-review/SKILL.md +38 -10
  46. package/template/.codex/skills/yss-api-integration/SKILL.md +25 -7
  47. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  48. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  49. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  50. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  51. package/template/.codex/skills/yss-design-system/SKILL.md +1 -1
  52. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  53. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +13 -17
  54. package/template/.codex/skills/yss-openapi-governance/SKILL.md +89 -114
  55. package/template/.codex/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  56. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +11 -5
  57. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  58. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  59. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  60. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  61. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +8 -0
  62. package/template/.codex/skills/yss-router/SKILL.md +2 -2
  63. package/template/.codex/skills/yss-router/references/router-contract.yaml +4 -6
  64. package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +1 -1
  65. package/template/.codex/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  66. package/template/.hermes/skills/code-review/SKILL.md +38 -10
  67. package/template/.hermes/skills/yss-api-integration/SKILL.md +25 -7
  68. package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  69. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  70. package/template/.hermes/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  71. package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  72. package/template/.hermes/skills/yss-design-system/SKILL.md +1 -1
  73. package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  74. package/template/.hermes/skills/yss-openapi-draft-review/SKILL.md +13 -17
  75. package/template/.hermes/skills/yss-openapi-governance/SKILL.md +89 -114
  76. package/template/.hermes/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  77. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +11 -5
  78. package/template/.hermes/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  79. package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  80. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  81. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  82. package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +8 -0
  83. package/template/.hermes/skills/yss-router/SKILL.md +2 -2
  84. package/template/.hermes/skills/yss-router/references/router-contract.yaml +4 -6
  85. package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +1 -1
  86. package/template/.hermes/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  87. package/template/.pi/skills/code-review/SKILL.md +38 -10
  88. package/template/.pi/skills/yss-api-integration/SKILL.md +25 -7
  89. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  90. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  91. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  92. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  93. package/template/.pi/skills/yss-design-system/SKILL.md +1 -1
  94. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  95. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +13 -17
  96. package/template/.pi/skills/yss-openapi-governance/SKILL.md +89 -114
  97. package/template/.pi/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  98. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +11 -5
  99. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  100. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  101. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  102. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  103. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +8 -0
  104. package/template/.pi/skills/yss-router/SKILL.md +2 -2
  105. package/template/.pi/skills/yss-router/references/router-contract.yaml +4 -6
  106. package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +1 -1
  107. package/template/.pi/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  108. package/template/.qoder/skills/code-review/SKILL.md +38 -10
  109. package/template/.qoder/skills/yss-api-integration/SKILL.md +25 -7
  110. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  111. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  112. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  113. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  114. package/template/.qoder/skills/yss-design-system/SKILL.md +1 -1
  115. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  116. package/template/.qoder/skills/yss-openapi-draft-review/SKILL.md +13 -17
  117. package/template/.qoder/skills/yss-openapi-governance/SKILL.md +89 -114
  118. package/template/.qoder/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  119. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +11 -5
  120. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  121. package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  122. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  123. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  124. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +8 -0
  125. package/template/.qoder/skills/yss-router/SKILL.md +2 -2
  126. package/template/.qoder/skills/yss-router/references/router-contract.yaml +4 -6
  127. package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +1 -1
  128. package/template/.qoder/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  129. package/template/.trae/skills/code-review/SKILL.md +38 -10
  130. package/template/.trae/skills/yss-api-integration/SKILL.md +25 -7
  131. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -17
  132. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +0 -30
  133. package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  134. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.py +1 -21
  135. package/template/.trae/skills/yss-design-system/SKILL.md +1 -1
  136. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +12 -6
  137. package/template/.trae/skills/yss-openapi-draft-review/SKILL.md +13 -17
  138. package/template/.trae/skills/yss-openapi-governance/SKILL.md +89 -114
  139. package/template/.trae/skills/yss-openapi-governance/agents/openai.yaml +2 -2
  140. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +11 -5
  141. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +2 -2
  142. package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +8 -2
  143. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +75 -28
  144. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +7 -2
  145. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +8 -0
  146. package/template/.trae/skills/yss-router/SKILL.md +2 -2
  147. package/template/.trae/skills/yss-router/references/router-contract.yaml +4 -6
  148. package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +1 -1
  149. package/template/.trae/skills/yss-router/references/yss-skill-execution-result.md +2 -1
  150. package/template/AGENTS.md +6 -4
  151. package/template/CONTEXT.md +15 -1
  152. package/template/README.md +2 -1
  153. package/template/__yss_dotfile__.gitignore +4 -0
  154. package/template/docs/adr/0003-machine-readable-lifecycle-registry.md +5 -0
  155. package/template/docs/adr/0004-split-lifecycle-and-router-registry-domains.md +5 -0
  156. package/template/docs/adr/0005-cross-repository-ecosystem-release-manifest.md +5 -0
  157. package/template/docs/adr/0006-stable-lifecycle-ids-and-generated-structure.md +5 -0
  158. package/template/docs/adr/0007-separate-skill-routing-registry-from-integrity-lock.md +5 -0
  159. package/template/docs/agents/issue-tracker.md +1 -0
  160. package/template/docs/api/templates/openapi-draft-review-checklist.md +8 -6
  161. package/template/docs/api/templates/openapi-freeze-record-template.md +8 -2
  162. package/template/docs/api/templates/openapi-json-export-record-template.md +60 -0
  163. package/template/docs/architecture/templates/architecture-review-checklist.md +6 -19
  164. package/template/docs/architecture/templates/functional-architecture-template.md +4 -4
  165. package/template/docs/architecture/templates/system-overview-design-template.md +10 -5
  166. package/template/docs/architecture/templates/tech-design-template.md +4 -11
  167. package/template/docs/discovery/templates/discovery-template.md +0 -1
  168. package/template/docs/implementation/create-yss-spec-repository-mode-contract.md +2 -2
  169. package/template/docs/process/harness-process-tailoring.md +2 -0
  170. package/template/docs/process/harness-work-unit-map.md +14 -10
  171. package/template/docs/process/lifecycle-artifact-map.md +75 -39
  172. package/template/docs/process/lifecycle-registry-baseline.json +61 -0
  173. package/template/docs/process/lifecycle-registry.yaml +255 -0
  174. package/template/docs/process/schemas/lifecycle-registry.schema.json +35 -0
  175. package/template/docs/reviews/lifecycle-registry-phase0-1-red-green-2026-08-17.md +61 -0
  176. package/template/docs/reviews/matt-yss-p0-ticket-review-git-red-green-2026-08-17.md +91 -0
  177. package/template/docs/reviews/openapi-skill-primary-source-research-2026-08-16.md +76 -0
  178. package/template/docs/reviews/openapi-yaml-first-independent-review-2026-08-16.md +121 -0
  179. package/template/docs/reviews/openapi-yaml-first-pressure-scenarios-2026-08-16.md +191 -0
  180. package/template/docs/reviews/openapi-yaml-first-red-green-2026-08-16.md +76 -0
  181. package/template/docs/reviews/openapi-yaml-json-output-independent-review-2026-08-16.md +30 -0
  182. package/template/docs/reviews/openapi-yaml-json-output-scope-red-green-2026-08-16.md +154 -0
  183. package/template/docs/reviews/research-create-yss-spec-refresh-2026-08-16.md +164 -0
  184. package/template/docs/reviews/security-permission-lifecycle-simplification-red-green-2026-08-16.md +43 -0
  185. package/template/docs/reviews/template-release-review-remediation-red-green-2026-08-17.md +41 -0
  186. package/template/docs/templates/agent-brief-template.md +2 -2
  187. package/template/docs/templates/build-architecture-checklist-template.md +3 -4
  188. package/template/docs/templates/implementation-repo-registry-template.md +0 -2
  189. package/template/docs/templates/implementation-routing-template.md +6 -6
  190. package/template/docs/templates/openapi-spec-template.yaml +0 -6
  191. package/template/docs/templates/review-report-template.md +2 -1
  192. package/template/docs/templates/spec-delta-template.md +1 -1
  193. package/template/docs/templates/spec-template.md +0 -1
  194. package/template/docs/templates/vertical-slice-ticket-template.md +2 -2
  195. 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
  196. 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
  197. 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
  198. 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
  199. package/template/scripts/generate-lifecycle-artifacts +26 -0
  200. package/template/scripts/lifecycle-registry.rb +194 -0
  201. package/template/scripts/sync-skills +1 -0
  202. package/template/scripts/test-export-yss-skills.rb +8 -6
  203. package/template/scripts/test-lifecycle-registry.rb +74 -0
  204. package/template/scripts/update-skill-lock +1 -0
  205. package/template/scripts/verify-governance-release +39 -0
  206. package/template/scripts/verify-lifecycle-registry +67 -0
  207. package/template/scripts/verify-lifecycle-scenarios +114 -17
  208. package/template/scripts/verify-matt-yss-integration-scenarios +297 -1
  209. package/template/scripts/verify-openapi-json-handoff-scenarios +270 -0
  210. package/template/scripts/verify-openapi-yaml-first-scenarios +120 -0
  211. package/template/scripts/verify-template +37 -5
  212. package/template/scripts/verify-yss-router-scenarios +42 -14
  213. package/template/skills-lock.json +9 -24
  214. package/template/wiki/raw/skills-lock.json +0 -15
  215. package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +1 -1
  216. 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
  217. package/template/yss-public-skills.json +3 -5
  218. package/template.snapshot.json +4 -4
  219. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  220. package/template/.agents/skills/yss-openapi/SKILL.md +0 -116
  221. package/template/.agents/skills/yss-openapi/agents/openai.yaml +0 -4
  222. package/template/.agents/skills/yss-openapi/img.png +0 -0
  223. package/template/.agents/skills/yss-openapi/img_1.png +0 -0
  224. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  225. package/template/.claude/skills/yss-openapi/SKILL.md +0 -116
  226. package/template/.claude/skills/yss-openapi/agents/openai.yaml +0 -4
  227. package/template/.claude/skills/yss-openapi/img.png +0 -0
  228. package/template/.claude/skills/yss-openapi/img_1.png +0 -0
  229. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  230. package/template/.codex/skills/yss-openapi/SKILL.md +0 -116
  231. package/template/.codex/skills/yss-openapi/agents/openai.yaml +0 -4
  232. package/template/.codex/skills/yss-openapi/img.png +0 -0
  233. package/template/.codex/skills/yss-openapi/img_1.png +0 -0
  234. package/template/.hermes/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  235. package/template/.hermes/skills/yss-openapi/SKILL.md +0 -116
  236. package/template/.hermes/skills/yss-openapi/agents/openai.yaml +0 -4
  237. package/template/.hermes/skills/yss-openapi/img.png +0 -0
  238. package/template/.hermes/skills/yss-openapi/img_1.png +0 -0
  239. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  240. package/template/.pi/skills/yss-openapi/SKILL.md +0 -116
  241. package/template/.pi/skills/yss-openapi/agents/openai.yaml +0 -4
  242. package/template/.pi/skills/yss-openapi/img.png +0 -0
  243. package/template/.pi/skills/yss-openapi/img_1.png +0 -0
  244. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  245. package/template/.qoder/skills/yss-openapi/SKILL.md +0 -116
  246. package/template/.qoder/skills/yss-openapi/agents/openai.yaml +0 -4
  247. package/template/.qoder/skills/yss-openapi/img.png +0 -0
  248. package/template/.qoder/skills/yss-openapi/img_1.png +0 -0
  249. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/smart-doc.json.template +0 -17
  250. package/template/.trae/skills/yss-openapi/SKILL.md +0 -116
  251. package/template/.trae/skills/yss-openapi/agents/openai.yaml +0 -4
  252. package/template/.trae/skills/yss-openapi/img.png +0 -0
  253. package/template/.trae/skills/yss-openapi/img_1.png +0 -0
@@ -94,7 +94,7 @@
94
94
  "source": "mattpocock/skills",
95
95
  "sourceType": "github",
96
96
  "skillPath": "skills/engineering/code-review/SKILL.md",
97
- "effectiveHash": "e336f095361832fbac27866a8d1c0fc61716ea7ce266c2d6eb193781ac6f60be",
97
+ "effectiveHash": "e1a71372e9ef1e5dc422fdf138ba2803ad7d4f6ce82d0fe276017276b365c150",
98
98
  "upstreamHash": "1d5e7242a98674635be79ab310cdda0e555d36a9903d2526ebf4263d0b7997ca",
99
99
  "targets": [
100
100
  ".agents/skills",
@@ -894,7 +894,7 @@
894
894
  "source": "project",
895
895
  "sourceType": "local",
896
896
  "skillPath": ".agents/skills/yss-api-integration/SKILL.md",
897
- "effectiveHash": "ac7223a22d83bb0b0365534ab4772847e64cb439c82e8a1d4a0b1c15b3d50a69",
897
+ "effectiveHash": "fb6ccf48f016b6df63c3072fc771344c29a1523b5daf08f9512e7bbd79c6a3bc",
898
898
  "targets": [
899
899
  ".agents/skills",
900
900
  ".claude/skills",
@@ -1029,7 +1029,7 @@
1029
1029
  "source": "project",
1030
1030
  "sourceType": "local",
1031
1031
  "skillPath": ".agents/skills/yss-ddd-scaffold-generator/SKILL.md",
1032
- "effectiveHash": "2dc2ac84fac2d4a3a1da433dcb863bd8f8c77dc559c584b688876ab2ff8fac05",
1032
+ "effectiveHash": "b0febe45515f862957742dabd2cfb1df7c56811b059f60821efee6712534a834",
1033
1033
  "targets": [
1034
1034
  ".agents/skills",
1035
1035
  ".claude/skills",
@@ -1044,7 +1044,7 @@
1044
1044
  "source": "project",
1045
1045
  "sourceType": "local",
1046
1046
  "skillPath": ".agents/skills/yss-design-system/SKILL.md",
1047
- "effectiveHash": "2626e379a57a197a87e97110eb805b68aae149b4e7388c15dab2b7a2ca55ea26",
1047
+ "effectiveHash": "b8bde50efcd0226b7bbdfd830e738a3cdb4d74d135e1b2af8715057d1557a9b0",
1048
1048
  "targets": [
1049
1049
  ".agents/skills",
1050
1050
  ".claude/skills",
@@ -1179,7 +1179,7 @@
1179
1179
  "source": "project",
1180
1180
  "sourceType": "local",
1181
1181
  "skillPath": ".agents/skills/yss-frontend-scaffold-generator/SKILL.md",
1182
- "effectiveHash": "b61aa0fdbcd1026757efade8054b84a4f260f1bdf3b1f4d9b6a0315a4a933979",
1182
+ "effectiveHash": "6b966c5824b80f5196c7fd8225238b3047d9e49f1f94c60179e4a567d82911f5",
1183
1183
  "targets": [
1184
1184
  ".agents/skills",
1185
1185
  ".claude/skills",
@@ -1265,26 +1265,11 @@
1265
1265
  ".trae/skills"
1266
1266
  ]
1267
1267
  },
1268
- "yss-openapi": {
1269
- "source": "project",
1270
- "sourceType": "local",
1271
- "skillPath": ".agents/skills/yss-openapi/SKILL.md",
1272
- "effectiveHash": "2283b86f5731d58d6138895f2418dd681abc49aa5b3b753b64ef3f7d0d87b690",
1273
- "targets": [
1274
- ".agents/skills",
1275
- ".claude/skills",
1276
- ".codex/skills",
1277
- ".hermes/skills",
1278
- ".pi/skills",
1279
- ".qoder/skills",
1280
- ".trae/skills"
1281
- ]
1282
- },
1283
1268
  "yss-openapi-draft-review": {
1284
1269
  "source": "project",
1285
1270
  "sourceType": "local",
1286
1271
  "skillPath": ".agents/skills/yss-openapi-draft-review/SKILL.md",
1287
- "effectiveHash": "674d1b60d4b6fc5f13814e4b0c109fe183a54e23865f853994c0d7065847d40c",
1272
+ "effectiveHash": "dcf5c6125081e1adb3b3ee0204f2e14fec62dd2ccb7857d2f0d46c1b64e2755c",
1288
1273
  "targets": [
1289
1274
  ".agents/skills",
1290
1275
  ".claude/skills",
@@ -1299,7 +1284,7 @@
1299
1284
  "source": "project",
1300
1285
  "sourceType": "local",
1301
1286
  "skillPath": ".agents/skills/yss-openapi-governance/SKILL.md",
1302
- "effectiveHash": "9d34f131880fc517e163d2f73c93c8f141cc9d9411a6c015bd867d7085c4b31a",
1287
+ "effectiveHash": "20ea763036bc0cbf355c2a644cc65e3054cfaa29de679f699409e24d8d647088",
1303
1288
  "targets": [
1304
1289
  ".agents/skills",
1305
1290
  ".claude/skills",
@@ -1329,7 +1314,7 @@
1329
1314
  "source": "project",
1330
1315
  "sourceType": "local",
1331
1316
  "skillPath": ".agents/skills/yss-product-lifecycle/SKILL.md",
1332
- "effectiveHash": "199a9f9422cdbb9e31d7517fa4ee9738e41e53a67188aeff9a0130d4f154f93a",
1317
+ "effectiveHash": "b048cd8d1c9ab5d4d3f10e5c0a391b983a05f0c6075a710e086b093607f7f391",
1333
1318
  "targets": [
1334
1319
  ".agents/skills",
1335
1320
  ".claude/skills",
@@ -1374,7 +1359,7 @@
1374
1359
  "source": "project",
1375
1360
  "sourceType": "local",
1376
1361
  "skillPath": ".agents/skills/yss-router/SKILL.md",
1377
- "effectiveHash": "5f19ae24070a93bae92fcd8731857e9a57027c27970106eb82498484f8524008",
1362
+ "effectiveHash": "14e111cbc36e0be6aee67358f580f20b917bf213ea5994acaa0f7f32340e9567",
1378
1363
  "targets": [
1379
1364
  ".agents/skills",
1380
1365
  ".claude/skills",
@@ -1265,21 +1265,6 @@
1265
1265
  ".trae/skills"
1266
1266
  ]
1267
1267
  },
1268
- "yss-openapi": {
1269
- "source": "project",
1270
- "sourceType": "local",
1271
- "skillPath": ".agents/skills/yss-openapi/SKILL.md",
1272
- "effectiveHash": "2283b86f5731d58d6138895f2418dd681abc49aa5b3b753b64ef3f7d0d87b690",
1273
- "targets": [
1274
- ".agents/skills",
1275
- ".claude/skills",
1276
- ".codex/skills",
1277
- ".hermes/skills",
1278
- ".pi/skills",
1279
- ".qoder/skills",
1280
- ".trae/skills"
1281
- ]
1282
- },
1283
1268
  "yss-openapi-draft-review": {
1284
1269
  "source": "project",
1285
1270
  "sourceType": "local",
@@ -6,4 +6,4 @@ OpenAPI Freeze 指已通过评审、可作为前后端实现和契约测试输
6
6
 
7
7
  OpenAPI 契约文件存放于 `docs/api/specs/`,评审检查清单与 Freeze 记录模板见 `docs/api/templates/`。OpenAPI Freeze 或无 API 影响记录完成后,使用 `to-tickets` 拆分成窄垂直切片(见 [[垂直切片Ticket]])。OpenAPI Draft 属于待冻结资产,使用 `ready-for-human`;只有 Freeze 后的契约才支撑 `ready-for-agent` 的切片。
8
8
 
9
- YSS 的 OpenAPI 契约在实现后通过 `yss-openapi` 技能生成 OpenAPI JSON 并刷新前端 Orval API 客户端(见 [[YSS工程技能体系]])。
9
+ YSS 的 OpenAPI 契约以冻结的 OpenAPI 3.1 YAML 为唯一权威。`yss-openapi-governance` 使用锁定的 Redocly CLI 派生 JSON,随后由 `api-integration` 刷新前端 Orval API 客户端;JSON 与生成代码均不得手工修改(见 [[YSS工程技能体系]])。
@@ -2,7 +2,7 @@
2
2
 
3
3
  YSS skills 是项目内置的 YSS 工程规范技能,用于 DDD、UI、OpenAPI、Repository、Controller、DTO、组件和编码规范,与 Matt Pocock 的轻量流程技能互补(见 [[Matt技能体系]])。
4
4
 
5
- 按领域划分:后端脚手架(`yss-ddd-scaffold-generator` 及 Domain / Application / Infrastructure / Web / Adapter 分层技能)、领域建模(`yss-domain`)、持久层(`yss-repository`、`yss-mybatis`、`yss-db2mybatis`)、Web 契约(`yss-web-controller`、`yss-dto`、`yss-openapi`)、前端(`yss-ui`、`yss-components`、`yss-formily`、`yss-hook`、`yss-page-module-development`)、以及横切组件(`yss-cache`、`yss-exception`、`yss-log`、`yss-userinfo`、`yss-distributed-id`、`yss-security-algorithm`、`yss-resilience4j` 等)。
5
+ 按领域划分:后端脚手架(`yss-ddd-scaffold-generator` 及 Domain / Application / Infrastructure / Web / Adapter 分层技能)、领域建模(`yss-domain`)、持久层(`yss-repository`、`yss-mybatis`、`yss-db2mybatis`)、Web 契约(`yss-web-controller`、`yss-dto`、`yss-openapi-governance`、`yss-openapi-draft-review`)、前端(`yss-ui`、`yss-components`、`yss-formily`、`yss-hook`、`yss-page-module-development`、`api-integration`)、以及横切组件(`yss-cache`、`yss-exception`、`yss-log`、`yss-userinfo`、`yss-distributed-id`、`yss-security-algorithm`、`yss-resilience4j` 等)。
6
6
 
7
7
  技能路由纪律:核心 YSS skills 必须消费批准合同并返回 YSS Skill Execution Result(见 [[切片实现合同]]);路径越界、证据缺失、未执行验证、`drift`、`violation` 或 `new_impacts` 阻断继续实现或触发重路由。禁止绕过合同与检查清单直接在 `AGENTS.md` 中自行发明细则。
8
8
 
@@ -28,7 +28,6 @@
28
28
  "yss-log",
29
29
  "yss-microapp-commit",
30
30
  "yss-mybatis",
31
- "yss-openapi",
32
31
  "yss-openapi-draft-review",
33
32
  "yss-openapi-governance",
34
33
  "yss-page-module-development",
@@ -74,7 +73,8 @@
74
73
  "yss-dto",
75
74
  "yss-jdbc",
76
75
  "yss-mybatis",
77
- "yss-repository"
76
+ "yss-repository",
77
+ "yss-web-controller"
78
78
  ]
79
79
  },
80
80
  {
@@ -90,8 +90,7 @@
90
90
  "yss-page-module-development",
91
91
  "yss-ui",
92
92
  "yss-use-table-height",
93
- "yss-use-tree-height",
94
- "yss-web-controller"
93
+ "yss-use-tree-height"
95
94
  ]
96
95
  },
97
96
  {
@@ -99,7 +98,6 @@
99
98
  "description": "用于 YSS API 设计、审查、治理和生成集成的技能。",
100
99
  "skills": [
101
100
  "yss-api-integration",
102
- "yss-openapi",
103
101
  "yss-openapi-draft-review",
104
102
  "yss-openapi-governance"
105
103
  ]
@@ -3,8 +3,8 @@
3
3
  "templateName": "yss-spec-project-template",
4
4
  "templateSource": "github:iloveZzz/yss-spec-project-template",
5
5
  "templateRepository": "https://github.com/iloveZzz/yss-spec-project-template.git",
6
- "requestedRef": "b61c5668d717822c2a69a8e8327fc45b1891b29b",
7
- "templateCommit": "b61c5668d717822c2a69a8e8327fc45b1891b29b",
6
+ "requestedRef": "b6e005a538daae46309daaf9ade7ce8dc6bb93a7",
7
+ "templateCommit": "b6e005a538daae46309daaf9ade7ce8dc6bb93a7",
8
8
  "encodedPaths": {
9
9
  ".agents/skills/beautiful-article/assets/scaffold-template/.npmrc": ".agents/skills/beautiful-article/assets/scaffold-template/__yss_dotfile__.npmrc",
10
10
  ".agents/skills/drawio-academic-skills/.gitignore": ".agents/skills/drawio-academic-skills/__yss_dotfile__.gitignore",
@@ -32,6 +32,6 @@
32
32
  ".trae/skills/drawio-academic-skills/.gitignore": ".trae/skills/drawio-academic-skills/__yss_dotfile__.gitignore",
33
33
  ".trae/skills/excalidraw-diagram-generator/scripts/.gitignore": ".trae/skills/excalidraw-diagram-generator/scripts/__yss_dotfile__.gitignore"
34
34
  },
35
- "snapshotHash": "93231767f7b762d0247e2db3f075c620b15a2820382e16d6d5e424d50ff922f4",
36
- "generatedAt": "2026-08-13T05:40:01.242Z"
35
+ "snapshotHash": "067f8feda878be6e69e94e7248e34afa3c099234ad7009da0c49aefc03265366",
36
+ "generatedAt": "2026-08-16T18:16:16.070Z"
37
37
  }
@@ -1,17 +0,0 @@
1
- {
2
- "isStrict": false,
3
- "allInOne": true,
4
- "outPath": "target/openapi",
5
- "coverOld": true,
6
- "createDebugPage": false,
7
- "packageFilters": "{{base_package}}.*",
8
- "showAuthor": true,
9
- "requestFieldToUnderline": false,
10
- "responseFieldToUnderline": false,
11
- "inlineEnum": true,
12
- "componentType": "NORMAL",
13
- "recursionLimit": 7,
14
- "requestExample": false,
15
- "responseExample": false,
16
- "displayActualType": false
17
- }
@@ -1,116 +0,0 @@
1
- ---
2
- name: yss-openapi
3
- description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
4
- ---
5
-
6
- # YSS OpenAPI
7
-
8
- Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
9
-
10
- This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
11
-
12
- For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
13
-
14
- ## Scope Boundary
15
-
16
- Use this skill for:
17
-
18
- - Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
19
- - Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
20
- - Running frontend API client generation and inspecting generated TypeScript changes.
21
- - Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
22
-
23
- Do not use this skill for:
24
-
25
- - Designing a new API contract from Spec, prototype, or architecture inputs.
26
- - Defining the unified OpenAPI style guide or reusable API governance rules.
27
- - Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
28
- - Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
29
-
30
- For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
31
-
32
- ## Core Flow
33
-
34
- 1. Locate the backend module that owns smart-doc generation.
35
- - Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
36
- - Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
37
- - Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
38
- - For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
39
-
40
- 2. Generate the backend OpenAPI contract from the repository root.
41
- - Use the exact Maven wrapper, profiles, and module selector already used by the repository.
42
- - The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
43
- - Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
44
- - Do not add IntelliJ-specific listener or `-Didea.*` parameters.
45
-
46
- ```bash
47
- ./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
48
- ```
49
-
50
- 3. Find the generated `openapi.json`.
51
- - Use the smart-doc `outPath` from the selected config as the primary source of truth.
52
- - If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
53
- - If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
54
-
55
- 4. Copy the generated contract into the frontend OpenAPI input.
56
- - Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
57
- - Read the Orval config to identify the OpenAPI input path.
58
- - Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
59
-
60
- ```bash
61
- cp <generated-openapi-json> <orval-input-openapi-json>
62
- ```
63
-
64
- 5. Regenerate the frontend API client from the frontend root.
65
- - Use the API generation script already defined by the frontend package when present.
66
- - If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
67
-
68
- ```bash
69
- pnpm <api-generation-script>
70
- ```
71
-
72
- 6. Inspect generated changes before touching call sites.
73
- - Check the Orval input JSON path from the config.
74
- - Check the generated client output paths from the Orval config.
75
- - Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
76
-
77
- ## How It Works
78
-
79
- - `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
80
- - The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
81
- - Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
82
- - The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
83
- - The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
84
- - Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
85
-
86
- ## Repo Checks
87
-
88
- Run these discovery commands when the layout is uncertain:
89
-
90
- ```bash
91
- rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
92
- find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
93
- rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
94
- ```
95
-
96
- ## Troubleshooting
97
-
98
- - If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
99
- - If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
100
- - If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
101
- - If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
102
- - If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
103
- - If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
104
-
105
- ## Verification
106
-
107
- Prefer targeted checks:
108
-
109
- ```bash
110
- test -s <generated-openapi-json>
111
- test -s <orval-input-openapi-json>
112
- cd <frontend-root> && pnpm <api-generation-script>
113
- git diff -- <orval-input-openapi-json> <generated-client-output-paths>
114
- ```
115
-
116
- For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "YSS OpenAPI"
3
- short_description: "Generate YSS OpenAPI and Orval clients"
4
- default_prompt: "Use $yss-openapi to regenerate backend OpenAPI and frontend API clients."
@@ -1,17 +0,0 @@
1
- {
2
- "isStrict": false,
3
- "allInOne": true,
4
- "outPath": "target/openapi",
5
- "coverOld": true,
6
- "createDebugPage": false,
7
- "packageFilters": "{{base_package}}.*",
8
- "showAuthor": true,
9
- "requestFieldToUnderline": false,
10
- "responseFieldToUnderline": false,
11
- "inlineEnum": true,
12
- "componentType": "NORMAL",
13
- "recursionLimit": 7,
14
- "requestExample": false,
15
- "responseExample": false,
16
- "displayActualType": false
17
- }
@@ -1,116 +0,0 @@
1
- ---
2
- name: yss-openapi
3
- description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
4
- ---
5
-
6
- # YSS OpenAPI
7
-
8
- Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
9
-
10
- This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
11
-
12
- For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
13
-
14
- ## Scope Boundary
15
-
16
- Use this skill for:
17
-
18
- - Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
19
- - Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
20
- - Running frontend API client generation and inspecting generated TypeScript changes.
21
- - Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
22
-
23
- Do not use this skill for:
24
-
25
- - Designing a new API contract from Spec, prototype, or architecture inputs.
26
- - Defining the unified OpenAPI style guide or reusable API governance rules.
27
- - Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
28
- - Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
29
-
30
- For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
31
-
32
- ## Core Flow
33
-
34
- 1. Locate the backend module that owns smart-doc generation.
35
- - Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
36
- - Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
37
- - Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
38
- - For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
39
-
40
- 2. Generate the backend OpenAPI contract from the repository root.
41
- - Use the exact Maven wrapper, profiles, and module selector already used by the repository.
42
- - The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
43
- - Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
44
- - Do not add IntelliJ-specific listener or `-Didea.*` parameters.
45
-
46
- ```bash
47
- ./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
48
- ```
49
-
50
- 3. Find the generated `openapi.json`.
51
- - Use the smart-doc `outPath` from the selected config as the primary source of truth.
52
- - If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
53
- - If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
54
-
55
- 4. Copy the generated contract into the frontend OpenAPI input.
56
- - Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
57
- - Read the Orval config to identify the OpenAPI input path.
58
- - Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
59
-
60
- ```bash
61
- cp <generated-openapi-json> <orval-input-openapi-json>
62
- ```
63
-
64
- 5. Regenerate the frontend API client from the frontend root.
65
- - Use the API generation script already defined by the frontend package when present.
66
- - If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
67
-
68
- ```bash
69
- pnpm <api-generation-script>
70
- ```
71
-
72
- 6. Inspect generated changes before touching call sites.
73
- - Check the Orval input JSON path from the config.
74
- - Check the generated client output paths from the Orval config.
75
- - Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
76
-
77
- ## How It Works
78
-
79
- - `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
80
- - The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
81
- - Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
82
- - The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
83
- - The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
84
- - Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
85
-
86
- ## Repo Checks
87
-
88
- Run these discovery commands when the layout is uncertain:
89
-
90
- ```bash
91
- rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
92
- find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
93
- rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
94
- ```
95
-
96
- ## Troubleshooting
97
-
98
- - If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
99
- - If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
100
- - If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
101
- - If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
102
- - If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
103
- - If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
104
-
105
- ## Verification
106
-
107
- Prefer targeted checks:
108
-
109
- ```bash
110
- test -s <generated-openapi-json>
111
- test -s <orval-input-openapi-json>
112
- cd <frontend-root> && pnpm <api-generation-script>
113
- git diff -- <orval-input-openapi-json> <generated-client-output-paths>
114
- ```
115
-
116
- For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "YSS OpenAPI"
3
- short_description: "Generate YSS OpenAPI and Orval clients"
4
- default_prompt: "Use $yss-openapi to regenerate backend OpenAPI and frontend API clients."
@@ -1,17 +0,0 @@
1
- {
2
- "isStrict": false,
3
- "allInOne": true,
4
- "outPath": "target/openapi",
5
- "coverOld": true,
6
- "createDebugPage": false,
7
- "packageFilters": "{{base_package}}.*",
8
- "showAuthor": true,
9
- "requestFieldToUnderline": false,
10
- "responseFieldToUnderline": false,
11
- "inlineEnum": true,
12
- "componentType": "NORMAL",
13
- "recursionLimit": 7,
14
- "requestExample": false,
15
- "responseExample": false,
16
- "displayActualType": false
17
- }
@@ -1,116 +0,0 @@
1
- ---
2
- name: yss-openapi
3
- description: Use when an implemented YSS Java controller/DTO contract must generate OpenAPI JSON and refresh frontend Orval API clients.
4
- ---
5
-
6
- # YSS OpenAPI
7
-
8
- Use this skill to move an already implemented backend controller/DTO contract into the frontend generated API layer.
9
-
10
- This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
11
-
12
- For new or changed API contracts, first produce an OpenAPI Draft in the repository's agreed API draft location, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
13
-
14
- ## Scope Boundary
15
-
16
- Use this skill for:
17
-
18
- - Running `smart-doc-maven-plugin` to generate an OpenAPI JSON file from implemented backend code.
19
- - Copying generated `openapi.json` into the frontend OpenAPI input path expected by Orval.
20
- - Running frontend API client generation and inspecting generated TypeScript changes.
21
- - Verifying that implemented controllers/DTOs emit the expected OpenAPI shape before call-site updates.
22
-
23
- Do not use this skill for:
24
-
25
- - Designing a new API contract from Spec, prototype, or architecture inputs.
26
- - Defining the unified OpenAPI style guide or reusable API governance rules.
27
- - Reviewing design-time OpenAPI Draft files before OpenAPI Freeze.
28
- - Choosing REST resource boundaries, error models, permission behavior, pagination standards, or contract test policy.
29
-
30
- For design-time contract review, use `yss-openapi-draft-review`. For a stronger organization-wide OpenAPI governance baseline, prefer a separate OpenAPI lint/style skill backed by a maintained ruleset tool such as Stoplight Spectral or Redocly CLI, then layer YSS-specific response wrappers, permission, pagination, and security-red-line rules on top.
31
-
32
- ## Core Flow
33
-
34
- 1. Locate the backend module that owns smart-doc generation.
35
- - Search the repository for `smart-doc-maven-plugin`, `configFile`, `outPath`, and `smart-doc.json`.
36
- - Confirm which module contains the controllers/DTOs being changed and which plugin execution includes them.
37
- - Read the smart-doc config instead of assuming a directory. Its `outPath` determines where the generated OpenAPI JSON is emitted.
38
- - For a newly generated YSS scaffold, use the generated `bootstrap/src/main/resources/smart-doc.json` as the baseline and replace `packageFilters` with the actual controller package if needed.
39
-
40
- 2. Generate the backend OpenAPI contract from the repository root.
41
- - Use the exact Maven wrapper, profiles, and module selector already used by the repository.
42
- - The YSS `smart-doc-maven-plugin` version is fixed at `yss-4.0.0`; verify the selected POM declares `<version>yss-4.0.0</version>` before generation.
43
- - Prefer the repo's documented generation command if one exists in scripts, docs, CI, or previous command history.
44
- - Do not add IntelliJ-specific listener or `-Didea.*` parameters.
45
-
46
- ```bash
47
- ./mvnw <repo profiles/options> <smart-doc plugin goal> -f <root-or-module-pom>
48
- ```
49
-
50
- 3. Find the generated `openapi.json`.
51
- - Use the smart-doc `outPath` from the selected config as the primary source of truth.
52
- - If the exact file name is not obvious, search under the configured output directory for OpenAPI JSON files.
53
- - If multiple files exist, choose the one from the module whose config and plugin includes cover the controllers/DTOs being changed.
54
-
55
- 4. Copy the generated contract into the frontend OpenAPI input.
56
- - Locate the frontend root by finding `orval.config.*` and the package script that runs Orval or API generation.
57
- - Read the Orval config to identify the OpenAPI input path.
58
- - Preserve the frontend input path expected by Orval; do not invent a new input path unless the config is updated too.
59
-
60
- ```bash
61
- cp <generated-openapi-json> <orval-input-openapi-json>
62
- ```
63
-
64
- 5. Regenerate the frontend API client from the frontend root.
65
- - Use the API generation script already defined by the frontend package when present.
66
- - If there is no wrapper script, run the configured Orval command and any local cleanup/format scripts referenced by the package scripts.
67
-
68
- ```bash
69
- pnpm <api-generation-script>
70
- ```
71
-
72
- 6. Inspect generated changes before touching call sites.
73
- - Check the Orval input JSON path from the config.
74
- - Check the generated client output paths from the Orval config.
75
- - Update handwritten call sites only after seeing the regenerated function names, request body shape, params type, and result type.
76
-
77
- ## How It Works
78
-
79
- - `smart-doc-maven-plugin` scans Java controller methods, request/response DTOs, annotations, comments, and configured dependency source jars. It emits an OpenAPI contract under the configured `outPath`.
80
- - The YSS baseline config uses `allInOne: true`, `outPath: "target/openapi"`, a service package filter, `componentType: "NORMAL"`, and disables debug pages and request/response examples by default.
81
- - Do not copy environment-specific `serverUrl`, `debugEnvUrl`, `openUrl`, Torna `appToken`, or project-specific `revisionLogs` into a reusable scaffold.
82
- - The backend module is the source of truth for routes, HTTP verbs, DTO field names, enum descriptions, binary responses, multipart inputs, and operation IDs.
83
- - The frontend `orval.config.*` determines which OpenAPI input file is read and where TypeScript schema types plus client functions are generated.
84
- - Local cleanup, export-flattening, or formatting scripts may post-process generated files. Use them only when they are part of the repository's generation script.
85
-
86
- ## Repo Checks
87
-
88
- Run these discovery commands when the layout is uncertain:
89
-
90
- ```bash
91
- rg -n "smart-doc-maven-plugin|configFile|outPath|openapi" -S pom.xml '**/pom.xml' '**/smart-doc.json'
92
- find . -maxdepth 6 \( -name 'orval.config.*' -o -name 'package.json' -o -name 'smart-doc.json' \) -print
93
- rg -n "orval|format:generated|api-schema-cleanup|api-flatten-exports" -S '**/package.json' '**/orval.config.*'
94
- ```
95
-
96
- ## Troubleshooting
97
-
98
- - If a controller or DTO is missing, check `smart-doc.json` `packageFilters`, the plugin `<includes>`, module dependencies, and whether source jars are available in the local Maven repository.
99
- - If schema names look unstable or invalid, check `componentType` and the repository's smart-doc configuration.
100
- - If binary download or Excel upload contracts are wrong, inspect backend annotations and any OpenAPI normalizer/override code in the repo before manually editing generated JSON.
101
- - If Orval changes a client function signature, update frontend call sites to match the generated contract. Do not preserve old call shapes by hand-editing generated files.
102
- - If `api-flatten-exports.cjs` cannot parse `getApi`, inspect the generated `index.ts`; an Orval version or mode change may have changed the output shape.
103
- - If formatting or generation fails in nested workspaces, run from the frontend root that owns `orval.config.*` and the API generation script.
104
-
105
- ## Verification
106
-
107
- Prefer targeted checks:
108
-
109
- ```bash
110
- test -s <generated-openapi-json>
111
- test -s <orval-input-openapi-json>
112
- cd <frontend-root> && pnpm <api-generation-script>
113
- git diff -- <orval-input-openapi-json> <generated-client-output-paths>
114
- ```
115
-
116
- For frontend behavior after API signature changes, run the smallest build or type check that is reliable for the repository and the affected frontend package.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "YSS OpenAPI"
3
- short_description: "Generate YSS OpenAPI and Orval clients"
4
- default_prompt: "Use $yss-openapi to regenerate backend OpenAPI and frontend API clients."