create-yss-spec 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/package.json +1 -1
  2. package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +102 -0
  3. package/template/.codex/skills/data-analytics/.app.json +84 -0
  4. package/template/.codex/skills/data-analytics/.codex-plugin/plugin.json +66 -0
  5. package/template/.codex/skills/data-analytics/.mcp.json +30 -0
  6. package/template/.codex/skills/data-analytics/AGENTS.md +20 -0
  7. package/template/.codex/skills/data-analytics/DEPENDENCIES.MD +27 -0
  8. package/template/.codex/skills/data-analytics/README.md +60 -0
  9. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html +16 -0
  10. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part001 +1 -0
  11. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part002 +1 -0
  12. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part003 +1 -0
  13. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part004 +1 -0
  14. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part005 +1 -0
  15. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part006 +1 -0
  16. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html +16 -0
  17. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part001 +1 -0
  18. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part002 +1 -0
  19. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part003 +1 -0
  20. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part004 +1 -0
  21. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part005 +1 -0
  22. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part006 +1 -0
  23. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part007 +1 -0
  24. package/template/.codex/skills/data-analytics/assets/datascience-small.svg +5 -0
  25. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html +16 -0
  26. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part001 +1 -0
  27. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part002 +1 -0
  28. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part003 +1 -0
  29. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part004 +1 -0
  30. package/template/.codex/skills/data-analytics/assets/datascience.png +0 -0
  31. package/template/.codex/skills/data-analytics/assets/datascience.svg +10 -0
  32. package/template/.codex/skills/data-analytics/mcp/server.cjs +2963 -0
  33. package/template/.codex/skills/data-analytics/package-lock.json +3048 -0
  34. package/template/.codex/skills/data-analytics/package.json +43 -0
  35. package/template/.codex/skills/data-analytics/scripts/normalize-widget-assets.mjs +75 -0
  36. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +160 -0
  37. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/agents/openai.yaml +6 -0
  38. package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +148 -0
  39. package/template/.codex/skills/data-analytics/skills/build-dashboard/agents/openai.yaml +6 -0
  40. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/bi-platform-dashboard.md +18 -0
  41. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/html-dashboard.md +24 -0
  42. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/mcp-artifact-dashboard.md +71 -0
  43. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/streamlit-dashboard.md +85 -0
  44. package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +207 -0
  45. package/template/.codex/skills/data-analytics/skills/build-report/agents/openai.yaml +6 -0
  46. package/template/.codex/skills/data-analytics/skills/build-report/assets/executive-report-shell.html +70 -0
  47. package/template/.codex/skills/data-analytics/skills/build-report/assets/technical-report-shell.html +66 -0
  48. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/SKILL.md +118 -0
  49. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/agents/openai.yaml +6 -0
  50. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/__init__.py +1 -0
  51. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/cli.py +57 -0
  52. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/constants.py +61 -0
  53. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/docx_writer.py +362 -0
  54. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/html_parser.py +829 -0
  55. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/model.py +30 -0
  56. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/plan.py +129 -0
  57. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/quality.py +374 -0
  58. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/rendering.py +613 -0
  59. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/table_utils.py +54 -0
  60. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/utils.py +16 -0
  61. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc_plan.py +9 -0
  62. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/SKILL.md +78 -0
  63. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/agents/openai.yaml +6 -0
  64. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/scripts/report_to_google_slides.py +2379 -0
  65. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/SKILL.md +88 -0
  66. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/agents/openai.yaml +6 -0
  67. package/template/.codex/skills/data-analytics/skills/build-report/specifications/executive-report.md +97 -0
  68. package/template/.codex/skills/data-analytics/skills/build-report/specifications/mcp-app-report.md +59 -0
  69. package/template/.codex/skills/data-analytics/skills/build-report/specifications/technical-report.md +75 -0
  70. package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +103 -0
  71. package/template/.codex/skills/data-analytics/skills/design-kpis/agents/openai.yaml +6 -0
  72. package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +68 -0
  73. package/template/.codex/skills/data-analytics/skills/gather-business-context/agents/openai.yaml +6 -0
  74. package/template/.codex/skills/data-analytics/skills/index/SKILL.md +251 -0
  75. package/template/.codex/skills/data-analytics/skills/index/agents/openai.yaml +6 -0
  76. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +131 -0
  77. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/agents/openai.yaml +6 -0
  78. package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +141 -0
  79. package/template/.codex/skills/data-analytics/skills/kpi-reporting/agents/openai.yaml +6 -0
  80. package/template/.codex/skills/data-analytics/skills/kpi-reporting/references/report-templates.md +32 -0
  81. package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +106 -0
  82. package/template/.codex/skills/data-analytics/skills/market-sizing/agents/openai.yaml +6 -0
  83. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +130 -0
  84. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/agents/openai.yaml +6 -0
  85. package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +141 -0
  86. package/template/.codex/skills/data-analytics/skills/product-business-analysis/agents/openai.yaml +6 -0
  87. package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +178 -0
  88. package/template/.codex/skills/data-analytics/skills/spreadsheets/agents/openai.yaml +9 -0
  89. package/template/.codex/skills/data-analytics/skills/spreadsheets/assets/file-spreadsheet.png +0 -0
  90. package/template/.codex/skills/data-analytics/skills/spreadsheets/charts.md +31 -0
  91. package/template/.codex/skills/data-analytics/skills/spreadsheets/references/artifact_tool_api.md +466 -0
  92. package/template/.codex/skills/data-analytics/skills/spreadsheets/style_guidelines.md +99 -0
  93. package/template/.codex/skills/data-analytics/skills/user-context/SKILL.md +195 -0
  94. package/template/.codex/skills/data-analytics/skills/user-context/agents/openai.yaml +6 -0
  95. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/automation-config.md +26 -0
  96. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/source-category-config.json +51 -0
  97. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/user-context-config.md +66 -0
  98. package/template/.codex/skills/data-analytics/skills/user-context/references/automation.md +69 -0
  99. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-examples.md +204 -0
  100. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-state-template.json +87 -0
  101. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding.md +497 -0
  102. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/connector-playbook.md +74 -0
  103. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/setup.md +65 -0
  104. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/skill-template.md +160 -0
  105. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/source-intake.md +75 -0
  106. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/weekly-polling-automation.md +96 -0
  107. package/template/.codex/skills/data-analytics/skills/user-context/references/source-category-runtime.md +263 -0
  108. package/template/.codex/skills/data-analytics/skills/user-context/scripts/data_analytics_preflight.py +1460 -0
  109. package/template/.codex/skills/data-analytics/skills/user-context/scripts/init_user_context_state.py +128 -0
  110. package/template/.codex/skills/data-analytics/skills/user-context/scripts/reset_user_context_state.py +101 -0
  111. package/template/.codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py +499 -0
  112. package/template/.codex/skills/data-analytics/skills/user-context/tests/test_state_helpers.py +978 -0
  113. package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +190 -0
  114. package/template/.codex/skills/data-analytics/skills/validate-data/agents/openai.yaml +6 -0
  115. package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +157 -0
  116. package/template/.codex/skills/data-analytics/skills/visualize-data/agents/openai.yaml +6 -0
  117. package/template/.codex/skills/data-analytics/skills/visualize-data/references/seaborn-templates.md +774 -0
  118. package/template/.codex/skills/data-analytics/src/DESIGN.md +222 -0
  119. package/template/.codex/skills/data-analytics/src/analytics-app/App.tsx +3666 -0
  120. package/template/.codex/skills/data-analytics/src/analytics-app/analytics-layout.test.mjs +136 -0
  121. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartFrame.tsx +54 -0
  122. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartLegend.tsx +96 -0
  123. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartRenderer.tsx +1647 -0
  124. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartTooltip.tsx +245 -0
  125. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-app-helpers.tsx +462 -0
  126. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-capabilities.ts +107 -0
  127. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-compatibility.ts +164 -0
  128. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-contract.ts +192 -0
  129. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-theme.ts +203 -0
  130. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-tokens.css +619 -0
  131. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-transforms.ts +402 -0
  132. package/template/.codex/skills/data-analytics/src/analytics-app/fonts/SystemSansVariableVF.woff2 +0 -0
  133. package/template/.codex/skills/data-analytics/src/analytics-app/imageExport.ts +370 -0
  134. package/template/.codex/skills/data-analytics/src/analytics-app/layout/AnalyticsLayoutCanvas.tsx +536 -0
  135. package/template/.codex/skills/data-analytics/src/analytics-app/layout/RichMarkdown.tsx +681 -0
  136. package/template/.codex/skills/data-analytics/src/analytics-app/layout/analyticsLayoutCore.ts +164 -0
  137. package/template/.codex/skills/data-analytics/src/analytics-app/main.tsx +21 -0
  138. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/chart_contract.py +472 -0
  139. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/check_analytics_app_runtime_links.py +75 -0
  140. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/design_contract.py +142 -0
  141. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/package_utils.py +142 -0
  142. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/tests/test_package_utils.py +377 -0
  143. package/template/.codex/skills/data-analytics/src/analytics-app/styles.css +3468 -0
  144. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.d.ts +44 -0
  145. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.jsx +639 -0
  146. package/template/.codex/skills/data-analytics/src/analytics-app/tables/data-table.css +327 -0
  147. package/template/.codex/skills/data-analytics/src/analytics-app/tokens.css +225 -0
  148. package/template/.codex/skills/data-analytics/src/analytics-app/types.ts +204 -0
  149. package/template/.codex/skills/data-analytics/src/analytics-app-core.md +85 -0
  150. package/template/.codex/skills/data-analytics/src/codex-style-contract.md +30 -0
  151. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.html +12 -0
  152. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.jsx +1008 -0
  153. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.css +2117 -0
  154. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.html +122 -0
  155. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.js +3588 -0
  156. package/template/.codex/skills/data-analytics/src/datascience-table-widget.css +483 -0
  157. package/template/.codex/skills/data-analytics/src/datascience-table-widget.html +32 -0
  158. package/template/.codex/skills/data-analytics/src/datascience-table-widget.js +333 -0
  159. package/template/.codex/skills/data-analytics/src/mcp-host.js +153 -0
  160. package/template/.codex/skills/data-analytics/src/recharts-config.js +315 -0
  161. package/template/.codex/skills/data-analytics/src/recharts-renderer.jsx +294 -0
  162. package/template/.codex/skills/data-analytics/src/sql-source-view.css +33 -0
  163. package/template/.codex/skills/data-analytics/src/sql-source-view.js +157 -0
  164. package/template/.codex/skills/data-analytics/src/styles/codex-theme.css +121 -0
  165. package/template/.codex/skills/data-analytics/src/table-renderer.jsx +28 -0
  166. package/template/.codex/skills/data-analytics/tests/chart-transforms.test.mjs +87 -0
  167. package/template/.codex/skills/data-analytics/tests/funnel-smoke.html +105 -0
  168. package/template/.codex/skills/data-analytics/tests/inline-widget-compare.html +233 -0
  169. package/template/.codex/skills/data-analytics/tests/mcp-server.test.mjs +1500 -0
  170. package/template/.codex/skills/data-analytics/tests/native-style-contract.test.mjs +219 -0
  171. package/template/.codex/skills/data-analytics/tests/recharts-config.test.mjs +144 -0
  172. package/template/.codex/skills/data-analytics/tests/recharts-renderer.test.mjs +11 -0
  173. package/template/.codex/skills/data-analytics/tests/rich-markdown.test.mjs +54 -0
  174. package/template/.codex/skills/data-analytics/tests/widget-render-harness.html +321 -0
  175. package/template/.codex/skills/data-analytics/tsconfig.json +19 -0
  176. package/template/.codex/skills/data-analytics/vite.config.ts +46 -0
  177. package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +102 -0
  178. package/template/.codex/skills/high-fidelity-html-prototype/agents/openai.yaml +5 -0
  179. package/template/.codex/skills/product-design/.app.json +7 -0
  180. package/template/.codex/skills/product-design/.codex-plugin/plugin.json +50 -0
  181. package/template/.codex/skills/product-design/README.md +50 -0
  182. package/template/.codex/skills/product-design/agents/openai.yaml +4 -0
  183. package/template/.codex/skills/product-design/assets/composerIcon.svg +9 -0
  184. package/template/.codex/skills/product-design/assets/logo.png +0 -0
  185. package/template/.codex/skills/product-design/package.json +11 -0
  186. package/template/.codex/skills/product-design/references/browser-order.md +9 -0
  187. package/template/.codex/skills/product-design/references/communication-protocol.md +45 -0
  188. package/template/.codex/skills/product-design/references/critical-overrides.md +58 -0
  189. package/template/.codex/skills/product-design/references/local-prototype-preflight.md +16 -0
  190. package/template/.codex/skills/product-design/scripts/bootstrap-prototype.mjs +147 -0
  191. package/template/.codex/skills/product-design/skills/audit/SKILL.md +159 -0
  192. package/template/.codex/skills/product-design/skills/audit/agents/openai.yaml +6 -0
  193. package/template/.codex/skills/product-design/skills/audit/references/design-audit-framework.md +73 -0
  194. package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +133 -0
  195. package/template/.codex/skills/product-design/skills/design-qa/agents/openai.yaml +6 -0
  196. package/template/.codex/skills/product-design/skills/design-qa/references/qa-rubric.md +61 -0
  197. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +81 -0
  198. package/template/.codex/skills/product-design/skills/get-context/agents/openai.yaml +6 -0
  199. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +179 -0
  200. package/template/.codex/skills/product-design/skills/ideate/agents/openai.yaml +6 -0
  201. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +105 -0
  202. package/template/.codex/skills/product-design/skills/image-to-code/agents/openai.yaml +6 -0
  203. package/template/.codex/skills/product-design/skills/index/SKILL.md +126 -0
  204. package/template/.codex/skills/product-design/skills/index/agents/openai.yaml +6 -0
  205. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +128 -0
  206. package/template/.codex/skills/product-design/skills/prototype/agents/openai.yaml +6 -0
  207. package/template/.codex/skills/product-design/skills/prototype/references/existing-codebase-edits.md +18 -0
  208. package/template/.codex/skills/product-design/skills/research/SKILL.md +92 -0
  209. package/template/.codex/skills/product-design/skills/research/agents/openai.yaml +6 -0
  210. package/template/.codex/skills/product-design/skills/share/SKILL.md +41 -0
  211. package/template/.codex/skills/product-design/skills/share/agents/openai.yaml +6 -0
  212. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +124 -0
  213. package/template/.codex/skills/product-design/skills/url-to-code/agents/openai.yaml +6 -0
  214. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +147 -0
  215. package/template/.codex/skills/product-design/skills/user-context/agents/openai.yaml +6 -0
  216. package/template/.codex/skills/product-design/skills/user-context/plugin-author-config/user-context-template.md +63 -0
  217. package/template/.codex/skills/product-design/skills/user-context/references/onboarding.md +66 -0
  218. package/template/.codex/skills/product-design/skills/user-context/scripts/init_user_context.py +86 -0
  219. package/template/.codex/skills/product-design/skills/user-context/scripts/user_context_preflight.py +204 -0
  220. package/template/.codex/skills/product-design/templates/prototype/AGENTS.md +7 -0
  221. package/template/.codex/skills/product-design/templates/prototype/index.html +12 -0
  222. package/template/.codex/skills/product-design/templates/prototype/package.json +18 -0
  223. package/template/.codex/skills/product-design/templates/prototype/src/App.jsx +5 -0
  224. package/template/.codex/skills/product-design/templates/prototype/src/main.jsx +10 -0
  225. package/template/.codex/skills/product-design/templates/prototype/src/styles.css +13 -0
  226. package/template/.codex/skills/product-design/templates/prototype/vite.config.mjs +14 -0
  227. package/template/.codex/skills/product-design-prototype/SKILL.md +2 -4
  228. package/template/.codex/skills/prototype-review/SKILL.md +7 -7
  229. package/template/.codex/skills/yss-design-system/SKILL.md +4 -2
  230. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +10 -7
  231. package/template/.codex/skills/yss-product-lifecycle/references/artifact-checklist.md +1 -0
  232. package/template/.codex/skills/yss-product-lifecycle/references/stage-routing.md +1 -1
  233. package/template/.codex/skills/yss-ui/SKILL.md +4 -10
  234. package/template/.codex/skills/yss-ui/references/quick-recipes.md +1 -1
  235. package/template/AGENTS.md +9 -3
  236. package/template/CONTEXT.md +1 -0
  237. package/template/docs/adr/adr-product-design-prototype-entrypoint.md +54 -0
  238. package/template/docs/api/templates/openapi-draft-review-checklist.md +5 -1
  239. package/template/docs/design/README.md +13 -6
  240. package/template/docs/design/prototypes/.gitkeep +1 -0
  241. package/template/docs/design/templates/interaction-spec-template.md +8 -3
  242. package/template/docs/design/templates/product-overview-design-template.md +34 -5
  243. package/template/docs/design/templates/prototype-confirmation-template.md +57 -0
  244. package/template/docs/design/templates/prototype-review-checklist.md +7 -3
  245. package/template/docs/design/templates/state-matrix-template.md +1 -1
  246. package/template/docs/process/harness-executive-blueprint.md +6 -1
  247. package/template/docs/process/harness-process-tailoring.md +3 -3
  248. package/template/docs/process/harness-work-unit-map.md +1 -1
  249. package/template/docs/process/lifecycle-artifact-map.md +7 -5
  250. package/template/docs/process/product-prototype-workflow.md +82 -0
  251. package/template/docs/templates/requirement-freeze-template.md +4 -3
  252. package/template/docs/user-guide/product-lifecycle-workflow.md +2 -2
  253. package/template/docs/user-guide/product-rd-lifecycle-best-practices.md +54 -24
  254. package/template/.codex/skills/component-story-prototype/SKILL.md +0 -55
  255. package/template/.codex/skills/component-story-prototype/agents/openai.yaml +0 -4
  256. package/template/.codex/skills/mock-api-prototype/SKILL.md +0 -48
  257. package/template/.codex/skills/mock-api-prototype/agents/openai.yaml +0 -4
