create-yss-spec 1.1.2 → 1.1.4

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 (278) hide show
  1. package/package.json +1 -1
  2. package/template/.agents/skills/excalidraw-diagram-generator/SKILL.md +3 -3
  3. package/template/.agents/skills/grill-me/SKILL.md +7 -0
  4. package/template/.agents/skills/grilling/SKILL.md +12 -0
  5. package/template/.agents/skills/handoff/SKILL.md +16 -0
  6. package/template/.agents/skills/to-issues/SKILL.md +2 -2
  7. package/template/.claude/skills/grill-me/SKILL.md +7 -0
  8. package/template/.claude/skills/grilling/SKILL.md +12 -0
  9. package/template/.claude/skills/handoff/SKILL.md +16 -0
  10. package/template/.claude/skills/to-issues/SKILL.md +2 -2
  11. package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +1 -1
  12. package/template/.codex/skills/data-analytics/.app.json +84 -0
  13. package/template/.codex/skills/data-analytics/.codex-plugin/plugin.json +66 -0
  14. package/template/.codex/skills/data-analytics/.mcp.json +30 -0
  15. package/template/.codex/skills/data-analytics/AGENTS.md +20 -0
  16. package/template/.codex/skills/data-analytics/DEPENDENCIES.MD +27 -0
  17. package/template/.codex/skills/data-analytics/README.md +60 -0
  18. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html +16 -0
  19. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part001 +1 -0
  20. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part002 +1 -0
  21. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part003 +1 -0
  22. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part004 +1 -0
  23. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part005 +1 -0
  24. package/template/.codex/skills/data-analytics/assets/datascience-artifact-widget.html.gz.b64.part006 +1 -0
  25. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html +16 -0
  26. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part001 +1 -0
  27. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part002 +1 -0
  28. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part003 +1 -0
  29. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part004 +1 -0
  30. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part005 +1 -0
  31. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part006 +1 -0
  32. package/template/.codex/skills/data-analytics/assets/datascience-chart-widget.html.gz.b64.part007 +1 -0
  33. package/template/.codex/skills/data-analytics/assets/datascience-small.svg +5 -0
  34. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html +16 -0
  35. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part001 +1 -0
  36. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part002 +1 -0
  37. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part003 +1 -0
  38. package/template/.codex/skills/data-analytics/assets/datascience-table-widget.html.gz.b64.part004 +1 -0
  39. package/template/.codex/skills/data-analytics/assets/datascience.png +0 -0
  40. package/template/.codex/skills/data-analytics/assets/datascience.svg +10 -0
  41. package/template/.codex/skills/data-analytics/mcp/server.cjs +2963 -0
  42. package/template/.codex/skills/data-analytics/package-lock.json +3048 -0
  43. package/template/.codex/skills/data-analytics/package.json +43 -0
  44. package/template/.codex/skills/data-analytics/scripts/normalize-widget-assets.mjs +75 -0
  45. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/SKILL.md +160 -0
  46. package/template/.codex/skills/data-analytics/skills/analyze-data-quality/agents/openai.yaml +6 -0
  47. package/template/.codex/skills/data-analytics/skills/build-dashboard/SKILL.md +148 -0
  48. package/template/.codex/skills/data-analytics/skills/build-dashboard/agents/openai.yaml +6 -0
  49. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/bi-platform-dashboard.md +18 -0
  50. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/html-dashboard.md +24 -0
  51. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/mcp-artifact-dashboard.md +71 -0
  52. package/template/.codex/skills/data-analytics/skills/build-dashboard/specifications/streamlit-dashboard.md +85 -0
  53. package/template/.codex/skills/data-analytics/skills/build-report/SKILL.md +207 -0
  54. package/template/.codex/skills/data-analytics/skills/build-report/agents/openai.yaml +6 -0
  55. package/template/.codex/skills/data-analytics/skills/build-report/assets/executive-report-shell.html +70 -0
  56. package/template/.codex/skills/data-analytics/skills/build-report/assets/technical-report-shell.html +66 -0
  57. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/SKILL.md +118 -0
  58. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/agents/openai.yaml +6 -0
  59. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/__init__.py +1 -0
  60. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/cli.py +57 -0
  61. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/constants.py +61 -0
  62. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/docx_writer.py +362 -0
  63. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/html_parser.py +829 -0
  64. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/model.py +30 -0
  65. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/plan.py +129 -0
  66. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/quality.py +374 -0
  67. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/rendering.py +613 -0
  68. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/table_utils.py +54 -0
  69. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc/utils.py +16 -0
  70. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-doc/scripts/report_to_google_doc_plan.py +9 -0
  71. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/SKILL.md +78 -0
  72. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/agents/openai.yaml +6 -0
  73. package/template/.codex/skills/data-analytics/skills/build-report/report-to-google-slides/scripts/report_to_google_slides.py +2379 -0
  74. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/SKILL.md +88 -0
  75. package/template/.codex/skills/data-analytics/skills/build-report/report-to-pdf/agents/openai.yaml +6 -0
  76. package/template/.codex/skills/data-analytics/skills/build-report/specifications/executive-report.md +97 -0
  77. package/template/.codex/skills/data-analytics/skills/build-report/specifications/mcp-app-report.md +59 -0
  78. package/template/.codex/skills/data-analytics/skills/build-report/specifications/technical-report.md +75 -0
  79. package/template/.codex/skills/data-analytics/skills/design-kpis/SKILL.md +103 -0
  80. package/template/.codex/skills/data-analytics/skills/design-kpis/agents/openai.yaml +6 -0
  81. package/template/.codex/skills/data-analytics/skills/gather-business-context/SKILL.md +68 -0
  82. package/template/.codex/skills/data-analytics/skills/gather-business-context/agents/openai.yaml +6 -0
  83. package/template/.codex/skills/data-analytics/skills/index/SKILL.md +251 -0
  84. package/template/.codex/skills/data-analytics/skills/index/agents/openai.yaml +6 -0
  85. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/SKILL.md +131 -0
  86. package/template/.codex/skills/data-analytics/skills/jupyter-notebooks/agents/openai.yaml +6 -0
  87. package/template/.codex/skills/data-analytics/skills/kpi-reporting/SKILL.md +141 -0
  88. package/template/.codex/skills/data-analytics/skills/kpi-reporting/agents/openai.yaml +6 -0
  89. package/template/.codex/skills/data-analytics/skills/kpi-reporting/references/report-templates.md +32 -0
  90. package/template/.codex/skills/data-analytics/skills/market-sizing/SKILL.md +106 -0
  91. package/template/.codex/skills/data-analytics/skills/market-sizing/agents/openai.yaml +6 -0
  92. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/SKILL.md +130 -0
  93. package/template/.codex/skills/data-analytics/skills/metric-diagnostics/agents/openai.yaml +6 -0
  94. package/template/.codex/skills/data-analytics/skills/product-business-analysis/SKILL.md +141 -0
  95. package/template/.codex/skills/data-analytics/skills/product-business-analysis/agents/openai.yaml +6 -0
  96. package/template/.codex/skills/data-analytics/skills/spreadsheets/SKILL.md +178 -0
  97. package/template/.codex/skills/data-analytics/skills/spreadsheets/agents/openai.yaml +9 -0
  98. package/template/.codex/skills/data-analytics/skills/spreadsheets/assets/file-spreadsheet.png +0 -0
  99. package/template/.codex/skills/data-analytics/skills/spreadsheets/charts.md +31 -0
  100. package/template/.codex/skills/data-analytics/skills/spreadsheets/references/artifact_tool_api.md +466 -0
  101. package/template/.codex/skills/data-analytics/skills/spreadsheets/style_guidelines.md +99 -0
  102. package/template/.codex/skills/data-analytics/skills/user-context/SKILL.md +195 -0
  103. package/template/.codex/skills/data-analytics/skills/user-context/agents/openai.yaml +6 -0
  104. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/automation-config.md +26 -0
  105. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/source-category-config.json +51 -0
  106. package/template/.codex/skills/data-analytics/skills/user-context/plugin-author-config/user-context-config.md +66 -0
  107. package/template/.codex/skills/data-analytics/skills/user-context/references/automation.md +69 -0
  108. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-examples.md +204 -0
  109. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding-state-template.json +87 -0
  110. package/template/.codex/skills/data-analytics/skills/user-context/references/onboarding.md +497 -0
  111. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/connector-playbook.md +74 -0
  112. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/setup.md +65 -0
  113. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/skill-template.md +160 -0
  114. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/source-intake.md +75 -0
  115. package/template/.codex/skills/data-analytics/skills/user-context/references/semantic-layer/weekly-polling-automation.md +96 -0
  116. package/template/.codex/skills/data-analytics/skills/user-context/references/source-category-runtime.md +263 -0
  117. package/template/.codex/skills/data-analytics/skills/user-context/scripts/data_analytics_preflight.py +1460 -0
  118. package/template/.codex/skills/data-analytics/skills/user-context/scripts/init_user_context_state.py +128 -0
  119. package/template/.codex/skills/data-analytics/skills/user-context/scripts/reset_user_context_state.py +101 -0
  120. package/template/.codex/skills/data-analytics/skills/user-context/scripts/validate_user_context_preflight.py +499 -0
  121. package/template/.codex/skills/data-analytics/skills/user-context/tests/test_state_helpers.py +978 -0
  122. package/template/.codex/skills/data-analytics/skills/validate-data/SKILL.md +190 -0
  123. package/template/.codex/skills/data-analytics/skills/validate-data/agents/openai.yaml +6 -0
  124. package/template/.codex/skills/data-analytics/skills/visualize-data/SKILL.md +157 -0
  125. package/template/.codex/skills/data-analytics/skills/visualize-data/agents/openai.yaml +6 -0
  126. package/template/.codex/skills/data-analytics/skills/visualize-data/references/seaborn-templates.md +774 -0
  127. package/template/.codex/skills/data-analytics/src/DESIGN.md +222 -0
  128. package/template/.codex/skills/data-analytics/src/analytics-app/App.tsx +3666 -0
  129. package/template/.codex/skills/data-analytics/src/analytics-app/analytics-layout.test.mjs +136 -0
  130. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartFrame.tsx +54 -0
  131. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartLegend.tsx +96 -0
  132. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartRenderer.tsx +1647 -0
  133. package/template/.codex/skills/data-analytics/src/analytics-app/charting/ChartTooltip.tsx +245 -0
  134. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-app-helpers.tsx +462 -0
  135. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-capabilities.ts +107 -0
  136. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-compatibility.ts +164 -0
  137. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-contract.ts +192 -0
  138. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-theme.ts +203 -0
  139. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-tokens.css +619 -0
  140. package/template/.codex/skills/data-analytics/src/analytics-app/charting/chart-transforms.ts +402 -0
  141. package/template/.codex/skills/data-analytics/src/analytics-app/fonts/SystemSansVariableVF.woff2 +0 -0
  142. package/template/.codex/skills/data-analytics/src/analytics-app/imageExport.ts +370 -0
  143. package/template/.codex/skills/data-analytics/src/analytics-app/layout/AnalyticsLayoutCanvas.tsx +536 -0
  144. package/template/.codex/skills/data-analytics/src/analytics-app/layout/RichMarkdown.tsx +681 -0
  145. package/template/.codex/skills/data-analytics/src/analytics-app/layout/analyticsLayoutCore.ts +164 -0
  146. package/template/.codex/skills/data-analytics/src/analytics-app/main.tsx +21 -0
  147. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/chart_contract.py +472 -0
  148. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/check_analytics_app_runtime_links.py +75 -0
  149. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/design_contract.py +142 -0
  150. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/package_utils.py +142 -0
  151. package/template/.codex/skills/data-analytics/src/analytics-app/scripts/tests/test_package_utils.py +377 -0
  152. package/template/.codex/skills/data-analytics/src/analytics-app/styles.css +3468 -0
  153. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.d.ts +44 -0
  154. package/template/.codex/skills/data-analytics/src/analytics-app/tables/DataTable.jsx +639 -0
  155. package/template/.codex/skills/data-analytics/src/analytics-app/tables/data-table.css +327 -0
  156. package/template/.codex/skills/data-analytics/src/analytics-app/tokens.css +225 -0
  157. package/template/.codex/skills/data-analytics/src/analytics-app/types.ts +204 -0
  158. package/template/.codex/skills/data-analytics/src/analytics-app-core.md +85 -0
  159. package/template/.codex/skills/data-analytics/src/codex-style-contract.md +30 -0
  160. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.html +12 -0
  161. package/template/.codex/skills/data-analytics/src/datascience-artifact-widget.jsx +1008 -0
  162. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.css +2117 -0
  163. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.html +122 -0
  164. package/template/.codex/skills/data-analytics/src/datascience-chart-widget.js +3588 -0
  165. package/template/.codex/skills/data-analytics/src/datascience-table-widget.css +483 -0
  166. package/template/.codex/skills/data-analytics/src/datascience-table-widget.html +32 -0
  167. package/template/.codex/skills/data-analytics/src/datascience-table-widget.js +333 -0
  168. package/template/.codex/skills/data-analytics/src/mcp-host.js +153 -0
  169. package/template/.codex/skills/data-analytics/src/recharts-config.js +315 -0
  170. package/template/.codex/skills/data-analytics/src/recharts-renderer.jsx +294 -0
  171. package/template/.codex/skills/data-analytics/src/sql-source-view.css +33 -0
  172. package/template/.codex/skills/data-analytics/src/sql-source-view.js +157 -0
  173. package/template/.codex/skills/data-analytics/src/styles/codex-theme.css +121 -0
  174. package/template/.codex/skills/data-analytics/src/table-renderer.jsx +28 -0
  175. package/template/.codex/skills/data-analytics/tests/chart-transforms.test.mjs +87 -0
  176. package/template/.codex/skills/data-analytics/tests/funnel-smoke.html +105 -0
  177. package/template/.codex/skills/data-analytics/tests/inline-widget-compare.html +233 -0
  178. package/template/.codex/skills/data-analytics/tests/mcp-server.test.mjs +1500 -0
  179. package/template/.codex/skills/data-analytics/tests/native-style-contract.test.mjs +219 -0
  180. package/template/.codex/skills/data-analytics/tests/recharts-config.test.mjs +144 -0
  181. package/template/.codex/skills/data-analytics/tests/recharts-renderer.test.mjs +11 -0
  182. package/template/.codex/skills/data-analytics/tests/rich-markdown.test.mjs +54 -0
  183. package/template/.codex/skills/data-analytics/tests/widget-render-harness.html +321 -0
  184. package/template/.codex/skills/data-analytics/tsconfig.json +19 -0
  185. package/template/.codex/skills/data-analytics/vite.config.ts +46 -0
  186. package/template/.codex/skills/product-design/.app.json +7 -0
  187. package/template/.codex/skills/product-design/.codex-plugin/plugin.json +50 -0
  188. package/template/.codex/skills/product-design/README.md +50 -0
  189. package/template/.codex/skills/product-design/agents/openai.yaml +4 -0
  190. package/template/.codex/skills/product-design/assets/composerIcon.svg +9 -0
  191. package/template/.codex/skills/product-design/assets/logo.png +0 -0
  192. package/template/.codex/skills/product-design/package.json +11 -0
  193. package/template/.codex/skills/product-design/references/browser-order.md +9 -0
  194. package/template/.codex/skills/product-design/references/communication-protocol.md +45 -0
  195. package/template/.codex/skills/product-design/references/critical-overrides.md +58 -0
  196. package/template/.codex/skills/product-design/references/local-prototype-preflight.md +16 -0
  197. package/template/.codex/skills/product-design/scripts/bootstrap-prototype.mjs +147 -0
  198. package/template/.codex/skills/product-design/skills/audit/SKILL.md +159 -0
  199. package/template/.codex/skills/product-design/skills/audit/agents/openai.yaml +6 -0
  200. package/template/.codex/skills/product-design/skills/audit/references/design-audit-framework.md +73 -0
  201. package/template/.codex/skills/product-design/skills/design-qa/SKILL.md +133 -0
  202. package/template/.codex/skills/product-design/skills/design-qa/agents/openai.yaml +6 -0
  203. package/template/.codex/skills/product-design/skills/design-qa/references/qa-rubric.md +61 -0
  204. package/template/.codex/skills/product-design/skills/get-context/SKILL.md +81 -0
  205. package/template/.codex/skills/product-design/skills/get-context/agents/openai.yaml +6 -0
  206. package/template/.codex/skills/product-design/skills/ideate/SKILL.md +179 -0
  207. package/template/.codex/skills/product-design/skills/ideate/agents/openai.yaml +6 -0
  208. package/template/.codex/skills/product-design/skills/image-to-code/SKILL.md +105 -0
  209. package/template/.codex/skills/product-design/skills/image-to-code/agents/openai.yaml +6 -0
  210. package/template/.codex/skills/product-design/skills/index/SKILL.md +126 -0
  211. package/template/.codex/skills/product-design/skills/index/agents/openai.yaml +6 -0
  212. package/template/.codex/skills/product-design/skills/prototype/SKILL.md +128 -0
  213. package/template/.codex/skills/product-design/skills/prototype/agents/openai.yaml +6 -0
  214. package/template/.codex/skills/product-design/skills/prototype/references/existing-codebase-edits.md +18 -0
  215. package/template/.codex/skills/product-design/skills/research/SKILL.md +92 -0
  216. package/template/.codex/skills/product-design/skills/research/agents/openai.yaml +6 -0
  217. package/template/.codex/skills/product-design/skills/share/SKILL.md +41 -0
  218. package/template/.codex/skills/product-design/skills/share/agents/openai.yaml +6 -0
  219. package/template/.codex/skills/product-design/skills/url-to-code/SKILL.md +124 -0
  220. package/template/.codex/skills/product-design/skills/url-to-code/agents/openai.yaml +6 -0
  221. package/template/.codex/skills/product-design/skills/user-context/SKILL.md +147 -0
  222. package/template/.codex/skills/product-design/skills/user-context/agents/openai.yaml +6 -0
  223. package/template/.codex/skills/product-design/skills/user-context/plugin-author-config/user-context-template.md +63 -0
  224. package/template/.codex/skills/product-design/skills/user-context/references/onboarding.md +66 -0
  225. package/template/.codex/skills/product-design/skills/user-context/scripts/init_user_context.py +86 -0
  226. package/template/.codex/skills/product-design/skills/user-context/scripts/user_context_preflight.py +204 -0
  227. package/template/.codex/skills/product-design/templates/prototype/AGENTS.md +7 -0
  228. package/template/.codex/skills/product-design/templates/prototype/index.html +12 -0
  229. package/template/.codex/skills/product-design/templates/prototype/package.json +18 -0
  230. package/template/.codex/skills/product-design/templates/prototype/src/App.jsx +5 -0
  231. package/template/.codex/skills/product-design/templates/prototype/src/main.jsx +10 -0
  232. package/template/.codex/skills/product-design/templates/prototype/src/styles.css +13 -0
  233. package/template/.codex/skills/product-design/templates/prototype/vite.config.mjs +14 -0
  234. package/template/.codex/skills/product-design-prototype/SKILL.md +1 -1
  235. package/template/.codex/skills/yss-api-integration/SKILL.md +1 -1
  236. package/template/.codex/skills/yss-ddd-scaffold-generator/references/yss-backend-scaffold-parent/SKILL.md +1 -1
  237. package/template/.codex/skills/yss-filerunner/SKILL.md +1 -1
  238. package/template/.codex/skills/yss-openapi/SKILL.md +1 -1
  239. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +1 -1
  240. package/template/.codex/skills/yss-openapi-governance/SKILL.md +3 -3
  241. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +23 -7
  242. package/template/.codex/skills/yss-router/SKILL.md +1 -2
  243. package/template/.codex/skills/yss-router/references/boundaries.md +0 -1
  244. package/template/.codex/skills/yss-source-index/references/source-map-config.md +0 -1
  245. package/template/.codex/skills/yss-source-index/scripts/refresh-yss-skill-index.py +0 -3
  246. package/template/.hermes/skills/grill-me/SKILL.md +7 -0
  247. package/template/.hermes/skills/grilling/SKILL.md +12 -0
  248. package/template/.hermes/skills/handoff/SKILL.md +16 -0
  249. package/template/.hermes/skills/to-issues/SKILL.md +2 -2
  250. package/template/.pi/skills/grill-me/SKILL.md +7 -0
  251. package/template/.pi/skills/grilling/SKILL.md +12 -0
  252. package/template/.pi/skills/handoff/SKILL.md +16 -0
  253. package/template/.pi/skills/to-issues/SKILL.md +2 -2
  254. package/template/.trae/skills/grill-me/SKILL.md +7 -0
  255. package/template/.trae/skills/grilling/SKILL.md +12 -0
  256. package/template/.trae/skills/handoff/SKILL.md +16 -0
  257. package/template/.trae/skills/to-issues/SKILL.md +2 -2
  258. package/template/AGENTS.md +11 -3
  259. package/template/docs/adr/adr-product-design-prototype-entrypoint.md +54 -0
  260. package/template/docs/api/templates/openapi-draft-review-checklist.md +4 -2
  261. package/template/docs/design/README.md +8 -4
  262. package/template/docs/design/templates/interaction-spec-template.md +4 -1
  263. package/template/docs/design/templates/prototype-confirmation-template.md +57 -0
  264. package/template/docs/design/templates/prototype-review-checklist.md +6 -2
  265. package/template/docs/design/templates/state-matrix-template.md +1 -1
  266. package/template/docs/process/MATT-POCOCK-ENGINEERING-SKILLS.md +22 -3
  267. package/template/docs/process/harness-executive-blueprint.md +2 -1
  268. package/template/docs/process/harness-process-tailoring.md +8 -1
  269. package/template/docs/process/harness-work-unit-map.md +1 -1
  270. package/template/docs/process/lifecycle-artifact-map.md +17 -8
  271. package/template/docs/process/product-prototype-workflow.md +82 -0
  272. package/template/docs/user-guide/product-lifecycle-workflow.md +2 -2
  273. package/template/docs/user-guide/product-rd-lifecycle-best-practices.md +15 -10
  274. package/template/scripts/verify-template +0 -14
  275. package/template/skills-lock.json +70 -27
  276. package/template/.codex/skills/yss-anti-scheduler/SKILL.md +0 -53
  277. package/template/.codex/skills/yss-anti-scheduler/agents/openai.yaml +0 -4
  278. package/template/.codex/skills/yss-anti-scheduler/references/source-index.md +0 -157
