create-yss-spec 3.5.5 → 3.5.8

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 (554) hide show
  1. package/README.md +2 -0
  2. package/bin/create-yss-spec.js +3 -1
  3. package/cli-core.lock.json +11 -7
  4. package/package.json +4 -1
  5. package/src/api/_sync-service.js +3 -1
  6. package/src/command-runner.mjs +44 -9
  7. package/src/content-identity.js +111 -0
  8. package/src/runtime-store.mjs +650 -0
  9. package/src/template/asset-runtime.js +7 -2
  10. package/src/template/instance-runtime.js +27 -9
  11. package/src/validation/metadata.js +8 -0
  12. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  13. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +30 -36
  14. package/template/.agents/skills/archify/SKILL.md +2 -2
  15. package/template/.agents/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  16. package/template/.agents/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  17. package/template/.agents/skills/code-review/SKILL.md +19 -11
  18. package/template/.agents/skills/code-review/references/candidate-capture.md +1 -1
  19. package/template/.agents/skills/code-review/references/legacy-convergence.md +3 -1
  20. package/template/.agents/skills/code-review/references/review-axis-checklists.md +2 -0
  21. package/template/.agents/skills/code-review/references/yss-review-standards.md +4 -2
  22. package/template/.agents/skills/competitive-intelligence/SKILL.md +32 -74
  23. package/template/.agents/skills/file-export-download/SKILL.md +4 -73
  24. package/template/.agents/skills/file-export-download/references/binary-contract-example.md +26 -0
  25. package/template/.agents/skills/file-export-download/references/download-call-example.md +45 -0
  26. package/template/.agents/skills/formily-foundation/SKILL.md +6 -105
  27. package/template/.agents/skills/formily-foundation/references/async-save-example.md +57 -0
  28. package/template/.agents/skills/formily-foundation/references/query-layout.md +50 -0
  29. package/template/.agents/skills/formily-linkage-effects/SKILL.md +3 -116
  30. package/template/.agents/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  31. package/template/.agents/skills/formily-mode-slot-detail/SKILL.md +3 -81
  32. package/template/.agents/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  33. package/template/.agents/skills/formily-step-flow/SKILL.md +3 -143
  34. package/template/.agents/skills/formily-step-flow/references/step-flow-example.md +143 -0
  35. package/template/.agents/skills/handoff/SKILL.md +3 -1
  36. package/template/.agents/skills/i-have-adhd/SKILL.md +2 -2
  37. package/template/.agents/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  38. package/template/.agents/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  39. package/template/.agents/skills/implement/SKILL.md +2 -2
  40. package/template/.agents/skills/llm-wiki/references/transactions.md +2 -2
  41. package/template/.agents/skills/llm-wiki/scripts/core.mjs +40 -2
  42. package/template/.agents/skills/llm-wiki/scripts/transaction.mjs +30 -27
  43. package/template/.agents/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  44. package/template/.agents/skills/lombok/SKILL.md +2 -0
  45. package/template/.agents/skills/mapstruct/SKILL.md +2 -0
  46. package/template/.agents/skills/tdd/SKILL.md +2 -2
  47. package/template/.agents/skills/theme-token-usage/SKILL.md +6 -5
  48. package/template/.agents/skills/wayfinder/references/chart-map.md +2 -2
  49. package/template/.agents/skills/wayfinder/references/ticket-types.md +1 -1
  50. package/template/.agents/skills/yss-api-integration/SKILL.md +13 -50
  51. package/template/.agents/skills/yss-api-integration/references/orval-list-example.md +38 -0
  52. package/template/.agents/skills/yss-application/SKILL.md +11 -5
  53. package/template/.agents/skills/yss-audit-log/SKILL.md +8 -6
  54. package/template/.agents/skills/yss-audit-log/references/README.md +5 -5
  55. package/template/.agents/skills/yss-cache/SKILL.md +4 -4
  56. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  57. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  58. package/template/.agents/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  59. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  60. package/template/.agents/skills/yss-design-system/SKILL.md +2 -2
  61. package/template/.agents/skills/yss-distributed-id/SKILL.md +4 -4
  62. package/template/.agents/skills/yss-dto/SKILL.md +9 -9
  63. package/template/.agents/skills/yss-dto/references/README.md +4 -4
  64. package/template/.agents/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  65. package/template/.agents/skills/yss-excel-mvc/SKILL.md +4 -4
  66. package/template/.agents/skills/yss-exception/SKILL.md +42 -48
  67. package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +26 -170
  68. package/template/.agents/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  69. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  70. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  71. package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  72. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  73. package/template/.agents/skills/yss-mybatis/SKILL.md +4 -4
  74. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +6 -4
  75. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  76. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  77. package/template/.agents/skills/yss-openapi-governance/SKILL.md +5 -7
  78. package/template/.agents/skills/yss-openapi-governance/references/governance-output.md +2 -0
  79. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  80. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +23 -21
  81. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  82. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  83. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  84. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  85. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -1
  86. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  87. package/template/.agents/skills/yss-prototype-stage/SKILL.md +1 -5
  88. package/template/.agents/skills/yss-repository/SKILL.md +2 -2
  89. package/template/.agents/skills/yss-research/SKILL.md +39 -48
  90. package/template/.agents/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  91. package/template/.agents/skills/yss-research/references/competitive-analysis.md +76 -0
  92. package/template/.agents/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  93. package/template/.agents/skills/yss-research/references/evidence-contract.md +8 -0
  94. package/template/.agents/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  95. package/template/.agents/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  96. package/template/.agents/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  97. package/template/.agents/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  98. package/template/.agents/skills/yss-resilience4j/SKILL.md +25 -31
  99. package/template/.agents/skills/yss-security-algorithm/SKILL.md +37 -43
  100. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  101. package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  102. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -5
  103. package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
  104. package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -3
  105. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  106. package/template/.agents/skills/yss-technical-design/SKILL.md +6 -5
  107. package/template/.agents/skills/yss-ui/SKILL.md +7 -1
  108. package/template/.agents/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  109. package/template/.agents/skills/yss-ui/references/checklist.md +38 -96
  110. package/template/.agents/skills/yss-ui/references/component-routing.md +3 -1
  111. package/template/.agents/skills/yss-ui/references/quick-recipes.md +17 -272
  112. package/template/.agents/skills/yss-ui/references/specialized-components.md +3 -3
  113. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  114. package/template/.agents/skills/yss-up-springboot3/SKILL.md +19 -21
  115. package/template/.agents/skills/yss-userinfo/SKILL.md +27 -33
  116. package/template/.agents/skills/yss-validation/SKILL.md +26 -32
  117. package/template/.agents/skills/yss-web-controller/SKILL.md +11 -44
  118. package/template/.agents/skills/yss-web-controller/references/crud-generation.md +38 -0
  119. package/template/.agents/skills/ytable-usage/SKILL.md +2 -2
  120. package/template/.agents/skills/ytree-usage/SKILL.md +2 -80
  121. package/template/.agents/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  122. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +30 -36
  123. package/template/.codex/skills/archify/SKILL.md +2 -2
  124. package/template/.codex/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  125. package/template/.codex/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  126. package/template/.codex/skills/code-review/SKILL.md +19 -11
  127. package/template/.codex/skills/code-review/references/candidate-capture.md +1 -1
  128. package/template/.codex/skills/code-review/references/legacy-convergence.md +3 -1
  129. package/template/.codex/skills/code-review/references/review-axis-checklists.md +2 -0
  130. package/template/.codex/skills/code-review/references/yss-review-standards.md +4 -2
  131. package/template/.codex/skills/competitive-intelligence/SKILL.md +32 -74
  132. package/template/.codex/skills/file-export-download/SKILL.md +4 -73
  133. package/template/.codex/skills/file-export-download/references/binary-contract-example.md +26 -0
  134. package/template/.codex/skills/file-export-download/references/download-call-example.md +45 -0
  135. package/template/.codex/skills/formily-foundation/SKILL.md +6 -105
  136. package/template/.codex/skills/formily-foundation/references/async-save-example.md +57 -0
  137. package/template/.codex/skills/formily-foundation/references/query-layout.md +50 -0
  138. package/template/.codex/skills/formily-linkage-effects/SKILL.md +3 -116
  139. package/template/.codex/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  140. package/template/.codex/skills/formily-mode-slot-detail/SKILL.md +3 -81
  141. package/template/.codex/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  142. package/template/.codex/skills/formily-step-flow/SKILL.md +3 -143
  143. package/template/.codex/skills/formily-step-flow/references/step-flow-example.md +143 -0
  144. package/template/.codex/skills/handoff/SKILL.md +3 -1
  145. package/template/.codex/skills/i-have-adhd/SKILL.md +2 -2
  146. package/template/.codex/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  147. package/template/.codex/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  148. package/template/.codex/skills/implement/SKILL.md +2 -2
  149. package/template/.codex/skills/llm-wiki/references/transactions.md +2 -2
  150. package/template/.codex/skills/llm-wiki/scripts/core.mjs +40 -2
  151. package/template/.codex/skills/llm-wiki/scripts/transaction.mjs +30 -27
  152. package/template/.codex/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  153. package/template/.codex/skills/lombok/SKILL.md +2 -0
  154. package/template/.codex/skills/mapstruct/SKILL.md +2 -0
  155. package/template/.codex/skills/product-design/references/communication-protocol.md +3 -3
  156. package/template/.codex/skills/product-design/references/critical-overrides.md +4 -5
  157. package/template/.codex/skills/product-design/skills/audit/SKILL.md +2 -4
  158. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +6 -8
  159. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +3 -3
  160. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +3 -5
  161. package/template/.codex/skills/product-design/skills/index/SKILL.md +1 -1
  162. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +2 -4
  163. package/template/.codex/skills/product-design/skills/research/SKILL.md +4 -6
  164. package/template/.codex/skills/product-design/skills/research/assets/research-brief-template.md +3 -3
  165. package/template/.codex/skills/product-design/skills/share/SKILL.md +2 -4
  166. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +2 -4
  167. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
  168. package/template/.codex/skills/tdd/SKILL.md +2 -2
  169. package/template/.codex/skills/theme-token-usage/SKILL.md +6 -5
  170. package/template/.codex/skills/wayfinder/references/chart-map.md +2 -2
  171. package/template/.codex/skills/wayfinder/references/ticket-types.md +1 -1
  172. package/template/.codex/skills/yss-api-integration/SKILL.md +13 -50
  173. package/template/.codex/skills/yss-api-integration/references/orval-list-example.md +38 -0
  174. package/template/.codex/skills/yss-application/SKILL.md +11 -5
  175. package/template/.codex/skills/yss-audit-log/SKILL.md +8 -6
  176. package/template/.codex/skills/yss-audit-log/references/README.md +5 -5
  177. package/template/.codex/skills/yss-cache/SKILL.md +4 -4
  178. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  179. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  180. package/template/.codex/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  181. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  182. package/template/.codex/skills/yss-design-system/SKILL.md +2 -2
  183. package/template/.codex/skills/yss-distributed-id/SKILL.md +4 -4
  184. package/template/.codex/skills/yss-dto/SKILL.md +9 -9
  185. package/template/.codex/skills/yss-dto/references/README.md +4 -4
  186. package/template/.codex/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  187. package/template/.codex/skills/yss-excel-mvc/SKILL.md +4 -4
  188. package/template/.codex/skills/yss-exception/SKILL.md +42 -48
  189. package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +26 -170
  190. package/template/.codex/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  191. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  192. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  193. package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  194. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  195. package/template/.codex/skills/yss-mybatis/SKILL.md +4 -4
  196. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +6 -4
  197. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  198. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  199. package/template/.codex/skills/yss-openapi-governance/SKILL.md +5 -7
  200. package/template/.codex/skills/yss-openapi-governance/references/governance-output.md +2 -0
  201. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  202. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +23 -21
  203. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  204. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  205. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  206. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  207. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -1
  208. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  209. package/template/.codex/skills/yss-prototype-stage/SKILL.md +1 -5
  210. package/template/.codex/skills/yss-repository/SKILL.md +2 -2
  211. package/template/.codex/skills/yss-research/SKILL.md +39 -48
  212. package/template/.codex/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  213. package/template/.codex/skills/yss-research/references/competitive-analysis.md +76 -0
  214. package/template/.codex/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  215. package/template/.codex/skills/yss-research/references/evidence-contract.md +8 -0
  216. package/template/.codex/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  217. package/template/.codex/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  218. package/template/.codex/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  219. package/template/.codex/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  220. package/template/.codex/skills/yss-resilience4j/SKILL.md +25 -31
  221. package/template/.codex/skills/yss-security-algorithm/SKILL.md +37 -43
  222. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  223. package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  224. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -5
  225. package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
  226. package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -3
  227. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  228. package/template/.codex/skills/yss-technical-design/SKILL.md +6 -5
  229. package/template/.codex/skills/yss-ui/SKILL.md +7 -1
  230. package/template/.codex/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  231. package/template/.codex/skills/yss-ui/references/checklist.md +38 -96
  232. package/template/.codex/skills/yss-ui/references/component-routing.md +3 -1
  233. package/template/.codex/skills/yss-ui/references/quick-recipes.md +17 -272
  234. package/template/.codex/skills/yss-ui/references/specialized-components.md +3 -3
  235. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  236. package/template/.codex/skills/yss-up-springboot3/SKILL.md +19 -21
  237. package/template/.codex/skills/yss-userinfo/SKILL.md +27 -33
  238. package/template/.codex/skills/yss-validation/SKILL.md +26 -32
  239. package/template/.codex/skills/yss-web-controller/SKILL.md +11 -44
  240. package/template/.codex/skills/yss-web-controller/references/crud-generation.md +38 -0
  241. package/template/.codex/skills/ytable-usage/SKILL.md +2 -2
  242. package/template/.codex/skills/ytree-usage/SKILL.md +2 -80
  243. package/template/.codex/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  244. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +30 -36
  245. package/template/.cursor/skills/archify/SKILL.md +2 -2
  246. package/template/.cursor/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  247. package/template/.cursor/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  248. package/template/.cursor/skills/code-review/SKILL.md +19 -11
  249. package/template/.cursor/skills/code-review/references/candidate-capture.md +1 -1
  250. package/template/.cursor/skills/code-review/references/legacy-convergence.md +3 -1
  251. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +2 -0
  252. package/template/.cursor/skills/code-review/references/yss-review-standards.md +4 -2
  253. package/template/.cursor/skills/competitive-intelligence/SKILL.md +32 -74
  254. package/template/.cursor/skills/file-export-download/SKILL.md +4 -73
  255. package/template/.cursor/skills/file-export-download/references/binary-contract-example.md +26 -0
  256. package/template/.cursor/skills/file-export-download/references/download-call-example.md +45 -0
  257. package/template/.cursor/skills/formily-foundation/SKILL.md +6 -105
  258. package/template/.cursor/skills/formily-foundation/references/async-save-example.md +57 -0
  259. package/template/.cursor/skills/formily-foundation/references/query-layout.md +50 -0
  260. package/template/.cursor/skills/formily-linkage-effects/SKILL.md +3 -116
  261. package/template/.cursor/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  262. package/template/.cursor/skills/formily-mode-slot-detail/SKILL.md +3 -81
  263. package/template/.cursor/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  264. package/template/.cursor/skills/formily-step-flow/SKILL.md +3 -143
  265. package/template/.cursor/skills/formily-step-flow/references/step-flow-example.md +143 -0
  266. package/template/.cursor/skills/handoff/SKILL.md +3 -1
  267. package/template/.cursor/skills/i-have-adhd/SKILL.md +2 -2
  268. package/template/.cursor/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  269. package/template/.cursor/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  270. package/template/.cursor/skills/implement/SKILL.md +2 -2
  271. package/template/.cursor/skills/llm-wiki/references/transactions.md +2 -2
  272. package/template/.cursor/skills/llm-wiki/scripts/core.mjs +40 -2
  273. package/template/.cursor/skills/llm-wiki/scripts/transaction.mjs +30 -27
  274. package/template/.cursor/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  275. package/template/.cursor/skills/lombok/SKILL.md +2 -0
  276. package/template/.cursor/skills/mapstruct/SKILL.md +2 -0
  277. package/template/.cursor/skills/tdd/SKILL.md +2 -2
  278. package/template/.cursor/skills/theme-token-usage/SKILL.md +6 -5
  279. package/template/.cursor/skills/wayfinder/references/chart-map.md +2 -2
  280. package/template/.cursor/skills/wayfinder/references/ticket-types.md +1 -1
  281. package/template/.cursor/skills/yss-api-integration/SKILL.md +13 -50
  282. package/template/.cursor/skills/yss-api-integration/references/orval-list-example.md +38 -0
  283. package/template/.cursor/skills/yss-application/SKILL.md +11 -5
  284. package/template/.cursor/skills/yss-audit-log/SKILL.md +8 -6
  285. package/template/.cursor/skills/yss-audit-log/references/README.md +5 -5
  286. package/template/.cursor/skills/yss-cache/SKILL.md +4 -4
  287. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  288. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  289. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  290. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  291. package/template/.cursor/skills/yss-design-system/SKILL.md +2 -2
  292. package/template/.cursor/skills/yss-distributed-id/SKILL.md +4 -4
  293. package/template/.cursor/skills/yss-dto/SKILL.md +9 -9
  294. package/template/.cursor/skills/yss-dto/references/README.md +4 -4
  295. package/template/.cursor/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  296. package/template/.cursor/skills/yss-excel-mvc/SKILL.md +4 -4
  297. package/template/.cursor/skills/yss-exception/SKILL.md +42 -48
  298. package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +26 -170
  299. package/template/.cursor/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  300. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  301. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  302. package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  303. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  304. package/template/.cursor/skills/yss-mybatis/SKILL.md +4 -4
  305. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +6 -4
  306. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  307. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  308. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +5 -7
  309. package/template/.cursor/skills/yss-openapi-governance/references/governance-output.md +2 -0
  310. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  311. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +23 -21
  312. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  313. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  314. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  315. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  316. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -1
  317. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  318. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +1 -5
  319. package/template/.cursor/skills/yss-repository/SKILL.md +2 -2
  320. package/template/.cursor/skills/yss-research/SKILL.md +39 -48
  321. package/template/.cursor/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  322. package/template/.cursor/skills/yss-research/references/competitive-analysis.md +76 -0
  323. package/template/.cursor/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  324. package/template/.cursor/skills/yss-research/references/evidence-contract.md +8 -0
  325. package/template/.cursor/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  326. package/template/.cursor/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  327. package/template/.cursor/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  328. package/template/.cursor/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  329. package/template/.cursor/skills/yss-resilience4j/SKILL.md +25 -31
  330. package/template/.cursor/skills/yss-security-algorithm/SKILL.md +37 -43
  331. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  332. package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  333. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -5
  334. package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
  335. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -3
  336. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  337. package/template/.cursor/skills/yss-technical-design/SKILL.md +6 -5
  338. package/template/.cursor/skills/yss-ui/SKILL.md +7 -1
  339. package/template/.cursor/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  340. package/template/.cursor/skills/yss-ui/references/checklist.md +38 -96
  341. package/template/.cursor/skills/yss-ui/references/component-routing.md +3 -1
  342. package/template/.cursor/skills/yss-ui/references/quick-recipes.md +17 -272
  343. package/template/.cursor/skills/yss-ui/references/specialized-components.md +3 -3
  344. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  345. package/template/.cursor/skills/yss-up-springboot3/SKILL.md +19 -21
  346. package/template/.cursor/skills/yss-userinfo/SKILL.md +27 -33
  347. package/template/.cursor/skills/yss-validation/SKILL.md +26 -32
  348. package/template/.cursor/skills/yss-web-controller/SKILL.md +11 -44
  349. package/template/.cursor/skills/yss-web-controller/references/crud-generation.md +38 -0
  350. package/template/.cursor/skills/ytable-usage/SKILL.md +2 -2
  351. package/template/.cursor/skills/ytree-usage/SKILL.md +2 -80
  352. package/template/.cursor/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  353. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +30 -36
  354. package/template/.pi/skills/archify/SKILL.md +2 -2
  355. package/template/.pi/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  356. package/template/.pi/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  357. package/template/.pi/skills/code-review/SKILL.md +19 -11
  358. package/template/.pi/skills/code-review/references/candidate-capture.md +1 -1
  359. package/template/.pi/skills/code-review/references/legacy-convergence.md +3 -1
  360. package/template/.pi/skills/code-review/references/review-axis-checklists.md +2 -0
  361. package/template/.pi/skills/code-review/references/yss-review-standards.md +4 -2
  362. package/template/.pi/skills/competitive-intelligence/SKILL.md +32 -74
  363. package/template/.pi/skills/file-export-download/SKILL.md +4 -73
  364. package/template/.pi/skills/file-export-download/references/binary-contract-example.md +26 -0
  365. package/template/.pi/skills/file-export-download/references/download-call-example.md +45 -0
  366. package/template/.pi/skills/formily-foundation/SKILL.md +6 -105
  367. package/template/.pi/skills/formily-foundation/references/async-save-example.md +57 -0
  368. package/template/.pi/skills/formily-foundation/references/query-layout.md +50 -0
  369. package/template/.pi/skills/formily-linkage-effects/SKILL.md +3 -116
  370. package/template/.pi/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  371. package/template/.pi/skills/formily-mode-slot-detail/SKILL.md +3 -81
  372. package/template/.pi/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  373. package/template/.pi/skills/formily-step-flow/SKILL.md +3 -143
  374. package/template/.pi/skills/formily-step-flow/references/step-flow-example.md +143 -0
  375. package/template/.pi/skills/handoff/SKILL.md +3 -1
  376. package/template/.pi/skills/i-have-adhd/SKILL.md +2 -2
  377. package/template/.pi/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  378. package/template/.pi/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  379. package/template/.pi/skills/implement/SKILL.md +2 -2
  380. package/template/.pi/skills/llm-wiki/references/transactions.md +2 -2
  381. package/template/.pi/skills/llm-wiki/scripts/core.mjs +40 -2
  382. package/template/.pi/skills/llm-wiki/scripts/transaction.mjs +30 -27
  383. package/template/.pi/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  384. package/template/.pi/skills/lombok/SKILL.md +2 -0
  385. package/template/.pi/skills/mapstruct/SKILL.md +2 -0
  386. package/template/.pi/skills/tdd/SKILL.md +2 -2
  387. package/template/.pi/skills/theme-token-usage/SKILL.md +6 -5
  388. package/template/.pi/skills/wayfinder/references/chart-map.md +2 -2
  389. package/template/.pi/skills/wayfinder/references/ticket-types.md +1 -1
  390. package/template/.pi/skills/yss-api-integration/SKILL.md +13 -50
  391. package/template/.pi/skills/yss-api-integration/references/orval-list-example.md +38 -0
  392. package/template/.pi/skills/yss-application/SKILL.md +11 -5
  393. package/template/.pi/skills/yss-audit-log/SKILL.md +8 -6
  394. package/template/.pi/skills/yss-audit-log/references/README.md +5 -5
  395. package/template/.pi/skills/yss-cache/SKILL.md +4 -4
  396. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  397. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  398. package/template/.pi/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  399. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  400. package/template/.pi/skills/yss-design-system/SKILL.md +2 -2
  401. package/template/.pi/skills/yss-distributed-id/SKILL.md +4 -4
  402. package/template/.pi/skills/yss-dto/SKILL.md +9 -9
  403. package/template/.pi/skills/yss-dto/references/README.md +4 -4
  404. package/template/.pi/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  405. package/template/.pi/skills/yss-excel-mvc/SKILL.md +4 -4
  406. package/template/.pi/skills/yss-exception/SKILL.md +42 -48
  407. package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +26 -170
  408. package/template/.pi/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  409. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  410. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  411. package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  412. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  413. package/template/.pi/skills/yss-mybatis/SKILL.md +4 -4
  414. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +6 -4
  415. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  416. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  417. package/template/.pi/skills/yss-openapi-governance/SKILL.md +5 -7
  418. package/template/.pi/skills/yss-openapi-governance/references/governance-output.md +2 -0
  419. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  420. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +23 -21
  421. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  422. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  423. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  424. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  425. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -1
  426. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  427. package/template/.pi/skills/yss-prototype-stage/SKILL.md +1 -5
  428. package/template/.pi/skills/yss-repository/SKILL.md +2 -2
  429. package/template/.pi/skills/yss-research/SKILL.md +39 -48
  430. package/template/.pi/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  431. package/template/.pi/skills/yss-research/references/competitive-analysis.md +76 -0
  432. package/template/.pi/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  433. package/template/.pi/skills/yss-research/references/evidence-contract.md +8 -0
  434. package/template/.pi/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  435. package/template/.pi/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  436. package/template/.pi/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  437. package/template/.pi/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  438. package/template/.pi/skills/yss-resilience4j/SKILL.md +25 -31
  439. package/template/.pi/skills/yss-security-algorithm/SKILL.md +37 -43
  440. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  441. package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  442. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -5
  443. package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
  444. package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -3
  445. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  446. package/template/.pi/skills/yss-technical-design/SKILL.md +6 -5
  447. package/template/.pi/skills/yss-ui/SKILL.md +7 -1
  448. package/template/.pi/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  449. package/template/.pi/skills/yss-ui/references/checklist.md +38 -96
  450. package/template/.pi/skills/yss-ui/references/component-routing.md +3 -1
  451. package/template/.pi/skills/yss-ui/references/quick-recipes.md +17 -272
  452. package/template/.pi/skills/yss-ui/references/specialized-components.md +3 -3
  453. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  454. package/template/.pi/skills/yss-up-springboot3/SKILL.md +19 -21
  455. package/template/.pi/skills/yss-userinfo/SKILL.md +27 -33
  456. package/template/.pi/skills/yss-validation/SKILL.md +26 -32
  457. package/template/.pi/skills/yss-web-controller/SKILL.md +11 -44
  458. package/template/.pi/skills/yss-web-controller/references/crud-generation.md +38 -0
  459. package/template/.pi/skills/ytable-usage/SKILL.md +2 -2
  460. package/template/.pi/skills/ytree-usage/SKILL.md +2 -80
  461. package/template/.pi/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  462. package/template/.template-spec/agents/backend-architecture-profiles.md +1 -1
  463. package/template/.template-spec/agents/digital-human-roles.md +5 -1
  464. package/template/.template-spec/agents/digital-human-roles.yaml +49 -1
  465. package/template/.template-spec/engineering/backend-platforms.json +1 -1
  466. package/template/.template-spec/plan/templates/competitive-analysis-template.md +38 -36
  467. package/template/.template-spec/plan/templates/competitive-matrix-template.md +37 -17
  468. package/template/.template-spec/process/document-writing.md +22 -3
  469. package/template/.template-spec/process/harness-process-tailoring.md +5 -1
  470. package/template/.template-spec/process/implementation-repo-integration.md +26 -8
  471. package/template/.template-spec/process/research-completion.md +2 -0
  472. package/template/.template-spec/process/runtime-storage.md +78 -0
  473. package/template/.template-spec/process/schemas/approval-context.schema.json +67 -0
  474. package/template/.template-spec/process/schemas/approval-record.schema.json +179 -16
  475. package/template/.template-spec/process/schemas/backend-delivery.schema.json +16 -0
  476. package/template/.template-spec/process/schemas/delivery-preflight-input.schema.json +4 -0
  477. package/template/.template-spec/process/schemas/digital-human-task-package.schema.json +236 -1
  478. package/template/.template-spec/process/schemas/implementation-repository-preparation-result.schema.json +335 -52
  479. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +11 -0
  480. package/template/.template-spec/process/schemas/project-scaffold-contract.schema.json +3 -0
  481. package/template/.template-spec/process/schemas/review-bundle.schema.json +347 -35
  482. package/template/.template-spec/process/schemas/strategic-design-handoff-v3.schema.json +504 -0
  483. package/template/.template-spec/process/schemas/strategic-design-handoff-v4.schema.json +544 -8
  484. package/template/.template-spec/process/schemas/strategic-design-handoff-v5.schema.json +616 -0
  485. package/template/.template-spec/process/schemas/strategic-design-handoff.schema.json +616 -0
  486. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +712 -109
  487. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy.schema.json +595 -90
  488. package/template/.template-spec/process/schemas/strategic-handoff-export-v2.schema.json +448 -0
  489. package/template/.template-spec/process/schemas/strategic-handoff-export.schema.json +392 -0
  490. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +556 -83
  491. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package.schema.json +418 -57
  492. package/template/.template-spec/process/subagent-collaboration.md +7 -1
  493. package/template/.template-spec/templates/approval-record-template.json +7 -3
  494. package/template/.template-spec/templates/approval-record-template.yaml +8 -2
  495. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +92 -2
  496. package/template/.template-spec/templates/retro-report-template.md +10 -3
  497. package/template/.template-spec/templates/review-bundle-template.yaml +19 -10
  498. package/template/AGENTS.md +4 -3
  499. package/template/CONTEXT.md +2 -2
  500. package/template/README.md +2 -2
  501. package/template/scripts/advance-maintenance-iteration +51 -0
  502. package/template/scripts/lib/approval-checkpoint-discovery.mjs +26 -0
  503. package/template/scripts/lib/approval-consumption.mjs +35 -0
  504. package/template/scripts/lib/approval-current.mjs +111 -0
  505. package/template/scripts/lib/approval-record-io.mjs +56 -0
  506. package/template/scripts/lib/approval-record.mjs +79 -184
  507. package/template/scripts/lib/approved-execution-context.mjs +8 -6
  508. package/template/scripts/lib/asset-transactions.mjs +5 -1
  509. package/template/scripts/lib/backend-delivery.mjs +1 -1
  510. package/template/scripts/lib/backend-review.mjs +2 -1
  511. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +3 -2
  512. package/template/scripts/lib/business-ticket-lifecycle.mjs +2 -1
  513. package/template/scripts/lib/checkpoint-commit.mjs +50 -0
  514. package/template/scripts/lib/command-runner.mjs +44 -9
  515. package/template/scripts/lib/content-identity.mjs +273 -0
  516. package/template/scripts/lib/delivery-preflight.mjs +2 -1
  517. package/template/scripts/lib/digital-human-roles.mjs +12 -5
  518. package/template/scripts/lib/drift-report.mjs +110 -0
  519. package/template/scripts/lib/existing-backend-architecture.mjs +4 -1
  520. package/template/scripts/lib/lifecycle-context-query.mjs +172 -11
  521. package/template/scripts/lib/lifecycle-controls.mjs +9 -19
  522. package/template/scripts/lib/lifecycle-presentation.mjs +5 -0
  523. package/template/scripts/lib/lifecycle-status.mjs +63 -12
  524. package/template/scripts/lib/lifecycle-transition.mjs +2 -1
  525. package/template/scripts/lib/maintenance-candidate.mjs +24 -30
  526. package/template/scripts/lib/maintenance-research.mjs +52 -8
  527. package/template/scripts/lib/maintenance-storage.mjs +81 -0
  528. package/template/scripts/lib/plan-spec-entry.mjs +2 -1
  529. package/template/scripts/lib/project-governance.mjs +2 -1
  530. package/template/scripts/lib/read-only-intake.mjs +44 -9
  531. package/template/scripts/lib/review-capabilities.mjs +234 -0
  532. package/template/scripts/lib/review-package.mjs +100 -0
  533. package/template/scripts/lib/runtime-store.mjs +650 -0
  534. package/template/scripts/lib/skill-registry.mjs +4 -4
  535. package/template/scripts/lib/strategic-handoff.mjs +22 -9
  536. package/template/scripts/lib/task-package.mjs +47 -16
  537. package/template/scripts/lifecycle-status +26 -1
  538. package/template/scripts/maintenance-path +11 -0
  539. package/template/scripts/prepare-review-package +8 -0
  540. package/template/scripts/project-ci +13 -3
  541. package/template/scripts/query-lifecycle-context +8 -1
  542. package/template/scripts/run-read-only-intake +2 -2
  543. package/template/scripts/runtime-store +40 -0
  544. package/template/scripts/verify-approval-record +21 -13
  545. package/template/scripts/verify-lifecycle-checkpoint +7 -3
  546. package/template/scripts/verify-project-instance +21 -1
  547. package/template/skills-lock.json +62 -61
  548. package/template.snapshot.json +4 -4
  549. package/vendor/cli-core/cli.mjs +2 -0
  550. package/vendor/cli-core/command-runner.mjs +44 -9
  551. package/vendor/cli-core/package.json +1 -1
  552. package/vendor/cli-core/runtime-store.mjs +650 -0
  553. package/vendor/cli-core/scaffold.mjs +4 -2
  554. package/vendor/cli-core/tests/package-contract.mjs +14 -0