@@ -172,7 +172,7 @@ docs/process/lifecycle-artifact-map.md
172
172
 
173
173
  ### 6.3 设计产品和契约
174
174
 
175
- 有 UI 时先走设计系统、产品设计和原型评审。涉及 API 时,先生成 review-only OpenAPI Draft:
175
+ 有 UI 时先走设计系统、`product-design:index` 路由的产品设计、低保真原型评审、Ant Design v6 高保真 HTML 原型、AntD CLI 校验证据和用户确认记录。涉及 API 时,先生成 review-only OpenAPI Draft:
176
176
 
177
177
  ```text
178
178
  基于 PRD 和产品设计,生成 OpenAPI 3.1 Draft。
@@ -206,7 +206,7 @@ OpenAPI Freeze 或无 API 影响记录完成后使用 `to-issues`:
206
206
 
207
207
  - Draft 阶段允许调整接口,但不能被当成稳定实现契约。
208
208
  - Freeze 后的契约变更必须回到 API 影响分析、架构 / 数据设计和 Design Review,不能边写代码边悄悄改接口。
209
- - 有 UI 的功能不得只基于 PRD 反推 OpenAPI,必须结合产品总体设计、页面/原型/交互说明和状态矩阵。
209
+ - OpenAPI 不得只基于 PRD 反推:必须结合产品总体设计 / 功能架构;有 UI 时还必须结合页面 / 原型 / 交互说明、状态矩阵、低保真原型评审、Ant Design v6 高保真 HTML 原型、AntD CLI 校验证据和用户确认记录。
210
210
  - OpenAPI Freeze 后进入 `to-issues`,再进入前后端实现和契约测试。
211
211
 
212
212
  ## 8. 验证、发布和复盘
@@ -146,8 +146,10 @@ skills 是让 AI 按规程工作的“操作手册”,不是关键词装饰。
146
146
  | 不知道当前该做什么 | `yss-product-lifecycle` | 先阶段判断和资产检查,不写业务代码 |
147
147
  | 模糊需求追问 | `grill-with-docs` | 先问清,不让 AI 猜规则;稳定术语写 `CONTEXT.md` |
148
148
  | 生成 PRD 初稿 / 需求基线 | `to-prd` 或 PRD 模板 | 只基于已确认事实,不把待确认项写成需求 |
149
- | 页面和交互设计 | `product-design-prototype`、`wireframe-prototype`、`component-story-prototype`、`mock-api-prototype`、`docs/design/` | 基于 PRD 初稿细化页面流、状态和交互,再回填 PRD 并反推 API |
150
- | 原型评审 | `prototype-review` | 未通过时回到产品设计,不进入 PRD 校准 / API 影响分析 / 契约草案 |
149
+ | 产品总体设计 / 功能架构 | `docs/design/templates/product-overview-design-template.md` | PRD 初稿后的必要产物;必须包含低保真原型 / 页面草图;进入页面 / 原型 / 交互设计、PRD 校准或 OpenAPI Draft 前必须完成 |
150
+ | 页面和交互设计 | `product-design:index`、Product Design focused skills、`docs/design/` | 基于 PRD 初稿和产品总体设计细化页面流、状态和交互,再回填 PRD 并反推 API |
151
+ | 原型评审 | `prototype-review` | 未通过时回到产品设计;通过后进入高保真 HTML 原型,不直接进入 PRD 校准 / API 影响分析 / 契约草案 |
152
+ | 高保真 HTML 原型 | `product-design:index` 路由到 Product Design focused skill;`antd` CLI | 低保真评审通过后的强制产物;必须使用 Ant Design v6,输出 `docs/design/prototypes/<feature>/index.html`,记录 AntD CLI 校验证据并获得用户确认 |
151
153
  | API 契约 | API 影响分析 / 契约草案 / OpenAPI Freeze 流程 | Draft 可讨论,Freeze 才可开发 |
152
154
  | 正式变更设计 | `to-issues` / Matt skills | 复用 PRD,聚焦技术方案、风险和测试 seam |
153
155
  | 拆切片 | `to-issues` | 必须是端到端垂直切片 |
@@ -208,7 +210,7 @@ Agent brief 最少包含:
208
210
  适合并行:
209
211
 
210
212
  - Discovery Agent 做竞品矩阵,Ideation Agent 基于同一主题做机会假设,最后由主 Agent 收敛。
211
- - API Contract Agent 和 Architecture Agent 分别审查 Draft 与 DDD 边界,前提是校准后的 PRD 已稳定,且 UI 功能的产品总体设计 / 功能架构、页面 / 原型 / 交互设计已评审或明确无 UI 影响。
213
+ - API Contract Agent 和 Architecture Agent 分别审查 Draft 与 DDD 边界,前提是校准后的 PRD、产品总体设计 / 功能架构已稳定;有 UI 时,页面 / 原型 / 交互设计也已评审,或已明确无 UI 影响。
212
214
  - 多个独立垂直切片,且不会修改同一批文件。
213
215
 
214
216
  不适合并行:
@@ -363,7 +365,7 @@ docs/discovery/data-modeling-opportunity.md
363
365
 
364
366
  ## 6. 阶段 3:PRD 初稿 / 需求基线
365
367
 
366
- PRD 把追问结论变成可交付需求,不写实现代码。这里的 PRD 先形成“需求基线”,不等于最终冻结版本;有用户界面的功能,还需要先形成产品总体设计 / 功能架构,再经过页面 / 原型 / 交互设计校准后,回填 PRD 并进入 API 影响分析 / 契约草案。
368
+ PRD 把追问结论变成可交付需求,不写实现代码。这里的 PRD 先形成“需求基线”,不等于最终冻结版本;进入 PRD 初稿 / 需求基线流程后,必须先形成产品总体设计 / 功能架构,再按是否有 UI 决定是否进入页面 / 原型 / 交互设计,最后回填 PRD 并进入 API 影响分析 / 契约草案。
367
369
 
368
370
  建议资产:
369
371
 
@@ -408,17 +410,17 @@ PRD 片段示例:
408
410
  - [ ] 非目标范围清晰。
409
411
  - [ ] 测试 seam 已明确。
410
412
  - [ ] 待人工确认问题没有伪装成已确认需求。
411
- - [ ] 有用户界面的功能已明确需要进入产品总体设计 / 功能架构,并在其后进入页面 / 原型 / 交互设计;简单文案或纯后端能力可记录跳过原因。
413
+ - [ ] 产品总体设计 / 功能架构已作为 PRD 初稿后的必要产物进入下一阶段;不进入 PRD 生命周期的小文案、低风险 Bug 或局部配置变更已记录不适用原因。
412
414
 
413
415
  ## 7. 阶段 4:产品总体设计 / 功能架构
414
416
 
415
- 产品总体设计 / 功能架构是 PRD 初稿到页面原型之间的过渡层。它回答“产品由哪些功能域和业务对象支撑”“MVP 做什么和不做什么”“哪些页面、状态、权限、API、数据会被影响”。它不是交互说明,也不替代页面原型,而是页面 / 原型 / 交互设计的上游输入。
417
+ 产品总体设计 / 功能架构是 PRD 初稿到页面 / 原型 / 交互设计之间的过渡层。它回答“产品由哪些功能域和业务对象支撑”“MVP 做什么和不做什么”“哪些页面、状态、权限、API、数据会被影响”,并用低保真原型 / 页面草图先验证页面结构、关键操作和主流程。它不是详细交互说明,也不替代后续交互设计,而是页面 / 原型 / 交互设计的上游输入。
416
418
 
417
419
  正确关系是先结构化、再原型化:
418
420
 
419
421
  ```text
