@bovinphang/frontend-craft 2.6.0 → 2.8.0

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 (414) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +72 -1
  4. package/CHANGELOG.zh-CN.md +71 -1
  5. package/README.md +10 -6
  6. package/README.openclaw.md +100 -42
  7. package/README.openclaw.zh-CN.md +100 -42
  8. package/README.zh-CN.md +10 -6
  9. package/agents/fec-architect.md +70 -70
  10. package/agents/fec-code-reviewer.md +82 -82
  11. package/agents/fec-debugger.md +20 -20
  12. package/agents/fec-design-token-mapper.md +36 -36
  13. package/agents/fec-doc-updater.md +13 -13
  14. package/agents/fec-e2e-runner.md +45 -45
  15. package/agents/fec-figma-implementer.md +59 -59
  16. package/agents/fec-performance-optimizer.md +128 -128
  17. package/agents/fec-refactor-cleaner.md +14 -14
  18. package/agents/fec-security-reviewer.md +66 -67
  19. package/agents/fec-test-planner.md +27 -27
  20. package/agents/fec-typescript-reviewer.md +88 -88
  21. package/agents/fec-ui-checker.md +74 -74
  22. package/commands/fec-debug.md +19 -19
  23. package/commands/fec-doc-sync.md +11 -11
  24. package/commands/fec-init.md +37 -38
  25. package/commands/fec-plan.md +58 -58
  26. package/commands/fec-refactor-clean.md +11 -11
  27. package/commands/fec-review.md +41 -41
  28. package/commands/fec-scaffold.md +41 -41
  29. package/commands/fec-tdd.md +13 -13
  30. package/dist/bin/frontend-craft.js +29 -27
  31. package/docs/example-prompts.md +84 -69
  32. package/docs/ja-JP/README.md +56 -52
  33. package/docs/ko-KR/README.md +45 -41
  34. package/docs/project-structure.md +19 -7
  35. package/docs/superpowers/plans/2026-05-29-fec-debug.md +491 -0
  36. package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +340 -0
  37. package/docs/zh-CN/example-prompts.md +84 -69
  38. package/docs/zh-CN/project-structure.md +14 -5
  39. package/docs/zh-TW/README.md +33 -29
  40. package/localized/zh-CN/agents/fec-architect.md +125 -0
  41. package/localized/zh-CN/agents/fec-code-reviewer.md +152 -0
  42. package/localized/zh-CN/agents/fec-debugger.md +44 -0
  43. package/localized/zh-CN/agents/fec-design-token-mapper.md +75 -0
  44. package/localized/zh-CN/agents/fec-doc-updater.md +30 -0
  45. package/localized/zh-CN/agents/fec-e2e-runner.md +107 -0
  46. package/localized/zh-CN/agents/fec-figma-implementer.md +104 -0
  47. package/localized/zh-CN/agents/fec-performance-optimizer.md +293 -0
  48. package/localized/zh-CN/agents/fec-refactor-cleaner.md +32 -0
  49. package/localized/zh-CN/agents/fec-security-reviewer.md +116 -0
  50. package/localized/zh-CN/agents/fec-test-planner.md +50 -0
  51. package/localized/zh-CN/agents/fec-typescript-reviewer.md +142 -0
  52. package/localized/zh-CN/agents/fec-ui-checker.md +120 -0
  53. package/localized/zh-CN/commands/fec-debug.md +30 -0
  54. package/localized/zh-CN/commands/fec-doc-sync.md +19 -0
  55. package/localized/zh-CN/commands/fec-init.md +70 -0
  56. package/localized/zh-CN/commands/fec-plan.md +94 -0
  57. package/localized/zh-CN/commands/fec-refactor-clean.md +19 -0
  58. package/localized/zh-CN/commands/fec-review.md +66 -0
  59. package/localized/zh-CN/commands/fec-scaffold.md +205 -0
  60. package/localized/zh-CN/commands/fec-tdd.md +21 -0
  61. package/localized/zh-CN/skills/TEMPLATE.md +155 -0
  62. package/localized/zh-CN/skills/eval_queries.json +1013 -0
  63. package/localized/zh-CN/skills/fec-accessibility-check/SKILL.md +39 -0
  64. package/localized/zh-CN/skills/fec-accessibility-check/references/report-template.md +23 -0
  65. package/localized/zh-CN/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
  66. package/localized/zh-CN/skills/fec-alchemy/SKILL.md +74 -0
  67. package/localized/zh-CN/skills/fec-alchemy/assets/absorption-plan-template.md +47 -0
  68. package/localized/zh-CN/skills/fec-alchemy/assets/intake-template.md +55 -0
  69. package/localized/zh-CN/skills/fec-alchemy/assets/review-checklist.md +31 -0
  70. package/localized/zh-CN/skills/fec-alchemy/references/methodology.md +94 -0
  71. package/localized/zh-CN/skills/fec-alchemy/references/originality-and-licensing.md +57 -0
  72. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +78 -0
  73. package/localized/zh-CN/skills/fec-api-integration/references/integration-patterns.md +80 -0
  74. package/localized/zh-CN/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
  75. package/localized/zh-CN/skills/fec-browser-storage/SKILL.md +34 -0
  76. package/localized/zh-CN/skills/fec-browser-storage/references/storage-patterns.md +65 -0
  77. package/localized/zh-CN/skills/fec-canvas-threejs/SKILL.md +66 -0
  78. package/localized/zh-CN/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
  79. package/localized/zh-CN/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
  80. package/localized/zh-CN/skills/fec-code-review/SKILL.md +143 -0
  81. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +29 -0
  82. package/localized/zh-CN/skills/fec-component-testing/SKILL.md +119 -0
  83. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +62 -0
  84. package/localized/zh-CN/skills/fec-data-fetching/references/query-patterns.md +103 -0
  85. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +157 -0
  86. package/localized/zh-CN/skills/fec-debug-framework/references/report-template.md +58 -0
  87. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +34 -0
  88. package/localized/zh-CN/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
  89. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +39 -0
  90. package/localized/zh-CN/skills/fec-drawio-studio/SKILL.md +73 -0
  91. package/localized/zh-CN/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
  92. package/localized/zh-CN/skills/fec-drawio-studio/data/brand-icons.json +878 -0
  93. package/localized/zh-CN/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  94. package/localized/zh-CN/skills/fec-drawio-studio/references/data-residency.md +27 -0
  95. package/localized/zh-CN/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
  96. package/localized/zh-CN/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  97. package/localized/zh-CN/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
  98. package/localized/zh-CN/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
  99. package/localized/zh-CN/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
  100. package/localized/zh-CN/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
  101. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
  102. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
  103. package/localized/zh-CN/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  104. package/localized/zh-CN/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
  105. package/localized/zh-CN/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
  106. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
  107. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
  108. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
  109. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
  110. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
  111. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
  112. package/localized/zh-CN/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
  113. package/localized/zh-CN/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
  114. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
  115. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
  116. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
  117. package/localized/zh-CN/skills/fec-drawio-studio/styles/schema.json +112 -0
  118. package/localized/zh-CN/skills/fec-e2e-testing/SKILL.md +42 -0
  119. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
  120. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
  121. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
  122. package/localized/zh-CN/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
  123. package/localized/zh-CN/skills/fec-form-handling/SKILL.md +76 -0
  124. package/localized/zh-CN/skills/fec-form-handling/references/advanced-form-patterns.md +101 -0
  125. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +80 -0
  126. package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  127. package/localized/zh-CN/skills/fec-image-generation/references/artifact-routing.md +80 -0
  128. package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +74 -0
  129. package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
  130. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +30 -0
  131. package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
  132. package/localized/zh-CN/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  133. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +431 -0
  134. package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
  135. package/localized/zh-CN/skills/fec-implement-from-design/SKILL.md +129 -0
  136. package/localized/zh-CN/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
  137. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/SKILL.md +46 -0
  138. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
  139. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
  140. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
  141. package/localized/zh-CN/skills/fec-legacy-web-standard/SKILL.md +35 -0
  142. package/localized/zh-CN/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
  143. package/localized/zh-CN/skills/fec-list-virtualization/SKILL.md +34 -0
  144. package/localized/zh-CN/skills/fec-list-virtualization/references/virtualization-patterns.md +80 -0
  145. package/localized/zh-CN/skills/fec-monorepo-project-standard/SKILL.md +142 -0
  146. package/localized/zh-CN/skills/fec-motion-interaction/SKILL.md +73 -0
  147. package/localized/zh-CN/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
  148. package/localized/zh-CN/skills/fec-nextjs-project-standard/SKILL.md +123 -0
  149. package/localized/zh-CN/skills/fec-nuxt-project-standard/SKILL.md +122 -0
  150. package/localized/zh-CN/skills/fec-performance-optimization/SKILL.md +80 -0
  151. package/localized/zh-CN/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
  152. package/localized/zh-CN/skills/fec-performance-optimization/references/report-template.md +59 -0
  153. package/localized/zh-CN/skills/fec-pwa-implementation/SKILL.md +35 -0
  154. package/localized/zh-CN/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
  155. package/localized/zh-CN/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
  156. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +91 -0
  157. package/localized/zh-CN/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
  158. package/localized/zh-CN/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
  159. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
  160. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
  161. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +51 -0
  162. package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
  163. package/localized/zh-CN/skills/fec-responsive-layout/SKILL.md +34 -0
  164. package/localized/zh-CN/skills/fec-responsive-layout/references/responsive-layout-patterns.md +70 -0
  165. package/localized/zh-CN/skills/fec-route-protection/SKILL.md +135 -0
  166. package/localized/zh-CN/skills/fec-security-review/SKILL.md +38 -0
  167. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +27 -0
  168. package/localized/zh-CN/skills/fec-security-review/references/security-checklist.md +64 -0
  169. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +87 -0
  170. package/localized/zh-CN/skills/fec-state-management/SKILL.md +140 -0
  171. package/localized/zh-CN/skills/fec-state-management/references/state-patterns.md +109 -0
  172. package/localized/zh-CN/skills/fec-storybook-component-doc/SKILL.md +37 -0
  173. package/localized/zh-CN/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
  174. package/localized/zh-CN/skills/fec-svg-animation/SKILL.md +148 -0
  175. package/localized/zh-CN/skills/fec-tailwind-design-system/SKILL.md +34 -0
  176. package/localized/zh-CN/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +59 -0
  177. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +52 -0
  178. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +45 -0
  179. package/localized/zh-CN/skills/fec-typescript-project-standard/SKILL.md +54 -0
  180. package/{skills/fec-typescript-type-safety → localized/zh-CN/skills/fec-typescript-project-standard}/references/type-safety-patterns.md +1 -1
  181. package/{skills/fec-typescript-type-safety/SKILL.md → localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md} +5 -14
  182. package/localized/zh-CN/skills/fec-ui-design/SKILL.md +108 -0
  183. package/localized/zh-CN/skills/fec-ui-design/data/product-rules.json +231 -0
  184. package/localized/zh-CN/skills/fec-ui-design/data/stack-ui-rules.json +146 -0
  185. package/localized/zh-CN/skills/fec-ui-design/data/style-archetypes.json +373 -0
  186. package/localized/zh-CN/skills/fec-ui-design/data/ux-quality-rules.json +203 -0
  187. package/localized/zh-CN/skills/fec-ui-design/references/design-intelligence.md +97 -0
  188. package/localized/zh-CN/skills/fec-ui-design/references/master-page-overrides.md +30 -0
  189. package/localized/zh-CN/skills/fec-ui-design/references/pre-delivery-checklist.md +39 -0
  190. package/localized/zh-CN/skills/fec-ui-design/scripts/design-system.mjs +648 -0
  191. package/localized/zh-CN/skills/fec-validation-fix/SKILL.md +51 -0
  192. package/localized/zh-CN/skills/fec-validation-fix/references/report-template.md +43 -0
  193. package/localized/zh-CN/skills/fec-vite-project-standard/SKILL.md +83 -0
  194. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +58 -0
  195. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +162 -0
  196. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
  197. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +176 -0
  198. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
  199. package/localized/zh-CN/skills/fec-web-video-presentation/SKILL.md +61 -0
  200. package/localized/zh-CN/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
  201. package/localized/zh-CN/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
  202. package/localized/zh-CN/skills/fec-web-video-presentation/references/content-plan.md +38 -0
  203. package/localized/zh-CN/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
  204. package/localized/zh-CN/skills/fec-web-video-presentation/references/theme-system.md +36 -0
  205. package/localized/zh-CN/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
  206. package/localized/zh-CN/skills/fec-web-workers/SKILL.md +35 -0
  207. package/localized/zh-CN/skills/fec-web-workers/references/advanced-workers.md +54 -0
  208. package/localized/zh-CN/skills/fec-web-workers/references/basic-worker.md +67 -0
  209. package/localized/zh-CN/skills/metadata.json +1646 -0
  210. package/localized/zh-CN/skills/relations.json +755 -0
  211. package/localized/zh-CN/templates/claude/CLAUDE.md +106 -0
  212. package/localized/zh-CN/templates/claude/settings.json +62 -0
  213. package/localized/zh-CN/templates/codex/AGENTS.md +105 -0
  214. package/localized/zh-CN/templates/codex/config.toml +32 -0
  215. package/localized/zh-CN/templates/openclaw/AGENTS.md +101 -0
  216. package/localized/zh-CN/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
  217. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +54 -0
  218. package/localized/zh-CN/templates/shared/rules/fec-api-layer.md +99 -0
  219. package/localized/zh-CN/templates/shared/rules/fec-ci-cd.md +40 -0
  220. package/localized/zh-CN/templates/shared/rules/fec-code-comments.md +33 -0
  221. package/localized/zh-CN/templates/shared/rules/fec-design-system.md +72 -0
  222. package/localized/zh-CN/templates/shared/rules/fec-error-handling.md +56 -0
  223. package/localized/zh-CN/templates/shared/rules/fec-git-conventions.md +73 -0
  224. package/localized/zh-CN/templates/shared/rules/fec-i18n.md +64 -0
  225. package/localized/zh-CN/templates/shared/rules/fec-naming-conventions.md +120 -0
  226. package/localized/zh-CN/templates/shared/rules/fec-performance.md +101 -0
  227. package/localized/zh-CN/templates/shared/rules/fec-react.md +82 -0
  228. package/localized/zh-CN/templates/shared/rules/fec-refactoring.md +47 -0
  229. package/localized/zh-CN/templates/shared/rules/fec-rendering-patterns.md +40 -0
  230. package/localized/zh-CN/templates/shared/rules/fec-responsive-design.md +50 -0
  231. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +31 -0
  232. package/localized/zh-CN/templates/shared/rules/fec-state-management.md +60 -0
  233. package/localized/zh-CN/templates/shared/rules/fec-testing.md +98 -0
  234. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +112 -0
  235. package/localized/zh-CN/templates/shared/rules/fec-vue.md +64 -0
  236. package/localized/zh-CN/templates/shared/rules/fec-working-modes.md +50 -0
  237. package/openclaw.plugin.json +1 -1
  238. package/package.json +4 -3
  239. package/skills/TEMPLATE.md +74 -74
  240. package/skills/eval_queries.json +717 -619
  241. package/skills/fec-accessibility-check/SKILL.md +21 -21
  242. package/skills/fec-accessibility-check/references/report-template.md +12 -12
  243. package/skills/fec-accessibility-check/references/screen-reader-testing.md +24 -24
  244. package/skills/fec-alchemy/SKILL.md +50 -50
  245. package/skills/fec-alchemy/assets/absorption-plan-template.md +32 -32
  246. package/skills/fec-alchemy/assets/intake-template.md +55 -55
  247. package/skills/fec-alchemy/assets/review-checklist.md +23 -23
  248. package/skills/fec-alchemy/references/methodology.md +66 -66
  249. package/skills/fec-alchemy/references/originality-and-licensing.md +42 -42
  250. package/skills/fec-api-integration/SKILL.md +61 -61
  251. package/skills/fec-api-integration/references/integration-patterns.md +30 -30
  252. package/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
  253. package/skills/fec-browser-storage/SKILL.md +16 -16
  254. package/skills/fec-browser-storage/references/storage-patterns.md +16 -16
  255. package/skills/fec-canvas-threejs/SKILL.md +21 -21
  256. package/skills/fec-canvas-threejs/references/rendering-patterns.md +10 -10
  257. package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +37 -37
  258. package/skills/fec-code-review/SKILL.md +94 -94
  259. package/skills/fec-code-review/references/report-template.md +13 -13
  260. package/skills/fec-component-testing/SKILL.md +39 -39
  261. package/skills/fec-data-fetching/SKILL.md +16 -16
  262. package/skills/fec-data-fetching/references/query-patterns.md +27 -27
  263. package/skills/fec-debug-framework/SKILL.md +95 -95
  264. package/skills/fec-debug-framework/references/report-template.md +34 -34
  265. package/skills/fec-dependency-upgrade/SKILL.md +17 -17
  266. package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +31 -31
  267. package/skills/fec-doc-sync/SKILL.md +23 -23
  268. package/skills/fec-drawio-studio/SKILL.md +73 -0
  269. package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
  270. package/skills/fec-drawio-studio/data/brand-icons.json +878 -0
  271. package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  272. package/skills/fec-drawio-studio/references/data-residency.md +27 -0
  273. package/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
  274. package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  275. package/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
  276. package/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
  277. package/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
  278. package/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
  279. package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
  280. package/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
  281. package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  282. package/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
  283. package/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
  284. package/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
  285. package/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
  286. package/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
  287. package/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
  288. package/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
  289. package/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
  290. package/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
  291. package/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
  292. package/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
  293. package/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
  294. package/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
  295. package/skills/fec-drawio-studio/styles/schema.json +112 -0
  296. package/skills/fec-e2e-testing/SKILL.md +24 -22
  297. package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
  298. package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
  299. package/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
  300. package/skills/fec-e2e-testing/references/playwright-patterns.md +6 -6
  301. package/skills/fec-form-handling/SKILL.md +21 -21
  302. package/skills/fec-form-handling/references/advanced-form-patterns.md +41 -41
  303. package/skills/fec-image-generation/SKILL.md +81 -0
  304. package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  305. package/skills/fec-image-generation/references/artifact-routing.md +80 -0
  306. package/skills/fec-image-generation/references/diagram-workflows.md +74 -0
  307. package/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
  308. package/skills/fec-image-generation/references/png-qa-autofix.md +30 -0
  309. package/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
  310. package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  311. package/skills/fec-image-generation/scripts/png-qa.mjs +431 -0
  312. package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
  313. package/skills/fec-implement-from-design/SKILL.md +81 -74
  314. package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
  315. package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -173
  316. package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
  317. package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +37 -37
  318. package/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
  319. package/skills/fec-legacy-web-standard/SKILL.md +17 -17
  320. package/skills/fec-legacy-web-standard/references/legacy-patterns.md +16 -16
  321. package/skills/fec-list-virtualization/SKILL.md +16 -16
  322. package/skills/fec-list-virtualization/references/virtualization-patterns.md +31 -31
  323. package/skills/fec-monorepo-project-standard/SKILL.md +52 -52
  324. package/skills/fec-motion-interaction/SKILL.md +51 -44
  325. package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
  326. package/skills/fec-nextjs-project-standard/SKILL.md +64 -58
  327. package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
  328. package/skills/fec-performance-optimization/SKILL.md +54 -50
  329. package/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
  330. package/skills/fec-performance-optimization/references/report-template.md +34 -28
  331. package/skills/fec-pwa-implementation/SKILL.md +17 -17
  332. package/skills/fec-pwa-implementation/references/manifest-and-icons.md +12 -12
  333. package/skills/fec-pwa-implementation/references/service-worker-workbox.md +13 -13
  334. package/skills/fec-react-project-standard/SKILL.md +72 -64
  335. package/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
  336. package/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
  337. package/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
  338. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
  339. package/skills/fec-refactor-clean/SKILL.md +30 -30
  340. package/skills/fec-refactor-clean/references/report-template.md +23 -23
  341. package/skills/fec-responsive-layout/SKILL.md +17 -17
  342. package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +39 -28
  343. package/skills/fec-route-protection/SKILL.md +26 -26
  344. package/skills/fec-security-review/SKILL.md +20 -20
  345. package/skills/fec-security-review/references/report-template.md +12 -12
  346. package/skills/fec-security-review/references/security-checklist.md +27 -27
  347. package/skills/fec-source-driven-development/SKILL.md +66 -40
  348. package/skills/fec-state-management/SKILL.md +34 -34
  349. package/skills/fec-state-management/references/state-patterns.md +19 -19
  350. package/skills/fec-storybook-component-doc/SKILL.md +19 -19
  351. package/skills/fec-storybook-component-doc/references/story-patterns.md +12 -12
  352. package/skills/fec-svg-animation/SKILL.md +32 -32
  353. package/skills/fec-tailwind-design-system/SKILL.md +17 -17
  354. package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +36 -32
  355. package/skills/fec-tdd-workflow/SKILL.md +28 -28
  356. package/skills/fec-testing-strategy/SKILL.md +29 -29
  357. package/skills/fec-typescript-project-standard/SKILL.md +54 -0
  358. package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
  359. package/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
  360. package/skills/fec-ui-design/SKILL.md +90 -72
  361. package/skills/fec-ui-design/data/style-archetypes.json +40 -0
  362. package/skills/fec-ui-design/data/ux-quality-rules.json +35 -0
  363. package/skills/fec-ui-design/references/design-intelligence.md +81 -21
  364. package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
  365. package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -32
  366. package/skills/fec-ui-design/scripts/design-system.mjs +119 -1
  367. package/skills/fec-validation-fix/SKILL.md +26 -26
  368. package/skills/fec-validation-fix/references/report-template.md +25 -25
  369. package/skills/fec-vite-project-standard/SKILL.md +39 -39
  370. package/skills/fec-vue3-project-standard/SKILL.md +39 -30
  371. package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +163 -0
  372. package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
  373. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +177 -0
  374. package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
  375. package/skills/fec-web-video-presentation/SKILL.md +61 -0
  376. package/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
  377. package/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
  378. package/skills/fec-web-video-presentation/references/content-plan.md +38 -0
  379. package/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
  380. package/skills/fec-web-video-presentation/references/theme-system.md +36 -0
  381. package/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
  382. package/skills/fec-web-workers/SKILL.md +16 -16
  383. package/skills/fec-web-workers/references/advanced-workers.md +13 -13
  384. package/skills/fec-web-workers/references/basic-worker.md +8 -8
  385. package/skills/metadata.json +402 -220
  386. package/skills/relations.json +120 -25
  387. package/templates/claude/CLAUDE.md +60 -60
  388. package/templates/codex/AGENTS.md +76 -76
  389. package/templates/codex/config.toml +4 -4
  390. package/templates/openclaw/AGENTS.md +68 -68
  391. package/templates/openclaw/OPENCLAW-CONFIG.md +8 -8
  392. package/templates/shared/rules/fec-agent-workflow.md +40 -40
  393. package/templates/shared/rules/fec-api-layer.md +52 -52
  394. package/templates/shared/rules/fec-ci-cd.md +29 -117
  395. package/templates/shared/rules/fec-code-comments.md +22 -22
  396. package/templates/shared/rules/fec-design-system.md +65 -241
  397. package/templates/shared/rules/fec-error-handling.md +41 -185
  398. package/templates/shared/rules/fec-git-conventions.md +42 -42
  399. package/templates/shared/rules/fec-i18n.md +48 -96
  400. package/templates/shared/rules/fec-naming-conventions.md +91 -91
  401. package/templates/shared/rules/fec-performance.md +78 -78
  402. package/templates/shared/rules/fec-react.md +58 -58
  403. package/templates/shared/rules/fec-refactoring.md +34 -30
  404. package/templates/shared/rules/fec-rendering-patterns.md +40 -183
  405. package/templates/shared/rules/fec-responsive-design.md +37 -214
  406. package/templates/shared/rules/fec-source-driven-development.md +22 -22
  407. package/templates/shared/rules/fec-state-management.md +45 -148
  408. package/templates/shared/rules/fec-testing.md +64 -64
  409. package/templates/shared/rules/fec-typescript.md +98 -341
  410. package/templates/shared/rules/fec-vue.md +42 -42
  411. package/templates/shared/rules/fec-working-modes.md +34 -34
  412. package/skills/fec-e2e-testing/references/e2e-advanced.md +0 -176
  413. package/skills/fec-react-project-standard/references/react-project-details.md +0 -642
  414. package/skills/fec-vue3-project-standard/references/vue3-project-details.md +0 -547
