create-yss-spec 3.5.6 → 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 (552) 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/content-identity.js +111 -0
  7. package/src/runtime-store.mjs +650 -0
  8. package/src/template/asset-runtime.js +4 -1
  9. package/src/template/instance-runtime.js +23 -7
  10. package/src/validation/metadata.js +8 -0
  11. package/template/.agents/skills/.strategic-design-skills-manifest.json +1 -1
  12. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +30 -36
  13. package/template/.agents/skills/archify/SKILL.md +2 -2
  14. package/template/.agents/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  15. package/template/.agents/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  16. package/template/.agents/skills/code-review/SKILL.md +19 -11
  17. package/template/.agents/skills/code-review/references/candidate-capture.md +1 -1
  18. package/template/.agents/skills/code-review/references/legacy-convergence.md +3 -1
  19. package/template/.agents/skills/code-review/references/review-axis-checklists.md +2 -0
  20. package/template/.agents/skills/code-review/references/yss-review-standards.md +4 -2
  21. package/template/.agents/skills/competitive-intelligence/SKILL.md +32 -74
  22. package/template/.agents/skills/file-export-download/SKILL.md +4 -73
  23. package/template/.agents/skills/file-export-download/references/binary-contract-example.md +26 -0
  24. package/template/.agents/skills/file-export-download/references/download-call-example.md +45 -0
  25. package/template/.agents/skills/formily-foundation/SKILL.md +6 -105
  26. package/template/.agents/skills/formily-foundation/references/async-save-example.md +57 -0
  27. package/template/.agents/skills/formily-foundation/references/query-layout.md +50 -0
  28. package/template/.agents/skills/formily-linkage-effects/SKILL.md +3 -116
  29. package/template/.agents/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  30. package/template/.agents/skills/formily-mode-slot-detail/SKILL.md +3 -81
  31. package/template/.agents/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  32. package/template/.agents/skills/formily-step-flow/SKILL.md +3 -143
  33. package/template/.agents/skills/formily-step-flow/references/step-flow-example.md +143 -0
  34. package/template/.agents/skills/handoff/SKILL.md +3 -1
  35. package/template/.agents/skills/i-have-adhd/SKILL.md +2 -2
  36. package/template/.agents/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  37. package/template/.agents/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  38. package/template/.agents/skills/implement/SKILL.md +2 -2
  39. package/template/.agents/skills/llm-wiki/references/transactions.md +2 -2
  40. package/template/.agents/skills/llm-wiki/scripts/core.mjs +40 -2
  41. package/template/.agents/skills/llm-wiki/scripts/transaction.mjs +30 -27
  42. package/template/.agents/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  43. package/template/.agents/skills/lombok/SKILL.md +2 -0
  44. package/template/.agents/skills/mapstruct/SKILL.md +2 -0
  45. package/template/.agents/skills/tdd/SKILL.md +2 -2
  46. package/template/.agents/skills/theme-token-usage/SKILL.md +6 -5
  47. package/template/.agents/skills/wayfinder/references/chart-map.md +2 -2
  48. package/template/.agents/skills/wayfinder/references/ticket-types.md +1 -1
  49. package/template/.agents/skills/yss-api-integration/SKILL.md +13 -50
  50. package/template/.agents/skills/yss-api-integration/references/orval-list-example.md +38 -0
  51. package/template/.agents/skills/yss-application/SKILL.md +11 -5
  52. package/template/.agents/skills/yss-audit-log/SKILL.md +8 -6
  53. package/template/.agents/skills/yss-audit-log/references/README.md +5 -5
  54. package/template/.agents/skills/yss-cache/SKILL.md +4 -4
  55. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  56. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  57. package/template/.agents/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  58. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  59. package/template/.agents/skills/yss-design-system/SKILL.md +2 -2
  60. package/template/.agents/skills/yss-distributed-id/SKILL.md +4 -4
  61. package/template/.agents/skills/yss-dto/SKILL.md +9 -9
  62. package/template/.agents/skills/yss-dto/references/README.md +4 -4
  63. package/template/.agents/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  64. package/template/.agents/skills/yss-excel-mvc/SKILL.md +4 -4
  65. package/template/.agents/skills/yss-exception/SKILL.md +42 -48
  66. package/template/.agents/skills/yss-formily-schema-generator/SKILL.md +26 -170
  67. package/template/.agents/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  68. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  69. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  70. package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  71. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  72. package/template/.agents/skills/yss-mybatis/SKILL.md +4 -4
  73. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +6 -4
  74. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  75. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  76. package/template/.agents/skills/yss-openapi-governance/SKILL.md +5 -7
  77. package/template/.agents/skills/yss-openapi-governance/references/governance-output.md +2 -0
  78. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  79. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +23 -21
  80. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  81. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  82. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  83. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  84. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +3 -1
  85. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  86. package/template/.agents/skills/yss-prototype-stage/SKILL.md +1 -5
  87. package/template/.agents/skills/yss-repository/SKILL.md +2 -2
  88. package/template/.agents/skills/yss-research/SKILL.md +39 -48
  89. package/template/.agents/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  90. package/template/.agents/skills/yss-research/references/competitive-analysis.md +76 -0
  91. package/template/.agents/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  92. package/template/.agents/skills/yss-research/references/evidence-contract.md +8 -0
  93. package/template/.agents/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  94. package/template/.agents/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  95. package/template/.agents/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  96. package/template/.agents/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  97. package/template/.agents/skills/yss-resilience4j/SKILL.md +25 -31
  98. package/template/.agents/skills/yss-security-algorithm/SKILL.md +37 -43
  99. package/template/.agents/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  100. package/template/.agents/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  101. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -5
  102. package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
  103. package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -3
  104. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  105. package/template/.agents/skills/yss-technical-design/SKILL.md +6 -5
  106. package/template/.agents/skills/yss-ui/SKILL.md +7 -1
  107. package/template/.agents/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  108. package/template/.agents/skills/yss-ui/references/checklist.md +38 -96
  109. package/template/.agents/skills/yss-ui/references/component-routing.md +3 -1
  110. package/template/.agents/skills/yss-ui/references/quick-recipes.md +17 -272
  111. package/template/.agents/skills/yss-ui/references/specialized-components.md +3 -3
  112. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  113. package/template/.agents/skills/yss-up-springboot3/SKILL.md +19 -21
  114. package/template/.agents/skills/yss-userinfo/SKILL.md +27 -33
  115. package/template/.agents/skills/yss-validation/SKILL.md +26 -32
  116. package/template/.agents/skills/yss-web-controller/SKILL.md +11 -44
  117. package/template/.agents/skills/yss-web-controller/references/crud-generation.md +38 -0
  118. package/template/.agents/skills/ytable-usage/SKILL.md +2 -2
  119. package/template/.agents/skills/ytree-usage/SKILL.md +2 -80
  120. package/template/.agents/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  121. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +30 -36
  122. package/template/.codex/skills/archify/SKILL.md +2 -2
  123. package/template/.codex/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  124. package/template/.codex/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  125. package/template/.codex/skills/code-review/SKILL.md +19 -11
  126. package/template/.codex/skills/code-review/references/candidate-capture.md +1 -1
  127. package/template/.codex/skills/code-review/references/legacy-convergence.md +3 -1
  128. package/template/.codex/skills/code-review/references/review-axis-checklists.md +2 -0
  129. package/template/.codex/skills/code-review/references/yss-review-standards.md +4 -2
  130. package/template/.codex/skills/competitive-intelligence/SKILL.md +32 -74
  131. package/template/.codex/skills/file-export-download/SKILL.md +4 -73
  132. package/template/.codex/skills/file-export-download/references/binary-contract-example.md +26 -0
  133. package/template/.codex/skills/file-export-download/references/download-call-example.md +45 -0
  134. package/template/.codex/skills/formily-foundation/SKILL.md +6 -105
  135. package/template/.codex/skills/formily-foundation/references/async-save-example.md +57 -0
  136. package/template/.codex/skills/formily-foundation/references/query-layout.md +50 -0
  137. package/template/.codex/skills/formily-linkage-effects/SKILL.md +3 -116
  138. package/template/.codex/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  139. package/template/.codex/skills/formily-mode-slot-detail/SKILL.md +3 -81
  140. package/template/.codex/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  141. package/template/.codex/skills/formily-step-flow/SKILL.md +3 -143
  142. package/template/.codex/skills/formily-step-flow/references/step-flow-example.md +143 -0
  143. package/template/.codex/skills/handoff/SKILL.md +3 -1
  144. package/template/.codex/skills/i-have-adhd/SKILL.md +2 -2
  145. package/template/.codex/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  146. package/template/.codex/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  147. package/template/.codex/skills/implement/SKILL.md +2 -2
  148. package/template/.codex/skills/llm-wiki/references/transactions.md +2 -2
  149. package/template/.codex/skills/llm-wiki/scripts/core.mjs +40 -2
  150. package/template/.codex/skills/llm-wiki/scripts/transaction.mjs +30 -27
  151. package/template/.codex/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  152. package/template/.codex/skills/lombok/SKILL.md +2 -0
  153. package/template/.codex/skills/mapstruct/SKILL.md +2 -0
  154. package/template/.codex/skills/product-design/references/communication-protocol.md +3 -3
  155. package/template/.codex/skills/product-design/references/critical-overrides.md +4 -5
  156. package/template/.codex/skills/product-design/skills/audit/SKILL.md +2 -4
  157. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +6 -8
  158. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +3 -3
  159. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +3 -5
  160. package/template/.codex/skills/product-design/skills/index/SKILL.md +1 -1
  161. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +2 -4
  162. package/template/.codex/skills/product-design/skills/research/SKILL.md +4 -6
  163. package/template/.codex/skills/product-design/skills/research/assets/research-brief-template.md +3 -3
  164. package/template/.codex/skills/product-design/skills/share/SKILL.md +2 -4
  165. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +2 -4
  166. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +1 -1
  167. package/template/.codex/skills/tdd/SKILL.md +2 -2
  168. package/template/.codex/skills/theme-token-usage/SKILL.md +6 -5
  169. package/template/.codex/skills/wayfinder/references/chart-map.md +2 -2
  170. package/template/.codex/skills/wayfinder/references/ticket-types.md +1 -1
  171. package/template/.codex/skills/yss-api-integration/SKILL.md +13 -50
  172. package/template/.codex/skills/yss-api-integration/references/orval-list-example.md +38 -0
  173. package/template/.codex/skills/yss-application/SKILL.md +11 -5
  174. package/template/.codex/skills/yss-audit-log/SKILL.md +8 -6
  175. package/template/.codex/skills/yss-audit-log/references/README.md +5 -5
  176. package/template/.codex/skills/yss-cache/SKILL.md +4 -4
  177. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  178. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  179. package/template/.codex/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  180. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  181. package/template/.codex/skills/yss-design-system/SKILL.md +2 -2
  182. package/template/.codex/skills/yss-distributed-id/SKILL.md +4 -4
  183. package/template/.codex/skills/yss-dto/SKILL.md +9 -9
  184. package/template/.codex/skills/yss-dto/references/README.md +4 -4
  185. package/template/.codex/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  186. package/template/.codex/skills/yss-excel-mvc/SKILL.md +4 -4
  187. package/template/.codex/skills/yss-exception/SKILL.md +42 -48
  188. package/template/.codex/skills/yss-formily-schema-generator/SKILL.md +26 -170
  189. package/template/.codex/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  190. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  191. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  192. package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  193. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  194. package/template/.codex/skills/yss-mybatis/SKILL.md +4 -4
  195. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +6 -4
  196. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  197. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  198. package/template/.codex/skills/yss-openapi-governance/SKILL.md +5 -7
  199. package/template/.codex/skills/yss-openapi-governance/references/governance-output.md +2 -0
  200. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  201. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +23 -21
  202. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  203. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  204. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  205. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  206. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +3 -1
  207. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  208. package/template/.codex/skills/yss-prototype-stage/SKILL.md +1 -5
  209. package/template/.codex/skills/yss-repository/SKILL.md +2 -2
  210. package/template/.codex/skills/yss-research/SKILL.md +39 -48
  211. package/template/.codex/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  212. package/template/.codex/skills/yss-research/references/competitive-analysis.md +76 -0
  213. package/template/.codex/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  214. package/template/.codex/skills/yss-research/references/evidence-contract.md +8 -0
  215. package/template/.codex/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  216. package/template/.codex/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  217. package/template/.codex/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  218. package/template/.codex/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  219. package/template/.codex/skills/yss-resilience4j/SKILL.md +25 -31
  220. package/template/.codex/skills/yss-security-algorithm/SKILL.md +37 -43
  221. package/template/.codex/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  222. package/template/.codex/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  223. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -5
  224. package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
  225. package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -3
  226. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  227. package/template/.codex/skills/yss-technical-design/SKILL.md +6 -5
  228. package/template/.codex/skills/yss-ui/SKILL.md +7 -1
  229. package/template/.codex/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  230. package/template/.codex/skills/yss-ui/references/checklist.md +38 -96
  231. package/template/.codex/skills/yss-ui/references/component-routing.md +3 -1
  232. package/template/.codex/skills/yss-ui/references/quick-recipes.md +17 -272
  233. package/template/.codex/skills/yss-ui/references/specialized-components.md +3 -3
  234. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  235. package/template/.codex/skills/yss-up-springboot3/SKILL.md +19 -21
  236. package/template/.codex/skills/yss-userinfo/SKILL.md +27 -33
  237. package/template/.codex/skills/yss-validation/SKILL.md +26 -32
  238. package/template/.codex/skills/yss-web-controller/SKILL.md +11 -44
  239. package/template/.codex/skills/yss-web-controller/references/crud-generation.md +38 -0
  240. package/template/.codex/skills/ytable-usage/SKILL.md +2 -2
  241. package/template/.codex/skills/ytree-usage/SKILL.md +2 -80
  242. package/template/.codex/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  243. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +30 -36
  244. package/template/.cursor/skills/archify/SKILL.md +2 -2
  245. package/template/.cursor/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  246. package/template/.cursor/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  247. package/template/.cursor/skills/code-review/SKILL.md +19 -11
  248. package/template/.cursor/skills/code-review/references/candidate-capture.md +1 -1
  249. package/template/.cursor/skills/code-review/references/legacy-convergence.md +3 -1
  250. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +2 -0
  251. package/template/.cursor/skills/code-review/references/yss-review-standards.md +4 -2
  252. package/template/.cursor/skills/competitive-intelligence/SKILL.md +32 -74
  253. package/template/.cursor/skills/file-export-download/SKILL.md +4 -73
  254. package/template/.cursor/skills/file-export-download/references/binary-contract-example.md +26 -0
  255. package/template/.cursor/skills/file-export-download/references/download-call-example.md +45 -0
  256. package/template/.cursor/skills/formily-foundation/SKILL.md +6 -105
  257. package/template/.cursor/skills/formily-foundation/references/async-save-example.md +57 -0
  258. package/template/.cursor/skills/formily-foundation/references/query-layout.md +50 -0
  259. package/template/.cursor/skills/formily-linkage-effects/SKILL.md +3 -116
  260. package/template/.cursor/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  261. package/template/.cursor/skills/formily-mode-slot-detail/SKILL.md +3 -81
  262. package/template/.cursor/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  263. package/template/.cursor/skills/formily-step-flow/SKILL.md +3 -143
  264. package/template/.cursor/skills/formily-step-flow/references/step-flow-example.md +143 -0
  265. package/template/.cursor/skills/handoff/SKILL.md +3 -1
  266. package/template/.cursor/skills/i-have-adhd/SKILL.md +2 -2
  267. package/template/.cursor/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  268. package/template/.cursor/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  269. package/template/.cursor/skills/implement/SKILL.md +2 -2
  270. package/template/.cursor/skills/llm-wiki/references/transactions.md +2 -2
  271. package/template/.cursor/skills/llm-wiki/scripts/core.mjs +40 -2
  272. package/template/.cursor/skills/llm-wiki/scripts/transaction.mjs +30 -27
  273. package/template/.cursor/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  274. package/template/.cursor/skills/lombok/SKILL.md +2 -0
  275. package/template/.cursor/skills/mapstruct/SKILL.md +2 -0
  276. package/template/.cursor/skills/tdd/SKILL.md +2 -2
  277. package/template/.cursor/skills/theme-token-usage/SKILL.md +6 -5
  278. package/template/.cursor/skills/wayfinder/references/chart-map.md +2 -2
  279. package/template/.cursor/skills/wayfinder/references/ticket-types.md +1 -1
  280. package/template/.cursor/skills/yss-api-integration/SKILL.md +13 -50
  281. package/template/.cursor/skills/yss-api-integration/references/orval-list-example.md +38 -0
  282. package/template/.cursor/skills/yss-application/SKILL.md +11 -5
  283. package/template/.cursor/skills/yss-audit-log/SKILL.md +8 -6
  284. package/template/.cursor/skills/yss-audit-log/references/README.md +5 -5
  285. package/template/.cursor/skills/yss-cache/SKILL.md +4 -4
  286. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  287. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  288. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  289. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  290. package/template/.cursor/skills/yss-design-system/SKILL.md +2 -2
  291. package/template/.cursor/skills/yss-distributed-id/SKILL.md +4 -4
  292. package/template/.cursor/skills/yss-dto/SKILL.md +9 -9
  293. package/template/.cursor/skills/yss-dto/references/README.md +4 -4
  294. package/template/.cursor/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  295. package/template/.cursor/skills/yss-excel-mvc/SKILL.md +4 -4
  296. package/template/.cursor/skills/yss-exception/SKILL.md +42 -48
  297. package/template/.cursor/skills/yss-formily-schema-generator/SKILL.md +26 -170
  298. package/template/.cursor/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  299. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  300. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  301. package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  302. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  303. package/template/.cursor/skills/yss-mybatis/SKILL.md +4 -4
  304. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +6 -4
  305. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  306. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  307. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +5 -7
  308. package/template/.cursor/skills/yss-openapi-governance/references/governance-output.md +2 -0
  309. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  310. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +23 -21
  311. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  312. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  313. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  314. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  315. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +3 -1
  316. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  317. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +1 -5
  318. package/template/.cursor/skills/yss-repository/SKILL.md +2 -2
  319. package/template/.cursor/skills/yss-research/SKILL.md +39 -48
  320. package/template/.cursor/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  321. package/template/.cursor/skills/yss-research/references/competitive-analysis.md +76 -0
  322. package/template/.cursor/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  323. package/template/.cursor/skills/yss-research/references/evidence-contract.md +8 -0
  324. package/template/.cursor/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  325. package/template/.cursor/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  326. package/template/.cursor/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  327. package/template/.cursor/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  328. package/template/.cursor/skills/yss-resilience4j/SKILL.md +25 -31
  329. package/template/.cursor/skills/yss-security-algorithm/SKILL.md +37 -43
  330. package/template/.cursor/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  331. package/template/.cursor/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  332. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -5
  333. package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
  334. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -3
  335. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  336. package/template/.cursor/skills/yss-technical-design/SKILL.md +6 -5
  337. package/template/.cursor/skills/yss-ui/SKILL.md +7 -1
  338. package/template/.cursor/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  339. package/template/.cursor/skills/yss-ui/references/checklist.md +38 -96
  340. package/template/.cursor/skills/yss-ui/references/component-routing.md +3 -1
  341. package/template/.cursor/skills/yss-ui/references/quick-recipes.md +17 -272
  342. package/template/.cursor/skills/yss-ui/references/specialized-components.md +3 -3
  343. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  344. package/template/.cursor/skills/yss-up-springboot3/SKILL.md +19 -21
  345. package/template/.cursor/skills/yss-userinfo/SKILL.md +27 -33
  346. package/template/.cursor/skills/yss-validation/SKILL.md +26 -32
  347. package/template/.cursor/skills/yss-web-controller/SKILL.md +11 -44
  348. package/template/.cursor/skills/yss-web-controller/references/crud-generation.md +38 -0
  349. package/template/.cursor/skills/ytable-usage/SKILL.md +2 -2
  350. package/template/.cursor/skills/ytree-usage/SKILL.md +2 -80
  351. package/template/.cursor/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  352. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +30 -36
  353. package/template/.pi/skills/archify/SKILL.md +2 -2
  354. package/template/.pi/skills/archify/scripts/yss-safe-deliver.mjs +10 -6
  355. package/template/.pi/skills/archify/test/yss-safe-deliver.test.mjs +9 -2
  356. package/template/.pi/skills/code-review/SKILL.md +19 -11
  357. package/template/.pi/skills/code-review/references/candidate-capture.md +1 -1
  358. package/template/.pi/skills/code-review/references/legacy-convergence.md +3 -1
  359. package/template/.pi/skills/code-review/references/review-axis-checklists.md +2 -0
  360. package/template/.pi/skills/code-review/references/yss-review-standards.md +4 -2
  361. package/template/.pi/skills/competitive-intelligence/SKILL.md +32 -74
  362. package/template/.pi/skills/file-export-download/SKILL.md +4 -73
  363. package/template/.pi/skills/file-export-download/references/binary-contract-example.md +26 -0
  364. package/template/.pi/skills/file-export-download/references/download-call-example.md +45 -0
  365. package/template/.pi/skills/formily-foundation/SKILL.md +6 -105
  366. package/template/.pi/skills/formily-foundation/references/async-save-example.md +57 -0
  367. package/template/.pi/skills/formily-foundation/references/query-layout.md +50 -0
  368. package/template/.pi/skills/formily-linkage-effects/SKILL.md +3 -116
  369. package/template/.pi/skills/formily-linkage-effects/references/linkage-example.md +116 -0
  370. package/template/.pi/skills/formily-mode-slot-detail/SKILL.md +3 -81
  371. package/template/.pi/skills/formily-mode-slot-detail/references/mode-slot-example.md +81 -0
  372. package/template/.pi/skills/formily-step-flow/SKILL.md +3 -143
  373. package/template/.pi/skills/formily-step-flow/references/step-flow-example.md +143 -0
  374. package/template/.pi/skills/handoff/SKILL.md +3 -1
  375. package/template/.pi/skills/i-have-adhd/SKILL.md +2 -2
  376. package/template/.pi/skills/i-have-adhd/references/yss-adaptation.md +2 -2
  377. package/template/.pi/skills/i-have-adhd/tests/verify-integration.mjs +7 -2
  378. package/template/.pi/skills/implement/SKILL.md +2 -2
  379. package/template/.pi/skills/llm-wiki/references/transactions.md +2 -2
  380. package/template/.pi/skills/llm-wiki/scripts/core.mjs +40 -2
  381. package/template/.pi/skills/llm-wiki/scripts/transaction.mjs +30 -27
  382. package/template/.pi/skills/llm-wiki/scripts/v2.test.mjs +38 -2
  383. package/template/.pi/skills/lombok/SKILL.md +2 -0
  384. package/template/.pi/skills/mapstruct/SKILL.md +2 -0
  385. package/template/.pi/skills/tdd/SKILL.md +2 -2
  386. package/template/.pi/skills/theme-token-usage/SKILL.md +6 -5
  387. package/template/.pi/skills/wayfinder/references/chart-map.md +2 -2
  388. package/template/.pi/skills/wayfinder/references/ticket-types.md +1 -1
  389. package/template/.pi/skills/yss-api-integration/SKILL.md +13 -50
  390. package/template/.pi/skills/yss-api-integration/references/orval-list-example.md +38 -0
  391. package/template/.pi/skills/yss-application/SKILL.md +11 -5
  392. package/template/.pi/skills/yss-audit-log/SKILL.md +8 -6
  393. package/template/.pi/skills/yss-audit-log/references/README.md +5 -5
  394. package/template/.pi/skills/yss-cache/SKILL.md +4 -4
  395. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +7 -8
  396. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -6
  397. package/template/.pi/skills/yss-ddd-scaffold-generator/references/command-examples.md +2 -0
  398. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +28 -1
  399. package/template/.pi/skills/yss-design-system/SKILL.md +2 -2
  400. package/template/.pi/skills/yss-distributed-id/SKILL.md +4 -4
  401. package/template/.pi/skills/yss-dto/SKILL.md +9 -9
  402. package/template/.pi/skills/yss-dto/references/README.md +4 -4
  403. package/template/.pi/skills/yss-dto/references/wire-validation-checklist.md +4 -4
  404. package/template/.pi/skills/yss-excel-mvc/SKILL.md +4 -4
  405. package/template/.pi/skills/yss-exception/SKILL.md +42 -48
  406. package/template/.pi/skills/yss-formily-schema-generator/SKILL.md +26 -170
  407. package/template/.pi/skills/yss-formily-schema-generator/references/workflow.md +49 -193
  408. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +14 -10
  409. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +2 -6
  410. package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +15 -1
  411. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +1 -1
  412. package/template/.pi/skills/yss-mybatis/SKILL.md +4 -4
  413. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +6 -4
  414. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +2 -0
  415. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +3 -3
  416. package/template/.pi/skills/yss-openapi-governance/SKILL.md +5 -7
  417. package/template/.pi/skills/yss-openapi-governance/references/governance-output.md +2 -0
  418. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +3 -3
  419. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +23 -21
  420. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +1 -1
  421. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +25 -5
  422. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +100 -4
  423. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +35 -12
  424. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +3 -1
  425. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +3 -3
  426. package/template/.pi/skills/yss-prototype-stage/SKILL.md +1 -5
  427. package/template/.pi/skills/yss-repository/SKILL.md +2 -2
  428. package/template/.pi/skills/yss-research/SKILL.md +39 -48
  429. package/template/.pi/skills/yss-research/assets/competitive-evidence-template.yaml +146 -0
  430. package/template/.pi/skills/yss-research/references/competitive-analysis.md +76 -0
  431. package/template/.pi/skills/yss-research/references/competitive-analysis.schema.json +324 -0
  432. package/template/.pi/skills/yss-research/references/evidence-contract.md +8 -0
  433. package/template/.pi/skills/yss-research/scripts/lib/competitive-analysis.mjs +185 -0
  434. package/template/.pi/skills/yss-research/scripts/render-competitive-outputs.mjs +16 -0
  435. package/template/.pi/skills/yss-research/scripts/validate-research-package.mjs +6 -2
  436. package/template/.pi/skills/yss-research/tests/competitive-scenarios.test.mjs +270 -0
  437. package/template/.pi/skills/yss-resilience4j/SKILL.md +25 -31
  438. package/template/.pi/skills/yss-security-algorithm/SKILL.md +37 -43
  439. package/template/.pi/skills/yss-skill-source-index-refresh/SKILL.md +29 -36
  440. package/template/.pi/skills/yss-skill-source-index-refresh/references/backend-component-platform-compatibility.md +1 -1
  441. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -5
  442. package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
  443. package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -3
  444. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +1 -1
  445. package/template/.pi/skills/yss-technical-design/SKILL.md +6 -5
  446. package/template/.pi/skills/yss-ui/SKILL.md +7 -1
  447. package/template/.pi/skills/yss-ui/assets/docs/guide/gitlab-ci-integration.md +2 -2
  448. package/template/.pi/skills/yss-ui/references/checklist.md +38 -96
  449. package/template/.pi/skills/yss-ui/references/component-routing.md +3 -1
  450. package/template/.pi/skills/yss-ui/references/quick-recipes.md +17 -272
  451. package/template/.pi/skills/yss-ui/references/specialized-components.md +3 -3
  452. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +1 -1
  453. package/template/.pi/skills/yss-up-springboot3/SKILL.md +19 -21
  454. package/template/.pi/skills/yss-userinfo/SKILL.md +27 -33
  455. package/template/.pi/skills/yss-validation/SKILL.md +26 -32
  456. package/template/.pi/skills/yss-web-controller/SKILL.md +11 -44
  457. package/template/.pi/skills/yss-web-controller/references/crud-generation.md +38 -0
  458. package/template/.pi/skills/ytable-usage/SKILL.md +2 -2
  459. package/template/.pi/skills/ytree-usage/SKILL.md +2 -80
  460. package/template/.pi/skills/ytree-usage/references/tree-and-confirmation-example.md +81 -0
  461. package/template/.template-spec/agents/backend-architecture-profiles.md +1 -1
  462. package/template/.template-spec/agents/digital-human-roles.md +5 -1
  463. package/template/.template-spec/agents/digital-human-roles.yaml +49 -1
  464. package/template/.template-spec/engineering/backend-platforms.json +1 -1
  465. package/template/.template-spec/plan/templates/competitive-analysis-template.md +38 -36
  466. package/template/.template-spec/plan/templates/competitive-matrix-template.md +37 -17
  467. package/template/.template-spec/process/document-writing.md +22 -3
  468. package/template/.template-spec/process/harness-process-tailoring.md +5 -1
  469. package/template/.template-spec/process/implementation-repo-integration.md +26 -8
  470. package/template/.template-spec/process/research-completion.md +2 -0
  471. package/template/.template-spec/process/runtime-storage.md +78 -0
  472. package/template/.template-spec/process/schemas/approval-context.schema.json +67 -0
  473. package/template/.template-spec/process/schemas/approval-record.schema.json +179 -16
  474. package/template/.template-spec/process/schemas/backend-delivery.schema.json +16 -0
  475. package/template/.template-spec/process/schemas/delivery-preflight-input.schema.json +4 -0
  476. package/template/.template-spec/process/schemas/digital-human-task-package.schema.json +236 -1
  477. package/template/.template-spec/process/schemas/implementation-repository-preparation-result.schema.json +335 -52
  478. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +11 -0
  479. package/template/.template-spec/process/schemas/project-scaffold-contract.schema.json +3 -0
  480. package/template/.template-spec/process/schemas/review-bundle.schema.json +347 -35
  481. package/template/.template-spec/process/schemas/strategic-design-handoff-v3.schema.json +504 -0
  482. package/template/.template-spec/process/schemas/strategic-design-handoff-v4.schema.json +544 -8
  483. package/template/.template-spec/process/schemas/strategic-design-handoff-v5.schema.json +616 -0
  484. package/template/.template-spec/process/schemas/strategic-design-handoff.schema.json +616 -0
  485. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy-v3.schema.json +712 -109
  486. package/template/.template-spec/process/schemas/strategic-handoff-domain-strategy.schema.json +595 -90
  487. package/template/.template-spec/process/schemas/strategic-handoff-export-v2.schema.json +448 -0
  488. package/template/.template-spec/process/schemas/strategic-handoff-export.schema.json +392 -0
  489. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package-v3.schema.json +556 -83
  490. package/template/.template-spec/process/schemas/strategic-handoff-stage-decision-package.schema.json +418 -57
  491. package/template/.template-spec/process/subagent-collaboration.md +7 -1
  492. package/template/.template-spec/templates/approval-record-template.json +7 -3
  493. package/template/.template-spec/templates/approval-record-template.yaml +8 -2
  494. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +92 -2
  495. package/template/.template-spec/templates/retro-report-template.md +10 -3
  496. package/template/.template-spec/templates/review-bundle-template.yaml +19 -10
  497. package/template/AGENTS.md +4 -3
  498. package/template/CONTEXT.md +2 -2
  499. package/template/README.md +2 -2
  500. package/template/scripts/advance-maintenance-iteration +51 -0
  501. package/template/scripts/lib/approval-checkpoint-discovery.mjs +26 -0
  502. package/template/scripts/lib/approval-consumption.mjs +35 -0
  503. package/template/scripts/lib/approval-current.mjs +111 -0
  504. package/template/scripts/lib/approval-record-io.mjs +56 -0
  505. package/template/scripts/lib/approval-record.mjs +79 -184
  506. package/template/scripts/lib/approved-execution-context.mjs +8 -6
  507. package/template/scripts/lib/asset-transactions.mjs +5 -1
  508. package/template/scripts/lib/backend-delivery.mjs +1 -1
  509. package/template/scripts/lib/backend-review.mjs +2 -1
  510. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +3 -2
  511. package/template/scripts/lib/business-ticket-lifecycle.mjs +2 -1
  512. package/template/scripts/lib/checkpoint-commit.mjs +50 -0
  513. package/template/scripts/lib/command-runner.mjs +44 -9
  514. package/template/scripts/lib/content-identity.mjs +273 -0
  515. package/template/scripts/lib/delivery-preflight.mjs +2 -1
  516. package/template/scripts/lib/digital-human-roles.mjs +12 -5
  517. package/template/scripts/lib/drift-report.mjs +110 -0
  518. package/template/scripts/lib/existing-backend-architecture.mjs +4 -1
  519. package/template/scripts/lib/lifecycle-context-query.mjs +172 -11
  520. package/template/scripts/lib/lifecycle-controls.mjs +9 -19
  521. package/template/scripts/lib/lifecycle-presentation.mjs +5 -0
  522. package/template/scripts/lib/lifecycle-status.mjs +63 -12
  523. package/template/scripts/lib/lifecycle-transition.mjs +2 -1
  524. package/template/scripts/lib/maintenance-candidate.mjs +24 -30
  525. package/template/scripts/lib/maintenance-research.mjs +52 -8
  526. package/template/scripts/lib/maintenance-storage.mjs +81 -0
  527. package/template/scripts/lib/plan-spec-entry.mjs +2 -1
  528. package/template/scripts/lib/project-governance.mjs +2 -1
  529. package/template/scripts/lib/read-only-intake.mjs +44 -9
  530. package/template/scripts/lib/review-capabilities.mjs +234 -0
  531. package/template/scripts/lib/review-package.mjs +100 -0
  532. package/template/scripts/lib/runtime-store.mjs +650 -0
  533. package/template/scripts/lib/skill-registry.mjs +4 -4
  534. package/template/scripts/lib/strategic-handoff.mjs +22 -9
  535. package/template/scripts/lib/task-package.mjs +47 -16
  536. package/template/scripts/lifecycle-status +26 -1
  537. package/template/scripts/maintenance-path +11 -0
  538. package/template/scripts/prepare-review-package +8 -0
  539. package/template/scripts/project-ci +13 -3
  540. package/template/scripts/query-lifecycle-context +8 -1
  541. package/template/scripts/run-read-only-intake +2 -2
  542. package/template/scripts/runtime-store +40 -0
  543. package/template/scripts/verify-approval-record +21 -13
  544. package/template/scripts/verify-lifecycle-checkpoint +7 -3
  545. package/template/scripts/verify-project-instance +21 -1
  546. package/template/skills-lock.json +62 -61
  547. package/template.snapshot.json +4 -4
  548. package/vendor/cli-core/cli.mjs +2 -0
  549. package/vendor/cli-core/command-runner.mjs +44 -9
  550. package/vendor/cli-core/package.json +1 -1
  551. package/vendor/cli-core/runtime-store.mjs +650 -0
  552. package/vendor/cli-core/scaffold.mjs +4 -2