420
422
  PRD 初稿定义目标、范围、用户故事和验收
421
- -> 产品总体设计 / 功能架构明确功能域、模块边界、页面/API/数据影响和 PRD 回填项
423
+ -> 产品总体设计 / 功能架构明确功能域、模块边界、低保真原型、页面/API/数据影响和 PRD 回填项
422
424
  -> 页面 / 原型 / 交互设计验证用户如何完成任务
423
425
  -> 交互发现遗漏后回填 PRD
424
426
  -> PRD、产品总体设计和交互设计一起作为 API 影响分析 / 契约草案输入
@@ -440,6 +442,7 @@ docs/design/templates/product-overview-design-template.md
440
442
 
441
443
  - [ ] 用户主流程、异常路径、业务对象和状态已足以支撑原型设计。
442
444
  - [ ] 功能域、模块边界、优先级、依赖和非目标范围清楚。
445
+ - [ ] 低保真原型 / 页面草图已覆盖 P0 页面、主流程、关键操作和关键异常路径。
443
446
  - [ ] 页面、API、数据、权限、审计影响已显式标注。
444
447
  - [ ] PRD 回填项、开放问题和阻断项已记录。
445
448
  - [ ] 可进入页面 / 原型 / 交互设计,或明确阻断原因。
@@ -468,19 +471,20 @@ docs/design/data-modeling-state-matrix.md
468
471
  docs/design/data-modeling-prototype-review.md
