create-yss-spec 3.0.1 → 3.1.3

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 (1348) hide show
  1. package/README.md +117 -91
  2. package/bin/create-yss-spec.js +11 -3
  3. package/package.json +9 -2
  4. package/src/api/_sync-service.js +191 -0
  5. package/src/api/index.js +22 -0
  6. package/src/api/project-diff.js +9 -0
  7. package/src/api/project-doctor.js +10 -0
  8. package/src/api/template-apply.js +10 -0
  9. package/src/api/template-plan.js +9 -0
  10. package/src/cli/args.js +60 -0
  11. package/src/cli/error-output.js +52 -0
  12. package/src/cli/flags.js +9 -0
  13. package/src/cli/help.js +95 -0
  14. package/src/cli/index.js +82 -0
  15. package/src/cli/plan-output.js +61 -0
  16. package/src/cli/prompts.js +91 -0
  17. package/src/cli/router.js +41 -0
  18. package/src/cli.js +5 -2253
  19. package/src/commands/attach.js +280 -0
  20. package/src/commands/diff.js +23 -0
  21. package/src/commands/doctor.js +417 -0
  22. package/src/commands/init.js +193 -0
  23. package/src/commands/sync.js +146 -0
  24. package/src/commands/update.js +14 -0
  25. package/src/contracts/apply-result-v1.json +45 -0
  26. package/src/contracts/customization-policy-v1.json +28 -0
  27. package/src/contracts/doctor-report-v1.json +29 -0
  28. package/src/contracts/error-envelope-v1.json +24 -0
  29. package/src/contracts/generator-policy-v1.json +24 -0
  30. package/src/contracts/ownership-policy-v1.json +40 -0
  31. package/src/contracts/plan-schema-v1.json +115 -0
  32. package/src/family-identity.js +365 -0
  33. package/src/family-runtime.js +23 -0
  34. package/src/filesystem/apply-plan.js +44 -0
  35. package/src/filesystem/copy-path.js +28 -0
  36. package/src/filesystem/path-utils.js +67 -0
  37. package/src/filesystem/transaction-runner.js +41 -0
  38. package/src/filesystem/transaction.js +153 -0
  39. package/src/git/submodule.js +115 -0
  40. package/src/git/worktree.js +69 -0
  41. package/src/template/attach-planner-runtime.js +51 -0
  42. package/src/template/attach-planner.js +160 -0
  43. package/src/template/instance-runtime.js +463 -0
  44. package/src/template/lifecycle-metadata.js +99 -0
  45. package/src/template/lifecycle-policy.js +129 -0
  46. package/src/template/lifecycle-runtime.js +90 -0
  47. package/src/template/migration-planner.js +95 -0
  48. package/src/template/migration-runtime.js +247 -0
  49. package/src/template/ownership-metadata.js +79 -0
  50. package/src/template/ownership-policy.js +149 -0
  51. package/src/template/ownership-runtime.js +109 -0
  52. package/src/template/plan-schema.js +36 -0
  53. package/src/template/sync-planner-runtime.js +57 -0
  54. package/src/template/sync-planner.js +206 -0
  55. package/src/template/verification-runtime.js +154 -0
  56. package/src/validation/identity.js +41 -0
  57. package/src/validation/metadata.js +105 -0
  58. package/src/validation/security.js +67 -0
  59. package/src/validation/snapshot.js +47 -0
  60. package/template/.agents/rules/yss-ai-skills.md +3 -55
  61. package/template/.agents/skills/.strategic-design-skills-manifest.json +11 -6
  62. package/template/.agents/skills/.yss-skills-manifest.json +1 -3
  63. package/template/.agents/skills/alibaba-java-code-style/SKILL.md +1 -0
  64. package/template/.agents/skills/code-review/references/yss-review-standards.md +1 -1
  65. package/template/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  66. package/template/.agents/skills/domain-modeling/SKILL.md +10 -26
  67. package/template/.agents/skills/grill-with-docs/SKILL.md +6 -5
  68. package/template/.agents/skills/lombok/SKILL.md +2 -1
  69. package/template/.agents/skills/mapstruct/SKILL.md +3 -2
  70. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  71. package/template/.agents/skills/setup-matt-pocock-skills/domain.md +6 -20
  72. package/template/.agents/skills/wait-what/SKILL.md +1 -1
  73. package/template/.agents/skills/yss-antdv-next-design/SKILL.md +48 -0
  74. package/template/.agents/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  75. package/template/.agents/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  76. package/template/.agents/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  77. package/template/.agents/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  78. package/template/.agents/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  79. package/template/.agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  80. package/template/.agents/skills/yss-application/SKILL.md +6 -0
  81. package/template/.agents/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  82. package/template/.agents/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  83. package/template/.agents/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  84. package/template/.agents/skills/yss-components/SKILL.md +1 -1
  85. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  86. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  87. package/template/.agents/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  88. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  89. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  90. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  91. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  92. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  93. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  94. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  95. package/template/.agents/skills/yss-design-system/SKILL.md +25 -22
  96. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +22 -24
  97. package/template/.agents/skills/yss-design-system/references/design-system.md +39 -56
  98. package/template/.agents/skills/yss-domain/SKILL.md +1 -1
  99. package/template/.agents/skills/yss-dto/SKILL.md +1 -0
  100. package/template/.agents/skills/yss-exception/SKILL.md +1 -0
  101. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  102. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  103. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  104. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  105. package/template/.agents/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  106. package/template/.agents/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  107. package/template/.agents/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  108. package/template/.agents/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  109. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  110. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  111. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  112. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  113. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  114. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  115. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  116. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  117. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  118. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  119. package/template/.agents/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  120. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  121. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  122. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  123. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  124. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  125. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  126. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  127. package/template/.agents/skills/yss-mybatis/SKILL.md +2 -2
  128. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +33 -7
  129. package/template/.agents/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  130. package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  131. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  132. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  133. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +7 -2
  134. package/template/.agents/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  135. package/template/.agents/skills/yss-prototype-stage/SKILL.md +9 -8
  136. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  137. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  138. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  139. package/template/.agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  140. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  141. package/template/.agents/skills/yss-repository/SKILL.md +6 -0
  142. package/template/.agents/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  143. package/template/.agents/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  144. package/template/.agents/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  145. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  146. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  147. package/template/.agents/skills/yss-stage-decision/SKILL.md +16 -12
  148. package/template/.agents/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  149. package/template/.agents/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  150. package/template/.agents/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  151. package/template/.agents/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  152. package/template/.agents/skills/yss-stage-decision/references/validation-rules.md +1 -1
  153. package/template/.agents/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  154. package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  155. package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  156. package/template/.agents/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  157. package/template/.agents/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  158. package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  159. package/template/.agents/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  160. package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  161. package/template/.agents/skills/yss-tactical-design/SKILL.md +8 -2
  162. package/template/.agents/skills/yss-tactical-design/references/output-template.md +3 -0
  163. package/template/.agents/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  164. package/template/.agents/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  165. package/template/.agents/skills/yss-ui/SKILL.md +3 -2
  166. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  167. package/template/.agents/skills/yss-validation/SKILL.md +1 -0
  168. package/template/.agents/skills/yss-web-controller/SKILL.md +6 -0
  169. package/template/.agents/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  170. package/template/.agents/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  171. package/template/.agents/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  172. package/template/.agents/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  173. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  174. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  175. package/template/.claude/skills/alibaba-java-code-style/SKILL.md +1 -0
  176. package/template/.claude/skills/code-review/references/yss-review-standards.md +1 -1
  177. package/template/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  178. package/template/.claude/skills/domain-modeling/SKILL.md +10 -26
  179. package/template/.claude/skills/grill-with-docs/SKILL.md +6 -5
  180. package/template/.claude/skills/lombok/SKILL.md +2 -1
  181. package/template/.claude/skills/mapstruct/SKILL.md +3 -2
  182. package/template/.claude/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  183. package/template/.claude/skills/setup-matt-pocock-skills/domain.md +6 -20
  184. package/template/.claude/skills/wait-what/SKILL.md +1 -1
  185. package/template/.claude/skills/yss-antdv-next-design/SKILL.md +48 -0
  186. package/template/.claude/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  187. package/template/.claude/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  188. package/template/.claude/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  189. package/template/.claude/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  190. package/template/.claude/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  191. package/template/.claude/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  192. package/template/.claude/skills/yss-application/SKILL.md +6 -0
  193. package/template/.claude/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  194. package/template/.claude/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  195. package/template/.claude/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  196. package/template/.claude/skills/yss-components/SKILL.md +1 -1
  197. package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  198. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  199. package/template/.claude/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  200. package/template/.claude/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  201. package/template/.claude/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  202. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  203. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  204. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  205. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  206. package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  207. package/template/.claude/skills/yss-design-system/SKILL.md +25 -22
  208. package/template/.claude/skills/yss-design-system/references/design-qa-theme.md +22 -24
  209. package/template/.claude/skills/yss-design-system/references/design-system.md +39 -56
  210. package/template/.claude/skills/yss-domain/SKILL.md +1 -1
  211. package/template/.claude/skills/yss-dto/SKILL.md +1 -0
  212. package/template/.claude/skills/yss-exception/SKILL.md +1 -0
  213. package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  214. package/template/.claude/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  215. package/template/.claude/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  216. package/template/.claude/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  217. package/template/.claude/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  218. package/template/.claude/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  219. package/template/.claude/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  220. package/template/.claude/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  221. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  222. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  223. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  224. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  225. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  226. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  227. package/template/.claude/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  228. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  229. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  230. package/template/.claude/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  231. package/template/.claude/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  232. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  233. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  234. package/template/.claude/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  235. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  236. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  237. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  238. package/template/.claude/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  239. package/template/.claude/skills/yss-mybatis/SKILL.md +2 -2
  240. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +33 -7
  241. package/template/.claude/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  242. package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  243. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  244. package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  245. package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +7 -2
  246. package/template/.claude/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  247. package/template/.claude/skills/yss-prototype-stage/SKILL.md +9 -8
  248. package/template/.claude/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  249. package/template/.claude/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  250. package/template/.claude/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  251. package/template/.claude/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  252. package/template/.claude/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  253. package/template/.claude/skills/yss-repository/SKILL.md +6 -0
  254. package/template/.claude/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  255. package/template/.claude/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  256. package/template/.claude/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  257. package/template/.claude/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  258. package/template/.claude/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  259. package/template/.claude/skills/yss-stage-decision/SKILL.md +16 -12
  260. package/template/.claude/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  261. package/template/.claude/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  262. package/template/.claude/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  263. package/template/.claude/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  264. package/template/.claude/skills/yss-stage-decision/references/validation-rules.md +1 -1
  265. package/template/.claude/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  266. package/template/.claude/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  267. package/template/.claude/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  268. package/template/.claude/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  269. package/template/.claude/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  270. package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  271. package/template/.claude/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  272. package/template/.claude/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  273. package/template/.claude/skills/yss-tactical-design/SKILL.md +8 -2
  274. package/template/.claude/skills/yss-tactical-design/references/output-template.md +3 -0
  275. package/template/.claude/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  276. package/template/.claude/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  277. package/template/.claude/skills/yss-ui/SKILL.md +3 -2
  278. package/template/.claude/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  279. package/template/.claude/skills/yss-validation/SKILL.md +1 -0
  280. package/template/.claude/skills/yss-web-controller/SKILL.md +6 -0
  281. package/template/.claude/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  282. package/template/.claude/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  283. package/template/.claude/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  284. package/template/.claude/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  285. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  286. package/template/.claude/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  287. package/template/.codex/skills/alibaba-java-code-style/SKILL.md +1 -0
  288. package/template/.codex/skills/code-review/references/yss-review-standards.md +1 -1
  289. package/template/.codex/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  290. package/template/.codex/skills/domain-modeling/SKILL.md +10 -26
  291. package/template/.codex/skills/grill-with-docs/SKILL.md +6 -5
  292. package/template/.codex/skills/lombok/SKILL.md +2 -1
  293. package/template/.codex/skills/mapstruct/SKILL.md +3 -2
  294. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  295. package/template/.codex/skills/setup-matt-pocock-skills/domain.md +6 -20
  296. package/template/.codex/skills/wait-what/SKILL.md +1 -1
  297. package/template/.codex/skills/yss-antdv-next-design/SKILL.md +48 -0
  298. package/template/.codex/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  299. package/template/.codex/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  300. package/template/.codex/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  301. package/template/.codex/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  302. package/template/.codex/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  303. package/template/.codex/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  304. package/template/.codex/skills/yss-application/SKILL.md +6 -0
  305. package/template/.codex/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  306. package/template/.codex/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  307. package/template/.codex/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  308. package/template/.codex/skills/yss-components/SKILL.md +1 -1
  309. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  310. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  311. package/template/.codex/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  312. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  313. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  314. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  315. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  316. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  317. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  318. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  319. package/template/.codex/skills/yss-design-system/SKILL.md +25 -22
  320. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +22 -24
  321. package/template/.codex/skills/yss-design-system/references/design-system.md +39 -56
  322. package/template/.codex/skills/yss-domain/SKILL.md +1 -1
  323. package/template/.codex/skills/yss-dto/SKILL.md +1 -0
  324. package/template/.codex/skills/yss-exception/SKILL.md +1 -0
  325. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  326. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  327. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  328. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  329. package/template/.codex/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  330. package/template/.codex/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  331. package/template/.codex/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  332. package/template/.codex/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  333. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  334. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  335. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  336. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  337. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  338. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  339. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  340. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  341. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  342. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  343. package/template/.codex/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  344. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  345. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  346. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  347. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  348. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  349. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  350. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  351. package/template/.codex/skills/yss-mybatis/SKILL.md +2 -2
  352. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +33 -7
  353. package/template/.codex/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  354. package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  355. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  356. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  357. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +7 -2
  358. package/template/.codex/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  359. package/template/.codex/skills/yss-prototype-stage/SKILL.md +9 -8
  360. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  361. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  362. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  363. package/template/.codex/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  364. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  365. package/template/.codex/skills/yss-repository/SKILL.md +6 -0
  366. package/template/.codex/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  367. package/template/.codex/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  368. package/template/.codex/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  369. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  370. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  371. package/template/.codex/skills/yss-stage-decision/SKILL.md +16 -12
  372. package/template/.codex/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  373. package/template/.codex/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  374. package/template/.codex/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  375. package/template/.codex/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  376. package/template/.codex/skills/yss-stage-decision/references/validation-rules.md +1 -1
  377. package/template/.codex/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  378. package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  379. package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  380. package/template/.codex/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  381. package/template/.codex/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  382. package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  383. package/template/.codex/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  384. package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  385. package/template/.codex/skills/yss-tactical-design/SKILL.md +8 -2
  386. package/template/.codex/skills/yss-tactical-design/references/output-template.md +3 -0
  387. package/template/.codex/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  388. package/template/.codex/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  389. package/template/.codex/skills/yss-ui/SKILL.md +3 -2
  390. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  391. package/template/.codex/skills/yss-validation/SKILL.md +1 -0
  392. package/template/.codex/skills/yss-web-controller/SKILL.md +6 -0
  393. package/template/.codex/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  394. package/template/.codex/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  395. package/template/.codex/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  396. package/template/.codex/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  397. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  398. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  399. package/template/.cursor/skills/alibaba-java-code-style/SKILL.md +1 -0
  400. package/template/.cursor/skills/code-review/references/yss-review-standards.md +1 -1
  401. package/template/.cursor/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  402. package/template/.cursor/skills/domain-modeling/SKILL.md +10 -26
  403. package/template/.cursor/skills/grill-with-docs/SKILL.md +6 -5
  404. package/template/.cursor/skills/lombok/SKILL.md +2 -1
  405. package/template/.cursor/skills/mapstruct/SKILL.md +3 -2
  406. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  407. package/template/.cursor/skills/setup-matt-pocock-skills/domain.md +6 -20
  408. package/template/.cursor/skills/wait-what/SKILL.md +1 -1
  409. package/template/.cursor/skills/yss-antdv-next-design/SKILL.md +48 -0
  410. package/template/.cursor/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  411. package/template/.cursor/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  412. package/template/.cursor/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  413. package/template/.cursor/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  414. package/template/.cursor/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  415. package/template/.cursor/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  416. package/template/.cursor/skills/yss-application/SKILL.md +6 -0
  417. package/template/.cursor/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  418. package/template/.cursor/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  419. package/template/.cursor/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  420. package/template/.cursor/skills/yss-components/SKILL.md +1 -1
  421. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  422. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  423. package/template/.cursor/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  424. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  425. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  426. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  427. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  428. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  429. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  430. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  431. package/template/.cursor/skills/yss-design-system/SKILL.md +25 -22
  432. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +22 -24
  433. package/template/.cursor/skills/yss-design-system/references/design-system.md +39 -56
  434. package/template/.cursor/skills/yss-domain/SKILL.md +1 -1
  435. package/template/.cursor/skills/yss-dto/SKILL.md +1 -0
  436. package/template/.cursor/skills/yss-exception/SKILL.md +1 -0
  437. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  438. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  439. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  440. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  441. package/template/.cursor/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  442. package/template/.cursor/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  443. package/template/.cursor/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  444. package/template/.cursor/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  445. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  446. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  447. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  448. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  449. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  450. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  451. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  452. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  453. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  454. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  455. package/template/.cursor/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  456. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  457. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  458. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  459. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  460. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  461. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  462. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  463. package/template/.cursor/skills/yss-mybatis/SKILL.md +2 -2
  464. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +33 -7
  465. package/template/.cursor/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  466. package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  467. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  468. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  469. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +7 -2
  470. package/template/.cursor/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  471. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +9 -8
  472. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  473. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  474. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  475. package/template/.cursor/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  476. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  477. package/template/.cursor/skills/yss-repository/SKILL.md +6 -0
  478. package/template/.cursor/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  479. package/template/.cursor/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  480. package/template/.cursor/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  481. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  482. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  483. package/template/.cursor/skills/yss-stage-decision/SKILL.md +16 -12
  484. package/template/.cursor/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  485. package/template/.cursor/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  486. package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  487. package/template/.cursor/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  488. package/template/.cursor/skills/yss-stage-decision/references/validation-rules.md +1 -1
  489. package/template/.cursor/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  490. package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  491. package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  492. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  493. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  494. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  495. package/template/.cursor/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  496. package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  497. package/template/.cursor/skills/yss-tactical-design/SKILL.md +8 -2
  498. package/template/.cursor/skills/yss-tactical-design/references/output-template.md +3 -0
  499. package/template/.cursor/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  500. package/template/.cursor/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  501. package/template/.cursor/skills/yss-ui/SKILL.md +3 -2
  502. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  503. package/template/.cursor/skills/yss-validation/SKILL.md +1 -0
  504. package/template/.cursor/skills/yss-web-controller/SKILL.md +6 -0
  505. package/template/.cursor/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  506. package/template/.cursor/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  507. package/template/.cursor/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  508. package/template/.cursor/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  509. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  510. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  511. package/template/.cursorrules +6 -34
  512. package/template/.pi/skills/alibaba-java-code-style/SKILL.md +1 -0
  513. package/template/.pi/skills/code-review/references/yss-review-standards.md +1 -1
  514. package/template/.pi/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  515. package/template/.pi/skills/domain-modeling/SKILL.md +10 -26
  516. package/template/.pi/skills/grill-with-docs/SKILL.md +6 -5
  517. package/template/.pi/skills/lombok/SKILL.md +2 -1
  518. package/template/.pi/skills/mapstruct/SKILL.md +3 -2
  519. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  520. package/template/.pi/skills/setup-matt-pocock-skills/domain.md +6 -20
  521. package/template/.pi/skills/wait-what/SKILL.md +1 -1
  522. package/template/.pi/skills/yss-antdv-next-design/SKILL.md +48 -0
  523. package/template/.pi/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  524. package/template/.pi/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  525. package/template/.pi/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  526. package/template/.pi/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  527. package/template/.pi/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  528. package/template/.pi/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  529. package/template/.pi/skills/yss-application/SKILL.md +6 -0
  530. package/template/.pi/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  531. package/template/.pi/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  532. package/template/.pi/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  533. package/template/.pi/skills/yss-components/SKILL.md +1 -1
  534. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  535. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  536. package/template/.pi/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  537. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  538. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  539. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  540. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  541. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  542. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  543. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  544. package/template/.pi/skills/yss-design-system/SKILL.md +25 -22
  545. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +22 -24
  546. package/template/.pi/skills/yss-design-system/references/design-system.md +39 -56
  547. package/template/.pi/skills/yss-domain/SKILL.md +1 -1
  548. package/template/.pi/skills/yss-dto/SKILL.md +1 -0
  549. package/template/.pi/skills/yss-exception/SKILL.md +1 -0
  550. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  551. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  552. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  553. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  554. package/template/.pi/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  555. package/template/.pi/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  556. package/template/.pi/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  557. package/template/.pi/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  558. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  559. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  560. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  561. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  562. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  563. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  564. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  565. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  566. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  567. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  568. package/template/.pi/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  569. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  570. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  571. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  572. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  573. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  574. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  575. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  576. package/template/.pi/skills/yss-mybatis/SKILL.md +2 -2
  577. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +33 -7
  578. package/template/.pi/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  579. package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  580. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  581. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  582. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +7 -2
  583. package/template/.pi/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  584. package/template/.pi/skills/yss-prototype-stage/SKILL.md +9 -8
  585. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  586. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  587. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  588. package/template/.pi/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  589. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  590. package/template/.pi/skills/yss-repository/SKILL.md +6 -0
  591. package/template/.pi/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  592. package/template/.pi/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  593. package/template/.pi/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  594. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  595. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  596. package/template/.pi/skills/yss-stage-decision/SKILL.md +16 -12
  597. package/template/.pi/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  598. package/template/.pi/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  599. package/template/.pi/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  600. package/template/.pi/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  601. package/template/.pi/skills/yss-stage-decision/references/validation-rules.md +1 -1
  602. package/template/.pi/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  603. package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  604. package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  605. package/template/.pi/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  606. package/template/.pi/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  607. package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  608. package/template/.pi/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  609. package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  610. package/template/.pi/skills/yss-tactical-design/SKILL.md +8 -2
  611. package/template/.pi/skills/yss-tactical-design/references/output-template.md +3 -0
  612. package/template/.pi/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  613. package/template/.pi/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  614. package/template/.pi/skills/yss-ui/SKILL.md +3 -2
  615. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  616. package/template/.pi/skills/yss-validation/SKILL.md +1 -0
  617. package/template/.pi/skills/yss-web-controller/SKILL.md +6 -0
  618. package/template/.pi/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  619. package/template/.pi/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  620. package/template/.pi/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  621. package/template/.pi/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  622. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  623. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  624. package/template/.qoder/skills/alibaba-java-code-style/SKILL.md +1 -0
  625. package/template/.qoder/skills/code-review/references/yss-review-standards.md +1 -1
  626. package/template/.qoder/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  627. package/template/.qoder/skills/domain-modeling/SKILL.md +10 -26
  628. package/template/.qoder/skills/grill-with-docs/SKILL.md +6 -5
  629. package/template/.qoder/skills/lombok/SKILL.md +2 -1
  630. package/template/.qoder/skills/mapstruct/SKILL.md +3 -2
  631. package/template/.qoder/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  632. package/template/.qoder/skills/setup-matt-pocock-skills/domain.md +6 -20
  633. package/template/.qoder/skills/wait-what/SKILL.md +1 -1
  634. package/template/.qoder/skills/yss-antdv-next-design/SKILL.md +48 -0
  635. package/template/.qoder/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  636. package/template/.qoder/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  637. package/template/.qoder/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  638. package/template/.qoder/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  639. package/template/.qoder/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  640. package/template/.qoder/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  641. package/template/.qoder/skills/yss-application/SKILL.md +6 -0
  642. package/template/.qoder/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  643. package/template/.qoder/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  644. package/template/.qoder/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  645. package/template/.qoder/skills/yss-components/SKILL.md +1 -1
  646. package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  647. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  648. package/template/.qoder/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  649. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  650. package/template/.qoder/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  651. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  652. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  653. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  654. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  655. package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  656. package/template/.qoder/skills/yss-design-system/SKILL.md +25 -22
  657. package/template/.qoder/skills/yss-design-system/references/design-qa-theme.md +22 -24
  658. package/template/.qoder/skills/yss-design-system/references/design-system.md +39 -56
  659. package/template/.qoder/skills/yss-domain/SKILL.md +1 -1
  660. package/template/.qoder/skills/yss-dto/SKILL.md +1 -0
  661. package/template/.qoder/skills/yss-exception/SKILL.md +1 -0
  662. package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  663. package/template/.qoder/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  664. package/template/.qoder/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  665. package/template/.qoder/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  666. package/template/.qoder/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  667. package/template/.qoder/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  668. package/template/.qoder/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  669. package/template/.qoder/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  670. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  671. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  672. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  673. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  674. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  675. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  676. package/template/.qoder/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  677. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  678. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  679. package/template/.qoder/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  680. package/template/.qoder/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  681. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  682. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  683. package/template/.qoder/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  684. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  685. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  686. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  687. package/template/.qoder/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  688. package/template/.qoder/skills/yss-mybatis/SKILL.md +2 -2
  689. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +33 -7
  690. package/template/.qoder/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  691. package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  692. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  693. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  694. package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +7 -2
  695. package/template/.qoder/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  696. package/template/.qoder/skills/yss-prototype-stage/SKILL.md +9 -8
  697. package/template/.qoder/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  698. package/template/.qoder/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  699. package/template/.qoder/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  700. package/template/.qoder/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  701. package/template/.qoder/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  702. package/template/.qoder/skills/yss-repository/SKILL.md +6 -0
  703. package/template/.qoder/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  704. package/template/.qoder/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  705. package/template/.qoder/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  706. package/template/.qoder/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  707. package/template/.qoder/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  708. package/template/.qoder/skills/yss-stage-decision/SKILL.md +16 -12
  709. package/template/.qoder/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  710. package/template/.qoder/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  711. package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  712. package/template/.qoder/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  713. package/template/.qoder/skills/yss-stage-decision/references/validation-rules.md +1 -1
  714. package/template/.qoder/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  715. package/template/.qoder/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  716. package/template/.qoder/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  717. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  718. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  719. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  720. package/template/.qoder/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  721. package/template/.qoder/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  722. package/template/.qoder/skills/yss-tactical-design/SKILL.md +8 -2
  723. package/template/.qoder/skills/yss-tactical-design/references/output-template.md +3 -0
  724. package/template/.qoder/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  725. package/template/.qoder/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  726. package/template/.qoder/skills/yss-ui/SKILL.md +3 -2
  727. package/template/.qoder/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  728. package/template/.qoder/skills/yss-validation/SKILL.md +1 -0
  729. package/template/.qoder/skills/yss-web-controller/SKILL.md +6 -0
  730. package/template/.qoder/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  731. package/template/.qoder/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  732. package/template/.qoder/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  733. package/template/.qoder/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  734. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  735. package/template/.qoder/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  736. package/template/.trae/skills/alibaba-java-code-style/SKILL.md +1 -0
  737. package/template/.trae/skills/code-review/references/yss-review-standards.md +1 -1
  738. package/template/.trae/skills/domain-modeling/CONTEXT-FORMAT.md +37 -42
  739. package/template/.trae/skills/domain-modeling/SKILL.md +10 -26
  740. package/template/.trae/skills/grill-with-docs/SKILL.md +6 -5
  741. package/template/.trae/skills/lombok/SKILL.md +2 -1
  742. package/template/.trae/skills/mapstruct/SKILL.md +3 -2
  743. package/template/.trae/skills/setup-matt-pocock-skills/SKILL.md +5 -6
  744. package/template/.trae/skills/setup-matt-pocock-skills/domain.md +6 -20
  745. package/template/.trae/skills/wait-what/SKILL.md +1 -1
  746. package/template/.trae/skills/yss-antdv-next-design/SKILL.md +48 -0
  747. package/template/.trae/skills/yss-antdv-next-design/references/boundaries.md +25 -0
  748. package/template/.trae/skills/yss-antdv-next-design/references/cli-matrix.md +34 -0
  749. package/template/.trae/skills/yss-antdv-next-design/references/fact-pack.md +38 -0
  750. package/template/.trae/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +213 -0
  751. package/template/.trae/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +168 -0
  752. package/template/.trae/skills/yss-antdv-next-design/tests/run-scenarios.mjs +139 -0
  753. package/template/.trae/skills/yss-application/SKILL.md +6 -0
  754. package/template/.trae/skills/yss-application/references/profiles/layered-mvc-service.md +3 -0
  755. package/template/.trae/skills/yss-application/references/profiles/mvc-data-analysis-v1.md +3 -0
  756. package/template/.trae/skills/yss-application/references/profiles/target-domain-model.md +3 -0
  757. package/template/.trae/skills/yss-components/SKILL.md +1 -1
  758. package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +3 -4
  759. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/config/application.yml.template +0 -13
  760. package/template/.trae/skills/yss-ddd-scaffold-generator/assets/templates/pom/bootstrap-pom.xml.template +13 -0
  761. package/template/.trae/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +13 -4
  762. package/template/.trae/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  763. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +21 -7
  764. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +37 -15
  765. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +22 -10
  766. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +14 -2
  767. package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +41 -12
  768. package/template/.trae/skills/yss-design-system/SKILL.md +25 -22
  769. package/template/.trae/skills/yss-design-system/references/design-qa-theme.md +22 -24
  770. package/template/.trae/skills/yss-design-system/references/design-system.md +39 -56
  771. package/template/.trae/skills/yss-domain/SKILL.md +1 -1
  772. package/template/.trae/skills/yss-dto/SKILL.md +1 -0
  773. package/template/.trae/skills/yss-exception/SKILL.md +1 -0
  774. package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +3 -1
  775. package/template/.trae/skills/yss-implementation-contract-compiler/SKILL.md +10 -2
  776. package/template/.trae/skills/yss-implementation-contract-compiler/references/boundaries.md +16 -8
  777. package/template/.trae/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +78 -19
  778. package/template/.trae/skills/yss-implementation-contract-compiler/references/slice-implementation-contract.md +7 -1
  779. package/template/.trae/skills/yss-implementation-contract-compiler/references/yss-skill-execution-result.md +2 -0
  780. package/template/.trae/skills/yss-implementation-contract-compiler/tests/backend-profiles.test.mjs +45 -0
  781. package/template/.trae/skills/yss-implementation-contract-compiler/tests/compiler-scenarios.test.mjs +8 -6
  782. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/SKILL.md +64 -0
  783. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +4 -0
  784. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/references/architecture.md +29 -0
  785. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_and_verify_scaffold.mjs +61 -0
  786. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +315 -0
  787. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +30 -0
  788. package/template/.trae/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +159 -0
  789. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +22 -0
  790. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +77 -0
  791. package/template/.trae/skills/yss-mvc-data-analysis-project-initializer/scripts/run_scaffold_verification.mjs +9 -0
  792. package/template/.trae/skills/yss-mvc-scaffold-generator/SKILL.md +3 -82
  793. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +137 -0
  794. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +341 -0
  795. package/template/.trae/skills/yss-mvc-scaffold-generator/references/history/skill.md +87 -0
  796. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +2 -135
  797. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +4 -332
  798. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +11 -3
  799. package/template/.trae/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +36 -0
  800. package/template/.trae/skills/yss-mybatis/SKILL.md +2 -2
  801. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +33 -7
  802. package/template/.trae/skills/yss-product-lifecycle/references/artifact-dependencies.md +3 -0
  803. package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +4 -6
  804. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +119 -46
  805. package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +9 -3
  806. package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +7 -2
  807. package/template/.trae/skills/yss-product-lifecycle/references/user-decisions.md +56 -0
  808. package/template/.trae/skills/yss-prototype-stage/SKILL.md +9 -8
  809. package/template/.trae/skills/yss-prototype-stage/references/product-design-adapter.md +33 -10
  810. package/template/.trae/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -8
  811. package/template/.trae/skills/yss-prototype-stage/scripts/prototype-contract.mjs +129 -22
  812. package/template/.trae/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs +314 -0
  813. package/template/.trae/skills/yss-prototype-stage/tests/run-scenarios.mjs +96 -17
  814. package/template/.trae/skills/yss-repository/SKILL.md +6 -0
  815. package/template/.trae/skills/yss-repository/references/profiles/layered-mvc-service.md +3 -0
  816. package/template/.trae/skills/yss-repository/references/profiles/mvc-data-analysis-v1.md +3 -0
  817. package/template/.trae/skills/yss-repository/references/profiles/target-domain-model.md +3 -0
  818. package/template/.trae/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  819. package/template/.trae/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +1 -1
  820. package/template/.trae/skills/yss-stage-decision/SKILL.md +16 -12
  821. package/template/.trae/skills/yss-stage-decision/references/domain-strategy-contract.md +16 -10
  822. package/template/.trae/skills/yss-stage-decision/references/domain-strategy.schema.json +23 -5
  823. package/template/.trae/skills/yss-stage-decision/references/stage-decision-package-contract.md +5 -2
  824. package/template/.trae/skills/yss-stage-decision/references/stage-decision-package.schema.json +16 -4
  825. package/template/.trae/skills/yss-stage-decision/references/validation-rules.md +1 -1
  826. package/template/.trae/skills/yss-stage-decision/scripts/migrate-context-references.mjs +62 -0
  827. package/template/.trae/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +18 -7
  828. package/template/.trae/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +20 -9
  829. package/template/.trae/skills/yss-stage-decision/tests/fixtures/domain-strategy-approval.yaml +1 -1
  830. package/template/.trae/skills/yss-stage-decision/tests/fixtures/stage-decision-approval.yaml +1 -1
  831. package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-stage-decision-package.yaml +12 -7
  832. package/template/.trae/skills/yss-stage-decision/tests/fixtures/valid-supplier-domain.yaml +9 -4
  833. package/template/.trae/skills/yss-stage-decision/tests/run-scenarios.mjs +134 -56
  834. package/template/.trae/skills/yss-tactical-design/SKILL.md +8 -2
  835. package/template/.trae/skills/yss-tactical-design/references/output-template.md +3 -0
  836. package/template/.trae/skills/yss-tactical-design/references/tactical-design-contract.md +3 -1
  837. package/template/.trae/skills/yss-tactical-design/scripts/validate-tactical-design.mjs +10 -2
  838. package/template/.trae/skills/yss-ui/SKILL.md +3 -2
  839. package/template/.trae/skills/yss-ui-business-page-generation/SKILL.md +3 -3
  840. package/template/.trae/skills/yss-validation/SKILL.md +1 -0
  841. package/template/.trae/skills/yss-web-controller/SKILL.md +6 -0
  842. package/template/.trae/skills/yss-web-controller/references/profiles/layered-mvc-service.md +3 -0
  843. package/template/.trae/skills/yss-web-controller/references/profiles/mvc-data-analysis-v1.md +3 -0
  844. package/template/.trae/skills/yss-web-controller/references/profiles/target-domain-model.md +3 -0
  845. package/template/.trae/skills/yss-web-controller/references/web-generation-contract.schema.json +3 -2
  846. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.mjs +27 -10
  847. package/template/.trae/skills/yss-web-controller/scripts/generate_controller.test.mjs +29 -1
  848. package/template/AGENTS.md +52 -91
  849. package/template/CONTEXT.md +17 -5
  850. package/template/DESIGN.md +85 -41
  851. package/template/README.md +4 -0
  852. package/template/__yss_dotfile__.gitignore +1 -0
  853. package/template/docs/agents/backend-architecture-profiles.md +25 -0
  854. package/template/docs/agents/digital-human-roles.md +3 -3
  855. package/template/docs/agents/digital-human-roles.yaml +47 -13
  856. package/template/docs/agents/domain.md +7 -6
  857. package/template/docs/agents/skill-migrations.md +20 -2
  858. package/template/docs/agents/skills-maintenance.md +3 -3
  859. package/template/docs/agents/strategic-design-skills-integration.md +6 -1
  860. package/template/docs/agents/yss-skill-registry.yaml +78 -94
  861. package/template/docs/agents/yss-ui-skills-integration.md +3 -3
  862. package/template/docs/api/templates/openapi-draft-review-checklist.md +2 -2
  863. package/template/docs/architecture/templates/engineering-baseline-review-template.md +18 -6
  864. package/template/docs/design/README.md +9 -6
  865. package/template/docs/design/design-system-sync.yaml +1 -1
  866. package/template/docs/design/design.md +86 -118
  867. package/template/docs/design/facts/antdv-next/1.5.2/cli-help.txt +38 -0
  868. package/template/docs/design/facts/antdv-next/1.5.2/component-list.json +434 -0
  869. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/demo-basic.json +7 -0
  870. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/info.json +246 -0
  871. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/semantic.json +40 -0
  872. package/template/docs/design/facts/antdv-next/1.5.2/components/Alert/token.json +32 -0
  873. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/demo-basic.json +7 -0
  874. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/info.json +190 -0
  875. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/semantic.json +20 -0
  876. package/template/docs/design/facts/antdv-next/1.5.2/components/Button/token.json +256 -0
  877. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/demo-basic.json +7 -0
  878. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/info.json +460 -0
  879. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/semantic.json +70 -0
  880. package/template/docs/design/facts/antdv-next/1.5.2/components/Input/token.json +123 -0
  881. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/demo-basic.json +7 -0
  882. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/info.json +646 -0
  883. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/semantic.json +50 -0
  884. package/template/docs/design/facts/antdv-next/1.5.2/components/Modal/token.json +130 -0
  885. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/demo-basic.json +7 -0
  886. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/info.json +640 -0
  887. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/semantic.json +70 -0
  888. package/template/docs/design/facts/antdv-next/1.5.2/components/Select/token.json +172 -0
  889. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/demo-basic.json +7 -0
  890. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/info.json +1010 -0
  891. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/semantic.json +70 -0
  892. package/template/docs/design/facts/antdv-next/1.5.2/components/Table/token.json +263 -0
  893. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/demo-basic.json +7 -0
  894. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/info.json +321 -0
  895. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/semantic.json +25 -0
  896. package/template/docs/design/facts/antdv-next/1.5.2/components/Tag/token.json +25 -0
  897. package/template/docs/design/facts/antdv-next/1.5.2/design-md.json +3 -0
  898. package/template/docs/design/facts/antdv-next/1.5.2/manifest.json +215 -0
  899. package/template/docs/design/facts/antdv-next/1.5.2/resolution-probe.json +5 -0
  900. package/template/docs/design/preview-dark.html +170 -7
  901. package/template/docs/design/preview.css +730 -0
  902. package/template/docs/design/preview.html +168 -10
  903. package/template/docs/design/preview.js +71 -0
  904. package/template/docs/design/schemas/visual-baseline.schema.json +66 -0
  905. package/template/docs/design/templates/interaction-spec-template.md +1 -1
  906. package/template/docs/design/templates/product-overview-design-template.md +6 -6
  907. package/template/docs/design/templates/prototype-evidence-template.yaml +21 -8
  908. package/template/docs/design/templates/prototype-review-checklist.md +1 -1
  909. package/template/docs/design/templates/visual-baseline-template.yaml +70 -0
  910. package/template/docs/design/tokens/.design-md-projection.json +3 -3
  911. package/template/docs/design/tokens/theme.json +2 -2
  912. package/template/docs/design/tokens/variables.css +5 -0
  913. package/template/docs/process/frontend-backend-delivery.md +72 -0
  914. package/template/docs/process/harness-executive-blueprint.md +1 -1
  915. package/template/docs/process/harness-process-tailoring.md +1 -0
  916. package/template/docs/process/implementation-repo-integration.md +2 -0
  917. package/template/docs/process/lifecycle-artifact-map.md +6 -4
  918. package/template/docs/process/lifecycle-registry-baseline.json +8 -5
  919. package/template/docs/process/lifecycle-registry.yaml +27 -0
  920. package/template/docs/process/schemas/backend-architecture-identity.schema.json +19 -0
  921. package/template/docs/process/schemas/backend-delivery-verification.schema.json +113 -0
  922. package/template/docs/process/schemas/backend-delivery.schema.json +301 -0
  923. package/template/docs/process/schemas/context-reconciliation.schema.json +57 -0
  924. package/template/docs/process/schemas/digital-human-task-package.schema.json +18 -0
  925. package/template/docs/process/schemas/frontend-delivery-acceptance.schema.json +200 -0
  926. package/template/docs/process/schemas/frontend-implementation-evidence.schema.json +65 -29
  927. package/template/docs/process/schemas/lifecycle-checkpoint.schema.json +16 -2
  928. package/template/docs/process/schemas/lifecycle-registry.schema.json +4 -4
  929. package/template/docs/process/schemas/scaffold-architecture-decisions.schema.json +68 -0
  930. package/template/docs/process/schemas/strategic-design-handoff.schema.json +670 -0
  931. package/template/docs/process/schemas/strategic-handoff-domain-strategy.schema.json +146 -0
  932. package/template/docs/process/schemas/strategic-handoff-export.schema.json +295 -0
  933. package/template/docs/process/schemas/strategic-handoff-package.schema.json +97 -0
  934. package/template/docs/process/schemas/strategic-handoff-stage-decision-package.schema.json +98 -0
  935. package/template/docs/process/schemas/user-decision.schema.json +357 -0
  936. package/template/docs/process/strategic-handoff-package.md +56 -0
  937. package/template/docs/process/template-verification-profiles.yaml +66 -1
  938. package/template/docs/process/templates/context-reconciliation-template.yaml +18 -0
  939. package/template/docs/process/templates/frontend-implementation-plan-template.yaml +11 -5
  940. package/template/docs/process/templates/frontend-implementation-verification-template.yaml +25 -5
  941. package/template/docs/process/templates/lifecycle-checkpoint-template.yaml +9 -0
  942. package/template/docs/process/templates/scaffold-architecture-decisions-template.yaml +32 -0
  943. package/template/docs/process/templates/stage-checkpoint-template.md +5 -0
  944. package/template/docs/process/templates/user-decision-template.yaml +30 -0
  945. package/template/docs/templates/approval-record-template.yaml +4 -0
  946. package/template/docs/templates/build-architecture-checklist-template.md +3 -3
  947. package/template/docs/templates/implementation-repo-registry-template.md +3 -1
  948. package/template/docs/templates/implementation-routing-template.md +8 -6
  949. package/template/docs/templates/requirement-freeze-template.md +1 -1
  950. package/template/docs/templates/review-report-template.md +1 -1
  951. package/template/docs/templates/spec-template.md +5 -5
  952. 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 +20 -204
  953. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +63 -963
  954. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +11 -14
  955. package/template/docs/user-guide//350/256/276/345/244/207/345/200/237/347/224/250/350/264/257/347/251/277/346/241/210/344/276/213.md +127 -0
  956. package/template/scripts/backend-delivery +14 -0
  957. package/template/scripts/fixtures/backend-delivery/revision-server.mjs +11 -0
  958. package/template/scripts/fixtures/strategic-handoff/base-stage.json +91 -0
  959. package/template/scripts/fixtures/strategic-handoff/base-strategy.json +205 -0
  960. package/template/scripts/fixtures/strategic-handoff/fixture.mjs +57 -0
  961. package/template/scripts/fixtures/strategic-handoff/source-roles.json +528 -0
  962. package/template/scripts/fixtures/user-decision/build-fixture.mjs +61 -0
  963. package/template/scripts/instantiate-harness +69 -0
  964. package/template/scripts/lib/approval-record.mjs +32 -1
  965. package/template/scripts/lib/backend-architecture.mjs +43 -0
  966. package/template/scripts/lib/backend-delivery.mjs +164 -0
  967. package/template/scripts/lib/context-contract.mjs +203 -0
  968. package/template/scripts/lib/digital-human-roles.mjs +21 -3
  969. package/template/scripts/lib/first-slice-architecture.mjs +23 -0
  970. package/template/scripts/lib/frontend-delivery-boundary.mjs +49 -0
  971. package/template/scripts/lib/frontend-delivery.mjs +73 -0
  972. package/template/scripts/lib/harness-execution-scope.mjs +52 -0
  973. package/template/scripts/lib/implementation-contract-compiler.mjs +45 -2
  974. package/template/scripts/lib/lifecycle-registry.mjs +14 -6
  975. package/template/scripts/lib/lifecycle-transition.mjs +26 -4
  976. package/template/scripts/lib/scaffold-local-database.mjs +26 -0
  977. package/template/scripts/lib/scenario-checks.mjs +25 -12
  978. package/template/scripts/lib/skill-governance.mjs +25 -10
  979. package/template/scripts/lib/skill-registry.mjs +1 -1
  980. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  981. package/template/scripts/lib/strategic-handoff-consumption.mjs +83 -0
  982. package/template/scripts/lib/strategic-handoff-io.mjs +75 -0
  983. package/template/scripts/lib/strategic-handoff-rules.mjs +37 -0
  984. package/template/scripts/lib/strategic-handoff-zip.py +52 -0
  985. package/template/scripts/lib/strategic-handoff.mjs +259 -0
  986. package/template/scripts/lib/task-package.mjs +17 -2
  987. package/template/scripts/lib/user-decision.mjs +210 -0
  988. package/template/scripts/strategic-handoff +14 -0
  989. package/template/scripts/sync-strategic-handoff-tools +20 -0
  990. package/template/scripts/verify-approval-record +5 -4
  991. package/template/scripts/verify-business-language-scenarios +59 -0
  992. package/template/scripts/verify-context-contract +15 -0
  993. package/template/scripts/verify-context-contract-scenarios +105 -0
  994. package/template/scripts/verify-context-reconciliation +58 -0
  995. package/template/scripts/verify-context-reconciliation-scenarios +69 -0
  996. package/template/scripts/verify-digital-human-roles-scenarios +1 -1
  997. package/template/scripts/verify-frontend-delivery +9 -0
  998. package/template/scripts/verify-frontend-delivery-scenarios +131 -0
  999. package/template/scripts/verify-frontend-implementation-evidence +33 -8
  1000. package/template/scripts/verify-frontend-implementation-evidence-scenarios +56 -0
  1001. package/template/scripts/verify-grill-with-docs-context-scenarios +15 -0
  1002. package/template/scripts/verify-lifecycle-checkpoint +9 -1
  1003. package/template/scripts/verify-lifecycle-transition-scenarios +13 -3
  1004. package/template/scripts/verify-retired-skill-ids +30 -4
  1005. package/template/scripts/verify-scaffold-architecture-decision-scenarios +30 -0
  1006. package/template/scripts/verify-scaffold-architecture-decisions +61 -0
  1007. package/template/scripts/verify-scaffold-generator-scenarios +74 -3
  1008. package/template/scripts/verify-strategic-context-import +65 -0
  1009. package/template/scripts/verify-strategic-context-import-scenarios +50 -0
  1010. package/template/scripts/verify-strategic-handoff-consumption +10 -0
  1011. package/template/scripts/verify-strategic-handoff-package-scenarios +102 -0
  1012. package/template/scripts/verify-subagent-task-package-scenarios +17 -3
  1013. package/template/scripts/verify-template-verification-scenarios +6 -1
  1014. package/template/scripts/verify-user-decision +17 -0
  1015. package/template/scripts/verify-user-decision-scenarios +103 -0
  1016. package/template/skills-lock.json +77 -270
  1017. package/template/yss-public-skills.json +4 -4
  1018. package/template.manifest.json +43 -1
  1019. package/template.snapshot.json +5 -5
  1020. package/template/.agents/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1021. package/template/.agents/skills/ask-matt/SKILL.md +0 -95
  1022. package/template/.agents/skills/ask-matt/agents/openai.yaml +0 -5
  1023. package/template/.agents/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1024. package/template/.agents/skills/loop-me/SKILL.md +0 -32
  1025. package/template/.agents/skills/loop-me/agents/openai.yaml +0 -5
  1026. package/template/.agents/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1027. package/template/.agents/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1028. package/template/.agents/skills/prototype-page-acceptance/SKILL.md +0 -62
  1029. package/template/.agents/skills/scaffold-exercises/SKILL.md +0 -106
  1030. package/template/.agents/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1031. package/template/.agents/skills/setup-pre-commit/SKILL.md +0 -91
  1032. package/template/.agents/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1033. package/template/.agents/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1034. package/template/.agents/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1035. package/template/.agents/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1036. package/template/.agents/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1037. package/template/.agents/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1038. package/template/.agents/skills/teach/MISSION-FORMAT.md +0 -31
  1039. package/template/.agents/skills/teach/RESOURCES-FORMAT.md +0 -32
  1040. package/template/.agents/skills/teach/SKILL.md +0 -140
  1041. package/template/.agents/skills/teach/agents/openai.yaml +0 -5
  1042. package/template/.agents/skills/writing-beats/SKILL.md +0 -67
  1043. package/template/.agents/skills/writing-beats/agents/openai.yaml +0 -5
  1044. package/template/.agents/skills/writing-fragments/SKILL.md +0 -79
  1045. package/template/.agents/skills/writing-fragments/agents/openai.yaml +0 -5
  1046. package/template/.agents/skills/writing-shape/SKILL.md +0 -79
  1047. package/template/.agents/skills/writing-shape/agents/openai.yaml +0 -5
  1048. package/template/.agents/skills/yss-microapp-commit/SKILL.md +0 -201
  1049. package/template/.agents/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1050. package/template/.agents/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1051. package/template/.agents/skills/yss-page-module-development/SKILL.md +0 -165
  1052. package/template/.agents/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1053. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1054. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1055. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1056. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1057. package/template/.agents/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1058. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1059. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1060. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1061. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1062. package/template/.agents/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1063. package/template/.agents/skills/yss-page-module-development/references/component-map.md +0 -34
  1064. package/template/.agents/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1065. package/template/.agents/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1066. package/template/.agents/skills/yss-page-module-development/references/utils-map.md +0 -14
  1067. package/template/.claude/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1068. package/template/.claude/skills/ask-matt/SKILL.md +0 -95
  1069. package/template/.claude/skills/ask-matt/agents/openai.yaml +0 -5
  1070. package/template/.claude/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1071. package/template/.claude/skills/loop-me/SKILL.md +0 -32
  1072. package/template/.claude/skills/loop-me/agents/openai.yaml +0 -5
  1073. package/template/.claude/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1074. package/template/.claude/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1075. package/template/.claude/skills/prototype-page-acceptance/SKILL.md +0 -62
  1076. package/template/.claude/skills/scaffold-exercises/SKILL.md +0 -106
  1077. package/template/.claude/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1078. package/template/.claude/skills/setup-pre-commit/SKILL.md +0 -91
  1079. package/template/.claude/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1080. package/template/.claude/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1081. package/template/.claude/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1082. package/template/.claude/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1083. package/template/.claude/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1084. package/template/.claude/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1085. package/template/.claude/skills/teach/MISSION-FORMAT.md +0 -31
  1086. package/template/.claude/skills/teach/RESOURCES-FORMAT.md +0 -32
  1087. package/template/.claude/skills/teach/SKILL.md +0 -140
  1088. package/template/.claude/skills/teach/agents/openai.yaml +0 -5
  1089. package/template/.claude/skills/writing-beats/SKILL.md +0 -67
  1090. package/template/.claude/skills/writing-beats/agents/openai.yaml +0 -5
  1091. package/template/.claude/skills/writing-fragments/SKILL.md +0 -79
  1092. package/template/.claude/skills/writing-fragments/agents/openai.yaml +0 -5
  1093. package/template/.claude/skills/writing-shape/SKILL.md +0 -79
  1094. package/template/.claude/skills/writing-shape/agents/openai.yaml +0 -5
  1095. package/template/.claude/skills/yss-microapp-commit/SKILL.md +0 -201
  1096. package/template/.claude/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1097. package/template/.claude/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1098. package/template/.claude/skills/yss-page-module-development/SKILL.md +0 -165
  1099. package/template/.claude/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1100. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1101. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1102. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1103. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1104. package/template/.claude/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1105. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1106. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1107. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1108. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1109. package/template/.claude/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1110. package/template/.claude/skills/yss-page-module-development/references/component-map.md +0 -34
  1111. package/template/.claude/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1112. package/template/.claude/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1113. package/template/.claude/skills/yss-page-module-development/references/utils-map.md +0 -14
  1114. package/template/.codex/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1115. package/template/.codex/skills/ask-matt/SKILL.md +0 -95
  1116. package/template/.codex/skills/ask-matt/agents/openai.yaml +0 -5
  1117. package/template/.codex/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1118. package/template/.codex/skills/loop-me/SKILL.md +0 -32
  1119. package/template/.codex/skills/loop-me/agents/openai.yaml +0 -5
  1120. package/template/.codex/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1121. package/template/.codex/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1122. package/template/.codex/skills/prototype-page-acceptance/SKILL.md +0 -62
  1123. package/template/.codex/skills/scaffold-exercises/SKILL.md +0 -106
  1124. package/template/.codex/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1125. package/template/.codex/skills/setup-pre-commit/SKILL.md +0 -91
  1126. package/template/.codex/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1127. package/template/.codex/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1128. package/template/.codex/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1129. package/template/.codex/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1130. package/template/.codex/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1131. package/template/.codex/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1132. package/template/.codex/skills/teach/MISSION-FORMAT.md +0 -31
  1133. package/template/.codex/skills/teach/RESOURCES-FORMAT.md +0 -32
  1134. package/template/.codex/skills/teach/SKILL.md +0 -140
  1135. package/template/.codex/skills/teach/agents/openai.yaml +0 -5
  1136. package/template/.codex/skills/writing-beats/SKILL.md +0 -67
  1137. package/template/.codex/skills/writing-beats/agents/openai.yaml +0 -5
  1138. package/template/.codex/skills/writing-fragments/SKILL.md +0 -79
  1139. package/template/.codex/skills/writing-fragments/agents/openai.yaml +0 -5
  1140. package/template/.codex/skills/writing-shape/SKILL.md +0 -79
  1141. package/template/.codex/skills/writing-shape/agents/openai.yaml +0 -5
  1142. package/template/.codex/skills/yss-microapp-commit/SKILL.md +0 -201
  1143. package/template/.codex/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1144. package/template/.codex/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1145. package/template/.codex/skills/yss-page-module-development/SKILL.md +0 -165
  1146. package/template/.codex/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1147. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1148. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1149. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1150. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1151. package/template/.codex/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1152. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1153. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1154. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1155. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1156. package/template/.codex/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1157. package/template/.codex/skills/yss-page-module-development/references/component-map.md +0 -34
  1158. package/template/.codex/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1159. package/template/.codex/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1160. package/template/.codex/skills/yss-page-module-development/references/utils-map.md +0 -14
  1161. package/template/.cursor/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1162. package/template/.cursor/skills/ask-matt/SKILL.md +0 -95
  1163. package/template/.cursor/skills/ask-matt/agents/openai.yaml +0 -5
  1164. package/template/.cursor/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1165. package/template/.cursor/skills/loop-me/SKILL.md +0 -32
  1166. package/template/.cursor/skills/loop-me/agents/openai.yaml +0 -5
  1167. package/template/.cursor/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1168. package/template/.cursor/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1169. package/template/.cursor/skills/prototype-page-acceptance/SKILL.md +0 -62
  1170. package/template/.cursor/skills/scaffold-exercises/SKILL.md +0 -106
  1171. package/template/.cursor/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1172. package/template/.cursor/skills/setup-pre-commit/SKILL.md +0 -91
  1173. package/template/.cursor/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1174. package/template/.cursor/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1175. package/template/.cursor/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1176. package/template/.cursor/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1177. package/template/.cursor/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1178. package/template/.cursor/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1179. package/template/.cursor/skills/teach/MISSION-FORMAT.md +0 -31
  1180. package/template/.cursor/skills/teach/RESOURCES-FORMAT.md +0 -32
  1181. package/template/.cursor/skills/teach/SKILL.md +0 -140
  1182. package/template/.cursor/skills/teach/agents/openai.yaml +0 -5
  1183. package/template/.cursor/skills/writing-beats/SKILL.md +0 -67
  1184. package/template/.cursor/skills/writing-beats/agents/openai.yaml +0 -5
  1185. package/template/.cursor/skills/writing-fragments/SKILL.md +0 -79
  1186. package/template/.cursor/skills/writing-fragments/agents/openai.yaml +0 -5
  1187. package/template/.cursor/skills/writing-shape/SKILL.md +0 -79
  1188. package/template/.cursor/skills/writing-shape/agents/openai.yaml +0 -5
  1189. package/template/.cursor/skills/yss-microapp-commit/SKILL.md +0 -201
  1190. package/template/.cursor/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1191. package/template/.cursor/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1192. package/template/.cursor/skills/yss-page-module-development/SKILL.md +0 -165
  1193. package/template/.cursor/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1194. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1195. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1196. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1197. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1198. package/template/.cursor/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1199. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1200. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1201. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1202. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1203. package/template/.cursor/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1204. package/template/.cursor/skills/yss-page-module-development/references/component-map.md +0 -34
  1205. package/template/.cursor/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1206. package/template/.cursor/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1207. package/template/.cursor/skills/yss-page-module-development/references/utils-map.md +0 -14
  1208. package/template/.pi/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1209. package/template/.pi/skills/ask-matt/SKILL.md +0 -95
  1210. package/template/.pi/skills/ask-matt/agents/openai.yaml +0 -5
  1211. package/template/.pi/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1212. package/template/.pi/skills/loop-me/SKILL.md +0 -32
  1213. package/template/.pi/skills/loop-me/agents/openai.yaml +0 -5
  1214. package/template/.pi/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1215. package/template/.pi/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1216. package/template/.pi/skills/prototype-page-acceptance/SKILL.md +0 -62
  1217. package/template/.pi/skills/scaffold-exercises/SKILL.md +0 -106
  1218. package/template/.pi/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1219. package/template/.pi/skills/setup-pre-commit/SKILL.md +0 -91
  1220. package/template/.pi/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1221. package/template/.pi/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1222. package/template/.pi/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1223. package/template/.pi/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1224. package/template/.pi/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1225. package/template/.pi/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1226. package/template/.pi/skills/teach/MISSION-FORMAT.md +0 -31
  1227. package/template/.pi/skills/teach/RESOURCES-FORMAT.md +0 -32
  1228. package/template/.pi/skills/teach/SKILL.md +0 -140
  1229. package/template/.pi/skills/teach/agents/openai.yaml +0 -5
  1230. package/template/.pi/skills/writing-beats/SKILL.md +0 -67
  1231. package/template/.pi/skills/writing-beats/agents/openai.yaml +0 -5
  1232. package/template/.pi/skills/writing-fragments/SKILL.md +0 -79
  1233. package/template/.pi/skills/writing-fragments/agents/openai.yaml +0 -5
  1234. package/template/.pi/skills/writing-shape/SKILL.md +0 -79
  1235. package/template/.pi/skills/writing-shape/agents/openai.yaml +0 -5
  1236. package/template/.pi/skills/yss-microapp-commit/SKILL.md +0 -201
  1237. package/template/.pi/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1238. package/template/.pi/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1239. package/template/.pi/skills/yss-page-module-development/SKILL.md +0 -165
  1240. package/template/.pi/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1241. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1242. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1243. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1244. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1245. package/template/.pi/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1246. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1247. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1248. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1249. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1250. package/template/.pi/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1251. package/template/.pi/skills/yss-page-module-development/references/component-map.md +0 -34
  1252. package/template/.pi/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1253. package/template/.pi/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1254. package/template/.pi/skills/yss-page-module-development/references/utils-map.md +0 -14
  1255. package/template/.qoder/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1256. package/template/.qoder/skills/ask-matt/SKILL.md +0 -95
  1257. package/template/.qoder/skills/ask-matt/agents/openai.yaml +0 -5
  1258. package/template/.qoder/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1259. package/template/.qoder/skills/loop-me/SKILL.md +0 -32
  1260. package/template/.qoder/skills/loop-me/agents/openai.yaml +0 -5
  1261. package/template/.qoder/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1262. package/template/.qoder/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1263. package/template/.qoder/skills/prototype-page-acceptance/SKILL.md +0 -62
  1264. package/template/.qoder/skills/scaffold-exercises/SKILL.md +0 -106
  1265. package/template/.qoder/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1266. package/template/.qoder/skills/setup-pre-commit/SKILL.md +0 -91
  1267. package/template/.qoder/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1268. package/template/.qoder/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1269. package/template/.qoder/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1270. package/template/.qoder/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1271. package/template/.qoder/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1272. package/template/.qoder/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1273. package/template/.qoder/skills/teach/MISSION-FORMAT.md +0 -31
  1274. package/template/.qoder/skills/teach/RESOURCES-FORMAT.md +0 -32
  1275. package/template/.qoder/skills/teach/SKILL.md +0 -140
  1276. package/template/.qoder/skills/teach/agents/openai.yaml +0 -5
  1277. package/template/.qoder/skills/writing-beats/SKILL.md +0 -67
  1278. package/template/.qoder/skills/writing-beats/agents/openai.yaml +0 -5
  1279. package/template/.qoder/skills/writing-fragments/SKILL.md +0 -79
  1280. package/template/.qoder/skills/writing-fragments/agents/openai.yaml +0 -5
  1281. package/template/.qoder/skills/writing-shape/SKILL.md +0 -79
  1282. package/template/.qoder/skills/writing-shape/agents/openai.yaml +0 -5
  1283. package/template/.qoder/skills/yss-microapp-commit/SKILL.md +0 -201
  1284. package/template/.qoder/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1285. package/template/.qoder/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1286. package/template/.qoder/skills/yss-page-module-development/SKILL.md +0 -165
  1287. package/template/.qoder/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1288. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1289. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1290. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1291. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1292. package/template/.qoder/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1293. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1294. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1295. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1296. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1297. package/template/.qoder/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1298. package/template/.qoder/skills/yss-page-module-development/references/component-map.md +0 -34
  1299. package/template/.qoder/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1300. package/template/.qoder/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1301. package/template/.qoder/skills/yss-page-module-development/references/utils-map.md +0 -14
  1302. package/template/.trae/skills/ask-matt/PHASE-BOUNDARIES.md +0 -55
  1303. package/template/.trae/skills/ask-matt/SKILL.md +0 -95
  1304. package/template/.trae/skills/ask-matt/agents/openai.yaml +0 -5
  1305. package/template/.trae/skills/dispatching-parallel-agents/SKILL.md +0 -185
  1306. package/template/.trae/skills/loop-me/SKILL.md +0 -32
  1307. package/template/.trae/skills/loop-me/agents/openai.yaml +0 -5
  1308. package/template/.trae/skills/migrate-to-shoehorn/SKILL.md +0 -118
  1309. package/template/.trae/skills/migrate-to-shoehorn/agents/openai.yaml +0 -3
  1310. package/template/.trae/skills/prototype-page-acceptance/SKILL.md +0 -62
  1311. package/template/.trae/skills/scaffold-exercises/SKILL.md +0 -106
  1312. package/template/.trae/skills/scaffold-exercises/agents/openai.yaml +0 -3
  1313. package/template/.trae/skills/setup-pre-commit/SKILL.md +0 -91
  1314. package/template/.trae/skills/setup-pre-commit/agents/openai.yaml +0 -3
  1315. package/template/.trae/skills/setup-ts-deep-modules/SKILL.md +0 -102
  1316. package/template/.trae/skills/setup-ts-deep-modules/agents/openai.yaml +0 -5
  1317. package/template/.trae/skills/setup-ts-deep-modules/dependency-cruiser.config.cjs +0 -95
  1318. package/template/.trae/skills/teach/GLOSSARY-FORMAT.md +0 -35
  1319. package/template/.trae/skills/teach/LEARNING-RECORD-FORMAT.md +0 -46
  1320. package/template/.trae/skills/teach/MISSION-FORMAT.md +0 -31
  1321. package/template/.trae/skills/teach/RESOURCES-FORMAT.md +0 -32
  1322. package/template/.trae/skills/teach/SKILL.md +0 -140
  1323. package/template/.trae/skills/teach/agents/openai.yaml +0 -5
  1324. package/template/.trae/skills/writing-beats/SKILL.md +0 -67
  1325. package/template/.trae/skills/writing-beats/agents/openai.yaml +0 -5
  1326. package/template/.trae/skills/writing-fragments/SKILL.md +0 -79
  1327. package/template/.trae/skills/writing-fragments/agents/openai.yaml +0 -5
  1328. package/template/.trae/skills/writing-shape/SKILL.md +0 -79
  1329. package/template/.trae/skills/writing-shape/agents/openai.yaml +0 -5
  1330. package/template/.trae/skills/yss-microapp-commit/SKILL.md +0 -201
  1331. package/template/.trae/skills/yss-microapp-commit/agents/openai.yaml +0 -5
  1332. package/template/.trae/skills/yss-microapp-commit/references/scope-mapping.md +0 -204
  1333. package/template/.trae/skills/yss-page-module-development/SKILL.md +0 -165
  1334. package/template/.trae/skills/yss-page-module-development/agents/openai.yaml +0 -5
  1335. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/constant.ts +0 -32
  1336. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/hooks/useRuleConfig.ts +0 -158
  1337. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/index.vue +0 -188
  1338. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/schemas/ruleConfigSchema.ts +0 -256
  1339. package/template/.trae/skills/yss-page-module-development/examples/AdvancedFormPage/style.less +0 -76
  1340. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/constant.ts +0 -128
  1341. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useQualityRuleList.ts +0 -144
  1342. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/hooks/useRuleActions.ts +0 -141
  1343. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/index.vue +0 -175
  1344. package/template/.trae/skills/yss-page-module-development/examples/StandardListPage/style.less +0 -83
  1345. package/template/.trae/skills/yss-page-module-development/references/component-map.md +0 -34
  1346. package/template/.trae/skills/yss-page-module-development/references/frontend-docs.md +0 -11
  1347. package/template/.trae/skills/yss-page-module-development/references/hooks-map.md +0 -11
  1348. package/template/.trae/skills/yss-page-module-development/references/utils-map.md +0 -14
