create-yss-spec 3.5.6 → 3.5.9

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 (578) hide show
  1. package/bin/create-yss-spec.js +3 -1
  2. package/cli-core.lock.json +10 -6
  3. package/package.json +4 -1
  4. package/src/api/_sync-service.js +3 -1
  5. package/src/command-runner.mjs +44 -9
  6. package/src/commands/doctor.js +40 -0
  7. package/src/commands/skills.js +7 -2
  8. package/src/content-identity.js +111 -0
  9. package/src/runtime-store.mjs +650 -0
  10. package/src/template/asset-runtime.js +124 -22
  11. package/src/template/instance-runtime.js +23 -7
  12. package/src/validation/metadata.js +8 -0
  13. package/template/.agents/skills/.strategic-design-skills-manifest.json +3 -3
  14. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +30 -36
  15. package/template/.agents/skills/archify/SKILL.md +2 -2
  16. package/template/.agents/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  17. package/template/.agents/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  18. package/template/.agents/skills/code-review/SKILL.md +19 -11
  19. package/template/.agents/skills/code-review/references/candidate-capture.md +1 -1
  20. package/template/.agents/skills/code-review/references/legacy-convergence.md +3 -1
  21. package/template/.agents/skills/code-review/references/review-axis-checklists.md +2 -0
  22. package/template/.agents/skills/code-review/references/yss-review-standards.md +4 -2
  23. package/template/.agents/skills/competitive-intelligence/SKILL.md +32 -74
  24. package/template/.agents/skills/file-export-download/SKILL.md +4 -73
  25. package/template/.agents/skills/file-export-download/references/binary-contract-example.md +26 -0
  26. package/template/.agents/skills/file-export-download/references/download-call-example.md +45 -0
  27. package/template/.agents/skills/formily-foundation/SKILL.md +6 -105
  28. package/template/.agents/skills/formily-foundation/references/async-save-example.md +57 -0
  29. package/template/.agents/skills/formily-foundation/references/query-layout.md +50 -0
  30. package/template/.agents/skills/formily-linkage-effects/SKILL.md +3 -116
  31. package/template/.agents/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  32. package/template/.agents/skills/formily-mode-slot-detail/SKILL.md +3 -81
  33. package/template/.agents/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  34. package/template/.agents/skills/formily-step-flow/SKILL.md +3 -143
  35. package/template/.agents/skills/formily-step-flow/references/step-flow-example.md +143 -0
  36. package/template/.agents/skills/handoff/SKILL.md +3 -1
  37. package/template/.agents/skills/i-have-adhd/SKILL.md +2 -2
  38. package/template/.agents/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  39. package/template/.agents/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  40. package/template/.agents/skills/implement/SKILL.md +2 -2
  41. package/template/.agents/skills/llm-wiki/references/transactions.md +2 -2
  42. package/template/.agents/skills/llm-wiki/scripts/core.mjs +40 -2
  43. package/template/.agents/skills/llm-wiki/scripts/transaction.mjs +30 -27
  44. package/template/.agents/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  45. package/template/.agents/skills/lombok/SKILL.md +2 -0
  46. package/template/.agents/skills/mapstruct/SKILL.md +2 -0
  47. package/template/.agents/skills/tdd/SKILL.md +2 -2
  48. package/template/.agents/skills/theme-token-usage/SKILL.md +6 -5
  49. package/template/.agents/skills/wayfinder/references/chart-map.md +2 -2
  50. package/template/.agents/skills/wayfinder/references/ticket-types.md +1 -1
  51. package/template/.agents/skills/yss-api-integration/SKILL.md +13 -50
  52. package/template/.agents/skills/yss-api-integration/references/orval-list-example.md +38 -0
  53. package/template/.agents/skills/yss-application/SKILL.md +11 -5
  54. package/template/.agents/skills/yss-audit-log/SKILL.md +8 -6
  55. package/template/.agents/skills/yss-audit-log/references/README.md +5 -5
  56. package/template/.agents/skills/yss-cache/SKILL.md +4 -4
  57. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  58. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  59. package/template/.agents/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  60. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  61. package/template/.agents/skills/yss-design-system/SKILL.md +2 -2
  62. package/template/.agents/skills/yss-distributed-id/SKILL.md +4 -4
  63. package/template/.agents/skills/yss-dto/SKILL.md +9 -9
  64. package/template/.agents/skills/yss-dto/references/README.md +4 -4
  65. package/template/.agents/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  66. package/template/.agents/skills/yss-excel-mvc/SKILL.md +4 -4
  67. package/template/.agents/skills/yss-exception/SKILL.md +42 -48
  68. package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +26 -170
  69. package/template/.agents/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  70. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  71. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +4 -6
  72. package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  73. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  74. package/template/.agents/skills/yss-mybatis/SKILL.md +4 -4
  75. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +6 -4
  76. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  77. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  78. package/template/.agents/skills/yss-openapi-governance/SKILL.md +5 -7
  79. package/template/.agents/skills/yss-openapi-governance/references/governance-output.md +2 -0
  80. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  81. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +32 -26
  82. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  83. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +28 -6
  84. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +143 -4
  85. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +38 -13
  86. package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +7 -6
  87. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -1
  88. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  89. package/template/.agents/skills/yss-prototype-stage/SKILL.md +1 -5
  90. package/template/.agents/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +1 -0
  91. package/template/.agents/skills/yss-repository/SKILL.md +2 -2
  92. package/template/.agents/skills/yss-research/SKILL.md +39 -48
  93. package/template/.agents/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  94. package/template/.agents/skills/yss-research/references/competitive-analysis.md +76 -0
  95. package/template/.agents/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  96. package/template/.agents/skills/yss-research/references/evidence-contract.md +8 -0
  97. package/template/.agents/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  98. package/template/.agents/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  99. package/template/.agents/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  100. package/template/.agents/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  101. package/template/.agents/skills/yss-resilience4j/SKILL.md +25 -31
  102. package/template/.agents/skills/yss-security-algorithm/SKILL.md +37 -43
  103. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  104. package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  105. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -5
  106. package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -5
  107. package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -5
  108. package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +83 -13
  109. package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
  110. package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -3
  111. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  112. package/template/.agents/skills/yss-technical-design/SKILL.md +6 -5
  113. package/template/.agents/skills/yss-ui/SKILL.md +7 -1
  114. package/template/.agents/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  115. package/template/.agents/skills/yss-ui/references/checklist.md +38 -96
  116. package/template/.agents/skills/yss-ui/references/component-routing.md +3 -1
  117. package/template/.agents/skills/yss-ui/references/quick-recipes.md +17 -272
  118. package/template/.agents/skills/yss-ui/references/specialized-components.md +3 -3
  119. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  120. package/template/.agents/skills/yss-up-springboot3/SKILL.md +19 -21
  121. package/template/.agents/skills/yss-userinfo/SKILL.md +27 -33
  122. package/template/.agents/skills/yss-validation/SKILL.md +26 -32
  123. package/template/.agents/skills/yss-web-controller/SKILL.md +11 -44
  124. package/template/.agents/skills/yss-web-controller/references/crud-generation.md +38 -0
  125. package/template/.agents/skills/ytable-usage/SKILL.md +2 -2
  126. package/template/.agents/skills/ytree-usage/SKILL.md +2 -80
  127. package/template/.agents/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  128. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +30 -36
  129. package/template/.codex/skills/archify/SKILL.md +2 -2
  130. package/template/.codex/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  131. package/template/.codex/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  132. package/template/.codex/skills/code-review/SKILL.md +19 -11
  133. package/template/.codex/skills/code-review/references/candidate-capture.md +1 -1
  134. package/template/.codex/skills/code-review/references/legacy-convergence.md +3 -1
  135. package/template/.codex/skills/code-review/references/review-axis-checklists.md +2 -0
  136. package/template/.codex/skills/code-review/references/yss-review-standards.md +4 -2
  137. package/template/.codex/skills/competitive-intelligence/SKILL.md +32 -74
  138. package/template/.codex/skills/file-export-download/SKILL.md +4 -73
  139. package/template/.codex/skills/file-export-download/references/binary-contract-example.md +26 -0
  140. package/template/.codex/skills/file-export-download/references/download-call-example.md +45 -0
  141. package/template/.codex/skills/formily-foundation/SKILL.md +6 -105
  142. package/template/.codex/skills/formily-foundation/references/async-save-example.md +57 -0
  143. package/template/.codex/skills/formily-foundation/references/query-layout.md +50 -0
  144. package/template/.codex/skills/formily-linkage-effects/SKILL.md +3 -116
  145. package/template/.codex/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  146. package/template/.codex/skills/formily-mode-slot-detail/SKILL.md +3 -81
  147. package/template/.codex/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  148. package/template/.codex/skills/formily-step-flow/SKILL.md +3 -143
  149. package/template/.codex/skills/formily-step-flow/references/step-flow-example.md +143 -0
  150. package/template/.codex/skills/handoff/SKILL.md +3 -1
  151. package/template/.codex/skills/i-have-adhd/SKILL.md +2 -2
  152. package/template/.codex/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  153. package/template/.codex/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  154. package/template/.codex/skills/implement/SKILL.md +2 -2
  155. package/template/.codex/skills/llm-wiki/references/transactions.md +2 -2
  156. package/template/.codex/skills/llm-wiki/scripts/core.mjs +40 -2
  157. package/template/.codex/skills/llm-wiki/scripts/transaction.mjs +30 -27
  158. package/template/.codex/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  159. package/template/.codex/skills/lombok/SKILL.md +2 -0
  160. package/template/.codex/skills/mapstruct/SKILL.md +2 -0
  161. package/template/.codex/skills/product-design/references/communication-protocol.md +3 -3
  162. package/template/.codex/skills/product-design/references/critical-overrides.md +4 -5
  163. package/template/.codex/skills/product-design/skills/audit/SKILL.md +2 -4
  164. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +6 -8
  165. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +3 -3
  166. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +3 -5
  167. package/template/.codex/skills/product-design/skills/index/SKILL.md +1 -1
  168. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +2 -4
  169. package/template/.codex/skills/product-design/skills/research/SKILL.md +4 -6
  170. package/template/.codex/skills/product-design/skills/research/assets/research-brief-template.md +3 -3
  171. package/template/.codex/skills/product-design/skills/share/SKILL.md +2 -4
  172. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +2 -4
  173. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
  174. package/template/.codex/skills/tdd/SKILL.md +2 -2
  175. package/template/.codex/skills/theme-token-usage/SKILL.md +6 -5
  176. package/template/.codex/skills/wayfinder/references/chart-map.md +2 -2
  177. package/template/.codex/skills/wayfinder/references/ticket-types.md +1 -1
  178. package/template/.codex/skills/yss-api-integration/SKILL.md +13 -50
  179. package/template/.codex/skills/yss-api-integration/references/orval-list-example.md +38 -0
  180. package/template/.codex/skills/yss-application/SKILL.md +11 -5
  181. package/template/.codex/skills/yss-audit-log/SKILL.md +8 -6
  182. package/template/.codex/skills/yss-audit-log/references/README.md +5 -5
  183. package/template/.codex/skills/yss-cache/SKILL.md +4 -4
  184. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  185. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  186. package/template/.codex/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  187. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  188. package/template/.codex/skills/yss-design-system/SKILL.md +2 -2
  189. package/template/.codex/skills/yss-distributed-id/SKILL.md +4 -4
  190. package/template/.codex/skills/yss-dto/SKILL.md +9 -9
  191. package/template/.codex/skills/yss-dto/references/README.md +4 -4
  192. package/template/.codex/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  193. package/template/.codex/skills/yss-excel-mvc/SKILL.md +4 -4
  194. package/template/.codex/skills/yss-exception/SKILL.md +42 -48
  195. package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +26 -170
  196. package/template/.codex/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  197. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  198. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +4 -6
  199. package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  200. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  201. package/template/.codex/skills/yss-mybatis/SKILL.md +4 -4
  202. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +6 -4
  203. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  204. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  205. package/template/.codex/skills/yss-openapi-governance/SKILL.md +5 -7
  206. package/template/.codex/skills/yss-openapi-governance/references/governance-output.md +2 -0
  207. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  208. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +32 -26
  209. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  210. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +28 -6
  211. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +143 -4
  212. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +38 -13
  213. package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +7 -6
  214. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -1
  215. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  216. package/template/.codex/skills/yss-prototype-stage/SKILL.md +1 -5
  217. package/template/.codex/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +1 -0
  218. package/template/.codex/skills/yss-repository/SKILL.md +2 -2
  219. package/template/.codex/skills/yss-research/SKILL.md +39 -48
  220. package/template/.codex/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  221. package/template/.codex/skills/yss-research/references/competitive-analysis.md +76 -0
  222. package/template/.codex/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  223. package/template/.codex/skills/yss-research/references/evidence-contract.md +8 -0
  224. package/template/.codex/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  225. package/template/.codex/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  226. package/template/.codex/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  227. package/template/.codex/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  228. package/template/.codex/skills/yss-resilience4j/SKILL.md +25 -31
  229. package/template/.codex/skills/yss-security-algorithm/SKILL.md +37 -43
  230. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  231. package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  232. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -5
  233. package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -5
  234. package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -5
  235. package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +83 -13
  236. package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
  237. package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -3
  238. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  239. package/template/.codex/skills/yss-technical-design/SKILL.md +6 -5
  240. package/template/.codex/skills/yss-ui/SKILL.md +7 -1
  241. package/template/.codex/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  242. package/template/.codex/skills/yss-ui/references/checklist.md +38 -96
  243. package/template/.codex/skills/yss-ui/references/component-routing.md +3 -1
  244. package/template/.codex/skills/yss-ui/references/quick-recipes.md +17 -272
  245. package/template/.codex/skills/yss-ui/references/specialized-components.md +3 -3
  246. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  247. package/template/.codex/skills/yss-up-springboot3/SKILL.md +19 -21
  248. package/template/.codex/skills/yss-userinfo/SKILL.md +27 -33
  249. package/template/.codex/skills/yss-validation/SKILL.md +26 -32
  250. package/template/.codex/skills/yss-web-controller/SKILL.md +11 -44
  251. package/template/.codex/skills/yss-web-controller/references/crud-generation.md +38 -0
  252. package/template/.codex/skills/ytable-usage/SKILL.md +2 -2
  253. package/template/.codex/skills/ytree-usage/SKILL.md +2 -80
  254. package/template/.codex/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  255. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +30 -36
  256. package/template/.cursor/skills/archify/SKILL.md +2 -2
  257. package/template/.cursor/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  258. package/template/.cursor/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  259. package/template/.cursor/skills/code-review/SKILL.md +19 -11
  260. package/template/.cursor/skills/code-review/references/candidate-capture.md +1 -1
  261. package/template/.cursor/skills/code-review/references/legacy-convergence.md +3 -1
  262. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +2 -0
  263. package/template/.cursor/skills/code-review/references/yss-review-standards.md +4 -2
  264. package/template/.cursor/skills/competitive-intelligence/SKILL.md +32 -74
  265. package/template/.cursor/skills/file-export-download/SKILL.md +4 -73
  266. package/template/.cursor/skills/file-export-download/references/binary-contract-example.md +26 -0
  267. package/template/.cursor/skills/file-export-download/references/download-call-example.md +45 -0
  268. package/template/.cursor/skills/formily-foundation/SKILL.md +6 -105
  269. package/template/.cursor/skills/formily-foundation/references/async-save-example.md +57 -0
  270. package/template/.cursor/skills/formily-foundation/references/query-layout.md +50 -0
  271. package/template/.cursor/skills/formily-linkage-effects/SKILL.md +3 -116
  272. package/template/.cursor/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  273. package/template/.cursor/skills/formily-mode-slot-detail/SKILL.md +3 -81
  274. package/template/.cursor/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  275. package/template/.cursor/skills/formily-step-flow/SKILL.md +3 -143
  276. package/template/.cursor/skills/formily-step-flow/references/step-flow-example.md +143 -0
  277. package/template/.cursor/skills/handoff/SKILL.md +3 -1
  278. package/template/.cursor/skills/i-have-adhd/SKILL.md +2 -2
  279. package/template/.cursor/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  280. package/template/.cursor/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  281. package/template/.cursor/skills/implement/SKILL.md +2 -2
  282. package/template/.cursor/skills/llm-wiki/references/transactions.md +2 -2
  283. package/template/.cursor/skills/llm-wiki/scripts/core.mjs +40 -2
  284. package/template/.cursor/skills/llm-wiki/scripts/transaction.mjs +30 -27
  285. package/template/.cursor/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  286. package/template/.cursor/skills/lombok/SKILL.md +2 -0
  287. package/template/.cursor/skills/mapstruct/SKILL.md +2 -0
  288. package/template/.cursor/skills/tdd/SKILL.md +2 -2
  289. package/template/.cursor/skills/theme-token-usage/SKILL.md +6 -5
  290. package/template/.cursor/skills/wayfinder/references/chart-map.md +2 -2
  291. package/template/.cursor/skills/wayfinder/references/ticket-types.md +1 -1
  292. package/template/.cursor/skills/yss-api-integration/SKILL.md +13 -50
  293. package/template/.cursor/skills/yss-api-integration/references/orval-list-example.md +38 -0
  294. package/template/.cursor/skills/yss-application/SKILL.md +11 -5
  295. package/template/.cursor/skills/yss-audit-log/SKILL.md +8 -6
  296. package/template/.cursor/skills/yss-audit-log/references/README.md +5 -5
  297. package/template/.cursor/skills/yss-cache/SKILL.md +4 -4
  298. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  299. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  300. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  301. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  302. package/template/.cursor/skills/yss-design-system/SKILL.md +2 -2
  303. package/template/.cursor/skills/yss-distributed-id/SKILL.md +4 -4
  304. package/template/.cursor/skills/yss-dto/SKILL.md +9 -9
  305. package/template/.cursor/skills/yss-dto/references/README.md +4 -4
  306. package/template/.cursor/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  307. package/template/.cursor/skills/yss-excel-mvc/SKILL.md +4 -4
  308. package/template/.cursor/skills/yss-exception/SKILL.md +42 -48
  309. package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +26 -170
  310. package/template/.cursor/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  311. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  312. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +4 -6
  313. package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  314. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  315. package/template/.cursor/skills/yss-mybatis/SKILL.md +4 -4
  316. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +6 -4
  317. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  318. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  319. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +5 -7
  320. package/template/.cursor/skills/yss-openapi-governance/references/governance-output.md +2 -0
  321. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  322. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +32 -26
  323. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  324. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +28 -6
  325. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +143 -4
  326. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +38 -13
  327. package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +7 -6
  328. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -1
  329. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  330. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +1 -5
  331. package/template/.cursor/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +1 -0
  332. package/template/.cursor/skills/yss-repository/SKILL.md +2 -2
  333. package/template/.cursor/skills/yss-research/SKILL.md +39 -48
  334. package/template/.cursor/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  335. package/template/.cursor/skills/yss-research/references/competitive-analysis.md +76 -0
  336. package/template/.cursor/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  337. package/template/.cursor/skills/yss-research/references/evidence-contract.md +8 -0
  338. package/template/.cursor/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  339. package/template/.cursor/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  340. package/template/.cursor/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  341. package/template/.cursor/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  342. package/template/.cursor/skills/yss-resilience4j/SKILL.md +25 -31
  343. package/template/.cursor/skills/yss-security-algorithm/SKILL.md +37 -43
  344. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  345. package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  346. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -5
  347. package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -5
  348. package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -5
  349. package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +83 -13
  350. package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
  351. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -3
  352. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  353. package/template/.cursor/skills/yss-technical-design/SKILL.md +6 -5
  354. package/template/.cursor/skills/yss-ui/SKILL.md +7 -1
  355. package/template/.cursor/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  356. package/template/.cursor/skills/yss-ui/references/checklist.md +38 -96
  357. package/template/.cursor/skills/yss-ui/references/component-routing.md +3 -1
  358. package/template/.cursor/skills/yss-ui/references/quick-recipes.md +17 -272
  359. package/template/.cursor/skills/yss-ui/references/specialized-components.md +3 -3
  360. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  361. package/template/.cursor/skills/yss-up-springboot3/SKILL.md +19 -21
  362. package/template/.cursor/skills/yss-userinfo/SKILL.md +27 -33
  363. package/template/.cursor/skills/yss-validation/SKILL.md +26 -32
  364. package/template/.cursor/skills/yss-web-controller/SKILL.md +11 -44
  365. package/template/.cursor/skills/yss-web-controller/references/crud-generation.md +38 -0
  366. package/template/.cursor/skills/ytable-usage/SKILL.md +2 -2
  367. package/template/.cursor/skills/ytree-usage/SKILL.md +2 -80
  368. package/template/.cursor/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  369. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +30 -36
  370. package/template/.pi/skills/archify/SKILL.md +2 -2
  371. package/template/.pi/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  372. package/template/.pi/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  373. package/template/.pi/skills/code-review/SKILL.md +19 -11
  374. package/template/.pi/skills/code-review/references/candidate-capture.md +1 -1
  375. package/template/.pi/skills/code-review/references/legacy-convergence.md +3 -1
  376. package/template/.pi/skills/code-review/references/review-axis-checklists.md +2 -0
  377. package/template/.pi/skills/code-review/references/yss-review-standards.md +4 -2
  378. package/template/.pi/skills/competitive-intelligence/SKILL.md +32 -74
  379. package/template/.pi/skills/file-export-download/SKILL.md +4 -73
  380. package/template/.pi/skills/file-export-download/references/binary-contract-example.md +26 -0
  381. package/template/.pi/skills/file-export-download/references/download-call-example.md +45 -0
  382. package/template/.pi/skills/formily-foundation/SKILL.md +6 -105
  383. package/template/.pi/skills/formily-foundation/references/async-save-example.md +57 -0
  384. package/template/.pi/skills/formily-foundation/references/query-layout.md +50 -0
  385. package/template/.pi/skills/formily-linkage-effects/SKILL.md +3 -116
  386. package/template/.pi/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  387. package/template/.pi/skills/formily-mode-slot-detail/SKILL.md +3 -81
  388. package/template/.pi/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  389. package/template/.pi/skills/formily-step-flow/SKILL.md +3 -143
  390. package/template/.pi/skills/formily-step-flow/references/step-flow-example.md +143 -0
  391. package/template/.pi/skills/handoff/SKILL.md +3 -1
  392. package/template/.pi/skills/i-have-adhd/SKILL.md +2 -2
  393. package/template/.pi/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  394. package/template/.pi/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  395. package/template/.pi/skills/implement/SKILL.md +2 -2
  396. package/template/.pi/skills/llm-wiki/references/transactions.md +2 -2
  397. package/template/.pi/skills/llm-wiki/scripts/core.mjs +40 -2
  398. package/template/.pi/skills/llm-wiki/scripts/transaction.mjs +30 -27
  399. package/template/.pi/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  400. package/template/.pi/skills/lombok/SKILL.md +2 -0
  401. package/template/.pi/skills/mapstruct/SKILL.md +2 -0
  402. package/template/.pi/skills/tdd/SKILL.md +2 -2
  403. package/template/.pi/skills/theme-token-usage/SKILL.md +6 -5
  404. package/template/.pi/skills/wayfinder/references/chart-map.md +2 -2
  405. package/template/.pi/skills/wayfinder/references/ticket-types.md +1 -1
  406. package/template/.pi/skills/yss-api-integration/SKILL.md +13 -50
  407. package/template/.pi/skills/yss-api-integration/references/orval-list-example.md +38 -0
  408. package/template/.pi/skills/yss-application/SKILL.md +11 -5
  409. package/template/.pi/skills/yss-audit-log/SKILL.md +8 -6
  410. package/template/.pi/skills/yss-audit-log/references/README.md +5 -5
  411. package/template/.pi/skills/yss-cache/SKILL.md +4 -4
  412. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  413. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  414. package/template/.pi/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  415. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  416. package/template/.pi/skills/yss-design-system/SKILL.md +2 -2
  417. package/template/.pi/skills/yss-distributed-id/SKILL.md +4 -4
  418. package/template/.pi/skills/yss-dto/SKILL.md +9 -9
  419. package/template/.pi/skills/yss-dto/references/README.md +4 -4
  420. package/template/.pi/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  421. package/template/.pi/skills/yss-excel-mvc/SKILL.md +4 -4
  422. package/template/.pi/skills/yss-exception/SKILL.md +42 -48
  423. package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +26 -170
  424. package/template/.pi/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  425. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  426. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +4 -6
  427. package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  428. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  429. package/template/.pi/skills/yss-mybatis/SKILL.md +4 -4
  430. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +6 -4
  431. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  432. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  433. package/template/.pi/skills/yss-openapi-governance/SKILL.md +5 -7
  434. package/template/.pi/skills/yss-openapi-governance/references/governance-output.md +2 -0
  435. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  436. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +32 -26
  437. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  438. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +28 -6
  439. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +143 -4
  440. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +38 -13
  441. package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +7 -6
  442. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -1
  443. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  444. package/template/.pi/skills/yss-prototype-stage/SKILL.md +1 -5
  445. package/template/.pi/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +1 -0
  446. package/template/.pi/skills/yss-repository/SKILL.md +2 -2
  447. package/template/.pi/skills/yss-research/SKILL.md +39 -48
  448. package/template/.pi/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  449. package/template/.pi/skills/yss-research/references/competitive-analysis.md +76 -0
  450. package/template/.pi/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  451. package/template/.pi/skills/yss-research/references/evidence-contract.md +8 -0
  452. package/template/.pi/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  453. package/template/.pi/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  454. package/template/.pi/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  455. package/template/.pi/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  456. package/template/.pi/skills/yss-resilience4j/SKILL.md +25 -31
  457. package/template/.pi/skills/yss-security-algorithm/SKILL.md +37 -43
  458. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  459. package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  460. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -5
  461. package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -5
  462. package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -5
  463. package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +83 -13
  464. package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
  465. package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -3
  466. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  467. package/template/.pi/skills/yss-technical-design/SKILL.md +6 -5
  468. package/template/.pi/skills/yss-ui/SKILL.md +7 -1
  469. package/template/.pi/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  470. package/template/.pi/skills/yss-ui/references/checklist.md +38 -96
  471. package/template/.pi/skills/yss-ui/references/component-routing.md +3 -1
  472. package/template/.pi/skills/yss-ui/references/quick-recipes.md +17 -272
  473. package/template/.pi/skills/yss-ui/references/specialized-components.md +3 -3
  474. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  475. package/template/.pi/skills/yss-up-springboot3/SKILL.md +19 -21
  476. package/template/.pi/skills/yss-userinfo/SKILL.md +27 -33
  477. package/template/.pi/skills/yss-validation/SKILL.md +26 -32
  478. package/template/.pi/skills/yss-web-controller/SKILL.md +11 -44
  479. package/template/.pi/skills/yss-web-controller/references/crud-generation.md +38 -0
  480. package/template/.pi/skills/ytable-usage/SKILL.md +2 -2
  481. package/template/.pi/skills/ytree-usage/SKILL.md +2 -80
  482. package/template/.pi/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  483. package/template/.template-spec/agents/backend-architecture-profiles.md +1 -1
  484. package/template/.template-spec/agents/digital-human-roles.md +5 -1
  485. package/template/.template-spec/agents/digital-human-roles.yaml +49 -1
  486. package/template/.template-spec/engineering/backend-platforms.json +1 -1
  487. package/template/.template-spec/plan/entry-review.md +2 -1
  488. package/template/.template-spec/plan/templates/competitive-analysis-template.md +38 -36
  489. package/template/.template-spec/plan/templates/competitive-matrix-template.md +37 -17
  490. package/template/.template-spec/plan/templates/plan-template.md +11 -5
  491. package/template/.template-spec/process/document-writing.md +22 -3
  492. package/template/.template-spec/process/harness-process-tailoring.md +5 -1
  493. package/template/.template-spec/process/implementation-repo-integration.md +26 -8
  494. package/template/.template-spec/process/research-completion.md +2 -0
  495. package/template/.template-spec/process/runtime-storage.md +78 -0
  496. package/template/.template-spec/process/schemas/approval-context.schema.json +67 -0
  497. package/template/.template-spec/process/schemas/approval-record.schema.json +179 -16
  498. package/template/.template-spec/process/schemas/backend-delivery.schema.json +16 -0
  499. package/template/.template-spec/process/schemas/delivery-preflight-input.schema.json +4 -0
  500. package/template/.template-spec/process/schemas/digital-human-task-package.schema.json +236 -1
  501. package/template/.template-spec/process/schemas/implementation-repository-preparation-result.schema.json +335 -52
  502. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +11 -0
  503. package/template/.template-spec/process/schemas/project-scaffold-contract.schema.json +3 -0
  504. package/template/.template-spec/process/schemas/review-bundle.schema.json +347 -35
  505. package/template/.template-spec/process/schemas/strategic-design-handoff-v3.schema.json +504 -0
  506. package/template/.template-spec/process/schemas/strategic-design-handoff-v4.schema.json +544 -8
  507. package/template/.template-spec/process/schemas/strategic-design-handoff-v5.schema.json +616 -0
  508. package/template/.template-spec/process/schemas/strategic-design-handoff.schema.json +616 -0
  509. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +712 -109
  510. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy.schema.json +595 -90
  511. package/template/.template-spec/process/schemas/strategic-handoff-export-v2.schema.json +448 -0
  512. package/template/.template-spec/process/schemas/strategic-handoff-export.schema.json +392 -0
  513. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +556 -83
  514. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package.schema.json +418 -57
  515. package/template/.template-spec/process/script-execution.md +37 -0
  516. package/template/.template-spec/process/subagent-collaboration.md +7 -1
  517. package/template/.template-spec/templates/approval-record-template.json +7 -3
  518. package/template/.template-spec/templates/approval-record-template.yaml +8 -2
  519. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +92 -2
  520. package/template/.template-spec/templates/retro-report-template.md +10 -3
  521. package/template/.template-spec/templates/review-bundle-template.yaml +19 -10
  522. package/template/.template-spec/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +2 -0
  523. package/template/AGENTS.md +4 -3
  524. package/template/CONTEXT.md +2 -2
  525. package/template/README.md +2 -2
  526. package/template/scripts/advance-maintenance-iteration +51 -0
  527. package/template/scripts/lib/approval-checkpoint-discovery.mjs +26 -0
  528. package/template/scripts/lib/approval-consumption.mjs +35 -0
  529. package/template/scripts/lib/approval-current.mjs +111 -0
  530. package/template/scripts/lib/approval-record-io.mjs +56 -0
  531. package/template/scripts/lib/approval-record.mjs +79 -184
  532. package/template/scripts/lib/approved-execution-context.mjs +8 -6
  533. package/template/scripts/lib/asset-transactions.mjs +5 -1
  534. package/template/scripts/lib/backend-delivery.mjs +1 -1
  535. package/template/scripts/lib/backend-review.mjs +2 -1
  536. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +3 -2
  537. package/template/scripts/lib/business-ticket-lifecycle.mjs +2 -1
  538. package/template/scripts/lib/checkpoint-commit.mjs +50 -0
  539. package/template/scripts/lib/command-runner.mjs +44 -9
  540. package/template/scripts/lib/content-identity.mjs +273 -0
  541. package/template/scripts/lib/delivery-preflight.mjs +2 -1
  542. package/template/scripts/lib/digital-human-roles.mjs +12 -5
  543. package/template/scripts/lib/drift-report.mjs +110 -0
  544. package/template/scripts/lib/existing-backend-architecture.mjs +4 -1
  545. package/template/scripts/lib/lifecycle-context-query.mjs +172 -11
  546. package/template/scripts/lib/lifecycle-controls.mjs +9 -19
  547. package/template/scripts/lib/lifecycle-presentation.mjs +5 -0
  548. package/template/scripts/lib/lifecycle-status.mjs +63 -12
  549. package/template/scripts/lib/lifecycle-transition.mjs +2 -1
  550. package/template/scripts/lib/maintenance-candidate.mjs +24 -30
  551. package/template/scripts/lib/maintenance-research.mjs +52 -8
  552. package/template/scripts/lib/maintenance-storage.mjs +81 -0
  553. package/template/scripts/lib/plan-spec-entry.mjs +2 -1
  554. package/template/scripts/lib/project-governance.mjs +2 -1
  555. package/template/scripts/lib/read-only-intake.mjs +44 -9
  556. package/template/scripts/lib/review-capabilities.mjs +234 -0
  557. package/template/scripts/lib/review-package.mjs +100 -0
  558. package/template/scripts/lib/runtime-store.mjs +650 -0
  559. package/template/scripts/lib/skill-registry.mjs +4 -4
  560. package/template/scripts/lib/strategic-handoff.mjs +22 -9
  561. package/template/scripts/lib/task-package.mjs +47 -16
  562. package/template/scripts/lifecycle-status +26 -1
  563. package/template/scripts/maintenance-path +11 -0
  564. package/template/scripts/prepare-review-package +8 -0
  565. package/template/scripts/project-ci +13 -3
  566. package/template/scripts/query-lifecycle-context +8 -1
  567. package/template/scripts/run-read-only-intake +2 -2
  568. package/template/scripts/runtime-store +40 -0
  569. package/template/scripts/verify-approval-record +21 -13
  570. package/template/scripts/verify-lifecycle-checkpoint +7 -3
  571. package/template/scripts/verify-project-instance +21 -1
  572. package/template/skills-lock.json +64 -63
  573. package/template.snapshot.json +4 -4
  574. package/vendor/cli-core/cli.mjs +2 -0
  575. package/vendor/cli-core/command-runner.mjs +44 -9
  576. package/vendor/cli-core/package.json +1 -1
  577. package/vendor/cli-core/runtime-store.mjs +650 -0
  578. package/vendor/cli-core/scaffold.mjs +4 -2