469
472
  ```
470
473
 
471
- 推荐使用 `product-design-prototype` 作为入口,并按需要追加专项 skill:
474
+ 推荐使用 `product-design:index` 作为产品原型主入口,并按 Product Design plugin 规则路由到 focused skill:
472
475
 
473
476
  | 目标 | 推荐技能 / 工具 | 说明 |
474
477
  |---|---|---|
475
- | 页面清单、用户流、状态矩阵、PRD 回填项、OpenAPI 反推 | `product-design-prototype` | 基于 PRD 初稿和产品总体设计后的原型入口 |
476
- | 低保真线框、流程草图 | `wireframe-prototype`;Excalidraw / Markdown wireframe | 适合快速讨论,不绑定工程依赖 |
478
+ | 页面清单、用户流、状态矩阵、PRD 回填项、OpenAPI 反推 | `product-design:index` -> `$get-context` / `$prototype` | 基于 PRD 初稿和产品总体设计后的原型入口 |
479
+ | 低保真线框、流程草图 | `product-design:index` -> `$ideate` / `$prototype`;Excalidraw / Markdown wireframe | 适合快速讨论,不绑定工程依赖 |
477
480
  | 高保真或设计系统协作 | Figma / Penpot,必要时使用 `figma` / `figma-use` | 适合设计团队和组件规范沉淀 |
478
- | 工程态页面状态原型 | `component-story-prototype`;Storybook / Histoire | 适合验证 loading、empty、error、权限、冲突等状态 |
479
- | API 未冻结前的交互数据 | `mock-api-prototype`;MSW / JSON fixtures | 适合支撑 Storybook 或前端原型 |
481
+ | 高保真可交互 HTML 原型 | `product-design:index` -> `$prototype` / `$image-to-code` / `$url-to-code`;`antd` CLI;Ant Design v6 | 低保真原型评审通过后的必需产物,用于 PRD 校准和 API 反推前的体验确认 |
480
482
  | 图谱、血缘、流程编排画布 | tldraw / xyflow | 适合数据血缘、任务流、关系图等画布型体验 |
481
- | 进入 PRD 校准前门禁 | `prototype-review` | 未通过则回到原型阶段 |
483
+ | 进入高保真前门禁 | `prototype-review` | 未通过则回到原型阶段 |
482
484
 
483
- 如果团队使用 Figma、即时设计、Axure 或其它原型工具,可以在 `docs/design/data-modeling-interaction-spec.md` 中保存链接、版本、评审记录和关键截图说明。第一版不强制引入 Storybook、MSW、Excalidraw、Figma、Penpot、tldraw 或 xyflow 作为项目依赖。
485
+ `product-design-prototype`、`wireframe-prototype`、`high-fidelity-html-prototype` 仅作为历史兼容入口或产物门禁名称保留;新的产品原型产出默认使用 `product-design:index`。
486
+
487
+ 如果团队使用 Figma、即时设计、Axure 或其它原型工具,可以在 `docs/design/data-modeling-interaction-spec.md` 中保存链接、版本、评审记录和关键截图说明。第一版不强制引入 Excalidraw、Figma、Penpot、tldraw 或 xyflow 作为项目依赖。
484
488
 
485
489
  数据建模 MVP 的页面清单示例:
486
490
 
@@ -529,9 +533,10 @@ docs/design/data-modeling-prototype-review.md
529
533
  推荐提示词:
530
534
 
531
535
  ```text