@@ -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
 
@@ -0,0 +1,143 @@
1
+ ## 标准代码骨架
2
+
3
+ ```vue
4
+ <script setup lang="ts">
5
+ import { YButton, YFormily, type ISchema } from '@yss-ui/components';
6
+ import { Steps as ASteps } from 'ant-design-vue';
7
+ import { computed, reactive, ref } from 'vue';
8
+
9
+ /** YFormily 对外提交能力。 */
10
+ interface YssFormilyExpose {
11
+ submit: () => Promise<Record<string, any>>;
12
+ }
13
+
14
+ /** 分步表单数据。 */
15
+ interface StepFormData {
16
+ step1: { name: string };
17
+ step2: { level: string };
18
+ }
19
+
20
+ /** 分步表单提交回调 Props。 */
21
+ interface StepFlowProps {
22
+ onSubmit: (values: StepFormData) => Promise<void>;
23
+ }
24
+
25
+ /** 分步表单提交回调。 */
26
+ const props = defineProps<StepFlowProps>();
27
+ /** 当前步骤,从 0 开始。 */
28
+ const currentStep = ref(0);
29
+ /** 最终提交状态。 */
30
+ const submitting = ref(false);
31
+ /** 第一步表单实例。 */
32
+ const step1Ref = ref<YssFormilyExpose>();
33
+ /** 第二步表单实例。 */
34
+ const step2Ref = ref<YssFormilyExpose>();
35
+ /** 步骤导航配置。 */
36
+ const stepItems = [{ title: '基础信息' }, { title: '策略配置' }, { title: '确认提交' }];
37
+ /** 跨步唯一数据源。 */
38
+ const formData = reactive<StepFormData>({
39
+ step1: { name: '' },
40
+ step2: { level: 'normal' },
41
+ });
42
+
43
+ /** 创建符合业务三层布局约定的步骤 Schema。 */
44
+ const createStepSchema = (properties: Record<string, ISchema>): ISchema => ({
45
+ type: 'object',
46
+ properties: {
47
+ layout: {
48
+ type: 'void',
49
+ 'x-component': 'FormLayout',
50
+ 'x-component-props': { layout: 'horizontal', labelWidth: 120, labelAlign: 'right' },
51
+ properties: {
52
+ grid: {
53
+ type: 'void',
54
+ 'x-component': 'FormGrid',
55
+ 'x-component-props': { maxColumns: 2, minColumns: 1, minWidth: 320 },
56
+ properties,
57
+ },
58
+ },
59
+ },
60
+ },
61
+ });
62
+
63
+ /** 第一步 Schema。 */
64
+ const step1Schema = createStepSchema({
65
+ name: {
66
+ type: 'string',
67
+ title: '任务名称',
68
+ required: true,
69
+ 'x-validator': [{ required: true, whitespace: true, message: '请输入任务名称' }],
70
+ 'x-decorator': 'FormItem',
71
+ 'x-component': 'Input',
72
+ },
73
+ });
74
+ /** 第二步 Schema。 */
75
+ const step2Schema = createStepSchema({
76
+ level: {
77
+ type: 'string',
78
+ title: '策略等级',
79
+ required: true,
80
+ enum: [
81
+ { label: '普通', value: 'normal' },
82
+ { label: '严格', value: 'strict' },
83
+ ],
84
+ 'x-decorator': 'FormItem',
85
+ 'x-component': 'Select',
86
+ },
87
+ });
88
+ /** 确认步骤 Schema。 */
89
+ const confirmSchema = createStepSchema({
90
+ name: { type: 'string', title: '任务名称', 'x-decorator': 'FormItem', 'x-component': 'Input' },
91
+ level: { type: 'string', title: '策略等级', 'x-decorator': 'FormItem', 'x-component': 'Input' },
92
+ });
93
+ /** 确认步骤展示数据。 */
94
+ const confirmValues = computed(() => ({ name: formData.step1.name, level: formData.step2.level }));
95
+
96
+ /** 校验当前步骤,成功后前进。 */
97
+ const next = async () => {
98
+ const currentRef = currentStep.value === 0 ? step1Ref.value : step2Ref.value;
99
+ if (!currentRef) return;
100
+ try {
101
+ await currentRef.submit();
102
+ currentStep.value += 1;
103
+ } catch {
104
+ return;
105
+ }
106
+ };
107
+
108
+ /** 返回上一步。 */
109
+ const back = () => {
110
+ currentStep.value = Math.max(0, currentStep.value - 1);
111
+ };
112
+
113
+ /** 提交全部步骤数据。 */
114
+ const submitAll = async () => {
115
+ submitting.value = true;
116
+ try {
117
+ await props.onSubmit({ step1: { ...formData.step1 }, step2: { ...formData.step2 } });
118
+ } finally {
119
+ submitting.value = false;
120
+ }
121
+ };
122
+ </script>
123
+
124
+ <template>
125
+ <ASteps :current="currentStep" :items="stepItems" />
126
+
127
+ <YFormily v-if="currentStep === 0" ref="step1Ref" v-model="formData.step1" :schema="step1Schema" />
128
+ <YFormily v-else-if="currentStep === 1" ref="step2Ref" v-model="formData.step2" :schema="step2Schema" />
129
+ <YFormily
130
+ v-else
131
+ :schema="confirmSchema"
132
+ :initial-values="confirmValues"
133
+ :mode="2"
134
+ :detail-options="{ bordered: true, maxColumns: 2, minColumns: 1, minWidth: 320 }"
135
+ />
136
+
137
+ <YButton :disabled="currentStep === 0" @click="back">上一步</YButton>
138
+ <YButton v-if="currentStep < 2" type="primary" @click="next">下一步</YButton>
139
+ <YButton v-else type="primary" :loading="submitting" @click="submitAll">提交</YButton>
140
+ </template>
141
+ ```
142
+
143
+ 当 schema、步骤状态和页面编排难以独立理解或验证时,分别拆到 `constant.ts`、`hooks/useStepFlow.ts`;以职责清晰和状态可测试为准,不按固定行数拆分。
@@ -5,7 +5,9 @@ argument-hint: "What will the next session be used for?"
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
8
- Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
8
+ Write a handoff document so a fresh agent can continue the current objective. Save to the temporary directory of the user's OS, then return its actual absolute path.
9
+
10
+ Record the current objective, completed work, remaining work and blockers, existing authorization scope, and the next executable action. Distinguish verified results from planned or unexecuted checks. Preserve the references and versions needed to resume; a handoff does not grant approval, implementation, commit, push or release authority.
9
11
 
