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
@@ -0,0 +1,61 @@
1
+ # AntD 组件知识与条件预构建
2
+
3
+ 默认用原生 HTML/CSS/JS;当复杂表格、树选择、日期范围等简化模拟会改变评审结论时,记录 `selection_reason` 并使用 `react-antd-prebuilt`。复杂组件的出现不是自动启用条件,先判断本次实际要验证的行为。两条路线都交付 `index.html` 与完整本地资源,接收者无需 Node。预构建仍在浏览器运行 React;不是零 JavaScript,也不是生产 YSS 组件证明。
4
+
5
+ ## 组件选择
6
+
7
+ [全量组件索引](antd-component-catalog.json) 固定官方来源、版本、分类、废弃状态及链接:73 个基础目录条目(包含已废弃 List),6 个重型组件单列外部来源。Icon 属于 `@ant-design/icons`;目录条目不等于 `antd` 直接导出。默认排除废弃组件。实际使用前按锁定版本查询;不要把官网当前页自动当成项目版本。
8
+
9
+ 首批选型覆盖 23 种语义:Layout、Menu、Breadcrumb、Tabs、Button、Typography、Form、Input、InputNumber、Select、Checkbox、Radio、Switch、Table、Pagination、Tag、Descriptions、Empty、Modal、Drawer、Alert、Spin、Message。组件知识可查不代表每种组件已有本地实现;可运行 starter 覆盖查询列表、详情、编辑弹窗、失败恢复。原生详情使用 dialog,AntD 详情使用 Drawer。其他变体按实际状态矩阵补充。
10
+
11
+ Table 首先限定分页、筛选、选择与操作;编辑、虚拟滚动、拖拽按需求验证,不从少量模拟数据推断性能。树控件明确勾选传导、禁用与异步加载;日期明确清空/非法输入/区间;Upload 只模拟交互,不把模拟成功标为服务端接收。ProTable 等重型组件只作为模式参考,另行评估依赖。
12
+
13
+ ## 资料与版本
14
+
15
+ 官方事实入口:[CLI](https://ant.design/docs/react/cli-cn/)、[LLMs/Markdown](https://ant.design/docs/react/llms-cn/)、组件源码。优先按组件查询,避免每次加载整个站点。
16
+
17
+ 当前作者工具固定 AntD 6.6.4、React/ReactDOM 19.2.4、esbuild 0.28.2、CLI 6.6.4,由 `assets/antd-authoring/package.json` 和 `pnpm-lock.yaml` 持有版本。更新时重新生成目录/来源记录并运行脚本和浏览器验证,不自动追随 latest。
18
+
19
+ CLI 按 minor 快照选择,可能回退到更早 minor 或 major;`--version` 不是补丁版本精确性的证据。采集器记录 requested/resolved snapshot 及原始摘要;未命中同 minor 时明确拒绝,补固定源码证据。`design.md` 是 major 粒度的默认 light 参考,根 `DESIGN.md` 才是项目权威。`zeroRuntime` 只关闭运行时样式生成,不移除 React;本适配器保留常规 AntD 样式生成,并用已计算 Token 映射主题,不再执行 compact 算法。
20
+
21
+ ## 作者侧工具(与交付包分离)
22
+
23
+ 在独立作者目录安装依赖,禁止在 canonical Skill 或生成投影内安装,禁止把 `node_modules` 和 lockfile 放入原型交付目录。
24
+
25
+ ```bash
26
+ mkdir -p docs/.scratch/<feature>/design/authoring
27
+ cp .agents/skills/yss-prototype-stage/assets/antd-authoring/{package.json,pnpm-lock.yaml} docs/.scratch/<feature>/design/authoring/
28
+ pnpm --dir docs/.scratch/<feature>/design/authoring install --frozen-lockfile
29
+ node .agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs \
30
+ --toolchain docs/.scratch/<feature>/design/authoring \
31
+ --version 6.6.4 --output docs/.scratch/<feature>/design/antd-reference
32
+ ```
33
+
34
+ 采集器默认缓存上述 23 个组件,可用 `--components Table,Select,DatePicker` 按需指定。CLI 尚缺的条目(例如此版本的 Util)必须补读官方源码,不伪造 API。返回的 `runtime_compatibility_verified=false` 只能由实际原型验证补足,采集不是批准。
35
+
36
+ ## 构建与验证
37
+
38
+ 原生完整业务流程 starter:
39
+
40
+ ```bash
41
+ node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs prepare-flow \
42
+ --project-root . --root docs/.scratch/<feature>/design/prototypes \
43
+ --feature <feature> --pattern workbench
44
+ ```
45
+
46
+ 真实 AntD starter(初次可用默认示例;定制后 `--entry` 指向作者目录中的 JSX 源文件):
47
+
48
+ ```bash
49
+ node .agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs \
50
+ --project-root . --feature <feature> \
51
+ --toolchain docs/.scratch/<feature>/design/authoring \
52
+ --reason '<说明简化模拟如何影响本次评审结论>'
53
+ ```
54
+
55
+ 输出是 IIFE bundle、Token/CSS、作者 JSX、构建来源和第三方许可;`build-provenance.json` 绑定实际包版本、作者 lock、源码及主题摘要。已有目录拒绝覆盖。继续修改原型时选择新版本工作目录,避免重写冻结截图与用户确认。`--entry` 当前接受单个 JSX bundle,额外资源须先补明确的本地打包支持,不能静默漏交付。
56
+
57
+ 两条路线统一 `seal-project` / `validate-project`、六轴 QA、Visual Baseline 和用户确认。`react-antd-prebuilt` 的 evidence 声明 `runtime_build_required=false`、`framework=react-antd-prebuilt`、`selection_reason`,组件事实仍绑定实际版本、组件集合、项目 DESIGN/Token digest 与来源 manifest;额外提供 `build_provenance_ref`。它不复用已退役 `react-antd-6` 路线。
58
+
59
+ 将包复制到独立目录,用 `file://`、禁用网络,验证 desktop/narrow、查询、详情、保存/失败重试、空/加载/权限/冲突、场景重置、键盘焦点、实际 32px 默认控件与主色。静态扫描有边界:编译后的依赖不按网络关键词判断,必须以真实浏览器的请求、console、状态证据复验。若离线小样不通过,记录阻塞,不自动换成需要服务器的工程。
60
+
61
+ 维护回归:`tests/run-scenarios.mjs`;配置 Playwright 和独立 `YSS_ANTD_TOOLCHAIN` 后运行 `tests/workbench-smoke.mjs`。模板示例与截图仅验证 starter,不代替具体产品独立评审和批准。
@@ -0,0 +1,14 @@
1
+ # HTML 原型实践与来源
2
+
3
+ 这些方法补充既有状态矩阵、六轴 QA 和 Visual Baseline,不引入新的生命周期或整套第三方技能。2026-09-14 核查;外部 main 是观察来源,不是自动更新授权。不复制第三方实现代码。
4
+
5
+ | 来源 | 采纳 | 边界 |
6
+ |---|---|---|
7
+ | [Google design.md](https://github.com/google-labs-code/design.md/blob/main/README.md) | 规范 Token、lint、diff 和派生导出 | alpha;沿用项目锁定工具,导出成功不替代 lint,规范不承载业务状态 |
8
+ | [GOV.UK 场景数据](https://prototype-kit.service.gov.uk/pass-data/) | 场景初值、输入保留、切换和清空 | 借鉴行为,服务端 session 不进入离线包 |
9
+ | [WAI APG](https://www.w3.org/WAI/ARIA/apg/practices/read-me-first/) 与 [Dialog](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) | 原生语义、键盘与焦点承诺 | ARIA 本身不实现交互;按实际采用模式复验 |
10
+ | [Playwright visual comparisons](https://playwright.dev/docs/test-snapshots) | 同环境、同场景的截图比较 | 首版截图不是已通过的回归;环境变化可能产生渲染差异 |
11
+ | [MDN modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) 与 [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) | 普通脚本、随包数据、内存场景与 file:// 复验 | 不依赖模块本地加载或 file: 持久化保证 |
12
+ | [Frontend Design](https://github.com/anthropics/claude-code/blob/main/plugins/frontend-design/skills/frontend-design/SKILL.md) | 内容、用户任务、数据密度驱动的设计 | 不采用其营销 hero 或改变 YSS 字体/品牌的默认倾向 |
13
+
14
+ Owl-Listener/designer-skills 四项方法已融合,固定 revision 与原型策略见 [档位合同](prototype-profile-routing.md)。页面行为根据实际 Spec 编写;场景与重置示例为 YSS 自行实现,不代表生产能力。
@@ -1,75 +1,50 @@
1
- # YSS 原型渲染适配器
1
+ # YSS HTML 原型适配器
2
2
 
3
- 生命周期调用方只选择 H1/H2 并验证 schema v3;静态与流程原型渲染细节留在本适配器内。
3
+ H1/H2 表示验证深度,不表示低/高保真。统一消费 Prototype Evidence schema v4 与 Visual Baseline schema v1。默认 `html-css-js`,接收者可离线打开;生产组件验证仍归下游 `yss-ui`,原型阶段不得调用。
4
4
 
5
- ## H1:静态视觉评审
5
+ ## 构建与交付
6
6
 
7
- 目录固定为 `docs/.scratch/<feature>/design/prototypes/`。运行:
7
+ 在项目实例中,低保真和状态矩阵评审通过后运行;模板源仅在临时 fixture 测试生成器:
8
8
 
9
9
  ```bash
10
- node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs prepare-static \
11
- --project-root <project-root> \
12
- --root <project-root>/docs/.scratch/<feature>/design/prototypes \
13
- --feature <feature>
10
+ node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs prepare-flow \
11
+ --project-root <project-root> --root <project-root>/docs/.scratch/<feature>/design/prototypes --feature <feature>
14
12
  ```
15
13
 
16
- 命令生成语义化 `index.html`、`styles.css` 和 `yss-prototype-adapter.json`,引用项目 Token CSS。它不创建 `package.json`、lockfile、`node_modules` 或运行时构建合同。设计者在此最小壳中实现布局和少量关键交互;交付可以是静态目录或 URL,不要求单文件。
17
-
18
- 校验:
14
+ H1 将 `prepare-flow` 换成 `prepare-static`。两者输出 `index.html`、`styles.css`、`tokens.css`、`scenarios.js`、`app.js` 和 `yss-prototype-adapter.json`。初始交互仅为模板示例,必须按已评审的 Spec、页面与状态替换。已有非空目录拒绝覆盖;旧批准版本保持只读,新工作版本使用新的工作目录标识并保留业务 feature 的追踪关系。
19
15
 
20
- ```bash
21
- node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs validate-project \
22
- --profile H1 --root <prototype-root>
23
- ```
16
+ 制作时可以使用必要工具,交付包不携带 package、lockfile、node_modules,不要求接收方运行 Node。使用普通 script、本地相对路径和随包数据;模块与工具源需先转换成可离线执行的脚本。场景状态默认在内存中,不以 file:// 下不确定的 localStorage 行为作为正确性前提。无需为简单流程建设路由或状态框架。
24
17
 
25
- ## H2:可运行流程
18
+ 所有运行资源收在交付目录内,Token 从 `DESIGN.md` 的项目派生 CSS 复制并保存来源摘要。静态扫描拒绝远程资源、越出目录、符号链接、缺失文件和常见网络依赖;动态构造资源及浏览器差异仍由真实离线复验发现。
26
19
 
27
- H2 可选择任何能稳定浏览器交付的轻量前端实现。默认 `component_basis=vue-antdv-next`,使用 Vue 3/Vite + Antdv Next:
20
+ 完成编辑后执行:
28
21
 
29
22
  ```bash
30
- node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs prepare-flow \
31
- --project-root <project-root> \
32
- --root <prototype-root> \
33
- --feature <feature> \
34
- --pnpm-version <actual-pnpm-version>
35
-
36
- node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs validate-project \
37
- --profile H2 --root <prototype-root>
23
+ node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs seal-project --root <prototype-root> --profile H2
24
+ node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs validate-project --root <prototype-root> --profile H2
38
25
  ```
39
26
 
40
- 默认命令生成最小 Vue/Vite starter,精确写入 `antdv-next@1.5.2`、`vue@3.5.21`、`vite@6.4.2`、`@vitejs/plugin-vue@5.2.4`,登记实际 pnpm,生成 Vue 入口、`src/yss-theme.js` 与 provider-neutral adapter schema v3。设计 workflow 在 starter 中替换占位页面,再以 `ConfigProvider`、`pnpm install`、`pnpm build` 形成可移植静态输出。已有 Vue 页面不会被重写,但必须通过合同验证。
27
+ `seal-project` 更新资源清单和摘要,不表示设计通过;修改批准原型前先建立新版本。封存后资源变化会使验证失败。规范或 Token 变化时先由设计系统重新派生,再更新包内副本与对应来源摘要,重新验证受影响场景并取得当前版本确认。
41
28
 
42
- 显式兼容 React/Vite + Ant Design v6 时传入:
29
+ ## 规范直出与视觉还原
43
30
 
44
- ```bash
45
- node .agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs prepare-flow \
46
- --project-root <project-root> \
47
- --root <prototype-root> \
48
- --feature <feature> \
49
- --component-basis react-antd-6 \
50
- --library-version <exact-6.x-version> \
51
- --pnpm-version <actual-pnpm-version>
52
- ```
31
+ - `source_visual.kind=design-system`:输入为根 `DESIGN.md`、交互说明、状态矩阵和已有页面模式;由本适配器直接构建,QA 使用 `design-contract`,核对 Token、实际计算样式、密度、内容和交互。不要调用要求图片前置的 Product Design prototype/image-to-code/design-qa,不改写上游插件的规则。
32
+ - `source_visual.kind=visual-reference`:已有用户选定、可定位的图像或页面捕获,QA 使用 `visual-comparison`。只有选用的 focused workflow 能满足本交付边界时才调用;要求 Node starter 的 workflow 不用于默认离线构建,可由 YSS adapter 直接还原该视觉目标。
33
+ - 没有足够设计依据时先澄清;仅视觉方向或信息架构不确定时比较候选方案。首版图不可当作独立来源来证明符合规范,必须先完成规范审查和用户确认,才能成为后续回归基线。
53
34
 
54
- 历史 `--target-antd-version` 继续映射到 `react-antd-6`,只为在途兼容,不再是默认调用。其他 H2 基座必须在证据中明确记录,不得伪造 Antdv Next 或 AntD 字段。
35
+ ## 流程和内容
55
36
 
56
- ### Provider fact pack
37
+ 使用现有状态矩阵约束事件、guard、动作与退出路径。以 `case_id/data_scenario` 定位固定场景,支持重置和重复操作;场景入口留在独立评审区域,不混入产品主流程。H2 覆盖主流程及命中的 failure/no-permission/conflict/recovery 状态,记录 `scenario_replay_ref`、`scenario_reset_result`。
57
38
 
58
- 默认目录为 `docs/design/facts/antdv-next/<exact-version>/`;React 兼容路线使用 `docs/design/facts/antd/<exact-version>/`。至少包含 `manifest.json`、design-md 摘要、组件事实与 digest。只有以下全部相等才为 fresh:
39
+ 表格、表单与说明使用代表性业务内容和数据密度,覆盖长中文、空值、校验反馈与窄屏形态。复杂组件只实现当前决策需要的可操作模拟;若模拟无法支持关键结论,记录 gap 并返回设计澄清,真实组件假设由 `implementation_handoff` 交给实现阶段。
59
40
 
60
- - manifest 的 package 与 exact version 等于原型 lockfile;
61
- - 所需组件均被覆盖;
62
- - 根 `DESIGN.md` path / digest 与当前规范源相等;
63
- - `project_token_baseline_digest` 等于当前 Token 派生基线;
64
- - 没有新的 API/semantic 疑问。
41
+ ## 统一 QA 与离线复验
65
42
 
66
- 不满足时只查询缺失或变化的事实。默认 Vue 路线调用 `yss-antdv-next-design`;React 兼容路线调用 `yss-antd-design`,且 `lint/doctor` 只在存在相关 React 源时运行。不要创建占位 fact 目录;feature 证据只引用实际 manifest。
43
+ 六轴仍为 visual/layout/interaction/content/accessibility/cross-platform,写同一份 feature 级 `verification/design-qa.md`。原生语义优先;弹窗按适用行为验证初始焦点、Tab、Escape 和关闭后的焦点去向。ARIA 属性或自动扫描不替代键盘实操。
67
44
 
68
- ## 共同映射与验证
45
+ 复制资源包到脱离源仓的目录,以 `file://` 且无网络运行,检查所有采用的场景、资源加载、console、键盘、焦点、200% zoom/reduced motion。证据写 `delivery_contract=offline-html-v1`、`resource_manifest_ref`、`offline_verification_ref/result`。机器静态检查通过只代表结构可检查。
69
46
 
70
- 映射的是 semantic role、项目 Token、状态和验收行为,不是 React API 表面。默认视口为 desktop `1440x900` 与 narrow `390x844`;按影响追加其他断点。Design QA 固定写 feature 级 verification 路径,并按 visual/layout/interaction/content/accessibility/cross-platform 六轴执行。
71
-
72
- 浏览器/Design QA 将每个风险驱动 case 捕获为 PNG,写入 `docs/.scratch/<feature>/handoff/visual-baseline-v<version>/images/`,并从 `docs/design/templates/visual-baseline-template.yaml` 生成 manifest。截图必须使用固定数据、sRGB、DPR 1,等待字体完成,关闭动画、过渡和光标闪烁;长页面使用固定滚动分段。捕获完成后运行:
47
+ 默认视口 desktop `1440x900`、narrow `390x844`;按影响追加。Visual Baseline 捕获固定数据、浏览器及版本、操作系统、字体、时区、locale、sRGB、DPR 1,关闭动画与光标,等待字体就绪;复验前重置场景。长页面按固定滚动位置分段。
73
48
 
74
49
  ```bash
75
50
  node .agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs seal \
@@ -77,6 +52,8 @@ node .agents/skills/yss-prototype-stage/scripts/visual-baseline-contract.mjs sea
77
52
  --bundle-root docs/.scratch/<feature>/handoff/visual-baseline-v1
78
53
  ```
79
54
 
80
- `seal` 校验 PNG 尺寸与大小并写入图像和整包摘要;随后以 `validate` 重验。模型和下游实现只从 manifest 的 `case_id` 取图,不通过 glob 推断含义。工作目录可位于被忽略的 `.scratch`,但 Strategic Design Handoff 必须携带或引用可读取的自包含 Bundle。
55
+ 从 manifest 的 `case_id` 读取语义与截图,不依赖 glob;视觉回归按风险采用,首次生成基线不声称已有回归通过。六轴 QA、独立评审、用户确认和生产实现隔离保持原合同。
56
+
57
+ ## 条件 AntD 路线
81
58
 
82
- H1/H2 的条件验证矩阵与实现阶段交接规则见 [prototype-profile-routing.md](prototype-profile-routing.md)。原型阶段禁止调用 `yss-ui`;真实组件事实只在批准后的前端实现与实现还原验证中取得。
59
+ 已确认复杂交互需要真实组件时,按 [AntD 集成](antd-integration.md) 使用 `react-antd-prebuilt`;这是作者侧预构建,接收者仍无需 Node,所有资源离线随包。默认 `html-css-js` 保持原生实现。组件库知识仅作为本阶段设计事实,不取代根 DESIGN.md 或授权生产实现。
@@ -9,7 +9,7 @@
9
9
  | 档位 | 名称 | 命中条件 | 默认适配器 |
10
10
  |---|---|---|---|
11
11
  | H1 | `visual-review` | 仅需确认布局、密度、层级、文案或少量关键交互;不涉及多页面导航、复杂联动、权限、恢复、冲突或真实组件差异 | 语义 HTML + 项目 Token CSS + 最小 JavaScript;可使用设计工具导出,但必须有浏览器可复验入口 |
12
- | H2 | `flow-review` | 多页面/路由、复杂表单联动、权限体验、失败恢复、并发冲突或需要可操作主流程测试 | 可运行前端原型;Vue 3/Vite + Antdv Next 是受支持默认,React/Vite + Ant Design v6 为显式兼容路线 |
12
+ | H2 | `flow-review` | 多页面/路由、复杂表单联动、权限体验、失败恢复、并发冲突或需要可操作主流程测试 | HTML/CSS/JavaScript 可操作流程;默认离线资源包,保持同等流程和异常验收 |
13
13
 
14
14
  真实 YSS/AntDV 组件行为、lockfile、props、slots、events 或 Storybook 状态不是第三种原型档位。它们属于前端实现计划、已批准切片的生产实现与实现还原验证。原型中发现的相关不确定性写入 `implementation_handoff`,不得为解决它调用 `yss-ui` 或把实现仓组件代码引入原型。
15
15
 
@@ -39,8 +39,9 @@
39
39
 
40
40
  - 主流程与关键 failure / no-permission / conflict 状态可操作。
41
41
  - 验证键盘、焦点、对比度、200% zoom、reduced motion;按风险决定视觉回归。
42
- - 默认使用 `vue-antdv-next` 并记录 package 与精确版本;显式兼容路线记录 `react-antd-6`。fact pack 只有在 provider、版本、组件集合和项目 Token baseline digest 全部匹配且没有新 API 疑问时才可复用,否则只补增量查询。
43
- - 使用其他基座时记录 `component_basis`,不创建空 Antdv Next 或 AntD 字段。
42
+ - 默认 `component_basis=html-css-js`、`runtime_build_required=false`、`prototype_library_facts.applicable=false`,不创建 package、lockfile 或空事实包。
43
+ - 场景使用现有 `case_id/data_scenario` 对应状态矩阵;固定初始输入与结果,提供切换、深链接和重置,验证失败后的输入保留、重试、权限边界及冲突恢复。
44
+ - `offline-html-v1` 交付包记录所有本地资源及摘要;断开网络后通过 `file://` 从独立目录复验,保存 console、资源、交互和截图结果。静态扫描不能替代浏览器行为证明。
44
45
 
45
46
  ### 实现阶段交接
46
47
 
@@ -50,7 +51,9 @@
50
51
 
51
52
  ## 条件 ideation
52
53
 
53
- 新视觉方向、信息架构不确定或存在两个以上合理布局时,`product-design:ideate` 的三方案比较为 mandatory。沿用已批准模式且 source visual 可定位时记录 `not-applicable`、复用来源和理由,不制造三份无意义变体。
54
+ 新视觉方向、信息架构不确定或存在多个合理布局时比较三个候选方案,由用户选择后构建。可用低保真、HTML 或按需 `product-design:ideate`;不把 ImageGen 当作所有原型的前置依赖。已批准模式或当前设计规范足以约束页面时,记录 `not-applicable`、来源与理由。
55
+
56
+ `source_visual.kind=design-system` 引用 `DESIGN.md`,走规范直出和 `design-contract` QA;`visual-reference` 引用独立视觉稿,走 `visual-comparison` QA。两者都要求统一六轴 QA 和用户确认;首版截图只在确认后成为后续回归基线。
54
57
 
55
58
  ## 上游融合记录
56
59
 
@@ -67,3 +70,11 @@
67
70
  - 新证据只生成 schema v4、Visual Baseline schema v1 与 `artifact.prototype-deliverable`。
68
71
  - prototype evidence schema v1/v2/v3 和 `artifact.high-fidelity-html-prototype` 只读兼容;已经关闭的历史证据保持有效,不补造图片。
69
72
  - 在途 UI 证据必须迁移到 v4 并产生 Visual Baseline 后才能关闭 `check.prototype-verified`;非 UI 功能不生成空包。
73
+
74
+ ### HTML 路线迁移
75
+
76
+ 两个原型组件 Provider 已从当前技能与生成路线退役。历史 Vue/React 原型、fact pack 与批准证据保留原字节;`--allow-legacy` 只读校验不代表通过当前门禁。在途原型继续演进时生成新的 HTML 工作版本、补离线与场景证据并重新确认,禁止覆盖旧版本。
77
+
78
+ 采纳的外部方法与适用边界见 [HTML 原型实践](html-prototype-practices.md);不安装上游整包或引入第二套状态、QA、交接体系。
79
+
80
+ 真实组件确有评审价值时,H2 可条件使用 `react-antd-prebuilt`,仍交付离线 HTML 资源包;启用条件、版本与验证见 [AntD 集成](antd-integration.md)。
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env node
2
+ // Author-side only. No package manager or build server is shipped to prototype recipients.
3
+ import {readFile,writeFile} from 'node:fs/promises';
4
+ import {createRequire} from 'node:module';
5
+ import {createHash} from 'node:crypto';
6
+ import {pathToFileURL} from 'node:url';
7
+ import path from 'node:path';
8
+ import {prepareOfflineHtml,sealOfflineHtml} from './offline-html.mjs';
9
+ const assets=new URL('../assets/antd-authoring/',import.meta.url);
10
+ const sha=b=>`sha256:${createHash('sha256').update(b).digest('hex')}`;
11
+ export async function buildAntdPrototype({projectRoot,root,feature,toolchain,reason,entry}){
12
+ if(!reason?.trim())throw new Error('真实 AntD 路线必须记录简化模拟影响评审结论的理由');
13
+ if(!toolchain)throw new Error('需要独立作者工具目录 toolchain;不要在共享 Skill 内安装依赖');
14
+ const expected=JSON.parse(await readFile(new URL('package.json',assets),'utf8'));
15
+ const require=createRequire(path.join(path.resolve(toolchain),'package.json'));
16
+ for(const [name,version]of Object.entries({...expected.dependencies,...expected.devDependencies})){
17
+ const actual=require(`${name}/package.json`).version;if(actual!==version)throw new Error(`${name} 需要锁定 ${version},实际 ${actual}`);
18
+ }
19
+ const lock=await readFile(new URL('pnpm-lock.yaml',assets));
20
+ if(sha(await readFile(path.join(toolchain,'pnpm-lock.yaml')))!==sha(lock))throw new Error('作者工具 pnpm lock 与技能基线不匹配');
21
+ const tokenCss=await readFile(path.join(projectRoot,'docs/design/tokens/variables.css'),'utf8');
22
+ // This adapter targets the default light :root baseline, never the later dark-theme overrides.
23
+ const lightCss=tokenCss.match(/^:root\s*\{([^}]+)\}/m)?.[1];
24
+ if(!lightCss)throw new Error('缺少明确的 :root light Token 基线');
25
+ const tokens=Object.fromEntries([...lightCss.matchAll(/(--[\w-]+):\s*([^;]+);/g)].map(m=>[m[1],m[2].trim()]));
26
+ const value=key=>{if(!tokens[key]||tokens[key].includes('var('))throw new Error(`需先派生实际 Token 值 ${key}`);return tokens[key];};
27
+ const theme={colorPrimary:value('--yss-color-primary-control'),colorPrimaryHover:value('--yss-color-primary-control-hover'),fontFamily:value('--brand-font-family'),fontSize:parseFloat(value('--brand-font-size')),controlHeight:parseFloat(value('--yss-control-height')),borderRadius:parseFloat(value('--brand-border-radius')),colorText:value('--brand-color-text'),colorBgLayout:value('--brand-color-bg-layout'),colorBgContainer:value('--brand-color-bg-container'),colorBorder:value('--brand-color-border'),motion:false};
28
+ const source=await readFile(entry?path.resolve(entry):new URL('workbench.jsx',assets),'utf8');
29
+ if(/\b(?:fetch\s*\(|XMLHttpRequest|WebSocket|EventSource|import\s*\(|serviceWorker\s*\.)/.test(source))throw new Error('离线原型源不得依赖网络或动态模块');
30
+ {
31
+ const {build}=require('esbuild');
32
+ const result=await build({stdin:{contents:source,loader:'jsx',resolveDir:path.resolve(toolchain)},bundle:true,write:false,format:'iife',platform:'browser',target:['chrome110'],minify:true,metafile:true,legalComments:'eof',define:{'process.env.NODE_ENV':'"production"',__PROTOTYPE_THEME__:JSON.stringify(theme)}});
33
+ if(result.outputFiles.length!==1)throw new Error('此离线路线仅接受一个 JS bundle;额外 CSS/资源需明确本地打包支持');
34
+ const packageRoots=new Set();
35
+ for(const input of Object.keys(result.metafile.inputs)){
36
+ let current=path.dirname(path.resolve(input));
37
+ if(!current.includes('node_modules'))continue;
38
+ while(current!==path.dirname(current)){
39
+ try{const pkg=JSON.parse(await readFile(path.join(current,'package.json'),'utf8'));if(pkg.name&&pkg.version){packageRoots.add(current);break;}}catch{}current=path.dirname(current);
40
+ }
41
+ }
42
+ const notices=[];
43
+ for(const base of [...packageRoots].sort()){
44
+ const pkg=JSON.parse(await readFile(path.join(base,'package.json'),'utf8'));
45
+ let license;
46
+ for(const file of ['LICENSE','LICENSE.md','LICENSE.txt','license','license.md']){try{license=await readFile(path.join(base,file),'utf8');break;}catch{}}
47
+ if(!license){for(const file of ['README.md','Readme.md','readme.md']){try{const readme=await readFile(path.join(base,file),'utf8');const section=readme.match(/^##? License[^\n]*\n([\s\S]*?)(?=^##? |$(?![\s\S]))/im);if(section?.[1].includes('Permission is hereby granted')){license=section[1].trim();break;}}catch{}}}
48
+ if(!license && pkg.name==='@ant-design/icons-svg' && pkg.version==='4.6.0' && pkg.license==='MIT'){
49
+ const antdRequire=createRequire(require.resolve('antd/package.json'));
50
+ const iconsRoot=path.dirname(antdRequire.resolve('@ant-design/icons/package.json'));
51
+ const icons=JSON.parse(await readFile(path.join(iconsRoot,'package.json'),'utf8'));
52
+ if(JSON.stringify(icons.repository).includes('ant-design-icons'))license=await readFile(path.join(iconsRoot,'LICENSE'),'utf8');
53
+ }
54
+ if(!license)throw new Error(`缺少已打包依赖的许可文件 ${pkg.name}`);
55
+ notices.push(`${pkg.name}@${pkg.version}\n${license}`);
56
+ }
57
+ if(notices.length<3)throw new Error('无法确认已打包依赖许可');
58
+ const manifest=await prepareOfflineHtml({projectRoot,root,feature,profile:'H2'});
59
+ await writeFile(path.join(root,'app.js'),result.outputFiles[0].contents);
60
+ await writeFile(path.join(root,'index.html'),'<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>资料维护</title><link rel="stylesheet" href="./tokens.css"><link rel="stylesheet" href="./styles.css"><script defer src="./app.js"></script></head><body><div id="app"></div></body></html>');
61
+ await writeFile(path.join(root,'styles.css'),`:root{font-family:var(--brand-font-family);color:var(--brand-color-text);background:var(--brand-color-bg-layout)}*{box-sizing:border-box}body{margin:0}.ant-layout-header{height:auto;line-height:normal;padding:16px 24px;background:var(--brand-color-bg-container);display:flex;gap:32px;align-items:center}.ant-layout-content{width:100%;max-width:1440px;margin:auto;padding:24px}.heading{display:flex;justify-content:space-between;align-items:center}.surface{background:var(--brand-color-bg-container);padding:16px;border-radius:8px;margin-block:16px}.review-controls{margin-block:24px}select{min-height:var(--yss-control-height);color:var(--brand-color-text);border:1px solid var(--brand-color-border);background:var(--brand-color-bg-container)}:focus-visible{outline:2px solid var(--yss-color-primary-control);outline-offset:2px}@media(max-width:576px){.ant-layout-content{padding:12px}.ant-layout-header{padding:12px;gap:16px}.surface{padding:12px}.heading{align-items:start;gap:8px}}`);
62
+ const buildBasis={reason,packages:{...expected.dependencies,...expected.devDependencies},lock_digest:sha(lock),source_digest:sha(source),theme_digest:sha(JSON.stringify(theme)),format:'iife',browser_runtime:'react',toolchain_required_by_recipient:false};
63
+ await writeFile(path.join(root,'authoring-source.jsx'),source);
64
+ await writeFile(path.join(root,'build-provenance.json'),JSON.stringify(buildBasis,null,2)+'\n');
65
+ // Preserve bundled third-party notices alongside the generated resources.
66
+ await writeFile(path.join(root,'THIRD-PARTY-NOTICES.txt'),notices.join('\n\n'));
67
+ await writeFile(path.join(root,'yss-prototype-adapter.json'),JSON.stringify({...manifest,component_basis:'react-antd-prebuilt',build_provenance:buildBasis},null,2));
68
+ return await sealOfflineHtml(root,'H2');
69
+ }
70
+ }
71
+ if(process.argv[1]&&pathToFileURL(path.resolve(process.argv[1])).href===import.meta.url){const args={};for(let i=2;i<process.argv.length;i+=2){if(!process.argv[i].startsWith('--')||!process.argv[i+1])throw new Error('参数必须是 --key value');args[process.argv[i].slice(2)]=process.argv[i+1];}const projectRoot=path.resolve(args['project-root']||'.');const root=args.root||path.join(projectRoot,'docs/.scratch',args.feature||'','design/prototypes');console.log(JSON.stringify(await buildAntdPrototype({projectRoot,root,feature:args.feature,toolchain:args.toolchain,reason:args.reason,entry:args.entry}),null,2));}
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ import{readFileSync,existsSync,mkdirSync,writeFileSync}from'node:fs';
3
+ import{createRequire}from'node:module';
4
+ import{createHash}from'node:crypto';
5
+ import{gunzipSync}from'node:zlib';
6
+ import path from'node:path';
7
+ import{pathToFileURL}from'node:url';
8
+ const core=['Layout','Menu','Breadcrumb','Tabs','Button','Typography','Form','Input','InputNumber','Select','Checkbox','Radio','Switch','Table','Pagination','Tag','Descriptions','Empty','Modal','Drawer','Alert','Spin','Message'];
9
+ const digest=b=>`sha256:${createHash('sha256').update(b).digest('hex')}`;
10
+ export function collectAntdReference({toolchain,version,output,components=core}){
11
+ if(!/^6\.\d+\.\d+$/.test(version||''))throw new Error('明确指定 --version 6.x.y;不自动检测或静默回退');
12
+ if(existsSync(output))throw new Error('输出已存在,保留历史快照,请选新目录');
13
+ const require=createRequire(path.join(path.resolve(toolchain),'package.json'));
14
+ const cliPath=require.resolve('@ant-design/cli/package.json'),cli=JSON.parse(readFileSync(cliPath));
15
+ if(cli.version!=='6.6.4')throw new Error('此采集器只适配已核验的 CLI 6.6.4 数据布局');
16
+ const dataRoot=path.join(path.dirname(cliPath),'data');const index=JSON.parse(readFileSync(path.join(dataRoot,'versions.json')));
17
+ const snapshot=index.v6?.[version.split('.').slice(0,2).join('.')];if(!snapshot)throw new Error('CLI 未收录该 minor;须补充固定源码证据');
18
+ const ref=`v${snapshot}.json`;const source=existsSync(path.join(dataRoot,ref))?readFileSync(path.join(dataRoot,ref)):gunzipSync(readFileSync(path.join(dataRoot,ref+'.gz')));const data=JSON.parse(source);
19
+ if(data.version!==snapshot)throw new Error('CLI 索引与实际数据版本不一致');
20
+ const selected=components.map(name=>{const c=data.components.find(c=>c.name.toLowerCase()===name.toLowerCase());if(!c)throw new Error(`CLI 不含 ${name},请读取固定官方源码;不可补造 API`);return c;});
21
+ const manifest={schema_version:1,requested_version:version,resolved_snapshot_version:snapshot,version_match:snapshot===version?'exact':'minor-snapshot-only',cli_version:cli.version,cli_snapshot_digest:digest(source),components_covered:selected.map(c=>c.name),design_doc_scope:'major-v6/default-light; reference only, project DESIGN.md is authoritative',runtime_compatibility_verified:false,files:{}};
22
+ const files={};for(const c of selected)files[`${c.name}.json`]=JSON.stringify(c,null,2)+'\n';
23
+ for(const[ref,bytes]of Object.entries(files))manifest.files[ref]=digest(bytes);
24
+ mkdirSync(output,{recursive:true});for(const[ref,bytes]of Object.entries(files))writeFileSync(path.join(output,ref),bytes);writeFileSync(path.join(output,'manifest.json'),JSON.stringify(manifest,null,2)+'\n');return manifest;
25
+ }
26
+ if(process.argv[1]&&pathToFileURL(path.resolve(process.argv[1])).href===import.meta.url){const a={};for(let i=2;i<process.argv.length;i+=2)a[process.argv[i].slice(2)]=process.argv[i+1];console.log(JSON.stringify(collectAntdReference({toolchain:a.toolchain,version:a.version,output:a.output,components:a.components?.split(',')}),null,2));}
@@ -0,0 +1,121 @@
1
+ import { createHash } from "node:crypto";
2
+ import { existsSync } from "node:fs";
3
+ import { mkdir, readFile, writeFile, readdir, lstat } from "node:fs/promises";
4
+ import path from "node:path";
5
+
6
+ const manifestName = "yss-prototype-adapter.json";
7
+ const sha = (bytes) => `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
8
+ const assetRoot = new URL("../assets/offline-html/", import.meta.url);
9
+
10
+ async function inventory(root, relative = "") {
11
+ const result = {};
12
+ if ((await lstat(path.join(root, relative))).isSymbolicLink()) throw new Error(`原型资源不允许符号链接: ${relative || "."}`);
13
+ for (const entry of await readdir(path.join(root, relative), { withFileTypes: true })) {
14
+ const name = path.posix.join(relative, entry.name);
15
+ if (entry.isSymbolicLink()) throw new Error(`原型资源不允许符号链接: ${name}`);
16
+ if (entry.isDirectory()) Object.assign(result, await inventory(root, name));
17
+ else if (!entry.isFile()) throw new Error(`原型资源不是普通文件: ${name}`);
18
+ else if (name !== manifestName) result[name] = sha(await readFile(path.join(root, name)));
19
+ }
20
+ return Object.fromEntries(Object.entries(result).sort(([a], [b]) => a.localeCompare(b, "en")));
21
+ }
22
+
23
+ function resourceErrors(file, text, files) {
24
+ const errors = [];
25
+ const refs = [];
26
+ if (/\.html?$/i.test(file)) {
27
+ for (const tag of text.matchAll(/<(?:script|link|img|source|iframe|video|audio|object|embed)\b[^>]*>/gi)) {
28
+ for (const attr of tag[0].matchAll(/\b(?:src|href|poster|data)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi)) refs.push(attr[1] ?? attr[2] ?? attr[3]);
29
+ if (/\bsrcset\s*=/i.test(tag[0])) errors.push(`${file}: 离线包请使用明确的本地 src,srcset 需先转换并复验`);
30
+ }
31
+ if (/<base\b/i.test(text) || /<script\b[^>]*\btype\s*=\s*["']?module\b/i.test(text)) errors.push(`${file}: file:// 交付不使用 base 或 module script`);
32
+ }
33
+ if (/\.(?:css|html?)$/i.test(file)) {
34
+ for (const match of text.matchAll(/url\(\s*["']?([^"')]+)["']?\s*\)|@import\s+["']([^"']+)["']/gi)) refs.push((match[1] ?? match[2]).trim());
35
+ }
36
+ for (const ref of refs) {
37
+ if (/^(?:data:|#)/i.test(ref)) continue;
38
+ let decoded;
39
+ try { decoded = decodeURIComponent(ref.split(/[?#]/)[0]); } catch { errors.push(`${file}: 非法资源 URL ${ref}`); continue; }
40
+ if (/^(?:[a-z][\w+.-]*:|\/|\\)/i.test(decoded) || decoded.includes("\\")) { errors.push(`${file}: 非本地相对资源 ${ref}`); continue; }
41
+ const target = path.posix.normalize(path.posix.join(path.posix.dirname(file), decoded));
42
+ if (target.startsWith("../") || !Object.hasOwn(files, target)) errors.push(`${file}: 资源缺失或越出交付包 ${ref}`);
43
+ }
44
+ if (/\.(?:jsx?|html?)$/i.test(file) && /\b(?:fetch\s*\(|XMLHttpRequest|WebSocket|EventSource|import\s*\(|serviceWorker\s*\.)/.test(text)) errors.push(`${file}: 离线默认路线不依赖网络、动态模块或 Service Worker;使用随包场景数据`);
45
+ return errors;
46
+ }
47
+
48
+ async function inspect(root, profile, checkDigests) {
49
+ const errors = [];
50
+ let manifest, files;
51
+ try {
52
+ files = await inventory(root);
53
+ manifest = JSON.parse(await readFile(path.join(root, manifestName), "utf8"));
54
+ } catch (error) { return { errors: [error.message] }; }
55
+ if (manifest.schema_version !== 4 || !["html-css-js", "react-antd-prebuilt"].includes(manifest.component_basis) || manifest.runtime_build_required !== false) errors.push("原型必须使用 offline-html adapter schema v4 / html-css-js / runtime_build_required=false");
56
+ if (manifest.prototype_profile !== profile || manifest.profile_kind !== (profile === "H1" ? "visual-review" : "flow-review")) errors.push("adapter 档位与验证档位不一致");
57
+ if (manifest.entry !== "index.html" || !files[manifest.entry]) errors.push("缺少本地 index.html 入口");
58
+ for (const file of ["styles.css", "tokens.css", "app.js", "scenarios.js"]) if (!files[file]) errors.push(`缺少 ${file}`);
59
+ for (const file of Object.keys(files)) {
60
+ if (/(^|\/)(node_modules|package\.json|(?:pnpm|package)-lock\.(?:yaml|json)|yarn\.lock)(\/|$)/.test(file)) errors.push(`交付包不得依赖 ${file}`);
61
+ if (/\.(css|jsx?|html?)$/i.test(file)) {
62
+ const content = await readFile(path.join(root, file), "utf8");
63
+ // Compiled dependencies contain network API names; inspect authored code and require real offline browser evidence.
64
+ if (!(manifest.component_basis === "react-antd-prebuilt" && file === "app.js")) errors.push(...resourceErrors(file, content, files));
65
+ }
66
+ }
67
+ if (manifest.component_basis === "react-antd-prebuilt") {
68
+ const build = manifest.build_provenance;
69
+ if (profile !== "H2" || build?.format !== "iife" || build?.browser_runtime !== "react" || build?.toolchain_required_by_recipient !== false || !build?.reason?.trim()) errors.push("真实 AntD 必须是 H2 离线预构建并记录选择理由");
70
+ for (const field of ["source_digest", "lock_digest", "theme_digest"]) if (!/^sha256:[a-f0-9]{64}$/.test(build?.[field] ?? "")) errors.push(`缺少 AntD ${field}`);
71
+ if (build?.source_digest !== files["authoring-source.jsx"]) errors.push("AntD 源文件与构建来源摘要不一致");
72
+ for (const name of ["antd", "react", "react-dom", "esbuild"]) if (!/^\d+\.\d+\.\d+$/.test(build?.packages?.[name] ?? "")) errors.push(`AntD 作者工具需要精确版本 ${name}`);
73
+ if (!files["THIRD-PARTY-NOTICES.txt"] || !files["build-provenance.json"]) errors.push("缺少构建来源或第三方许可");
74
+ else { try { if (JSON.stringify(JSON.parse(await readFile(path.join(root, "build-provenance.json"), "utf8"))) !== JSON.stringify(build)) errors.push("构建来源与 manifest 不匹配"); } catch { errors.push("构建来源不是有效 JSON"); } }
75
+ }
76
+ if (files["styles.css"]) {
77
+ const styles = await readFile(path.join(root, "styles.css"), "utf8");
78
+ for (const token of ["--brand-font-family", "--brand-color-text", "--brand-color-bg-layout", "--brand-color-bg-container", "--yss-color-primary-control", "--yss-control-height"]) if (!styles.includes(token)) errors.push(`styles.css 未消费项目 Token ${token}`);
79
+ }
80
+ if (manifest.design_source?.path !== "DESIGN.md" || !/^sha256:[a-f0-9]{64}$/.test(manifest.design_source?.digest ?? "")) errors.push("缺少根 DESIGN.md 来源摘要");
81
+ if (manifest.token_source?.path !== "docs/design/tokens/variables.css" || manifest.token_source?.digest !== files["tokens.css"]) errors.push("tokens.css 与登记的 Token 来源摘要不一致");
82
+ if (checkDigests && JSON.stringify(manifest.files) !== JSON.stringify(files)) errors.push("原型资源摘要或清单已变化,审查后重新 seal-project");
83
+ return { errors, manifest, files };
84
+ }
85
+
86
+ export async function validateOfflineHtml(root, profile) {
87
+ const { errors } = await inspect(root, profile, true);
88
+ return { errors };
89
+ }
90
+
91
+ export async function sealOfflineHtml(root, profile) {
92
+ const result = await inspect(root, profile, false);
93
+ if (result.errors.length) throw new Error(result.errors.join("\n"));
94
+ const manifest = { ...result.manifest, files: result.files };
95
+ await writeFile(path.join(root, manifestName), `${JSON.stringify(manifest, null, 2)}\n`);
96
+ return manifest;
97
+ }
98
+
99
+ export async function prepareOfflineHtml({ projectRoot, root, feature, profile, pattern = "editor" }) {
100
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(feature ?? "")) throw new TypeError("feature 必须是小写 kebab-case");
101
+ if (!["editor", "workbench"].includes(pattern)) throw new Error("pattern 必须为 editor/workbench");
102
+ const expected = path.resolve(projectRoot, "docs/.scratch", feature, "design/prototypes");
103
+ if (path.resolve(root) !== expected) throw new TypeError(`原型目录必须精确匹配 ${expected}`);
104
+ for (let current = path.resolve(root); current.startsWith(`${path.resolve(projectRoot)}${path.sep}`); current = path.dirname(current)) {
105
+ if (existsSync(current) && (await lstat(current)).isSymbolicLink()) throw new Error(`原型路径不允许符号链接: ${current}`);
106
+ }
107
+ // Refuse an occupied destination instead of replacing an existing or frozen prototype.
108
+ if (existsSync(root) && ((await lstat(root)).isSymbolicLink() || (await readdir(root)).length)) throw new Error("原型目录已存在内容;请在保留旧版本后选择新 feature 工作目录,不覆盖已有原型");
109
+ const design = await readFile(path.join(projectRoot, "DESIGN.md"));
110
+ const tokens = await readFile(path.join(projectRoot, "docs/design/tokens/variables.css"));
111
+ await mkdir(root, { recursive: true });
112
+ for (const file of ["index.html", "styles.css", "app.js", "scenarios.js"]) {
113
+ const folder = pattern === "workbench" && file !== "scenarios.js" ? new URL("../assets/native-workbench/", import.meta.url) : assetRoot;
114
+ const source = await readFile(new URL(file, folder), "utf8");
115
+ await writeFile(path.join(root, file), source.replaceAll("__FEATURE__", feature).replaceAll("__PROFILE__", profile));
116
+ }
117
+ await writeFile(path.join(root, "tokens.css"), tokens);
118
+ const manifest = { schema_version: 4, feature, pattern, prototype_profile: profile, profile_kind: profile === "H1" ? "visual-review" : "flow-review", component_basis: "html-css-js", runtime_build_required: false, entry: "index.html", design_source: { path: "DESIGN.md", digest: sha(design) }, token_source: { path: "docs/design/tokens/variables.css", digest: sha(tokens) }, files: {} };
119
+ await writeFile(path.join(root, manifestName), JSON.stringify(manifest));
120
+ return sealOfflineHtml(root, profile);
121
+ }