532
- 使用 product-design-prototype。
536
+ 使用 product-design:index。
533
537
  基于 docs/requirements/data-modeling-prd.md 和 docs/design/data-modeling-product-overview-design.md,
534
538
  为“数据中台数据建模 MVP”输出页面 / 原型 / 交互设计资产。
539
+ 请先按 Product Design plugin 规则路由到合适的 focused skill:$get-context / $ideate / $prototype / $image-to-code / $url-to-code。
535
540
  请生成页面清单、用户主路径、异常路径、低保真线框说明、交互状态矩阵、权限状态、空态/加载态/错误态,
536
541
  并明确这些设计如何反推 OpenAPI 字段、错误结构、分页筛选和前端验收标准。
537
542
  保存到 docs/design/data-modeling-interaction-spec.md。
@@ -1006,11 +1011,24 @@ docs/user-guide/
1006
1011
  最后输出:已确认、待确认、非目标、建议写入 CONTEXT 的术语、需要 ADR 的取舍。
1007
1012
  ```
1008
1013
 
1009
- ### 20.3 页面 / 原型 / 交互设计
1014
+ ### 20.3 产品总体设计 / 功能架构
1015
+
1016
+ ```text
1017
+ 基于 <PRD 路径>,为 <功能名> 生成产品总体设计 / 功能架构。
1018
+ 请使用 docs/design/templates/product-overview-design-template.md。
1019
+ 重点输出:设计目标、用户主流程、业务对象与状态、功能域与模块边界、Strategic DDD Check、低保真原型 / 页面草图、页面/API/数据/权限/审计影响、PRD 回填项、开放问题和评审结论。
1020
+ 边界:不要写交互细节、不要生成 OpenAPI Draft、不要实现代码;只判断是否足以进入页面 / 原型 / 交互设计。
1021
+ 保存到 docs/design/<feature>-product-overview-design.md。
1022
+ 结论必须明确:Approved 可进入页面 / 原型 / 交互设计或 PRD 校准;Blocked 需先补齐产品边界、业务对象、模块边界、低保真原型、页面/API/数据/权限影响或 PRD 回填项。
1023
+ ```
1024
+
1025
+ ### 20.4 页面 / 原型 / 交互设计
1010
1026
 
1011
1027
  ```text