10
12
  Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
11
13
 
@@ -10,13 +10,13 @@ license: MIT
10
10
 
11
11
  ## 触发与作用域
12
12
 
13
- 调用者在当前工作包含研究结论、Plan、Spec、设计说明、契约解释正文、Ticket、审查、交接、发布或复盘时,设置条件 `lifecycle-document-output` 并加载本技能。进度与会签表达也属于文档输出;纯代码修改、命令执行和后续无关会话不激活此条件。
13
+ 调用者在当前工作包含研究结论、Plan、Spec、设计说明、契约解释正文、Ticket、审查、PR / MR 描述、交接、发布或复盘时,设置条件 `lifecycle-document-output` 并加载本技能。进度与会签表达也属于文档输出;纯代码修改、命令执行和后续无关会话不激活此条件。
14
14
 
15
15
  每次调用只覆盖输入指定的文档或报告。工作结束即结束本次作用域;用户后续要求正常表达或不使用本技能时遵从当前要求,不继承先前启用状态。不假设读者具有任何诊断。
16
16
 
17
17
  ## 执行
18
18
 
19
- 1. 接收产物类型、读者、允许改动范围和可读权威输入;先读共用规范,再读取对应阶段指引。字段、版本或规则来源不明确时保留缺口并回交原所有者,不补造业务决定。
19
+ 1. 接收产物类型、读者、允许改动范围和可读权威输入;先读共用规范,再读取对应阶段或 PR / MR 描述指引。字段、版本或规则来源不明确时保留缺口并回交原所有者,不补造业务决定。
20
20
  2. 先写当前问题、结论或交付行为,再提供依据和必要细节;按顺序动作、规则比较和因果说明选择编号、表格或段落。删除无信息的修饰和重复,不设置字数或规则数量上限。