@@ -67,6 +67,14 @@ import { fileURLToPath } from "node:url";
67
67
  * project: string;
68
68
  * page: string;
69
69
  * query: string;
70
+ * designRead: string;
71
+ * designDials: {
72
+ * visualTension: number;
73
+ * motionIntensity: number;
74
+ * informationDensity: number;
75
+ * mediaAuthenticity: number;
76
+ * contentPersuasion: number;
77
+ * };
70
78
  * product: { id: string; label: string; pattern: string; risks: string[] };
71
79
  * style: { id: string; label: string; usage: string | undefined; risks: string[] };
72
80
  * tokens: { color: string; typography: string; space: string; components: string[] };
@@ -230,6 +238,7 @@ function buildRecommendation(args) {
230
238
  const tokens = tokenize([query, args.project, args.page, args.stack].filter(Boolean).join(" "));
231
239
  const product = chooseProduct(tokens);
232
240
  const style = chooseStyle(tokens, product);
241
+ const designDials = deriveDesignDials(tokens, product, style);
233
242
  const checklist = chooseChecklist(tokens, product);
234
243
  const stackGuidance = chooseStack(args.stack, tokens);
235
244
  const pattern = product.pattern ?? product.patterns?.[0] ?? "Task-first interface with explicit states and durable visual hierarchy";
@@ -238,6 +247,8 @@ function buildRecommendation(args) {
238
247
  project: args.project || titleCase(query),
239
248
  page: args.page || "",
240
249
  query,
250
+ designRead: renderDesignRead(product, style, designDials),
251
+ designDials,
241
252
  product: {
242
253
  id: product.id,
243
254
  label: product.label ?? labelFromId(product.id),
@@ -312,11 +323,17 @@ function chooseStyle(tokens, product) {
312
323
  * @returns {ChecklistGroup[]}
313
324
  */
314
325
  function chooseChecklist(tokens, product) {
315
- const priority = new Set(["accessibility", "interaction", "layout", "typography", "animation"]);
326
+ const priority = new Set(["accessibility", "interaction", "layout", "typography", "animation", "state-completeness"]);
316
327
  if (product.id === "data-dashboard" || tokens.has("dashboard") || tokens.has("chart")) priority.add("charts");
317
328
  if (tokens.has("form") || tokens.has("booking") || tokens.has("checkout")) priority.add("forms");
318
329
  if (tokens.has("mobile") || tokens.has("app")) priority.add("navigation");
319
330
  if (tokens.has("performance") || tokens.has("canvas") || tokens.has("three")) priority.add("performance");
331
+ if (isPromotional(tokens, product)) {
332
+ priority.add("first-viewport");
333
+ priority.add("cta-quality");
334
+ priority.add("section-variety");
335
+ priority.add("media-authenticity");
336
+ }
320
337
 
321
338
  return uxQualityRules
322
339
  .filter((rule) => {
@@ -333,6 +350,96 @@ function chooseChecklist(tokens, product) {
333
350
  });
334
351
  }
335
352
 
353
+ /**
354
+ * @param {Set<string>} tokens
355
+ * @param {ProductRule} product
356
+ * @param {StyleArchetype} style
357
+ * @returns {Recommendation["designDials"]}
358
+ */
359
+ function deriveDesignDials(tokens, product, style) {
360
+ /** @type {Recommendation["designDials"]} */
361
+ const dials = {
362
+ visualTension: 5,
363
+ motionIntensity: 3,
364
+ informationDensity: 5,
365
+ mediaAuthenticity: 5,
366
+ contentPersuasion: 5,
367
+ };
368
+
369
+ if (["data-dashboard", "saas", "fintech", "healthcare"].includes(product.id)) {
370
+ dials.visualTension = 3;
371
+ dials.motionIntensity = product.id === "saas" ? 3 : 2;
372
+ dials.informationDensity = product.id === "data-dashboard" ? 8 : 6;
373
+ dials.mediaAuthenticity = 4;
374
+ dials.contentPersuasion = 4;
375
+ }
376
+
377
+ if (["ecommerce", "creative", "wellness"].includes(product.id) || isPromotional(tokens, product)) {
378
+ dials.visualTension = product.id === "creative" ? 8 : 7;
379
+ dials.motionIntensity = product.id === "creative" ? 6 : 5;
380
+ dials.informationDensity = 4;
381
+ dials.mediaAuthenticity = 8;
382
+ dials.contentPersuasion = 8;
383
+ }
384
+
385
+ if (product.id === "gaming" || style.id === "immersive") {
386
+ dials.visualTension = 8;
387
+ dials.motionIntensity = 7;
388
+ dials.informationDensity = 6;
389
+ dials.mediaAuthenticity = 7;
390
+ dials.contentPersuasion = 5;
391
+ }
392
+
393
+ if (["minimal", "minimal-utilitarian"].includes(style.id)) {
394
+ dials.visualTension = Math.min(dials.visualTension, 4);
395
+ dials.motionIntensity = Math.min(dials.motionIntensity, 3);
396
+ }
397
+
398
+ if (["editorial-premium", "image-led-landing", "brand-system-board"].includes(style.id)) {
399
+ dials.visualTension = Math.max(dials.visualTension, 7);
400
+ dials.mediaAuthenticity = Math.max(dials.mediaAuthenticity, 8);
401
+ dials.contentPersuasion = Math.max(dials.contentPersuasion, 7);
402
+ }
403
+
404
+ if (tokens.has("regulated") || tokens.has("public") || tokens.has("government") || tokens.has("accessibility")) {
405
+ dials.visualTension = Math.min(dials.visualTension, 3);
406
+ dials.motionIntensity = Math.min(dials.motionIntensity, 2);
407
+ dials.informationDensity = Math.max(dials.informationDensity, 5);
408
+ }
409
+
410
+ return dials;
411
+ }
412
+
413
+ /**
414
+ * @param {ProductRule} product
415
+ * @param {StyleArchetype} style
416
+ * @param {Recommendation["designDials"]} dials
417
+ * @returns {string}
418
+ */
419
+ function renderDesignRead(product, style, dials) {
420
+ return [
421
+ `Reading this as ${product.label ?? labelFromId(product.id)} work`,
422
+ `with a ${style.label ?? labelFromId(style.id)} visual direction`,
423
+ `and dial targets ${dials.visualTension}/${dials.motionIntensity}/${dials.informationDensity}/${dials.mediaAuthenticity}/${dials.contentPersuasion}`,
424
+ ].join(", ");
425
+ }
426
+
427
+ /**
428
+ * @param {Set<string>} tokens
429
+ * @param {ProductRule} product
430
+ * @returns {boolean}
431
+ */
432
+ function isPromotional(tokens, product) {
433
+ return product.id === "creative"
434
+ || product.id === "ecommerce"
435
+ || tokens.has("landing")
436
+ || tokens.has("marketing")
437
+ || tokens.has("portfolio")
438
+ || tokens.has("brand")
439
+ || tokens.has("website")
440
+ || tokens.has("hero");
441
+ }
442
+
336
443
  /**
337
444
  * @param {string} stack
338
445
  * @param {Set<string>} tokens
@@ -364,10 +471,19 @@ function renderMarkdown(model) {
364
471
  const lines = [
365
472
  `# Design System Recommendation: ${model.project}`,
366
473
  "",
474
+ `- Design read: ${model.designRead}`,
367
475
  `- Product category: ${model.product.label} (${model.product.id})`,
368
476
  `- Recommended pattern: ${model.product.pattern}`,
369
477
  `- Style archetype: ${model.style.label} (${model.style.id})`,
370
478
  "",
479
+ "## Design Dials",
480
+ "",
481
+ `- Visual tension: ${model.designDials.visualTension}/10`,
482
+ `- Motion intensity: ${model.designDials.motionIntensity}/10`,
483
+ `- Information density: ${model.designDials.informationDensity}/10`,
484
+ `- Media authenticity: ${model.designDials.mediaAuthenticity}/10`,
485
+ `- Content persuasion: ${model.designDials.contentPersuasion}/10`,
486
+ "",
371
487
  "## Token Direction",
372
488
  "",
373
489
  `- Color: ${model.tokens.color}`,
@@ -416,10 +532,12 @@ function renderPageOverride(model) {
416
532
  "## Page Intent",
417
533
  "",
418
534
  `Use the Master direction, then adapt layout and component density for ${pageName}. Keep overrides narrow and delete any rule that merely repeats the Master.`,
535
+ `Design read: ${model.designRead}.`,
419
536
  "",
420
537
  "## Override Strategy",
421
538
  "",
422
539
  `- Primary pattern: ${model.product.pattern}`,
540
+ `- Dials: visual ${model.designDials.visualTension}/10, motion ${model.designDials.motionIntensity}/10, density ${model.designDials.informationDensity}/10, media ${model.designDials.mediaAuthenticity}/10, persuasion ${model.designDials.contentPersuasion}/10`,
423
541
  `- Visual emphasis: ${model.style.usage}`,
424
542
  `- Chart behavior: ${model.chart}`,
425
543
  "",
@@ -1,51 +1,51 @@
1
1
  ---
2
2
  name: fec-validation-fix
3
- description: Use when running existing project validation commands and fixing failures after code changes, including lint, type-check, unit/integration test, build, CI, or local script failures. Do not use when the task is to design or author new component/E2E tests; Chinese triggers include 验证, 检查失败, 修复失败, CI 失败.
3
+ description: Use when running existing project validation commands and fixing failures after code changes, including lint, type-check, unit/integration test, build, CI, or local script failures. Do not use when the task is to design or author new component/E2E tests; Chinese triggers include validation, check failures, fix failures, CI failures.
4
4
  ---
5
5
 
6
- # 验证并修复
6
+ # Verify and fix
7
7
 
8
8
  ## Purpose
9
9
 
10
- 自动化执行已有验证命令,分析失败原因并安全修复,确保质量门禁达标。
10
+ Automatically execute existing verification commands, analyze the reasons for failure and safely repair them to ensure that quality access control meets standards.
11
11
 
12
12
  ## Procedure
13
13
 
14
- 1. 从 package.json 或仓库文档中识别可用命令。
15
- 2. 优先按以下顺序执行:
14
+ 1. Identify available commands from package.json or repository documentation.
15
+ 2. Prioritize execution in the following order:
16
16
  - lint
17
17
  - type-check
18
18
  - unit/integration tests
19
19
  - build
20
- 3. 仔细阅读失败输出。
21
- 4. 将错误按文件、错误类型和依赖关系分组,优先处理阻塞后续诊断的根因。
22
- 5. 一次只修复一类问题,并显示或记录关键错误上下文。
23
- 6. 每次关键修复后重新执行受影响命令,确认错误是否减少。
24
- 7. 如果同一错误连续三次修复仍失败,停止扩大改动并报告阻塞。
25
- 8. 最后按 `Expected Output` 总结执行结果、修复内容和剩余风险。
20
+ 3. Read the failure output carefully.
21
+ 4. Group errors by file, error type and dependency, prioritizing root causes that block subsequent diagnosis.
22
+ 5. Fix one type of problem at a time and display or log critical error context.
23
+ 6. After each critical repair, re-execute the affected command to confirm whether the error is reduced.
24
+ 7. If the same error still fails to be repaired three times in a row, stop expanding changes and report blocking.
25
+ 8. Finally, press `Expected Output` to summarize the execution results, repair content and remaining risks.
26
26
 
27
27
  ## Failure Triage
28
28
 
29
- - 先修最早出现且会级联的错误,例如缺失类型、导入失败、配置解析失败。
30
- - 区分真实产品 bug、测试环境问题、快照漂移、依赖版本变化和 flaky。
31
- - 对 CI 专属失败记录 Node 版本、包管理器、环境变量、路径大小写和工作目录差异。
32
- - 修复测试时优先修产品代码或测试等待方式,不用删除断言掩盖真实回归。
29
+ - Fix the earliest errors that will cascade first, such as missing types, import failures, and configuration parsing failures.
30
+ - Differentiate between real product bugs, test environment issues, snapshot drift, dependency version changes and flaky.
31
+ - Log Node version, package manager, environment variables, path case, and working directory differences for CI-specific failures.
32
+ - When fixing tests, give priority to fixing product code or testing waiting methods, instead of deleting assertions to cover up real regressions.
33
33
 
34
34
  ## Constraints
35
35
 
36
- - 不要盲目关闭规则来消除报错
37
- - 除非有明确理由,不要为了通过检查而降低类型安全
38
- - 不要因为附近测试失败就顺手重写无关模块
39
- - 不要一次性修改多个无关根因
40
- - 不要删除失败测试来让验证通过
41
- - 不要只运行失败命令的片段就声称整体验证通过
36
+ - Do not blindly turn off rules to eliminate errors
37
+ - Don't compromise type safety to pass checks unless there is a clear reason to do so
38
+ - Don’t rewrite irrelevant modules just because a nearby test fails
39
+ - Do not modify multiple irrelevant root causes at once
40
+ - Don't remove failing tests to make validation pass
41
+ - Don't just run a fragment of the failed command and claim that the overall validation passed
42
42
 
43
- ## 详细参考
43
+ ## Detailed reference
44
44
 
45
- 撰写验证修复报告时,加载 [references/report-template.md](references/report-template.md)。
45
+ When writing a verification fix report, load [references/report-template.md](references/report-template.md).
46
46
 
47
47
  ## Expected Output
48
48
 
49
- - lint / type-check / test / build 等验证命令全部通过
50
- - 失败项已修复或给出明确原因和后续行动
51
- - 修复报告保存为 `reports/validation-fix-YYYY-MM-DD-HHmmss.md`
49
+ - All verification commands such as lint/type-check/test/build passed
50
+ - Failed items have been fixed or given clear reasons and follow-up actions
51
+ - The fix report is saved as `reports/validation-fix-YYYY-MM-DD-HHmmss.md`
@@ -1,43 +1,43 @@
1
- # 验证修复报告模板
1
+ # Verify repair report template
2
2
 
3
3
  ```markdown
4
- # 验证修复报告
4
+ # Verify repair report
5
5
 
6
- > 生成时间: YYYY-MM-DD HH:mm
7
- > 验证范围: lint / type-check / test / build / CI
6
+ > Generation time: YYYY-MM-DD HH:mm
7
+ > Verification scope: lint/type-check/test/build/CI
8
8
 
9
- ## 命令状态表
9
+ ## Command status table
10
10
 
11
- | 命令 | 初始状态 | 修复后状态 | 备注 |
11
+ | Command | Initial state | Repaired state | Remarks |
12
12
  | --- | --- | --- | --- |
13
- | `npm run type-check` | 失败 / 通过 / 未运行 | 失败 / 通过 / 未运行 | ... |
13
+ | `npm run type-check` | failed/passed/didn’t run | failed/passed/didn’t run | ... |
14
14
 
15
- ## 失败摘要
15
+ ## Failure summary
16
16
 
17
- - 最早出现且会级联的错误
18
- - 受影响文件、错误类型和关键日志
19
- - 是否属于 CI 专属、测试环境、依赖版本或 flaky 问题
17
+ - Errors that occur earliest and cascade
18
+ - Affected files, error types and critical logs
19
+ - Whether it is CI exclusive, test environment, dependent version or flaky issue
20
20
 
21
- ## 根因
21
+ ## Root cause
22
22
 
23
- - 确认的根本原因
24
- - 支持该结论的输出、日志或复现证据
23
+ - Confirmed root cause
24
+ - Output, logs, or reproduction evidence to support the conclusion
25
25
 
26
- ## 修复内容
26
+ ## Fix content
27
27
 
28
- - 修改的文件和行为
29
- - 为什么没有通过关闭规则、删除断言或降低类型安全来规避失败
28
+ - Modified files and behavior
29
+ - Why the failure was not circumvented by turning off rules, removing assertions, or reducing type safety
30
30
 
31
- ## 验证结果
31
+ ## Verification results
32
32
 
33
- - 重新执行的命令
34
- - 命令输出摘要
35
- - 是否仍有失败项
33
+ - Command to re-execute
34
+ - Summary of command output
35
+ - Are there still failed items?
36
36
 
37
- ## 剩余风险
37
+ ## Residual risk
38
38
 
39
- - 未覆盖的验证命令
40
- - 仍需用户决策或外部环境确认的问题
39
+ - Uncovered verification commands
40
+ - Issues that still require user decision-making or external environment confirmation
41
41
  ```
42
42
 
43
- 验证修复完成后,将报告保存到 `reports/validation-fix-YYYY-MM-DD-HHmmss.md`,并告知用户报告路径。
43
+ After the verification fix is completed, save the report to `reports/validation-fix-YYYY-MM-DD-HHmmss.md` and inform the user of the report path.
@@ -1,44 +1,44 @@
1
1
  ---
2
2
  name: fec-vite-project-standard
3
- description: Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for React/Vue component architecture; Chinese triggers include Vite 配置, vite.config, Vite 构建, Vite 性能.
3
+ description: Use when creating, configuring, reviewing, or debugging Vite-based frontend projects, vite.config.ts, env variables, dev server proxy, HMR, plugin ordering, library mode, dependency pre-bundling, bundle splitting, or Vite build performance. Use framework-specific skills for React/Vue component architecture; Chinese triggers include Vite configuration, vite.config, Vite build, Vite performance.
4
4
  ---
5
5
 
6
- # Vite 项目规范
6
+ # Vite Project Specifications
7
7
 
8
- 适用于 Vite 应用、组件库、开发服务器和构建配置的设计与审查。
8
+ Design and review of Vite applications, component libraries, development servers, and build configurations.
9
9
 
10
10
  ## Purpose
11
11
 
12
- 规范 Vite 配置、安全边界和构建性能,避免开发环境与生产构建的常见陷阱。
12
+ Standardize Vite configurations, security boundaries, and build performance to avoid common pitfalls of development environments and production builds.
13
13
 
14
14
  ## Procedure
15
15
 
16
- 1. 识别项目类型
17
- - 应用项目优先检查 `root`、`base`、`server.proxy`、`envPrefix`、`build` 和框架插件。
18
- - 组件库项目优先检查 `build.lib`、类型产物、peer dependencies external 和导出入口。
19
- - Monorepo 额外检查 `server.fs.allow`、路径别名和包依赖边界。
20
-
21
- 2. 选择插件
22
- - React 默认优先 `@vitejs/plugin-react-swc`;需要 Babel 插件时才用 `@vitejs/plugin-react`。
23
- - Vue 项目使用 `@vitejs/plugin-vue`,路径别名优先交给 `vite-tsconfig-paths`。
24
- - TypeScript 项目必须通过 `tsc --noEmit`、CI 或 `vite-plugin-checker` 补齐类型检查。
25
-
26
- 3. 管理环境变量
27
- - 客户端只读取明确公开的前缀,如 `VITE_`。
28
- - `loadEnv` 第三个参数使用显式前缀数组,不使用空字符串加载全部变量。
29
- - 密钥、数据库地址、私有 token 必须留在服务端或构建系统,不进入客户端 bundle。
30
-
31
- 4. 优化开发体验
32
- - 慢启动先用 `vite --profile` 定位插件、解析或预构建瓶颈。
33
- - 对 CJS/UMD 依赖用 `optimizeDeps.include` 处理互操作问题。
34
- - 大项目可用 `server.warmup.clientFiles` 预热核心入口。
35
-
36
- 5. 优化生产构建
37
- - 发布前运行 `vite build`,并用 `vite preview` 做本地构建烟测。
38
- - 手动分包使用稳定的对象形式优先,避免把每个依赖拆成独立小 chunk。
39
- - 生产 sourcemap 默认关闭;若上传错误追踪平台,上传后不随站点公开。
40
- - 动效、3D、图表、编辑器、地图和音视频处理库优先通过动态导入或路由级拆包隔离。
41
- - 检查静态资源是否进入正确目录、是否被 hash/cache、是否存在占位 URL 或过大的未压缩媒体。
16
+ 1. Identify the project type
17
+ - Application projects check `root`, `base`, `server.proxy`, `envPrefix`, `build` and framework plugins first.
18
+ - Component library projects check `build.lib`, type products, peer dependencies external and export entries first.
19
+ - Monorepo additional checks for `server.fs.allow`, path aliases and package dependency boundaries.
20
+
21
+ 2. Select plugin
22
+ - React gives priority to `@vitejs/plugin-react-swc` by default; use `@vitejs/plugin-react` only when the Babel plug-in is required.
23
+ - The Vue project uses `@vitejs/plugin-vue`, and path aliases are given priority to `vite-tsconfig-paths`.
24
+ - TypeScript projects must complete type checking via `tsc --noEmit`, CI or `vite-plugin-checker`.
25
+
26
+ 3. Manage environment variables
27
+ - Clients only read explicitly exposed prefixes, such as `VITE_`.
28
+ - The third parameter of `loadEnv` uses an explicit prefix array and does not use an empty string to load all variables.
29
+ - Keys, database addresses, and private tokens must stay on the server or build system and not enter the client bundle.
30
+
31
+ 4. Optimize development experience
32
+ - Use `vite --profile` to locate plug-in, parsing or pre-built bottlenecks before slow start.
33
+ - Use `optimizeDeps.include` for CJS/UMD dependencies to handle interop issues.
34
+ - Large projects can use `server.warmup.clientFiles` to warm up the core entrance.
35
+
36
+ 5. Optimize production builds
37
+ - Run `vite build` before release and use `vite preview` to do local build smoke testing.
38
+ - Prioritize manual subcontracting by using stable object forms to avoid splitting each dependency into independent small chunks.
39
+ - The production sourcemap is turned off by default; if uploaded to the error tracking platform, it will not be published with the site after uploading.
40
+ - Motion effects, 3D, charts, editors, maps, and audio and video processing libraries are prioritized for isolation through dynamic import or route-level unpacking.
41
+ - Check whether static resources go into the correct directory, have been hashed/cache, have placeholder URLs, or are too large uncompressed media.
42
42
 
43
43
  ## Minimal Config
44
44
 
@@ -69,15 +69,15 @@ export default defineConfig(({ mode }) => {
69
69
 
70
70
  ## Constraints
71
71
 
72
- - `vite build` 只转译和打包,不等于类型检查;CI 必须另跑 typecheck。
73
- - `VITE_` 不是安全边界;任何 `VITE_` 变量都会进入客户端包。
74
- - 不设置 `envPrefix: ""`,不使用 `loadEnv(mode, root, "")` 后再随意 `define`。
75
- - 不默认引入 legacy 插件;只有真实用户数据需要时再启用。
76
- - 不用 `vite preview` 作为生产服务器。
77
- - 组件库必须 externalize peer dependencies,并单独产出 `.d.ts`。
78
- - 不把服务端密钥通过 `define`、`import.meta.env` 或空前缀 `loadEnv` 注入客户端。
79
- - 不把 GSAP、Three.js、Lottie、Monaco、地图 SDK 等重型库放进所有页面共享入口;先评估 async chunk 和首屏影响。
72
+ - `vite build` only translates and packages, not type checking; CI must run typecheck separately.
73
+ - `VITE_` is not a security boundary; any `VITE_` variable goes into the client package.
74
+ - Do not set `envPrefix: ""`, do not use `loadEnv(mode, root, "")` and then `define` at will.
75
+ - Legacy plugins are not introduced by default; only enable them when needed for real user data.
76
+ - Don't use `vite preview` as a production server.
77
+ - Component libraries must externalize peer dependencies and produce `.d.ts` separately.
78
+ - Do not inject server keys into clients via `define`, `import.meta.env` or empty prefix `loadEnv`.
79
+ - Do not put heavy libraries such as GSAP, Three.js, Lottie, Monaco, and Map SDK into all page sharing entries; first evaluate the impact of async chunk and first screen.
80
80
 
81
81
  ## Expected Output
82
82
 
83
- 输出应包含项目类型判断、关键配置变更、环境变量安全说明、构建/开发性能验证方式。完成后 Vite 配置应可类型检查、可构建、密钥不泄露,并能解释 dev 与 build 的差异。
83
+ The output should include project type judgment, key configuration changes, environment variable security instructions, and build/development performance verification methods. When completed, the Vite configuration should be type-checked, buildable, secret-secure, and explain the differences between dev and build.
@@ -1,49 +1,58 @@
1
1
  ---
2
2
  name: fec-vue3-project-standard
3
- description: Use when designing or reviewing Vue 3 + TypeScript project structure, SFC/component boundaries, composables organization, route composition, Pinia ownership, API/error/styling defaults, directives, or repository-wide Vue conventions. Prefer narrower skills for forms, data fetching, tests, accessibility, virtualization, animation, or security deep dives; Chinese triggers include Vue 3 项目规范, Vue 组件架构.
3
+ description: Use when designing or reviewing Vue 3 + TypeScript project structure, SFC/component boundaries, composables organization, route composition, Pinia ownership, API/error/styling defaults, directives, or repository-wide Vue conventions. Prefer narrower skills for forms, data fetching, tests, accessibility, virtualization, animation, or security deep dives; Chinese triggers include Vue 3 project specification, Vue component architecture.
4
4
  ---
5
5
 
6
- # Vue 3 项目规范
6
+ # Vue 3 project specifications
7
7
 
8
- 适用于使用 Vue 3 + TypeScript 的仓库。
8
+ For repositories using Vue 3 + TypeScript.
9
9
 
10
10
  ## Purpose
11
11
 
12
- 为 Vue 3 + TypeScript 项目提供工程结构、组件边界、Composables 和默认实现约定,确保约定式开发和类型安全。
12
+ Provides project structure, component boundaries, Composables, and default implementation conventions for Vue 3 + TypeScript projects to ensure conventional development and type safety.
13
13
 
14
14
  ## Procedure
15
15
 
16
- 1. 识别仓库已有 Vue 约定:目录、路由、Pinia、请求层、样式体系、组件库和测试框架。
17
- 2. 划分页面、业务组件、通用组件、composables、stores、services 和 utils 的边界。
18
- 3. 优先沿用 `<script setup lang="ts">`、组合式 API 和仓库现有自动导入/模块出口约定。
19
- 4. 输出时补齐状态归属、API 层、错误处理、样式隔离和专项 skill 分流。
20
- 5. 页面和模块要有可恢复错误 UI;全局 `errorHandler`、`onErrorCaptured`、请求错误映射和路由错误页分工明确。
21
- 6. Tailwind token/variant 或响应式布局需求应分流到对应专项 skill,避免把样式系统规则塞进 Vue 组件规范。
22
- 5. 状态归属复杂时先做状态清单;DTO、公共 props 或泛型 composable 复杂时先收敛 TypeScript 类型契约。
16
+ 1. Identify the existing Vue conventions in the warehouse: directory, routing, Pinia, request layer, style system, component library and test framework.
17
+ 2. Demarcate the boundaries between pages, business components, common components, composables, stores, services and utils.
18
+ 3. Prioritize the existing automatic import/module export conventions of `<script setup lang="ts">`, composite API and warehouse.
19
+ 4. Complete state ownership, API layer, error handling, style isolation and special skill offloading when outputting.
20
+ 5. Pages and modules must have recoverable error UI; global `errorHandler`, `onErrorCaptured`, request error mapping and routing error page have clear division of labor.
21
+ 6. Tailwind token/variant or responsive layout requirements should be diverted to corresponding special skills to avoid stuffing style system rules into Vue component specifications.
22
+ 7. When the state ownership is complex, first make a state list; when the boundaries of DTO, public props, generic composable or `tsconfig` are complex, first use the TypeScript project specification process to converge cross-framework type contracts.
23
+ 8. When designing reusable composables, clarify whether the input supports plain value, ref, computed or getter; when testing Vue components, cover the common boundaries of Pinia, Router, Teleport, Suspense and async setup.
23
24
 
24
- ## 详细参考
25
+ ## Detailed reference
25
26
 
26
- 需要具体 Vue 3 项目结构、组件模式、Composables、slots、Provide/Inject、路由、Pinia、API 层、错误处理、指令、样式、TypeScript、测试、性能或审查清单时,加载 [references/vue3-project-details.md](references/vue3-project-details.md)。
27
+ Load more detailed reference files as needed:
28
+
29
+ - Project directory, component layering, component specifications, annotations, and TypeScript: Load [references/vue3-project-structure.md](references/vue3-project-structure.md).
30
+ - Composables, slots, Provide/Inject and routing organizations: Load [references/vue3-composables-routing.md](references/vue3-composables-routing.md).
31
+ - Pinia, API layer, error handling, directives, styles, tests, anti-patterns and output checklist: Loading [references/vue3-state-api-quality.md](references/vue3-state-api-quality.md).
32
+ - Lightweight performance conventions at the Vue project specification level: Load [references/vue3-performance-patterns.md](references/vue3-performance-patterns.md).
27
33
 
28
34
  ## Constraints
29
35
 
30
- - 使用 `<script setup lang="ts">`,禁止使用 Options API 新增组件
31
- - 组件文件规模宜约 **300 行**内;逾 **500 行**或复杂度过高须拆子组件与 Composables
32
- - Props / Emits 必须使用 TypeScript interface 定义,禁止使用 `any`
33
- - Composable 返回 `readonly` 引用,防止外部意外修改
34
- - 不要在 store 中存放 UI 临时状态(modal 开关、表单输入等)
35
- - 服务端数据优先用请求库管理,而非手动存入 Pinia
36
- - 避免在 `v-for` 中使用 `v-if`(提取为 computed 过滤)
37
- - 禁止直接从 feature 内部深层路径导入,绕过 `index.ts`
38
- - 不用全局错误处理吞掉组件内可恢复的 API、表单或权限错误。
36
+ - Use `<script setup lang="ts">` to disable using Options API to add new components
37
+ - The size of the component file should be approximately **300 lines**; if it exceeds **500 lines** or is too complex, sub-components and Composables must be separated
38
+ - Props / Emits must be defined using the TypeScript interface, and `any` is prohibited
39
+ - Composable returns a `readonly` reference to prevent accidental external modifications
40
+ - Do not store UI temporary states (modal switches, form inputs, etc.) in the store
41
+ - Server-side data is first managed by the request library rather than manually stored in Pinia
42
+ - Avoid using `v-if` in `v-for` (extract to computed filtering)
43
+ - It is forbidden to import directly from the deep path inside the feature, bypassing `index.ts`
44
+ - No need for global error handling to swallow recoverable API, form or permission errors within components.
45
+ - Do not mistake function parameters for getter automatic calls; if composable parameters may be callbacks, avoid using getter input conventions.
46
+ - Do not rely on snapshots as the only assertions for Vue components; asynchronous components, Teleport and Pinia scenes must have user-visible behavior assertions.
39
47
 
40
48
  ## Expected Output
41
49
 
42
- - 组件使用 `<script setup lang="ts">`,Props / Emits 类型完整
43
- - 可复用逻辑已提取到 composable,返回 `readonly` 引用
44
- - Loading / Error / Empty / Data 状态均已处理
45
- - 路由组件使用动态 import 加载,状态管理符合就近原则
46
- - URL 状态、服务端状态、表单状态和 Pinia 全局状态边界明确
47
- - API 调用有类型约束和统一错误处理
48
- - 样式使用 scoped 隔离,关键行为有测试覆盖
49
- - 文件结构与项目约定一致(pages / features / components 分离)
50
+ - The component uses `<script setup lang="ts">`, and the Props/Emits type is complete
51
+ - Reusable logic has been extracted to composable, returning `readonly` reference
52
+ - Loading / Error / Empty / Data status have been processed
53
+ - Routing components are loaded using dynamic import, and state management conforms to the proximity principle
54
+ - URL status, server status, form status and Pinia global status have clear boundaries
55
+ - API calls have type constraints and unified error handling
56
+ - Styles are isolated using scoped, and key behaviors are covered by tests
57
+ - The file structure is consistent with the project convention (pages/features/components are separated)
58
+ - Input responsiveness, Pinia/Router boundaries and asynchronous component testing strategies for reusable composables explained