1012
- 使用 product-design-prototype。
1013
- 基于 <PRD 路径>,为 <功能名> 输出页面 / 原型 / 交互设计资产。
1028
+ 使用 product-design:index。
1029
+ 基于 <PRD 路径> 和 docs/design/<feature>-product-overview-design.md,为 <功能名> 输出页面 / 原型 / 交互设计资产。
1030
+ 如果缺少产品总体设计 / 功能架构,先阻断并要求补齐;不要直接继续生成交互设计。
1031
+ 请先按 Product Design plugin 规则路由到合适的 focused skill:$get-context / $ideate / $prototype / $image-to-code / $url-to-code。
1014
1032
  请生成页面清单、用户主路径、异常路径、低保真线框说明、交互状态矩阵、权限状态、空态/加载态/错误态。
1015
1033
  请明确这些设计如何反推 OpenAPI 字段、错误结构、分页筛选、权限和前端验收标准。
1016
1034
  请同时列出需要回填 PRD 的需求缺口、验收标准或非目标范围。
@@ -1018,24 +1036,36 @@ docs/user-guide/
1018
1036
  完成后输出 prototype-review 评审输入清单。
1019
1037
  ```
1020
1038
 
1021
- ### 20.4 原型评审
1039
+ ### 20.5 原型评审
1022
1040
 
1023
1041
  ```text
