create-yss-spec 3.3.7 → 3.4.1

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 (729) hide show
  1. package/README.md +12 -13
  2. package/package.json +1 -1
  3. package/template/.agents/skills/.strategic-design-skills-manifest.json +3 -13
  4. package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +2 -2
  5. package/template/.agents/skills/yss-application/SKILL.md +1 -1
  6. package/template/.agents/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  7. package/template/.agents/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  8. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
  9. package/template/.agents/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
  10. package/template/.agents/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
  11. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  12. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
  13. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
  14. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  15. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
  16. package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
  17. package/template/.agents/skills/yss-design-system/SKILL.md +19 -19
  18. package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +13 -0
  19. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +3 -1
  20. package/template/.agents/skills/yss-design-system/references/design-system.md +7 -9
  21. package/template/.agents/skills/yss-formily/SKILL.md +21 -258
  22. package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
  23. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
  24. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
  25. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
  26. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
  27. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
  28. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
  29. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
  30. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
  31. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
  32. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
  33. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
  34. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
  35. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
  36. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
  37. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
  38. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
  39. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
  40. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
  41. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
  42. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
  43. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
  44. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
  45. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
  46. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
  47. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
  48. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
  49. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
  50. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
  51. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
  52. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
  53. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
  54. package/template/.agents/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
  55. package/template/.agents/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
  56. package/template/.agents/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
  57. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
  58. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
  59. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
  60. package/template/.agents/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
  61. package/template/.agents/skills/yss-hook/SKILL.md +1 -1
  62. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  63. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
  64. package/template/.agents/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +17 -5
  65. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  66. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
  67. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
  68. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  69. package/template/.agents/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
  70. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
  71. package/template/.agents/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
  72. package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -0
  73. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +49 -16
  74. package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  75. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +1 -1
  76. package/template/.agents/skills/yss-prototype-stage/SKILL.md +22 -9
  77. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
  78. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
  79. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
  80. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
  81. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
  82. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
  83. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
  84. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
  85. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
  86. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
  87. package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
  88. package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +61 -0
  89. package/template/.agents/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
  90. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
  91. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
  92. package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
  93. package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
  94. package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
  95. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
  96. package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
  97. package/template/.agents/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
  98. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
  99. package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
  100. package/template/.agents/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  101. package/template/.agents/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
  102. package/template/.agents/skills/yss-tactical-design/SKILL.md +1 -1
  103. package/template/.agents/skills/yss-technical-design/SKILL.md +2 -0
  104. package/template/.agents/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  105. package/template/.agents/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  106. package/template/.agents/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  107. package/template/.agents/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  108. package/template/.agents/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  109. package/template/.agents/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  110. package/template/.agents/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  111. package/template/.agents/skills/yss-ui/SKILL.md +3 -2
  112. package/template/.agents/skills/yss-ui/references/component-routing.md +11 -10
  113. package/template/.agents/skills/yss-ui/references/specialized-components.md +52 -0
  114. package/template/.agents/skills/yss-web-controller/SKILL.md +1 -1
  115. package/template/.agents/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  116. package/template/.agents/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  117. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
  118. package/template/.agents/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
  119. package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +2 -2
  120. package/template/.codex/skills/yss-application/SKILL.md +1 -1
  121. package/template/.codex/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  122. package/template/.codex/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  123. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
  124. package/template/.codex/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
  125. package/template/.codex/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
  126. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  127. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
  128. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
  129. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  130. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
  131. package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
  132. package/template/.codex/skills/yss-design-system/SKILL.md +19 -19
  133. package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +13 -0
  134. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +3 -1
  135. package/template/.codex/skills/yss-design-system/references/design-system.md +7 -9
  136. package/template/.codex/skills/yss-formily/SKILL.md +21 -258
  137. package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
  138. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
  139. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
  140. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
  141. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
  142. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
  143. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
  144. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
  145. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
  146. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
  147. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
  148. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
  149. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
  150. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
  151. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
  152. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
  153. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
  154. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
  155. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
  156. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
  157. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
  158. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
  159. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
  160. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
  161. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
  162. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
  163. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
  164. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
  165. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
  166. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
  167. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
  168. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
  169. package/template/.codex/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
  170. package/template/.codex/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
  171. package/template/.codex/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
  172. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
  173. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
  174. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
  175. package/template/.codex/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
  176. package/template/.codex/skills/yss-hook/SKILL.md +1 -1
  177. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  178. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
  179. package/template/.codex/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +17 -5
  180. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  181. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
  182. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
  183. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  184. package/template/.codex/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
  185. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
  186. package/template/.codex/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
  187. package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -0
  188. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +49 -16
  189. package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  190. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +1 -1
  191. package/template/.codex/skills/yss-prototype-stage/SKILL.md +22 -9
  192. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
  193. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
  194. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
  195. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
  196. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
  197. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
  198. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
  199. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
  200. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
  201. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
  202. package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
  203. package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +61 -0
  204. package/template/.codex/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
  205. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
  206. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
  207. package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
  208. package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
  209. package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
  210. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
  211. package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
  212. package/template/.codex/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
  213. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
  214. package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
  215. package/template/.codex/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  216. package/template/.codex/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
  217. package/template/.codex/skills/yss-tactical-design/SKILL.md +1 -1
  218. package/template/.codex/skills/yss-technical-design/SKILL.md +2 -0
  219. package/template/.codex/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  220. package/template/.codex/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  221. package/template/.codex/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  222. package/template/.codex/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  223. package/template/.codex/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  224. package/template/.codex/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  225. package/template/.codex/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  226. package/template/.codex/skills/yss-ui/SKILL.md +3 -2
  227. package/template/.codex/skills/yss-ui/references/component-routing.md +11 -10
  228. package/template/.codex/skills/yss-ui/references/specialized-components.md +52 -0
  229. package/template/.codex/skills/yss-web-controller/SKILL.md +1 -1
  230. package/template/.codex/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  231. package/template/.codex/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  232. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
  233. package/template/.codex/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
  234. package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +2 -2
  235. package/template/.cursor/skills/yss-application/SKILL.md +1 -1
  236. package/template/.cursor/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  237. package/template/.cursor/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  238. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
  239. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
  240. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
  241. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  242. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
  243. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
  244. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  245. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
  246. package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
  247. package/template/.cursor/skills/yss-design-system/SKILL.md +19 -19
  248. package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +13 -0
  249. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +3 -1
  250. package/template/.cursor/skills/yss-design-system/references/design-system.md +7 -9
  251. package/template/.cursor/skills/yss-formily/SKILL.md +21 -258
  252. package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
  253. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
  254. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
  255. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
  256. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
  257. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
  258. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
  259. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
  260. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
  261. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
  262. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
  263. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
  264. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
  265. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
  266. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
  267. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
  268. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
  269. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
  270. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
  271. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
  272. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
  273. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
  274. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
  275. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
  276. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
  277. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
  278. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
  279. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
  280. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
  281. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
  282. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
  283. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
  284. package/template/.cursor/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
  285. package/template/.cursor/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
  286. package/template/.cursor/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
  287. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
  288. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
  289. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
  290. package/template/.cursor/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
  291. package/template/.cursor/skills/yss-hook/SKILL.md +1 -1
  292. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  293. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
  294. package/template/.cursor/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +17 -5
  295. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  296. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
  297. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
  298. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  299. package/template/.cursor/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
  300. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
  301. package/template/.cursor/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
  302. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -0
  303. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +49 -16
  304. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  305. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +1 -1
  306. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +22 -9
  307. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
  308. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
  309. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
  310. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
  311. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
  312. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
  313. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
  314. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
  315. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
  316. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
  317. package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
  318. package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +61 -0
  319. package/template/.cursor/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
  320. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
  321. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
  322. package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
  323. package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
  324. package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
  325. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
  326. package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
  327. package/template/.cursor/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
  328. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
  329. package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
  330. package/template/.cursor/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  331. package/template/.cursor/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
  332. package/template/.cursor/skills/yss-tactical-design/SKILL.md +1 -1
  333. package/template/.cursor/skills/yss-technical-design/SKILL.md +2 -0
  334. package/template/.cursor/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  335. package/template/.cursor/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  336. package/template/.cursor/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  337. package/template/.cursor/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  338. package/template/.cursor/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  339. package/template/.cursor/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  340. package/template/.cursor/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  341. package/template/.cursor/skills/yss-ui/SKILL.md +3 -2
  342. package/template/.cursor/skills/yss-ui/references/component-routing.md +11 -10
  343. package/template/.cursor/skills/yss-ui/references/specialized-components.md +52 -0
  344. package/template/.cursor/skills/yss-web-controller/SKILL.md +1 -1
  345. package/template/.cursor/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  346. package/template/.cursor/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  347. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
  348. package/template/.cursor/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
  349. package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +2 -2
  350. package/template/.pi/skills/yss-application/SKILL.md +1 -1
  351. package/template/.pi/skills/yss-application/references/profiles/existing-domain-driven-maven.md +5 -0
  352. package/template/.pi/skills/yss-application/references/profiles/existing-layered-mvc-maven.md +5 -0
  353. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +3 -3
  354. package/template/.pi/skills/yss-ddd-scaffold-generator/references/USAGE_EXAMPLES.md +1 -1
  355. package/template/.pi/skills/yss-ddd-scaffold-generator/references/layer-skill-routing.md +18 -0
  356. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  357. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/first-slice-compatibility.test.mjs +13 -4
  358. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +9 -8
  359. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_first_slice_verification.mjs +2 -1
  360. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/run_scaffold_verification.mjs +6 -4
  361. package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +108 -12
  362. package/template/.pi/skills/yss-design-system/SKILL.md +19 -19
  363. package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +13 -0
  364. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +3 -1
  365. package/template/.pi/skills/yss-design-system/references/design-system.md +7 -9
  366. package/template/.pi/skills/yss-formily/SKILL.md +21 -258
  367. package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +17 -13
  368. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.eslintrc.cjs +1 -0
  369. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/.npmrc.example +2 -0
  370. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/DESIGN.md +264 -0
  371. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/README.md +13 -0
  372. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/__yss_dotfile__.gitignore +6 -0
  373. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/micro-config.json +5 -0
  374. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/orval.config.ts +2 -0
  375. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/package.json +30 -0
  376. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.development +1 -0
  377. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.example +5 -0
  378. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production +1 -0
  379. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/.env.production.standalone +1 -0
  380. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/index.html +2 -0
  381. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/package.json +34 -0
  382. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/public/favicon.svg +1 -0
  383. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/App.vue +15 -0
  384. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/api/mutator.ts +7 -0
  385. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/components/ThemeScope.vue +11 -0
  386. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/config/theme.json +41 -0
  387. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/env.d.ts +1 -0
  388. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/main.ts +40 -0
  389. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/router/index.ts +8 -0
  390. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/store/theme.ts +37 -0
  391. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/styles/index.less +6 -0
  392. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/types/microAppBridge.ts +28 -0
  393. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/utils/microAppRouterBridge.ts +266 -0
  394. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/NotFound.vue +1 -0
  395. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/src/views/Welcome.vue +1 -0
  396. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/tsconfig.json +23 -0
  397. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/packages/vite.config.ts +16 -0
  398. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-lock.yaml +9026 -0
  399. package/template/.pi/skills/yss-frontend-scaffold-generator/assets/data-quality-v1/pnpm-workspace.yaml +7 -0
  400. package/template/.pi/skills/yss-frontend-scaffold-generator/references/data-quality-baseline.md +17 -0
  401. package/template/.pi/skills/yss-frontend-scaffold-generator/references/data-quality-v1.manifest.json +49 -0
  402. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/generate_scaffold.mjs +41 -13
  403. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/refresh_baseline.mjs +29 -0
  404. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/run_scaffold_verification.mjs +5 -1
  405. package/template/.pi/skills/yss-frontend-scaffold-generator/scripts/scaffold-generator.test.mjs +32 -0
  406. package/template/.pi/skills/yss-hook/SKILL.md +1 -1
  407. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +3 -3
  408. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +5 -3
  409. package/template/.pi/skills/yss-implementation-contract-compiler/references/compiler-contract.yaml +17 -5
  410. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/SKILL.md +2 -2
  411. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/agents/openai.yaml +1 -1
  412. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/generate_scaffold.mjs +12 -8
  413. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/run_scaffold_verification.mjs +1 -1
  414. package/template/.pi/skills/yss-layered-mvc-scaffold-generator/scripts/scaffold-generator.test.mjs +97 -9
  415. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/SKILL.md +2 -2
  416. package/template/.pi/skills/yss-mvc-data-analysis-project-initializer/scripts/generate_project.mjs +1 -1
  417. package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -0
  418. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +49 -16
  419. package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -2
  420. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +1 -1
  421. package/template/.pi/skills/yss-prototype-stage/SKILL.md +22 -9
  422. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +16 -0
  423. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +1678 -0
  424. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +23 -0
  425. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +20 -0
  426. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +11 -0
  427. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +28 -0
  428. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +50 -0
  429. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/index.html +38 -0
  430. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.js +7 -0
  431. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/styles.css +20 -0
  432. package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +736 -0
  433. package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +61 -0
  434. package/template/.pi/skills/yss-prototype-stage/references/html-prototype-practices.md +14 -0
  435. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +28 -51
  436. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +15 -4
  437. package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +71 -0
  438. package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +26 -0
  439. package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +121 -0
  440. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +52 -143
  441. package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +24 -0
  442. package/template/.pi/skills/yss-prototype-stage/tests/browser-smoke.mjs +77 -0
  443. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +73 -26
  444. package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +57 -0
  445. package/template/.pi/skills/yss-skill-source-index-refresh/references/source-map-config.md +0 -1
  446. package/template/.pi/skills/yss-skill-source-index-refresh/scripts/refresh-yss-skill-index.mjs +0 -1
  447. package/template/.pi/skills/yss-tactical-design/SKILL.md +1 -1
  448. package/template/.pi/skills/yss-technical-design/SKILL.md +2 -0
  449. package/template/.pi/skills/yss-technical-design/references/engineering-design.schema.json +224 -0
  450. package/template/.pi/skills/yss-technical-design/references/technical-design-common.schema.json +6 -0
  451. package/template/.pi/skills/yss-technical-design/references/technical-design.schema.json +288 -10
  452. package/template/.pi/skills/yss-technical-design/scripts/engineering-design.mjs +30 -0
  453. package/template/.pi/skills/yss-technical-design/scripts/generate-schema.mjs +2 -1
  454. package/template/.pi/skills/yss-technical-design/scripts/validate-technical-design.mjs +20 -8
  455. package/template/.pi/skills/yss-technical-design/tests/engineering-scenarios.mjs +12 -0
  456. package/template/.pi/skills/yss-ui/SKILL.md +3 -2
  457. package/template/.pi/skills/yss-ui/references/component-routing.md +11 -10
  458. package/template/.pi/skills/yss-ui/references/specialized-components.md +52 -0
  459. package/template/.pi/skills/yss-web-controller/SKILL.md +1 -1
  460. package/template/.pi/skills/yss-web-controller/references/profiles/existing-domain-driven-maven.md +5 -0
  461. package/template/.pi/skills/yss-web-controller/references/profiles/existing-layered-mvc-maven.md +5 -0
  462. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.mjs +4 -3
  463. package/template/.pi/skills/yss-web-controller/scripts/generate_controller.test.mjs +1 -1
  464. package/template/CONTEXT.md +1 -0
  465. package/template/DESIGN.md +31 -14
  466. package/template/README.md +4 -6
  467. package/template/__yss_dotfile__.gitignore +4 -0
  468. package/template/docs/agents/backend-architecture-profiles.md +4 -0
  469. package/template/docs/agents/digital-human-roles.yaml +4 -4
  470. package/template/docs/agents/skill-migrations.md +15 -2
  471. package/template/docs/agents/yss-skill-registry.yaml +19 -40
  472. package/template/docs/design/README.md +4 -4
  473. package/template/docs/design/design-system-sync.yaml +2 -1
  474. package/template/docs/design/design.md +23 -31
  475. package/template/docs/design/preview-dark.html +3 -3
  476. package/template/docs/design/preview.css +1 -1
  477. package/template/docs/design/preview.html +2 -2
  478. package/template/docs/design/templates/interaction-spec-template.md +2 -2
  479. package/template/docs/design/templates/prototype-confirmation-template.md +2 -2
  480. package/template/docs/design/templates/prototype-evidence-template.yaml +18 -22
  481. package/template/docs/design/templates/prototype-review-checklist.md +5 -3
  482. package/template/docs/design/templates/state-matrix-template.md +1 -1
  483. package/template/docs/design/templates/visual-baseline-template.yaml +3 -2
  484. package/template/docs/design/tokens/.design-md-projection.json +7 -7
  485. package/template/docs/design/tokens/theme.json +16 -10
  486. package/template/docs/design/tokens/tokens.compact.json +521 -237
  487. package/template/docs/design/tokens/tokens.dark.json +527 -240
  488. package/template/docs/design/tokens/tokens.default.json +513 -235
  489. package/template/docs/design/tokens/variables.css +67 -65
  490. package/template/docs/design/tokens/variables.dark.css +41 -41
  491. package/template/docs/plan/templates/market-analysis-template.md +3 -3
  492. package/template/docs/plan/templates/user-pain-points-template.md +3 -3
  493. package/template/docs/process/delivery-preflight.md +72 -0
  494. package/template/docs/process/document-writing.md +5 -1
  495. package/template/docs/process/existing-backend-architecture.md +31 -0
  496. package/template/docs/process/existing-ui-baseline.md +40 -0
  497. package/template/docs/process/frontend-backend-delivery.md +20 -6
  498. package/template/docs/process/implementation-repo-integration.md +6 -0
  499. package/template/docs/process/lifecycle-registry-baseline.json +1 -1
  500. package/template/docs/process/lifecycle-registry.yaml +5 -5
  501. package/template/docs/process/schemas/api-contract-decision.schema.json +74 -0
  502. package/template/docs/process/schemas/backend-architecture-identity.schema.json +111 -14
  503. package/template/docs/process/schemas/data-architecture-decision.schema.json +34 -0
  504. package/template/docs/process/schemas/delivery-preflight-input.schema.json +158 -0
  505. package/template/docs/process/schemas/delivery-preflight-result.schema.json +159 -0
  506. package/template/docs/process/schemas/digital-human-task-package.schema.json +1 -1
  507. package/template/docs/process/schemas/existing-ui-baseline.schema.json +365 -0
  508. package/template/docs/process/schemas/frontend-delivery-acceptance-v3.schema.json +308 -0
  509. package/template/docs/process/schemas/frontend-strategic-preflight-v2.schema.json +114 -0
  510. package/template/docs/process/schemas/implementation-repository-preparation-result.schema.json +80 -24
  511. package/template/docs/process/schemas/project-scaffold-contract.schema.json +85 -11
  512. package/template/docs/process/schemas/strategic-design-handoff-v5.schema.json +932 -0
  513. package/template/docs/process/schemas/strategic-design-handoff.schema.json +296 -107
  514. package/template/docs/process/schemas/strategic-handoff-delivery-verification.schema.json +19 -0
  515. package/template/docs/process/schemas/strategic-handoff-delivery.schema.json +84 -0
  516. package/template/docs/process/schemas/strategic-handoff-export-v2.schema.json +378 -0
  517. package/template/docs/process/schemas/strategic-handoff-import-receipt-v3.schema.json +42 -0
  518. package/template/docs/process/strategic-handoff-package.md +42 -17
  519. package/template/docs/user-guide//346/212/200/346/234/257/350/256/276/350/256/241/347/224/250/346/210/267/346/214/207/345/215/227.md +43 -0
  520. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214.md +83 -67
  521. package/template/docs/user-guide//347/224/250/346/210/267/346/211/213/345/206/214/347/264/242/345/274/225.md +9 -10
  522. 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 +13 -10
  523. package/template/scripts/audit-legacy-backend-scaffold +29 -0
  524. package/template/scripts/backend-delivery +20 -4
  525. package/template/scripts/lib/api-contract-decision.mjs +49 -0
  526. package/template/scripts/lib/api-contract-decision.test.mjs +69 -0
  527. package/template/scripts/lib/approved-execution-context.mjs +106 -0
  528. package/template/scripts/lib/backend-architecture.mjs +12 -0
  529. package/template/scripts/lib/backend-delivery.mjs +10 -6
  530. package/template/scripts/lib/backend-scaffold-prerequisites.mjs +123 -0
  531. package/template/scripts/lib/delivery-preflight.mjs +238 -0
  532. package/template/scripts/lib/existing-backend-architecture.mjs +139 -0
  533. package/template/scripts/lib/existing-ui-baseline.mjs +84 -0
  534. package/template/scripts/lib/frontend-delivery.mjs +23 -15
  535. package/template/scripts/lib/implementation-contract-compiler.mjs +19 -5
  536. package/template/scripts/lib/json-schema.mjs +19 -4
  537. package/template/scripts/lib/legacy-backend-scaffold-audit.mjs +87 -0
  538. package/template/scripts/lib/legacy-backend-scaffold-audit.test.mjs +64 -0
  539. package/template/scripts/lib/lifecycle-transition.mjs +153 -5
  540. package/template/scripts/lib/openapi-draft-validation.mjs +111 -0
  541. package/template/scripts/lib/profile-skill-sync.mjs +26 -0
  542. package/template/scripts/lib/skill-registry.mjs +17 -3
  543. package/template/scripts/lib/skill-supply-chain.mjs +12 -1
  544. package/template/scripts/lib/strategic-feedback.mjs +2 -2
  545. package/template/scripts/lib/strategic-handoff-consumption.mjs +8 -7
  546. package/template/scripts/lib/strategic-handoff-design-targets.mjs +2 -3
  547. package/template/scripts/lib/strategic-handoff-io.mjs +10 -0
  548. package/template/scripts/lib/strategic-handoff.mjs +124 -32
  549. package/template/scripts/lib/task-package.mjs +11 -3
  550. package/template/scripts/lib/technical-design-boundary.mjs +9 -1
  551. package/template/scripts/lib/ui-baseline.mjs +26 -0
  552. package/template/scripts/lib/user-decision.mjs +4 -1
  553. package/template/scripts/preflight-delivery +14 -0
  554. package/template/scripts/strategic-handoff +23 -6
  555. package/template/scripts/sync-profile-skills +4 -5
  556. package/template/scripts/verify-openapi-draft-validation-record +10 -129
  557. package/template/scripts/verify-strategic-context-import +12 -14
  558. package/template/skills-lock.json +25 -80
  559. package/template/yss-public-skills.json +0 -6
  560. package/template.snapshot.json +8 -4
  561. package/template/.agents/skills/yss-antd-design/SKILL.md +0 -35
  562. package/template/.agents/skills/yss-antd-design/references/boundaries.md +0 -30
  563. package/template/.agents/skills/yss-antd-design/references/cli-matrix.md +0 -38
  564. package/template/.agents/skills/yss-antd-design/references/evidence.md +0 -35
  565. package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
  566. package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
  567. package/template/.agents/skills/yss-antdv-next-design/SKILL.md +0 -48
  568. package/template/.agents/skills/yss-antdv-next-design/references/boundaries.md +0 -25
  569. package/template/.agents/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
  570. package/template/.agents/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
  571. package/template/.agents/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
  572. package/template/.agents/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
  573. package/template/.agents/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
  574. package/template/.agents/skills/yss-components/SKILL.md +0 -386
  575. package/template/.agents/skills/yss-components/agents/openai.yaml +0 -5
  576. package/template/.agents/skills/yss-components/references/frontend-docs.md +0 -9
  577. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
  578. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
  579. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
  580. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
  581. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
  582. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
  583. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
  584. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
  585. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
  586. package/template/.agents/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
  587. package/template/.agents/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
  588. package/template/.agents/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
  589. package/template/.agents/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
  590. package/template/.agents/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
  591. package/template/.agents/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
  592. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
  593. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
  594. package/template/.agents/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
  595. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
  596. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
  597. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
  598. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
  599. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
  600. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
  601. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
  602. package/template/.agents/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
  603. package/template/.codex/skills/yss-antd-design/SKILL.md +0 -35
  604. package/template/.codex/skills/yss-antd-design/references/boundaries.md +0 -30
  605. package/template/.codex/skills/yss-antd-design/references/cli-matrix.md +0 -38
  606. package/template/.codex/skills/yss-antd-design/references/evidence.md +0 -35
  607. package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
  608. package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
  609. package/template/.codex/skills/yss-antdv-next-design/SKILL.md +0 -48
  610. package/template/.codex/skills/yss-antdv-next-design/references/boundaries.md +0 -25
  611. package/template/.codex/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
  612. package/template/.codex/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
  613. package/template/.codex/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
  614. package/template/.codex/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
  615. package/template/.codex/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
  616. package/template/.codex/skills/yss-components/SKILL.md +0 -386
  617. package/template/.codex/skills/yss-components/agents/openai.yaml +0 -5
  618. package/template/.codex/skills/yss-components/references/frontend-docs.md +0 -9
  619. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
  620. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
  621. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
  622. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
  623. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
  624. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
  625. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
  626. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
  627. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
  628. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
  629. package/template/.codex/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
  630. package/template/.codex/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
  631. package/template/.codex/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
  632. package/template/.codex/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
  633. package/template/.codex/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
  634. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
  635. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
  636. package/template/.codex/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
  637. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
  638. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
  639. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
  640. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
  641. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
  642. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
  643. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
  644. package/template/.codex/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
  645. package/template/.cursor/skills/yss-antd-design/SKILL.md +0 -35
  646. package/template/.cursor/skills/yss-antd-design/references/boundaries.md +0 -30
  647. package/template/.cursor/skills/yss-antd-design/references/cli-matrix.md +0 -38
  648. package/template/.cursor/skills/yss-antd-design/references/evidence.md +0 -35
  649. package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
  650. package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
  651. package/template/.cursor/skills/yss-antdv-next-design/SKILL.md +0 -48
  652. package/template/.cursor/skills/yss-antdv-next-design/references/boundaries.md +0 -25
  653. package/template/.cursor/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
  654. package/template/.cursor/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
  655. package/template/.cursor/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
  656. package/template/.cursor/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
  657. package/template/.cursor/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
  658. package/template/.cursor/skills/yss-components/SKILL.md +0 -386
  659. package/template/.cursor/skills/yss-components/agents/openai.yaml +0 -5
  660. package/template/.cursor/skills/yss-components/references/frontend-docs.md +0 -9
  661. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
  662. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
  663. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
  664. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
  665. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
  666. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
  667. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
  668. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
  669. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
  670. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
  671. package/template/.cursor/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
  672. package/template/.cursor/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
  673. package/template/.cursor/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
  674. package/template/.cursor/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
  675. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
  676. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
  677. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
  678. package/template/.cursor/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
  679. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
  680. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
  681. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
  682. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
  683. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
  684. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
  685. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
  686. package/template/.cursor/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
  687. package/template/.pi/skills/yss-antd-design/SKILL.md +0 -35
  688. package/template/.pi/skills/yss-antd-design/references/boundaries.md +0 -30
  689. package/template/.pi/skills/yss-antd-design/references/cli-matrix.md +0 -38
  690. package/template/.pi/skills/yss-antd-design/references/evidence.md +0 -35
  691. package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.mjs +0 -46
  692. package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +0 -27
  693. package/template/.pi/skills/yss-antdv-next-design/SKILL.md +0 -48
  694. package/template/.pi/skills/yss-antdv-next-design/references/boundaries.md +0 -25
  695. package/template/.pi/skills/yss-antdv-next-design/references/cli-matrix.md +0 -34
  696. package/template/.pi/skills/yss-antdv-next-design/references/fact-pack.md +0 -38
  697. package/template/.pi/skills/yss-antdv-next-design/scripts/collect-antdv-next-facts.mjs +0 -213
  698. package/template/.pi/skills/yss-antdv-next-design/scripts/validate-fact-pack.mjs +0 -168
  699. package/template/.pi/skills/yss-antdv-next-design/tests/run-scenarios.mjs +0 -139
  700. package/template/.pi/skills/yss-components/SKILL.md +0 -386
  701. package/template/.pi/skills/yss-components/agents/openai.yaml +0 -5
  702. package/template/.pi/skills/yss-components/references/frontend-docs.md +0 -9
  703. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/SKILL.md +0 -31
  704. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-adapter/agents/openai.yaml +0 -5
  705. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/SKILL.md +0 -8
  706. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-application/agents/openai.yaml +0 -5
  707. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/SKILL.md +0 -8
  708. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-domain/agents/openai.yaml +0 -5
  709. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/SKILL.md +0 -8
  710. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-infrastructure/agents/openai.yaml +0 -5
  711. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/SKILL.md +0 -8
  712. package/template/.pi/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-web/agents/openai.yaml +0 -5
  713. package/template/.pi/skills/yss-mvc-scaffold-generator/SKILL.md +0 -8
  714. package/template/.pi/skills/yss-mvc-scaffold-generator/agents/openai.yaml +0 -4
  715. package/template/.pi/skills/yss-mvc-scaffold-generator/assets/logback-spring.xml.template +0 -50
  716. package/template/.pi/skills/yss-mvc-scaffold-generator/assets/smart-doc.json.template +0 -42
  717. package/template/.pi/skills/yss-mvc-scaffold-generator/references/architecture.md +0 -28
  718. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.mjs.txt +0 -137
  719. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/generate_project.test.mjs.txt +0 -341
  720. package/template/.pi/skills/yss-mvc-scaffold-generator/references/history/skill.md +0 -87
  721. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.mjs +0 -3
  722. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/generate_project.test.mjs +0 -9
  723. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.mjs +0 -74
  724. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/envelope.test.mjs +0 -36
  725. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/runtime.mjs +0 -114
  726. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/storage.mjs +0 -90
  727. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/lib/templates.mjs +0 -54
  728. package/template/.pi/skills/yss-mvc-scaffold-generator/scripts/verify_project.mjs +0 -103
  729. 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 +0 -35