@@ -0,0 +1,73 @@
1
+ import { existsSync, readdirSync, readFileSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { openBackendDelivery } from './backend-delivery.mjs';
4
+ import { openBundle } from './strategic-handoff.mjs';
5
+ import { verifyConsumption } from './strategic-handoff-consumption.mjs';
6
+ import { read, safe, ensure, hash, schema, project } from './strategic-handoff-io.mjs';
7
+
8
+ function pointer(value, ref) {
9
+ ensure(ref.startsWith('/')&&!ref.includes('//'),'服务版本 JSON Pointer 无效');
10
+ return ref.slice(1).split('/').reduce((node,key)=>node?.[key.replace(/~1/g,'/').replace(/~0/g,'~')],value);
11
+ }
12
+
13
+ export async function probeBackend(delivery) {
14
+ const base=new URL(delivery.environment.base_url);
15
+ const url=new URL(delivery.environment.revision_path,base);
16
+ ensure(['http:','https:'].includes(base.protocol)&&!base.username&&!base.password&&!base.hash&&!base.search,'服务环境 URL 无效或包含凭据');
17
+ ensure(url.origin===base.origin&&!url.username&&!url.password&&!url.hash&&!url.search,'版本探测必须在登记环境内');
18
+ const headers={Accept:'application/json'};
19
+ if(delivery.environment.authorization_env) {
20
+ const authorization=process.env[delivery.environment.authorization_env];
21
+ ensure(authorization,'版本探测缺少登记的授权环境配置');headers.Authorization=authorization;
22
+ }
23
+ const response=await fetch(url,{method:'GET',redirect:'error',signal:AbortSignal.timeout(5000),headers});
24
+ ensure(response.ok,`真实接口不可用: HTTP ${response.status}`);
25
+ const reader=response.body.getReader();let size=0;const chunks=[];
26
+ try {
27
+ while(true) { const {done,value}=await reader.read();if(done)break;size+=value.length;ensure(size<=1024*1024,'版本探测响应超限');chunks.push(value); }
28
+ } finally { await reader.cancel(); }
29
+ const body=JSON.parse(Buffer.concat(chunks).toString('utf8'));
30
+ const expected={deployment_id:delivery.environment.deployment_id,source_commit:delivery.build.source_commit,openapi_digest:delivery.openapi.digest,artifact_digest:delivery.build.artifact_digest,test_data_digest:delivery.environment.test_data.digest};
31
+ for(const [key,value] of Object.entries(expected))ensure(pointer(body,delivery.environment.revision_pointers[key])===value,`真实服务版本不匹配: ${key}`);
32
+ return {command:`GET ${url.href}`,executed_at:new Date().toISOString(),exit_code:0,observed:expected};
33
+ }
34
+
35
+ export async function verifyFrontendDelivery({root=process.cwd(),acceptanceRef,sliceRef,expectedDigest}) {
36
+ project(root);
37
+ const file=safe(root,acceptanceRef), acceptance=read(file);
38
+ schema(acceptance,'docs/process/schemas/frontend-delivery-acceptance.schema.json');
39
+ const acceptanceDigest=hash(readFileSync(file));
40
+ if(expectedDigest)ensure(expectedDigest===acceptanceDigest,'前端接收记录摘要已变化,需重编译合同');
41
+ ensure(sliceRef&&acceptance.slice_id===sliceRef,'前端接收记录与执行切片不匹配');
42
+ const binding=acceptance.backend_delivery, receipt=read(safe(root,binding.import_receipt_ref));
43
+ const base=`docs/backend-deliveries/${receipt.delivery_id}/${receipt.version}`;
44
+ ensure(binding.import_receipt_ref===`${base}/import-receipt.json`&&receipt.package_ref===`${base}/package`,'后端收据路径与身份不匹配');
45
+ ensure(receipt.bundle_digest===binding.bundle_digest,'后端收据与接收记录摘要不匹配');
46
+ const versions=readdirSync(safe(root,`docs/backend-deliveries/${receipt.delivery_id}`)).filter(name=>/^v[1-9][0-9]*$/.test(name)&&existsSync(safe(root,`docs/backend-deliveries/${receipt.delivery_id}/${name}/import-receipt.json`,{missing:true}))).sort((a,b)=>Number(b.slice(1))-Number(a.slice(1)));
47
+ ensure(versions[0]===receipt.version,'已接收更新的后端交付,旧前端接收记录 stale');
48
+ return openBackendDelivery(safe(root,receipt.package_ref),async backend=>{
49
+ const delivery=backend.delivery;
50
+ ensure(backend.manifest.bundle_digest===receipt.bundle_digest&&backend.manifest.delivery_id===receipt.delivery_id&&backend.manifest.version===receipt.version,'后端包与收据不一致');
51
+ ensure(delivery.scope.slice_id===sliceRef&&delivery.strategic_bundle_digest===acceptance.strategic_handoff.bundle_digest,'后端、战略与前端切片版本不一致');
52
+ const strategic=await verifyConsumption(acceptance,{root,sliceRef,consumer:'frontend'});
53
+ ensure(strategic.result==='verified',`战略承接阻断: ${JSON.stringify(strategic.issues)}`);
54
+ const ids=acceptance.frontend_cases.map(item=>item.case_id);
55
+ ensure(new Set(ids).size===ids.length,'前端验收用例 ID 重复');
56
+ await openBundle(safe(backend.source,delivery.strategic_bundle_ref),bundle=>{
57
+ const visualCases=bundle.handoff.source.visual_baseline_ref.case_ids;
58
+ for(const item of acceptance.frontend_cases) {
59
+ ensure(item.operation_ids.every(id=>delivery.scope.operation_ids.includes(id)),'前端用例依赖未交付接口');
60
+ ensure(item.source_ids.every(id=>delivery.scope.source_ids.includes(id)),'前端用例依赖未交付规则/场景');
61
+ ensure(item.visual_case_ids.every(id=>visualCases.includes(id)),'前端用例视觉基线悬空');
62
+ const evidence=readFileSync(safe(root,item.evidence_ref));
63
+ ensure(evidence.length>0&&hash(evidence)===item.evidence_digest,'前端承接用例说明为空或摘要漂移');
64
+ }
65
+ });
66
+ for(const id of delivery.scope.source_ids) {
67
+ const row=acceptance.strategic_handoff.rows.find(item=>item.source_id===id);
68
+ ensure(row?.disposition==='mapped'&&row.dependent_slice_refs.includes(sliceRef),'当前交付规则/场景未承接到当前前端切片');
69
+ }
70
+ const actual=await probeBackend(delivery);
71
+ return {result:'inputs-verified',ready_for_agent:false,slice_id:sliceRef,acceptance_ref:acceptanceRef,acceptance_digest:acceptanceDigest,backend_bundle_digest:receipt.bundle_digest,strategic_bundle_digest:strategic.consumed_bundle_digest,actual_verification:actual,next_action:'prepare-or-revalidate-frontend-plan-and-slice-contract'};
72
+ });
73
+ }
@@ -0,0 +1,52 @@
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { ROOT, read, safe, ensure } from './strategic-handoff-io.mjs';
4
+
5
+ export function loadDeliveryProfile(root=ROOT) {
6
+ const metadata=['backend','frontend'].filter(side=>existsSync(path.join(root,`.yss-harness-${side}.json`)));
7
+ ensure(metadata.length<=1,'专职 Harness metadata 身份冲突');
8
+ const profilePath=path.join(root,'docs/process/harness-profile.yaml');
9
+ ensure(!metadata.length||existsSync(profilePath),'专职 Harness 缺少 profile,不得绕过执行门禁');
10
+ const profile=existsSync(profilePath)?read(safe(root,'docs/process/harness-profile.yaml')):null;
11
+ if(metadata.length) {
12
+ const expected=`harness.${metadata[0]}-delivery`;
13
+ const record=read(safe(root,`.yss-harness-${metadata[0]}.json`));
14
+ // Runtime scope checks preserve old projects; the new CLI still refuses their adoption.
15
+ const newIdentity=record.metadataSchemaVersion===2 && !('schema_version' in record) && !('profile_id' in record)
16
+ && record.profileId===expected && record.templateSource===`github:iloveZzz/yss-harness-${metadata[0]}-agent`
17
+ && profile?.instantiation?.cli_package===`create-yss-harness-${metadata[0]}`;
18
+ const oldIdentity=record.schema_version===1 && !('metadataSchemaVersion' in record) && record.profile_id===expected;
19
+ ensure((newIdentity||oldIdentity)&&profile?.profile_id===expected,'专职 Harness metadata 与 profile 不一致');
20
+ }
21
+ return profile;
22
+ }
23
+
24
+ function activeProfile(root) {
25
+ const profile=loadDeliveryProfile(root);
26
+ if (!['harness.backend-delivery','harness.frontend-delivery'].includes(profile?.profile_id)) return null;
27
+ const identity=read(safe(root,'yss-project.yaml'));
28
+ ensure(identity.schema_version===1&&['template-source','project-instance'].includes(identity.repository_mode),'专职 Harness 仓库身份无效');
29
+ return identity.repository_mode==='project-instance'?profile:null;
30
+ }
31
+
32
+ export function enforceHarnessTaskScope(task,{root=ROOT}={}) {
33
+ const profile=activeProfile(root);
34
+ if (!profile) return;
35
+ ensure(task.contract?.kind!=='template-maintenance','专职产品项目不得派发模板维护任务');
36
+ const local=[...profile.audience.target_user_roles,...profile.audience.control_plane_roles];
37
+ const crossReview=['Explorer','Reviewer'].includes(task.execution_state)&&task.allowed_write_paths.length===0;
38
+ ensure(local.includes(task.role_id)||crossReview,'专职 Harness 不允许派发另一端的实现/起草任务');
39
+ const opposite=profile.profile_id==='harness.frontend-delivery'?'backend':'frontend';
40
+ ensure(task.allowed_write_paths.every(ref=>!new RegExp(`^apps/${opposite}(?:/|$)`).test(ref)),'专职 Harness 不允许写入另一端工程');
41
+ }
42
+
43
+ export function enforceHarnessSkillScope(skills,registry,{root=ROOT}={}) {
44
+ const profile=activeProfile(root);
45
+ if (!profile) return;
46
+ const side=profile.profile_id==='harness.frontend-delivery'?'frontend':'backend';
47
+ const opposite=side==='frontend'?'backend':'frontend';
48
+ for (const id of skills) {
49
+ const impacts=registry.skills.find(skill=>skill.id===id)?.impacts||[];
50
+ ensure(!impacts.includes(opposite)||impacts.includes(side)||impacts.includes('lifecycle'),`专职 Harness 不允许编译另一端技能: ${id}`);
51
+ }
52
+ }
@@ -1,9 +1,12 @@
1
+ import { enforceHarnessSkillScope } from "./harness-execution-scope.mjs";
1
2
  import { createHash } from "node:crypto";
2
3
  import { readFileSync } from "node:fs";
3
4
  import path from "node:path";
4
5
  import { parseDocument } from "../vendor/yaml.mjs";
5
6
  import { DEFAULT_REGISTRY, loadSkillRegistry } from "./skill-registry.mjs";
6
7
  import { ROOT } from "./skill-supply-chain.mjs";
8
+ import { architectureDigest, assertArchitectureAgreement, validateArchitectureIdentity } from "./backend-architecture.mjs";
9
+ import { enforceFrontendDelivery } from "./frontend-delivery-boundary.mjs";
7
10
 
8
11
  export const DEFAULT_COMPILER_CONTRACT = path.join(
9
12
  ROOT,
@@ -58,9 +61,15 @@ export function compileImplementationContract({
58
61
  conditions = [],
59
62
  compiledAt = new Date().toISOString(),
60
63
  registryDigest,
61
- compilerContractDigest
64
+ compilerContractDigest,
65
+ architecture_identity,
66
+ architecture_evidence,
67
+ root = ROOT,
68
+ slice_id,
69
+ frontend_delivery
62
70
  }) {
63
71
  assertV2(registry, compilerContract);
72
+ const deliveryInput = enforceFrontendDelivery({ slice_id, frontend_delivery }, { root });
64
73
  if (!Array.isArray(recipeIds) || !Array.isArray(requiredCapabilities) || !Array.isArray(conditions)) {
65
74
  fail("recipeIds、requiredCapabilities 与 conditions 必须是数组");
66
75
  }
@@ -71,6 +80,16 @@ export function compileImplementationContract({
71
80
  const knownRecipes = new Map(registry.recipes.map((recipe) => [recipe.id, recipe]));
72
81
  for (const recipeId of requestedRecipes) if (!knownRecipes.has(recipeId)) fail(`未知 recipe: ${recipeId}`);
73
82
  const orderedRecipes = registry.recipes.filter((recipe) => requestedRecipes.has(recipe.id));
83
+ const retiredRecipes = new Set(["backend.domain-behavior", "backend.persistence-mybatis", "backend.http-api"]);
84
+ for (const recipe of orderedRecipes) if (retiredRecipes.has(recipe.id) || recipe.maturity === "deprecated") fail(`deprecated/read-only Recipe ${recipe.id};必须按架构重新编译`);
85
+ const architectural = orderedRecipes.some((recipe) => recipe.architecture_family) || requiredCapabilities.some((id) => id.startsWith("layer."));
86
+ let architectureProfile;
87
+ if (architectural || architecture_identity) {
88
+ architectureProfile = validateArchitectureIdentity(architecture_identity, registry);
89
+ if (!architecture_evidence?.engineering_baseline || !architecture_evidence?.repository_registration || !architecture_evidence?.manifest) fail("缺少工程基线、仓库登记或 Manifest 架构证据");
90
+ assertArchitectureAgreement(architecture_identity, architecture_evidence, registry);
91
+ for (const recipe of orderedRecipes) if (recipe.architecture_family && recipe.architecture_family !== architecture_identity.architecture_family) fail(`Recipe ${recipe.id} 与架构族不匹配`);
92
+ }
74
93
 
75
94
  const capabilitySources = new Map();
76
95
  const orderedCapabilities = [];
@@ -90,6 +109,11 @@ export function compileImplementationContract({
90
109
 
91
110
  const capabilities = new Map(registry.capabilities.map((capability) => [capability.id, capability]));
92
111
  for (const capabilityId of orderedCapabilities) if (!capabilities.has(capabilityId)) fail(`未知 capability: ${capabilityId}`);
112
+ const dddCapabilities = new Set(["layer.domain", "layer.application", "layer.persistence", "layer.web-adapter"]);
113
+ for (const id of orderedCapabilities) {
114
+ const family = capabilities.get(id).architecture_family ?? (dddCapabilities.has(id) ? "domain-driven" : null);
115
+ if (family && family !== architecture_identity?.architecture_family) fail(`capability ${id} 与 architecture_identity 不匹配`);
116
+ }
93
117
  const knownSkills = new Set(registry.skills.map((skill) => skill.id));
94
118
  const conditionSet = new Set(conditions);
95
119
  const reasons = new Map();
@@ -138,10 +162,19 @@ export function compileImplementationContract({
138
162
  orderedSkills.push(skill);
139
163
  };
140
164
  for (const root of roots) visit(root);
165
+ enforceHarnessSkillScope(orderedSkills, registry, { root });
141
166
 
142
167
  return {
143
168
  schema_version: 2,
144
169
  status: "draft",
170
+ ...(deliveryInput.result === "inputs-verified" ? { slice_id: deliveryInput.slice_id, frontend_delivery: { acceptance_ref: deliveryInput.acceptance_ref, digest: deliveryInput.acceptance_digest } } : {}),
171
+ ...(architecture_identity ? {
172
+ architecture_identity: structuredClone(architecture_identity),
173
+ architecture_identity_digest: architectureDigest(architecture_identity),
174
+ profile_maturity: architectureProfile.maturity,
175
+ readiness_blockers: architectureProfile.maturity === "supported" ? [] : ["backend-profile-not-supported"],
176
+ skill_profiles: Object.fromEntries(orderedSkills.map((skill) => [skill, architecture_identity.architecture_profile]))
177
+ } : {}),
145
178
  recipe_ids: orderedRecipes.map((recipe) => recipe.id),
146
179
  conditions: [...conditionSet].sort(),
147
180
  required_capabilities: orderedCapabilities,
@@ -164,13 +197,20 @@ export function compileDefaultImplementationContract(input = {}) {
164
197
  });
165
198
  }
166
199
 
167
- export function evaluateContractFreshness(contract, { registry, compilerContract }) {
200
+ export function evaluateContractFreshness(contract, { registry, compilerContract, root = ROOT }) {
168
201
  assertV2(registry, compilerContract);
169
202
  if (contract?.schema_version !== 2) fail("Slice Implementation Contract schema v1 已停止支持;必须重新编译 v2 合同");
170
203
  const resolution = contract.resolution ?? contract;
171
204
  const reasons = [];
205
+ try { enforceFrontendDelivery(contract, { root }); }
206
+ catch { reasons.push("frontend-delivery-stale-or-unavailable"); }
172
207
  if (resolution.registry_digest !== digestDocument(registry)) reasons.push("registry-digest-changed");
173
208
  if (resolution.compiler_contract_digest !== digestDocument(compilerContract)) reasons.push("compiler-contract-digest-changed");
209
+ if (resolution.architecture_identity) {
210
+ try { validateArchitectureIdentity(resolution.architecture_identity, registry); }
211
+ catch { reasons.push("architecture-identity-invalid"); }
212
+ if (resolution.architecture_identity_digest !== architectureDigest(resolution.architecture_identity)) reasons.push("architecture-identity-digest-changed");
213
+ }
174
214
  return { freshness: reasons.length ? "stale" : "current", reasons };
175
215
  }
176
216
 
@@ -183,11 +223,14 @@ export function validateExecutionResult(result, contract, current) {
183
223
  const consumed = result.consumed_contract ?? {};
184
224
  const resolution = contract.resolution ?? contract;
185
225
  const blockers = [];
226
+ if (resolution.architecture_identity && architectureDigest(result.architecture_identity ?? null) !== resolution.architecture_identity_digest) blockers.push("architecture-identity-mismatch");
227
+ if (resolution.readiness_blockers?.length) blockers.push(...resolution.readiness_blockers);
186
228
  if (consumed.contract_id !== contract.contract_id || consumed.contract_version !== contract.contract_version) blockers.push("contract-version-mismatch");
187
229
  if (consumed.registry_digest !== resolution.registry_digest || consumed.compiler_contract_digest !== resolution.compiler_contract_digest) blockers.push("resolution-digest-mismatch");
188
230
  if (!Array.isArray(result.verification_results) || !result.verification_results.length) blockers.push("verification-not-executed");
189
231
  else for (const item of result.verification_results) {
190
232
  if (!item?.command || item.exit_code === undefined || !item.executed_at) blockers.push("verification-result-incomplete");
233
+ else if (item.exit_code !== 0) blockers.push("verification-failed");
191
234
  }
192
235
  if (Array.isArray(result.new_impacts) && result.new_impacts.length) blockers.push("new-impacts");
193
236
  return { status: blockers.length ? "blocked" : "accepted", blockers: [...new Set(blockers)] };
@@ -51,7 +51,10 @@ function canonicalize(value) {
51
51
  }
52
52
 
53
53
  export function semanticProjection(registry) {
54
- return COLLECTIONS.flatMap((kind) => registry[kind].map((record) => ({ kind, record: canonicalize(record) })))
54
+ return COLLECTIONS.flatMap((kind) => registry[kind].map((record) => ({
55
+ kind,
56
+ record: canonicalize(Object.fromEntries(Object.entries(record).filter(([key]) => !key.startsWith("public_"))))
57
+ })))
55
58
  .sort((left, right) => left.record.id.localeCompare(right.record.id));
56
59
  }
57
60
 
@@ -117,6 +120,9 @@ export function validateRegistry(registry, { baseline = DEFAULT_BASELINE } = {})
117
120
  const prefix = collection === "work_units" ? "work-unit." : collection === "evidence" ? "evidence." : `${collection.slice(0, -1)}.`;
118
121
  if (!id.startsWith(prefix)) fail(`${id} 与 ${collection} 类型不匹配`);
119
122
  if (typeof record.name !== "string" || record.name.length === 0) fail(`${id} 缺少名称`);
123
+ for (const [key, value] of Object.entries(record).filter(([key]) => key.startsWith("public_"))) {
124
+ if (typeof value !== "string" || value.trim().length === 0) fail(`${id}.${key} 必须是非空字符串`);
125
+ }
120
126
  ids.set(id, collection);
121
127
  }
122
128
  }
@@ -143,25 +149,27 @@ export function validateRegistry(registry, { baseline = DEFAULT_BASELINE } = {})
143
149
  }
144
150
 
145
151
  export function renderLifecycleStructure(registry) {
152
+ const display = (record, field) => record[`public_${field}`] ?? record[field];
146
153
  const lines = [
147
154
  "<!-- lifecycle-registry:structure:start -->",
148
155
  `> 此结构区由 \`docs/process/lifecycle-registry.yaml\` 生成。当前为 \`${registry.status}\` 模式:它校验结构和派生文档,不改变运行时状态 schema 或人工批准语义。`, "",
149
156
  "## 1. 主阶段", "", "| 稳定 ID | 阶段 | 目标 | 退出标准 |", "|---|---|---|---|"
150
157
  ];
151
- for (const stage of registry.stages) lines.push(`| \`${stage.id}\` | ${stage.name} | ${stage.goal} | ${stage.exit_criteria} |`);
158
+ for (const stage of registry.stages) lines.push(`| \`${stage.id}\` | ${display(stage, "name")} | ${display(stage, "goal")} | ${display(stage, "exit_criteria")} |`);
152
159
  lines.push("", "## 2. 生命周期对象", "", "门禁是需要裁决的审查点;产物、工作单元和证据不是门禁的同义词。未命中条件的门禁记录 \`not-applicable\` 及原因,不生成空文档。", "", "### 2.1 条件门禁", "", "| 稳定 ID | 门禁 | 所属阶段 | 触发条件 | 前置门禁 | 必须留下的证据 |", "|---|---|---|---|---|---|");
153
- for (const gate of registry.gates) lines.push(`| \`${gate.id}\` | ${gate.name} | \`${gate.stage}\` | ${gate.trigger} | ${(gate.requires_gates ?? []).map((id) => `\`${id}\``).join("、") || "无"} | ${gate.evidence.map((id) => `\`${id}\``).join("、")} |`);
160
+ for (const gate of registry.gates) lines.push(`| \`${gate.id}\` | ${display(gate, "name")} | \`${gate.stage}\` | ${display(gate, "trigger")} | ${(gate.requires_gates ?? []).map((id) => `\`${id}\``).join("、") || "无"} | ${gate.evidence.map((id) => `\`${id}\``).join("、")} |`);
154
161
  lines.push("", "### 2.2 生命周期产物", "", "| 稳定 ID | 产物 | 所属阶段 | 触发条件 |", "|---|---|---|---|");
155
- for (const artifact of registry.artifacts) lines.push(`| \`${artifact.id}\` | ${artifact.name} | \`${artifact.stage}\` | ${artifact.trigger} |`);
162
+ for (const artifact of registry.artifacts) lines.push(`| \`${artifact.id}\` | ${display(artifact, "name")} | \`${artifact.stage}\` | ${display(artifact, "trigger")} |`);
156
163
  lines.push("", "### 2.3 执行证据", "", "| 稳定 ID | 证据 | 说明 |", "|---|---|---|");
157
- for (const evidence of registry.evidence) lines.push(`| \`${evidence.id}\` | ${evidence.name} | ${evidence.description} |`);
164
+ for (const evidence of registry.evidence) lines.push(`| \`${evidence.id}\` | ${display(evidence, "name")} | ${display(evidence, "description")} |`);
158
165
  lines.push("<!-- lifecycle-registry:structure:end -->");
159
166
  return `${lines.join("\n")}\n`;
160
167
  }
161
168
 
162
169
  export function renderWorkUnits(registry) {
170
+ const display = (record, field) => record[`public_${field}`] ?? record[field];
163
171
  const lines = ["<!-- lifecycle-registry:work-units:start -->", "> 此表由 `docs/process/lifecycle-registry.yaml` 生成;工作单元按 `scope` 区分模板维护与项目实例流程。", "", "| 稳定 ID | 范围 | 工作单元 | 输入 | 输出 | 完成条件 |", "|---|---|---|---|---|---|"];
164
- for (const unit of registry.work_units) lines.push(`| \`${unit.id}\` | ${unit.scope} | ${unit.name} | ${unit.input} | ${unit.output} | ${unit.completion} |`);
172
+ for (const unit of registry.work_units) lines.push(`| \`${unit.id}\` | ${unit.scope} | ${display(unit, "name")} | ${display(unit, "input")} | ${display(unit, "output")} | ${display(unit, "completion")} |`);
165
173
  lines.push("<!-- lifecycle-registry:work-units:end -->");
166
174
  return `${lines.join("\n")}\n`;
167
175
  }
@@ -1,5 +1,7 @@
1
1
  import { existsSync, readFileSync } from "node:fs";
2
2
  import { parseDocument } from "../vendor/yaml.mjs";
3
+ import { assertWorkUnitUserDecision, assertImplementationDecision } from "./user-decision.mjs";
4
+ import { enforceFrontendDelivery } from "./frontend-delivery-boundary.mjs";
3
5
 
4
6
  const IMPLEMENTATION_WORK_UNIT = "work-unit.slice-implementation";
5
7
  const TICKET_DECOMPOSITION_WORK_UNIT = "work-unit.ticket-decomposition";
@@ -110,10 +112,17 @@ function validateTicketReference(ref, trackerKind) {
110
112
  * Workflow Execution Result may omit a route; completed results are checked
111
113
  * by `validateWorkflowExecutionResult` before this function is called.
112
114
  */
113
- export function validateNextRoute(currentWorkUnit, nextRoute) {
115
+ export function validateNextRoute(currentWorkUnit, nextRoute, decisionState, options = {}) {
116
+ if (["work-unit.technical-analysis", TICKET_DECOMPOSITION_WORK_UNIT, IMPLEMENTATION_WORK_UNIT, "work-unit.frontend-implementation-verification"].includes(nextRoute)) {
117
+ try { enforceFrontendDelivery(decisionState, { root: options.root, phase: nextRoute === IMPLEMENTATION_WORK_UNIT ? "implementation" : "inputs" }); }
118
+ catch (error) { return blockedResult(["frontend-delivery-blocked"], [error.message]); }
119
+ }
114
120
  const routes = NEXT_ROUTES[currentWorkUnit];
115
121
  if (!routes) return blockedResult([BLOCKING_SIGNALS.invalidRoute], ["known_current_work_unit"]);
116
- if (nextRoute === null && routes.length === 0) return allowedResult();
122
+ if (nextRoute === null && routes.length === 0) {
123
+ if (decisionState) return validateDecisionBoundary(currentWorkUnit, decisionState, options);
124
+ return allowedResult();
125
+ }
117
126
  if (!hasText(nextRoute) || !routes.includes(nextRoute)) {
118
127
  const signals = [BLOCKING_SIGNALS.invalidRoute];
119
128
  if (nextRoute === IMPLEMENTATION_WORK_UNIT && currentWorkUnit !== TICKET_DECOMPOSITION_WORK_UNIT) {
@@ -121,14 +130,21 @@ export function validateNextRoute(currentWorkUnit, nextRoute) {
121
130
  }
122
131
  return blockedResult(signals, ["allowed_next_route"]);
123
132
  }
124
- return allowedResult();
133
+ return decisionState ? validateDecisionBoundary(currentWorkUnit, decisionState, options) : allowedResult();
134
+ }
135
+
136
+ function validateDecisionBoundary(workUnit, state, options) {
137
+ try { assertWorkUnitUserDecision(workUnit, state, options); return allowedResult(); }
138
+ catch (error) { return blockedResult([error.code || "user-decision-invalid"], [error.message]); }
125
139
  }
126
140
 
127
141
  /**
128
142
  * Validate that Ticket formalization produced a real, implementable vertical slice.
129
143
  * `exists` is injectable so external adapters can resolve their own tracker refs.
130
144
  */
131
- export function validateTicketFormalization(state, { exists = existsSync, read = (ref) => readFileSync(ref, "utf8") } = {}) {
145
+ export function validateTicketFormalization(state, { exists = existsSync, read = (ref) => readFileSync(ref, "utf8"), ...decisionOptions } = {}) {
146
+ try { enforceFrontendDelivery(state, { root: decisionOptions.root, phase: "implementation" }); }
147
+ catch (error) { return blockedResult(["frontend-delivery-blocked"], [error.message]); }
132
148
  const decomposition = state?.ticket_decomposition_result;
133
149
  const ticket = state?.vertical_slice_ticket;
134
150
  const contract = state?.slice_contract;
@@ -233,6 +249,12 @@ export function validateTicketFormalization(state, { exists = existsSync, read =
233
249
  missing.push("ticket formalization inputs are current");
234
250
  }
235
251
 
252
+ try {
253
+ assertImplementationDecision(state, { ...decisionOptions, read });
254
+ } catch (error) {
255
+ signals.push(error.code || "user-decision-invalid");
256
+ missing.push(error.message);
257
+ }
236
258
  return signals.length === 0 ? allowedResult(evidenceRefs) : blockedResult(signals, missing, evidenceRefs);
237
259
  }
238
260
 
@@ -0,0 +1,26 @@
1
+ /** 新后端骨架仅提供显式本地验证配置;不绑定生产数据库。 */
2
+ export const VERIFICATION_DATABASE = "h2";
3
+ export const PRODUCTION_DATABASE = "not-bound";
4
+
5
+ export function assertLocalDatabaseProfile(profiles) {
6
+ if (profiles?.verification_database !== VERIFICATION_DATABASE || profiles?.production_database !== PRODUCTION_DATABASE || Object.hasOwn(profiles ?? {}, "database")) {
7
+ throw new Error("新脚手架必须声明 verification_database=h2、production_database=not-bound;旧 database Profile 必须重新批准,不作静默迁移");
8
+ }
9
+ }
10
+
11
+ export function localDatabaseConfiguration(name) {
12
+ return `# 仅通过 scaffold-local 显式启用;不用于生产。\nspring:\n datasource:\n url: jdbc:h2:mem:${name.replaceAll("-", "_")};DB_CLOSE_DELAY=-1\n username: sa\n password: \"\"\n driver-class-name: org.h2.Driver\n sql:\n init:\n mode: never\n cloud:\n discovery:\n enabled: false\n service-registry:\n auto-registration:\n enabled: false\n nacos:\n discovery:\n enabled: false\n config:\n enabled: false\n cache:\n type: none\n`;
13
+ }
14
+
15
+ export function scaffoldArchitectureIdentity(contract, contractDigest) {
16
+ return {
17
+ architecture_family: contract.architecture_family,
18
+ architecture_profile: contract.architecture_profile,
19
+ generator_skill: contract.generator_skill,
20
+ requested_capabilities: contract.module_profile.requested_capabilities,
21
+ resolved_modules: contract.module_profile.resolved_modules,
22
+ contract_digest: contractDigest,
23
+ verification_database: VERIFICATION_DATABASE,
24
+ production_database: PRODUCTION_DATABASE
25
+ };
26
+ }
@@ -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");