1024
1042
  使用 prototype-review。
1025
- 输入资产:<PRD 路径>、docs/design/<feature>-interaction-spec.md、docs/design/<feature>-state-matrix.md、<原型链接或线框说明>。
1043
+ 输入资产:<PRD 路径>、docs/design/<feature>-product-overview-design.md、docs/design/<feature>-interaction-spec.md、docs/design/<feature>-state-matrix.md、<原型链接或线框说明>。
1026
1044
  请审查页面覆盖、主路径、异常路径、loading/empty/error/no-permission/readonly/conflict/dirty-form 状态、权限行为、字段级错误、PRD 回填项和 OpenAPI 反推清单。
1027
- 输出:通过/阻断、阻断项、非阻断建议、PRD 校准就绪度、Contract Draft / OpenAPI Draft 就绪度、前端原型就绪度和下一步。
1045
+ 输出:通过/阻断、阻断项、非阻断建议、高保真 HTML 原型输入就绪度、Contract Draft / OpenAPI Draft 输入风险和下一步。
1046
+ ```
1047
+
1048
+ ### 20.6 高保真 HTML 原型
1049
+
1050
+ ```text
1051
+ 使用 product-design:index,并路由到合适的 Product Design focused skill。
1052
+ 基于 <PRD 路径>、docs/design/<feature>-product-overview-design.md、docs/design/<feature>-interaction-spec.md、docs/design/<feature>-state-matrix.md 和 docs/design/<feature>-prototype-review.md,
1053
+ 为 <功能名> 生成 Ant Design v6 高保真可交互 HTML 原型。
1054
+ 输出路径必须是 docs/design/prototypes/<feature>/index.html。
1055
+ 产出前必须使用 `antd` CLI 查询设计语言、组件 API、demo、token 和 semantic 信息,不要凭记忆写 Ant Design v6 组件。
1056
+ 请覆盖主流程、关键异常、loading/empty/error/no-permission/readonly/disabled/conflict/success 状态、表单校验、弹窗/抽屉、响应式断点。
1057
+ 完成后给出 Ant Design v6 版本依据、`antd` CLI 查询过的组件 / token / demo / semantic、本地浏览器验证证据,并使用 docs/design/templates/prototype-confirmation-template.md 记录用户确认。
1028
1058
  ```
1029
1059
 
1030
- ### 20.5 PRD 校准 / 需求冻结
1060
+ ### 20.7 PRD 校准 / 需求冻结
1031
1061
 
1032
1062
  ```text
1033
- 基于 <PRD 路径> 和 <交互设计路径>,执行 PRD 校准。
1063
+ 基于 <PRD 路径>、<产品总体设计路径>、<交互设计路径> 和 <高保真 HTML 原型路径>,执行 PRD 校准。
1034
1064
  请检查页面流、状态矩阵、异常路径、权限状态和验收标准是否已经回填 PRD。
