create-yss-spec 3.0.1 → 3.1.0

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 (1273) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/template/.agents/rules/yss-ai-skills.md +3 -55
  4. package/template/.agents/skills/.strategic-design-skills-manifest.json +11 -6
  5. package/template/.agents/skills/.yss-skills-manifest.json +1 -3
  6. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +1 -0
  7. package/template/.agents/skills/code-review/references/yss-review-standards.md +1 -1
  8. package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  9. package/template/.agents/skills/domain-modeling/SKILL.md +10 -26
  10. package/template/.agents/skills/grill-with-docs/SKILL.md +6 -5
  11. package/template/.agents/skills/lombok/SKILL.md +2 -1
  12. package/template/.agents/skills/mapstruct/SKILL.md +3 -2
  13. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  14. package/template/.agents/skills/setup-matt-pocock-skills/domain.md +6 -20
  15. package/template/.agents/skills/wait-what/SKILL.md +1 -1
  16. package/template/.agents/skills/yss-antdv-next-design/SKILL.md +48 -0
  17. package/template/.agents/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  18. package/template/.agents/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  19. package/template/.agents/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  20. package/template/.agents/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  21. package/template/.agents/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  22. package/template/.agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  23. package/template/.agents/skills/yss-application/SKILL.md +6 -0
  24. package/template/.agents/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  25. package/template/.agents/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  26. package/template/.agents/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  27. package/template/.agents/skills/yss-components/SKILL.md +1 -1
  28. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  29. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  30. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  31. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  32. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  33. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  34. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  35. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  36. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  37. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  38. package/template/.agents/skills/yss-design-system/SKILL.md +25 -22
  39. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +22 -24
  40. package/template/.agents/skills/yss-design-system/references/design-system.md +39 -56
  41. package/template/.agents/skills/yss-domain/SKILL.md +1 -1
  42. package/template/.agents/skills/yss-dto/SKILL.md +1 -0
  43. package/template/.agents/skills/yss-exception/SKILL.md +1 -0
  44. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  45. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  46. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  47. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  48. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  49. package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  50. package/template/.agents/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  51. package/template/.agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  52. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  53. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  54. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  55. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  56. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  57. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  58. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  59. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  60. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  61. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  62. package/template/.agents/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  63. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  64. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  65. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  66. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  67. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  68. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  69. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  70. package/template/.agents/skills/yss-mybatis/SKILL.md +2 -2
  71. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +31 -7
  72. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  73. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  74. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  75. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  76. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +7 -2
  77. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  78. package/template/.agents/skills/yss-prototype-stage/SKILL.md +9 -8
  79. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  80. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  81. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  82. package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  83. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  84. package/template/.agents/skills/yss-repository/SKILL.md +6 -0
  85. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  86. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  87. package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  88. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  89. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  90. package/template/.agents/skills/yss-stage-decision/SKILL.md +16 -12
  91. package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  92. package/template/.agents/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  93. package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  94. package/template/.agents/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  95. package/template/.agents/skills/yss-stage-decision/references/validation-rules.md +1 -1
  96. package/template/.agents/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  97. package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  98. package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  99. package/template/.agents/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  100. package/template/.agents/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  101. package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  102. package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  103. package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  104. package/template/.agents/skills/yss-tactical-design/SKILL.md +8 -2
  105. package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -0
  106. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  107. package/template/.agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  108. package/template/.agents/skills/yss-ui/SKILL.md +1 -2
  109. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  110. package/template/.agents/skills/yss-validation/SKILL.md +1 -0
  111. package/template/.agents/skills/yss-web-controller/SKILL.md +6 -0
  112. package/template/.agents/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  113. package/template/.agents/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  114. package/template/.agents/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  115. package/template/.agents/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  116. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  117. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  118. package/template/.claude/skills/alibaba-java-code-style/SKILL.md +1 -0
  119. package/template/.claude/skills/code-review/references/yss-review-standards.md +1 -1
  120. package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  121. package/template/.claude/skills/domain-modeling/SKILL.md +10 -26
  122. package/template/.claude/skills/grill-with-docs/SKILL.md +6 -5
  123. package/template/.claude/skills/lombok/SKILL.md +2 -1
  124. package/template/.claude/skills/mapstruct/SKILL.md +3 -2
  125. package/template/.claude/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  126. package/template/.claude/skills/setup-matt-pocock-skills/domain.md +6 -20
  127. package/template/.claude/skills/wait-what/SKILL.md +1 -1
  128. package/template/.claude/skills/yss-antdv-next-design/SKILL.md +48 -0
  129. package/template/.claude/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  130. package/template/.claude/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  131. package/template/.claude/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  132. package/template/.claude/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  133. package/template/.claude/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  134. package/template/.claude/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  135. package/template/.claude/skills/yss-application/SKILL.md +6 -0
  136. package/template/.claude/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  137. package/template/.claude/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  138. package/template/.claude/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  139. package/template/.claude/skills/yss-components/SKILL.md +1 -1
  140. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  141. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  142. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  143. package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  144. package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  145. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  146. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  147. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  148. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  149. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  150. package/template/.claude/skills/yss-design-system/SKILL.md +25 -22
  151. package/template/.claude/skills/yss-design-system/references/design-qa-theme.md +22 -24
  152. package/template/.claude/skills/yss-design-system/references/design-system.md +39 -56
  153. package/template/.claude/skills/yss-domain/SKILL.md +1 -1
  154. package/template/.claude/skills/yss-dto/SKILL.md +1 -0
  155. package/template/.claude/skills/yss-exception/SKILL.md +1 -0
  156. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  157. package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  158. package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  159. package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  160. package/template/.claude/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  161. package/template/.claude/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  162. package/template/.claude/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  163. package/template/.claude/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  164. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  165. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  166. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  167. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  168. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  169. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  170. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  171. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  172. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  173. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  174. package/template/.claude/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  175. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  176. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  177. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  178. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  179. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  180. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  181. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  182. package/template/.claude/skills/yss-mybatis/SKILL.md +2 -2
  183. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +31 -7
  184. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  185. package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  186. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  187. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  188. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +7 -2
  189. package/template/.claude/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  190. package/template/.claude/skills/yss-prototype-stage/SKILL.md +9 -8
  191. package/template/.claude/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  192. package/template/.claude/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  193. package/template/.claude/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  194. package/template/.claude/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  195. package/template/.claude/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  196. package/template/.claude/skills/yss-repository/SKILL.md +6 -0
  197. package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  198. package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  199. package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  200. package/template/.claude/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  201. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  202. package/template/.claude/skills/yss-stage-decision/SKILL.md +16 -12
  203. package/template/.claude/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  204. package/template/.claude/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  205. package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  206. package/template/.claude/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  207. package/template/.claude/skills/yss-stage-decision/references/validation-rules.md +1 -1
  208. package/template/.claude/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  209. package/template/.claude/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  210. package/template/.claude/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  211. package/template/.claude/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  212. package/template/.claude/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  213. package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  214. package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  215. package/template/.claude/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  216. package/template/.claude/skills/yss-tactical-design/SKILL.md +8 -2
  217. package/template/.claude/skills/yss-tactical-design/references/output-template.md +3 -0
  218. package/template/.claude/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  219. package/template/.claude/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  220. package/template/.claude/skills/yss-ui/SKILL.md +1 -2
  221. package/template/.claude/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  222. package/template/.claude/skills/yss-validation/SKILL.md +1 -0
  223. package/template/.claude/skills/yss-web-controller/SKILL.md +6 -0
  224. package/template/.claude/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  225. package/template/.claude/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  226. package/template/.claude/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  227. package/template/.claude/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  228. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  229. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  230. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +1 -0
  231. package/template/.codex/skills/code-review/references/yss-review-standards.md +1 -1
  232. package/template/.codex/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  233. package/template/.codex/skills/domain-modeling/SKILL.md +10 -26
  234. package/template/.codex/skills/grill-with-docs/SKILL.md +6 -5
  235. package/template/.codex/skills/lombok/SKILL.md +2 -1
  236. package/template/.codex/skills/mapstruct/SKILL.md +3 -2
  237. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  238. package/template/.codex/skills/setup-matt-pocock-skills/domain.md +6 -20
  239. package/template/.codex/skills/wait-what/SKILL.md +1 -1
  240. package/template/.codex/skills/yss-antdv-next-design/SKILL.md +48 -0
  241. package/template/.codex/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  242. package/template/.codex/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  243. package/template/.codex/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  244. package/template/.codex/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  245. package/template/.codex/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  246. package/template/.codex/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  247. package/template/.codex/skills/yss-application/SKILL.md +6 -0
  248. package/template/.codex/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  249. package/template/.codex/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  250. package/template/.codex/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  251. package/template/.codex/skills/yss-components/SKILL.md +1 -1
  252. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  253. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  254. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  255. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  256. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  257. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  258. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  259. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  260. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  261. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  262. package/template/.codex/skills/yss-design-system/SKILL.md +25 -22
  263. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +22 -24
  264. package/template/.codex/skills/yss-design-system/references/design-system.md +39 -56
  265. package/template/.codex/skills/yss-domain/SKILL.md +1 -1
  266. package/template/.codex/skills/yss-dto/SKILL.md +1 -0
  267. package/template/.codex/skills/yss-exception/SKILL.md +1 -0
  268. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  269. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  270. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  271. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  272. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  273. package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  274. package/template/.codex/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  275. package/template/.codex/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  276. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  277. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  278. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  279. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  280. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  281. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  282. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  283. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  284. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  285. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  286. package/template/.codex/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  287. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  288. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  289. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  290. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  291. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  292. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  293. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  294. package/template/.codex/skills/yss-mybatis/SKILL.md +2 -2
  295. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +31 -7
  296. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  297. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  298. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  299. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  300. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +7 -2
  301. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  302. package/template/.codex/skills/yss-prototype-stage/SKILL.md +9 -8
  303. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  304. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  305. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  306. package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  307. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  308. package/template/.codex/skills/yss-repository/SKILL.md +6 -0
  309. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  310. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  311. package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  312. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  313. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  314. package/template/.codex/skills/yss-stage-decision/SKILL.md +16 -12
  315. package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  316. package/template/.codex/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  317. package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  318. package/template/.codex/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  319. package/template/.codex/skills/yss-stage-decision/references/validation-rules.md +1 -1
  320. package/template/.codex/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  321. package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  322. package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  323. package/template/.codex/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  324. package/template/.codex/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  325. package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  326. package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  327. package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  328. package/template/.codex/skills/yss-tactical-design/SKILL.md +8 -2
  329. package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -0
  330. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  331. package/template/.codex/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  332. package/template/.codex/skills/yss-ui/SKILL.md +1 -2
  333. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  334. package/template/.codex/skills/yss-validation/SKILL.md +1 -0
  335. package/template/.codex/skills/yss-web-controller/SKILL.md +6 -0
  336. package/template/.codex/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  337. package/template/.codex/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  338. package/template/.codex/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  339. package/template/.codex/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  340. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  341. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  342. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +1 -0
  343. package/template/.cursor/skills/code-review/references/yss-review-standards.md +1 -1
  344. package/template/.cursor/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  345. package/template/.cursor/skills/domain-modeling/SKILL.md +10 -26
  346. package/template/.cursor/skills/grill-with-docs/SKILL.md +6 -5
  347. package/template/.cursor/skills/lombok/SKILL.md +2 -1
  348. package/template/.cursor/skills/mapstruct/SKILL.md +3 -2
  349. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  350. package/template/.cursor/skills/setup-matt-pocock-skills/domain.md +6 -20
  351. package/template/.cursor/skills/wait-what/SKILL.md +1 -1
  352. package/template/.cursor/skills/yss-antdv-next-design/SKILL.md +48 -0
  353. package/template/.cursor/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  354. package/template/.cursor/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  355. package/template/.cursor/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  356. package/template/.cursor/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  357. package/template/.cursor/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  358. package/template/.cursor/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  359. package/template/.cursor/skills/yss-application/SKILL.md +6 -0
  360. package/template/.cursor/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  361. package/template/.cursor/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  362. package/template/.cursor/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  363. package/template/.cursor/skills/yss-components/SKILL.md +1 -1
  364. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  365. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  366. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  367. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  368. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  369. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  370. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  371. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  372. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  373. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  374. package/template/.cursor/skills/yss-design-system/SKILL.md +25 -22
  375. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +22 -24
  376. package/template/.cursor/skills/yss-design-system/references/design-system.md +39 -56
  377. package/template/.cursor/skills/yss-domain/SKILL.md +1 -1
  378. package/template/.cursor/skills/yss-dto/SKILL.md +1 -0
  379. package/template/.cursor/skills/yss-exception/SKILL.md +1 -0
  380. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  381. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  382. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  383. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  384. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  385. package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  386. package/template/.cursor/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  387. package/template/.cursor/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  388. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  389. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  390. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  391. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  392. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  393. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  394. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  395. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  396. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  397. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  398. package/template/.cursor/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  399. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  400. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  401. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  402. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  403. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  404. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  405. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  406. package/template/.cursor/skills/yss-mybatis/SKILL.md +2 -2
  407. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +31 -7
  408. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  409. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  410. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  411. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  412. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +7 -2
  413. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  414. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +9 -8
  415. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  416. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  417. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  418. package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  419. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  420. package/template/.cursor/skills/yss-repository/SKILL.md +6 -0
  421. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  422. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  423. package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  424. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  425. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  426. package/template/.cursor/skills/yss-stage-decision/SKILL.md +16 -12
  427. package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  428. package/template/.cursor/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  429. package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  430. package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  431. package/template/.cursor/skills/yss-stage-decision/references/validation-rules.md +1 -1
  432. package/template/.cursor/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  433. package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  434. package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  435. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  436. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  437. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  438. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  439. package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  440. package/template/.cursor/skills/yss-tactical-design/SKILL.md +8 -2
  441. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -0
  442. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  443. package/template/.cursor/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  444. package/template/.cursor/skills/yss-ui/SKILL.md +1 -2
  445. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  446. package/template/.cursor/skills/yss-validation/SKILL.md +1 -0
  447. package/template/.cursor/skills/yss-web-controller/SKILL.md +6 -0
  448. package/template/.cursor/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  449. package/template/.cursor/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  450. package/template/.cursor/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  451. package/template/.cursor/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  452. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  453. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  454. package/template/.cursorrules +6 -34
  455. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +1 -0
  456. package/template/.pi/skills/code-review/references/yss-review-standards.md +1 -1
  457. package/template/.pi/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  458. package/template/.pi/skills/domain-modeling/SKILL.md +10 -26
  459. package/template/.pi/skills/grill-with-docs/SKILL.md +6 -5
  460. package/template/.pi/skills/lombok/SKILL.md +2 -1
  461. package/template/.pi/skills/mapstruct/SKILL.md +3 -2
  462. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  463. package/template/.pi/skills/setup-matt-pocock-skills/domain.md +6 -20
  464. package/template/.pi/skills/wait-what/SKILL.md +1 -1
  465. package/template/.pi/skills/yss-antdv-next-design/SKILL.md +48 -0
  466. package/template/.pi/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  467. package/template/.pi/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  468. package/template/.pi/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  469. package/template/.pi/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  470. package/template/.pi/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  471. package/template/.pi/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  472. package/template/.pi/skills/yss-application/SKILL.md +6 -0
  473. package/template/.pi/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  474. package/template/.pi/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  475. package/template/.pi/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  476. package/template/.pi/skills/yss-components/SKILL.md +1 -1
  477. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  478. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  479. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  480. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  481. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  482. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  483. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  484. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  485. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  486. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  487. package/template/.pi/skills/yss-design-system/SKILL.md +25 -22
  488. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +22 -24
  489. package/template/.pi/skills/yss-design-system/references/design-system.md +39 -56
  490. package/template/.pi/skills/yss-domain/SKILL.md +1 -1
  491. package/template/.pi/skills/yss-dto/SKILL.md +1 -0
  492. package/template/.pi/skills/yss-exception/SKILL.md +1 -0
  493. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  494. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  495. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  496. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  497. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  498. package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  499. package/template/.pi/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  500. package/template/.pi/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  501. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  502. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  503. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  504. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  505. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  506. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  507. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  508. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  509. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  510. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  511. package/template/.pi/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  512. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  513. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  514. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  515. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  516. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  517. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  518. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  519. package/template/.pi/skills/yss-mybatis/SKILL.md +2 -2
  520. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +31 -7
  521. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  522. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  523. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  524. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  525. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +7 -2
  526. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  527. package/template/.pi/skills/yss-prototype-stage/SKILL.md +9 -8
  528. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  529. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  530. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  531. package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  532. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  533. package/template/.pi/skills/yss-repository/SKILL.md +6 -0
  534. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  535. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  536. package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  537. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  538. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  539. package/template/.pi/skills/yss-stage-decision/SKILL.md +16 -12
  540. package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  541. package/template/.pi/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  542. package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  543. package/template/.pi/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  544. package/template/.pi/skills/yss-stage-decision/references/validation-rules.md +1 -1
  545. package/template/.pi/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  546. package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  547. package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  548. package/template/.pi/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  549. package/template/.pi/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  550. package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  551. package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  552. package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  553. package/template/.pi/skills/yss-tactical-design/SKILL.md +8 -2
  554. package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -0
  555. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  556. package/template/.pi/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  557. package/template/.pi/skills/yss-ui/SKILL.md +1 -2
  558. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  559. package/template/.pi/skills/yss-validation/SKILL.md +1 -0
  560. package/template/.pi/skills/yss-web-controller/SKILL.md +6 -0
  561. package/template/.pi/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  562. package/template/.pi/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  563. package/template/.pi/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  564. package/template/.pi/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  565. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  566. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  567. package/template/.qoder/skills/alibaba-java-code-style/SKILL.md +1 -0
  568. package/template/.qoder/skills/code-review/references/yss-review-standards.md +1 -1
  569. package/template/.qoder/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  570. package/template/.qoder/skills/domain-modeling/SKILL.md +10 -26
  571. package/template/.qoder/skills/grill-with-docs/SKILL.md +6 -5
  572. package/template/.qoder/skills/lombok/SKILL.md +2 -1
  573. package/template/.qoder/skills/mapstruct/SKILL.md +3 -2
  574. package/template/.qoder/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  575. package/template/.qoder/skills/setup-matt-pocock-skills/domain.md +6 -20
  576. package/template/.qoder/skills/wait-what/SKILL.md +1 -1
  577. package/template/.qoder/skills/yss-antdv-next-design/SKILL.md +48 -0
  578. package/template/.qoder/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  579. package/template/.qoder/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  580. package/template/.qoder/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  581. package/template/.qoder/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  582. package/template/.qoder/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  583. package/template/.qoder/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  584. package/template/.qoder/skills/yss-application/SKILL.md +6 -0
  585. package/template/.qoder/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  586. package/template/.qoder/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  587. package/template/.qoder/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  588. package/template/.qoder/skills/yss-components/SKILL.md +1 -1
  589. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  590. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  591. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  592. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  593. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  594. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  595. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  596. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  597. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  598. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  599. package/template/.qoder/skills/yss-design-system/SKILL.md +25 -22
  600. package/template/.qoder/skills/yss-design-system/references/design-qa-theme.md +22 -24
  601. package/template/.qoder/skills/yss-design-system/references/design-system.md +39 -56
  602. package/template/.qoder/skills/yss-domain/SKILL.md +1 -1
  603. package/template/.qoder/skills/yss-dto/SKILL.md +1 -0
  604. package/template/.qoder/skills/yss-exception/SKILL.md +1 -0
  605. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  606. package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  607. package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  608. package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  609. package/template/.qoder/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  610. package/template/.qoder/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  611. package/template/.qoder/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  612. package/template/.qoder/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  613. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  614. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  615. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  616. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  617. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  618. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  619. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  620. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  621. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  622. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  623. package/template/.qoder/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  624. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  625. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  626. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  627. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  628. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  629. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  630. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  631. package/template/.qoder/skills/yss-mybatis/SKILL.md +2 -2
  632. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +31 -7
  633. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  634. package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  635. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  636. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  637. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +7 -2
  638. package/template/.qoder/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  639. package/template/.qoder/skills/yss-prototype-stage/SKILL.md +9 -8
  640. package/template/.qoder/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  641. package/template/.qoder/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  642. package/template/.qoder/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  643. package/template/.qoder/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  644. package/template/.qoder/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  645. package/template/.qoder/skills/yss-repository/SKILL.md +6 -0
  646. package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  647. package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  648. package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  649. package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  650. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  651. package/template/.qoder/skills/yss-stage-decision/SKILL.md +16 -12
  652. package/template/.qoder/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  653. package/template/.qoder/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  654. package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  655. package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  656. package/template/.qoder/skills/yss-stage-decision/references/validation-rules.md +1 -1
  657. package/template/.qoder/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  658. package/template/.qoder/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  659. package/template/.qoder/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  660. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  661. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  662. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  663. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  664. package/template/.qoder/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  665. package/template/.qoder/skills/yss-tactical-design/SKILL.md +8 -2
  666. package/template/.qoder/skills/yss-tactical-design/references/output-template.md +3 -0
  667. package/template/.qoder/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  668. package/template/.qoder/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  669. package/template/.qoder/skills/yss-ui/SKILL.md +1 -2
  670. package/template/.qoder/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  671. package/template/.qoder/skills/yss-validation/SKILL.md +1 -0
  672. package/template/.qoder/skills/yss-web-controller/SKILL.md +6 -0
  673. package/template/.qoder/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  674. package/template/.qoder/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  675. package/template/.qoder/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  676. package/template/.qoder/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  677. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  678. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  679. package/template/.trae/skills/alibaba-java-code-style/SKILL.md +1 -0
  680. package/template/.trae/skills/code-review/references/yss-review-standards.md +1 -1
  681. package/template/.trae/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  682. package/template/.trae/skills/domain-modeling/SKILL.md +10 -26
  683. package/template/.trae/skills/grill-with-docs/SKILL.md +6 -5
  684. package/template/.trae/skills/lombok/SKILL.md +2 -1
  685. package/template/.trae/skills/mapstruct/SKILL.md +3 -2
  686. package/template/.trae/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  687. package/template/.trae/skills/setup-matt-pocock-skills/domain.md +6 -20
  688. package/template/.trae/skills/wait-what/SKILL.md +1 -1
  689. package/template/.trae/skills/yss-antdv-next-design/SKILL.md +48 -0
  690. package/template/.trae/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  691. package/template/.trae/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  692. package/template/.trae/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  693. package/template/.trae/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  694. package/template/.trae/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  695. package/template/.trae/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  696. package/template/.trae/skills/yss-application/SKILL.md +6 -0
  697. package/template/.trae/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  698. package/template/.trae/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  699. package/template/.trae/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  700. package/template/.trae/skills/yss-components/SKILL.md +1 -1
  701. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  702. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  703. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  704. package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  705. package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  706. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  707. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  708. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  709. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  710. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  711. package/template/.trae/skills/yss-design-system/SKILL.md +25 -22
  712. package/template/.trae/skills/yss-design-system/references/design-qa-theme.md +22 -24
  713. package/template/.trae/skills/yss-design-system/references/design-system.md +39 -56
  714. package/template/.trae/skills/yss-domain/SKILL.md +1 -1
  715. package/template/.trae/skills/yss-dto/SKILL.md +1 -0
  716. package/template/.trae/skills/yss-exception/SKILL.md +1 -0
  717. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
  718. package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +8 -2
  719. package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  720. package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +72 -19
  721. package/template/.trae/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +5 -1
  722. package/template/.trae/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  723. package/template/.trae/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  724. package/template/.trae/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  725. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  726. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  727. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  728. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  729. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  730. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  731. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  732. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  733. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  734. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  735. package/template/.trae/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  736. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  737. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  738. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  739. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  740. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  741. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  742. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  743. package/template/.trae/skills/yss-mybatis/SKILL.md +2 -2
  744. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +31 -7
  745. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  746. package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  747. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  748. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  749. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +7 -2
  750. package/template/.trae/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  751. package/template/.trae/skills/yss-prototype-stage/SKILL.md +9 -8
  752. package/template/.trae/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  753. package/template/.trae/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  754. package/template/.trae/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  755. package/template/.trae/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  756. package/template/.trae/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  757. package/template/.trae/skills/yss-repository/SKILL.md +6 -0
  758. package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  759. package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  760. package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  761. package/template/.trae/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  762. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  763. package/template/.trae/skills/yss-stage-decision/SKILL.md +16 -12
  764. package/template/.trae/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  765. package/template/.trae/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  766. package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  767. package/template/.trae/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  768. package/template/.trae/skills/yss-stage-decision/references/validation-rules.md +1 -1
  769. package/template/.trae/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  770. package/template/.trae/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  771. package/template/.trae/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  772. package/template/.trae/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  773. package/template/.trae/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  774. package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  775. package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  776. package/template/.trae/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  777. package/template/.trae/skills/yss-tactical-design/SKILL.md +8 -2
  778. package/template/.trae/skills/yss-tactical-design/references/output-template.md +3 -0
  779. package/template/.trae/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  780. package/template/.trae/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  781. package/template/.trae/skills/yss-ui/SKILL.md +1 -2
  782. package/template/.trae/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  783. package/template/.trae/skills/yss-validation/SKILL.md +1 -0
  784. package/template/.trae/skills/yss-web-controller/SKILL.md +6 -0
  785. package/template/.trae/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  786. package/template/.trae/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  787. package/template/.trae/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  788. package/template/.trae/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  789. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  790. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  791. package/template/AGENTS.md +52 -91
  792. package/template/CONTEXT.md +15 -5
  793. package/template/DESIGN.md +85 -41
  794. package/template/__yss_dotfile__.gitignore +1 -0
  795. package/template/docs/agents/backend-architecture-profiles.md +25 -0
  796. package/template/docs/agents/digital-human-roles.md +3 -3
  797. package/template/docs/agents/digital-human-roles.yaml +46 -13
  798. package/template/docs/agents/domain.md +7 -6
  799. package/template/docs/agents/skill-migrations.md +20 -2
  800. package/template/docs/agents/skills-maintenance.md +3 -3
  801. package/template/docs/agents/strategic-design-skills-integration.md +6 -1
  802. package/template/docs/agents/yss-skill-registry.yaml +78 -94
  803. package/template/docs/agents/yss-ui-skills-integration.md +3 -3
  804. package/template/docs/api/templates/openapi-draft-review-checklist.md +2 -2
  805. package/template/docs/architecture/templates/engineering-baseline-review-template.md +18 -6
  806. package/template/docs/design/README.md +9 -6
  807. package/template/docs/design/design-system-sync.yaml +1 -1
  808. package/template/docs/design/design.md +86 -118
  809. package/template/docs/design/facts/antdv-next/1.5.2/cli-help.txt +38 -0
  810. package/template/docs/design/facts/antdv-next/1.5.2/component-list.json +434 -0
  811. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/demo-basic.json +7 -0
  812. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/info.json +246 -0
  813. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/semantic.json +40 -0
  814. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/token.json +32 -0
  815. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/demo-basic.json +7 -0
  816. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/info.json +190 -0
  817. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/semantic.json +20 -0
  818. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/token.json +256 -0
  819. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/demo-basic.json +7 -0
  820. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/info.json +460 -0
  821. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/semantic.json +70 -0
  822. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/token.json +123 -0
  823. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/demo-basic.json +7 -0
  824. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/info.json +646 -0
  825. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/semantic.json +50 -0
  826. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/token.json +130 -0
  827. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/demo-basic.json +7 -0
  828. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/info.json +640 -0
  829. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/semantic.json +70 -0
  830. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/token.json +172 -0
  831. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/demo-basic.json +7 -0
  832. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/info.json +1010 -0
  833. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/semantic.json +70 -0
  834. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/token.json +263 -0
  835. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/demo-basic.json +7 -0
  836. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/info.json +321 -0
  837. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/semantic.json +25 -0
  838. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/token.json +25 -0
  839. package/template/docs/design/facts/antdv-next/1.5.2/design-md.json +3 -0
  840. package/template/docs/design/facts/antdv-next/1.5.2/manifest.json +215 -0
  841. package/template/docs/design/facts/antdv-next/1.5.2/resolution-probe.json +5 -0
  842. package/template/docs/design/preview-dark.html +170 -7
  843. package/template/docs/design/preview.css +730 -0
  844. package/template/docs/design/preview.html +168 -10
  845. package/template/docs/design/preview.js +71 -0
  846. package/template/docs/design/schemas/visual-baseline.schema.json +66 -0
  847. package/template/docs/design/templates/interaction-spec-template.md +1 -1
  848. package/template/docs/design/templates/product-overview-design-template.md +6 -6
  849. package/template/docs/design/templates/prototype-evidence-template.yaml +21 -8
  850. package/template/docs/design/templates/prototype-review-checklist.md +1 -1
  851. package/template/docs/design/templates/visual-baseline-template.yaml +70 -0
  852. package/template/docs/design/tokens/.design-md-projection.json +3 -3
  853. package/template/docs/design/tokens/theme.json +2 -2
  854. package/template/docs/design/tokens/variables.css +5 -0
  855. package/template/docs/process/harness-executive-blueprint.md +1 -1
  856. package/template/docs/process/harness-process-tailoring.md +1 -0
  857. package/template/docs/process/lifecycle-artifact-map.md +5 -4
  858. package/template/docs/process/lifecycle-registry-baseline.json +7 -5
  859. package/template/docs/process/lifecycle-registry.yaml +22 -0
  860. package/template/docs/process/schemas/backend-architecture-identity.schema.json +19 -0
  861. package/template/docs/process/schemas/context-reconciliation.schema.json +57 -0
  862. package/template/docs/process/schemas/digital-human-task-package.schema.json +10 -0
  863. package/template/docs/process/schemas/frontend-implementation-evidence.schema.json +62 -29
  864. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +16 -2
  865. package/template/docs/process/schemas/lifecycle-registry.schema.json +4 -4
  866. package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +68 -0
  867. package/template/docs/process/schemas/strategic-design-handoff.schema.json +670 -0
  868. package/template/docs/process/schemas/strategic-handoff-domain-strategy.schema.json +146 -0
  869. package/template/docs/process/schemas/strategic-handoff-export.schema.json +295 -0
  870. package/template/docs/process/schemas/strategic-handoff-package.schema.json +97 -0
  871. package/template/docs/process/schemas/strategic-handoff-stage-decision-package.schema.json +98 -0
  872. package/template/docs/process/schemas/user-decision.schema.json +357 -0
  873. package/template/docs/process/strategic-handoff-package.md +56 -0
  874. package/template/docs/process/template-verification-profiles.yaml +60 -1
  875. package/template/docs/process/templates/context-reconciliation-template.yaml +18 -0
  876. package/template/docs/process/templates/frontend-implementation-plan-template.yaml +11 -5
  877. package/template/docs/process/templates/frontend-implementation-verification-template.yaml +25 -5
  878. package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +9 -0
  879. package/template/docs/process/templates/scaffold-architecture-decisions-template.yaml +32 -0
  880. package/template/docs/process/templates/stage-checkpoint-template.md +5 -0
  881. package/template/docs/process/templates/user-decision-template.yaml +30 -0
  882. package/template/docs/templates/approval-record-template.yaml +4 -0
  883. package/template/docs/templates/build-architecture-checklist-template.md +3 -3
  884. package/template/docs/templates/implementation-repo-registry-template.md +3 -1
  885. package/template/docs/templates/implementation-routing-template.md +8 -6
  886. package/template/docs/templates/requirement-freeze-template.md +1 -1
  887. package/template/docs/templates/review-report-template.md +1 -1
  888. package/template/docs/templates/spec-template.md +5 -5
  889. package/template/docs/user-guide//346/210/230/346/234/257/350/256/276/350/256/241/345/255/220/351/241/271/347/233/256/347/224/250/346/210/267/346/211/213/345/206/214.md +3 -1
  890. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +1 -1
  891. package/template/scripts/fixtures/strategic-handoff/base-stage.json +91 -0
  892. package/template/scripts/fixtures/strategic-handoff/base-strategy.json +205 -0
  893. package/template/scripts/fixtures/strategic-handoff/fixture.mjs +57 -0
  894. package/template/scripts/fixtures/strategic-handoff/source-roles.json +528 -0
  895. package/template/scripts/fixtures/user-decision/build-fixture.mjs +61 -0
  896. package/template/scripts/lib/approval-record.mjs +32 -1
  897. package/template/scripts/lib/backend-architecture.mjs +43 -0
  898. package/template/scripts/lib/context-contract.mjs +203 -0
  899. package/template/scripts/lib/digital-human-roles.mjs +21 -3
  900. package/template/scripts/lib/first-slice-architecture.mjs +23 -0
  901. package/template/scripts/lib/implementation-contract-compiler.mjs +34 -1
  902. package/template/scripts/lib/lifecycle-registry.mjs +14 -6
  903. package/template/scripts/lib/lifecycle-transition.mjs +19 -4
  904. package/template/scripts/lib/scaffold-local-database.mjs +26 -0
  905. package/template/scripts/lib/scenario-checks.mjs +25 -12
  906. package/template/scripts/lib/skill-governance.mjs +25 -10
  907. package/template/scripts/lib/skill-registry.mjs +1 -1
  908. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  909. package/template/scripts/lib/strategic-handoff-consumption.mjs +76 -0
  910. package/template/scripts/lib/strategic-handoff-io.mjs +75 -0
  911. package/template/scripts/lib/strategic-handoff-rules.mjs +37 -0
  912. package/template/scripts/lib/strategic-handoff-zip.py +52 -0
  913. package/template/scripts/lib/strategic-handoff.mjs +259 -0
  914. package/template/scripts/lib/task-package.mjs +10 -2
  915. package/template/scripts/lib/user-decision.mjs +210 -0
  916. package/template/scripts/strategic-handoff +14 -0
  917. package/template/scripts/sync-strategic-handoff-tools +18 -0
  918. package/template/scripts/verify-approval-record +5 -4
  919. package/template/scripts/verify-business-language-scenarios +59 -0
  920. package/template/scripts/verify-context-contract +15 -0
  921. package/template/scripts/verify-context-contract-scenarios +105 -0
  922. package/template/scripts/verify-context-reconciliation +58 -0
  923. package/template/scripts/verify-context-reconciliation-scenarios +69 -0
  924. package/template/scripts/verify-digital-human-roles-scenarios +1 -1
  925. package/template/scripts/verify-frontend-implementation-evidence +31 -8
  926. package/template/scripts/verify-frontend-implementation-evidence-scenarios +56 -0
  927. package/template/scripts/verify-grill-with-docs-context-scenarios +15 -0
  928. package/template/scripts/verify-lifecycle-checkpoint +9 -1
  929. package/template/scripts/verify-lifecycle-transition-scenarios +13 -3
  930. package/template/scripts/verify-retired-skill-ids +30 -4
  931. package/template/scripts/verify-scaffold-architecture-decision-scenarios +30 -0
  932. package/template/scripts/verify-scaffold-architecture-decisions +61 -0
  933. package/template/scripts/verify-scaffold-generator-scenarios +74 -3
  934. package/template/scripts/verify-strategic-context-import +65 -0
  935. package/template/scripts/verify-strategic-context-import-scenarios +50 -0
  936. package/template/scripts/verify-strategic-handoff-consumption +10 -0
  937. package/template/scripts/verify-strategic-handoff-package-scenarios +102 -0
  938. package/template/scripts/verify-subagent-task-package-scenarios +17 -3
  939. package/template/scripts/verify-template-verification-scenarios +6 -1
  940. package/template/scripts/verify-user-decision +17 -0
  941. package/template/scripts/verify-user-decision-scenarios +103 -0
  942. package/template/skills-lock.json +77 -270
  943. package/template/yss-public-skills.json +4 -4
  944. package/template.snapshot.json +4 -4
  945. package/template/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  946. package/template/.agents/skills/ask-matt/SKILL.md +0 -95
  947. package/template/.agents/skills/ask-matt/agents/openai.yaml +0 -5
  948. package/template/.agents/skills/dispatching-parallel-agents/SKILL.md +0 -185
  949. package/template/.agents/skills/loop-me/SKILL.md +0 -32
  950. package/template/.agents/skills/loop-me/agents/openai.yaml +0 -5
  951. package/template/.agents/skills/migrate-to-shoehorn/SKILL.md +0 -118
  952. package/template/.agents/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  953. package/template/.agents/skills/prototype-page-acceptance/SKILL.md +0 -62
  954. package/template/.agents/skills/scaffold-exercises/SKILL.md +0 -106
  955. package/template/.agents/skills/scaffold-exercises/agents/openai.yaml +0 -3
  956. package/template/.agents/skills/setup-pre-commit/SKILL.md +0 -91
  957. package/template/.agents/skills/setup-pre-commit/agents/openai.yaml +0 -3
  958. package/template/.agents/skills/setup-ts-deep-modules/SKILL.md +0 -102
  959. package/template/.agents/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  960. package/template/.agents/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  961. package/template/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
  962. package/template/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  963. package/template/.agents/skills/teach/MISSION-FORMAT.md +0 -31
  964. package/template/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
  965. package/template/.agents/skills/teach/SKILL.md +0 -140
  966. package/template/.agents/skills/teach/agents/openai.yaml +0 -5
  967. package/template/.agents/skills/writing-beats/SKILL.md +0 -67
  968. package/template/.agents/skills/writing-beats/agents/openai.yaml +0 -5
  969. package/template/.agents/skills/writing-fragments/SKILL.md +0 -79
  970. package/template/.agents/skills/writing-fragments/agents/openai.yaml +0 -5
  971. package/template/.agents/skills/writing-shape/SKILL.md +0 -79
  972. package/template/.agents/skills/writing-shape/agents/openai.yaml +0 -5
  973. package/template/.agents/skills/yss-microapp-commit/SKILL.md +0 -201
  974. package/template/.agents/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  975. package/template/.agents/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  976. package/template/.agents/skills/yss-page-module-development/SKILL.md +0 -165
  977. package/template/.agents/skills/yss-page-module-development/agents/openai.yaml +0 -5
  978. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  979. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  980. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  981. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  982. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  983. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  984. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  985. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  986. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  987. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  988. package/template/.agents/skills/yss-page-module-development/references/component-map.md +0 -34
  989. package/template/.agents/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  990. package/template/.agents/skills/yss-page-module-development/references/hooks-map.md +0 -11
  991. package/template/.agents/skills/yss-page-module-development/references/utils-map.md +0 -14
  992. package/template/.claude/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  993. package/template/.claude/skills/ask-matt/SKILL.md +0 -95
  994. package/template/.claude/skills/ask-matt/agents/openai.yaml +0 -5
  995. package/template/.claude/skills/dispatching-parallel-agents/SKILL.md +0 -185
  996. package/template/.claude/skills/loop-me/SKILL.md +0 -32
  997. package/template/.claude/skills/loop-me/agents/openai.yaml +0 -5
  998. package/template/.claude/skills/migrate-to-shoehorn/SKILL.md +0 -118
  999. package/template/.claude/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1000. package/template/.claude/skills/prototype-page-acceptance/SKILL.md +0 -62
  1001. package/template/.claude/skills/scaffold-exercises/SKILL.md +0 -106
  1002. package/template/.claude/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1003. package/template/.claude/skills/setup-pre-commit/SKILL.md +0 -91
  1004. package/template/.claude/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1005. package/template/.claude/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1006. package/template/.claude/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1007. package/template/.claude/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1008. package/template/.claude/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1009. package/template/.claude/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1010. package/template/.claude/skills/teach/MISSION-FORMAT.md +0 -31
  1011. package/template/.claude/skills/teach/RESOURCES-FORMAT.md +0 -32
  1012. package/template/.claude/skills/teach/SKILL.md +0 -140
  1013. package/template/.claude/skills/teach/agents/openai.yaml +0 -5
  1014. package/template/.claude/skills/writing-beats/SKILL.md +0 -67
  1015. package/template/.claude/skills/writing-beats/agents/openai.yaml +0 -5
  1016. package/template/.claude/skills/writing-fragments/SKILL.md +0 -79
  1017. package/template/.claude/skills/writing-fragments/agents/openai.yaml +0 -5
  1018. package/template/.claude/skills/writing-shape/SKILL.md +0 -79
  1019. package/template/.claude/skills/writing-shape/agents/openai.yaml +0 -5
  1020. package/template/.claude/skills/yss-microapp-commit/SKILL.md +0 -201
  1021. package/template/.claude/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1022. package/template/.claude/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1023. package/template/.claude/skills/yss-page-module-development/SKILL.md +0 -165
  1024. package/template/.claude/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1025. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1026. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1027. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1028. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1029. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1030. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1031. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1032. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1033. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1034. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1035. package/template/.claude/skills/yss-page-module-development/references/component-map.md +0 -34
  1036. package/template/.claude/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1037. package/template/.claude/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1038. package/template/.claude/skills/yss-page-module-development/references/utils-map.md +0 -14
  1039. package/template/.codex/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1040. package/template/.codex/skills/ask-matt/SKILL.md +0 -95
  1041. package/template/.codex/skills/ask-matt/agents/openai.yaml +0 -5
  1042. package/template/.codex/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1043. package/template/.codex/skills/loop-me/SKILL.md +0 -32
  1044. package/template/.codex/skills/loop-me/agents/openai.yaml +0 -5
  1045. package/template/.codex/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1046. package/template/.codex/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1047. package/template/.codex/skills/prototype-page-acceptance/SKILL.md +0 -62
  1048. package/template/.codex/skills/scaffold-exercises/SKILL.md +0 -106
  1049. package/template/.codex/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1050. package/template/.codex/skills/setup-pre-commit/SKILL.md +0 -91
  1051. package/template/.codex/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1052. package/template/.codex/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1053. package/template/.codex/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1054. package/template/.codex/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1055. package/template/.codex/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1056. package/template/.codex/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1057. package/template/.codex/skills/teach/MISSION-FORMAT.md +0 -31
  1058. package/template/.codex/skills/teach/RESOURCES-FORMAT.md +0 -32
  1059. package/template/.codex/skills/teach/SKILL.md +0 -140
  1060. package/template/.codex/skills/teach/agents/openai.yaml +0 -5
  1061. package/template/.codex/skills/writing-beats/SKILL.md +0 -67
  1062. package/template/.codex/skills/writing-beats/agents/openai.yaml +0 -5
  1063. package/template/.codex/skills/writing-fragments/SKILL.md +0 -79
  1064. package/template/.codex/skills/writing-fragments/agents/openai.yaml +0 -5
  1065. package/template/.codex/skills/writing-shape/SKILL.md +0 -79
  1066. package/template/.codex/skills/writing-shape/agents/openai.yaml +0 -5
  1067. package/template/.codex/skills/yss-microapp-commit/SKILL.md +0 -201
  1068. package/template/.codex/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1069. package/template/.codex/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1070. package/template/.codex/skills/yss-page-module-development/SKILL.md +0 -165
  1071. package/template/.codex/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1072. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1073. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1074. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1075. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1076. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1077. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1078. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1079. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1080. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1081. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1082. package/template/.codex/skills/yss-page-module-development/references/component-map.md +0 -34
  1083. package/template/.codex/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1084. package/template/.codex/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1085. package/template/.codex/skills/yss-page-module-development/references/utils-map.md +0 -14
  1086. package/template/.cursor/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1087. package/template/.cursor/skills/ask-matt/SKILL.md +0 -95
  1088. package/template/.cursor/skills/ask-matt/agents/openai.yaml +0 -5
  1089. package/template/.cursor/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1090. package/template/.cursor/skills/loop-me/SKILL.md +0 -32
  1091. package/template/.cursor/skills/loop-me/agents/openai.yaml +0 -5
  1092. package/template/.cursor/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1093. package/template/.cursor/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1094. package/template/.cursor/skills/prototype-page-acceptance/SKILL.md +0 -62
  1095. package/template/.cursor/skills/scaffold-exercises/SKILL.md +0 -106
  1096. package/template/.cursor/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1097. package/template/.cursor/skills/setup-pre-commit/SKILL.md +0 -91
  1098. package/template/.cursor/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1099. package/template/.cursor/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1100. package/template/.cursor/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1101. package/template/.cursor/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1102. package/template/.cursor/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1103. package/template/.cursor/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1104. package/template/.cursor/skills/teach/MISSION-FORMAT.md +0 -31
  1105. package/template/.cursor/skills/teach/RESOURCES-FORMAT.md +0 -32
  1106. package/template/.cursor/skills/teach/SKILL.md +0 -140
  1107. package/template/.cursor/skills/teach/agents/openai.yaml +0 -5
  1108. package/template/.cursor/skills/writing-beats/SKILL.md +0 -67
  1109. package/template/.cursor/skills/writing-beats/agents/openai.yaml +0 -5
  1110. package/template/.cursor/skills/writing-fragments/SKILL.md +0 -79
  1111. package/template/.cursor/skills/writing-fragments/agents/openai.yaml +0 -5
  1112. package/template/.cursor/skills/writing-shape/SKILL.md +0 -79
  1113. package/template/.cursor/skills/writing-shape/agents/openai.yaml +0 -5
  1114. package/template/.cursor/skills/yss-microapp-commit/SKILL.md +0 -201
  1115. package/template/.cursor/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1116. package/template/.cursor/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1117. package/template/.cursor/skills/yss-page-module-development/SKILL.md +0 -165
  1118. package/template/.cursor/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1119. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1120. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1121. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1122. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1123. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1124. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1125. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1126. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1127. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1128. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1129. package/template/.cursor/skills/yss-page-module-development/references/component-map.md +0 -34
  1130. package/template/.cursor/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1131. package/template/.cursor/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1132. package/template/.cursor/skills/yss-page-module-development/references/utils-map.md +0 -14
  1133. package/template/.pi/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1134. package/template/.pi/skills/ask-matt/SKILL.md +0 -95
  1135. package/template/.pi/skills/ask-matt/agents/openai.yaml +0 -5
  1136. package/template/.pi/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1137. package/template/.pi/skills/loop-me/SKILL.md +0 -32
  1138. package/template/.pi/skills/loop-me/agents/openai.yaml +0 -5
  1139. package/template/.pi/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1140. package/template/.pi/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1141. package/template/.pi/skills/prototype-page-acceptance/SKILL.md +0 -62
  1142. package/template/.pi/skills/scaffold-exercises/SKILL.md +0 -106
  1143. package/template/.pi/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1144. package/template/.pi/skills/setup-pre-commit/SKILL.md +0 -91
  1145. package/template/.pi/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1146. package/template/.pi/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1147. package/template/.pi/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1148. package/template/.pi/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1149. package/template/.pi/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1150. package/template/.pi/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1151. package/template/.pi/skills/teach/MISSION-FORMAT.md +0 -31
  1152. package/template/.pi/skills/teach/RESOURCES-FORMAT.md +0 -32
  1153. package/template/.pi/skills/teach/SKILL.md +0 -140
  1154. package/template/.pi/skills/teach/agents/openai.yaml +0 -5
  1155. package/template/.pi/skills/writing-beats/SKILL.md +0 -67
  1156. package/template/.pi/skills/writing-beats/agents/openai.yaml +0 -5
  1157. package/template/.pi/skills/writing-fragments/SKILL.md +0 -79
  1158. package/template/.pi/skills/writing-fragments/agents/openai.yaml +0 -5
  1159. package/template/.pi/skills/writing-shape/SKILL.md +0 -79
  1160. package/template/.pi/skills/writing-shape/agents/openai.yaml +0 -5
  1161. package/template/.pi/skills/yss-microapp-commit/SKILL.md +0 -201
  1162. package/template/.pi/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1163. package/template/.pi/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1164. package/template/.pi/skills/yss-page-module-development/SKILL.md +0 -165
  1165. package/template/.pi/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1166. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1167. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1168. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1169. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1170. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1171. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1172. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1173. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1174. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1175. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1176. package/template/.pi/skills/yss-page-module-development/references/component-map.md +0 -34
  1177. package/template/.pi/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1178. package/template/.pi/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1179. package/template/.pi/skills/yss-page-module-development/references/utils-map.md +0 -14
  1180. package/template/.qoder/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1181. package/template/.qoder/skills/ask-matt/SKILL.md +0 -95
  1182. package/template/.qoder/skills/ask-matt/agents/openai.yaml +0 -5
  1183. package/template/.qoder/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1184. package/template/.qoder/skills/loop-me/SKILL.md +0 -32
  1185. package/template/.qoder/skills/loop-me/agents/openai.yaml +0 -5
  1186. package/template/.qoder/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1187. package/template/.qoder/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1188. package/template/.qoder/skills/prototype-page-acceptance/SKILL.md +0 -62
  1189. package/template/.qoder/skills/scaffold-exercises/SKILL.md +0 -106
  1190. package/template/.qoder/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1191. package/template/.qoder/skills/setup-pre-commit/SKILL.md +0 -91
  1192. package/template/.qoder/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1193. package/template/.qoder/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1194. package/template/.qoder/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1195. package/template/.qoder/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1196. package/template/.qoder/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1197. package/template/.qoder/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1198. package/template/.qoder/skills/teach/MISSION-FORMAT.md +0 -31
  1199. package/template/.qoder/skills/teach/RESOURCES-FORMAT.md +0 -32
  1200. package/template/.qoder/skills/teach/SKILL.md +0 -140
  1201. package/template/.qoder/skills/teach/agents/openai.yaml +0 -5
  1202. package/template/.qoder/skills/writing-beats/SKILL.md +0 -67
  1203. package/template/.qoder/skills/writing-beats/agents/openai.yaml +0 -5
  1204. package/template/.qoder/skills/writing-fragments/SKILL.md +0 -79
  1205. package/template/.qoder/skills/writing-fragments/agents/openai.yaml +0 -5
  1206. package/template/.qoder/skills/writing-shape/SKILL.md +0 -79
  1207. package/template/.qoder/skills/writing-shape/agents/openai.yaml +0 -5
  1208. package/template/.qoder/skills/yss-microapp-commit/SKILL.md +0 -201
  1209. package/template/.qoder/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1210. package/template/.qoder/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1211. package/template/.qoder/skills/yss-page-module-development/SKILL.md +0 -165
  1212. package/template/.qoder/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1213. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1214. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1215. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1216. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1217. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1218. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1219. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1220. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1221. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1222. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1223. package/template/.qoder/skills/yss-page-module-development/references/component-map.md +0 -34
  1224. package/template/.qoder/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1225. package/template/.qoder/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1226. package/template/.qoder/skills/yss-page-module-development/references/utils-map.md +0 -14
  1227. package/template/.trae/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1228. package/template/.trae/skills/ask-matt/SKILL.md +0 -95
  1229. package/template/.trae/skills/ask-matt/agents/openai.yaml +0 -5
  1230. package/template/.trae/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1231. package/template/.trae/skills/loop-me/SKILL.md +0 -32
  1232. package/template/.trae/skills/loop-me/agents/openai.yaml +0 -5
  1233. package/template/.trae/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1234. package/template/.trae/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1235. package/template/.trae/skills/prototype-page-acceptance/SKILL.md +0 -62
  1236. package/template/.trae/skills/scaffold-exercises/SKILL.md +0 -106
  1237. package/template/.trae/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1238. package/template/.trae/skills/setup-pre-commit/SKILL.md +0 -91
  1239. package/template/.trae/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1240. package/template/.trae/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1241. package/template/.trae/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1242. package/template/.trae/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1243. package/template/.trae/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1244. package/template/.trae/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1245. package/template/.trae/skills/teach/MISSION-FORMAT.md +0 -31
  1246. package/template/.trae/skills/teach/RESOURCES-FORMAT.md +0 -32
  1247. package/template/.trae/skills/teach/SKILL.md +0 -140
  1248. package/template/.trae/skills/teach/agents/openai.yaml +0 -5
  1249. package/template/.trae/skills/writing-beats/SKILL.md +0 -67
  1250. package/template/.trae/skills/writing-beats/agents/openai.yaml +0 -5
  1251. package/template/.trae/skills/writing-fragments/SKILL.md +0 -79
  1252. package/template/.trae/skills/writing-fragments/agents/openai.yaml +0 -5
  1253. package/template/.trae/skills/writing-shape/SKILL.md +0 -79
  1254. package/template/.trae/skills/writing-shape/agents/openai.yaml +0 -5
  1255. package/template/.trae/skills/yss-microapp-commit/SKILL.md +0 -201
  1256. package/template/.trae/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1257. package/template/.trae/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1258. package/template/.trae/skills/yss-page-module-development/SKILL.md +0 -165
  1259. package/template/.trae/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1260. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1261. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1262. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1263. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1264. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1265. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1266. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1267. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1268. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1269. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1270. package/template/.trae/skills/yss-page-module-development/references/component-map.md +0 -34
  1271. package/template/.trae/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1272. package/template/.trae/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1273. package/template/.trae/skills/yss-page-module-development/references/utils-map.md +0 -14