@@ -6,6 +6,7 @@ import process from "node:process";
6
6
  import { parseArgs } from "node:util";
7
7
  import { parseDocument } from "../../../../scripts/vendor/yaml.mjs";
8
8
  import { loadApprovalRecord, resolveApprovalRef, validateApprovalRecord } from "../../../../scripts/lib/approval-record.mjs";
9
+ import { approvalExpectationForBoundAsset } from "../../../../scripts/lib/approval-consumption.mjs";
9
10
  import { verifyContextSnapshot } from "../../../../scripts/lib/context-contract.mjs";
10
11
  import { parseAsset, validateAssetStructure } from '../../../../scripts/lib/structured-assets.mjs';
11
12
 
@@ -51,7 +52,7 @@ function requireArray(object, field, path, errors, min = 0, itemKind = "string")
51
52
  if (field in object && list(object[field]) && itemKind === "string") object[field].forEach((item, index) => { if (!nonEmpty(item)) errors.push(`${path}.${field}[${index}] 必须是非空字符串`); });
52
53
  }
53
54
 
54
- function validate(data, contextRoot) {
55
+ function validate(data, contextRoot, currentRef) {
55
56
  validateAssetStructure(data, 'domain-strategy');
56
57
  const errors = [];
57
58
  if (data?.traceability_version !== undefined) { try { extractTraceability(data); } catch(error) { errors.push(error.message); } }
@@ -199,9 +200,11 @@ function validate(data, contextRoot) {
199
200
  if (contexts.some((context) => context.status !== "confirmed")) errors.push("approved 合同要求所有上下文 status=confirmed");
200
201
  if (approval.current_version !== data.domain_version) errors.push("approval.current_version 必须等于 domain_version");
201
202
  try {
202
- const approvalPath = resolveApprovalRef(approval.approval_ref);
203
- const record = loadApprovalRecord(approvalPath, "check.domain-strategy-approved");
204
- validateApprovalRecord(record, { requireApproved: true });
203
+ const options = { root: contextRoot, review_package: false };
204
+ const approvalPath = resolveApprovalRef(approval.approval_ref, currentRef, options);
205
+ const expected = approvalExpectationForBoundAsset("check.domain-strategy-approved", { ref: currentRef }, options);
206
+ const record = loadApprovalRecord(approvalPath, "check.domain-strategy-approved", options);
207
+ validateApprovalRecord(record, { ...options, requireApproved: true, expected });
205
208
  if (record.gate_id !== "check.domain-strategy-approved") errors.push("approval.approval_ref 的 gate_id 必须为 check.domain-strategy-approved");
206
209
  if (record.role_id !== approval.approver) errors.push("approval.approver 必须与会签记录 role_id 一致");
207
210
  } catch (error) { errors.push(`approval.approval_ref 会签记录无效: ${error.message}`); }
@@ -218,7 +221,7 @@ else {
218
221
  assertCurrentAssetReference(values.root, path.relative(path.resolve(values.root), path.resolve(file)));
219
222
  const source = await readFile(file, "utf8");
220
223
  {
221
- const errors = validate(parseAsset(source, file), values.root);
224
+ const errors = validate(parseAsset(source, file), values.root, path.resolve(file));
222
225
  if (errors.length) fail(errors);
223
226
  else process.stdout.write(JSON.stringify({ result: "completed", contract: file }, null, 2) + "\n");
224
227
  }
@@ -8,6 +8,7 @@ import process from "node:process";
8
8
  import { parseArgs } from "node:util";
9
9
  import { parseDocument } from "../../../../scripts/vendor/yaml.mjs";
10
10
  import { loadApprovalRecord, resolveApprovalRef, validateApprovalRecord } from "../../../../scripts/lib/approval-record.mjs";
11
+ import { approvalExpectationForBoundAsset } from "../../../../scripts/lib/approval-consumption.mjs";
11
12
  import { verifyContextSnapshot } from "../../../../scripts/lib/context-contract.mjs";
12
13
  import { parseAsset, validateAssetStructure } from '../../../../scripts/lib/structured-assets.mjs';
13
14
 
@@ -27,7 +28,7 @@ function unique(items, label, errors) { const seen = new Set(); for (const item
27
28
  function canonical(value) { if (Array.isArray(value)) return value.map(canonical); if (value && typeof value === "object") return Object.fromEntries(Object.keys(value).sort().map((key) => [key, canonical(value[key])])); return value; }
28
29
  function digest(value) { return `sha256:${createHash("sha256").update(JSON.stringify(canonical(value))).digest("hex")}`; }
29
30
 
30
- async function validate(data, contextRoot) {
31
+ async function validate(data, contextRoot, currentRef) {
31
32
  validateAssetStructure(data, 'stage-decision-package');
32
33
  const errors = [];
33
34
  if (!data || typeof data !== "object" || Array.isArray(data)) return ["合同必须是对象"];
@@ -132,9 +133,11 @@ async function validate(data, contextRoot) {
132
133
  if (unresolved.some((item) => item?.type === "blocker") && data.status === "approved") errors.push("存在 blocker 未决项时不得 approved");
133
134
  if (data.status === "approved" && nonEmpty(approval.approval_ref)) {
134
135
  try {
135
- const approvalPath = resolveApprovalRef(approval.approval_ref);
136
- const record = loadApprovalRecord(approvalPath, "check.stage-decision-package-approved");
137
- validateApprovalRecord(record, { requireApproved: true });
136
+ const options = { root: contextRoot, review_package: false };
137
+ const approvalPath = resolveApprovalRef(approval.approval_ref, currentRef, options);
138
+ const expected = approvalExpectationForBoundAsset("check.stage-decision-package-approved", { ref: currentRef }, options);
139
+ const record = loadApprovalRecord(approvalPath, "check.stage-decision-package-approved", options);
140
+ validateApprovalRecord(record, { ...options, requireApproved: true, expected });
138
141
  if (record.gate_id !== "check.stage-decision-package-approved") errors.push("approval_ref 的 gate_id 必须为 check.stage-decision-package-approved");
139
142
  if (record.role_id !== approval.approver) errors.push("approval.approver 必须与会签记录 role_id 一致");
140
143
  } catch (error) { errors.push(`approval_ref 会签记录无效: ${error.message}`); }
@@ -151,7 +154,7 @@ else {
151
154
  assertCurrentAssetReference(values.root, path.relative(path.resolve(values.root), path.resolve(file)));
152
155
  const source = await readFile(file, "utf8");
153
156
  {
154
- const errors = await validate(parseAsset(source, file), values.root);
157
+ const errors = await validate(parseAsset(source, file), values.root, path.resolve(file));
155
158
  if (errors.length) fail(errors);
156
159
  else process.stdout.write(JSON.stringify({ result: "completed", contract: file }, null, 2) + "\n");
157
160
  }
@@ -35,6 +35,40 @@ function parseYaml(source) {
35
35
  return document.toJS({ maxAliasCount: 0 });
36
36
  }
37
37
 
38
+ const hashBytes = source => createHash("sha256").update(source).digest("hex");
39
+ // This independent, test-only consumer context is never reconstructed from a record.
40
+ function bindSource(source, file, approvalRef, contextDigest) {
41
+ const document = parseDocument(source, { maxAliasCount: 0, uniqueKeys: true });
42
+ if (document.errors.length) throw new Error(document.errors[0].message);
43
+ document.setIn(["approval", "approval_ref"], approvalRef);
44
+ document.setIn(["approval", "persisted_ref"], file);
45
+ document.set("approval_context", {
46
+ subject_ref: file,
47
+ approval_scope: ["feature.supplier-admission"],
48
+ basis: [{ ref: "CONTEXT.md", digest: contextDigest }],
49
+ drafter_principal_ref: "instance:role.requirements-manager"
50
+ });
51
+ return document.toString();
52
+ }
53
+
54
+ function fixtureApproval(gateId, file, source, contextDigest) {
55
+ return {
56
+ schema_version: 1, gate_id: gateId, decision: "approved", actor_kind: "digital-human",
57
+ role_id: "role.product-manager", runtime_id: "runtime.generic", principal_ref: "instance:role.product-manager",
58
+ drafter_role_id: "role.requirements-manager", drafter_principal_ref: "instance:role.requirements-manager",
59
+ subject_ref: file, subject_digest: hashBytes(source), approval_scope: ["feature.supplier-admission"],
60
+ basis: [{ ref: "CONTEXT.md", digest: contextDigest }], evidence_refs: [file, "CONTEXT.md"]
61
+ };
62
+ }
63
+
64
+ async function writeApprovedFixture(source, file, gateId, contextDigest) {
65
+ const approvalRef = `${file}.approval.json`;
66
+ const bound = bindSource(source, file, approvalRef, contextDigest);
67
+ await writeFile(file, bound);
68
+ await writeFile(approvalRef, JSON.stringify(fixtureApproval(gateId, file, bound, contextDigest), null, 2));
69
+ return bound;
70
+ }
71
+
38
72
  function toV2Domain(source) {
39
73
  const value = structuredClone(parseYaml(source));
40
74
  value.schema_version = 2;
@@ -115,18 +149,18 @@ try {
115
149
  if (contextResult.status !== 0) throw new Error(`context fixture should pass: ${contextResult.stderr}`);
116
150
  const context = JSON.parse(contextResult.stdout);
117
151
 
118
- const domainSource = (await readFile(validTemplate, "utf8"))
152
+ const domainTemplateSource = (await readFile(validTemplate, "utf8"))
119
153
  .replace("<document-digest>", context.document_digest)
120
154
  .replace("<referenced-terms-digest>", context.referenced_terms_digest);
121
155
  const domainFile = join(temporaryRoot, "domain-strategy.yaml");
122
- await writeFile(domainFile, domainSource);
156
+ const contextDigest = hashBytes(contextSource);
157
+ const domainSource = await writeApprovedFixture(domainTemplateSource, domainFile, "check.domain-strategy-approved", contextDigest);
123
158
  const pass = run(validator, domainFile, temporaryRoot);
124
159
  if (pass.status !== 0) throw new Error(`valid v3 fixture should pass: ${pass.stderr}`);
125
160
 
126
161
  const v2Domain = toV2Domain(domainSource);
127
- const v2DomainSource = JSON.stringify(v2Domain, null, 2);
128
162
  const v2DomainFile = join(temporaryRoot, "domain-strategy-v2.yaml");
129
- await writeFile(v2DomainFile, v2DomainSource);
163
+ const v2DomainSource = await writeApprovedFixture(JSON.stringify(v2Domain, null, 2), v2DomainFile, "check.domain-strategy-approved", contextDigest);
130
164
  const v2Pass = run(validator, v2DomainFile, temporaryRoot);
131
165
  if (v2Pass.status !== 0) throw new Error(`read-only v2 fixture should pass: ${v2Pass.stderr}`);
132
166
 
@@ -192,12 +226,12 @@ try {
192
226
  await writeFile(unknownContext, domainSource.replace("to_context: ComplianceReview", "to_context: UnknownContext"));
193
227
  expectBlocked(run(validator, unknownContext, temporaryRoot), /未引用已声明上下文|未在领域战略中登记/, "unknown context");
194
228
 
195
- const packageSource = (await readFile(validPackageTemplate, "utf8"))
229
+ const packageTemplateSource = (await readFile(validPackageTemplate, "utf8"))
196
230
  .replace("<document-digest>", context.document_digest)
197
231
  .replace("<referenced-terms-digest>", context.referenced_terms_digest)
198
232
  .replace("<domain-strategy-digest>", digestYaml(domainSource));
199
233
  const packageFile = join(temporaryRoot, "stage-decision.yaml");
200
- await writeFile(packageFile, packageSource);
234
+ const packageSource = await writeApprovedFixture(packageTemplateSource, packageFile, "check.stage-decision-package-approved", contextDigest);
201
235
  const packagePass = run(packageValidator, packageFile, temporaryRoot);
202
236
  if (packagePass.status !== 0) throw new Error(`valid v3 stage decision package should pass: ${packagePass.stderr}`);
203
237
  for (const format of ['yaml', 'json']) {
@@ -215,16 +249,14 @@ try {
215
249
 
216
250
  const bundleFile = join(temporaryRoot, "plan-review-bundle.json");
217
251
  const bundledDomainValue = parseYaml(domainSource);
218
- bundledDomainValue.approval.approval_ref = bundleFile;
219
- const bundledDomainSource = JSON.stringify(bundledDomainValue, null, 2);
220
252
  const bundledDomainFile = join(temporaryRoot, "domain-strategy-bundled.yaml");
253
+ const bundledDomainSource = bindSource(JSON.stringify(bundledDomainValue, null, 2), bundledDomainFile, bundleFile, contextDigest);
221
254
  await writeFile(bundledDomainFile, bundledDomainSource);
222
255
  const bundledPackageValue = parseYaml(packageSource);
223
256
  bundledPackageValue.domain_strategy_ref.persisted_ref = "domain-strategy-bundled.yaml";
224
257
  bundledPackageValue.domain_strategy_ref.digest = digestYaml(bundledDomainSource);
225
- bundledPackageValue.approval.approval_ref = bundleFile;
226
- const bundledPackageSource = JSON.stringify(bundledPackageValue, null, 2);
227
258
  const bundledPackageFile = join(temporaryRoot, "stage-decision-bundled.yaml");
259
+ const bundledPackageSource = bindSource(JSON.stringify(bundledPackageValue, null, 2), bundledPackageFile, bundleFile, contextDigest);
228
260
  await writeFile(bundledPackageFile, bundledPackageSource);
229
261
  await writeFile(bundleFile, JSON.stringify({
230
262
  schema_version: 1,
@@ -237,8 +269,8 @@ try {
237
269
  runtime_id: "runtime.generic",
238
270
  principal_ref: "instance:role.product-manager",
239
271
  reviews: [
240
- { schema_version: 1, gate_id: "check.domain-strategy-approved", decision: "approved", actor_kind: "digital-human", role_id: "role.product-manager", runtime_id: "runtime.generic", principal_ref: "instance:role.product-manager", drafter_role_id: "role.requirements-manager", drafter_principal_ref: "instance:role.requirements-manager", subject_ref: bundledDomainFile, subject_digest: digestYaml(bundledDomainSource).slice(7), approval_scope: ["feature.supplier-admission"], evidence_refs: [bundledDomainFile] },
241
- { schema_version: 1, gate_id: "check.stage-decision-package-approved", decision: "approved", actor_kind: "digital-human", role_id: "role.product-manager", runtime_id: "runtime.generic", principal_ref: "instance:role.product-manager", drafter_role_id: "role.requirements-manager", drafter_principal_ref: "instance:role.requirements-manager", subject_ref: bundledPackageFile, subject_digest: digestYaml(bundledPackageSource).slice(7), approval_scope: ["feature.supplier-admission"], evidence_refs: [bundledPackageFile] }
272
+ fixtureApproval("check.domain-strategy-approved", bundledDomainFile, bundledDomainSource, contextDigest),
273
+ fixtureApproval("check.stage-decision-package-approved", bundledPackageFile, bundledPackageSource, contextDigest)
242
274
  ]
243
275
  }, null, 2));
244
276
  const bundledDomainPass = run(validator, bundledDomainFile, temporaryRoot);
@@ -246,9 +278,47 @@ try {
246
278
  const bundledPackagePass = run(packageValidator, bundledPackageFile, temporaryRoot);
247
279
  if (bundledPackagePass.status !== 0) throw new Error(`stage decision should select its conclusion from Plan review-bundle: ${bundledPackagePass.stderr}`);
248
280
 
281
+ // Both consumers reject coherent record edits unless independently current inputs match.
282
+ for (const [kind, command, source, gateId] of [
283
+ ["domain", validator, domainSource, "check.domain-strategy-approved"],
284
+ ["stage", packageValidator, packageSource, "check.stage-decision-package-approved"]
285
+ ]) {
286
+ for (const [label, mutateAsset, mutateRecord, pattern] of [
287
+ ["missing-context", value => { delete value.approval_context; }, null, /APPROVAL_CONTEXT_REQUIRED/],
288
+ ["context-missing-basis", value => { value.approval_context.basis = []; }, null, /APPROVAL_CONTEXT_REQUIRED/],
289
+ ["context-stale-basis", value => { value.approval_context.basis[0].digest = "0".repeat(64); }, null, /当前消费上下文.*证据过期/],
290
+ ["context-missing-drafter", value => { delete value.approval_context.drafter_principal_ref; }, null, /独立起草者来源/],
291
+ ["context-drafter", value => { value.approval_context.drafter_principal_ref = "instance:other-drafter"; }, null, /起草者身份.*不匹配/],
292
+ ["context-scope", value => { value.approval_context.approval_scope.push("feature.other"); }, null, /审查范围不匹配/],
293
+ ["record-subject", null, record => { record.subject_ref = domainFile; }, /审查对象不匹配/],
294
+ ["record-scope", null, record => { record.approval_scope.push("feature.other"); }, /审查范围不匹配/],
295
+ ["record-drafter", null, record => { record.drafter_principal_ref = "instance:other-drafter"; }, /起草者身份.*不匹配/],
296
+ ["record-self-sign", null, record => { record.principal_ref = record.drafter_principal_ref; }, /起草者自签/],
297
+ ["record-missing-basis", null, record => { record.basis = []; }, /批准记录.*缺少当前证据摘要/],
298
+ ["record-stale-basis", null, record => { record.basis[0].digest = "0".repeat(64); }, /批准记录.*证据过期/],
299
+ ["record-semantic-digest", null, record => { record.subject_digest = digestYaml(record.fixtureSource).slice(7); }, /审查资产摘要不匹配/]
300
+ ]) {
301
+ const file = join(temporaryRoot, `${kind}-${label}.yaml`);
302
+ let bound = await writeApprovedFixture(source, file, gateId, contextDigest);
303
+ if (mutateAsset) {
304
+ const value = parseYaml(bound); mutateAsset(value);
305
+ bound = JSON.stringify(value, null, 2);
306
+ await writeFile(file, bound);
307
+ }
308
+ const record = fixtureApproval(gateId, file, bound, contextDigest);
309
+ // Keep the raw bytes current even for consumer-context changes: an unrelated stale
310
+ // subject must not be what makes the current-context negative pass.
311
+ if (mutateRecord) {
312
+ record.fixtureSource = bound; mutateRecord(record); delete record.fixtureSource;
313
+ }
314
+ await writeFile(`${file}.approval.json`, JSON.stringify(record, null, 2));
315
+ expectBlocked(run(command, file, temporaryRoot), pattern, `${kind} ${label}`);
316
+ }
317
+ }
318
+
249
319
  const v2Stage = toV2Stage(packageSource, digestYaml(v2DomainSource));
250
320
  const v2StageFile = join(temporaryRoot, "stage-decision-v2.yaml");
251
- await writeFile(v2StageFile, JSON.stringify(v2Stage, null, 2));
321
+ await writeApprovedFixture(JSON.stringify(v2Stage, null, 2), v2StageFile, "check.stage-decision-package-approved", contextDigest);
252
322
  const v2StagePass = run(packageValidator, v2StageFile, temporaryRoot);
253
323
  if (v2StagePass.status !== 0) throw new Error(`read-only v2 stage decision package should pass: ${v2StagePass.stderr}`);
254
324
 
@@ -34,7 +34,7 @@ description: 在 YSS 技术分析阶段将批准的战略领域输入细化为
34
34
 
35
35
  批准且版本当前的战术设计合同由 `Slice Implementation Contract` 引用,再由 `yss-domain` 使用 `behavior-tdd` 实现。`yss-domain` 不得静默重新定义聚合或不变量;发现新的 API、状态、数据或架构影响时必须返回 `new_impacts` / `drift` 并重新路由。
36
36
 
37
- 合同、Schema、校验规则和示例见 `references/`;使用 `scripts/validate-tactical-design.mjs` 做只读验证。该 skill 不生成 Java、Repository、Controller、DTO、OpenAPI Freeze、实现 Ticket 或生产代码。
37
+ 起草 DDD `design` 时读取 [战术合同](references/tactical-design-contract.md),按 [验证规则](references/validation-rules.md) 执行 `scripts/validate-tactical-design.mjs` 的只读校验;需要正文结构时读取 [输出模板](references/output-template.md),不批量加载整个 references 目录。该 Skill 不生成 Java、Repository、Controller、DTO、OpenAPI Freeze、实现 Ticket 或生产代码。
38
38
 
39
39
  ## 战略交接快照包
40
40
 
@@ -5,7 +5,7 @@ owner: ai
5
5
 
6
6
  # <功能名称> Tactical DDD Design
7
7
 
8
- 仅用于已确认 domain-driven 分支的阅读视图;引用 Technical Design Contract v2 的 design,不复制共同输入与审批状态。MVC 使用 `yss-technical-design` 的 `layered-mvc` 分支。
8
+ 仅用于已确认 domain-driven 分支的阅读视图;引用 Technical Design Contract v2 的 design,不复制共同输入与审批状态。交接来源及可接受版本按 [输入合同](tactical-design-contract.md) 核对并绑定实际 ref/version/digest。MVC 使用 `yss-technical-design` 的 `layered-mvc` 分支。
9
9
 
10
10
  ## 上游引用
11
11
 
@@ -13,8 +13,8 @@ owner: ai
13
13
  |---|---|---|---|
14
14
  | Spec | | | |
15
15
  | Strategic DDD | | | |
16
- | Strategic Design Handoff v3 | | | |
17
- | Visual Baseline Bundle v1 | | | |
16
+ | Strategic Design Handoff / 交付包(适用时) | | | |
17
+ | 原型或 existing UI baseline(按交接来源) | | | |
18
18
  | Strategic Context Import / Context Reconciliation | | | |
19
19
  | 状态矩阵 | | | |
20
20
  | OpenAPI / 无 API 影响记录 | | | |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 输入
4
4
 
5
- 必须引用批准且版本当前的 Spec、功能架构、战略 DDD、原型状态矩阵、OpenAPI Draft / Freeze(或无 API 影响记录)、ADR 和工程约束。来自 Strategic Design Handoff 时,额外要求 v3 交接包、`strategic_context_import_ref` 和目标仓 `context_reconciliation_ref`;目标根 `CONTEXT.md` 未完成增量对账前返回 `blocked`。所有引用都必须带版本或 digest;不可读或过期引用返回 `blocked` / `stale`。
5
+ 必须引用批准且版本当前的 Spec、功能架构、战略 DDD、适用 UI 状态矩阵、OpenAPI Draft / Freeze(或无 API 影响记录)、ADR 和工程约束。来自 Strategic Design Handoff 时,按仓库 `.template-spec/process/strategic-handoff-package.md` 的版本与消费者规则绑定交接包、`strategic_context_import_ref` 和目标仓 `context_reconciliation_ref`;历史 v3/v4 只按冻结 schema 兼容读取,新交付使用 v5。原型或 existing UI baseline 须符合该包的来源分支;目标根 `CONTEXT.md` 未完成增量对账前返回 `blocked`。所有引用都必须带版本或 digest;不可读或过期引用返回 `blocked` / `stale`。
6
6
 
7
7
  ## 输出
8
8
 
@@ -9,17 +9,18 @@ description: 在 YSS 技术分析中统一承接需求与战略输入,按已
9
9
 
10
10
  由 `yss-product-lifecycle` 调度,负责 `work-unit.technical-analysis` 的技术设计,不另起生命周期、不生成生产代码。生命周期维护批准和状态;`yss-implementation-contract-compiler` 消费批准且当前的设计,起草实现合同。
11
11
 
12
- 文档输出时按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md`;作用域仅限当前产物,派发时传递条件及引用。
12
+ ## 文档输出
13
13
 
14
- ## 文档写作
15
-
16
- 起草或修订技术设计解释正文前,读取 `.template-spec/process/document-writing.md` 的共用写法及工程契约指引,并在分支派发中传递该引用;结构化合同保持原 schema 和验证要求。
14
+ 起草或修订技术设计解释正文时,按 `lifecycle-document-output` 条件调用 `i-have-adhd`,读取 `.template-spec/process/document-writing.md` 的共用写法及工程契约指引。作用域仅限当前产物,分支派发传递条件及引用;结构化合同保持原 schema 和验证要求。
17
15
 
18
16
  ## 输入与架构选择
19
17
 
20
18
  先读根 `CONTEXT.md`、已批准且当前的 Spec、业务规则、关键场景、适用的 API 契约、ADR 和工程约束。没有 API 或其他专项影响时记录有依据的不适用,不生成占位设计。
21
19
 
22
- 按项目绑定架构选择的来源及摘要。新工程必须先通过 `gate.backend-architecture-platform-approved`:Agent 展示 DDD / MVC 推荐依据及平台清单中的精确 Spring Boot、Java 版本,用户在同一次决定中确认两项内容;决定持久化到 `scaffold-architecture-decisions.yaml`,再进入对应分支,后续脚手架消费同一决定。既有工程核验并沿用当前登记架构及固定工程基线/POM 中的实际 Spring Boot 版本,该门禁记录为 `not-applicable`,不重复询问;架构转换或平台升级另行立项。只有 `domain-driven` 和 `layered-mvc` 两种架构族,不能从目录推断或默认 DDD、MVC 或 Spring Boot 版本。具体 Profile 及模块边界消费技能注册表与 `.template-spec/agents/backend-architecture-profiles.md`。
20
+ 按项目绑定架构来源及摘要,架构族只允许 `domain-driven` 与 `layered-mvc`;不从目录推断或默认架构、Spring Boot 版本。具体 Profile 与模块边界消费技能注册表及 `.template-spec/agents/backend-architecture-profiles.md`。
21
+
22
+ - 新工程先通过 `gate.backend-architecture-platform-approved`:展示 DDD / MVC 推荐依据及平台清单中的精确 Spring Boot、Java,用户在同一次决定确认架构与平台。决定持久化到 `scaffold-architecture-decisions.yaml`,设计与后续脚手架消费同一决定。
23
+ - 既有工程核验并沿用当前登记架构及固定工程基线/POM 的实际 Spring Boot;该门禁记录带依据的 `not-applicable`,不重复询问。架构转换或平台升级单独立项。
23
24
 
24
25
  - `domain-driven`:调用 `yss-tactical-design`,补齐适用的战略领域输入。
25
26
  - `layered-mvc`:由本 skill 直接设计模块职责与依赖方向、用例流程、业务规则、状态转换、事务与回滚、幂等与并发、持久化映射、外部集成和公开测试 seam;不要求战略 DDD、聚合、值对象、Domain Event 或 DDD Gateway。分层边界消费 `.template-spec/agents/backend-architecture-profiles.md`,不得为 MVC 加载 `yss-domain` 或生成 DDD Gateway。
@@ -22,7 +22,11 @@ description: "选择和核验 YSS Vue 生产页面组件及 Ant Design Vue 兼
22
22
 
23
23
  ## 2. 执行前版本预检
24
24
 
25
- 采用专职前端 profile 或显式 `frontend_delivery` 绑定时,先按 `.template-spec/process/frontend-backend-delivery.md` 实际核验战略与后端联合交付。缺任一输入只能诊断和回交;输入通过后准备计划/合同,正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。接口或部署版本漂移时重新接收,不复用旧成功输出。
25
+ 采用专职前端 profile 或显式 `frontend_delivery` 绑定时:
26
+
27
+ - 按 `.template-spec/process/frontend-backend-delivery.md` 核验战略与后端联合交付;缺任一输入只能诊断和回交。
28
+ - 输入通过后准备计划 / 合同;正式实现、生成和恢复仍须当前批准的 Slice Contract 冻结接收摘要。
29
+ - 接口或部署版本漂移时重新接收,不复用旧成功输出。
26
30
 
27
31
  进入实现前从前端工程根目录执行:
28
32
 
@@ -32,6 +36,8 @@ pnpm why vue @yss-ui/components @yss-ui/hooks ant-design-vue vxe-table
32
36
 
33
37
  记录实际版本、lockfile、验证命令和环境阻塞。完整策略见 `references/antdv-compatibility.md`。
34
38
 
39
+ 本次输入还包括批准合同、页面 / 交互范围和实际适用的专项技能;UI 切片使用已校验的 `frontend_implementation_plan`,实现后补 `frontend_implementation_verification`。输入缺失、摘要漂移或组件事实无法确认时,停止受影响的实现并回交原所有者。
40
+
35
41
  产品设计使用的 Antdv Next 或 Ant Design v6 视觉/token 语义,不等于 Vue 生产实现 API。生产代码必须使用项目安装的 Ant Design Vue 4.x API,禁止把原型 props、events、slots、hook 或组件写法当作生产合同。原型统一使用 HTML/CSS/JavaScript;原型阶段不得调用本技能。只有进入前端实现计划、已批准切片的生产实现或实现还原验证后,才从目标 lockfile、类型、本地文档和既有用法取得真实组件事实。
36
42
 
37
43
  ## 3. 组件选型门禁
@@ -162,5 +162,5 @@ git push -f origin dev
162
162
 
163
163
  ## 相关文档
164
164
 
165
- - [发版工作流指南](./guide/release-workflow.md)
166
- - [Commit 规范说明](./guide/release-workflow.md#-commit-message-规范必须遵守)
165
+ - [发版工作流指南](./release-workflow.md)
166
+ - [Commit 规范说明](./release-workflow.md#-commit-message-规范必须遵守)
@@ -1,110 +1,52 @@
1
- # yss-ui Checklist
1
+ # YSS UI 交付检查
2
2
 
3
- ## 使用方式
3
+ 开发时按当前页面和影响面自检,联调时核对数据链路,交付时重新绑定当前 Slice 的实现计划、实现还原验证与实际执行证据。未命中项按原合同记录原因;命中但未验证的项保留阻塞,不能用清单勾选替代执行。
4
4
 
5
- - 开发阶段:按页面类型逐项自检。
6
- - 联调阶段:重点执行“数据链路与交互”清单。
7
- - 提交前:至少完成“通用基线”+ 当前页面类型清单。
5
+ ## 通用基线
8
6
 
9
- ---
7
+ - [ ] 已从目标工程用 `pnpm why` 确认 Vue、YSS UI、AntDV、VXE 实际版本及 lockfile。
8
+ - [ ] 组件选型符合 [组件路由](component-routing.md),已导出的组件 / Hook / Utils 使用真实包来源;受控回退有能力缺口、版本和验证证据。
9
+ - [ ] 使用 Vue 3 Composition API 与 `<script setup lang="ts">`,未引入不存在的 Y 前缀组件或违规 `@formily/antd*` UI。
10
+ - [ ] 页面编排、业务 Hook、纯配置和样式按职责组织;容器的间距与可计算高度符合工程基线。
11
+ - [ ] 适用实现已对照匹配版本的组件文档和已验证 Demo;`pending-verification` 示例不作为推荐依据。
12
+ - [ ] loading、empty、error、disabled/no-access 和实际依赖的 selected 状态都有反馈与恢复路径。
10
13
 
11
- ## 通用基线(所有页面必查)
14
+ ## 主题、Locale、浮层和可访问性
12
15
 
13
- - [ ] 已用 `pnpm why` 确认 Vue、YSS UI、AntDV、VXE 实际版本
14
- - [ ] 组件选型已对照 `component-routing.md`,AntDV 回退已记录原因
15
- - [ ] 使用 Vue 3 Composition API + `<script setup lang="ts">`
16
- - [ ] 优先使用 `@yss-ui/components`,缺失能力再回退 `ant-design-vue`
17
- - [ ] 未引入不存在的 Y 前缀组件
18
- - [ ] 无 `@formily/antd*` 违规导入
19
- - [ ] 页面容器具备统一布局(padding/margin/min-height)
20
- - [ ] 状态展示与危险操作颜色保持一致
21
- - [ ] 关键交互具备成功/失败反馈(`message`)
22
- - [ ] 关键实现至少对照一个 docs demo(`../assets/demos/*`)
23
- - [ ] 推荐 Demo 不含 `pending-verification`
16
+ - [ ] 通过项目 ConfigProvider、YSS theme 或语义 Token 消费主题,未新增页面级主题色、任意 z-index;状态不只用颜色表达。
17
+ - [ ] locale、时区、日期和金额格式化复用统一能力;Popup/Teleport 目标与宿主、微应用容器一致。
18
+ - [ ] 图标按钮有可访问名称,表单 label 与错误提示有语义关联;主要动作支持键盘,Tab 顺序合理。
19
+ - [ ] Modal/Drawer 打开后焦点合理,关闭时清理状态并恢复触发元素焦点。
20
+ - [ ] 窄屏布局、表格横向滚动、操作收敛及实际采用的大数据 / 搜索 / 按需加载策略已验证。
24
21
 
25
- ## 主题、Locale 与浮层
22
+ ## 列表与选择
26
23
 
27
- - [ ] 页面通过项目 ConfigProvider/YSS theme/语义 token 消费主题
28
- - [ ] 未新增页面级主题色和任意 z-index
29
- - [ ] locale、时区、日期和金额格式化沿用项目统一能力
30
- - [ ] Popup/Teleport 目标适配宿主和微应用容器
31
- - [ ] Modal/Drawer 关闭时清理状态并恢复触发元素焦点
24
+ 配置 YTable 时由已安装的 `ytable-usage` 核对专项规则,组件公开 API 见 [YTable 文档](../assets/docs/components/table.md);没有多选或分页的页面不需要引入对应能力。公共包未附的专项及缺失时的停止、恢复条件见 [专项技能的可用性](quick-recipes.md#专项技能的可用性),组件文档不能替代必要专项。
32
25
 
33
- ## 可访问性、响应式与性能
26
+ - [ ] 列使用 `YTableColumn` 与 `field/type`;行键配置实际业务主键和 `useKey: true`。
27
+ - [ ] 自定义单元格与表头使用真实字段插槽,不用 `bodyCell` 分支冒充 YTable 主渲染模式;DOM 模板中的插槽按 kebab-case。
28
+ - [ ] 远程分页使用 `pageable + v-model:pagination`,状态为 `current/pageSize/total/remote`,监听 `@page-change` 的 `{ current, pageSize }`。
29
+ - [ ] 多选场景配置 Checkbox、受控选择和空选择禁用;批量操作成功后受控字段与可见勾选同时清空。
30
+ - [ ] 远程查询由业务 Hook 执行,未把实例 `refresh()` 当作接口重查;危险操作使用组件确认或邻近 `Popconfirm`。
34
31
 
35
- - [ ] 图标按钮有可访问名称,状态不只依赖颜色
36
- - [ ] 表单 label、错误提示与控件建立语义关联
37
- - [ ] 主要操作可通过键盘完成,Tab 顺序合理
38
- - [ ] 窄屏布局、表格横向滚动和操作收敛已检查
39
- - [ ] 大数据 Table/Tree、远程搜索和复杂组件采用项目已验证的性能策略
32
+ ## 抽屉与步骤
40
33
 
41
- ---
34
+ - [ ] 抽屉开关与当前记录有单一来源,打开前完成回填,关闭时清理临时输入,Tab 切换不引入脏数据。
35
+ - [ ] 抽屉内列表沿用 YTable 列和分页合同;底部危险操作按批准交互设置确认,不默认使用居中 `Modal.confirm`。
36
+ - [ ] 步骤状态有单一来源,当前实例校验成功才前进;跨步骤数据与弹层编辑回填都保留。
37
+ - [ ] 上一步、下一步、取消与完成按钮的状态和文案正确;完成后提供反馈并进入合同约定的目标页面。
42
38
 
43
- ## 列表页清单(YTable)
39
+ ## API、Mock、路由与菜单
44
40
 
45
- - [ ] 列定义使用 `YTableColumn`,主字段走 `field/type`
46
- - [ ] 启用 `:row-config="{ keyField: 'id' }"` 或业务主键
47
- - [ ] 需要选择行时已配置 `type: 'checkbox'`
48
- - [ ] 自定义单元格走字段插槽(如 `#status`、`#action`)
49
- - [ ] DOM 模板(JSP/HTML)下插槽命名使用 kebab-case(如 `#toolbar-left`)
50
- - [ ] 避免以 `bodyCell` 分支作为主渲染模式
51
- - [ ] 分页状态包含 `current/pageSize/total`
52
- - [ ] `@change` 中同步更新分页并触发刷新
53
- - [ ] 加载态与空态行为正确
41
+ - [ ] API 经项目统一 mutator,导入当前真实生成函数与 DTO;URL 未重复拼接 `/api`。
42
+ - [ ] 请求分页、筛选和响应映射均匹配冻结合同;Mock 路径、字段、状态码和包装复现同一 wire shape,不另定通用包装。
43
+ - [ ] 查询回第一页,翻页保留筛选;API 失败只由 mutator 提示,Hook 维护状态与恢复,不重复错误 Toast。
44
+ - [ ] 路由位于实际模块层级,`meta.title` 和唯一 `name` 符合页面语义;已有工程采用 `MENU_TYPE.INNER_MENU` 时,详情 / 创建页沿用其配置。
54
45
 
55
- ---
46
+ ## 实际验证与限制
56
47
 
57
- ## 抽屉详情页清单
58
-
59
- - [ ] 抽屉开关状态单一来源(`ref<boolean>`)
60
- - [ ] 打开抽屉前正确设置当前记录
61
- - [ ] 抽屉关闭时清理临时输入/评论等状态
62
- - [ ] Tab 切换不引入脏数据
63
- - [ ] 抽屉内表格优先使用 YTable(列同样遵循 `field/type`)
64
- - [ ] 底部操作按钮具备确认机制(如 `Modal.confirm`)
65
-
66
- ---
67
-
68
- ## 步骤页清单(Create/Step)
69
-
70
- - [ ] 步骤状态由单一 `currentStep` 管理
71
- - [ ] 第一步表单校验通过后再进入下一步
72
- - [ ] 步骤二列表推荐使用 YTable 承载节点信息
73
- - [ ] 节点编辑弹层(Drawer/Modal)保存后回填源数据
74
- - [ ] 上一步/下一步/取消/完成按钮状态与文案正确
75
- - [ ] 完成动作后有明确反馈并返回目标页面
76
-
77
- ---
78
-
79
- ## 数据链路与联调清单(API + Mock)
80
-
81
- - [ ] API 请求通过项目统一实例(`mutator.ts`)发起
82
- - [ ] URL 未重复拼接 `/api` 前缀
83
- - [ ] 列表请求参数包含 `page/pageSize` 与筛选参数
84
- - [ ] Mock 路由与前端请求路径一致
85
- - [ ] Mock 返回结构为 `{ code, message, data: { list, total, page, pageSize } }`
86
- - [ ] 查询行为会重置页码到第一页
87
- - [ ] 分页行为会沿用筛选条件重新请求
88
- - [ ] 异常时正确提示并兜底空数据
89
-
90
- ---
91
-
92
- ## 路由与菜单清单
93
-
94
- - [ ] 页面路由挂载在正确模块 `children` 下
95
- - [ ] `meta.title` 与页面语义一致
96
- - [ ] 详情/创建页使用 `menuType: MENU_TYPE.INNER_MENU`
97
- - [ ] 路由名称(name)语义清晰且唯一
98
-
99
- ---
100
-
101
- ## 交付前核查清单
102
-
103
- - [ ] 关键文件已补充必要类型定义
104
- - [ ] 无调试输出(如 `console.info`)遗留
105
- - [ ] 运行格式化命令并确认无格式问题
106
- - [ ] 目标文件 IDE 诊断无新增错误
107
- - [ ] 若 lint/type-check 失败,已明确标注环境原因
108
- - [ ] 如需 AI 辅助生成代码,优先加载 `llms-full.txt` 上下文
109
- - [ ] 必要的组件测试、E2E、视觉回归已执行;未适用项记录原因
110
- - [ ] 浏览器 console 无新增 warning/error
48
+ - [ ] 类型、静态检查和目标文件诊断没有新增问题;无调试输出遗留。格式检查优先使用工程现有检查模式,避免重写无关文件。
49
+ - [ ] 适用组件测试、关键交互、E2E、响应式与视觉回归已执行,浏览器 console 无新增 warning/error。
50
+ - [ ] `frontend_implementation_plan` / `frontend_implementation_verification` 绑定当前输入;视觉场景按 `case_id` 配对基准图、实现图、diff/mask 与差异解释。
51
+ - [ ] 验证记录含工作目录、实际命令、退出码、环境及证据。失败报告实际现象和已确认原因;原因未知时保留未知,未执行项不写通过。
52
+ - [ ] 文档查询按 [组件来源判定](component-routing.md#导入来源判定)选择 MCP、匹配版本的本地资料或源码,不因生成代码就预读完整 `llms-full.txt`。
@@ -15,7 +15,7 @@
15
15
  | 条件构建 | `YConditionBuilder` | YSS domain component | required | 标准模型与校验边界见 `specialized-components.md` |
16
16
  | 月历 | `YMonthCalendar` | YSS domain component | required | 日期、月份、高度与事件边界见 `specialized-components.md` |
17
17
  | Cron | `YCron` | YSS domain component | required | 七段表达式边界见 `specialized-components.md` |
18
- | 图表 | `YssEcharts` | ECharts | required | 主题、更新和尺寸边界见 `specialized-components.md` |
18
+ | 图表 | `YEcharts` | ECharts | required | 主题、更新和尺寸边界见 `specialized-components.md` |
19
19
  | 编辑器 | `YMonaco` / `YMonacoDiff` | Monaco | required | 按需加载和尺寸治理见 `specialized-components.md` |
20
20
  | Sheet | `YSheet` | Univer | required | Facade、释放和依赖边界见 `specialized-components.md` |
21
21
  | 输入、选择、日期 | 无独立通用 Wrapper | AntDV Input/Select/DatePicker 等 | fallback | 读取实际 AntDV 版本;服从 theme/locale/popup 规则 |
@@ -23,6 +23,8 @@
23
23
  | 服务式反馈 | 无统一 Wrapper | message/notification | fallback | 检查 App/ConfigProvider 上下文 |
24
24
  | 布局与导航 | 按项目现状 | AntDV Layout/Grid/Menu/Tabs 等 | fallback | 不复制 React Ant Design v6 API |
25
25
 
26
+ 图表名称按本地快照的 [Vue Demo 导入](../assets/demos/echarts/line.vue) 使用 `YEcharts`;文档标题中的旧名称不作为导出依据。目标工程仍须按 lockfile、类型和真实导出核验。
27
+
26
28
  ## 受控回退
27
29
 
28
30
  YSS `required` wrapper 缺少必要能力时,记录组件、能力缺口、依赖版本、替代方案、主题/locale/浮层影响和验证证据。没有记录不得回退。