@@ -0,0 +1,57 @@
1
+ # 异步保存回调
2
+
3
+ 等待父回调完成的保存场景读取本例。`onSubmit` 必须返回实际保存 Promise;发送 `emit` 事件只返回 void,不能等待父组件的异步请求。
4
+
5
+ Orval 请求失败沿用 [错误处理](examples.md#8-orval-提交与错误处理),由 mutator 统一提示,调用方恢复 loading 并传播 reject。
6
+
7
+ ```vue
8
+ <script setup lang="ts">
9
+ import { YFormily, type ISchema } from '@yss-ui/components';
10
+
11
+ /** 表单保存回调 Props。 */
12
+ interface SaveFormProps {
13
+ onSave: (values: Record<string, any>) => Promise<void>;
14
+ }
15
+
16
+ /** 表单保存回调。 */
17
+ const props = defineProps<SaveFormProps>();
18
+
19
+ /** 校验通过后提交表单数据。 */
20
+ const onSubmit = (values: Record<string, any>) => {
21
+ return props.onSave(values);
22
+ };
23
+
24
+ /** 基础表单 Schema。 */
25
+ const schema: ISchema = {
26
+ type: 'object',
27
+ properties: {
28
+ layout: {
29
+ type: 'void',
30
+ 'x-component': 'FormLayout',
31
+ 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
32
+ properties: {
33
+ grid: {
34
+ type: 'void',
35
+ 'x-component': 'FormGrid',
36
+ 'x-component-props': { maxColumns: 3, minColumns: 1, minWidth: 260 },
37
+ properties: {
38
+ name: { type: 'string', title: '名称', 'x-decorator': 'FormItem', 'x-component': 'Input', required: true, 'x-validator': [{ required: true, whitespace: true, message: '请输入名称' }] },
39
+ submit: {
40
+ type: 'void',
41
+ 'x-component': 'Submit',
42
+ 'x-content': '提交',
43
+ 'x-component-props': { onSubmit: '{{ onSubmit }}' },
44
+ },
45
+ },
46
+ },
47
+ },
48
+ },
49
+ },
50
+ };
51
+ </script>
52
+
53
+ <template>
54
+ <YFormily :schema="schema" :scope="{ onSubmit }" />
55
+ </template>
56
+ ```
57
+
@@ -0,0 +1,50 @@
1
+ ## 业务查询区布局
2
+
3
+ ```vue
4
+ <template>
5
+ <YCard class="demo-page__search-card" :padding="16">
6
+ <div class="demo-page__search-content">
7
+ <div class="demo-page__search-form">
8
+ <YFormily v-model="queryModel" :schema="searchSchema" />
9
+ </div>
10
+ <div class="demo-page__search-actions">
11
+ <YButton type="primary" @click="handleSearch">查询</YButton>
12
+ <YButton @click="handleReset">重置</YButton>
13
+ </div>
14
+ </div>
15
+ </YCard>
16
+ </template>
17
+ ```
18
+
19
+ ```less
20
+ .demo-page {
21
+ &__search-content {
22
+ display: flex;
23
+ flex-direction: column;
24
+ align-items: stretch;
25
+ gap: 16px;
26
+ }
27
+
28
+ &__search-form {
29
+ width: 100%;
30
+ min-width: 0;
31
+
32
+ :deep(.ant-formily-form-item) {
33
+ margin-bottom: 0;
34
+ }
35
+
36
+ :deep(.ant-formily-form-grid) {
37
+ width: 100%;
38
+ }
39
+ }
40
+
41
+ &__search-actions {
42
+ display: flex;
43
+ width: 100%;
44
+ flex: 0 0 auto;
45
+ align-items: center;
46
+ justify-content: flex-end;
47
+ gap: 12px;
48
+ }
49
+ }
50
+ ```
@@ -3,7 +3,7 @@ name: formily-linkage-effects
3
3
  description: 指导 YFormily 字段联动与表单级副作用;当实现动态显隐、禁用、级联选项、scope 事件、x-reactions、effects、异步联动或客户端校验失败兜底时使用。
4
4
  ---
5
5
 
6
- # Formily Linkage Effects Skill
6
+ # YFormily 联动与副作用
7
7
 
8
8
  ## 触发条件
9
9
 
@@ -33,122 +33,9 @@ description: 指导 YFormily 字段联动与表单级副作用;当实现动态
33
33
  - Orval API 的网络/业务错误已由 `mutator.ts` 提示并 reject,业务 `else`/`catch` 禁止重复 `message.error`。
34
34
  - 分步需求默认走 `formily-step-flow`,不在此 skill 中给 `FormStep` 默认方案。
35
35
 
36
- ## 标准代码骨架
36
+ ## 按需示例
37
37
 
38
- ```vue
39
- <script setup lang="ts">
40
- import type { DataField, Form, IFieldState } from '@formily/core';
41
- import { createForm, onFieldInit, onFieldValueChange, onFormSubmitValidateFailed } from '@formily/core';
42
- import { YFormily, type ISchema } from '@yss-ui/components';
43
- import { message } from 'ant-design-vue';
44
-
45
- /** 下拉选项。 */
46
- interface OptionItem {
47
- label: string;
48
- value: string;
49
- }
50
-
51
- /** 根据省份返回城市选项。 */
52
- const getCityOptions = (province?: string): OptionItem[] =>
53
- province === 'zhejiang'
54
- ? [{ label: '杭州', value: 'hangzhou' }]
55
- : province === 'jiangsu'
56
- ? [{ label: '南京', value: 'nanjing' }]
57
- : [];
58
-
59
- /** 同步城市选项并清理已经失效的旧值。 */
60
- const syncCity = (field: DataField) => {
61
- const options = getCityOptions(field.value as string | undefined);
62
- field.form.setFieldState('city', (state: IFieldState) => {
63
- state.dataSource = options;
64
- if (!options.some(item => item.value === state.value)) state.value = undefined;
65
- });
66
- };
67
-
68
- /** 外部 Form 实例,用于承载表单级 effects。 */
69
- const form: Form = createForm({
70
- values: { province: 'zhejiang', city: 'hangzhou' },
71
- effects() {
72
- onFieldInit('province', field => syncCity(field as DataField));
73
- onFieldValueChange('province', field => syncCity(field as DataField));
74
- onFormSubmitValidateFailed(() => {
75
- const feedbacks = form.queryFeedbacks({ type: 'error' });
76
- message.error(feedbacks[0]?.messages?.[0] ?? '请检查表单');
77
- });
78
- },
79
- });
80
-
81
- /** 表单保存回调 Props。 */
82
- interface SaveFormProps {
83
- onSave: (values: Record<string, any>) => Promise<void>;
84
- }
85
-
86
- /** 表单保存回调。 */
87
- const props = defineProps<SaveFormProps>();
88
-
89
- /** 校验通过后提交;API 错误由 mutator 统一提示。 */
90
- const onSubmit = (values: Record<string, any>) => {
91
- return props.onSave(values);
92
- };
93
-
94
- /** 级联表单 Schema。 */
95
- const schema: ISchema = {
96
- type: 'object',
97
- properties: {
98
- layout: {
99
- type: 'void',
100
- 'x-component': 'FormLayout',
101
- 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
102
- properties: {
103
- grid: {
104
- type: 'void',
105
- 'x-component': 'FormGrid',
106
- 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
107
- properties: {
108
- province: {
109
- type: 'string',
110
- title: '省份',
111
- required: true,
112
- enum: [
113
- { label: '浙江', value: 'zhejiang' },
114
- { label: '江苏', value: 'jiangsu' },
115
- ],
116
- 'x-decorator': 'FormItem',
117
- 'x-component': 'Select',
118
- },
119
- city: {
120
- type: 'string',
121
- title: '城市',
122
- required: true,
123
- 'x-decorator': 'FormItem',
124
- 'x-component': 'Select',
125
- },
126
- actions: {
127
- type: 'void',
128
- 'x-decorator': 'FormItem',
129
- 'x-decorator-props': { gridSpan: 2, colon: false },
130
- 'x-component': 'AutoButtonGroup',
131
- properties: {
132
- submit: {
133
- type: 'void',
134
- 'x-component': 'Submit',
135
- 'x-content': '提交',
136
- 'x-component-props': { onSubmit: '{{ onSubmit }}' },
137
- },
138
- },
139
- },
140
- },
141
- },
142
- },
143
- },
144
- },
145
- };
146
- </script>
147
-
148
- <template>
149
- <YFormily :schema="schema" :form="form" :scope="{ onSubmit }" />
150
- </template>
151
- ```
38
+ 首次组织 `createForm + effects`、排查初始化联动或校验反馈时,读取 [联动与 effects 示例](references/linkage-example.md)。基础布局和提交仍按 `formily-foundation`。
152
39
 
153
40
  ## 交付检查清单
154
41
 
@@ -0,0 +1,116 @@
1
+ ## 标准代码骨架
2
+
3
+ ```vue
4
+ <script setup lang="ts">
5
+ import type { DataField, Form, IFieldState } from '@formily/core';
6
+ import { createForm, onFieldInit, onFieldValueChange, onFormSubmitValidateFailed } from '@formily/core';
7
+ import { YFormily, type ISchema } from '@yss-ui/components';
8
+ import { message } from 'ant-design-vue';
9
+
10
+ /** 下拉选项。 */
11
+ interface OptionItem {
12
+ label: string;
13
+ value: string;
14
+ }
15
+
16
+ /** 根据省份返回城市选项。 */
17
+ const getCityOptions = (province?: string): OptionItem[] =>
18
+ province === 'zhejiang'
19
+ ? [{ label: '杭州', value: 'hangzhou' }]
20
+ : province === 'jiangsu'
21
+ ? [{ label: '南京', value: 'nanjing' }]
22
+ : [];
23
+
24
+ /** 同步城市选项并清理已经失效的旧值。 */
25
+ const syncCity = (field: DataField) => {
26
+ const options = getCityOptions(field.value as string | undefined);
27
+ field.form.setFieldState('city', (state: IFieldState) => {
28
+ state.dataSource = options;
29
+ if (!options.some(item => item.value === state.value)) state.value = undefined;
30
+ });
31
+ };
32
+
33
+ /** 外部 Form 实例,用于承载表单级 effects。 */
34
+ const form: Form = createForm({
35
+ values: { province: 'zhejiang', city: 'hangzhou' },
36
+ effects() {
37
+ onFieldInit('province', field => syncCity(field as DataField));
38
+ onFieldValueChange('province', field => syncCity(field as DataField));
39
+ onFormSubmitValidateFailed(() => {
40
+ const feedbacks = form.queryFeedbacks({ type: 'error' });
41
+ message.error(feedbacks[0]?.messages?.[0] ?? '请检查表单');
42
+ });
43
+ },
44
+ });
45
+
46
+ /** 表单保存回调 Props。 */
47
+ interface SaveFormProps {
48
+ onSave: (values: Record<string, any>) => Promise<void>;
49
+ }
50
+
51
+ /** 表单保存回调。 */
52
+ const props = defineProps<SaveFormProps>();
53
+
54
+ /** 校验通过后提交;API 错误由 mutator 统一提示。 */
55
+ const onSubmit = (values: Record<string, any>) => {
56
+ return props.onSave(values);
57
+ };
58
+
59
+ /** 级联表单 Schema。 */
60
+ const schema: ISchema = {
61
+ type: 'object',
62
+ properties: {
63
+ layout: {
64
+ type: 'void',
65
+ 'x-component': 'FormLayout',
66
+ 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
67
+ properties: {
68
+ grid: {
69
+ type: 'void',
70
+ 'x-component': 'FormGrid',
71
+ 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
72
+ properties: {
73
+ province: {
74
+ type: 'string',
75
+ title: '省份',
76
+ required: true,
77
+ enum: [
78
+ { label: '浙江', value: 'zhejiang' },
79
+ { label: '江苏', value: 'jiangsu' },
80
+ ],
81
+ 'x-decorator': 'FormItem',
82
+ 'x-component': 'Select',
83
+ },
84
+ city: {
85
+ type: 'string',
86
+ title: '城市',
87
+ required: true,
88
+ 'x-decorator': 'FormItem',
89
+ 'x-component': 'Select',
90
+ },
91
+ actions: {
92
+ type: 'void',
93
+ 'x-decorator': 'FormItem',
94
+ 'x-decorator-props': { gridSpan: 2, colon: false },
95
+ 'x-component': 'AutoButtonGroup',
96
+ properties: {
97
+ submit: {
98
+ type: 'void',
99
+ 'x-component': 'Submit',
100
+ 'x-content': '提交',
101
+ 'x-component-props': { onSubmit: '{{ onSubmit }}' },
102
+ },
103
+ },
104
+ },
105
+ },
106
+ },
107
+ },
108
+ },
109
+ },
110
+ };
111
+ </script>
112
+
113
+ <template>
114
+ <YFormily :schema="schema" :form="form" :scope="{ onSubmit }" />
115
+ </template>
116
+ ```
@@ -3,7 +3,7 @@ name: formily-mode-slot-detail
3
3
  description: 指导 YFormily 新增、编辑、查看三态与插槽渲染;当配置 mode 0/1/2、查看态只读、详情页 Descriptions 展示、detail-options、Schema Slot 或详情字段插槽时使用。
4
4
  ---
5
5
 
6
- # Formily Mode Slot Detail Skill
6
+ # YFormily 三态与插槽
7
7
 
8
8
  ## 触发条件
9
9
 
@@ -35,87 +35,9 @@ description: 指导 YFormily 新增、编辑、查看三态与插槽渲染;当
35
35
  - 加载详情的 Orval API 错误已由 `mutator.ts` 统一 `message.error` 并 reject,业务 `else`/`catch` 禁止重复提示。
36
36
  - 分步需求默认走 `formily-step-flow`,不在本 skill 中给 `FormStep` 默认方案。
37
37
 
38
- ## 标准代码骨架
38
+ ## 按需示例
39
39
 
40
- ```vue
41
- <script setup lang="ts">
42
- import { YMonaco, YFormily, type ISchema } from '@yss-ui/components';
43
- import { ref } from 'vue';
44
-
45
- /** YFormily 业务模式。 */
46
- type FormMode = 0 | 1 | 2;
47
-
48
- /** 当前表单模式。 */
49
- const mode = ref<FormMode>(0);
50
-
51
- /** 编辑和查看回填值。 */
52
- const initialValues = {
53
- user: { email: 'user@example.com' },
54
- sql: 'select * from users',
55
- };
56
-
57
- /** 编辑与详情共用的 Schema。 */
58
- const schema: ISchema = {
59
- type: 'object',
60
- properties: {
61
- layout: {
62
- type: 'void',
63
- 'x-component': 'FormLayout',
64
- 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
65
- properties: {
66
- grid: {
67
- type: 'void',
68
- 'x-component': 'FormGrid',
69
- 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
70
- properties: {
71
- user: {
72
- type: 'object',
73
- properties: {
74
- email: {
75
- type: 'string',
76
- title: '邮箱',
77
- 'x-decorator': 'FormItem',
78
- 'x-component': 'Input',
79
- },
80
- },
81
- },
82
- sql: {
83
- type: 'string',
84
- title: 'SQL',
85
- 'x-decorator': 'FormItem',
86
- 'x-decorator-props': { gridSpan: 2 },
87
- 'x-component': 'Slot',
88
- 'x-component-props': { name: 'sql' },
89
- },
90
- },
91
- },
92
- },
93
- },
94
- },
95
- };
96
- </script>
97
-
98
- <template>
99
- <YFormily
100
- :schema="schema"
101
- :initial-values="initialValues"
102
- :mode="mode"
103
- :detail-options="{ bordered: true, maxColumns: 3, minColumns: 1, minWidth: 260 }"
104
- >
105
- <template #sql="{ value, onChange }">
106
- <YMonaco :model-value="value" language="sql" @change="onChange" />
107
- </template>
108
-
109
- <template #detail-user-email="{ value }">
110
- <a :href="`mailto:${value}`">{{ value }}</a>
111
- </template>
112
-
113
- <template #detail-sql="{ value }">
114
- <YMonaco :model-value="value" language="sql" readonly />
115
- </template>
116
- </YFormily>
117
- </template>
118
- ```
40
+ 首次组合三态、编辑 Slot 与详情插槽,或排查字段路径时,读取 [三态与双通道插槽示例](references/mode-slot-example.md)。示例不替代目标工程的导出与版本核验。
119
41
 
120
42
  ## 交付检查清单
121
43
 
@@ -0,0 +1,81 @@
1
+ ## 标准代码骨架
2
+
3
+ ```vue
4
+ <script setup lang="ts">
5
+ import { YMonaco, YFormily, type ISchema } from '@yss-ui/components';
6
+ import { ref } from 'vue';
7
+
8
+ /** YFormily 业务模式。 */
9
+ type FormMode = 0 | 1 | 2;
10
+
11
+ /** 当前表单模式。 */
12
+ const mode = ref<FormMode>(0);
13
+
14
+ /** 编辑和查看回填值。 */
15
+ const initialValues = {
16
+ user: { email: 'user@example.com' },
17
+ sql: 'select * from users',
18
+ };
19
+
20
+ /** 编辑与详情共用的 Schema。 */
21
+ const schema: ISchema = {
22
+ type: 'object',
23
+ properties: {
24
+ layout: {
25
+ type: 'void',
26
+ 'x-component': 'FormLayout',
27
+ 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
28
+ properties: {
29
+ grid: {
30
+ type: 'void',
31
+ 'x-component': 'FormGrid',
32
+ 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
33
+ properties: {
34
+ user: {
35
+ type: 'object',
36
+ properties: {
37
+ email: {
38
+ type: 'string',
39
+ title: '邮箱',
40
+ 'x-decorator': 'FormItem',
41
+ 'x-component': 'Input',
42
+ },
43
+ },
44
+ },
45
+ sql: {
46
+ type: 'string',
47
+ title: 'SQL',
48
+ 'x-decorator': 'FormItem',
49
+ 'x-decorator-props': { gridSpan: 2 },
50
+ 'x-component': 'Slot',
51
+ 'x-component-props': { name: 'sql' },
52
+ },
53
+ },
54
+ },
55
+ },
56
+ },
57
+ },
58
+ };
59
+ </script>
60
+
61
+ <template>
62
+ <YFormily
63
+ :schema="schema"
64
+ :initial-values="initialValues"
65
+ :mode="mode"
66
+ :detail-options="{ bordered: true, maxColumns: 3, minColumns: 1, minWidth: 260 }"
67
+ >
68
+ <template #sql="{ value, onChange }">
69
+ <YMonaco :model-value="value" language="sql" @change="onChange" />
70
+ </template>
71
+
72
+ <template #detail-user-email="{ value }">
73
+ <a :href="`mailto:${value}`">{{ value }}</a>
74
+ </template>
75
+
76
+ <template #detail-sql="{ value }">
77
+ <YMonaco :model-value="value" language="sql" readonly />
78
+ </template>
79
+ </YFormily>
80
+ </template>
81
+ ```
@@ -3,7 +3,7 @@ name: formily-step-flow
3
3
  description: 指导 YSS UI 分步表单与流程录入;当需要 Ant Design Vue Steps、多 YFormily 独立校验、跨步数据保留、确认预览或最终聚合提交时使用。
4
4
  ---
5
5
 
6
- # Formily Step Flow Skill
6
+ # YFormily 分步流程
7
7
 
8
8
  ## 触发条件
9
9
 
@@ -32,149 +32,9 @@ description: 指导 YSS UI 分步表单与流程录入;当需要 Ant Design Vu
32
32
  - 最终 API 提交只聚合业务步骤,禁止把纯确认步骤当作新数据源。
33
33
  - Orval API 的网络错误及 `success === false` 业务错误已由 `mutator.ts` 统一 `message.error` 并 reject;最终提交的 `else`/`catch` 禁止重复提示,loading 放在 `finally` 恢复。
34
34
 
35
- ## 标准代码骨架
35
+ ## 按需示例
36
36
 
37
- ```vue
38
- <script setup lang="ts">
39
- import { YButton, YFormily, type ISchema } from '@yss-ui/components';
40
- import { Steps as ASteps } from 'ant-design-vue';
41
- import { computed, reactive, ref } from 'vue';
42
-
43
- /** YFormily 对外提交能力。 */
44
- interface YssFormilyExpose {
45
- submit: () => Promise<Record<string, any>>;
46
- }
47
-
48
- /** 分步表单数据。 */
49
- interface StepFormData {
50
- step1: { name: string };
51
- step2: { level: string };
52
- }
53
-
54
- /** 分步表单提交回调 Props。 */
55
- interface StepFlowProps {
56
- onSubmit: (values: StepFormData) => Promise<void>;
57
- }
58
-
59
- /** 分步表单提交回调。 */
60
- const props = defineProps<StepFlowProps>();
61
- /** 当前步骤,从 0 开始。 */
62
- const currentStep = ref(0);
63
- /** 最终提交状态。 */
64
- const submitting = ref(false);
65
- /** 第一步表单实例。 */
66
- const step1Ref = ref<YssFormilyExpose>();
67
- /** 第二步表单实例。 */
68
- const step2Ref = ref<YssFormilyExpose>();
69
- /** 步骤导航配置。 */
70
- const stepItems = [{ title: '基础信息' }, { title: '策略配置' }, { title: '确认提交' }];
71
- /** 跨步唯一数据源。 */
72
- const formData = reactive<StepFormData>({
73
- step1: { name: '' },
74
- step2: { level: 'normal' },
75
- });
76
-
77
- /** 创建符合业务三层布局约定的步骤 Schema。 */
78
- const createStepSchema = (properties: Record<string, ISchema>): ISchema => ({
79
- type: 'object',
80
- properties: {
81
- layout: {
82
- type: 'void',
83
- 'x-component': 'FormLayout',
84
- 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
85
- properties: {
86
- grid: {
87
- type: 'void',
88
- 'x-component': 'FormGrid',
89
- 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
90
- properties,
91
- },
92
- },
93
- },
94
- },
95
- });
96
-
97
- /** 第一步 Schema。 */
98
- const step1Schema = createStepSchema({
99
- name: {
100
- type: 'string',
101
- title: '任务名称',
102
- required: true,
103
- 'x-validator': [{ required: true, whitespace: true, message: '请输入任务名称' }],
104
- 'x-decorator': 'FormItem',
105
- 'x-component': 'Input',
106
- },
107
- });
108
- /** 第二步 Schema。 */
109
- const step2Schema = createStepSchema({
110
- level: {
111
- type: 'string',
112
- title: '策略等级',
113
- required: true,
114
- enum: [
115
- { label: '普通', value: 'normal' },
116
- { label: '严格', value: 'strict' },
117
- ],
118
- 'x-decorator': 'FormItem',
119
- 'x-component': 'Select',
120
- },
121
- });
122
- /** 确认步骤 Schema。 */
123
- const confirmSchema = createStepSchema({
124
- name: { type: 'string', title: '任务名称', 'x-decorator': 'FormItem', 'x-component': 'Input' },
125
- level: { type: 'string', title: '策略等级', 'x-decorator': 'FormItem', 'x-component': 'Input' },
126
- });
127
- /** 确认步骤展示数据。 */
128
- const confirmValues = computed(() => ({ name: formData.step1.name, level: formData.step2.level }));
129
-
130
- /** 校验当前步骤,成功后前进。 */
131
- const next = async () => {
132
- const currentRef = currentStep.value === 0 ? step1Ref.value : step2Ref.value;
133
- if (!currentRef) return;
134
- try {
135
- await currentRef.submit();
136
- currentStep.value += 1;
137
- } catch {
138
- return;
139
- }
140
- };
141
-
142
- /** 返回上一步。 */
143
- const back = () => {
144
- currentStep.value = Math.max(0, currentStep.value - 1);
145
- };
146
-
147
- /** 提交全部步骤数据。 */
148
- const submitAll = async () => {
149
- submitting.value = true;
150
- try {
151
- await props.onSubmit({ step1: { ...formData.step1 }, step2: { ...formData.step2 } });
152
- } finally {
153
- submitting.value = false;
154
- }
155
- };
156
- </script>
157
-
158
- <template>
159
- <ASteps :current="currentStep" :items="stepItems" />
160
-
161
- <YFormily v-if="currentStep === 0" ref="step1Ref" v-model="formData.step1" :schema="step1Schema" />
162
- <YFormily v-else-if="currentStep === 1" ref="step2Ref" v-model="formData.step2" :schema="step2Schema" />
163
- <YFormily
164
- v-else
165
- :schema="confirmSchema"
166
- :initial-values="confirmValues"
167
- :mode="2"
168
- :detail-options="{ bordered: true, maxColumns: 2, minColumns: 1, minWidth: 320 }"
169
- />
170
-
171
- <YButton :disabled="currentStep === 0" @click="back">上一步</YButton>
172
- <YButton v-if="currentStep < 2" type="primary" @click="next">下一步</YButton>
173
- <YButton v-else type="primary" :loading="submitting" @click="submitAll">提交</YButton>
174
- </template>
175
- ```
176
-
177
- 当 schema、步骤状态和页面编排难以独立理解或验证时,分别拆到 `constant.ts`、`hooks/useStepFlow.ts`;以职责清晰和状态可测试为准,不按固定行数拆分。
37
+ 首次组织分步实例、聚合数据和确认页,或排查步骤回填时,读取 [分步表单组合示例](references/step-flow-example.md)。按业务阶段拆 schema、Hook 与私有视图,不按固定行数拆分。
178
38
 
179
39
  ## 交付检查清单
180
40