@@ -1,5 +1,7 @@
1
- import { existsSync, readFileSync } from "node:fs";
1
+ import { existsSync, readFileSync, mkdtempSync, rmSync } from "node:fs";
2
2
  import path from "node:path";
3
+ import os from "node:os";
4
+ import { buildDecisionFixture, buildImplementationFixture } from "../fixtures/user-decision/build-fixture.mjs";
3
5
  import { fileURLToPath } from "node:url";
4
6
  import { spawnSync } from "node:child_process";
5
7
  import { parseDocument } from "../vendor/yaml.mjs";
@@ -15,10 +17,8 @@ const virtualTicketDecompositionRef = "docs/.scratch/demo/evidence/ticket-decomp
15
17
  const virtualTicketDecomposition = "result_schema: workflow-execution-result-v1\nwork_unit: work-unit.ticket-decomposition\nresult: completed\nevidence_refs:\n - docs/.scratch/demo/evidence/ticket-decomposition-result.yaml\n";
16
18
 
17
19
  function validateMattContract(data) {
18
- const direct = data.entry_routing?.direct_matt_entry;
19
- ensure(direct?.skill === "ask-matt" && direct?.delegate_to === "yss-product-lifecycle" && direct?.requires_valid_manifest === true && direct?.action === "navigate-only" && direct?.lifecycle_state_mutation === "forbidden" && direct?.lifecycle_artifact_write === "forbidden" && direct?.return_to_orchestrator === "required", "ask-matt 导航入口尚未形成验明身份、只导航、禁止生命周期写入并强制回交主控的完整契约");
20
20
  const formal = data.entry_routing?.formal_user_entry;
21
- ensure(includesAll(formal?.skills, ["setup-matt-pocock-skills", "grill-with-docs", "to-spec", "to-tickets", "implement"]) && formal?.action === "lifecycle-validate-and-accept" && formal?.lifecycle_artifact_write === "conditional-explicit-user-entry" && formal?.return_to_orchestrator === "required", "正式用户入口未区分于 ask-matt 导航入口");
21
+ ensure(includesAll(formal?.skills, ["setup-matt-pocock-skills", "grill-with-docs", "to-spec", "to-tickets", "implement"]) && formal?.action === "lifecycle-validate-and-accept" && formal?.lifecycle_artifact_write === "conditional-explicit-user-entry" && formal?.return_to_orchestrator === "required", "正式用户入口缺少生命周期预检与回交约束");
22
22
  const setup = data.setup_readiness;
23
23
  ensure(setup?.missing_action === "needs-human" && setup?.requested_skill === "setup-matt-pocock-skills" && setup?.resume_route === "setup-readiness" && setup?.lifecycle_may_invoke_setup === false, "setup 缺失时未限制为显式用户入口暂停");
24
24
  ensure(includesAll(setup?.preserves, ["lifecycle.status", "gate.status", "ticket.role"]) && setup?.legacy_artifacts_detected?.action === "migration-check" && setup.legacy_artifacts_detected.setup === "forbidden" && setup.legacy_artifacts_detected.write === "paused", "setup 暂停或旧资产迁移暂停契约不完整");
@@ -39,8 +39,8 @@ function validateMattContract(data) {
39
39
 
40
40
  function validateInvocationBoundary(data) {
41
41
  const boundary = data.matt_invocation_boundary;
42
- const expectedUserInvoked = ["ask-matt", "grill-me", "grill-with-docs", "handoff", "implement", "improve-codebase-architecture", "loop-me", "setup-matt-pocock-skills", "setup-ts-deep-modules", "teach", "to-questionnaire", "to-spec", "to-tickets", "triage", "wait-what", "wayfinder", "writing-beats", "writing-fragments", "writing-shape"];
43
- const expectedModelInvoked = ["code-review", "codebase-design", "diagnosing-bugs", "domain-modeling", "grilling", "migrate-to-shoehorn", "prototype", "resolving-merge-conflicts", "scaffold-exercises", "setup-pre-commit", "tdd", "writing-for-agents", "yss-research"];
42
+ const expectedUserInvoked = ["grill-me", "grill-with-docs", "handoff", "implement", "improve-codebase-architecture", "setup-matt-pocock-skills", "to-questionnaire", "to-spec", "to-tickets", "triage", "wait-what", "wayfinder"];
43
+ const expectedModelInvoked = ["code-review", "codebase-design", "diagnosing-bugs", "domain-modeling", "grilling", "prototype", "resolving-merge-conflicts", "tdd", "writing-for-agents", "yss-research"];
44
44
  const expectedLifecycleModelInvoked = ["code-review", "codebase-design", "diagnosing-bugs", "domain-modeling", "grilling", "prototype", "tdd", "yss-research"];
45
45
  ensure(JSON.stringify(boundary?.user_invoked_skills) === JSON.stringify(expectedUserInvoked), "Matt user-invoked skills 清单不完整或已漂移");
46
46
  ensure(JSON.stringify(boundary?.lifecycle_managed_user_entries) === JSON.stringify(["setup-matt-pocock-skills", "grill-with-docs", "to-spec", "to-tickets", "implement"]), "生命周期管理的显式用户入口清单不完整");
@@ -53,10 +53,10 @@ function validateInvocationBoundary(data) {
53
53
  const result = data.workflow_execution_result;
54
54
  ensure(data.matt_skill_result?.status === "compatibility-read-only" && data.matt_skill_result?.may_influence_routing === false && data.matt_skill_result?.normalize_to === "workflow-execution-result-v1", "旧 Matt Skill Result 未限制为只读兼容 adapter");
55
55
  ensure(result?.canonical_output_schema === "workflow-execution-result-v1" && JSON.stringify(result?.accepted_input_schemas) === JSON.stringify(["workflow-execution-result-v1"]) && result?.legacy?.["matt-skill-result-v1"]?.status === "compatibility-read-only" && result.legacy["matt-skill-result-v1"].may_influence_routing === false && result.legacy["matt-skill-result-v1"].normalize_to === "workflow-execution-result-v1", "Workflow Execution Result 未将旧 Matt Skill Result 限制为只读兼容");
56
- ensure(includesAll(result?.required, ["result_schema", "work_unit", "workflow_reference", "result", "evidence_refs", "changed_artifacts", "new_impacts", "stale_candidates", "next_route", "blocking_signals"]) && includesAll(result?.result_values, ["completed", "blocked", "needs-human", "failed"]) && includesAll(result?.blocking_signals, ["drift", "new_impacts", "violation", "missing_evidence", "stale_candidates"]) && includesAll(result?.completed_requires_empty, ["new_impacts", "stale_candidates"]) && includesAll(result?.completed_requires_non_empty, ["evidence_refs"]) && result?.completed_requires_readable_evidence_refs === true && result?.evidence_ref_validation === "readable-or-resolvable" && result?.completed_requires_no_blocking_signals === true && includesAll(result?.workflow_reference?.required, ["source", "skill", "invocation_mode"]), "Workflow Execution Result 的完成态证据、阻断信号或 workflow_reference 契约不完整");
56
+ ensure(includesAll(result?.required, ["result_schema", "work_unit", "workflow_reference", "result", "context_reconciliation", "evidence_refs", "changed_artifacts", "new_impacts", "stale_candidates", "next_route", "blocking_signals"]) && includesAll(result?.result_values, ["completed", "blocked", "needs-human", "failed"]) && includesAll(result?.blocking_signals, ["drift", "new_impacts", "violation", "missing_evidence", "stale_candidates"]) && includesAll(result?.completed_requires_empty, ["new_impacts", "stale_candidates"]) && includesAll(result?.completed_requires_non_empty, ["evidence_refs"]) && result?.completed_requires_readable_evidence_refs === true && result?.evidence_ref_validation === "readable-or-resolvable" && result?.completed_requires_no_blocking_signals === true && result?.context_reconciliation?.creates_gate === false && includesAll(result?.workflow_reference?.required, ["source", "skill", "invocation_mode"]), "Workflow Execution Result 的完成态证据、阻断信号、context_reconciliation 或 workflow_reference 契约不完整");
57
57
  const native = data.lifecycle_native_entries;
58
58
  ensure(native?.default_entry === "yss-product-lifecycle" && native?.formal_artifact_owner === "yss-product-lifecycle", "生命周期原生入口未持有默认正式资产所有权");
59
- ensure(JSON.stringify(native?.user_confirmation_required_at) === JSON.stringify(["spec-baseline", "prototype-confirmation", "openapi-freeze", "merge-or-release"]), "生命周期人工门禁集合已漂移");
59
+ ensure(native?.user_confirmation_policy_ref === "docs/agents/digital-human-roles.yaml#user_decision_policy", "生命周期人工门禁集合已漂移");
60
60
  const routes = data.work_unit_routes;
61
61
  ensure(routes?.["work-unit.discovery-requirements"]?.skills?.includes("grilling") && routes?.["work-unit.discovery-requirements"]?.skills?.includes("domain-modeling"), "需求分析工作单元缺少 grilling/domain-modeling");
62
62
  ensure(routes?.["work-unit.discovery-opportunity"]?.route_by?.market_or_competitor_fact === "competitive-intelligence" && routes["work-unit.discovery-opportunity"].route_by.technical_or_standard_fact === "yss-research:technical-evidence" && routes["work-unit.discovery-opportunity"].route_by.strategy_fact === "yss-research:strategy-evidence", "机会调研事实路由不准确");
@@ -69,7 +69,7 @@ function validateInvocationBoundary(data) {
69
69
  ensure(JSON.stringify(Object.keys(prototypeRoute?.profile_contract?.profiles ?? {})) === JSON.stringify(["H1", "H2"]) && prototypeRoute?.version_boundary?.prototype_must_not_call === "yss-ui", "原型档位必须仅包含 H1/H2 并明确 yss-ui 边界");
70
70
  ensure(routes?.["work-unit.slice-implementation"]?.skills?.includes("tdd") && routes?.["work-unit.slice-implementation"]?.skills?.includes("yss-ui") && routes?.["work-unit.slice-implementation"]?.skills?.includes("yss-ui-business-page-generation"), "原生实现工作单元缺少 TDD、UI 或业务页面生成路由");
71
71
  const frontendRoute = routes?.["work-unit.slice-implementation"]?.frontend_route;
72
- ensure(frontendRoute?.primary_skill === "yss-ui" && frontendRoute?.page_generation_skill === "yss-ui-business-page-generation" && frontendRoute?.page_orchestration_skill === "yss-page-module-development", "前端实现路由缺少 yss-ui 主入口、业务页面生成或页面编排技能");
72
+ ensure(frontendRoute?.primary_skill === "yss-ui" && frontendRoute?.page_generation_skill === "yss-ui-business-page-generation" && frontendRoute?.page_orchestration_skill === "yss-ui-business-page-generation", "前端实现路由缺少 yss-ui 主入口或统一业务页面技能");
73
73
  for (const impact of ["api_impact", "formily_impact", "table_impact", "tree_impact", "height_impact", "export_impact", "theme_impact"]) {
74
74
  ensure(Array.isArray(frontendRoute?.conditional_skills?.[impact]) && frontendRoute.conditional_skills[impact].length > 0 && typeof frontendRoute.not_applicable_reasons?.[impact] === "string", `前端条件专项路由缺少 ${impact}`);
75
75
  }
@@ -105,8 +105,10 @@ function validateWorkflowExecutionResult(payload, contract, workUnitRoutes) {
105
105
  const workUnit = workUnitRoutes?.[payload.work_unit];
106
106
  ensure(workUnit, `未知 Workflow Execution Result work_unit: ${payload.work_unit}`);
107
107
  if (payload.result === "completed") {
108
- const routeResult = validateNextRoute(payload.work_unit, payload.next_route);
108
+ const routeResult = validateNextRoute(payload.work_unit, payload.next_route, payload);
109
109
  ensure(routeResult.result === "allowed", `Workflow Execution Result next_route 非法: ${routeResult.blocking_signals.join(", ")}`);
110
+ ensure(payload.context_reconciliation?.status === "reconciled", "project-instance 完成态必须具有 reconciled context_reconciliation");
111
+ ensure(hasText(payload.context_reconciliation?.ref) && payload.evidence_refs.includes(payload.context_reconciliation.ref) && exists(payload.context_reconciliation.ref), "context_reconciliation.ref 必须可读并包含在 evidence_refs 中");
110
112
  }
111
113
  const accepted = [workUnit.native, workUnit.compatibility].filter(Boolean);
112
114
  ensure(contract.workflow_reference.allowed_sources.includes(payload.workflow_reference.source) && accepted.some((route) => route.source === payload.workflow_reference.source && route.skill === payload.workflow_reference.skill && route.invocation_mode === payload.workflow_reference.invocation_mode), "Workflow Execution Result workflow_reference 与 work_unit route 不匹配");
@@ -121,6 +123,8 @@ function validateWorkflowExecutionResult(payload, contract, workUnitRoutes) {
121
123
  }
122
124
  if (payload.work_unit === "work-unit.slice-implementation" && payload.result === "completed") {
123
125
  const implementationState = {
126
+ user_decisions: payload.user_decisions,
127
+ slice_contract_ref: payload.slice_contract_ref,
124
128
  tracker_kind: payload.tracker_kind,
125
129
  predecessor_work_unit: payload.predecessor_work_unit,
126
130
  ready_for_agent: payload.ready_for_agent,
@@ -141,7 +145,7 @@ function validateWorkflowExecutionResult(payload, contract, workUnitRoutes) {
141
145
  // The scenario uses one explicit virtual fixture; arbitrary local refs
142
146
  // must still pass the real readability check and cannot use a fallback.
143
147
  exists: (ref) => exists(ref) || ref === "docs/.scratch/demo/issues/01-valid-slice.md" || ref === virtualTicketDecompositionRef,
144
- read: (ref) => ref === virtualTicketDecompositionRef ? virtualTicketDecomposition : readFileSync(path.join(root, ref), "utf8"),
148
+ read: (ref) => ref === virtualTicketDecompositionRef ? virtualTicketDecomposition : readFileSync(path.resolve(root, ref), "utf8"),
145
149
  });
146
150
  ensure(semantic.result === "allowed", `Workflow Execution Result implementation Ticket 语义非法: ${semantic.blocking_signals.join(", ")}`);
147
151
  }
@@ -256,11 +260,17 @@ export function runScenario(name) {
256
260
  const data = contract.toJS({ maxAliasCount: 0 });
257
261
  validateMattContract(data);
258
262
  validateInvocationBoundary(data);
263
+ const decisionTemp = mkdtempSync(path.join(os.tmpdir(), "matt-decision-test-"));
264
+ process.on("exit", () => rmSync(decisionTemp, { recursive: true, force: true }));
265
+ const specDecision = buildDecisionFixture(path.join(decisionTemp, "spec"));
266
+ const implementationDecision = buildImplementationFixture(path.join(decisionTemp, "implementation"), "docs/.scratch/demo/issues/01-valid-slice.md");
259
267
  const validResult = {
268
+ user_decisions: [specDecision.requirement],
260
269
  result_schema: "workflow-execution-result-v1",
261
270
  work_unit: "work-unit.spec-synthesis",
262
271
  workflow_reference: { source: "yss-product-lifecycle", skill: "yss-product-lifecycle", invocation_mode: "model-invoked" },
263
272
  result: "completed",
273
+ context_reconciliation: { status: "reconciled", ref: "docs/process/lifecycle-registry.yaml" },
264
274
  evidence_refs: ["docs/process/lifecycle-registry.yaml"],
265
275
  changed_artifacts: [],
266
276
  new_impacts: [],
@@ -279,6 +289,7 @@ export function runScenario(name) {
279
289
  validateWorkflowExecutionResult(validTicketResult, data.workflow_execution_result, data.work_unit_routes);
280
290
  const validImplementationResult = {
281
291
  ...validResult,
292
+ ...implementationDecision.state,
282
293
  evidence_refs: [virtualTicketDecompositionRef, "docs/process/lifecycle-registry.yaml"],
283
294
  work_unit: "work-unit.slice-implementation",
284
295
  next_route: "work-unit.code-review",
@@ -324,6 +335,8 @@ export function runScenario(name) {
324
335
  validateWorkflowExecutionResult(compatibleResult, data.workflow_execution_result, data.work_unit_routes);
325
336
  for (const mutate of [
326
337
  (item) => { delete item.workflow_reference; },
338
+ (item) => { delete item.context_reconciliation; },
339
+ (item) => { item.context_reconciliation.status = "blocked"; },
327
340
  (item) => { item.evidence_refs = []; },
328
341
  (item) => { item.evidence_refs = ["docs/process/not-found.md"]; },
329
342
  (item) => { item.blocking_signals = ["drift"]; },
@@ -344,7 +357,7 @@ export function runScenario(name) {
344
357
  } catch { metadataRejected = true; }
345
358
  ensure(metadataRejected, "user-invoked front matter 变异未被 baseline oracle 拒绝");
346
359
  const mutations = [
347
- (item) => { delete item.entry_routing.direct_matt_entry.return_to_orchestrator; },
360
+ (item) => { delete item.entry_routing.formal_user_entry.return_to_orchestrator; },
348
361
  (item) => { item.entry_routing.formal_user_entry.lifecycle_artifact_write = "forbidden"; },
349
362
  (item) => { item.matt_invocation_boundary.user_invoked_skills.push("unexpected-user-entry"); },
350
363
  (item) => { item.setup_readiness.lifecycle_may_invoke_setup = true; },
@@ -14,7 +14,19 @@ function fail(message) {
14
14
  export function validateSkillGovernance({ read = (relative) => readFileSync(path.join(ROOT, relative), "utf8"), exists = (relative) => existsSync(path.join(ROOT, relative)) } = {}) {
15
15
  const globalRules = read(".agents/rules/yss-ai-skills.md");
16
16
  const tableSkill = read(".agents/skills/ytable-usage/SKILL.md");
17
- const pageSkill = read(".agents/skills/yss-page-module-development/SKILL.md");
17
+ const pageSkill = read(".agents/skills/yss-ui-business-page-generation/SKILL.md");
18
+
19
+ for (const marker of ["trigger: always_on", "docs/agents/yss-skill-registry.yaml", ".agents/skills/yss-ui/SKILL.md", "原型阶段"]) {
20
+ if (!globalRules.includes(marker)) fail(`YSS UI 薄入口缺少路由标记: ${marker}`);
21
+ }
22
+ for (const staleHeading of ["## Available Skills", "## Mandatory Workflow"]) {
23
+ if (globalRules.includes(staleHeading)) fail(`YSS UI 薄入口不得回流技能清单或实现步骤: ${staleHeading}`);
24
+ }
25
+ const cursorRules = read(".cursorrules");
26
+ for (const marker of ["yss-project.yaml", "docs/agents/yss-skill-registry.yaml", "yss-ui-business-page-generation", ".cursor/skills"]) {
27
+ if (!cursorRules.includes(marker)) fail(`Cursor 薄入口缺少路由标记: ${marker}`);
28
+ }
29
+ if (cursorRules.includes("YSS AI SKILLS START")) fail("Cursor 薄入口不得回流技能清单");
18
30
 
19
31
  if (/toolbar-config\.custom.{0,30}(必须|必需)|必须.{0,30}toolbar-config\.custom/.test(globalRules)) {
20
32
  fail("全局规则不得把 toolbar-config.custom 作为无条件要求");
@@ -25,8 +37,8 @@ export function validateSkillGovernance({ read = (relative) => readFileSync(path
25
37
  for (const marker of ["无需配置 `:toolbar-config=\"{ custom: true }\"`", "仅在业务明确需要列设置时才传入"]) {
26
38
  if (!tableSkill.includes(marker)) fail(`YTable 专项技能缺少条件化工具栏规则: ${marker}`);
27
39
  }
28
- if (!pageSkill.includes("只有确实需要列设置时才启用 `toolbar-config.custom`")) {
29
- fail("页面模块 canonical 技能缺少条件化 toolbar-config 规则");
40
+ if (!pageSkill.includes("仅在业务明确需要列设置时才传入")) {
41
+ fail("业务页面 canonical 技能缺少条件化 toolbar-config 规则");
30
42
  }
31
43
 
32
44
  const yssUiManifest = validateYssUiSkillManifest(JSON.parse(read(".agents/skills/.yss-skills-manifest.json")));
@@ -64,9 +76,9 @@ export function validateSkillGovernance({ read = (relative) => readFileSync(path
64
76
  }
65
77
 
66
78
  const strategicManifest = validateStrategicDesignSkillManifest(JSON.parse(read(".agents/skills/.strategic-design-skills-manifest.json")));
67
- const strategicIds = ["prototype-review", "yss-prototype-stage", "yss-design-system", "yss-antd-design", "yss-stage-decision"];
79
+ const strategicIds = ["prototype-review", "yss-prototype-stage", "yss-design-system", "yss-antd-design", "yss-antdv-next-design", "yss-stage-decision"];
68
80
  if (JSON.stringify(strategicManifest.skills.map(({ canonical }) => canonical).sort()) !== JSON.stringify(strategicIds.slice().sort())) {
69
- fail("战略设计 skills 清单必须恰好覆盖五项公共技能");
81
+ fail("战略设计 skills 清单必须恰好覆盖六项公共技能");
70
82
  }
71
83
  for (const skill of strategicManifest.skills) {
72
84
  if (isTemplateSource(ROOT)) {
@@ -86,11 +98,14 @@ export function validateSkillGovernance({ read = (relative) => readFileSync(path
86
98
  const registry = loadSkillRegistry();
87
99
  const canonicalIds = new Set(registry.skills.map((skill) => skill.id));
88
100
  const aliases = new Map(registry.skills.flatMap((skill) => skill.aliases.map((alias) => [alias, skill.id])));
89
- const legacy = new Set(["api-integration", "page-module-development", "use-table-height", "use-tree-height"]);
101
+ const legacy = new Set(["api-integration", "use-table-height", "use-tree-height"]);
90
102
  for (const alias of legacy) {
91
103
  if (exists(`.agents/skills/${alias}`)) fail(`legacy alias 不得存在独立 canonical 目录: ${alias}`);
92
104
  if (!aliases.has(alias)) fail(`legacy alias 未登记: ${alias}`);
93
105
  }
106
+ if (exists(".agents/skills/page-module-development") || exists(".agents/skills/yss-page-module-development") || aliases.has("page-module-development")) {
107
+ fail("page-module-development / yss-page-module-development 已退役,不得保留物理目录或运行时 alias");
108
+ }
94
109
  if (exists(".agents/skills/high-fidelity-html-prototype") || aliases.has("high-fidelity-html-prototype")) {
95
110
  fail("high-fidelity-html-prototype 已退役,不得保留物理目录或运行时 alias");
96
111
  }
@@ -99,14 +114,14 @@ export function validateSkillGovernance({ read = (relative) => readFileSync(path
99
114
  const prototypeEvidence = read("docs/design/templates/prototype-evidence-template.yaml");
100
115
  const projectDesign = read("docs/design/design.md");
101
116
  const antdvCompatibility = read(".agents/skills/yss-ui/references/antdv-compatibility.md");
102
- for (const marker of ["product-design-adapter.md", "schema v3", "H1", "H2", "原型阶段不得调用 `yss-ui`"]) {
117
+ for (const marker of ["product-design-adapter.md", "Prototype Evidence schema v4", "Visual Baseline schema v1", "H1", "H2", "原型阶段不得调用 `yss-ui`"]) {
103
118
  if (!prototypeStage.includes(marker)) fail(`原型阶段合同缺少 YSS adapter 标记: ${marker}`);
104
119
  }
105
- for (const marker of ["prepare-static", "prepare-flow", "fact pack", "ConfigProvider", "1440x900", "390x844"]) {
120
+ for (const marker of ["prepare-static", "prepare-flow", "vue-antdv-next", "react-antd-6", "fact pack", "ConfigProvider", "1440x900", "390x844"]) {
106
121
  if (!prototypeAdapter.includes(marker)) fail(`Product Design adapter 缺少执行约束: ${marker}`);
107
122
  }
108
- for (const marker of ["schema_version: 3", "prototype_profile", "visual_review", "flow_review", "implementation_handoff", "project_token_baseline_digest", "verification/design-qa.md"]) {
109
- if (!prototypeEvidence.includes(marker)) fail(`原型证据模板缺少 schema v3 字段: ${marker}`);
123
+ for (const marker of ["schema_version: 4", "visual_baseline", "prototype_profile", "visual_review", "flow_review", "implementation_handoff", "project_token_baseline_digest", "verification/design-qa.md"]) {
124
+ if (!prototypeEvidence.includes(marker)) fail(`原型证据模板缺少 schema v4 字段: ${marker}`);
110
125
  }
111
126
  if (prototypeEvidence.includes("与官方 #1677ff / Inter / 8px")) fail("原型证据模板仍把 Inter/8px 误写为官方 v6 默认差异");
112
127
  if (projectDesign.includes("`antdv6-design.md`")) fail("design.md 仍引用不存在的 antdv6-design.md");
@@ -359,7 +359,7 @@ export function validateSkillRegistry(registry, { lock, compilerContract, lifecy
359
359
  for (const mode of capability.task_modes) if (!TASK_MODES.has(mode)) fail(`${capability.id} 使用未知 task mode: ${mode}`);
360
360
  capabilitySkills.add(capability.primary_skill);
361
361
  }
362
- for (const skill of skills.filter((item) => item.impacts.includes("backend"))) {
362
+ for (const skill of skills.filter((item) => item.impacts.includes("backend") && item.maturity !== "deprecated")) {
363
363
  if (!capabilitySkills.has(skill.id)) fail(`backend skill 缺少 capability: ${skill.id}`);
364
364
  }
365
365
 
@@ -10,7 +10,7 @@ const LOCK_PATH = path.join(ROOT, "skills-lock.json");
10
10
  const YSS_UI_MANIFEST_PATH = path.join(SOURCE_ROOT, ".yss-skills-manifest.json");
11
11
  const STRATEGIC_DESIGN_MANIFEST_PATH = path.join(SOURCE_ROOT, ".strategic-design-skills-manifest.json");
12
12
  export const PROJECTION_ROOTS = [".claude/skills", ".codex/skills", ".cursor/skills", ".pi/skills", ".qoder/skills", ".trae/skills"];
13
- export const OBSOLETE = new Set(["to-" + "prd", "to-" + "issues", "design-an-interface", "qa", "request-refactor-plan", "ubiquitous-language", "edit-article", "obsidian-vault", "writing-great-skills", "code-review-process", "yss-domain-modeling", "yss-dir", "yss-duckdb", "yss-file", "yss-filerunner", "yss-db2mybatis", "yss-mail", "yss-mapper-dynamic", "yss-quality", "yss-sql-condition", "yss-sql-tpl", "yss-valuation", "yss-variable", "yss-openapi", "web-design-engineer", "web-video-presentation", "wireframe-prototype", "wizard", "git-guardrails-claude-code", "claude-handoff", "batch-grill-me", "product-design-prototype", "research", "yss-dictionary", "yss-jdbc", "yss-log", "yss-taskflow", "yss-backend-scaffold-application", "yss-backend-scaffold-domain", "yss-backend-scaffold-infrastructure", "yss-backend-scaffold-web", "yss-router", "yss-source-index"]);
13
+ export const OBSOLETE = new Set(["to-" + "prd", "to-" + "issues", "design-an-interface", "qa", "request-refactor-plan", "ubiquitous-language", "edit-article", "obsidian-vault", "writing-great-skills", "code-review-process", "yss-domain-modeling", "yss-dir", "yss-duckdb", "yss-file", "yss-filerunner", "yss-db2mybatis", "yss-mail", "yss-mapper-dynamic", "yss-quality", "yss-sql-condition", "yss-sql-tpl", "yss-valuation", "yss-variable", "yss-openapi", "web-design-engineer", "web-video-presentation", "wireframe-prototype", "wizard", "git-guardrails-claude-code", "claude-handoff", "batch-grill-me", "product-design-prototype", "research", "ask-matt", "dispatching-parallel-agents", "loop-me", "migrate-to-shoehorn", "prototype-page-acceptance", "scaffold-exercises", "setup-pre-commit", "setup-ts-deep-modules", "teach", "writing-beats", "writing-fragments", "writing-shape", "yss-microapp-commit", "yss-page-module-development", "yss-dictionary", "yss-jdbc", "yss-log", "yss-taskflow", "yss-backend-scaffold-application", "yss-backend-scaffold-domain", "yss-backend-scaffold-infrastructure", "yss-backend-scaffold-web", "yss-router", "yss-source-index"]);
14
14
  export function obsoleteCanonicalResidues(names, obsolete = OBSOLETE) {
15
15
  return names.filter((name) => obsolete.has(name)).sort();
16
16
  }
@@ -0,0 +1,76 @@
1
+ import { existsSync, readdirSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { spawnSync } from 'node:child_process';
4
+ import { openBundle } from './strategic-handoff.mjs';
5
+ import { read, safe, ensure, ROOT, digest, project } from './strategic-handoff-io.mjs';
6
+ import { parseContextContract } from './context-contract.mjs';
7
+ const present=x=>typeof x==='string'&&x.trim();
8
+ const list=x=>Array.isArray(x)&&x.length&&x.every(present);
9
+ const without=(value,keys)=>Object.fromEntries(Object.entries(value).filter(([key])=>!keys.includes(key)));
10
+ const strategyBasis=value=>({
11
+ ...without(value,['domain_version','approval','rule_catalog','scenarios','invariants']),
12
+ invariants:(value.invariants||[]).map(item=>without(item,['statement'])),
13
+ });
14
+ export async function verifyConsumption(data,{root=process.cwd(),sliceRef}={}) {
15
+ project(root);
16
+ if (sliceRef) ensure(data.status === "approved", "切片只能消费 approved 战术合同");
17
+ const binding=data.strategic_handoff;
18
+ ensure(binding && present(binding.import_receipt_ref) && present(binding.context_reconciliation_ref),'缺少战略交接导入收据与目标对账引用');
19
+ const receipt=read(safe(root,binding.import_receipt_ref));
20
+ const expectedBase=`docs/handoffs/${receipt.bundle_id}/${receipt.version}`;
21
+ ensure(binding.import_receipt_ref===`${expectedBase}/import-receipt.json` && receipt.package_ref===`${expectedBase}/package`,'导入收据路径与包身份不一致');
22
+ ensure(binding.bundle_digest===receipt.bundle_digest,'战术绑定与导入收据摘要不一致');
23
+ const result=spawnSync(process.execPath,[path.join(ROOT,'scripts/verify-context-reconciliation'),'--root',root,safe(root,binding.context_reconciliation_ref)],{encoding:'utf8'});
24
+ ensure(result.status===0,`目标术语对账未通过: ${result.error?.message || result.stderr}`);
25
+ const context=parseContextContract({root});
26
+ const parent=safe(root,`docs/handoffs/${receipt.bundle_id}`);
27
+ const versions=readdirSync(parent).filter(x=>/^v[1-9][0-9]*$/.test(x)&&existsSync(path.join(parent,x,'import-receipt.json'))).sort((a,b)=>Number(b.slice(1))-Number(a.slice(1)));
28
+ const latestReceipt=read(safe(root,`docs/handoffs/${receipt.bundle_id}/${versions[0]}/import-receipt.json`));
29
+ ensure(latestReceipt.version===versions[0]&&latestReceipt.package_ref===`docs/handoffs/${receipt.bundle_id}/${versions[0]}/package`,'最新收据路径无效');
30
+ return openBundle(safe(root,receipt.package_ref),async original=>{
31
+ ensure(original.manifest.bundle_digest===receipt.bundle_digest,'导入收据与包不一致');
32
+ return openBundle(safe(root,latestReceipt.package_ref),async current=>{
33
+ ensure(current.manifest.bundle_id===receipt.bundle_id && current.manifest.bundle_digest===latestReceipt.bundle_digest,'最新导入收据无效');
34
+ for(const op of ['added','updated'])for(const term of current.handoff.context_delta[op]) {
35
+ const actual=context.terms_by_ref.get(term.term_ref);ensure(actual,`目标缺少术语: ${term.term_ref}`);
36
+ for(const key of ['term','meaning','english_identifier','context_id','forbidden_aliases'])ensure(digest(actual[key])===digest(term[key]),`目标术语未对账: ${term.term_ref}`);
37
+ }
38
+ for(const term of current.handoff.context_delta.deprecated)ensure(!context.terms_by_ref.has(term.term_ref),`目标尚未处理废弃术语: ${term.term_ref}`);
39
+ ensure(Array.isArray(binding.rows),'缺少逐条承接 rows');
40
+ const known=new Map([...current.indexes.rules.map(x=>[x.rule_id,x]),...current.indexes.scenarios.filter(x=>x.critical).map(x=>[x.scenario_id,x])]);
41
+ const rows=new Map();for(const row of binding.rows){ensure(!rows.has(row.source_id),`重复承接: ${row.source_id}`);rows.set(row.source_id,row);}
42
+ const issues=[], blocked=new Set();let all=false;
43
+ const mark=(id,reason,row)=>{issues.push({source_id:id,reason});if(row?.dependency_status!=='known'||!list(row.dependent_slice_refs))all=true;else row.dependent_slice_refs.forEach(x=>blocked.add(x));};
44
+ const catalogs=['aggregate_catalog','entity_catalog','value_object_catalog','behavior_catalog','invariant_catalog','state_transition_catalog','domain_event_catalog','gateway_catalog'];
45
+ const ids=new Set(catalogs.flatMap(k=>(data[k]||[]).flatMap(x=>Object.entries(x).filter(([k])=>k.endsWith('_id')).map(([,v])=>v))));
46
+ const seams=new Map((data.test_seams||[]).map(x=>[x.seam_id,x]));
47
+ for(const[id,source]of known){
48
+ const row=rows.get(id);
49
+ if(!row){mark(id,'missing-mapping');continue;}
50
+ ensure(['known','unknown'].includes(row.dependency_status) && Array.isArray(row.dependent_slice_refs),'缺少切片依赖判定');
51
+ if(row.source_digest!==source.source_digest){mark(id,'stale-source',row);continue;}
52
+ if(row.disposition==='implemented'){
53
+ ensure(list(row.tactical_refs)&&row.tactical_refs.every(x=>ids.has(x)),`战术落点悬空: ${id}`);
54
+ ensure(list(row.test_seam_refs)&&row.test_seam_refs.every(x=>seams.has(x)&&row.tactical_refs.includes(seams.get(x).subject_ref)),`测试 seam 未关联战术落点: ${id}`);
55
+ if(id.startsWith('scenario.'))ensure(['success','failure'].every(outcome=>(row.scenario_tests||[]).some(x=>x.outcome===outcome&&row.test_seam_refs.includes(x.seam_ref))),`关键场景缺少成功/失败测试: ${id}`);
56
+ ensure(list(row.evidence_refs),`缺少落实证据: ${id}`);row.evidence_refs.forEach(ref=>safe(root,ref));
57
+ }else if(row.disposition==='deferred'){
58
+ for(const key of ['reason','risk','owner','followup_ticket_ref','verification_plan','target_version'])ensure(present(row[key]),`延期缺少 ${key}: ${id}`);
59
+ mark(id,'deferred',row);
60
+ }else if(row.disposition==='not-applicable'){
61
+ ensure(present(row.reason)&&list(row.evidence_refs),`不适用缺少依据: ${id}`);row.evidence_refs.forEach(ref=>safe(root,ref));
62
+ }else {ensure(['pending','conflict'].includes(row.disposition),`非法承接状态: ${id}`);mark(id,row.disposition,row);}
63
+ }
64
+ for(const[id,row]of rows)if(!known.has(id))mark(id,'removed-or-unknown-source',row);
65
+ for(const key of ['spec_ref','prototype_ref','visual_baseline_ref','business_ticket_set_ref'])if(original.handoff.source[key].digest!==current.handoff.source[key].digest){all=true;issues.push({source_id:key,reason:'upstream-asset-stale'});}
66
+ // Rule changes can be scoped to declared dependencies. Boundary/decision or
67
+ // runnable-prototype changes need the tactical contract rebound as a whole.
68
+ const stageKeys=['package_version','approval','domain_strategy_ref'];
69
+ if(digest(strategyBasis(original.strategy))!==digest(strategyBasis(current.strategy)) || digest(without(original.stage,stageKeys))!==digest(without(current.stage,stageKeys)) || digest(original.config.prototype)!==digest(current.config.prototype)) {
70
+ all=true;issues.push({source_id:'strategic-design-basis',reason:'upstream-design-stale'});
71
+ }
72
+ const blockedHere=all||(sliceRef?blocked.has(sliceRef):issues.length>0);
73
+ return {result:blockedHere?'blocked':'verified',bundle_digest:current.manifest.bundle_digest,consumed_bundle_digest:receipt.bundle_digest,tactical_digest:digest(data),scope:sliceRef||'whole-tactical-design',coverage_complete:[...known.keys()].every(id=>rows.has(id)),block_all:all,blocked_slice_refs:[...blocked].sort(),issues};
74
+ });
75
+ });
76
+ }
@@ -0,0 +1,75 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, lstatSync, readdirSync, readFileSync, mkdirSync, writeFileSync, realpathSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { spawnSync } from 'node:child_process';
5
+ import { fileURLToPath } from 'node:url';
6
+ import { parseDocument } from '../vendor/yaml.mjs';
7
+ export const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..');
8
+ export const ensure = (condition, message) => { if (!condition) throw new TypeError(message); };
9
+ export const canonical = value => Array.isArray(value) ? value.map(canonical) : value && typeof value === 'object' ? Object.fromEntries(Object.keys(value).sort().map(k => [k, canonical(value[k])])) : value;
10
+ export const hash = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
11
+ export const digest = value => hash(JSON.stringify(canonical(value)));
12
+ export const json = value => `${JSON.stringify(canonical(value), null, 2)}\n`;
13
+ export function parse(bytes) {
14
+ const doc = parseDocument(String(bytes), { uniqueKeys: true, maxAliasCount: 0 });
15
+ ensure(!doc.errors.length, `YAML/JSON 无效: ${doc.errors[0]?.message}`);
16
+ return doc.toJS({ maxAliasCount: 0 });
17
+ }
18
+ export const read = file => parse(readFileSync(file, 'utf8'));
19
+ export function relative(ref) {
20
+ ensure(typeof ref === 'string' && ref.length > 0 && !/[\\\x00-\x1f:#?]/.test(ref) && !path.posix.isAbsolute(ref) && !ref.split('/').some(x => !x || x === '.' || x === '..') && !/[. ]$/.test(ref), `非法相对路径: ${ref}`);
21
+ return ref;
22
+ }
23
+ export function safe(root, ref, { missing = false } = {}) {
24
+ relative(ref);
25
+ let current = path.resolve(root);
26
+ ensure(!existsSync(current) || !lstatSync(current).isSymbolicLink(), `根目录不能是 symlink: ${root}`);
27
+ for (const part of ref.split('/')) {
28
+ current = path.join(current, part);
29
+ if (existsSync(current)) ensure(!lstatSync(current).isSymbolicLink(), `禁止 symlink: ${ref}`);
30
+ else ensure(missing, `文件不可读: ${ref}`);
31
+ }
32
+ return current;
33
+ }
34
+ export function files(root, prefix = '') {
35
+ const base = prefix ? safe(root, prefix) : root;
36
+ return readdirSync(base).sort().flatMap(name => {
37
+ const ref = prefix ? `${prefix}/${name}` : name;
38
+ const full = safe(root, ref), st = lstatSync(full);
39
+ ensure(st.isFile() || st.isDirectory(), `不支持的文件类型: ${ref}`);
40
+ return st.isDirectory() ? files(root, ref) : [ref];
41
+ });
42
+ }
43
+ export const treeDigest = (root, prefix) => digest(files(root, prefix).map(ref => ({ path: path.posix.relative(prefix, ref), sha256: hash(readFileSync(safe(root, ref))) })));
44
+ export function write(root, ref, bytes) {
45
+ const file = safe(root, ref, { missing: true });
46
+ mkdirSync(path.dirname(file), { recursive: true }); writeFileSync(file, bytes, { flag: 'wx' });
47
+ }
48
+ export function project(root) {
49
+ const value = read(safe(root, 'yss-project.yaml'));
50
+ ensure(value.schema_version === 1 && value.repository_mode === 'project-instance', '只允许 project-instance 导出或导入业务包');
51
+ return realpathSync(root);
52
+ }
53
+ export function schema(value, ref) {
54
+ const program = 'import json,sys; from jsonschema import Draft202012Validator; s=json.load(open(sys.argv[1])); v=json.load(sys.stdin); errors=list(Draft202012Validator(s).iter_errors(v)); print("\\n".join(str(e) for e in errors)); sys.exit(bool(errors))';
55
+ const out = spawnSync('python3', ['-c', program, safe(ROOT, ref)], { input: JSON.stringify(value), encoding: 'utf8', maxBuffer: 4 * 1024 * 1024 });
56
+ ensure(out.status === 0, `schema 校验失败: ${out.error?.message || out.stdout || out.stderr}`);
57
+ }
58
+ export function archive(command, source, destination) {
59
+ const out = spawnSync('python3', [path.join(ROOT, 'scripts/lib/strategic-handoff-zip.py'), command, source, destination], { encoding: 'utf8' });
60
+ ensure(out.status === 0, `ZIP 操作失败: ${out.error?.message || out.stderr}`);
61
+ }
62
+
63
+ // Preserve the source profile's legacy product-confirmation semantics when a newer
64
+ // receiver no longer has that bucket. This does not change source bytes or gates.
65
+ export function sourceApprovalPolicy(source) {
66
+ const roles=structuredClone(source);
67
+ roles.user_decision_policy ||= {gates:[]};
68
+ const policy=roles.gate_policy;
69
+ for(const gate of policy.product_digital_human_with_biological_veto || []) {
70
+ if(!(policy.biological_human||[]).includes(gate) && !(policy.digital_human_review||[]).some(x=>x.gate===gate) && !(policy.dual_digital_human||[]).some(x=>x.gate===gate)) {
71
+ policy.digital_human_review ||= [];policy.digital_human_review.push({gate,countersigners:['role.product-manager']});
72
+ }
73
+ }
74
+ return roles;
75
+ }
@@ -0,0 +1,37 @@
1
+ import { ensure, digest } from './strategic-handoff-io.mjs';
2
+ const nonempty = value => typeof value === 'string' && value.trim();
3
+ const strings = value => Array.isArray(value) && value.length && value.every(nonempty);
4
+ export function extractTraceability(strategy) {
5
+ ensure(strategy.traceability_version === 1, 'migration-required: 导出前必须补齐 traceability_version: 1、稳定规则 ID 与场景关联并重新批准');
6
+ ensure(Array.isArray(strategy.rule_catalog) && strategy.rule_catalog.length, 'rule_catalog 不能为空');
7
+ const contexts = new Set((strategy.contexts || []).map(x => x.context_id));
8
+ const rules = new Map(), scenarios = new Map(), used = new Set();
9
+ for (const rule of strategy.rule_catalog) {
10
+ ensure(/^rule\.[a-z0-9][a-z0-9-]*$/.test(rule.rule_id) && !rules.has(rule.rule_id), `规则 ID 无效或重复: ${rule.rule_id}`);
11
+ ensure(nonempty(rule.statement) && contexts.has(rule.responsible_context) && rule.status === 'confirmed', `规则未确认或责任区无效: ${rule.rule_id}`);
12
+ rules.set(rule.rule_id, { ...rule, source_digest: digest(rule) });
13
+ }
14
+ ensure(Array.isArray(strategy.scenarios) && strategy.scenarios.length, 'scenarios 不能为空');
15
+ for (const scenario of strategy.scenarios) {
16
+ const id = scenario.scenario_id;
17
+ ensure(/^scenario\.[a-z0-9][a-z0-9-]*$/.test(id) && !scenarios.has(id), `场景 ID 无效或重复: ${id}`);
18
+ ensure(scenario.status === 'confirmed' && typeof scenario.critical === 'boolean' && contexts.has(scenario.responsible_context), `场景必须已确认并明确 critical 与责任区: ${id}`);
19
+ ensure(strings(scenario.rule_refs) && new Set(scenario.rule_refs).size === scenario.rule_refs.length, `场景缺少唯一 rule_refs: ${id}`);
20
+ ensure(strings(scenario.commands) && strings(scenario.success_results) && strings(scenario.failure_results), `场景缺成功/失败路径: ${id}`);
21
+ for (const ref of scenario.rule_refs) { ensure(rules.has(ref), `场景规则悬空: ${ref}`); used.add(ref); }
22
+ ensure(JSON.stringify([...(scenario.rules || [])].sort()) === JSON.stringify(scenario.rule_refs.map(ref => rules.get(ref).statement).sort()), `场景规则正文与 rule_refs 不一致: ${id}`);
23
+ scenarios.set(id, { ...scenario, source_digest: digest(scenario) });
24
+ }
25
+ for (const inv of strategy.invariants || []) {
26
+ ensure(rules.has(inv.rule_ref) && rules.get(inv.rule_ref).statement === inv.statement, `不变量必须关联一致的源规则: ${inv.invariant_id}`);
27
+ ensure(strings(inv.scenario_refs) && inv.scenario_refs.every(ref => scenarios.has(ref) && scenarios.get(ref).rule_refs.includes(inv.rule_ref)), `不变量场景引用未覆盖规则: ${inv.invariant_id}`);
28
+ used.add(inv.rule_ref);
29
+ }
30
+ ensure([...rules.keys()].every(ref => used.has(ref)), '存在未关联场景/不变量的规则');
31
+ return { rules: [...rules.values()].sort((a,b) => a.rule_id.localeCompare(b.rule_id)), scenarios: [...scenarios.values()].sort((a,b) => a.scenario_id.localeCompare(b.scenario_id)) };
32
+ }
33
+ export function compareIndexes(current, previous) {
34
+ const index = data => new Map([...data.rules.map(x => [x.rule_id, x.source_digest]), ...data.scenarios.map(x => [x.scenario_id, x.source_digest])]);
35
+ const now = index(current), old = index(previous || { rules: [], scenarios: [] });
36
+ return { added: [...now.keys()].filter(k => !old.has(k)).sort(), updated: [...now.keys()].filter(k => old.has(k) && now.get(k) !== old.get(k)).sort(), removed: [...old.keys()].filter(k => !now.has(k)).sort() };
37
+ }
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env python3
2
+ """ZIP transport only; no package-supplied code is executed."""
3
+ import os, stat, sys, zipfile
4
+ from pathlib import Path, PurePosixPath
5
+ MAX_BYTES = 512 * 1024 * 1024
6
+ MAX_FILES = 20000
7
+
8
+ def checked(name):
9
+ if not name or '\\' in name or ':' in name or any(ord(c) < 32 for c in name) or name.startswith('/') or any(p in ('', '.', '..') for p in name.split('/')):
10
+ raise ValueError('invalid ZIP path: ' + name)
11
+ return name
12
+
13
+ def main():
14
+ command, source, destination = sys.argv[1:]
15
+ source, destination = Path(source), Path(destination)
16
+ if command == 'pack':
17
+ with zipfile.ZipFile(destination, 'x', compression=zipfile.ZIP_DEFLATED) as z:
18
+ for file in sorted(source.rglob('*')):
19
+ if file.is_symlink(): raise ValueError('symlink is forbidden')
20
+ if not file.is_file(): continue
21
+ info = zipfile.ZipInfo(checked(file.relative_to(source).as_posix()), (1980, 1, 1, 0, 0, 0))
22
+ info.external_attr = (stat.S_IFREG | 0o644) << 16
23
+ info.compress_type = zipfile.ZIP_DEFLATED
24
+ z.writestr(info, file.read_bytes())
25
+ elif command == 'unpack':
26
+ with zipfile.ZipFile(source) as z:
27
+ entries = z.infolist()
28
+ if len(entries) > MAX_FILES or sum(i.file_size for i in entries) > MAX_BYTES: raise ValueError('ZIP size limit')
29
+ seen = set()
30
+ for item in entries:
31
+ name = checked(item.filename)
32
+ folded = name.casefold()
33
+ if folded in seen: raise ValueError('duplicate/case-colliding ZIP entry')
34
+ seen.add(folded)
35
+ mode = item.external_attr >> 16
36
+ if item.is_dir() or stat.S_ISLNK(mode) or (stat.S_IFMT(mode) not in (0, stat.S_IFREG)): raise ValueError('only regular files allowed')
37
+ if item.flag_bits & 1: raise ValueError('encrypted ZIP not supported')
38
+ for item in entries:
39
+ file = destination.joinpath(*PurePosixPath(item.filename).parts)
40
+ file.parent.mkdir(parents=True, exist_ok=True)
41
+ with file.open('xb') as out, z.open(item) as incoming:
42
+ total = 0
43
+ while chunk := incoming.read(1024 * 1024):
44
+ total += len(chunk)
45
+ if total > item.file_size or total > MAX_BYTES: raise ValueError('ZIP expanded size limit')
46
+ out.write(chunk)
47
+ else: raise ValueError('unknown ZIP command')
48
+ if __name__ == '__main__':
49
+ try: main()
50
+ except Exception as error:
51
+ print(str(error), file=sys.stderr)
52
+ sys.exit(1)