1035
1065
  输出:需要更新的 PRD 条目、仍待确认的问题、可以冻结的范围、不能进入 API 影响分析 / 契约草案的风险。
1036
1066
  ```
1037
1067
 
1038
- ### 20.6 技能路由
1068
+ ### 20.8 技能路由
1039
1069
 
1040
1070
  ```text
1041
1071
  使用 yss-router。
@@ -1,55 +0,0 @@
1
- ---
2
- name: component-story-prototype
3
- description: Use when Storybook, Histoire, component stories, page-state demos, or engineering prototypes are needed to validate UI states before full frontend implementation.
4
- ---
5
-
6
- # Component Story Prototype
7
-
8
- Use this skill when design decisions need executable UI states. It plans engineering prototypes; it does not require adding Storybook or Histoire to a repo unless the frontend project chooses that dependency.
9
-
10
- ## When To Use
11
-
12
- - Page behavior depends on many states: loading, empty, error, permission, conflict, readonly, dirty form.
13
- - Product/design review needs a clickable or inspectable UI before API Freeze.
14
- - Existing frontend already uses Storybook/Histoire, or the team wants a temporary engineering prototype.
15
-
16
- If the repo has no story tooling and the task only needs low-fidelity flow decisions, use `wireframe-prototype` instead.
17
-
18
- ## Story Plan
19
-
20
- For each page or interaction, define:
21
-
22
- - Component/page name and route context.
23
- - Mock inputs and visible data.
24
- - Actions demonstrated.
25
- - State variants.
26
- - OpenAPI or mock fixture dependency.
27
- - Acceptance notes that later become frontend tests or E2E paths.
28
-
29
- Recommended variants:
30
-
31
- ```text
32
- Default
33
- Loading
34
- Empty
35
- ValidationError
36
- NoPermission
37
- ReadonlyPublishedVersion
38
- ConflictOnPublish
39
- DirtyFormLeavePrompt
40
- ```
41
-
42
- ## Data Modeling Example
43
-
44
- For model field editing, plan stories for:
45
-
46
- - `ModelList.Default`, `ModelList.Empty`, `ModelList.NoPermission`.
47
- - `ModelDetail.DraftFields`, `ModelDetail.PublishedReadonly`.
48
- - `FieldEditor.Valid`, `FieldEditor.FieldLevelErrors`.
49
- - `PublishModel.ValidationFailed`, `PublishModel.Success`, `PublishModel.Conflict`.
50
-
51
- Use `mock-api-prototype` when these stories need stable mock responses before OpenAPI Freeze.
52
-
53
- ## Handoff
54
-
55
- Record the story plan in the interaction spec. Do not treat stories as a replacement for PRD, OpenAPI, or design review.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "Component Story Prototype"
3
- short_description: "Storybook or Histoire state prototype plans"
4
- default_prompt: "Use $component-story-prototype to plan component stories for UI state validation."
@@ -1,48 +0,0 @@
1
- ---
2
- name: mock-api-prototype
3
- description: Use when MSW, mock service worker, mock fixtures, fake API responses, or prototype data contracts are needed before OpenAPI Freeze or generated API clients are available.
4
- ---
5
-
6
- # Mock API Prototype
7
-
8
- Use this skill to make prototypes exercise realistic data and error states before the formal API contract is frozen.
9
-
10
- ## Guardrail
11
-
12
- Mock contracts are provisional. They may inform OpenAPI Draft, but they are not the source of truth after OpenAPI Freeze. Once the API is frozen, regenerate or align mocks from the frozen contract.
13
-
14
- ## Fixture Contract
15
-
16
- For each mocked interaction, capture:
17
-
18
- - Operation name and screen/action that uses it.
19
- - Request params/body fields.
20
- - Success response shape.
21
- - Error response shape, including field-level validation errors when relevant.
22
- - Permission and conflict responses.
23
- - Pagination/filtering/sorting behavior when present.
24
-
25
- ## Tool Choices
26
-
27
- | Situation | Suggested approach |
28
- |---|---|
29
- | Frontend prototype with network-like behavior | MSW handlers |
30
- | Storybook/Histoire state-only demo | JSON fixtures or static module mocks |
31
- | API design discussion | Markdown examples in interaction spec |
32
- | Contract has been frozen | Generate or align from OpenAPI via `api-integration` / `yss-openapi` |
33
-
34
- ## Data Modeling Example
35
-
36
- Prototype these responses:
37
-
38
- - Model list success with draft/published statuses.
39
- - Empty model list.
40
- - Field editor save success.
41
- - Field editor validation error with `fieldCode`, `message`, and `severity`.
42
- - Publish validation failed with model-level and field-level errors.
43
- - Publish conflict when version changed since page load.
44
- - No-permission response for publish action.
45
-
46
- ## Handoff
47
-
48
- Write mock examples into `docs/design/<feature>-interaction-spec.md` or the story plan. Then use `prototype-review` to confirm the mock data can drive PRD calibration and OpenAPI Draft.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "Mock API Prototype"
3
- short_description: "Mock responses for prototype validation"
4
- default_prompt: "Use $mock-api-prototype to design mock API fixtures before OpenAPI Freeze."