@@ -0,0 +1,204 @@
1
+ #!/usr/bin/env python3
2
+ """Read local Product Design context and print compact JSON."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ import hashlib
8
+ import json
9
+ import os
10
+ import re
11
+ import sys
12
+ from datetime import datetime, timezone
13
+ from pathlib import Path
14
+ from typing import Any
15
+
16
+ PLUGIN_STATE_DIR = Path("state/plugins/product-design")
17
+ DEFAULT_MAX_CONTEXT_BYTES = 2_000_000
18
+
19
+
20
+ def parse_args() -> argparse.Namespace:
21
+ parser = argparse.ArgumentParser(
22
+ description="Read Product Design user-context.md and return saved context as JSON."
23
+ )
24
+ parser.add_argument(
25
+ "--codex-home",
26
+ type=Path,
27
+ default=None,
28
+ help="Codex home directory. Defaults to $CODEX_HOME or ~/.codex.",
29
+ )
30
+ parser.add_argument(
31
+ "--state-dir",
32
+ type=Path,
33
+ default=None,
34
+ help="Override the Product Design state directory.",
35
+ )
36
+ parser.add_argument(
37
+ "--max-context-bytes",
38
+ type=int,
39
+ default=DEFAULT_MAX_CONTEXT_BYTES,
40
+ help="Maximum user-context.md size to read.",
41
+ )
42
+ return parser.parse_args()
43
+
44
+
45
+ def resolve_state_dir(codex_home: Path | None, state_dir: Path | None) -> Path:
46
+ if state_dir is not None:
47
+ return state_dir.expanduser().resolve()
48
+ home = codex_home or Path(os.environ.get("CODEX_HOME", "~/.codex"))
49
+ return (home.expanduser() / PLUGIN_STATE_DIR).resolve()
50
+
51
+
52
+ def file_mtime(path: Path) -> str | None:
53
+ try:
54
+ return datetime.fromtimestamp(path.stat().st_mtime, tz=timezone.utc).isoformat()
55
+ except OSError:
56
+ return None
57
+
58
+
59
+ def sha256_text(text: str) -> str:
60
+ return hashlib.sha256(text.encode("utf-8")).hexdigest()
61
+
62
+
63
+ def parse_resource_name(line: str) -> dict[str, str]:
64
+ link_match = re.match(r"^\[(.+?)\]\((.+?)\)\s*$", line)
65
+ if link_match:
66
+ return {"name": link_match.group(1).strip(), "url": link_match.group(2).strip()}
67
+ url_match = re.match(r"^(https?://\S+)\s*$", line)
68
+ if url_match:
69
+ return {"name": url_match.group(1).strip(), "url": url_match.group(1).strip()}
70
+ return {"name": line.strip()}
71
+
72
+
73
+ def summarize_user_context(markdown: str) -> dict[str, Any]:
74
+ entries: list[dict[str, Any]] = []
75
+ unresolved_categories: list[str] = []
76
+ category: str | None = None
77
+ in_saved_context = False
78
+ current_entry: dict[str, Any] | None = None
79
+
80
+ def flush_entry() -> None:
81
+ nonlocal current_entry
82
+ if current_entry:
83
+ entries.append(current_entry)
84
+ current_entry = None
85
+
86
+ for raw_line in markdown.splitlines():
87
+ line = raw_line.strip()
88
+ if not line or line.startswith(("<!--", "-->")):
89
+ continue
90
+
91
+ category_match = re.match(r"^# ([^#].*?)\s*$", line)
92
+ if category_match:
93
+ flush_entry()
94
+ category = category_match.group(1).strip()
95
+ in_saved_context = False
96
+ continue
97
+
98
+ if line == "## Saved Links And Context":
99
+ flush_entry()
100
+ in_saved_context = True
101
+ continue
102
+
103
+ if not category or not in_saved_context:
104
+ continue
105
+
106
+ if line.casefold() == "status: not provided" or line.casefold() == "status: not provided.":
107
+ flush_entry()
108
+ unresolved_categories.append(category)
109
+ continue
110
+
111
+ if not line.startswith("- "):
112
+ flush_entry()
113
+ current_entry = {"category": category, **parse_resource_name(line)}
114
+ continue
115
+
116
+ if not current_entry:
117
+ continue
118
+
119
+ bullet = line[2:].strip()
120
+ for prefix, key in (
121
+ ("Date Added:", "date_added"),
122
+ ("File:", "file"),
123
+ ("Useful Context:", "useful_context"),
124
+ ("Future Use:", "future_use"),
125
+ ):
126
+ if bullet.startswith(prefix):
127
+ current_entry[key] = bullet[len(prefix) :].strip().rstrip(".")
128
+ break
129
+ else:
130
+ current_entry.setdefault("notes", []).append(bullet)
131
+
132
+ flush_entry()
133
+ return {"entries": entries, "unresolved_categories": unresolved_categories}
134
+
135
+
136
+ def missing_payload(state_dir: Path, context_path: Path) -> dict[str, Any]:
137
+ return {
138
+ "plugin": "product-design",
139
+ "state_dir": str(state_dir),
140
+ "user_context": {
141
+ "path": str(context_path),
142
+ "exists": False,
143
+ "status": "missing",
144
+ "entries": [],
145
+ "unresolved_categories": [],
146
+ },
147
+ }
148
+
149
+
150
+ def main() -> int:
151
+ args = parse_args()
152
+ state_dir = resolve_state_dir(args.codex_home, args.state_dir)
153
+ context_path = state_dir / "user-context.md"
154
+
155
+ if not context_path.exists():
156
+ print(json.dumps(missing_payload(state_dir, context_path), indent=2))
157
+ return 0
158
+
159
+ size = context_path.stat().st_size
160
+ if size > args.max_context_bytes:
161
+ print(
162
+ json.dumps(
163
+ {
164
+ "plugin": "product-design",
165
+ "state_dir": str(state_dir),
166
+ "user_context": {
167
+ "path": str(context_path),
168
+ "exists": True,
169
+ "status": "too_large",
170
+ "size_bytes": size,
171
+ "max_context_bytes": args.max_context_bytes,
172
+ "entries": [],
173
+ "unresolved_categories": [],
174
+ },
175
+ },
176
+ indent=2,
177
+ )
178
+ )
179
+ return 0
180
+
181
+ markdown = context_path.read_text(encoding="utf-8")
182
+ summary = summarize_user_context(markdown)
183
+ print(
184
+ json.dumps(
185
+ {
186
+ "plugin": "product-design",
187
+ "state_dir": str(state_dir),
188
+ "user_context": {
189
+ "path": str(context_path),
190
+ "exists": True,
191
+ "status": "present",
192
+ "sha256": sha256_text(markdown),
193
+ "modified_at": file_mtime(context_path),
194
+ **summary,
195
+ },
196
+ },
197
+ indent=2,
198
+ )
199
+ )
200
+ return 0
201
+
202
+
203
+ if __name__ == "__main__":
204
+ sys.exit(main())
@@ -0,0 +1,7 @@
1
+ # Prototype Instructions
2
+
3
+ Run the local server yourself and open the preview in the in-app browser. Do not give the user server-start instructions when you can run it.
4
+
5
+ Before making substantial visual changes, use the Product Design plugin's `get-context` skill when the visual source is unclear or no longer matches the current goal. When the user gives durable prototype-specific design feedback, preferences, or decisions, record them in `AGENTS.md`.
6
+
7
+ When implementing from a selected generated mock, treat that image as the source of truth for layout, component anatomy, density, spacing, color, typography, visible content, and hierarchy.
@@ -0,0 +1,12 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Prototype</title>
7
+ </head>
8
+ <body>
9
+ <div id="root"></div>
10
+ <script type="module" src="/src/main.jsx"></script>
11
+ </body>
12
+ </html>
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "design-prototype",
3
+ "version": "0.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite --host 127.0.0.1",
8
+ "build": "vite build",
9
+ "preview": "vite preview --host 127.0.0.1"
10
+ },
11
+ "dependencies": {
12
+ "@vitejs/plugin-react": "5.0.4",
13
+ "vite": "6.4.2",
14
+ "react": "19.2.0",
15
+ "react-dom": "19.2.0"
16
+ },
17
+ "devDependencies": {}
18
+ }
@@ -0,0 +1,5 @@
1
+ export function App() {
2
+ return (
3
+ <main></main>
4
+ );
5
+ }
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import { App } from "./App.jsx";
4
+ import "./styles.css";
5
+
6
+ createRoot(document.getElementById("root")).render(
7
+ <React.StrictMode>
8
+ <App />
9
+ </React.StrictMode>,
10
+ );
@@ -0,0 +1,13 @@
1
+ :root {
2
+ }
3
+
4
+ * {
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ margin: 0;
10
+ min-width: 320px;
11
+ min-height: 100vh;
12
+ -webkit-font-smoothing: antialiased;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { defineConfig } from "vite";
2
+ import react from "@vitejs/plugin-react";
3
+
4
+ export default defineConfig({
5
+ optimizeDeps: {
6
+ include: ["react", "react-dom/client"],
7
+ },
8
+ server: {
9
+ warmup: {
10
+ clientFiles: ["./src/main.jsx"],
11
+ },
12
+ },
13
+ plugins: [react()],
14
+ });
@@ -18,7 +18,7 @@ If no PRD baseline exists, route back to `yss-product-lifecycle` / `grill-with-d
18
18
 
19
19
  ## Core Flow
20
20
 
21
- 1. Inspect current assets: PRD, `docs/design/`, `docs/api/specs/`, `docs/architecture/`, and active OpenSpec/Comet changes.
21
+ 1. Inspect current assets: PRD, `docs/design/`, `docs/api/specs/`, `docs/architecture/`, and active Spec Delta changes.
22
22
  2. Create or update a design artifact under `docs/design/<feature>-interaction-spec.md` using `docs/design/templates/interaction-spec-template.md`.
23
23
  3. Capture page map, primary user flow, exception flow, and low-fidelity prototype or wireframe link.
24
24
  4. Fill the state matrix using `docs/design/templates/state-matrix-template.md`.
@@ -18,7 +18,7 @@ description: Guide AI to correctly use Orval-generated API clients in Vue 3 micr
18
18
 
19
19
  1. **契约状态已明确**:
20
20
  - 已有生成客户端:可以直接集成。
21
- - 新增或变更 API:必须先在 `docs/api/specs/` 形成 OpenAPI Draft,经工程基线 / 架构 / OpenSpec / Comet design 和设计审查后 Freeze,再进入生成和集成。
21
+ - 新增或变更 API:必须先在 `docs/api/specs/` 形成 OpenAPI Draft,经工程基线 / 架构 / Spec Delta 设计和设计审查后 Freeze,再进入生成和集成。
22
22
  - 如果接口尚未冻结或生成函数不存在,先回到 `yss-product-lifecycle` / `yss-openapi`,不要手写临时路径、DTO 或响应结构。
23
23
  2. **API 已生成**:运行 `pnpm generate:api` 生成最新 API
24
24
  3. **了解 OpenAPI**:查看 `openapi/openapi.json` 了解接口定义
@@ -107,7 +107,7 @@ description: "YSS 服务的后端开发脚手架框架和技术指南。在开
107
107
  - 单个对象: `SingleResult<T>`
108
108
  - 列表: `MultiResult<T>`
109
109
  - 分页: `PageResult<T>`
110
- - 涉及新增或变更前后端契约时,先在 `docs/api/specs/` 形成 OpenAPI Draft,经工程基线、架构 / OpenSpec / Comet design 和设计审查后 Freeze,再实现 Controller、DTO、前端调用和契约测试。
110
+ - 涉及新增或变更前后端契约时,先在 `docs/api/specs/` 形成 OpenAPI Draft,经工程基线、架构 / Spec Delta 设计和设计审查后 Freeze,再实现 Controller、DTO、前端调用和契约测试。
111
111
 
112
112
  ## 4. 工程基线检查清单
113
113
 
@@ -22,7 +22,7 @@ Read `references/source-index.md` as a path-hint index whenever the task depends
22
22
  1. Identify whether the task is running SQL/Python files, exposing file-runner APIs, parsing scheduler logs, or adding a new file execution type.
23
23
  2. Read `references/source-index.md`, then inspect `FileRunnerController`, `FileRunnerService`, `FileExecuterManager`, and concrete executers.
24
24
  3. Current supported `FileType` values are `SQL` and `PYTHON`; unsupported types throw `BizException`.
25
- 4. `FileExecuterManager` depends on `SchedulerFacadeApi`; load `yss-anti-scheduler` when execution delegates to scheduler APIs.
25
+ 4. `FileExecuterManager` depends on `SchedulerFacadeApi`; inspect the filerunner source index and local scheduler integration code directly when execution delegates to scheduler APIs.
26
26
  5. For logs, inspect `DolphinLogParser` and `LogType`.
27
27
  6. For starter integration, inspect `DefaultFileRunnerConfiguration`.
28
28
 
@@ -9,7 +9,7 @@ Use this skill to move an already implemented backend controller/DTO contract in
9
9
 
10
10
  This is an implementation/generation skill, not the product API design step and not the unified OpenAPI specification governance skill. It generates `openapi.json` from controller methods, request DTOs, response DTOs, annotations, and Java comments; it does not decide naming conventions, resource modeling, error taxonomy, pagination policy, permission semantics, or organization-wide OpenAPI style rules.
11
11
 
12
- For new or changed API contracts, first produce OpenAPI Draft in `docs/api/specs/`, pass engineering baseline, architecture / OpenSpec / Comet design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
12
+ For new or changed API contracts, first produce OpenAPI Draft in `docs/api/specs/`, pass engineering baseline, architecture / Spec Delta design, and Design Review, then Freeze the contract before using this skill to refresh generated clients. When the backend is already the implemented source of truth, use this skill to regenerate and inspect the emitted contract before updating call sites.
13
13
 
14
14
  ## Scope Boundary
15
15
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: yss-openapi-draft-review
3
- description: "Use when reviewing a docs/api/specs OpenAPI Draft before Engineering Baseline, YSS DDD Review, architecture/OpenSpec/Comet design, OpenAPI Freeze, vertical slicing, frontend/backend implementation, or when checking P0 requirement coverage, page action to endpoint mapping, YSS response wrappers, errors, permissions, pagination, optimistic locking, security red lines, and contract test seams."
3
+ description: "Use when reviewing a docs/api/specs OpenAPI Draft before Engineering Baseline, YSS DDD Review, architecture/Spec Delta design, OpenAPI Freeze, vertical slicing, frontend/backend implementation, or when checking P0 requirement coverage, page action to endpoint mapping, YSS response wrappers, errors, permissions, pagination, optimistic locking, security red lines, and contract test seams."
4
4
  ---
5
5
 
6
6
  # YSS OpenAPI Draft Review
@@ -15,13 +15,13 @@ Use `yss-openapi-governance` for:
15
15
  - Running Spectral or Redocly CLI against `docs/api/specs/*.yaml`.
16
16
  - Checking YSS response wrappers, error contracts, pagination, permissions, security red lines, and contract-test seams.
17
17
  - Comparing generated `openapi.json` against frozen design rules when backend code is already implemented.
18
- - Writing or updating governance notes under `docs/api/`, `docs/architecture/`, or the active OpenSpec / Comet design.
18
+ - Writing or updating governance notes under `docs/api/`, `docs/architecture/`, or the active Spec Delta design.
19
19
 
20
20
  Use other skills for:
21
21
 
22
22
  - `yss-openapi`: generate `target/openapi/openapi.json` from implemented controllers/DTOs and refresh Orval clients.
23
23
  - `yss-openapi-draft-review`: perform fail-closed semantic review against PRD, prototype, page actions, P0 coverage, and architecture readiness.
24
- - `openspec-*` or `comet-*`: formalize behavior changes and implementation tasks after the contract is frozen.
24
+ - `docs/specs/*-spec-delta.md` and `to-issues`: formalize behavior changes and implementation tasks after the contract is frozen.
25
25
 
26
26
  ## Preferred Tooling
27
27
 
@@ -71,7 +71,7 @@ If neither tool is configured, do not invent project policy silently. Create or
71
71
  5. Produce governance output.
72
72
  - For quick checks, report lint command, pass/fail result, and blocking findings with file paths.
73
73
  - For durable decisions, write or update a Chinese governance artifact under `docs/api/` or `docs/architecture/`.
74
- - For active OpenSpec / Comet work, reference the active change and keep rules aligned with `proposal.md`, `design.md`, `tasks.md`, and specs.
74
+ - For active Spec Delta work, reference the active change and keep rules aligned with the related design, task, and spec artifacts.
75
75
 
76
76
  ## Minimal Spectral Baseline
77
77
 
@@ -38,21 +38,25 @@ Use this lifecycle skill to decide the stage and route to the right workflow. Do
38
38
 
39
39
  | Layer | Owner | Responsibility | Canonical artifacts |
40
40
  |---|---|---|---|
41
- | Product / requirements | `competitive-intelligence`, `grill-with-docs`, `to-prd` | Clarify market / competitor facts, users, pain, boundaries, acceptance criteria, and PRD scope | `CONTEXT.md`, `docs/adr/`, `docs/discovery/`, `docs/requirements/<feature>-prd.md` |
41
+ | Product / requirements | `competitive-intelligence`, `research`, `grill-with-docs`, `prototype`, `to-prd` | Clarify market / competitor / technical facts, users, pain, boundaries, acceptance criteria, PRD scope, and runnable answers to hard design questions | `CONTEXT.md`, `docs/adr/`, `docs/discovery/`, `docs/research/`, `docs/requirements/<feature>-prd.md` |
42
42
  | Contract | OpenAPI / YSS API skills, OpenSpec-style Spec Delta | Define and freeze frontend/backend API contracts, plus behavior deltas for medium/high-risk changes | `docs/api/specs/*.yaml`, `docs/specs/<feature>-spec-delta.md`, OpenAPI Draft Review / Freeze records |
43
- | Delivery planning | `to-issues`, Issue tracker | Split PRD / frozen contract into end-to-end vertical slices | GitLab / GitHub Issues or `docs/requirements/issues/*` |
44
- | Implementation | `implement`, `tdd`, `diagnosing-bugs`, `code-review` | Build with feedback loops, bug diagnosis, independent review, and fresh verification | tests, review reports, verification records, implementation notes |
43
+ | Delivery planning | `to-issues`, `handoff` / equivalent handoff record, Issue tracker | Split PRD / frozen contract into end-to-end vertical slices and preserve context across threads or implementation repos | GitLab / GitHub Issues or `docs/requirements/issues/*`, `docs/implementation/*` |
44
+ | Implementation | `implement`, `tdd`, `diagnosing-bugs`, `resolving-merge-conflicts`, `code-review` | Build with feedback loops, bug diagnosis, conflict resolution, independent review, and fresh verification | tests, review reports, verification records, implementation notes |
45
45
  | YSS engineering | `yss-router` and selected YSS skills | Apply YSS DDD, UI, DTO, Repository, Controller, OpenAPI, and component rules | implementation routing record, Build Architecture Checklist, code/test evidence |
46
46
 
47
47
  Rules:
48
48
 
49
- - Prefer Matt skills for generic engineering workflow: `grill-with-docs`, `to-prd`, `to-issues`, `implement`, `tdd`, `diagnosing-bugs`, `code-review`, `domain-modeling`, `codebase-design`, and `improve-codebase-architecture`.
49
+ - Prefer Matt skills for generic engineering workflow: `research`, `grill-with-docs`, `prototype`, `to-prd`, `to-issues`, `implement`, `tdd`, `diagnosing-bugs`, `resolving-merge-conflicts`, `code-review`, `domain-modeling`, `codebase-design`, and `improve-codebase-architecture`.
50
50
  - Use `competitive-intelligence` when market, competitor, pricing, positioning, or customer sentiment facts are needed before Discovery / PRD decisions.
51
+ - Use `research` when technical facts, standards, third-party API behavior, framework behavior, or official documentation need primary-source evidence before PRD, OpenAPI, architecture, or acceptance decisions.
52
+ - Use `prototype` only for throwaway runnable feedback on logic, state-machine, or UI direction questions. Feed the conclusion back into PRD, design, ADR, or issues; do not treat prototype code as production implementation or as the required Ant Design v6 high-fidelity HTML prototype.
51
53
  - Preserve OpenAPI 3.1 Draft / Freeze as the API contract gate. Draft is review-only until Freeze.
52
54
  - Use OpenSpec-style Spec Delta for API, permission, state-machine, data-model, cross-client, new-module, or high-risk behavior changes. It is a lightweight behavior-delta artifact, not OpenSpec CLI, change-state files, or an extra state machine.
53
55
  - After OpenAPI Freeze, route to `to-issues` or an equivalent vertical-slice issue record; do not require extra state-machine artifacts.
54
56
  - Before frontend/backend implementation, first decide whether the impacted frontend/backend runtime projects already exist and can be reused. If an impacted side has no reusable project yet, route to `yss-ddd-scaffold-generator` or `yss-frontend-scaffold-generator` before business implementation.
55
57
  - Use `yss-router` before frontend/backend implementation when the task crosses multiple YSS areas. The route output becomes implementation guidance inside the current slice.
58
+ - Use `handoff` or an equivalent handoff record when crossing threads, implementation repositories, prototype branches, or context-window limits.
59
+ - Use `resolving-merge-conflicts` or an equivalent conflict-resolution flow for merge / rebase conflicts before release or merge decisions.
56
60
  - Use `code-review` or an independent review agent before merge/release decisions.
57
61
  - Require fresh verification evidence before claiming completion.
58
62
 
@@ -76,6 +80,7 @@ Use `excalidraw-diagram-generator` when diagrams will make boundaries, flows, da
76
80
  1. Inspect existing context before asking questions:
77
81
  - `CONTEXT.md`
78
82
  - `docs/discovery/` and `docs/discovery/reports/`
83
+ - `docs/research/`
79
84
  - `docs/requirements/`
80
85
  - `docs/design/`
81
86
  - `docs/api/specs/`
@@ -86,15 +91,18 @@ Use `excalidraw-diagram-generator` when diagrams will make boundaries, flows, da
86
91
  3. For small changes or iterations, identify the nearest trustworthy existing stage and only expand from the earliest impacted artifact:
87
92
  - wording / style / local configuration -> direct minimal change, then verify;
88
93
  - UI behavior or page state -> product design / prototype review / PRD calibration as needed;
94
+ - unclear state-machine, complex rules, or UI direction -> `prototype` for throwaway runnable feedback, then feed the conclusion into PRD/design/ADR/issue;
89
95
  - API request, response, error, permission, pagination, or concurrency -> system / data architecture, engineering contract, and Design Review with API impact analysis / contract draft / OpenAPI Draft Review / Freeze downstream gates;
90
96
  - service boundary, state machine, integration, NFR, rollout, or rollback -> system / data architecture, engineering contract, and Design Review downstream gates;
91
97
  - persistence, metadata, versioning, lineage, query, or index -> system / data architecture, engineering contract, and Design Review downstream gates.
92
98
  4. Check whether required upstream artifacts exist.
93
99
  - Before PRD calibration, product design, API impact analysis, OpenAPI Draft, requirement freeze, or formal vertical slicing, verify PRD baseline and product overview design / functional architecture exist. If the task does not enter the PRD lifecycle, record the not-applicable reason in the impact assessment.
94
- - For UI work, before PRD calibration, API impact analysis, OpenAPI Draft, or requirement freeze, verify low-fidelity `prototype-review` is approved and `docs/design/prototypes/<feature>/index.html` exists as an Ant Design v6 high-fidelity HTML prototype.
100
+ - For UI work, before PRD calibration, API impact analysis, OpenAPI Draft, or requirement freeze, verify low-fidelity `prototype-review` is approved, `docs/design/prototypes/<feature>/index.html` exists as an Ant Design v6 high-fidelity HTML prototype, AntD v6 CLI validation evidence is recorded, and user confirmation is recorded after the prototype is produced. This prototype is a required lifecycle artifact and may be generated automatically by the system / Agent after low-fidelity prototype review; it does not have to be manually supplied by the user.
95
101
  - Before formal vertical slicing, verify PRD, product overview design / functional architecture, OpenAPI Freeze or no-API-impact record, architecture review as needed, and a clear issue destination.
96
102
  - For medium/high-risk API, permission, state-machine, data-model, cross-client, new-module, or safety-sensitive changes, verify an OpenSpec-style Spec Delta exists or record why it is not needed.
103
+ - When technical, standard, framework, or third-party API facts influence downstream decisions, verify `research` or an equivalent primary-source record exists and is cited.
97
104
  - Before frontend/backend implementation, verify vertical slice scope, implementation repo/location, whether the impacted frontend/backend runtime projects already exist and are reusable, YSS skill routing, Build Architecture Checklist, test command, and review strategy.
105
+ - Before crossing threads, implementation repos, prototype branches, or long contexts, verify `handoff` or an equivalent handoff record captures source artifacts, current stage, open questions, verification commands, and next owner.
98
106
  5. Output the next action:
99
107
  - artifact to create/update,
100
108
  - specialist skill to invoke,
@@ -143,17 +151,21 @@ Default routing:
143
151
  |---|---|
144
152
  | Start a new business product/module | intake -> opportunity and Discovery -> `competitive-intelligence` when market / competitor facts are needed -> `grill-with-docs` -> `to-prd` -> product overview design / functional architecture -> product design and requirement freeze when UI exists |
145
153
  | Analyze competitors, substitute workflows, pricing, positioning, or market facts | `competitive-intelligence`; then feed stable findings into `grill-with-docs` and `to-prd` |
146
- | Design UI flow after PRD baseline | Verify product overview design / functional architecture first, then use `product-design-prototype`; add `wireframe-prototype` only when a low-fidelity page or flow sketch is needed |
154
+ | Research technical facts, standards, framework behavior, or third-party APIs | `research`; feed cited findings into PRD, OpenAPI, architecture, ADR, or acceptance criteria |
155
+ | Answer a design question that needs runnable feedback | `prototype`; feed the conclusion into PRD, design, ADR, or issue, then delete or absorb throwaway code |
156
+ | Design UI flow after PRD baseline | Verify product overview design / functional architecture first, then use `product-design:index` as the primary Product Design router; follow its focused routing such as `$get-context`, `$ideate`, `$prototype`, `$image-to-code`, or `$url-to-code` |
147
157
  | Review low-fidelity prototype before high-fidelity design | `prototype-review` |
148
- | Build high-fidelity interactive HTML prototype | `high-fidelity-html-prototype` with Ant Design v6 after low-fidelity prototype review is approved |
158
+ | Build high-fidelity interactive HTML prototype | Use `product-design:index` as the primary entrypoint and route to the appropriate Product Design focused workflow for prototype/code output; query AntD v6 design/component/demo/token/semantic facts with `antd` CLI before output; the required stage output must be Ant Design v6 HTML at `docs/design/prototypes/<feature>/index.html`, may be system / Agent generated, must record AntD CLI validation evidence, and must be confirmed by the user before downstream gates |
149
159
  | Review contract draft / OpenAPI Draft inside architecture/design review | `yss-openapi-draft-review` |
150
160
  | Record behavior deltas for medium/high-risk changes | OpenSpec-style Spec Delta at `docs/specs/<feature>-spec-delta.md` using `docs/templates/spec-delta-template.md` |
151
161
  | Clarify architecture artifact timing or gaps | this skill plus `docs/process/lifecycle-artifact-map.md` and `references/artifact-checklist.md` |
152
162
  | Create architecture/process/data diagrams | `excalidraw-diagram-generator` as a support skill |
153
163
  | Design meta-model / metadata / lineage data architecture | architecture/design workflow plus `yss-domain-modeling` or `yss-domain`; use `excalidraw-diagram-generator` for ER, lineage, DFD, or class diagrams when helpful |
154
164
  | Split delivery scope after PRD / OpenAPI Freeze | `to-issues`; record whether impacted frontend/backend projects already exist, and whether scaffold initialization is needed |
165
+ | Cross threads, repos, prototype branches, or long contexts | `handoff` or equivalent handoff record; preserve source artifacts, current stage, open questions, verification commands, and next owner |
155
166
  | Implement a slice | first check impacted frontend/backend project existence; route missing backend to `yss-ddd-scaffold-generator`, missing frontend to `yss-frontend-scaffold-generator`, then use `implement` plus `tdd`; use `yss-router` first when multiple YSS areas are touched |
156
167
  | Fix a bug or test failure | `diagnosing-bugs` then `tdd` |
168
+ | Resolve merge or rebase conflicts | `resolving-merge-conflicts`; record both intents, resolution trade-offs, and fresh verification |
157
169
  | Review implementation | `code-review` plus YSS-specific review inputs |
158
170
  | Build Vue page | `yss-ui` plus related frontend skills chosen by `yss-router` |
159
171
  | Build backend module from scratch | `yss-ddd-scaffold-generator` |
@@ -204,7 +216,9 @@ When the user explicitly asks for a full delivery plan, include stage-by-stage t
204
216
  ## Guardrails
205
217
 
206
218
  - Do not skip opportunity exploration for new product/module work; use `competitive-intelligence` when market/competitor facts are needed, or record why it is not needed.
219
+ - Do not make technical, standards, framework, or third-party API claims that affect PRD, OpenAPI, architecture, acceptance, or release decisions without `research` or equivalent primary-source evidence.
207
220
  - Do not treat Discovery outputs as frozen downstream design. Discovery can provide product capability guidance and downstream impact signals, but PRD, functional architecture, OpenAPI, system architecture, and data architecture still require their own gates.
221
+ - Do not treat throwaway `prototype` code as production code, as an implementation shortcut, or as the required Ant Design v6 high-fidelity HTML prototype. Keep the conclusion, delete or absorb the code.
208
222
  - Do not start implementation before PRD is calibrated, product overview design / functional architecture exists, required architecture artifacts are explicit, product design / prototype / interaction design exists, low-fidelity `prototype-review` passes, high-fidelity Ant Design v6 HTML prototype exists when UI exists, OpenAPI Freeze decision, engineering baseline, design review, and vertical slice are clear.
209
223
  - Do not start implementation before deciding whether the impacted frontend/backend runtime projects already exist and can be reused. Missing or conflicting runtime projects must route back to implementation routing and scaffold initialization first.
210
224
  - Do not skip business architecture for new products unless the product boundary, users, ecosystem, and value stream are already captured elsewhere.
@@ -217,7 +231,9 @@ When the user explicitly asks for a full delivery plan, include stage-by-stage t
217
231
  - Do not require Spec Delta for small wording, local style, configuration, or low-risk bug fixes unless the change expands into API, permission, state-machine, data-model, cross-client, or security impacts.
218
232
  - Do not move an OpenAPI Draft into Engineering Baseline / YSS DDD Review until `yss-openapi-draft-review` or an equivalent persistent review verifies P0 feature coverage, page action to endpoint mapping, YSS response wrappers, error structures, permissions, concurrency, security red lines, and contract test seams.
219
233
  - Do not route directly to frontend/backend skills before `yss-router` when the task crosses multiple YSS areas.
234
+ - Do not cross threads, implementation repos, prototype branches, or context-window limits without `handoff` or an equivalent handoff record when downstream agents need continuity.
220
235
  - Do not generate production code from this skill; hand off to the selected specialist skill.
236
+ - Do not complete merge/rebase conflict work without documenting resolution intent and rerunning relevant checks.
221
237
  - Treat TDD as the default for business behavior implementation; generated code, configuration, or throwaway prototypes may use a documented exception with a verification command.
222
238
  - Require independent review and fresh verification evidence before calling work complete.
223
239
  - Flag security red lines from `AGENTS.md` as human-review items.
@@ -61,7 +61,6 @@ When the request is already narrowly scoped, use the matching specialist directl
61
61
  | Work with current user info propagation or user info starter | `yss-userinfo` |
62
62
  | Work with variable component APIs | `yss-variable` |
63
63
  | Work with quality starter behavior | `yss-quality` |
64
- | Work with DolphinScheduler anti-corrosion/anti-scheduler integration | `yss-anti-scheduler` |
65
64
  | Work with exception component or unified exception handling | `yss-exception` |
66
65
  | Work with mail starter or email sending | `yss-mail` |
67
66
  | Work with file runner component | `yss-filerunner` |
@@ -98,7 +97,7 @@ Backend component skills have generated source indexes under `references/source-
98
97
  中文说明:当问题涉及真实类名、配置项、注解、拦截器、自动配置或排障时,先读对应 `source-index.md`,它会指向后端组件源码库里的真实入口。
99
98
 
100
99
  - Core framework/component examples: `yss-cache`, `yss-mybatis`, `yss-dto`, `yss-audit-log`, `yss-excel-mvc`, `yss-distributed-id`, `yss-jdbc`.
101
- - Extended component examples: `yss-dictionary`, `yss-dir`, `yss-file`, `yss-log`, `yss-liquibase`, `yss-resilience4j`, `yss-sql-condition`, `yss-sql-tpl`, `yss-taskflow`, `yss-validation`, `yss-security-algorithm`, `yss-userinfo`, `yss-variable`, `yss-quality`, `yss-anti-scheduler`, `yss-exception`, `yss-mail`, `yss-filerunner`, `yss-valuation`, `yss-duckdb`, `yss-mapper-dynamic`.
100
+ - Extended component examples: `yss-dictionary`, `yss-dir`, `yss-file`, `yss-log`, `yss-liquibase`, `yss-resilience4j`, `yss-sql-condition`, `yss-sql-tpl`, `yss-taskflow`, `yss-validation`, `yss-security-algorithm`, `yss-userinfo`, `yss-variable`, `yss-quality`, `yss-exception`, `yss-mail`, `yss-filerunner`, `yss-valuation`, `yss-duckdb`, `yss-mapper-dynamic`.
102
101
 
103
102
  Regenerate these indexes with `yss-source-index/scripts/refresh-yss-skill-index.py` after `yss-cloud-microservice` changes. Read `yss-source-index/references/source-map-config.md` when you need the full skill-to-source mapping.
104
103
 
@@ -54,7 +54,6 @@ Default for backend CRUD: use `yss-domain`, `yss-dto`, `yss-repository`, and `ys
54
54
  - `yss-userinfo`: Current-user info propagation and starter integration.
55
55
  - `yss-variable`: Variable component APIs and variable resolution.
56
56
  - `yss-quality`: Quality starter behavior.
57
- - `yss-anti-scheduler`: DolphinScheduler anti-corrosion/anti-scheduler integration.
58
57
  - `yss-exception`: Exception component and unified exception handling.
59
58
  - `yss-mail`: Mail starter and email sending.
60
59
  - `yss-filerunner`: File runner component behavior.
@@ -27,7 +27,6 @@ The refresh script maps component source path hints to skill references. These p
27
27
  | `yss-userinfo` | `yss-microservice-components/yss-component-userinfo-starter` |
28
28
  | `yss-variable` | `yss-microservice-components/yss-component-variable` |
29
29
  | `yss-quality` | `yss-microservice-components/yss-component-quality-starter` |
30
- | `yss-anti-scheduler` | `yss-microservice-components/yss-component-anti-corrosion/yss-component-anti-scheduler` |
31
30
  | `yss-exception` | `yss-microservice-components/yss-component-exception` |
32
31
  | `yss-mail` | `yss-microservice-components/yss-component-mail-starter` |
33
32
  | `yss-filerunner` | `yss-microservice-components/yss-component-filerunner-parent` |
@@ -76,9 +76,6 @@ BACKEND_SKILLS = {
76
76
  "yss-quality": [
77
77
  "yss-microservice-components/yss-component-quality-starter",
78
78
  ],
79
- "yss-anti-scheduler": [
80
- "yss-microservice-components/yss-component-anti-corrosion/yss-component-anti-scheduler",
81
- ],
82
79
  "yss-exception": [
83
80
  "yss-microservice-components/yss-component-exception",
84
81
  ],
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: grill-me
3
+ description: A relentless interview to sharpen a plan or design.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ Run a `/grilling` session.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: grilling
3
+ description: Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.
4
+ ---
5
+
6
+ Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
7
+
8
+ Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
9
+
10
+ If a *fact* can be found by exploring the codebase, look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer.
11
+
12
+ Do not enact the plan until I confirm we have reached a shared understanding.
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: handoff
3
+ description: Compact the current conversation into a handoff document for another agent to pick up.
4
+ argument-hint: "What will the next session be used for?"
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ Write a handoff document summarising the current conversation so a fresh agent can continue the work. Save to the temporary directory of the user's OS - not the current workspace.
9
+
10
+ Include a "suggested skills" section in the document, which suggests skills that the agent should invoke.
11
+
12
+ Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
13
+
14
+ Redact any sensitive information, such as API keys, passwords, or personally identifiable information.
15
+
16
+ If the user passed arguments, treat them as a description of what the next session will focus on and tailor the doc accordingly.
@@ -54,7 +54,7 @@ Iterate until the user approves the breakdown.
54
54
 
55
55
  For each approved slice, publish a new issue to the issue tracker. Use the issue body template below. These issues are considered ready for AFK agents, so publish them with the correct triage label unless instructed otherwise.
56
56
 
57
- Publish issues in dependency order (blockers first) so you can reference real issue identifiers in the "Blocked by" field.
57
+ Publish issues in dependency order (blockers first) so you can reference real issue identifiers. Where the tracker supports it, link each slice to its parent as a native **sub-issue** and wire each blocker as a native **blocking edge** (mechanics in the issue-tracker doc); the `## Parent` and `## Blocked by` body sections are the fallback otherwise.
58
58
 
59
59
  <issue-template>
60
60
  ## Parent
@@ -65,7 +65,7 @@ A reference to the parent issue on the issue tracker (if the source was an exist
65
65
 
66
66
  A concise description of this vertical slice. Describe the end-to-end behavior, not layer-by-layer implementation.
67
67
 
68
- Avoid specific file paths or code snippets — they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it here and note briefly that it came from a prototype. Trim to the decision-rich parts — not a working demo, just the important bits.
68
+ Avoid specific file paths or code snippets — they go stale fast. Exception: if the `/prototype` skill produced code that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), add a context pointer to where that prototype code lives rather than inlining it.
69
69
 
70
70
  ## Acceptance criteria
71
71
 
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: grill-me
3
+ description: A relentless interview to sharpen a plan or design.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ Run a `/grilling` session.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: grilling
3
+ description: Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.
4
+ ---
5
+
6
+ Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
7
+
8
+ Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
9
+
10
+ If a *fact* can be found by exploring the codebase, look it up rather than asking me. The *decisions*, though, are mine — put each one to me and wait for my answer.
11
+
12
+ Do not enact the plan until I confirm we have reached a shared understanding.