@@ -1,74 +0,0 @@
1
- import { cp, readFile, writeFile } from "node:fs/promises";
2
- import path from "node:path";
3
-
4
- import { HARNESS_ROOT, MODULES, PROJECT_SCRIPT_FILES, exists, fail } from "./runtime.mjs";
5
- import { put } from "./storage.mjs";
6
-
7
- const TEMPLATE_SOURCE_COMMAND = /scripts\/(?:verify-template(?:-fast|-candidate)?|sync-skills|update-skill-lock|export-yss-skills|verify-upstream-skill-source|verify-maintenance-checkpoint|verify-implementation-path-scenarios|gitworks)/g;
8
- const TEMPLATE_SOURCE_SECTION = /(^## 4\. `template-source` 模板维护路由[^\S\r\n]*$)[\s\S]*?(?=^## 5\. `project-instance` 产品研发路由[^\S\r\n]*$)/m;
9
-
10
- function removeTemplateSourceCommands(content) {
11
- return content.replace(TEMPLATE_SOURCE_COMMAND, "上游 Harness 专用命令");
12
- }
13
-
14
- export function renderProjectInstanceAgents(content) {
15
- if (!TEMPLATE_SOURCE_SECTION.test(content)) fail("无法定位 AGENTS.md 的模板维护章节边界");
16
- return content.replace(
17
- TEMPLATE_SOURCE_SECTION,
18
- "$1\n\n当前仓库是 `project-instance`,模板维护只在上游 Harness 执行。\n\n"
19
- );
20
- }
21
-
22
- export async function writeProjectEnvelope(o) {
23
- await put(o.targetDir, "yss-project.yaml", "schema_version: 1\nrepository_mode: project-instance");
24
- await put(o.targetDir, ".artifact-workspace.yaml", `schema_version: 1\nkind: service\nservice_id: ${o.projectName}\nowner: ${JSON.stringify(o.gitAuthor)}`);
25
- await cp(path.join(HARNESS_ROOT, "AGENTS.md"), path.join(o.targetDir, "AGENTS.md"));
26
- const generatedAgents = await readFile(path.join(o.targetDir, "AGENTS.md"), "utf8");
27
- await writeFile(path.join(o.targetDir, "AGENTS.md"), renderProjectInstanceAgents(generatedAgents)
28
- .replaceAll(".agents/skills", "../skillUtils/.agents/skills")
29
- .replaceAll(".codex/skills", "../skillUtils/.codex/skills"), "utf8");
30
- await put(o.targetDir, "CONTEXT.md", "# 领域上下文\n\n## 业务术语\n\n| 术语 | 定义 | 英文标识 | 避免 / 备注 |\n|---|---|---|---|\n| 分析数据集 | 支撑一个数据分析功能的表结构、字段语义和查询边界。 | AnalysisDataset | 具体业务术语在需求分析后补充 |\n| 分析结果 | 数据分析接口返回的分页明细或聚合结果。 | AnalysisResult | 不表示未经约束的原始结果集 |");
31
- for (const relative of ["docs/agents", "docs/process", "docs/templates", "docs/architecture/templates"]) {
32
- const source = path.join(HARNESS_ROOT, relative);
33
- if (!await exists(source)) fail(`项目实例治理资产不存在: ${source}`);
34
- await cp(source, path.join(o.targetDir, relative), { recursive: true });
35
- }
36
- const integrationPath = path.join(o.targetDir, "docs/process/implementation-repo-integration.md");
37
- const integration = (await readFile(integrationPath, "utf8"))
38
- .replace("模板仓库至少执行:", "以下命令仅由上游 Harness 模板源执行,项目实例不分发这些模板维护工具:")
39
- .replace(/scripts\/sync-skills --check\r?\nscripts\/update-skill-lock --check\r?\nscripts\/verify-template/, "在 Harness 模板源执行 Skill 投影同步、锁文件检查和模板发布校验。");
40
- await writeFile(integrationPath, integration, "utf8");
41
- const checklistPath = path.join(o.targetDir, "docs/templates/build-architecture-checklist-template.md");
42
- await writeFile(checklistPath, (await readFile(checklistPath, "utf8")).replace("scripts/verify-implementation-path-scenarios", "node scripts/implementation-path-policy"), "utf8");
43
- for (const relative of ["AGENTS.md", "docs/process/implementation-repo-integration.md", "docs/process/harness-process-tailoring.md", "docs/templates/build-architecture-checklist-template.md"]) {
44
- const target = path.join(o.targetDir, relative);
45
- await writeFile(target, removeTemplateSourceCommands(await readFile(target, "utf8")), "utf8");
46
- }
47
- const agentReadmePath = path.join(o.targetDir, "docs/agents/README.md");
48
- const agentReadme = (await readFile(agentReadmePath, "utf8"))
49
- .replace("Engineering Skills 的安装、升级和验证说明", "项目实例使用共享 `skillUtils` 的版本检查说明")
50
- .replace("GitLab、MR、CI 和自动 gitworks 的技能配置与使用规则", "GitLab、MR 和 CI 的 `glab` 使用规则");
51
- await writeFile(agentReadmePath, agentReadme, "utf8");
52
- const issueTrackerPath = path.join(o.targetDir, "docs/agents/issue-tracker.md");
53
- await writeFile(issueTrackerPath, (await readFile(issueTrackerPath, "utf8")).replace("当平台为 GitLab 时,优先使用 `glab` 或项目快捷入口 `scripts/gitworks`。", "当平台为 GitLab 时,使用已认证的 `glab`。"), "utf8");
54
- const tailoringPath = path.join(o.targetDir, "docs/process/harness-process-tailoring.md");
55
- await writeFile(tailoringPath, (await readFile(tailoringPath, "utf8")).replace("使用 `scripts/verify-maintenance-checkpoint <file>` 或通过 stdin 传入 YAML / JSON 做只读校验。触发项 ID 与最低等级只由 `docs/process/maintenance-intensity.yaml` 维护;校验器消费该策略。未知触发项必须先更新该权威策略和场景,不能静默接受。", "维护 checkpoint 校验只在上游 Harness 模板源执行。触发项 ID 与最低等级只由 `docs/process/maintenance-intensity.yaml` 维护;未知触发项必须先更新该权威策略和场景,不能静默接受。"), "utf8");
56
- await put(o.targetDir, "docs/agents/skills-maintenance.md", "# 项目实例 Skill 环境\n\n本项目不维护或发布共享 Skill。共享 Skill 位于相邻的 `../skillUtils`,版本由项目根 `skills-lock.json` 锁定。\n\n开发前执行:\n\n```bash\nnpm run check-agent-environment\n```\n\n输出 `READY` 表示工具版本、兼容协议、Agent 投影和 canonical Skill hash 一致。输出 `NOT_READY` 时停止功能实现,使用上游 Harness 的项目初始化或刷新流程更新 `skillUtils`;不要在项目内手工同步、导出或覆盖共享 Skill。\n\n项目实例只消费已提交的 `scripts/lib/*.mjs` 和 `scripts/vendor/*.mjs`。模板发布、Skill 投影生成、上游来源验证和公开导出均属于 Harness 模板源维护,不在本项目执行。");
57
- await put(o.targetDir, "docs/agents/gitlab-workflow-skills.md", "# GitLab 工作流\n\n本项目不分发 GitLab 包装脚本。需要查看 MR、Pipeline 或 CI 时,使用已认证的 `glab`,并先确认当前仓库的 `origin` 指向目标 GitLab 项目。\n\n常用只读命令:\n\n```bash\ngit status --short --branch\nglab mr list\nglab ci list\nglab ci status\n```\n\n创建分支、commit、push、MR 或触发 Pipeline 都必须遵守 `AGENTS.md` 的显式授权和 checkpoint 规则。Token 只通过 `glab auth login` 或环境变量管理,不写入仓库文件。");
58
- for (const relative of PROJECT_SCRIPT_FILES) await cp(path.join(HARNESS_ROOT, "scripts", relative), path.join(o.targetDir, "scripts", relative));
59
- for (const relative of ["lib", "vendor"]) await cp(path.join(HARNESS_ROOT, "scripts", relative), path.join(o.targetDir, "scripts", relative), { recursive: true });
60
- for (const relative of ["package.json", "skills-lock.json", ".nvmrc"]) {
61
- const source = path.join(HARNESS_ROOT, relative);
62
- if (await exists(source)) await cp(source, path.join(o.targetDir, relative));
63
- }
64
- await put(o.targetDir, "skills-lock.json", JSON.stringify({ version: 1, distribution: { mode: "sibling-directory", skillUtilsDir: "../skillUtils", required: true, compatibility: "skill-utils-v1", requiredToolVersion: "1.0.0" }, skills: { source: "../skillUtils/skills-lock.json", validation: "scripts/check-agent-environment.mjs" } }, null, 2));
65
- await put(o.targetDir, "package.json", JSON.stringify({ name: o.projectName, private: true, scripts: { "check-agent-environment": "node scripts/check-agent-environment.mjs", "verify-project": "node scripts/verify-lifecycle-registry", "verify-dto": "node scripts/verify-yss-dto-openapi-profile" } }, null, 2));
66
- await put(o.targetDir, "docs/process/analysis-project.yaml", `project_name: ${o.projectName}\nproject_type: data-analysis\nrepository_scope: external-repository\nimplementation_root: .\nruntime_java: 8\npersistence_profile: yss-mybatis-plus\nid_strategy: ASSIGN_ID\ndatabase:\n type: ${o.database}\n runtime_connection: true\n metadata_contract: docs/data-model\nquery:\n sql_mode: readonly\n allowed_statement_types: [select, with]\n parameter_binding_required: true\nmodules:\n${MODULES.map((module) => ` - ${module}`).join("\n")}\nworkflow:\n - requirement-and-data-contract\n - specification-freeze\n - vertical-slice-implementation\n - automated-gates\n - single-release-confirmation\n - runtime-monitoring`);
67
- await put(o.targetDir, "docs/process/implementation-repo-registry.yaml", `schema_version: 1\nprojects:\n - project_type: backend\n project_name: ${o.projectName}\n project_root: .\n git_root: .\n repository_scope: external-repository\n scaffold_status: initialized\n default_branch: main\n allowed_write_paths:\n - .\n verification_commands:\n - mvnw com.coveo:fmt-maven-plugin:2.9.1:check\n - mvnw validate\n - mvnw test\n - mvnw package\n expected_evidence_files:\n - docs/.scratch/<feature>/verification/yss-skill-execution-result.yaml\n - docs/.scratch/<feature>/verification/fresh-verification.md\n ci: not-configured\n rollback_point: initial-empty-repository`);
68
- await put(o.targetDir, "docs/.scratch/.gitkeep", "# Local lifecycle artifacts are created in feature subdirectories.");
69
- await put(o.targetDir, "docs/service/service-overview.md", `# ${o.projectName} 服务说明\n\nOwner: ${o.gitAuthor}\n\n## 职责\n\n提供数据分析服务能力;具体业务职责在产品服务登记和功能 Spec 中维护。\n\n## 非职责\n\n## 依赖服务\n`);
70
- await put(o.targetDir, "docs/service/module-map.md", `# ${o.projectName} Module 地图\n\n| Module | 职责 | 主要 Interface |\n|---|---|---|\n| server | Web 入口与运行配置 | HTTP Controller |\n| core | 领域与应用行为 | Domain/Application Interface |\n| client | 对外 DTO 与客户端契约 | Request/Response |\n| repository | 数据持久化 | Gateway/Repository |\n| adapter | 外部系统适配 | Adapter |\n| feign-client | 服务间调用客户端 | Feign Interface |\n`);
71
- await put(o.targetDir, "docs/service/current-capabilities.md", "# 当前能力\n\n本文件是发布时生成的派生阅读视图,普通功能开发不手工修改。功能详情位于 `docs/features/`,开发中功能位于 `docs/.scratch/`。\n");
72
- await put(o.targetDir, "docs/engineering/data-analysis-java-conventions.md", `# 数据分析 Java 工程规范\n\n变量、参数和字段必须使用业务含义名称。public 类、接口和方法必须有简体中文 Javadoc;Controller 类和公开接口方法使用初始化时读取的 Git user.name(本项目为 @author ${o.gitAuthor})和生成时的 @date,方法参数、返回值分别使用 @param、@return 完整说明。Javadoc 正文、@author、@date、@param、@return 必须分行;Mapping 注解、方法签名、方法体不得压缩在同一行。\n`);
73
- await put(o.targetDir, ".gitignore", "target/\n**/target/\n.idea/\n*.iml\n.env\n.env.*\n!.env.example\n.local/\n");
74
- }
@@ -1,36 +0,0 @@
1
- import test from "node:test";
2
- import assert from "node:assert/strict";
3
-
4
- import { renderProjectInstanceAgents } from "./envelope.mjs";
5
-
6
- test("按章节边界把模板维护路由转换为项目实例说明", () => {
7
- const source = `# AGENTS.md
8
-
9
- ## 3. 上文
10
-
11
- 保留。
12
-
13
- ## 4. \`template-source\` 模板维护路由
14
-
15
- 这里的自然语言允许持续精简,不应参与匹配。
16
-
17
- - 模板源命令也不应进入项目实例。
18
-
19
- ## 5. \`project-instance\` 产品研发路由
20
-
21
- 继续保留。
22
- `;
23
-
24
- const result = renderProjectInstanceAgents(source);
25
-
26
- assert.match(result, /## 4\. `template-source` 模板维护路由\n\n当前仓库是 `project-instance`,模板维护只在上游 Harness 执行。/);
27
- assert.doesNotMatch(result, /这里的自然语言允许持续精简/);
28
- assert.match(result, /## 5\. `project-instance` 产品研发路由\n\n继续保留/);
29
- });
30
-
31
- test("模板维护章节边界缺失时明确失败", () => {
32
- assert.throws(
33
- () => renderProjectInstanceAgents("# AGENTS.md\n\n## 5. `project-instance` 产品研发路由\n"),
34
- /无法定位 AGENTS\.md 的模板维护章节边界/
35
- );
36
- });
@@ -1,114 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { stat } from "node:fs/promises";
3
- import { spawnSync } from "node:child_process";
4
- import os from "node:os";
5
- import path from "node:path";
6
- import { fileURLToPath } from "node:url";
7
-
8
- export const MODULES = ["server", "core", "client", "repository", "adapter", "feign-client"];
9
- export const SKILL_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
10
- export const HARNESS_ROOT = findHarnessRoot();
11
- export const SHARED_SKILLS_ROOT = path.join(HARNESS_ROOT, ".agents", "skills");
12
- export const SKILL_UTILS_NAME = "skillUtils";
13
- export const SKILL_UTILS_DIRECTORIES = [
14
- ".agents/skills", ".codex/skills", ".cursor/skills", ".pi/skills"
15
- ];
16
- export const PROJECT_SCRIPT_FILES = [
17
- "check-agent-environment.mjs", "implementation-path-policy", "repository-mode", "repository-scope-policy",
18
- "generate-lifecycle-artifacts", "node-generate-lifecycle-artifacts.mjs", "node-verify-lifecycle-registry.mjs",
19
- "verify-lifecycle-registry", "verify-lifecycle-checkpoint", "verify-frontend-implementation-evidence",
20
- "verify-yss-dto-openapi-profile"
21
- ];
22
-
23
- export function findHarnessRoot() {
24
- let candidate = SKILL_ROOT;
25
- while (true) {
26
- if (existsSync(path.join(candidate, ".agents", "skills")) && existsSync(path.join(candidate, "AGENTS.md"))) return candidate;
27
- const parent = path.dirname(candidate);
28
- if (parent === candidate) break;
29
- candidate = parent;
30
- }
31
- throw new Error(`未找到插件 Harness 根目录: ${SKILL_ROOT}`);
32
- }
33
-
34
- export function fail(message) { throw new Error(message); }
35
-
36
- export function parseArgs(argv) {
37
- const options = { database: "oracle", withMock: false, dryRun: false };
38
- const fields = {
39
- "--project-name": "projectName", "--base-package": "basePackage", "--target-dir": "targetDir",
40
- "--database": "database", "--maven-settings": "mavenSettings"
41
- };
42
- for (let index = 0; index < argv.length; index += 1) {
43
- let token = argv[index];
44
- if (token === "--with-mock") { options.withMock = true; continue; }
45
- if (token === "--dry-run") { options.dryRun = true; continue; }
46
- if (token === "--help" || token === "-h") { options.help = true; continue; }
47
- const equals = token.indexOf("=");
48
- let value = equals >= 0 ? token.slice(equals + 1) : undefined;
49
- if (equals >= 0) token = token.slice(0, equals);
50
- if (!fields[token]) fail(`不支持的参数: ${token}`);
51
- if (value === undefined) value = argv[++index];
52
- if (!value || value.startsWith("--")) fail(`参数 ${token} 缺少值`);
53
- options[fields[token]] = value;
54
- }
55
- if (options.help) return options;
56
- if (!options.projectName || !/^[a-z][a-z0-9-]*$/.test(options.projectName)) fail("--project-name 必须是小写连字符名称");
57
- if (!options.basePackage || !/^[a-zA-Z_$][\w$]*(\.[a-zA-Z_$][\w$]*)+$/.test(options.basePackage)) fail("--base-package 不是合法 Java 包名");
58
- if (!options.targetDir) fail("必须提供 --target-dir");
59
- if (!["oracle", "oceanbase-oracle"].includes(options.database)) fail("--database 只支持 oracle 或 oceanbase-oracle");
60
- options.targetDir = path.resolve(options.targetDir);
61
- if (options.mavenSettings) options.mavenSettings = path.resolve(options.mavenSettings);
62
- return options;
63
- }
64
-
65
- export async function exists(target) {
66
- try { await stat(target); return true; } catch (error) {
67
- if (error.code === "ENOENT") return false;
68
- throw error;
69
- }
70
- }
71
-
72
- export function xml(value) { return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;"); }
73
- export function packagePath(name) { return name.replaceAll(".", "/"); }
74
- export function generatedAtLocal() {
75
- const now = new Date();
76
- const pad = (value) => String(value).padStart(2, "0");
77
- return `${now.getFullYear()}/${pad(now.getMonth() + 1)}/${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}`;
78
- }
79
-
80
- export function runGit(args, cwd) { return spawnSync("git", args, { cwd, encoding: "utf8" }); }
81
- export function assertGitAvailable() {
82
- const result = runGit(["--version"], process.cwd());
83
- if (result.status !== 0) fail("未检测到可用的 Git,无法初始化独立项目仓库");
84
- }
85
- export function resolveGitAuthor() {
86
- const result = runGit(["config", "--get", "user.name"], process.cwd());
87
- const author = result.status === 0 ? result.stdout.trim() : "";
88
- if (!author) fail("未配置 Git user.name;请先执行 git config --global user.name \"你的姓名\"");
89
- if (/[\r\n]|\*\//.test(author)) fail("Git user.name 包含不能安全写入 Javadoc 的字符");
90
- return author;
91
- }
92
- export function initializeGit(root) {
93
- let result = runGit(["init", "--initial-branch=main"], root);
94
- if (result.status !== 0) {
95
- result = runGit(["init"], root);
96
- if (result.status === 0) result = runGit(["branch", "-M", "main"], root);
97
- }
98
- if (result.status !== 0) fail(`Git 仓库初始化失败: ${(result.stderr || result.stdout).trim()}`);
99
- }
100
-
101
- export async function resolveMavenSettings(options) {
102
- if (options.mavenSettings) {
103
- if (!await exists(options.mavenSettings)) fail(`Maven settings 不存在: ${options.mavenSettings}`);
104
- return { path: options.mavenSettings, source: "explicit", available: true };
105
- }
106
- if (process.env.YSS_MAVEN_SETTINGS) {
107
- const environmentPath = path.resolve(process.env.YSS_MAVEN_SETTINGS);
108
- if (!await exists(environmentPath)) fail(`Maven settings 不存在: ${environmentPath}`);
109
- return { path: environmentPath, source: "environment", available: true };
110
- }
111
- const userSettings = path.join(os.homedir(), ".m2", "settings.xml");
112
- if (await exists(userSettings)) return { path: userSettings, source: "user-home", available: true };
113
- return { path: null, source: "maven-default", available: false };
114
- }
@@ -1,90 +0,0 @@
1
- import { cp, mkdir, mkdtemp, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
2
- import path from "node:path";
3
-
4
- import {
5
- HARNESS_ROOT,
6
- SKILL_ROOT,
7
- SKILL_UTILS_DIRECTORIES,
8
- SKILL_UTILS_NAME,
9
- fail,
10
- exists
11
- } from "./runtime.mjs";
12
-
13
- const BOOTSTRAP_ONLY_SKILLS = ["yss-mvc-scaffold-generator"];
14
-
15
- async function distributedSkillLock() {
16
- const source = path.join(HARNESS_ROOT, "skills-lock.json");
17
- if (!await exists(source)) fail(`技能工具包源锁文件不存在: ${source}`);
18
- const lock = JSON.parse(await readFile(source, "utf8"));
19
- for (const name of BOOTSTRAP_ONLY_SKILLS) {
20
- delete lock.skills?.shared?.[name];
21
- for (const platform of Object.values(lock.skills?.platform ?? {})) delete platform?.[name];
22
- }
23
- return `${JSON.stringify(lock, null, 2)}\n`;
24
- }
25
-
26
- export async function assertEmpty(target) {
27
- if (!await exists(target)) return;
28
- if ((await readdir(target)).length) fail(`目标目录非空,拒绝生成: ${target}`);
29
- }
30
-
31
- export async function put(root, relative, content, author) {
32
- const target = path.join(root, relative);
33
- const rendered = author ? content.replaceAll("@author system", `@author ${author}`) : content;
34
- await mkdir(path.dirname(target), { recursive: true });
35
- await writeFile(target, `${rendered.trim()}\n`, "utf8");
36
- }
37
-
38
- export async function renderAsset(name, replacements) {
39
- let content = await readFile(path.join(SKILL_ROOT, "assets", name), "utf8");
40
- for (const [token, value] of Object.entries(replacements)) content = content.replaceAll(`{{${token}}}`, value);
41
- return content;
42
- }
43
-
44
- async function populateSkillUtils(destination) {
45
- await mkdir(destination, { recursive: true });
46
- for (const relative of SKILL_UTILS_DIRECTORIES) {
47
- const source = path.join(HARNESS_ROOT, relative);
48
- if (!await exists(source)) fail(`技能工具包源目录不存在: ${source}`);
49
- await cp(source, path.join(destination, relative), { recursive: true });
50
- }
51
- for (const root of SKILL_UTILS_DIRECTORIES) {
52
- for (const name of BOOTSTRAP_ONLY_SKILLS) {
53
- await rm(path.join(destination, root, name), { recursive: true, force: true });
54
- }
55
- }
56
- await writeFile(path.join(destination, "skills-lock.json"), await distributedSkillLock(), "utf8");
57
- const publicSkills = path.join(HARNESS_ROOT, "yss-public-skills.json");
58
- if (!await exists(publicSkills)) fail(`技能工具包源文件不存在: ${publicSkills}`);
59
- await cp(publicSkills, path.join(destination, "yss-public-skills.json"));
60
- await writeFile(path.join(destination, "skill-utils.yaml"), `schema_version: 1\nkind: yss-skill-utils\ntool_version: 1.0.0\ncompatibility: skill-utils-v1\nsource: ${path.basename(HARNESS_ROOT)}\ncanonical_root: .agents/skills\nprojection_roots:\n - .codex/skills\n - .cursor/skills\n - .pi/skills\nexcluded_skills:\n - yss-mvc-scaffold-generator\n`, "utf8");
61
- }
62
-
63
- export async function ensureSkillUtils(targetDir, { apply = true } = {}) {
64
- const parent = path.dirname(targetDir);
65
- const skillUtils = path.join(parent, SKILL_UTILS_NAME);
66
- const marker = path.join(skillUtils, "skill-utils.yaml");
67
- const expectedLock = await distributedSkillLock();
68
- if (await exists(skillUtils)) {
69
- if (!await exists(marker)) fail(`技能工具包目录已存在但不是受支持的 skillUtils: ${skillUtils}`);
70
- const installedLock = path.join(skillUtils, "skills-lock.json");
71
- const current = await exists(installedLock) ? await readFile(installedLock, "utf8") : "";
72
- if (current === expectedLock) return { path: skillUtils, created: false, refreshed: false, backup: null };
73
- if (!apply) return { path: skillUtils, created: false, refreshed: true, backup: null };
74
- const staging = await mkdtemp(path.join(parent, ".skillUtils.refresh-"));
75
- const backup = path.join(parent, `.skillUtils.backup-${Date.now()}`);
76
- try {
77
- await populateSkillUtils(staging);
78
- await rename(skillUtils, backup);
79
- try { await rename(staging, skillUtils); }
80
- catch (error) { await rename(backup, skillUtils); throw error; }
81
- } catch (error) {
82
- if (await exists(staging)) await rm(staging, { recursive: true, force: true });
83
- throw error;
84
- }
85
- return { path: skillUtils, created: false, refreshed: true, backup };
86
- }
87
- if (!apply) return { path: skillUtils, created: true, refreshed: false, backup: null };
88
- await populateSkillUtils(skillUtils);
89
- return { path: skillUtils, created: true, refreshed: false, backup: null };
90
- }
@@ -1,54 +0,0 @@
1
- import { generatedAtLocal, packagePath, xml } from "./runtime.mjs";
2
-
3
- export function parentPom(o) {
4
- const modules = o.modules.map((module) => ` <module>${module}</module>`).join("\n");
5
- return `<?xml version="1.0" encoding="UTF-8"?>
6
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
7
- <modelVersion>4.0.0</modelVersion><parent><groupId>com.yss.cloud</groupId><artifactId>yss-cloud-microservice</artifactId><version>2.0.0-SNAPSHOT</version><relativePath/></parent>
8
- <groupId>${xml(o.basePackage)}</groupId><artifactId>${o.projectName}</artifactId><version>2.0.0-SNAPSHOT</version><packaging>pom</packaging>
9
- <properties><java.version>1.8</java.version><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><yss-components.version>2.0.0-SNAPSHOT</yss-components.version></properties>
10
- <modules>\n${modules}\n </modules>
11
- <dependencyManagement><dependencies><dependency><groupId>com.yss.cloud</groupId><artifactId>yss-components-bom</artifactId><version>\${yss-components.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
12
- <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId></plugin><plugin><groupId>com.coveo</groupId><artifactId>fmt-maven-plugin</artifactId><version>2.9.1</version></plugin></plugins></build>
13
- </project>`;
14
- }
15
-
16
- export function modulePom(o, module) {
17
- const artifact = (name) => `<dependency><groupId>${xml(o.basePackage)}</groupId><artifactId>${o.projectName}-${name}</artifactId><version>\${project.version}</version></dependency>`;
18
- const yss = (name) => `<dependency><groupId>com.yss.cloud</groupId><artifactId>${name}</artifactId></dependency>`;
19
- const databaseDriver = o.database === "oceanbase-oracle" ? `<dependency><groupId>com.oceanbase</groupId><artifactId>oceanbase-client</artifactId><version>2.4.3</version></dependency>` : `<dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>19.8.0.0</version></dependency>`;
20
- const dependencies = {
21
- client: `${yss("yss-component-dto")}\n${yss("yss-component-validation-jsr303")}\n<dependency><groupId>com.yss.cloud</groupId><artifactId>yss-component-excel-mvc</artifactId><version>\${yss-components.version}</version></dependency>\n<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency>`,
22
- core: `${artifact("client")}\n${yss("yss-component-exception")}\n<dependency><groupId>com.yss.datamiddle</groupId><artifactId>yss-component-userinfo-starter</artifactId></dependency>\n<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></dependency>`,
23
- repository: `${artifact("core")}\n${artifact("client")}\n${yss("yss-component-mybatis-starter")}\n${yss("yss-component-distributed-id")}\n${databaseDriver}`,
24
- adapter: `${artifact("core")}\n${artifact("client")}\n<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency>\n<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-openfeign-core</artifactId></dependency>`,
25
- "feign-client": `${artifact("client")}\n<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-openfeign-core</artifactId></dependency>`,
26
- server: `<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>\n<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency>\n${artifact("repository")}\n${artifact("adapter")}\n${artifact("client")}\n${yss("yss-component-audit-log")}\n${yss("yss-component-cache-starter")}\n<dependency><groupId>com.yss.cloud</groupId><artifactId>yss-component-excel-mvc</artifactId><version>\${yss-components.version}</version></dependency>\n${yss("yss-component-distributed-id")}\n<dependency><groupId>com.yss.datamiddle</groupId><artifactId>yss-component-userinfo-starter</artifactId></dependency>\n<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>\n<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>\n<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>`
27
- }[module];
28
- const profiles = module === "server" ? `<profiles><profile><id>nacos</id><activation><activeByDefault>true</activeByDefault></activation><properties><app.env>dev</app.env><app.profiles>nacos</app.profiles></properties><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency></dependencies></profile></profiles>` : "";
29
- const plugin = module === "server" ? `<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.ly.smart-doc</groupId><artifactId>smart-doc-maven-plugin</artifactId><version>3.0.5</version><configuration><configFile>src/main/resources/smart-doc.json</configFile><includes><include>com.yss.cloud:yss-component-dto</include><include>com.yss.cloud:yss-component-exception</include><include>com.yss.cloud:yss-component-cache-starter</include><include>${xml(o.basePackage)}:${o.projectName}-client</include><include>${xml(o.basePackage)}:${o.projectName}-core</include><include>${xml(o.basePackage)}:${o.projectName}-repository</include></includes><projectName>\${project.artifactId}</projectName></configuration></plugin></plugins></build>` : "";
30
- return `<?xml version="1.0" encoding="UTF-8"?>
31
- <project xmlns="http://maven.apache.org/POM/4.0.0"><modelVersion>4.0.0</modelVersion><parent><groupId>${xml(o.basePackage)}</groupId><artifactId>${o.projectName}</artifactId><version>2.0.0-SNAPSHOT</version></parent><artifactId>${o.projectName}-${module}</artifactId><dependencies>${dependencies}</dependencies>${profiles}${plugin}</project>`;
32
- }
33
-
34
- export async function writeJavaSources(o, put) {
35
- const root = o.targetDir;
36
- const pkg = o.basePackage;
37
- const pp = packagePath(pkg);
38
- const generatedAt = generatedAtLocal();
39
- await put(root, `client/src/main/java/${pp}/client/query/AnalysisQuery.java`, `package ${pkg}.client.query;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.NoArgsConstructor;\n\n/** 数据分析分页查询。 */\n@Data\n@NoArgsConstructor\n@AllArgsConstructor\npublic class AnalysisQuery {\n private int pageNo;\n private int pageSize;\n private String sql;\n}`, o.gitAuthor);
40
- await put(root, `client/src/main/java/${pp}/client/response/AnalysisResult.java`, `package ${pkg}.client.response;\n\nimport java.util.List;\nimport java.util.Map;\nimport lombok.AllArgsConstructor;\nimport lombok.Data;\nimport lombok.NoArgsConstructor;\n\n/** 数据分析分页结果。 */\n@Data\n@NoArgsConstructor\n@AllArgsConstructor\npublic class AnalysisResult {\n private int pageNo;\n private int pageSize;\n private long total;\n private List<Map<String, Object>> rows;\n private String source;\n}`, o.gitAuthor);
41
- await put(root, `core/src/main/java/${pp}/core/gateway/AnalysisQueryExecutor.java`, `package ${pkg}.core.gateway;\n\nimport ${pkg}.client.query.AnalysisQuery;\nimport ${pkg}.client.response.AnalysisResult;\n\n/** 数据分析执行接口。 */\npublic interface AnalysisQueryExecutor {\n AnalysisResult execute(AnalysisQuery query);\n}`, o.gitAuthor);
42
- await put(root, `core/src/main/java/${pp}/core/service/AnalysisQueryService.java`, `package ${pkg}.core.service;\n\nimport ${pkg}.client.query.AnalysisQuery;\nimport ${pkg}.client.response.AnalysisResult;\nimport ${pkg}.core.gateway.AnalysisQueryExecutor;\n\n/** 数据分析查询服务。 */\npublic final class AnalysisQueryService {\n private final AnalysisQueryExecutor analysisQueryExecutor;\n\n public AnalysisQueryService(AnalysisQueryExecutor analysisQueryExecutor) {\n this.analysisQueryExecutor = analysisQueryExecutor;\n }\n\n public AnalysisResult execute(AnalysisQuery query) {\n return analysisQueryExecutor.execute(query);\n }\n}`, o.gitAuthor);
43
- await put(root, `adapter/src/main/java/${pp}/adapter/oracle/OracleAnalysisQueryExecutor.java`, `package ${pkg}.adapter.oracle;\n\nimport ${pkg}.client.query.AnalysisQuery;\nimport ${pkg}.client.response.AnalysisResult;\nimport ${pkg}.core.gateway.AnalysisQueryExecutor;\n\n/** Oracle 数据分析执行器占位实现。 */\npublic final class OracleAnalysisQueryExecutor implements AnalysisQueryExecutor {\n @Override\n public AnalysisResult execute(AnalysisQuery query) {\n throw new UnsupportedOperationException("Oracle execution requires an approved vertical slice");\n }\n}`, o.gitAuthor);
44
- if (o.withMock) await put(root, `adapter/src/main/java/${pp}/adapter/mock/MockAnalysisQueryExecutor.java`, `package ${pkg}.adapter.mock;\n\nimport ${pkg}.client.query.AnalysisQuery;\nimport ${pkg}.client.response.AnalysisResult;\nimport ${pkg}.core.gateway.AnalysisQueryExecutor;\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\n/** 本地联调数据分析执行器。 */\npublic final class MockAnalysisQueryExecutor implements AnalysisQueryExecutor {\n @Override\n public AnalysisResult execute(AnalysisQuery query) {\n Map<String, Object> row = new HashMap<String, Object>();\n row.put("metric", "mock-value");\n row.put("value", 100);\n List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>();\n rows.add(row);\n return new AnalysisResult(query.getPageNo(), query.getPageSize(), 1, rows, "mock");\n }\n}`, o.gitAuthor);
45
- await put(root, `server/src/main/java/${pp}/Application.java`, `package ${pkg};\n\nimport com.yss.cloud.audit.EnableAuditLog;\nimport com.yss.cloud.cache.EnableYssCloudRedisCache;\nimport com.yss.cloud.excel.annotation.EnableExcelControl;\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.openfeign.EnableFeignClients;\nimport org.springframework.context.annotation.ComponentScan;\nimport org.springframework.context.annotation.FilterType;\n\n/** 数据分析服务启动入口。 */\n@EnableYssCloudRedisCache\n@EnableExcelControl\n@EnableAuditLog\n@EnableFeignClients\n@ComponentScan(\n value = {"${pkg}", "com.yss.cloud"},\n excludeFilters = @ComponentScan.Filter(\n type = FilterType.REGEX,\n pattern = {"com\\\\.yss\\\\.cloud\\\\.mybatis\\\\..*", "com\\\\.yss\\\\.cloud\\\\.sankuai\\\\..*"}))\n@SpringBootApplication\npublic class Application {\n public static void main(String[] args) {\n SpringApplication.run(Application.class, args);\n }\n}`, o.gitAuthor);
46
- await put(root, `server/src/main/java/${pp}/server/configuration/DatabaseInfrastructureConfiguration.java`, `package ${pkg}.server.configuration;\n\nimport com.yss.cloud.EnableDistributedId;\nimport com.yss.cloud.mybatis.config.MapperConfiguration;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.Import;\nimport org.springframework.context.annotation.Profile;\n\n/** 数据库及分布式 ID 基础设施配置。 */\n@Configuration\n@Profile("!mock")\n@EnableDistributedId\n@Import(MapperConfiguration.class)\npublic class DatabaseInfrastructureConfiguration {\n}`, o.gitAuthor);
47
- const mockImport = o.withMock ? `import ${pkg}.adapter.mock.MockAnalysisQueryExecutor;\n` : "";
48
- const mockBean = o.withMock ? `\n @Bean\n @Profile("mock")\n AnalysisQueryExecutor mockAnalysisQueryExecutor() {\n return new MockAnalysisQueryExecutor();\n }\n` : "";
49
- const databaseRuntimeProfile = o.database === "oceanbase-oracle" ? "oceanbase-oracle" : "oracle";
50
- const oracleProfile = o.withMock ? `${databaseRuntimeProfile} & !mock` : databaseRuntimeProfile;
51
- await put(root, `server/src/main/java/${pp}/server/configuration/AnalysisConfiguration.java`, `package ${pkg}.server.configuration;\n\n${mockImport}import ${pkg}.adapter.oracle.OracleAnalysisQueryExecutor;\nimport ${pkg}.core.gateway.AnalysisQueryExecutor;\nimport ${pkg}.core.service.AnalysisQueryService;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.Profile;\n\n/** 数据分析服务 Bean 配置。 */\n@Configuration\npublic class AnalysisConfiguration {${mockBean}\n @Bean\n @Profile("${oracleProfile}")\n AnalysisQueryExecutor oracleAnalysisQueryExecutor() {\n return new OracleAnalysisQueryExecutor();\n }\n\n @Bean\n AnalysisQueryService analysisQueryService(AnalysisQueryExecutor analysisQueryExecutor) {\n return new AnalysisQueryService(analysisQueryExecutor);\n }\n}`, o.gitAuthor);
52
- await put(root, `server/src/main/java/${pp}/server/controller/AnalysisController.java`, `package ${pkg}.server.controller;\n\nimport ${pkg}.client.query.AnalysisQuery;\nimport ${pkg}.client.response.AnalysisResult;\nimport ${pkg}.core.service.AnalysisQueryService;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RestController;\n\n/**\n * 数据分析查询接口。\n *\n * @author system\n * @date ${generatedAt}\n */\n@RestController\n@RequestMapping("/api/analysis")\npublic class AnalysisController {\n private final AnalysisQueryService analysisQueryService;\n\n public AnalysisController(AnalysisQueryService analysisQueryService) {\n this.analysisQueryService = analysisQueryService;\n }\n\n /**\n * 分页查询数据分析结果。\n *\n * @author system\n * @date ${generatedAt}\n * @param query 数据分析分页查询条件\n * @return 数据分析分页结果\n */\n @PostMapping("/query")\n public AnalysisResult query(@RequestBody AnalysisQuery query) {\n return analysisQueryService.execute(query);\n }\n}`, o.gitAuthor);
53
- if (o.withMock) await put(root, `server/src/test/java/${pp}/server/controller/AnalysisControllerTest.java`, `package ${pkg}.server.controller;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.ActiveProfiles;\nimport org.springframework.test.web.servlet.MockMvc;\n\nimport static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;\nimport static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;\nimport static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;\n\n@SpringBootTest\n@AutoConfigureMockMvc\n@ActiveProfiles("mock")\nclass AnalysisControllerTest {\n @Autowired private MockMvc mockMvc;\n\n @Test\n void returnsMockAnalysis() throws Exception {\n mockMvc.perform(post("/api/analysis/query").contentType("application/json").content("{\\\"pageNo\\\":1,\\\"pageSize\\\":10}"))\n .andExpect(status().isOk())\n .andExpect(jsonPath("$.source").value("mock"));\n }\n}`, o.gitAuthor);
54
- }
@@ -1,103 +0,0 @@
1
- #!/usr/bin/env node
2
- import { readFile, stat } from "node:fs/promises";
3
- import { spawnSync } from "node:child_process";
4
- import path from "node:path";
5
-
6
- const modules = ["server", "core", "client", "repository", "adapter", "feign-client"];
7
- const args = process.argv.slice(2); const index = args.indexOf("--project-root");
8
- if (index < 0 || !args[index + 1]) { console.error("必须提供 --project-root"); process.exit(1); }
9
- const root = path.resolve(args[index + 1]);
10
- async function required(relative) { try { await stat(path.join(root, relative)); } catch { throw new Error(`缺少必需路径: ${relative}`); } }
11
- try {
12
- await Promise.all([".git", ".gitignore", ".artifact-workspace.yaml", "yss-project.yaml", "AGENTS.md", "CONTEXT.md", "skills-lock.json", "scripts/check-agent-environment.mjs", "docs/service/service-overview.md", "docs/service/module-map.md", "docs/service/current-capabilities.md", "docs/agents/issue-tracker.md", "docs/process/lifecycle-registry.yaml", "docs/process/harness-process-tailoring.md", "docs/process/implementation-repo-registry.yaml", "docs/templates/approval-record-template.yaml", "docs/templates/implementation-routing-template.md", "docs/templates/verification-record-template.md", "docs/templates/vertical-slice-ticket-template.md", ".yss/scaffold-generation.json"].map(required));
13
- const manifest = JSON.parse(await readFile(path.join(root, ".yss/scaffold-generation.json"), "utf8"));
14
- if (manifest.skill !== "yss-mvc-scaffold-generator" || !["oracle", "oceanbase-oracle"].includes(manifest.database)) throw new Error("生成清单与 YSS MVC 脚手架合同不一致");
15
- if (manifest.runtime_java !== "8" || manifest.project_version !== "2.0.0-SNAPSHOT" || manifest.persistence_profile !== "yss-mybatis-plus") throw new Error("Java 8/YSS MyBatis-Plus 技术基线不正确");
16
- const skillUtils = path.resolve(root, manifest.skill_utils_dir);
17
- await Promise.all(["skill-utils.yaml", "skills-lock.json", ".agents/skills/yss-product-lifecycle/SKILL.md", ".agents/skills/yss-implementation-contract-compiler/SKILL.md"].map((relative) => required(path.join(manifest.skill_utils_dir, relative))));
18
- for (const projection of [".agents", ".codex", ".cursor", ".pi"]) {
19
- const nestedGenerator = path.join(skillUtils, projection, "skills", "yss-mvc-scaffold-generator");
20
- if (await stat(nestedGenerator).then(() => true).catch(() => false)) throw new Error(`skillUtils 不应分发创建期生成器: ${projection}/skills/yss-mvc-scaffold-generator`);
21
- }
22
- for (const forbidden of [".agents", ".codex", ".cursor", ".pi"]) if (await stat(path.join(root, forbidden)).then(() => true).catch(() => false)) throw new Error(`项目不应携带技能投影目录: ${forbidden}`);
23
- if (JSON.stringify(manifest.modules) !== JSON.stringify(modules)) throw new Error("模块集合或顺序不正确");
24
- const backendRoot = path.join(root, manifest.backend_root || "");
25
- await Promise.all(["pom.xml", "mvnw", "mvnw.cmd", ...modules.map((item) => `${item}/pom.xml`)].map((relative) => required(path.join(manifest.backend_root || "", relative))));
26
- const packagePath = manifest.base_package.replaceAll(".", "/");
27
- await Promise.all([
28
- `server/src/main/java/${packagePath}/Application.java`,
29
- `server/src/main/java/${packagePath}/server/controller/AnalysisController.java`,
30
- `server/src/main/java/${packagePath}/server/configuration/AnalysisConfiguration.java`,
31
- `server/src/main/java/${packagePath}/server/configuration/DatabaseInfrastructureConfiguration.java`,
32
- `core/src/main/java/${packagePath}/core/gateway/AnalysisQueryExecutor.java`,
33
- `core/src/main/java/${packagePath}/core/service/AnalysisQueryService.java`,
34
- `client/src/main/java/${packagePath}/client/query/AnalysisQuery.java`,
35
- `client/src/main/java/${packagePath}/client/response/AnalysisResult.java`,
36
- `adapter/src/main/java/${packagePath}/adapter/oracle/OracleAnalysisQueryExecutor.java`,
37
- ].map(required));
38
- const all = await readFile(path.join(backendRoot, "pom.xml"), "utf8");
39
- for (const module of modules) if (!all.includes(`<module>${module}</module>`)) throw new Error(`父 POM 未声明模块: ${module}`);
40
- for (const expected of ["yss-cloud-microservice", "yss-components-bom", "<java.version>1.8</java.version>", "<version>2.0.0-SNAPSHOT</version>"]) if (!all.includes(expected)) throw new Error(`父 POM 缺少技术基线: ${expected}`);
41
- await Promise.all(["server/src/main/resources/bootstrap.yml", "server/src/main/resources/bootstrap-nacos.yml", "server/src/main/resources/application-mock.yml", `server/src/main/resources/application-${manifest.database}.yml`, "server/src/main/resources/logback-spring.xml", "server/src/main/resources/smart-doc.json"].map(required));
42
- if (manifest.mock_enabled) await required("server/src/main/resources/bootstrap-mock.yml");
43
- const bootstrap = await readFile(path.join(backendRoot, "server/src/main/resources/bootstrap.yml"), "utf8");
44
- const databaseProfile = manifest.database === "oceanbase-oracle" ? "oceanbase-oracle" : "oracle";
45
- const expectedProfiles = `active: \${app.env:dev},datasource,nacos,${databaseProfile}${manifest.mock_enabled ? ",mock" : ""}`;
46
- if (!bootstrap.includes(expectedProfiles) || /mock,\s*$/m.test(bootstrap)) throw new Error("Bootstrap profile 顺序或格式不正确");
47
- const bootstrapNacos = await readFile(path.join(backendRoot, "server/src/main/resources/bootstrap-nacos.yml"), "utf8");
48
- for (const expected of ["${nacosserver:192.168.165.58:8848}", "${nacos_group:yss-dm}", "enabled: true"]) if (!bootstrapNacos.includes(expected)) throw new Error(`Nacos Bootstrap 配置不完整: ${expected}`);
49
- if (manifest.mock_enabled) {
50
- const bootstrapMock = await readFile(path.join(backendRoot, "server/src/main/resources/bootstrap-mock.yml"), "utf8");
51
- if (!/discovery:\s*\n\s*enabled: false/.test(bootstrapMock) || !/config:\s*\n\s*enabled: false/.test(bootstrapMock)) throw new Error("Mock Bootstrap 未禁用 Nacos Discovery/Config");
52
- const applicationMock = await readFile(path.join(backendRoot, "server/src/main/resources/application-mock.yml"), "utf8");
53
- if (!/leaf:\s*\n\s*leafSegmentEnable: false\s*\n\s*leafSnowflakeEnable: false/.test(applicationMock)) throw new Error("Mock Profile 未禁用 Leaf Segment/Snowflake");
54
- }
55
- const serverPom = await readFile(path.join(backendRoot, "server/pom.xml"), "utf8");
56
- for (const expected of ["spring-boot-maven-plugin", "smart-doc-maven-plugin", "<id>nacos</id>", "<activeByDefault>true</activeByDefault>", "<app.env>dev</app.env>", "<app.profiles>nacos</app.profiles>", `${manifest.project_name}-client`, `${manifest.project_name}-core`, `${manifest.project_name}-repository`]) {
57
- if (!serverPom.includes(expected)) throw new Error(`server POM 缺少标准配置: ${expected}`);
58
- }
59
- const smartDocPlugin = serverPom.match(/<plugin>(?:(?!<\/plugin>)[\s\S])*?<artifactId>smart-doc-maven-plugin<\/artifactId>(?:(?!<\/plugin>)[\s\S])*?<\/plugin>/)?.[0];
60
- if (!smartDocPlugin) throw new Error("server POM 缺少 Smart-doc 人工文档能力");
61
- if (smartDocPlugin.includes("<executions>")) throw new Error("Smart-doc 不得绑定 Maven execution");
62
- const smartDoc = await readFile(path.join(backendRoot, "server/src/main/resources/smart-doc.json"), "utf8");
63
- for (const expected of [`"projectName": "${manifest.project_name}"`, `"packageFilters": "${manifest.base_package}.server.controller.*"`, '"showAuthor": true', '"appToken": ""']) {
64
- if (!smartDoc.includes(expected)) throw new Error(`Smart-doc 配置不完整: ${expected}`);
65
- }
66
- if (/43fd1d4bc1c743c1b83bf4843e8167bf|192\.168\./.test(smartDoc)) throw new Error("Smart-doc 不得携带示例项目的内网地址或 Token");
67
- const logback = await readFile(path.join(backendRoot, "server/src/main/resources/logback-spring.xml"), "utf8");
68
- for (const expected of ['springProfile name="dev,mock"', 'springProfile name="uat,pro,oracle,oceanbase-oracle"', manifest.base_package, "RollingFileAppender", "<maxFileSize>100MB</maxFileSize>", "<maxHistory>7</maxHistory>"]) {
69
- if (!logback.includes(expected)) throw new Error(`Logback 配置不完整: ${expected}`);
70
- }
71
- const controller = await readFile(path.join(backendRoot, `server/src/main/java/${packagePath}/server/controller/AnalysisController.java`), "utf8");
72
- for (const expected of [`@author ${manifest.javadoc_author}`, "@date ", "@param query", "@return "]) if (!controller.includes(expected)) throw new Error(`Controller Javadoc 不完整: ${expected}`);
73
- const application = await readFile(path.join(backendRoot, `server/src/main/java/${packagePath}/Application.java`), "utf8");
74
- if (application.includes("@EnableDistributedId")) throw new Error("启动类不得在 Mock profile 无条件启用分布式 ID");
75
- const databaseInfrastructure = await readFile(path.join(backendRoot, `server/src/main/java/${packagePath}/server/configuration/DatabaseInfrastructureConfiguration.java`), "utf8");
76
- for (const expected of ['@Profile("!mock")', "@EnableDistributedId", "@Import(MapperConfiguration.class)"]) if (!databaseInfrastructure.includes(expected)) throw new Error(`数据库基础设施 Profile 隔离不完整: ${expected}`);
77
- const configuration = await readFile(path.join(backendRoot, `server/src/main/java/${packagePath}/server/configuration/AnalysisConfiguration.java`), "utf8");
78
- const expectedOracleProfile = manifest.mock_enabled ? `@Profile("${databaseProfile} & !mock")` : `@Profile("${databaseProfile}")`;
79
- if (!configuration.includes(expectedOracleProfile)) throw new Error("Oracle/Mock 执行器 Profile 隔离不正确");
80
- const identity = await readFile(path.join(root, "yss-project.yaml"), "utf8");
81
- if (!identity.includes("repository_mode: project-instance")) throw new Error("项目身份不是 project-instance");
82
- const registry = await readFile(path.join(root, "docs/process/implementation-repo-registry.yaml"), "utf8");
83
- if (/smart-doc(?:-maven-plugin[^\n]*:openapi|-verification\.md|:html|:torna-rest)/i.test(registry)) throw new Error("AI Coding 默认验证不得执行 Smart-doc 或要求其证据");
84
- const expectedRegistryLines = [
85
- ` project_name: ${manifest.project_name}`,
86
- ` project_root: ${manifest.backend_root}`,
87
- " git_root: .",
88
- " repository_scope: external-repository",
89
- " - .",
90
- ];
91
- for (const line of expectedRegistryLines) {
92
- if (!registry.split(/\r?\n/).includes(line)) throw new Error(`实现仓登记与生成清单不一致: ${line.trim()}`);
93
- }
94
- const gitRoot = spawnSync("git", ["-C", root, "rev-parse", "--show-toplevel"], { encoding: "utf8" });
95
- if (gitRoot.status !== 0 || path.resolve(gitRoot.stdout.trim()).toLowerCase() !== root.toLowerCase()) throw new Error("目标目录不是独立 Git 仓库根");
96
- const branch = spawnSync("git", ["-C", root, "branch", "--show-current"], { encoding: "utf8" });
97
- if (branch.status !== 0 || branch.stdout.trim() !== "main") throw new Error("独立 Git 仓库默认分支不是 main");
98
- const commits = spawnSync("git", ["-C", root, "rev-list", "--all", "--count"], { encoding: "utf8" });
99
- if (commits.status !== 0 || commits.stdout.trim() !== "0") throw new Error("生成器不得创建 Git commit");
100
- const remotes = spawnSync("git", ["-C", root, "remote"], { encoding: "utf8" });
101
- if (remotes.status !== 0 || remotes.stdout.trim()) throw new Error("生成器不得配置 Git remote");
102
- console.log(`项目结构验证通过:${manifest.project_name},${modules.length} 个模块,mock=${manifest.mock_enabled}`);
103
- } catch (error) { console.error(error.message); process.exitCode = 1; }
@@ -1,35 +0,0 @@
1
- ---
2
- name: yss-antd-design
3
- description: Use when an H2 React/AntD prototype needs versioned Ant Design v6 facts or an incremental fact-pack refresh. Not for H1, frontend implementation, lifecycle approval, or replacing yss-prototype-stage.
4
- ---
5
-
6
- # YSS Ant Design 事实
7
-
8
- 只服务 H2 `flow-review` 中实际采用 React AntD 的原型,把官方 `@ant-design/cli` 与 `design.md` 收成可追溯的条件事实源。阶段合同仍是 `yss-prototype-stage`。H1 不适用;前端代码落地一律改用 `yss-ui`。
9
-
10
- ## 何时使用
11
-
12
- - 已进入 `yss-prototype-stage` 且档位为 H2、实际采用 React AntD,需要组件 / token / demo / semantic 事实。
13
- - 现有 fact pack 不满足精确版本、组件覆盖、项目 Token digest 与无新 API 疑问四项 freshness 条件,需要增量补齐。
14
-
15
- 不要用本技能:H1、H2 非 AntD 原型、前端实现、Vue / Ant Design Vue 生产代码、批准门禁、生成页面流、安装官方 `antd` skill,或运行 `antd setup`。
16
-
17
- ## 步骤
18
-
19
- 1. 先检查 `docs/design/facts/antd/<exact-version>/manifest.json`。fresh 时直接引用;不 fresh 才检测 CLI,优先已安装的 `antd`,否则用 `npx -y @ant-design/cli`。记录实际 CLI 版本,不执行全局安装。
20
- 2. 读项目 `docs/design/design.md` 与 `docs/design/tokens/*`。
21
- 3. 选定 `<target_antd_version>`(项目已选的 v6;未选则先查再记录,不得依赖空仓库自动检测)。此后每次知识查询都传同一版本。
22
- 4. 设置 `ANTD_NO_AUTO_REPORT=1`。一律 `--format json`,对外说明用 `--lang zh`。
23
- 5. 查询官方 `design.md`,再按选用组件跑 `info` / `demo` / `token` / `semantic`。命令矩阵见 `references/cli-matrix.md`。
24
- 6. 把 fact-pack manifest 或增量 JSON 路径写入证据清单。字段与 lint 适用范围见 `references/evidence.md`。
25
- 7. 上游默认与项目 token 冲突时,以项目覆盖为准,并标记 `project_override_reviewed`。
26
-
27
- ## 硬规则
28
-
29
- - 禁止凭记忆写 Ant Design v6 API。
30
- - 禁止 `antd setup`、`npx skills add ant-design/ant-design-cli`,以及把官方 `skills/antd` 拷进 `.agents/skills`。
31
- - 禁止把官方 `design.md` 的默认色、圆角、间距写回项目实现或覆盖项目 token。
32
- - 禁止在前端代码落地、垂直切片实现或 `yss-ui` 任务中调用本技能。
33
- - 禁止把 React props / demo / hook 当作 `yss-ui` 或 Ant Design Vue API。
34
- - 禁止为 H1 伪造 AntD 字段,或用 React CLI 证据宣称生产 YSS/AntDV 组件已经验证。
35
- - MCP 与 `llms-full.txt` 不是门禁证据。边界见 `references/boundaries.md`。
@@ -1,30 +0,0 @@
1
- # 边界与官方资料
2
-
3
- 官方文档只提供 React `antd` 事实,不提供 YSS 阶段合同。入口对照:
4
-
5
- | 官方资料 | 本技能用法 |
6
- |---|---|
7
- | https://ant.design/docs/react/for-agents-cn | 了解 CLI / skill / MCP / LLMs 分层。不要把其中的 “安装 skill” prompt 写进 `AGENTS.md` |
8
- | https://ant.design/docs/react/cli-cn | 命令与参数的权威说明 |
9
- | https://ant.design/docs/react/design-md-cn | 上游 `design.md` 定位。项目覆盖是 `docs/design/design.md` |
10
- | https://ant.design/docs/react/mcp-cn | MCP 是 IDE 加速,8 个知识工具不含 `lint` |
11
- | https://ant.design/docs/react/llms-cn | CLI 不可用时的降级目录。不要默认注入 `llms-full.txt` |
12
- | https://ant.design/design.md | 与 `antd design.md` 同一份 v6 上游默认 |
13
-
14
- ## 与其他技能
15
-
16
- - `yss-prototype-stage`:阶段顺序、评审、浏览器验证、用户确认。本技能只回写 AntD 事实段。
17
- - `yss-design-system`:项目风格与 token 规范。本技能查询上游事实,不得改项目 token。
18
- - `product-design:index`:Codex 视觉产出。本技能不替代它,也不使用 `antd-page-generator`。
19
- - `yss-ui`:前端代码落地的唯一 UI 入口。进入实现后不得再查本技能或 `@ant-design/cli` 的 React API。
20
- - 官方 `antd` skill:不安装、不锁定、不投影。
21
-
22
- ## MCP 与 LLMs.txt
23
-
24
- 开发者本机可以运行 `npx -y @ant-design/cli mcp --version <target_antd_version> --lang zh`,但:
25
-
26
- - 不把 `.cursor/mcp.json` 提交为模板默认。
27
- - 不把 MCP 调用记录当成 `evidence.antd-cli-validation`。
28
- - `antd-page-generator` 不是原型阶段入口。
29
-
30
- CLI 不可用时,可用 `https://ant.design/llms.txt` 定位单组件 `.md`,并在证据里写明降级原因。恢复 CLI 后补 JSON 落盘。