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,341 @@
1
+ import test from "node:test";
2
+ // Historical Oracle/Mock fixtures; retained for migration audit only.
3
+ import assert from "node:assert/strict";
4
+ import { mkdtemp, readFile, readdir, rm, stat, writeFile, mkdir } from "node:fs/promises";
5
+ import { spawnSync } from "node:child_process";
6
+ import os from "node:os";
7
+ import path from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const script = path.join(path.dirname(fileURLToPath(import.meta.url)), "generate_project.mjs");
11
+ const verifyScript = path.join(path.dirname(fileURLToPath(import.meta.url)), "verify_project.mjs");
12
+ const harnessRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../../..");
13
+ const gitAuthorEnvironment = {
14
+ GIT_CONFIG_COUNT: "1",
15
+ GIT_CONFIG_KEY_0: "user.name",
16
+ GIT_CONFIG_VALUE_0: "Scaffold Tester"
17
+ };
18
+ function run(args, options = {}) {
19
+ return spawnSync(process.execPath, [script, ...args], {
20
+ encoding: "utf8",
21
+ ...options,
22
+ env: { ...process.env, ...gitAuthorEnvironment, ...(options.env ?? {}) }
23
+ });
24
+ }
25
+ async function expectedDistributedLock() {
26
+ const lock = JSON.parse(await readFile(path.join(harnessRoot, "skills-lock.json"), "utf8"));
27
+ delete lock.skills?.shared?.["yss-mvc-scaffold-generator"];
28
+ for (const platform of Object.values(lock.skills?.platform ?? {})) delete platform?.["yss-mvc-scaffold-generator"];
29
+ return `${JSON.stringify(lock, null, 2)}\n`;
30
+ }
31
+ test("生成固定六模块和 mock endpoint", async (t) => {
32
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-scaffold-")); t.after(() => rm(base, { recursive: true, force: true }));
33
+ const target = path.join(base, "item1"); const result = run(["--project-name", "data-analysis-item1", "--base-package", "com.yss.dataanalysis.item1", "--target-dir", target, "--database", "oracle", "--with-mock"]);
34
+ assert.equal(result.status, 0, result.stderr); const backend = target; const pom = await readFile(path.join(backend, "pom.xml"), "utf8");
35
+ const skillUtils = path.join(base, "skillUtils");
36
+ for (const module of ["server", "core", "client", "repository", "adapter", "feign-client"]) assert.match(pom, new RegExp(`<module>${module}</module>`));
37
+ const controller = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/controller/AnalysisController.java"), "utf8"); assert.match(controller, /\/api\/analysis/); assert.doesNotMatch(controller, /;[ \t]+import /);
38
+ assert.match(controller, /\* \u6570\u636e\u5206\u6790\u67e5\u8be2\u63a5\u53e3\u3002/);
39
+ assert.match(controller, /@author Scaffold Tester/);
40
+ assert.match(controller, /@date \d{4}\/\d{2}\/\d{2} \d{2}:\d{2}/);
41
+ assert.match(controller, /\* \u5206\u9875\u67e5\u8be2\u6570\u636e\u5206\u6790\u7ed3\u679c\u3002[\s\S]*@param query[\s\S]*@return \u6570\u636e\u5206\u6790\u5206\u9875\u7ed3\u679c/);
42
+ const mock = await readFile(path.join(backend, "adapter/src/main/java/com/yss/dataanalysis/item1/adapter/mock/MockAnalysisQueryExecutor.java"), "utf8"); assert.match(mock, /source|"mock"/);
43
+ const configuration = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/configuration/AnalysisConfiguration.java"), "utf8"); assert.match(configuration, /Profile\("mock"\)/); assert.match(configuration, /Profile\("oracle & !mock"\)/);
44
+ await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/Application.java"), "utf8");
45
+ const controllerTest = await readFile(path.join(backend, "server/src/test/java/com/yss/dataanalysis/item1/server/controller/AnalysisControllerTest.java"), "utf8");
46
+ assert.match(controllerTest, /pageNo/);
47
+ assert.match(await readFile(path.join(target, "yss-project.yaml"), "utf8"), /repository_mode: project-instance/);
48
+ const generatedAgents = await readFile(path.join(target, "AGENTS.md"), "utf8");
49
+ assert.match(generatedAgents, /当前仓库是 `project-instance`,模板维护只在上游 Harness 执行/);
50
+ assert.doesNotMatch(generatedAgents, /按“影响面 → 单一事实来源 → 投影 \/ 派生资产 → 分级证据”维护/);
51
+ assert.match(await readFile(path.join(target, "CONTEXT.md"), "utf8"), /AnalysisDataset/);
52
+ assert.match(await readFile(path.join(target, ".artifact-workspace.yaml"), "utf8"), /kind: service/);
53
+ assert.match(await readFile(path.join(target, "docs/service/module-map.md"), "utf8"), /feign-client/);
54
+ assert.match(await readFile(path.join(target, "docs/service/current-capabilities.md"), "utf8"), /普通功能开发不手工修改/);
55
+ assert.match(await readFile(path.join(target, "docs/process/implementation-repo-registry.yaml"), "utf8"), /repository_scope: external-repository/);
56
+ const analysisProject = await readFile(path.join(target, "docs/process/analysis-project.yaml"), "utf8"); assert.match(analysisProject, /project_name: data-analysis-item1/); assert.doesNotMatch(analysisProject, /galaxy-data-analysis|fegin-client/);
57
+ assert.match(await readFile(path.join(target, "docs/process/lifecycle-registry.yaml"), "utf8"), /schema_version:/);
58
+ assert.match(await readFile(path.join(target, "docs/templates/vertical-slice-ticket-template.md"), "utf8"), /status: ready-for-human/);
59
+ assert.match(await readFile(path.join(target, "docs/templates/local-parent-ticket-template.md"), "utf8"), /lifecycle_status \| routing \/ running \/ paused-human-gate \/ blocked \/ completed/);
60
+ const lifecycleContract = await readFile(path.join(skillUtils, ".agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml"), "utf8");
61
+ assert.match(lifecycleContract, /entry_routing:/);
62
+ assert.match(lifecycleContract, /workflow_execution_result:/);
63
+ assert.match(lifecycleContract, /work_unit_routes:/);
64
+ assert.match(await readFile(path.join(target, "docs/templates/approval-record-template.yaml"), "utf8"), /gate_id:/);
65
+ assert.match(await readFile(path.join(target, "docs/templates/implementation-routing-template.md"), "utf8"), /implementation/);
66
+ assert.match(await readFile(path.join(target, "docs/templates/verification-record-template.md"), "utf8"), /verification/i);
67
+ await readFile(path.join(skillUtils, ".agents/skills/yss-product-lifecycle/SKILL.md"), "utf8");
68
+ for (const projection of [".agents", ".claude", ".codex", ".cursor", ".pi", ".qoder", ".trae"]) {
69
+ await assert.rejects(stat(path.join(skillUtils, projection, "skills/yss-mvc-scaffold-generator")), { code: "ENOENT" });
70
+ }
71
+ assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
72
+ assert.equal(spawnSync("git", ["-C", target, "branch", "--show-current"], { encoding: "utf8" }).stdout.trim(), "main");
73
+ assert.equal(spawnSync("git", ["-C", target, "rev-list", "--all", "--count"], { encoding: "utf8" }).stdout.trim(), "0");
74
+ assert.equal(spawnSync("git", ["-C", target, "remote"], { encoding: "utf8" }).stdout.trim(), "");
75
+ const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
76
+ assert.equal(verification.status, 0, verification.stderr);
77
+ await assert.rejects(stat(path.join(skillUtils, ".agents/skills/data-analysis-java-implementation")), { code: "ENOENT" });
78
+ const implementationRegistry = await readFile(path.join(target, "docs/process/implementation-repo-registry.yaml"), "utf8");
79
+ assert.doesNotMatch(implementationRegistry, /data-analysis-java-implementation|verify_java_web_style\.mjs/);
80
+ assert.match(implementationRegistry, /fmt-maven-plugin:2\.9\.1:check/);
81
+ assert.doesNotMatch(implementationRegistry, /smart-doc-maven-plugin:[^\s]+:openapi/);
82
+ assert.doesNotMatch(implementationRegistry, /smart-doc-verification\.md/);
83
+ const projectInstanceDocs = await Promise.all([
84
+ "AGENTS.md",
85
+ "docs/agents/skills-maintenance.md",
86
+ "docs/agents/gitlab-workflow-skills.md",
87
+ "docs/agents/issue-tracker.md",
88
+ "docs/process/implementation-repo-integration.md",
89
+ "docs/process/harness-process-tailoring.md",
90
+ "docs/templates/build-architecture-checklist-template.md"
91
+ ].map((relative) => readFile(path.join(target, relative), "utf8")));
92
+ const staleProjectCommands = /scripts\/(?:verify-template|sync-skills|update-skill-lock|export-yss-skills|verify-upstream-skill-source|verify-maintenance-checkpoint|verify-implementation-path-scenarios|gitworks)/;
93
+ for (const body of projectInstanceDocs) assert.doesNotMatch(body, staleProjectCommands);
94
+ const serverPom = await readFile(path.join(backend, "server/pom.xml"), "utf8");
95
+ assert.match(serverPom, /<profiles>[\s\S]*<id>nacos<\/id>[\s\S]*<activeByDefault>true<\/activeByDefault>/);
96
+ assert.match(serverPom, /<app\.env>dev<\/app\.env>[\s\S]*<app\.profiles>nacos<\/app\.profiles>/);
97
+ assert.match(serverPom, /spring-boot-maven-plugin/);
98
+ assert.match(serverPom, /<includes>[\s\S]*data-analysis-item1-client[\s\S]*data-analysis-item1-core[\s\S]*data-analysis-item1-repository[\s\S]*<\/includes>/);
99
+ const smartDocPlugin = serverPom.match(/<plugin>(?:(?!<\/plugin>)[\s\S])*?<artifactId>smart-doc-maven-plugin<\/artifactId>(?:(?!<\/plugin>)[\s\S])*?<\/plugin>/)?.[0];
100
+ assert.ok(smartDocPlugin);
101
+ assert.doesNotMatch(smartDocPlugin, /<executions>/);
102
+ const smartDoc = await readFile(path.join(backend, "server/src/main/resources/smart-doc.json"), "utf8");
103
+ assert.match(smartDoc, /"projectName": "data-analysis-item1"/);
104
+ assert.match(smartDoc, /"packageFilters": "com\.yss\.dataanalysis\.item1\.server\.controller\.\*"/);
105
+ assert.match(smartDoc, /"showAuthor": true/);
106
+ assert.match(smartDoc, /"appToken": ""/);
107
+ assert.doesNotMatch(smartDoc, /43fd1d4bc1c743c1b83bf4843e8167bf|192\.168\./);
108
+ const logback = await readFile(path.join(backend, "server/src/main/resources/logback-spring.xml"), "utf8");
109
+ assert.match(logback, /springProfile name="dev,mock"/);
110
+ assert.match(logback, /springProfile name="uat,pro,oracle,oceanbase-oracle"/);
111
+ assert.match(logback, /com\.yss\.dataanalysis\.item1/);
112
+ const bootstrap = await readFile(path.join(backend, "server/src/main/resources/bootstrap.yml"), "utf8");
113
+ assert.match(bootstrap, /active: \$\{app\.env:dev\},datasource,nacos,oracle,mock/);
114
+ assert.doesNotMatch(bootstrap, /mock,\s*$/m);
115
+ const bootstrapNacos = await readFile(path.join(backend, "server/src/main/resources/bootstrap-nacos.yml"), "utf8");
116
+ assert.match(bootstrapNacos, /server-addr: \$\{nacosserver:192\.168\.165\.58:8848\}/);
117
+ assert.match(bootstrapNacos, /group: \$\{nacos_group:yss-dm\}/);
118
+ assert.match(bootstrapNacos, /discovery:[\s\S]*enabled: true[\s\S]*config:[\s\S]*enabled: true/);
119
+ const bootstrapMock = await readFile(path.join(backend, "server/src/main/resources/bootstrap-mock.yml"), "utf8");
120
+ assert.match(bootstrapMock, /discovery:[\s\S]*enabled: false/);
121
+ assert.match(bootstrapMock, /config:[\s\S]*enabled: false[\s\S]*import-check:[\s\S]*enabled: false/);
122
+ const applicationMock = await readFile(path.join(backend, "server/src/main/resources/application-mock.yml"), "utf8");
123
+ assert.match(applicationMock, /leaf:[\s\S]*leafSegmentEnable: false[\s\S]*leafSnowflakeEnable: false/);
124
+ assert.match(applicationMock, /com\.yss\.cloud\.mybatis\.MybatisPlusConfiguration/);
125
+ assert.match(applicationMock, /com\.yss\.cloud\.sankuai\.config\.LeafDataSourceConfiguration/);
126
+ const application = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/Application.java"), "utf8");
127
+ assert.doesNotMatch(application, /@EnableDistributedId/);
128
+ const databaseInfrastructure = await readFile(path.join(backend, "server/src/main/java/com/yss/dataanalysis/item1/server/configuration/DatabaseInfrastructureConfiguration.java"), "utf8");
129
+ assert.match(databaseInfrastructure, /@Profile\("!mock"\)/);
130
+ assert.match(databaseInfrastructure, /@EnableDistributedId/);
131
+ assert.match(databaseInfrastructure, /@Import\(MapperConfiguration.class\)/);
132
+ });
133
+
134
+ test("已有 skillUtils 落后时原子刷新并保留备份", async (t) => {
135
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-refresh-"));
136
+ t.after(() => rm(base, { recursive: true, force: true }));
137
+ const skillUtils = path.join(base, "skillUtils");
138
+ await mkdir(skillUtils, { recursive: true });
139
+ await writeFile(path.join(skillUtils, "skill-utils.yaml"), "schema_version: 1\nkind: yss-skill-utils\n", "utf8");
140
+ await writeFile(path.join(skillUtils, "skills-lock.json"), "{\"version\":0}\n", "utf8");
141
+ await writeFile(path.join(skillUtils, "local-marker.txt"), "preserve old installation\n", "utf8");
142
+ const target = path.join(base, "item-refresh");
143
+ const result = run(["--project-name", "data-analysis-refresh", "--base-package", "com.yss.dataanalysis.refresh", "--target-dir", target]);
144
+ assert.equal(result.status, 0, result.stderr);
145
+ const output = JSON.parse(result.stdout);
146
+ assert.equal(output.skill_utils_created, false);
147
+ assert.equal(output.skill_utils_refreshed, true);
148
+ assert.ok(output.skill_utils_backup);
149
+ assert.equal(await readFile(path.join(output.skill_utils_backup, "local-marker.txt"), "utf8"), "preserve old installation\n");
150
+ assert.equal(await readFile(path.join(skillUtils, "skills-lock.json"), "utf8"), await expectedDistributedLock());
151
+ });
152
+
153
+ test("已有 skillUtils 与源锁一致时直接复用", async (t) => {
154
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-reuse-"));
155
+ t.after(() => rm(base, { recursive: true, force: true }));
156
+ const first = run(["--project-name", "data-analysis-reuse-a", "--base-package", "com.yss.dataanalysis.reusea", "--target-dir", path.join(base, "item-a")]);
157
+ assert.equal(first.status, 0, first.stderr);
158
+ const second = run(["--project-name", "data-analysis-reuse-b", "--base-package", "com.yss.dataanalysis.reuseb", "--target-dir", path.join(base, "item-b")]);
159
+ assert.equal(second.status, 0, second.stderr);
160
+ const output = JSON.parse(second.stdout);
161
+ assert.equal(output.skill_utils_created, false);
162
+ assert.equal(output.skill_utils_refreshed, false);
163
+ assert.equal(output.skill_utils_backup, null);
164
+ });
165
+
166
+ test("dry-run 仅报告 skillUtils 将刷新且不修改旧目录", async (t) => {
167
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-skill-dry-refresh-"));
168
+ t.after(() => rm(base, { recursive: true, force: true }));
169
+ const skillUtils = path.join(base, "skillUtils");
170
+ await mkdir(skillUtils, { recursive: true });
171
+ await writeFile(path.join(skillUtils, "skill-utils.yaml"), "schema_version: 1\nkind: yss-skill-utils\n", "utf8");
172
+ await writeFile(path.join(skillUtils, "skills-lock.json"), "{\"version\":0}\n", "utf8");
173
+ const result = run(["--project-name", "data-analysis-dry-refresh", "--base-package", "com.yss.dataanalysis.dryrefresh", "--target-dir", path.join(base, "item"), "--dry-run"]);
174
+ assert.equal(result.status, 0, result.stderr);
175
+ const output = JSON.parse(result.stdout);
176
+ assert.equal(output.skill_utils_refreshed, true);
177
+ assert.equal(output.skill_utils_backup, null);
178
+ assert.equal(await readFile(path.join(skillUtils, "skills-lock.json"), "utf8"), "{\"version\":0}\n");
179
+ assert.deepEqual((await readdir(base)).sort(), ["skillUtils"]);
180
+ });
181
+
182
+ test("Git 当前用户写入 Javadoc 且缺失时拒绝生成", async (t) => {
183
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-author-")); t.after(() => rm(base, { recursive: true, force: true }));
184
+ const target = path.join(base, "author-project");
185
+ const generated = run(["--project-name", "author-project", "--base-package", "com.yss.author", "--target-dir", target], {
186
+ env: { GIT_CONFIG_VALUE_0: "张三" }
187
+ });
188
+ assert.equal(generated.status, 0, generated.stderr);
189
+ const controller = await readFile(path.join(target, "server/src/main/java/com/yss/author/server/controller/AnalysisController.java"), "utf8");
190
+ assert.match(controller, /@author 张三/);
191
+ assert.doesNotMatch(controller, /@author system/);
192
+
193
+ const missingTarget = path.join(base, "missing-author");
194
+ const missing = run(["--project-name", "missing-author", "--base-package", "com.yss.missing", "--target-dir", missingTarget], {
195
+ env: { GIT_CONFIG_COUNT: "0", GIT_CONFIG_NOSYSTEM: "1", GIT_CONFIG_GLOBAL: path.join(base, "not-found.gitconfig") }
196
+ });
197
+ assert.notEqual(missing.status, 0);
198
+ assert.match(missing.stderr, /Git user\.name/);
199
+ await assert.rejects(stat(missingTarget), { code: "ENOENT" });
200
+ });
201
+
202
+ test("不启用 Mock 时不生成 bootstrap-mock 且不激活 mock profile", async (t) => {
203
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-no-mock-profile-")); t.after(() => rm(base, { recursive: true, force: true }));
204
+ const target = path.join(base, "data-analysis-no-mock");
205
+ const result = run(["--project-name", "data-analysis-no-mock", "--base-package", "com.yss.dataanalysis.nomock", "--target-dir", target]);
206
+ assert.equal(result.status, 0, result.stderr);
207
+ const bootstrap = await readFile(path.join(target, "server/src/main/resources/bootstrap.yml"), "utf8");
208
+ assert.match(bootstrap, /active: \$\{app\.env:dev\},datasource,nacos,oracle/);
209
+ assert.doesNotMatch(bootstrap, /,mock/);
210
+ await assert.rejects(stat(path.join(target, "server/src/main/resources/bootstrap-mock.yml")), { code: "ENOENT" });
211
+ });
212
+
213
+ test("Maven settings \u4f5c\u4e3a外部验证输入且不写入项目", async (t) => {
214
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-settings-")); t.after(() => rm(base, { recursive: true, force: true }));
215
+ const settings = path.join(base, "settings.xml");
216
+ await writeFile(settings, "<settings/>\n");
217
+ const target = path.join(base, "data-analysis-item-settings");
218
+ const result = run(["--project-name", "data-analysis-item-settings", "--base-package", "com.yss.dataanalysis.settings", "--target-dir", target, "--maven-settings", settings]);
219
+ assert.equal(result.status, 0, result.stderr);
220
+ const manifest = await readFile(path.join(target, ".yss/scaffold-generation.json"), "utf8");
221
+ assert.match(manifest, /"maven_settings_mode": "external"/);
222
+ assert.match(manifest, /"maven_settings_required": true/);
223
+ assert.doesNotMatch(manifest, new RegExp(settings.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")));
224
+ assert.equal((await readdir(target)).includes("settings.xml"), false);
225
+ });
226
+ test("Maven settings 支持环境变量且显式参数优先", async (t) => {
227
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-settings-resolution-")); t.after(() => rm(base, { recursive: true, force: true }));
228
+ const environmentSettings = path.join(base, "environment-settings.xml");
229
+ const explicitSettings = path.join(base, "explicit-settings.xml");
230
+ await writeFile(environmentSettings, "<settings/>\n");
231
+ await writeFile(explicitSettings, "<settings/>\n");
232
+ const environmentTarget = path.join(base, "environment-project");
233
+ const fromEnvironment = run(["--project-name", "environment-project", "--base-package", "com.yss.environment", "--target-dir", environmentTarget, "--dry-run"], { env: { YSS_MAVEN_SETTINGS: environmentSettings } });
234
+ assert.equal(fromEnvironment.status, 0, fromEnvironment.stderr);
235
+ assert.match(fromEnvironment.stdout, /"maven_settings_source": "environment"/);
236
+ const explicitTarget = path.join(base, "explicit-project");
237
+ const fromExplicit = run(["--project-name", "explicit-project", "--base-package", "com.yss.explicit", "--target-dir", explicitTarget, "--maven-settings", explicitSettings, "--dry-run"], { env: { YSS_MAVEN_SETTINGS: environmentSettings } });
238
+ assert.equal(fromExplicit.status, 0, fromExplicit.stderr);
239
+ assert.match(fromExplicit.stdout, /"maven_settings_source": "explicit"/);
240
+ });
241
+ test("未指定 settings 时仍完整生成,并将依赖解析延后到验证阶段", async (t) => {
242
+ const base = await mkdtemp(path.join(os.tmpdir(), "yss-mvc-no-settings-"));
243
+ t.after(() => rm(base, { recursive: true, force: true }));
244
+ const target = path.join(base, "no-settings-project");
245
+ const result = run(["--project-name", "no-settings-project", "--base-package", "com.yss.nosettings", "--target-dir", target], {
246
+ env: { YSS_MAVEN_SETTINGS: "", USERPROFILE: path.join(base, "missing-user"), HOME: path.join(base, "missing-home") }
247
+ });
248
+ assert.equal(result.status, 0, result.stderr);
249
+ const output = JSON.parse(result.stdout);
250
+ assert.equal(output.maven_settings_source, "maven-default");
251
+ assert.equal(output.maven_settings_available, false);
252
+ assert.equal(output.dependency_resolution, "deferred");
253
+ assert.equal(output.network_access_during_generation, "disabled");
254
+ for (const module of ["server", "core", "client", "repository", "adapter", "feign-client"]) {
255
+ await stat(path.join(target, module, "pom.xml"));
256
+ }
257
+ await stat(path.join(target, "mvnw"));
258
+ assert.equal((await readdir(target)).includes("settings.xml"), false);
259
+ });
260
+ test("拒绝非空目标目录", async (t) => {
261
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-scaffold-nonempty-")); t.after(() => rm(base, { recursive: true, force: true })); await mkdir(base, { recursive: true }); await writeFile(path.join(base, "keep.txt"), "keep");
262
+ const result = run(["--project-name", "data-analysis-item1", "--base-package", "com.yss.dataanalysis.item1", "--target-dir", base]); assert.notEqual(result.status, 0); assert.match(result.stderr, /目标目录非空/);
263
+ });
264
+ test("允许已存在的空目标目录", async (t) => {
265
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-empty-target-")); t.after(() => rm(base, { recursive: true, force: true }));
266
+ const target = path.join(base, "data-analysis-item-empty"); await mkdir(target);
267
+ const result = run(["--project-name", "data-analysis-item-empty", "--base-package", "com.yss.dataanalysis.empty", "--target-dir", target]);
268
+ assert.equal(result.status, 0, result.stderr);
269
+ assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
270
+ });
271
+ test("嵌套在父仓目录时仍初始化为独立 Git 根", async (t) => {
272
+ const parent = await mkdtemp(path.join(os.tmpdir(), "data-analysis-parent-repo-")); t.after(() => rm(parent, { recursive: true, force: true }));
273
+ assert.equal(spawnSync("git", ["init", "--initial-branch=parent-main", parent], { encoding: "utf8" }).status, 0);
274
+ const target = path.join(parent, "data-analysis-item2");
275
+ const result = run(["--project-name", "data-analysis-item2", "--base-package", "com.yss.dataanalysis.item2", "--target-dir", target]);
276
+ assert.equal(result.status, 0, result.stderr);
277
+ assert.equal(path.resolve(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).stdout.trim()), path.resolve(target));
278
+ assert.equal(spawnSync("git", ["-C", target, "branch", "--show-current"], { encoding: "utf8" }).stdout.trim(), "main");
279
+ });
280
+ test("dry-run 不创建目录或 Git 仓库", async (t) => {
281
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-dry-run-")); t.after(() => rm(base, { recursive: true, force: true }));
282
+ const target = path.join(base, "data-analysis-item3");
283
+ const result = run(["--project-name", "data-analysis-item3", "--base-package", "com.yss.dataanalysis.item3", "--target-dir", target, "--dry-run"]);
284
+ assert.equal(result.status, 0, result.stderr);
285
+ assert.match(result.stdout, /"mode": "dry-run"/);
286
+ assert.equal(spawnSync("git", ["-C", target, "rev-parse", "--show-toplevel"], { encoding: "utf8" }).status, 128);
287
+ });
288
+ test("Git 预检失败时不留下目标目录或 staging", async (t) => {
289
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-no-git-")); t.after(() => rm(base, { recursive: true, force: true }));
290
+ const target = path.join(base, "data-analysis-item4");
291
+ const result = run(["--project-name", "data-analysis-item4", "--base-package", "com.yss.dataanalysis.item4", "--target-dir", target], { env: { ...process.env, PATH: "" } });
292
+ assert.notEqual(result.status, 0); assert.match(result.stderr, /未检测到可用的 Git/);
293
+ await assert.rejects(stat(target), { code: "ENOENT" });
294
+ assert.deepEqual((await readdir(base)).filter((name) => name.includes(".staging-")), []);
295
+ });
296
+ test("staging 创建后中间步骤失败时只清理本轮 staging", async (t) => {
297
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-git-init-fail-")); t.after(() => rm(base, { recursive: true, force: true }));
298
+ const occupied = path.join(base, ".data-analysis-item5.staging-occupied"); await mkdir(occupied); await writeFile(path.join(occupied, "keep.txt"), "keep");
299
+ const target = path.join(base, "data-analysis-item5");
300
+ const result = run(["--project-name", "data-analysis-item5", "--base-package", "com.yss.dataanalysis.item5", "--target-dir", target], { env: { ...process.env, NODE_ENV: "test", YSS_SCAFFOLD_TEST_FAIL_AFTER_STAGING: "1" } });
301
+ assert.notEqual(result.status, 0); assert.match(result.stderr, /staging 后失败/);
302
+ await assert.rejects(stat(target), { code: "ENOENT" });
303
+ assert.equal(await readFile(path.join(occupied, "keep.txt"), "utf8"), "keep");
304
+ assert.deepEqual((await readdir(base)).filter((name) => name.startsWith(".data-analysis-item5.staging-") && name !== path.basename(occupied)), []);
305
+ });
306
+ test("生成期间空目标目录被写入时保留新内容并拒绝替换", async (t) => {
307
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-target-race-")); t.after(() => rm(base, { recursive: true, force: true }));
308
+ const target = path.join(base, "data-analysis-item6"); await mkdir(target);
309
+ const result = run(["--project-name", "data-analysis-item6", "--base-package", "com.yss.dataanalysis.item6", "--target-dir", target], { env: { ...process.env, NODE_ENV: "test", YSS_SCAFFOLD_TEST_WRITE_TARGET_DURING_STAGING: "1" } });
310
+ assert.notEqual(result.status, 0);
311
+ assert.equal(await readFile(path.join(target, "keep.txt"), "utf8"), "concurrent content\n");
312
+ assert.deepEqual((await readdir(base)).filter((name) => name.startsWith(".data-analysis-item6.staging-")), []);
313
+ });
314
+ test("结构验证器拒绝与生成清单不一致的实现仓登记", async (t) => {
315
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-registry-drift-")); t.after(() => rm(base, { recursive: true, force: true }));
316
+ const target = path.join(base, "data-analysis-item7");
317
+ const result = run(["--project-name", "data-analysis-item7", "--base-package", "com.yss.dataanalysis.item7", "--target-dir", target]);
318
+ assert.equal(result.status, 0, result.stderr);
319
+ const registryPath = path.join(target, "docs/process/implementation-repo-registry.yaml");
320
+ const registry = await readFile(registryPath, "utf8");
321
+ await writeFile(registryPath, registry.replace("repository_scope: external-repository", "repository_scope: harness-apps"));
322
+ const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
323
+ assert.notEqual(verification.status, 0);
324
+ assert.match(verification.stderr, /实现仓登记与生成清单不一致/);
325
+ });
326
+ test("OceanBase Oracle 仅生成指定驱动并保持 Java 8 基线", async (t) => {
327
+ const base = await mkdtemp(path.join(os.tmpdir(), "data-analysis-oceanbase-")); t.after(() => rm(base, { recursive: true, force: true }));
328
+ const target = path.join(base, "data-analysis-item8");
329
+ const result = run(["--project-name", "data-analysis-item8", "--base-package", "com.yss.dataanalysis.item8", "--target-dir", target, "--database", "oceanbase-oracle", "--with-mock"]);
330
+ assert.equal(result.status, 0, result.stderr);
331
+ const parentPom = await readFile(path.join(target, "pom.xml"), "utf8");
332
+ const repositoryPom = await readFile(path.join(target, "repository/pom.xml"), "utf8");
333
+ assert.match(parentPom, /<java.version>1.8<\/java.version>/);
334
+ assert.match(parentPom, /<version>2.0.0-SNAPSHOT<\/version>/);
335
+ assert.match(repositoryPom, /oceanbase-client/);
336
+ assert.doesNotMatch(repositoryPom, /ojdbc8/);
337
+ const querySource = await readFile(path.join(target, "client/src/main/java/com/yss/dataanalysis/item8/client/query/AnalysisQuery.java"), "utf8");
338
+ assert.doesNotMatch(querySource, /\brecord\b|List\.of|Map\.of|jakarta\./);
339
+ const verification = spawnSync(process.execPath, [verifyScript, "--project-root", target], { encoding: "utf8" });
340
+ assert.equal(verification.status, 0, verification.stderr);
341
+ });
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: yss-mvc-scaffold-generator
3
+ description: 从空目录初始化独立 Git 管理的 YSS Java 8 MVC 数据分析 project-instance,生成固定六模块、YSS 标准组件、Oracle/OceanBase Oracle 与 Mock HTTP API;不用于通用 DDD 服务。
4
+ ---
5
+
6
+ # YSS MVC Scaffold Generator
7
+
8
+ 本 Skill 是 YSS MVC 数据分析项目的确定性机械生成器。它生成独立 `project-instance`、独立 Git 仓库,并将项目根直接作为 Maven 工程根,包含 `server`、`core`、`client`、`repository`、`adapter`、`feign-client` 六模块;业务功能仍须回到 `yss-product-lifecycle` 与 `yss-implementation-contract-compiler` 按垂直切片实现。
9
+
10
+ 生成器编排入口位于 `scripts/generate_project.mjs`,参数与环境解析、skillUtils 文件操作、项目治理封装和 Maven/Java 模板分别位于 `scripts/lib/`。初始化阶段只写入 staging 目录并在成功后原子重命名,不执行 Maven 或网络依赖下载。
11
+
12
+ 用户以“初始化新项目”进入时,由 `product-service-artifacts` 调用本生成器并默认附加 `docs/service/` 服务级研发产物;不要要求用户在提示词中另行说明“初始化产物”。未提供职责时生成 `skeleton`,不阻断工程创建。
13
+
14
+ ## 输入
15
+
16
+ - `project-name`:小写连字符项目名。
17
+ - `base-package`:合法 Java 包名。
18
+ - `target-dir`:最终项目根目录,必须显式给出。
19
+ - `database`:支持 `oracle`、`oceanbase-oracle`,默认 `oracle`。
20
+ - `with-mock`:生成 `mock` Profile、Mock 执行器及 HTTP 冒烟测试。
21
+ - `maven-settings`:可选的外部 Maven settings 绝对路径,仅用于后续验证;未显式提供时依次读取 `YSS_MAVEN_SETTINGS` 和用户目录 `.m2/settings.xml`。不复制进项目、不写入生成清单。
22
+
23
+ ## 执行
24
+
25
+ 先预演:
26
+
27
+ ```bash
28
+ node scripts/generate_project.mjs --project-name mvc-analysis-item1 --base-package com.yss.dataanalysis.item1 --target-dir /path/to/mvc-analysis-item1 --database oracle --with-mock --maven-settings /path/to/settings.xml --dry-run
29
+ ```
30
+
31
+ 确认目标目录后去掉 `--dry-run`。生成后运行:
32
+
33
+ ```bash
34
+ node scripts/verify_project.mjs --project-root /path/to/mvc-analysis-item1
35
+ cd /path/to/mvc-analysis-item1
36
+ ./mvnw validate
37
+ ./mvnw test
38
+ ./mvnw package
39
+ ./mvnw spring-boot:run -pl mvc-analysis-item1-server -Dspring-boot.run.profiles=mock
40
+ ```
41
+
42
+ Windows 使用 `mvnw.cmd`。指定外部 settings 时,Maven 命令必须加 `-s <settings.xml>`。启动后对 `POST /api/analysis/query` 执行 HTTP 冒烟测试。
43
+
44
+ 生成项目进入 API/Controller 实现后,登记命令必须包含 Java Web/Javadoc 检查、`fmt:check`、测试和构建。Smart-doc 仅作为人工按需从 Controller 生成辅助文档的工具,不属于默认 AI Coding 验证链路;只有用户明确要求生成 Smart-doc 文档时才执行对应 goal。
45
+
46
+ 生成结果包含根 `yss-project.yaml`、`AGENTS.md`、`CONTEXT.md`、生命周期事实源、共享 skills、本地 Ticket 入口、`external-repository` 实现仓库登记和 `.gitignore`。生成器执行 `git init --initial-branch=main`;旧版 Git自动回退到 `git init` 后重命名分支。只初始化仓库,不创建 commit 或 remote。
47
+
48
+ ## 硬约束
49
+
50
+ - `target-dir` 是最终项目根,不在其下再次创建项目名目录。
51
+ - Windows 下优先使用纯 ASCII、长度可控且不属于其他项目 Git 根的父目录(例如 `C:\\projects`);旧 Maven 插件在非 ASCII 长路径上可能产生 reactor classpath 编码错误。
52
+ - 非空目标目录拒绝生成;本 Skill 不提供隐式覆盖或删除。
53
+ - 目标目录必须成为独立 Git 根;生成前必须能执行 `git --version`,生成后必须验证 Git 根等于 `target-dir`、分支为 `main`、commit 数为零且 remote 为空。
54
+ - 生成前必须从 `git config --get user.name` 读取非空作者名;作者名包含换行或 `*/` 时拒绝生成。生成的 Controller 类和公开接口方法以该值填写 `@author`,不得固定为 `system`。
55
+ - 项目根同时是 Maven 工程根和独立 Git 根,固定登记为 `repository_scope: external-repository`、`project_root: .`;六模块直接位于项目根目录。
56
+ - 生成内容先写入同父目录 staging,全部步骤成功后再原子重命名;失败时只清理本次 staging,不留下不可重试的半成品。Maven 依赖解析明确延后到验证阶段;settings 缺失只记录 `maven-default` / `maven_settings_available=false`,不会压缩或截断生成的文件结构。
57
+ - 每个项目持有自己的 `project-instance` 身份与业务资产;不得为了新项目改写模板工具仓库的项目名称或业务上下文。
58
+ - 模块名固定使用正确拼写 `feign-client`;旧项目中的 `fegin-client` 只作为迁移来源,不继续传播。
59
+ - Mock 与 Oracle 使用同一 Controller 和 DTO 契约,只替换 `AnalysisQueryExecutor` 实现。
60
+ - Mock 仅用于本地联调和契约验证,不得携带真实凭据或生产数据。
61
+ - 启用 Mock 时必须生成 `bootstrap-mock.yml`,并在 Spring Cloud Bootstrap 阶段同时禁用 Nacos Discovery、Nacos Config 和 Config import-check;不能只在 `application-mock.yml` 中禁用。
62
+ - `bootstrap.yml` 的默认顺序为 `${app.env:dev},datasource,nacos,<database-profile>,mock`,`mock` 必须最后以覆盖 Nacos Bootstrap 配置,且 profile 列表不得有尾随逗号。未启用 Mock 时不生成、不激活 `mock`。
63
+ - Mock 与数据库 profile 同时出现时,Mock 执行器优先;数据库执行器使用 `<database-profile> & !mock` 表达式,禁止两个 `AnalysisQueryExecutor` 同时注册。
64
+ - Mock 的 `application-mock.yml` 必须关闭 Leaf Segment/Snowflake,并在 `spring.autoconfigure.exclude` 中排除 `DataSourceAutoConfiguration`、`MybatisPlusConfiguration` 和 `LeafDataSourceConfiguration`;组件扫描同时排除 `com.yss.cloud.mybatis..*`、`com.yss.cloud.sankuai..*`,`@EnableDistributedId` 与 `MapperConfiguration` 只允许在 `!mock` 配置类中加载,确保无数据库时 Mock 测试和 HTTP 冒烟可运行。
65
+ - Oracle Adapter 只保留可编译 seam;连接信息通过环境变量注入,生成器不写真实账号密码。
66
+ - 工程版本、YSS 父 POM 和组件 BOM 固定为 `2.0.0-SNAPSHOT`,运行时固定 Java 8。
67
+ - 标准能力默认包含审计日志、分布式 ID、Excel、Nacos、Redis Cache、OpenFeign、Smart-doc、用户信息和 Actuator。
68
+ - server POM 必须保留 `spring-boot-maven-plugin`和默认激活的 `nacos` profile;Nacos 依赖只在该 profile 中声明。
69
+ - `bootstrap-nacos.yml` 默认使用 `${nacosserver:192.168.165.58:8848}`、`${nacos_group:yss-dm}` 和 `${namespace:yss-datamiddle}`,Discovery/Config 在 `nacos` profile 中开启,并由 `bootstrap-mock.yml` 在 Mock 模式覆盖关闭。
70
+ - Smart-doc 使用 `assets/smart-doc.json.template`的完整配置并动态生成项目名、Controller 包和修订时间;Torna Token 与内网地址不进入生成项目。Smart-doc 插件保留跨模块 `includes`,但不绑定 Maven `executions`,不进入默认 `validate` / `test` / `package` / CI / AI Coding 验证命令。
71
+ - Logback 使用 `assets/logback-spring.xml.template`;`dev,mock` 与 `uat,pro,oracle,oceanbase-oracle` 必须是并列 profile,项目名和基础包动态替换。
72
+ - Controller 类和公开接口方法必须按真实业务语义生成 Javadoc,`@author` 使用生成时读取的 Git 用户名,`@date` 使用 `yyyy/MM/dd HH:mm`,方法按签名完整生成 `@param`和 `@return`。
73
+ - API 实现不得交付单行 Javadoc block tag、Mapping 注解/方法同行或方法体单行压缩代码;相关规范由生成项目中的工程约定和实际验证命令约束。
74
+ - API 完成证据必须包含 `yss-skill-execution-result.yaml` 和 `fresh-verification.md`,并记录 Controller 路由、DTO、响应 Wrapper、错误响应及契约测试与冻结 OpenAPI 的一致性。Smart-doc 输出不是 OpenAPI Freeze、契约审查或功能完成证据。
75
+ - Maven settings 始终是项目外部的私密输入;不得复制到目标目录、写入 README/生成清单或提交 Git。
76
+ - 持久层固定使用 YSS MyBatis-Plus;标准 CRUD 使用 MP,复杂 SQL 写入 mapper.xml,主键策略为 `IdType.ASSIGN_ID`。
77
+ - 生成范围仅包含工程骨架、示例 Mock seam 和验证测试,不声称业务 Spec、OpenAPI Freeze 或 Slice Implementation Contract 已批准。
78
+ - 完成结论必须包含结构验证,以及实际执行的 Maven 命令;无法下载依赖时如实记录环境阻塞。
79
+
80
+ 模块职责和依赖方向见 [references/architecture.md](references/architecture.md)。
81
+
82
+ ## API 契约与人工文档边界
83
+
84
+ - 冻结的 OpenAPI 3.1 YAML 是接口契约的唯一事实来源;`yss-openapi-governance` 负责契约治理与 Freeze,`yss-openapi-draft-review` 负责冻结前审查,`yss-web-controller` 负责按冻结契约实现 Controller。
85
+ - Smart-doc 是人工可选的源码文档工具。其输出只用于查看当前 Controller 实现,不得反向定义、覆盖或批准冻结 OpenAPI。
86
+ - AI 默认不执行 `smart-doc:html`、`smart-doc:openapi` 或 `smart-doc:torna-rest`。`torna-rest` 涉及外部写入,执行前还必须获得对应授权。
87
+ - 本生成器只用于空目录初始化。生成项目使用已物化的 `project-instance` 资产和实现 skills 开发后续需求;其共享 `skillUtils` 不应再分发 `yss-mvc-scaffold-generator` 本身。
@@ -1,136 +1,3 @@
1
1
  #!/usr/bin/env node
2
- /** YSS MVC 脚手架编排入口;参数、文件、模板和项目治理分别位于 scripts/lib。 */
3
- import { cp, mkdir, mkdtemp, rename, rm, rmdir } from "node:fs/promises";
4
- import path from "node:path";
5
-
6
- import {
7
- MODULES,
8
- SHARED_SKILLS_ROOT,
9
- fail,
10
- parseArgs,
11
- assertGitAvailable,
12
- resolveGitAuthor,
13
- resolveMavenSettings,
14
- initializeGit,
15
- exists,
16
- } from "./lib/runtime.mjs";
17
- import { assertEmpty, ensureSkillUtils, put, renderAsset } from "./lib/storage.mjs";
18
- import { writeProjectEnvelope } from "./lib/envelope.mjs";
19
- import { modulePom, parentPom, writeJavaSources } from "./lib/templates.mjs";
20
-
21
- const SKILL_ID = "yss-mvc-scaffold-generator";
22
- let generatedJavadocAuthor;
23
-
24
- function usage() {
25
- console.log(`YSS MVC 脚手架生成器\n\n用法: node scripts/generate_project.mjs --project-name <name> --base-package <package> --target-dir <dir> [选项]\n\n选项: --database oracle|oceanbase-oracle --with-mock --maven-settings <path> --dry-run`);
26
- }
27
-
28
- async function writeGenerated(root, relative, content) {
29
- await put(root, relative, content, generatedJavadocAuthor);
30
- }
31
-
32
- async function copyWrapper(root) {
33
- const source = path.join(SHARED_SKILLS_ROOT, "yss-ddd-scaffold-generator", "assets", "wrapper");
34
- if (!await exists(source)) fail(`Maven Wrapper 资产不存在: ${source}`);
35
- await cp(source, root, { recursive: true });
36
- }
37
-
38
- function buildPlan(o, skillUtils, mavenSettings) {
39
- const driver = o.database === "oceanbase-oracle" ? "com.oceanbase:oceanbase-client:2.4.3" : "com.oracle.database.jdbc:ojdbc8:19.8.0.0";
40
- return {
41
- project_name: o.projectName,
42
- project_version: "2.0.0-SNAPSHOT",
43
- base_package: o.basePackage,
44
- target_dir: o.targetDir,
45
- backend_root: ".",
46
- skill_utils_dir: path.relative(o.targetDir, skillUtils.path).replaceAll(path.sep, "/"),
47
- skill_utils_created: skillUtils.created,
48
- skill_utils_refreshed: skillUtils.refreshed,
49
- skill_utils_backup: skillUtils.backup,
50
- repository_scope: "external-repository",
51
- database: o.database,
52
- database_driver: driver,
53
- runtime_java: "8",
54
- parent_pom: "com.yss.cloud:yss-cloud-microservice:2.0.0-SNAPSHOT",
55
- components_bom: "com.yss.cloud:yss-components-bom:2.0.0-SNAPSHOT",
56
- persistence_profile: "yss-mybatis-plus",
57
- id_strategy: "ASSIGN_ID",
58
- javadoc_author: o.gitAuthor,
59
- maven_settings_mode: "external",
60
- maven_settings_source: mavenSettings.source,
61
- maven_settings_available: mavenSettings.available,
62
- maven_settings_required: mavenSettings.available,
63
- dependency_resolution: "deferred",
64
- network_access_during_generation: "disabled",
65
- features: ["audit", "distributed-id", "excel", "nacos", "redis", "openfeign", "smart-doc", "userinfo", "actuator"],
66
- modules: MODULES,
67
- mock_enabled: o.withMock,
68
- project_instance: true,
69
- git_initialized: true,
70
- default_branch: "main",
71
- endpoint: o.withMock ? "POST /api/analysis/query" : null
72
- };
73
- }
74
-
75
- async function generate(o) {
76
- await assertEmpty(o.targetDir);
77
- const skillUtils = await ensureSkillUtils(o.targetDir, { apply: !o.dryRun });
78
- assertGitAvailable();
79
- o.gitAuthor = resolveGitAuthor();
80
- generatedJavadocAuthor = o.gitAuthor;
81
- const mavenSettings = await resolveMavenSettings(o);
82
- const plan = buildPlan(o, skillUtils, mavenSettings);
83
- if (o.dryRun) {
84
- console.log(JSON.stringify({ mode: "dry-run", ...plan }, null, 2));
85
- return;
86
- }
87
-
88
- const targetParent = path.dirname(o.targetDir);
89
- await mkdir(targetParent, { recursive: true });
90
- const staging = await mkdtemp(path.join(targetParent, `.${path.basename(o.targetDir)}.staging-`));
91
- const work = { ...o, targetDir: staging, modules: MODULES };
92
- try {
93
- for (const module of MODULES) {
94
- await writeGenerated(work.targetDir, `${module}/pom.xml`, modulePom(work, module));
95
- await mkdir(path.join(work.targetDir, module, "src/main/resources"), { recursive: true });
96
- }
97
- await writeGenerated(work.targetDir, "pom.xml", parentPom(work));
98
- await writeJavaSources(work, writeGenerated);
99
- const activeProfiles = `\${app.env:dev},datasource,nacos,${o.database === "oceanbase-oracle" ? "oceanbase-oracle" : "oracle"}${o.withMock ? ",mock" : ""}`;
100
- await writeGenerated(work.targetDir, "server/src/main/resources/bootstrap.yml", `server:\n port: \${SERVER_PORT:8080}\nspring:\n application:\n name: \${APP_NAME:${o.projectName}}\n profiles:\n active: ${activeProfiles}\n main:\n allow-bean-definition-overriding: true\n servlet:\n multipart:\n max-file-size: \${MAX_FILE_SIZE:100MB}\n max-request-size: \${MAX_REQUEST_SIZE:100MB}`);
101
- await writeGenerated(work.targetDir, "server/src/main/resources/bootstrap-nacos.yml", `spring:\n cloud:\n nacos:\n discovery:\n server-addr: \${nacosserver:192.168.165.58:8848}\n group: \${nacos_group:yss-dm}\n namespace: \${namespace:yss-datamiddle}\n enabled: true\n config:\n import-check:\n enabled: false\n server-addr: \${nacosserver:192.168.165.58:8848}\n namespace: \${namespace:yss-datamiddle}\n group: \${nacos_group:yss-dm}\n file-extension: yml\n enabled: true`);
102
- if (o.withMock) await writeGenerated(work.targetDir, "server/src/main/resources/bootstrap-mock.yml", `spring:\n cloud:\n nacos:\n discovery:\n enabled: false\n config:\n enabled: false\n import-check:\n enabled: false`);
103
- await writeGenerated(work.targetDir, "server/src/main/resources/application-mock.yml", `spring:\n autoconfigure:\n exclude:\n - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\n - com.yss.cloud.mybatis.MybatisPlusConfiguration\n - com.yss.cloud.sankuai.config.LeafDataSourceConfiguration\n leaf:\n leafSegmentEnable: false\n leafSnowflakeEnable: false\nyss:\n audit:\n enabled: false`);
104
- const driver = o.database === "oceanbase-oracle" ? "com.oceanbase.jdbc.Driver" : "oracle.jdbc.OracleDriver";
105
- await writeGenerated(work.targetDir, `server/src/main/resources/application-${o.database}.yml`, `spring:\n datasource:\n driver-class-name: ${driver}\n url: \${DB_URL:}\n username: \${DB_USERNAME:}\n password: \${DB_PASSWORD:}\nyss:\n id:\n strategy: ASSIGN_ID`);
106
- await writeGenerated(work.targetDir, "server/src/main/resources/logback-spring.xml", await renderAsset("logback-spring.xml.template", { PROJECT_NAME: o.projectName, BASE_PACKAGE: o.basePackage }));
107
- await writeGenerated(work.targetDir, "server/src/main/resources/smart-doc.json", await renderAsset("smart-doc.json.template", { PROJECT_NAME: o.projectName, BASE_PACKAGE: o.basePackage, GENERATED_AT: new Date().toISOString() }));
108
- await writeGenerated(staging, "README.md", `# ${o.projectName}\n\n项目根即 Maven 后端工程根,固定模块:${MODULES.join("、")}。\n\n## 依赖解析\n\n初始化阶段只生成文件和 Git 根,不执行 Maven,不下载依赖。未提供 settings 时仍会完整生成;后续验证时请使用 \`mvnw.cmd -s <settings.xml> validate\`(Windows)或 \`./mvnw -s <settings.xml> validate\`(Unix)。`);
109
- await writeProjectEnvelope(work);
110
- await copyWrapper(work.targetDir);
111
- if (process.env.NODE_ENV === "test" && process.env.YSS_SCAFFOLD_TEST_FAIL_AFTER_STAGING === "1") fail("测试注入:staging 后失败");
112
- initializeGit(staging);
113
- await writeGenerated(staging, ".yss/scaffold-generation.json", JSON.stringify({ schema_version: 1, skill: SKILL_ID, generation_mode: "controlled-generation", generated_at: new Date().toISOString(), ...plan }, null, 2));
114
- if (process.env.NODE_ENV === "test" && process.env.YSS_SCAFFOLD_TEST_WRITE_TARGET_DURING_STAGING === "1") await writeGenerated(o.targetDir, "keep.txt", "concurrent content");
115
- if (await exists(o.targetDir)) await rmdir(o.targetDir);
116
- await rename(staging, o.targetDir);
117
- } catch (error) {
118
- if (await exists(staging)) await rm(staging, { recursive: true, force: true });
119
- throw error;
120
- }
121
- console.log(JSON.stringify({ mode: "generated", ...plan }, null, 2));
122
- }
123
-
124
- async function main() {
125
- try {
126
- const options = parseArgs(process.argv.slice(2));
127
- if (options.help) { usage(); return 0; }
128
- await generate(options);
129
- return 0;
130
- } catch (error) {
131
- process.stderr.write(`\n❌ 生成失败: ${error.message}\n`);
132
- return 1;
133
- }
134
- }
135
-
136
- process.exitCode = await main();
2
+ process.stderr.write("deprecated: yss-mvc-scaffold-generator 已退役;请由生命周期重新批准 yss-mvc-data-analysis-project-initializer 的 H2 合同。不会生成、迁移或覆盖文件。\n");
3
+ process.exitCode = 1;