21
21
  3. 对照输入核查主体、条件、例外、量词、范围、数值、证据、未决项、责任、时点和依赖。保持原 API 标识、schema、冻结行为、状态及批准证据;发现冲突时交回所有者,不以润色名义修复事实。
22
22
  4. 返回调整后的正文及必要的缺口说明,由原工作单元执行现有验证。明确区分已验证结果、估算和未知原因;未执行测试不写通过,多项实质阻塞全部保留。已授权工作由原执行者继续,不把可完成的操作转交用户。
@@ -1,8 +1,8 @@
1
1
  # i-have-adhd 的 YSS 适配
2
2
 
3
- 上游:`ayghri/i-have-adhd`;固定 revision:`7b9069b39972e269e61bd95c2f66ebb90cac6a02`;许可证见技能目录 `LICENSE`。
3
+ 上游:`ayghri/i-have-adhd`;固定 revision:`839872f9d1cd634fed642b4589ce7226199cc15f`;许可证见技能目录 `LICENSE`。
4
4
 
5
- 原始文件来自 [固定版本目录](https://github.com/ayghri/i-have-adhd/tree/7b9069b39972e269e61bd95c2f66ebb90cac6a02/skills/i-have-adhd)。未经改写的来源基线保存在模板维护证据中;`upstream-files.json` 记录逐文件 SHA-256,`skills-lock.json` 记录上游目录哈希和当前技能目录哈希。基线不进入实例默认加载面。
5
+ 原始文件来自 [固定版本目录](https://github.com/ayghri/i-have-adhd/tree/839872f9d1cd634fed642b4589ce7226199cc15f/skills/i-have-adhd)。2026-10-03 核验该提交与先前 `7b9069b39972e269e61bd95c2f66ebb90cac6a02` 的技能目录树和三个文件原字节一致;本轮更新来源记录并修复 YSS 消费指引。未经改写的来源基线保存在模板维护证据中;`upstream-files.json` 记录逐文件 SHA-256,`skills-lock.json` 记录上游目录哈希和当前技能目录哈希。基线不进入实例默认加载面。
6
6
 
7
7
  | 上游行为 | YSS 适配 |
8
8
  |---|---|
@@ -15,11 +15,13 @@ assert.ok(registry.invocation_contract.overrides['i-have-adhd'].exclusion_condit
15
15
  assert.ok(registry.invocation_contract.overrides['i-have-adhd'].exclusion_conditions.includes('user-disabled'));
16
16
  const entry=read('.agents/skills/i-have-adhd/SKILL.md');
17
17
  assert.ok(!entry.includes('disable-model-invocation: true'));
18
+ assert.ok(entry.includes('PR / MR 描述'),'PR / MR description remains current document work');
18
19
  assert.equal(parse(read('.agents/skills/i-have-adhd/agents/openai.yaml')).policy.allow_implicit_invocation,true);
19
20
  const lock=JSON.parse(read('skills-lock.json'));
20
21
  const locked=lock.skills.shared['i-have-adhd'];
21
22
  assert.equal(locked.source,'ayghri/i-have-adhd');
22
- assert.equal(locked.sourceRevision,'7b9069b39972e269e61bd95c2f66ebb90cac6a02');
23
+ assert.equal(locked.sourceRevision,'839872f9d1cd634fed642b4589ce7226199cc15f');
24
+ assert.ok(read('.agents/skills/i-have-adhd/references/yss-adaptation.md').includes(locked.sourceRevision),'adaptation provenance follows the locked source revision');
23
25
  assert.notEqual(locked.upstreamHash,locked.effectiveHash);
24
26
  const {treeHash}=await import(pathToFileURL(path.join(root,'scripts/lib/skill-supply-chain.mjs')));
25
27
  assert.equal(treeHash(path.join(root,'.agents/skills/i-have-adhd')),locked.effectiveHash);
@@ -58,6 +60,9 @@ if(fs.existsSync(compiler)) {
58
60
  assert.ok(on.required_skills.includes('i-have-adhd'));
59
61
  assert.ok(!next.required_skills.includes('i-have-adhd'));
60
62
  assert.equal(on.status,'draft');
61
- console.log('PASS: actual resolver excludes code-only, includes document output, does not persist condition or approve the contract.');
63
+ // PR / MR drafting uses the same caller-provided document condition exercised by on/next.
64
+ assert.deepEqual(next.required_skills,off.required_skills);
65
+ assert.equal(next.status,'draft');
66
+ console.log('PASS: actual resolver excludes code-only, includes the caller-provided document condition also used for PR / MR drafts, does not persist that condition or approve the contract. Model classification of PR / MR work is not measured.');
62
67
  } else console.log('N/A: this strategic-only template has no implementation compiler; conditional route verified in registry and orchestration contract.');
63
68
  console.log(`PASS: source, license metadata, ${locked.targets.length} projections, ${callers.length} callers, scope and readable writing inputs. Model output quality not measured.`);
@@ -10,6 +10,6 @@ Use /tdd where possible, at pre-agreed seams.
10
10
 
11
11
  Run typechecking regularly, single test files regularly, and the full test suite once at the end.
12
12
 
13
- Once done, use /code-review to review the work.
13
+ Once implementation and applicable verification are ready, return the candidate and evidence to the lifecycle owner, who dispatches an independent reviewer using /code-review. The implementer fixes reported findings and supplies fresh evidence for the affected conclusions; it does not review its own work or declare acceptance.
14
14
 
15
- Do not commit or push. Implementation authorization does not include git commit/push. Natural language such as "do it and commit" is not structured Git authorization. Stop after review unless a structured Git authorization is already present.
15
+ Git commit and push require separate explicit authorization under the existing user-decision protocol selected by root `AGENTS.md` and the lifecycle owner. The Agent may normalize a real, readable user reply that identifies the Git action and repository/change scope into the required authorization, scope and source-reference fields; do not ask the user to fill internal fields again. Implementation authorization or a generic request to continue does not authorize Git actions, and commit authorization does not authorize push. If the source is unreadable, authorization was revoked or the action exceeds its scope, do not execute that Git action; return the checkpoint judgment for the lifecycle owner.
@@ -30,7 +30,7 @@ node <skill-root>/scripts/transaction.mjs apply --wiki <root> --repo <repo> --pl
30
30
 
31
31
  plan 不写 wiki;返回 sources/articles/protected/conflicts、完整 writes `{path,before,after,content,original}`、inputs 摘要和计划 digest。检查准确范围后应用。source 删除只留 tombstone 与快照,不能删 source 或 article 记录。未被编译的文章保持旧 watermark;更新 raw 不会清除它们的 stale。human-owned 自动正文修改拒绝;已显式授权链接修复时传 `linkRepairs: [articleId]`,脚本严格比较 wikilink 外所有字节,不能夹带正文变更。
32
32
 
33
- apply 先核验全部输入摘要,变化即 PLAN_STALE,必须重新计划。只写计划内文件;内部 `.wiki-staging/<id>/` 保存候选与完成收据,`.wiki-transaction.json` 是恢复记录,`.wiki-lock` 是事务锁,`.wiki-runner-lock` 防止并发恢复。内部文件位于同一 wiki-root,纳入写操作授权;不分发或公开其中的来源原文/备份。共享 index/log/manifest 由主控生成。manifest、日志最后发布;未完成期间查询拒绝读取混合版本。
33
+ apply 先核验全部输入摘要,变化即 PLAN_STALE,必须重新计划。只写计划内文件;内部 `.wiki-staging/<id>/` 保存候选与完成收据,`.wiki-transaction.json` 是恢复记录,`.wiki-lock` 是事务锁,`.wiki-runner-lock` 防止并发恢复。`template-source` 的 journal、staging、锁和备份由项目 `scripts/lib/maintenance-storage.mjs` 解析到仓外 `maintenance:wiki/<wiki-id>/`;其它 wiki 沿用同一 wiki-root。这些内部文件纳入写操作授权;不分发或公开其中的来源原文/备份。共享 index/log/manifest 由主控生成。manifest、日志最后发布;未完成期间查询拒绝读取混合版本。
34
34
 
35
35
  ## 恢复和取消
36
36
 
@@ -41,7 +41,7 @@ node <skill-root>/scripts/transaction.mjs abort --wiki <root> --repo <repo>
41
41
 
42
42
  resume 只补未完成步骤、验证 staging、检查来源是否仍为原计划版本。abort 先检查全部目标,再仅恢复该事务改动;目标被人工修改时停止,绝不覆盖。真实进程崩溃若留下 runner lock,禁止自动抢占:先核实原进程已停止,展示锁和 journal,由用户明确选择清除该残留执行锁后再 resume/abort。事务锁本身由恢复流程管理,不手删以绕过冲突。
43
43
 
44
- 相同计划重放复用完成收据,不重复追加日志。aborted 计划是终态,重新执行用新计划 ID。保留内部 journal/staging/收据用于追溯;本轮不自动清理。最终做结构 lint + status + advise,明确剩余 freshness,结构维护完成不等于所有知识 current。
44
+ 相同计划重放复用完成收据,不重复追加日志。aborted 计划是终态,重新执行用新计划 ID。保留内部 journal/staging/收据用于追溯。模板源仓内 `log.md` 只保存最新运行入口,不追加历史;详细计划、旧日志与原字节保存在仓外事务包中。最终做结构 lint + status + advise,明确剩余 freshness,结构维护完成不等于所有知识 current。
45
45
 
46
46
  ## 人工反馈
47
47
 
@@ -1,6 +1,7 @@
1
1
  import { createHash, randomUUID } from "node:crypto";
2
2
  import { readFile, writeFile, rename, lstat, realpath, mkdir, access } from "node:fs/promises";
3
3
  import path from "node:path";
4
+ import { pathToFileURL } from 'node:url';
4
5
  const STATES = ["current", "stale", "missing", "unverified", "archived"];
5
6
  const INFRA = /* @__PURE__ */ new Set(["index.md", "log.md", "claude.md", "agents.md", "soul.md", "concept-table.md"]);
6
7
  const sha256 = (value) => createHash("sha256").update(value).digest("hex");
@@ -69,6 +70,41 @@ async function safePath(root, ref, { write = false } = {}) {
69
70
  }
70
71
  return target;
71
72
  }
73
+ async function wikiHistoryRoot(wikiRoot) {
74
+ let cursor = path.resolve(wikiRoot);
75
+ while (true) {
76
+ const identity = path.join(cursor, 'yss-project.yaml');
77
+ if (await exists(identity)) {
78
+ const source = await readFile(identity, 'utf8');
79
+ if (!/^repository_mode:\s*template-source\s*$/m.test(source)) return null;
80
+ const helper = path.join(cursor, 'scripts/lib/maintenance-storage.mjs');
81
+ if (!await exists(helper)) fail('MAINTENANCE_STORAGE_MISSING', 'template-source requires its registered maintenance storage helper');
82
+ const { resolveMaintenanceOutput } = await import(pathToFileURL(helper).href);
83
+ return resolveMaintenanceOutput(`maintenance:wiki/${sha256(path.resolve(wikiRoot))}`, { root: cursor });
84
+ }
85
+ const parent = path.dirname(cursor);
86
+ if (parent === cursor) return null;
87
+ cursor = parent;
88
+ }
89
+ }
90
+ async function wikiInternalPath(wikiRoot, ref, options = {}) {
91
+ if (typeof ref === 'string' && /^\.wiki-(?:staging\/|backups\/|transaction\.json$|lock$|runner-lock$)/.test(ref)) {
92
+ // Validate the same relative path contract before resolving an external file.
93
+ if (ref.includes('\\') || ref.split('/').some(part => ['..', '.', ''].includes(part))) fail('PATH_INVALID', ref);
94
+ const historyRoot = await wikiHistoryRoot(wikiRoot);
95
+ if (historyRoot) {
96
+ const target = path.join(historyRoot, ref);
97
+ let cursor = target;
98
+ while (inside(historyRoot, cursor)) {
99
+ if (await exists(cursor) && (await lstat(cursor)).isSymbolicLink()) fail('SYMLINK_WRITE', ref);
100
+ if (cursor === historyRoot) break;
101
+ cursor = path.dirname(cursor);
102
+ }
103
+ return target;
104
+ }
105
+ }
106
+ return safePath(wikiRoot, ref, options);
107
+ }
72
108
  async function atomicWrite(file, content) {
73
109
  await mkdir(path.dirname(file), { recursive: true });
74
110
  const temp = `${file}.${randomUUID()}.tmp`;
@@ -204,8 +240,8 @@ async function loadManifest(wikiRoot, { repoRoot = process.cwd(), validate = tru
204
240
  async function transactionState(wikiRoot, { reader } = {}) {
205
241
  // A writer claims the lock before replacing an earlier finalized journal.
206
242
  // That interval must also block readers.
207
- if (await exists(await safePath(wikiRoot, ".wiki-lock"))) return { state: "locked", incomplete: true };
208
- const file = await safePath(wikiRoot, ".wiki-transaction.json");
243
+ if (await exists(await wikiInternalPath(wikiRoot, ".wiki-lock"))) return { state: "locked", incomplete: true };
244
+ const file = await wikiInternalPath(wikiRoot, ".wiki-transaction.json");
209
245
  if (!await exists(file)) return { state: "none" };
210
246
  const j = JSON.parse(reader ? (await reader(file)).toString() : await readFile(file, "utf8"));
211
247
  return { id: j.id, state: j.phase, incomplete: !["finalized", "aborted"].includes(j.phase) };
@@ -252,6 +288,8 @@ export {
252
288
  frontmatter,
253
289
  json,
254
290
  loadManifest,
291
+ wikiHistoryRoot,
292
+ wikiInternalPath,
255
293
  ownership,
256
294
  safePath,
257
295
  sha256,