@bovinphang/frontend-craft 2.7.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 (380) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +34 -0
  4. package/CHANGELOG.zh-CN.md +34 -0
  5. package/README.md +1 -1
  6. package/README.openclaw.md +99 -43
  7. package/README.openclaw.zh-CN.md +99 -43
  8. package/README.zh-CN.md +1 -1
  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 +87 -87
  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 +3 -0
  32. package/docs/ja-JP/README.md +1 -1
  33. package/docs/ko-KR/README.md +1 -1
  34. package/docs/project-structure.md +13 -5
  35. package/docs/zh-CN/example-prompts.md +3 -0
  36. package/docs/zh-CN/project-structure.md +6 -1
  37. package/docs/zh-TW/README.md +1 -1
  38. package/localized/zh-CN/agents/fec-architect.md +125 -0
  39. package/localized/zh-CN/agents/fec-code-reviewer.md +152 -0
  40. package/localized/zh-CN/agents/fec-debugger.md +44 -0
  41. package/localized/zh-CN/agents/fec-design-token-mapper.md +75 -0
  42. package/localized/zh-CN/agents/fec-doc-updater.md +30 -0
  43. package/localized/zh-CN/agents/fec-e2e-runner.md +107 -0
  44. package/localized/zh-CN/agents/fec-figma-implementer.md +104 -0
  45. package/localized/zh-CN/agents/fec-performance-optimizer.md +293 -0
  46. package/localized/zh-CN/agents/fec-refactor-cleaner.md +32 -0
  47. package/localized/zh-CN/agents/fec-security-reviewer.md +116 -0
  48. package/localized/zh-CN/agents/fec-test-planner.md +50 -0
  49. package/localized/zh-CN/agents/fec-typescript-reviewer.md +142 -0
  50. package/localized/zh-CN/agents/fec-ui-checker.md +120 -0
  51. package/localized/zh-CN/commands/fec-debug.md +30 -0
  52. package/localized/zh-CN/commands/fec-doc-sync.md +19 -0
  53. package/localized/zh-CN/commands/fec-init.md +70 -0
  54. package/localized/zh-CN/commands/fec-plan.md +94 -0
  55. package/localized/zh-CN/commands/fec-refactor-clean.md +19 -0
  56. package/localized/zh-CN/commands/fec-review.md +66 -0
  57. package/localized/zh-CN/commands/fec-scaffold.md +205 -0
  58. package/localized/zh-CN/commands/fec-tdd.md +21 -0
  59. package/localized/zh-CN/skills/TEMPLATE.md +155 -0
  60. package/localized/zh-CN/skills/eval_queries.json +1013 -0
  61. package/localized/zh-CN/skills/fec-accessibility-check/SKILL.md +39 -0
  62. package/localized/zh-CN/skills/fec-accessibility-check/references/report-template.md +23 -0
  63. package/localized/zh-CN/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
  64. package/localized/zh-CN/skills/fec-alchemy/SKILL.md +74 -0
  65. package/localized/zh-CN/skills/fec-alchemy/assets/absorption-plan-template.md +47 -0
  66. package/localized/zh-CN/skills/fec-alchemy/assets/intake-template.md +55 -0
  67. package/localized/zh-CN/skills/fec-alchemy/assets/review-checklist.md +31 -0
  68. package/localized/zh-CN/skills/fec-alchemy/references/methodology.md +94 -0
  69. package/localized/zh-CN/skills/fec-alchemy/references/originality-and-licensing.md +57 -0
  70. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +78 -0
  71. package/localized/zh-CN/skills/fec-api-integration/references/integration-patterns.md +80 -0
  72. package/localized/zh-CN/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
  73. package/localized/zh-CN/skills/fec-browser-storage/SKILL.md +34 -0
  74. package/localized/zh-CN/skills/fec-browser-storage/references/storage-patterns.md +65 -0
  75. package/localized/zh-CN/skills/fec-canvas-threejs/SKILL.md +66 -0
  76. package/localized/zh-CN/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
  77. package/localized/zh-CN/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
  78. package/localized/zh-CN/skills/fec-code-review/SKILL.md +143 -0
  79. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +29 -0
  80. package/localized/zh-CN/skills/fec-component-testing/SKILL.md +119 -0
  81. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +62 -0
  82. package/localized/zh-CN/skills/fec-data-fetching/references/query-patterns.md +103 -0
  83. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +157 -0
  84. package/localized/zh-CN/skills/fec-debug-framework/references/report-template.md +58 -0
  85. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +34 -0
  86. package/localized/zh-CN/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
  87. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +39 -0
  88. package/localized/zh-CN/skills/fec-drawio-studio/SKILL.md +73 -0
  89. package/localized/zh-CN/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
  90. package/localized/zh-CN/skills/fec-drawio-studio/data/brand-icons.json +878 -0
  91. package/localized/zh-CN/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  92. package/localized/zh-CN/skills/fec-drawio-studio/references/data-residency.md +27 -0
  93. package/localized/zh-CN/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
  94. package/localized/zh-CN/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  95. package/localized/zh-CN/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
  96. package/localized/zh-CN/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
  97. package/localized/zh-CN/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
  98. package/localized/zh-CN/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
  99. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
  100. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
  101. package/localized/zh-CN/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  102. package/localized/zh-CN/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
  103. package/localized/zh-CN/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
  104. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
  105. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
  106. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
  107. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
  108. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
  109. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
  110. package/localized/zh-CN/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
  111. package/localized/zh-CN/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
  112. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
  113. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
  114. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
  115. package/localized/zh-CN/skills/fec-drawio-studio/styles/schema.json +112 -0
  116. package/localized/zh-CN/skills/fec-e2e-testing/SKILL.md +42 -0
  117. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
  118. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
  119. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
  120. package/localized/zh-CN/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
  121. package/localized/zh-CN/skills/fec-form-handling/SKILL.md +76 -0
  122. package/localized/zh-CN/skills/fec-form-handling/references/advanced-form-patterns.md +101 -0
  123. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +80 -0
  124. package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  125. package/localized/zh-CN/skills/fec-image-generation/references/artifact-routing.md +80 -0
  126. package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +74 -0
  127. package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
  128. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +30 -0
  129. package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
  130. package/localized/zh-CN/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  131. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +431 -0
  132. package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
  133. package/localized/zh-CN/skills/fec-implement-from-design/SKILL.md +129 -0
  134. package/localized/zh-CN/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
  135. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/SKILL.md +46 -0
  136. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
  137. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
  138. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
  139. package/localized/zh-CN/skills/fec-legacy-web-standard/SKILL.md +35 -0
  140. package/localized/zh-CN/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
  141. package/localized/zh-CN/skills/fec-list-virtualization/SKILL.md +34 -0
  142. package/localized/zh-CN/skills/fec-list-virtualization/references/virtualization-patterns.md +80 -0
  143. package/localized/zh-CN/skills/fec-monorepo-project-standard/SKILL.md +142 -0
  144. package/localized/zh-CN/skills/fec-motion-interaction/SKILL.md +73 -0
  145. package/localized/zh-CN/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
  146. package/localized/zh-CN/skills/fec-nextjs-project-standard/SKILL.md +123 -0
  147. package/localized/zh-CN/skills/fec-nuxt-project-standard/SKILL.md +122 -0
  148. package/localized/zh-CN/skills/fec-performance-optimization/SKILL.md +80 -0
  149. package/localized/zh-CN/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
  150. package/localized/zh-CN/skills/fec-performance-optimization/references/report-template.md +59 -0
  151. package/localized/zh-CN/skills/fec-pwa-implementation/SKILL.md +35 -0
  152. package/localized/zh-CN/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
  153. package/localized/zh-CN/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
  154. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +91 -0
  155. package/localized/zh-CN/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
  156. package/localized/zh-CN/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
  157. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
  158. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
  159. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +51 -0
  160. package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
  161. package/localized/zh-CN/skills/fec-responsive-layout/SKILL.md +34 -0
  162. package/localized/zh-CN/skills/fec-responsive-layout/references/responsive-layout-patterns.md +70 -0
  163. package/localized/zh-CN/skills/fec-route-protection/SKILL.md +135 -0
  164. package/localized/zh-CN/skills/fec-security-review/SKILL.md +38 -0
  165. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +27 -0
  166. package/localized/zh-CN/skills/fec-security-review/references/security-checklist.md +64 -0
  167. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +87 -0
  168. package/localized/zh-CN/skills/fec-state-management/SKILL.md +140 -0
  169. package/localized/zh-CN/skills/fec-state-management/references/state-patterns.md +109 -0
  170. package/localized/zh-CN/skills/fec-storybook-component-doc/SKILL.md +37 -0
  171. package/localized/zh-CN/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
  172. package/localized/zh-CN/skills/fec-svg-animation/SKILL.md +148 -0
  173. package/localized/zh-CN/skills/fec-tailwind-design-system/SKILL.md +34 -0
  174. package/localized/zh-CN/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +59 -0
  175. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +52 -0
  176. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +45 -0
  177. package/localized/zh-CN/skills/fec-typescript-project-standard/SKILL.md +54 -0
  178. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
  179. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
  180. package/localized/zh-CN/skills/fec-ui-design/SKILL.md +108 -0
  181. package/localized/zh-CN/skills/fec-ui-design/data/product-rules.json +231 -0
  182. package/localized/zh-CN/skills/fec-ui-design/data/stack-ui-rules.json +146 -0
  183. package/localized/zh-CN/skills/fec-ui-design/data/style-archetypes.json +373 -0
  184. package/localized/zh-CN/skills/fec-ui-design/data/ux-quality-rules.json +203 -0
  185. package/localized/zh-CN/skills/fec-ui-design/references/design-intelligence.md +97 -0
  186. package/localized/zh-CN/skills/fec-ui-design/references/master-page-overrides.md +30 -0
  187. package/localized/zh-CN/skills/fec-ui-design/references/pre-delivery-checklist.md +39 -0
  188. package/localized/zh-CN/skills/fec-ui-design/scripts/design-system.mjs +648 -0
  189. package/localized/zh-CN/skills/fec-validation-fix/SKILL.md +51 -0
  190. package/localized/zh-CN/skills/fec-validation-fix/references/report-template.md +43 -0
  191. package/localized/zh-CN/skills/fec-vite-project-standard/SKILL.md +83 -0
  192. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +58 -0
  193. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +162 -0
  194. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
  195. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +176 -0
  196. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
  197. package/localized/zh-CN/skills/fec-web-video-presentation/SKILL.md +61 -0
  198. package/localized/zh-CN/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
  199. package/localized/zh-CN/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
  200. package/localized/zh-CN/skills/fec-web-video-presentation/references/content-plan.md +38 -0
  201. package/localized/zh-CN/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
  202. package/localized/zh-CN/skills/fec-web-video-presentation/references/theme-system.md +36 -0
  203. package/localized/zh-CN/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
  204. package/localized/zh-CN/skills/fec-web-workers/SKILL.md +35 -0
  205. package/localized/zh-CN/skills/fec-web-workers/references/advanced-workers.md +54 -0
  206. package/localized/zh-CN/skills/fec-web-workers/references/basic-worker.md +67 -0
  207. package/localized/zh-CN/skills/metadata.json +1646 -0
  208. package/localized/zh-CN/skills/relations.json +755 -0
  209. package/localized/zh-CN/templates/claude/CLAUDE.md +106 -0
  210. package/localized/zh-CN/templates/claude/settings.json +62 -0
  211. package/localized/zh-CN/templates/codex/AGENTS.md +105 -0
  212. package/localized/zh-CN/templates/codex/config.toml +32 -0
  213. package/localized/zh-CN/templates/openclaw/AGENTS.md +101 -0
  214. package/localized/zh-CN/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
  215. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +54 -0
  216. package/localized/zh-CN/templates/shared/rules/fec-api-layer.md +99 -0
  217. package/localized/zh-CN/templates/shared/rules/fec-ci-cd.md +40 -0
  218. package/localized/zh-CN/templates/shared/rules/fec-code-comments.md +33 -0
  219. package/localized/zh-CN/templates/shared/rules/fec-design-system.md +72 -0
  220. package/localized/zh-CN/templates/shared/rules/fec-error-handling.md +56 -0
  221. package/localized/zh-CN/templates/shared/rules/fec-git-conventions.md +73 -0
  222. package/localized/zh-CN/templates/shared/rules/fec-i18n.md +64 -0
  223. package/localized/zh-CN/templates/shared/rules/fec-naming-conventions.md +120 -0
  224. package/localized/zh-CN/templates/shared/rules/fec-performance.md +101 -0
  225. package/localized/zh-CN/templates/shared/rules/fec-react.md +82 -0
  226. package/localized/zh-CN/templates/shared/rules/fec-refactoring.md +47 -0
  227. package/localized/zh-CN/templates/shared/rules/fec-rendering-patterns.md +40 -0
  228. package/localized/zh-CN/templates/shared/rules/fec-responsive-design.md +50 -0
  229. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +31 -0
  230. package/localized/zh-CN/templates/shared/rules/fec-state-management.md +60 -0
  231. package/localized/zh-CN/templates/shared/rules/fec-testing.md +98 -0
  232. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +112 -0
  233. package/localized/zh-CN/templates/shared/rules/fec-vue.md +64 -0
  234. package/localized/zh-CN/templates/shared/rules/fec-working-modes.md +50 -0
  235. package/openclaw.plugin.json +1 -1
  236. package/package.json +3 -2
  237. package/skills/TEMPLATE.md +74 -74
  238. package/skills/eval_queries.json +678 -678
  239. package/skills/fec-accessibility-check/SKILL.md +21 -21
  240. package/skills/fec-accessibility-check/references/report-template.md +12 -12
  241. package/skills/fec-accessibility-check/references/screen-reader-testing.md +24 -24
  242. package/skills/fec-alchemy/SKILL.md +50 -50
  243. package/skills/fec-alchemy/assets/absorption-plan-template.md +32 -32
  244. package/skills/fec-alchemy/assets/intake-template.md +55 -55
  245. package/skills/fec-alchemy/assets/review-checklist.md +23 -23
  246. package/skills/fec-alchemy/references/methodology.md +66 -66
  247. package/skills/fec-alchemy/references/originality-and-licensing.md +42 -42
  248. package/skills/fec-api-integration/SKILL.md +61 -61
  249. package/skills/fec-api-integration/references/integration-patterns.md +30 -30
  250. package/skills/fec-backend-requirements-handoff/SKILL.md +25 -25
  251. package/skills/fec-browser-storage/SKILL.md +16 -16
  252. package/skills/fec-browser-storage/references/storage-patterns.md +16 -16
  253. package/skills/fec-canvas-threejs/SKILL.md +21 -21
  254. package/skills/fec-canvas-threejs/references/rendering-patterns.md +10 -10
  255. package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +37 -37
  256. package/skills/fec-code-review/SKILL.md +94 -94
  257. package/skills/fec-code-review/references/report-template.md +13 -13
  258. package/skills/fec-component-testing/SKILL.md +39 -39
  259. package/skills/fec-data-fetching/SKILL.md +16 -16
  260. package/skills/fec-data-fetching/references/query-patterns.md +27 -27
  261. package/skills/fec-debug-framework/SKILL.md +95 -95
  262. package/skills/fec-debug-framework/references/report-template.md +34 -34
  263. package/skills/fec-dependency-upgrade/SKILL.md +17 -17
  264. package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +31 -31
  265. package/skills/fec-doc-sync/SKILL.md +23 -23
  266. package/skills/fec-drawio-studio/SKILL.md +42 -38
  267. package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +1 -1
  268. package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  269. package/skills/fec-drawio-studio/references/diagram-patterns.md +19 -0
  270. package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  271. package/skills/fec-drawio-studio/references/layout-and-export.md +18 -3
  272. package/skills/fec-drawio-studio/references/xml-and-mermaid.md +5 -1
  273. package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +62 -0
  274. package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  275. package/skills/fec-drawio-studio/scripts/shape-query.mjs +55 -15
  276. package/skills/fec-e2e-testing/SKILL.md +24 -24
  277. package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +20 -20
  278. package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +10 -10
  279. package/skills/fec-e2e-testing/references/e2e-visual-regression.md +17 -17
  280. package/skills/fec-e2e-testing/references/playwright-patterns.md +6 -6
  281. package/skills/fec-form-handling/SKILL.md +21 -21
  282. package/skills/fec-form-handling/references/advanced-form-patterns.md +41 -41
  283. package/skills/fec-image-generation/SKILL.md +54 -29
  284. package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  285. package/skills/fec-image-generation/references/diagram-workflows.md +33 -2
  286. package/skills/fec-image-generation/references/html-technical-diagrams.md +236 -0
  287. package/skills/fec-image-generation/scripts/export-diagram.mjs +364 -0
  288. package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  289. package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1397 -0
  290. package/skills/fec-implement-from-design/SKILL.md +81 -81
  291. package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
  292. package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -29
  293. package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +81 -81
  294. package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +37 -37
  295. package/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +31 -31
  296. package/skills/fec-legacy-web-standard/SKILL.md +17 -17
  297. package/skills/fec-legacy-web-standard/references/legacy-patterns.md +16 -16
  298. package/skills/fec-list-virtualization/SKILL.md +16 -16
  299. package/skills/fec-list-virtualization/references/virtualization-patterns.md +31 -31
  300. package/skills/fec-monorepo-project-standard/SKILL.md +52 -52
  301. package/skills/fec-motion-interaction/SKILL.md +51 -51
  302. package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
  303. package/skills/fec-nextjs-project-standard/SKILL.md +64 -64
  304. package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
  305. package/skills/fec-performance-optimization/SKILL.md +54 -54
  306. package/skills/fec-performance-optimization/references/framework-performance-patterns.md +23 -23
  307. package/skills/fec-performance-optimization/references/report-template.md +31 -31
  308. package/skills/fec-pwa-implementation/SKILL.md +17 -17
  309. package/skills/fec-pwa-implementation/references/manifest-and-icons.md +12 -12
  310. package/skills/fec-pwa-implementation/references/service-worker-workbox.md +13 -13
  311. package/skills/fec-react-project-standard/SKILL.md +72 -72
  312. package/skills/fec-react-project-standard/references/react-performance-patterns.md +28 -28
  313. package/skills/fec-react-project-standard/references/react-project-structure.md +112 -112
  314. package/skills/fec-react-project-standard/references/react-quality-patterns.md +72 -72
  315. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +94 -94
  316. package/skills/fec-refactor-clean/SKILL.md +30 -30
  317. package/skills/fec-refactor-clean/references/report-template.md +23 -23
  318. package/skills/fec-responsive-layout/SKILL.md +17 -17
  319. package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +37 -37
  320. package/skills/fec-route-protection/SKILL.md +26 -26
  321. package/skills/fec-security-review/SKILL.md +20 -20
  322. package/skills/fec-security-review/references/report-template.md +12 -12
  323. package/skills/fec-security-review/references/security-checklist.md +27 -27
  324. package/skills/fec-source-driven-development/SKILL.md +59 -59
  325. package/skills/fec-state-management/SKILL.md +34 -34
  326. package/skills/fec-state-management/references/state-patterns.md +19 -19
  327. package/skills/fec-storybook-component-doc/SKILL.md +19 -19
  328. package/skills/fec-storybook-component-doc/references/story-patterns.md +12 -12
  329. package/skills/fec-svg-animation/SKILL.md +32 -32
  330. package/skills/fec-tailwind-design-system/SKILL.md +17 -17
  331. package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +36 -36
  332. package/skills/fec-tdd-workflow/SKILL.md +28 -28
  333. package/skills/fec-testing-strategy/SKILL.md +29 -29
  334. package/skills/fec-typescript-project-standard/SKILL.md +38 -38
  335. package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +20 -20
  336. package/skills/fec-typescript-project-standard/references/type-safety.md +18 -18
  337. package/skills/fec-ui-design/SKILL.md +90 -90
  338. package/skills/fec-ui-design/references/design-intelligence.md +61 -61
  339. package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
  340. package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -38
  341. package/skills/fec-validation-fix/SKILL.md +26 -26
  342. package/skills/fec-validation-fix/references/report-template.md +25 -25
  343. package/skills/fec-vite-project-standard/SKILL.md +39 -39
  344. package/skills/fec-vue3-project-standard/SKILL.md +38 -38
  345. package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +36 -36
  346. package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +8 -8
  347. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +112 -112
  348. package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +74 -74
  349. package/skills/fec-web-video-presentation/SKILL.md +33 -33
  350. package/skills/fec-web-workers/SKILL.md +16 -16
  351. package/skills/fec-web-workers/references/advanced-workers.md +13 -13
  352. package/skills/fec-web-workers/references/basic-worker.md +8 -8
  353. package/skills/metadata.json +121 -115
  354. package/skills/relations.json +4 -0
  355. package/templates/claude/CLAUDE.md +60 -60
  356. package/templates/codex/AGENTS.md +76 -76
  357. package/templates/codex/config.toml +4 -4
  358. package/templates/openclaw/AGENTS.md +68 -68
  359. package/templates/openclaw/OPENCLAW-CONFIG.md +8 -8
  360. package/templates/shared/rules/fec-agent-workflow.md +40 -40
  361. package/templates/shared/rules/fec-api-layer.md +52 -52
  362. package/templates/shared/rules/fec-ci-cd.md +29 -29
  363. package/templates/shared/rules/fec-code-comments.md +22 -22
  364. package/templates/shared/rules/fec-design-system.md +53 -53
  365. package/templates/shared/rules/fec-error-handling.md +40 -40
  366. package/templates/shared/rules/fec-git-conventions.md +42 -42
  367. package/templates/shared/rules/fec-i18n.md +48 -48
  368. package/templates/shared/rules/fec-naming-conventions.md +91 -91
  369. package/templates/shared/rules/fec-performance.md +78 -78
  370. package/templates/shared/rules/fec-react.md +58 -58
  371. package/templates/shared/rules/fec-refactoring.md +34 -34
  372. package/templates/shared/rules/fec-rendering-patterns.md +36 -36
  373. package/templates/shared/rules/fec-responsive-design.md +37 -37
  374. package/templates/shared/rules/fec-source-driven-development.md +22 -22
  375. package/templates/shared/rules/fec-state-management.md +56 -56
  376. package/templates/shared/rules/fec-testing.md +64 -64
  377. package/templates/shared/rules/fec-typescript.md +75 -75
  378. package/templates/shared/rules/fec-vue.md +42 -42
  379. package/templates/shared/rules/fec-working-modes.md +34 -34
  380. package/skills/fec-drawio-studio/data/shape-index.json.gz +0 -0
@@ -1,21 +1,21 @@
1
- # 前端性能规则
1
+ # Front-end performance rules
2
2
 
3
- 凡是新增页面、组件、资源加载或数据请求时,都应用本文件。
3
+ This document will be used whenever new pages, components, resource loading or data requests are added.
4
4
 
5
- ## 核心原则
5
+ ## Core Principles
6
6
 
7
- - 默认懒加载,按需加载
8
- - 减少首屏关键资源
9
- - 避免不必要的重渲染
10
- - 关注 Core Web Vitals
11
- - 前端构建必须同时验证开发体验和生产产物,不能只看 dev server 正常
12
- - 在上下文或任务边界不清时,不启动大规模性能重构;先定位瓶颈再改代码
13
- - 对长时间运行的命令保留可回看日志,必要时使用终端会话、CI artifact 或测试报告
14
- - 每项性能建议都要绑定证据、影响范围、验证方式和回退风险
7
+ - Lazy loading by default, loading on demand
8
+ - Reduce key resources on the first screen
9
+ - Avoid unnecessary re-rendering
10
+ - Follow Core Web Vitals
11
+ - The front-end build must verify the development experience and production products at the same time. You cannot just check whether the dev server is normal.
12
+ - Do not initiate large-scale performance refactoring when the context or task boundaries are unclear; locate bottlenecks first and then change the code
13
+ - Keep reviewable logs of long-running commands, using terminal sessions, CI artifacts, or test reports when necessary
14
+ - Each performance recommendation must be bound with evidence, scope of impact, verification methods and rollback risks
15
15
 
16
- ## 代码分割与懒加载
16
+ ## Code splitting and lazy loading
17
17
 
18
- ### 路由级分割
18
+ ### Routing level segmentation
19
19
 
20
20
  ```tsx
21
21
  // React
@@ -25,77 +25,77 @@ const Dashboard = lazy(() => import('./pages/Dashboard'));
25
25
  const Dashboard = () => import('./pages/Dashboard.vue');
26
26
  ```
27
27
 
28
- ### 组件级分割
28
+ ### Component level segmentation
29
29
 
30
- 仅在以下场景使用组件级懒加载:
30
+ Only use component-level lazy loading in the following scenarios:
31
31
 
32
- - 重型第三方库(图表、编辑器、地图)
33
- - 条件渲染的大型模块(如设置面板、高级筛选)
34
- - 不在首屏可视区域的内容
32
+ - Heavy-duty third-party libraries (charts, editors, maps)
33
+ - Large modules for conditional rendering (such as settings panel, advanced filtering)
34
+ - Content that is not in the visible area of the first screen
35
35
 
36
- ## 渲染性能
36
+ ## Rendering performance
37
37
 
38
38
  ### React
39
39
 
40
- - 合理使用 `React.memo` 避免不必要的重渲染
41
- - `useMemo` / `useCallback` 仅在依赖稳定且子组件使用 memo 时才有意义
42
- - 列表渲染必须使用稳定的 `key`
43
- - 避免在渲染函数内创建新对象、数组或函数
40
+ - Use `React.memo` wisely to avoid unnecessary re-rendering
41
+ - `useMemo` / `useCallback` only makes sense if the dependency is stable and the subcomponent uses memo
42
+ - List rendering must use a stable `key`
43
+ - Avoid creating new objects, arrays or functions inside render functions
44
44
 
45
45
  ### Vue
46
46
 
47
- - 使用 `computed` 而非 `watch` + 手动赋值
48
- - 大列表使用虚拟滚动
49
- - 避免在 `v-for` 中使用 `v-if`
50
- - 使用 `shallowRef` / `shallowReactive` 优化大型对象
51
-
52
- ## 资源优化
53
-
54
- - 图片使用 WebP/AVIF 格式,提供适当尺寸
55
- - 图标优先使用 SVG sprite 或 icon font,避免大量独立图片请求
56
- - 字体按需加载,使用 `font-display: swap`
57
- - 第三方依赖按需导入(如 `import { Button } from 'antd'` 而非 `import antd from 'antd'`)
58
-
59
- ## Vite 构建与开发性能
60
-
61
- 使用 Vite 时额外遵守:
62
-
63
- - `vite build` 不做类型检查,CI 必须单独执行 `tsc --noEmit` 或接入 `vite-plugin-checker`
64
- - 慢启动先用 `vite --profile` 定位插件、解析或预构建瓶颈
65
- - 大项目可使用 `server.warmup.clientFiles` 预热核心入口
66
- - CJS/UMD 依赖互操作问题优先通过 `optimizeDeps.include` 处理
67
- - 手动分包优先使用稳定对象形式,不要把每个 `node_modules` 包拆成独立 chunk
68
- - 组件库模式必须 externalize peer dependencies,并单独产出类型声明
69
- - `vite preview` 只用于本地构建烟测,不是生产服务器
70
-
71
- ## 数据请求
72
-
73
- - 避免瀑布式请求(串行依赖),尽可能并行
74
- - 合理使用缓存策略(SWR / React Query / VueQuery)
75
- - 分页加载或虚拟滚动处理大数据集
76
- - 防抖/节流处理高频触发的请求(搜索、滚动)
77
-
78
- ## 检查清单
79
-
80
- - [ ] 是否记录核心路由、设备、网络和当前指标
81
- - [ ] 路由是否按需加载
82
- - [ ] 重型组件是否懒加载
83
- - [ ] 大列表是否使用虚拟滚动或分页
84
- - [ ] 图片是否使用现代格式和合理尺寸
85
- - [ ] 第三方库是否按需导入
86
- - [ ] 是否存在不必要的重渲染
87
- - [ ] Vite 项目是否单独执行 typecheck
88
- - [ ] Vite 构建产物是否经过 `vite build` 和本地预览烟测
89
- - [ ] 是否复查 loading、error、empty、disabled 和移动端状态没有被优化破坏
90
-
91
- ## 反模式
92
-
93
- - 将所有路由打包在一个 chunk 中
94
- - 在首屏加载整个图表库或编辑器
95
- - 在组件内重复创建相同的 API 请求
96
- - 大列表不做虚拟化直接渲染数千行 DOM
97
- - 频繁操作(如输入、滚动)不做防抖/节流
98
- - 认为 `vite build` 通过就代表 TypeScript 没有错误
99
- - 设置 `envPrefix: ""` 或把服务端密钥注入客户端 bundle
100
- - 未先复现卡顿、包体积或 Web Vitals 指标,就做大范围“性能优化”
101
- - 为追求实验室分数删除状态反馈、降低可访问性或牺牲主路径可维护性
47
+ - Use `computed` instead of `watch` + manual assignment
48
+ - Use virtual scrolling for large lists
49
+ - Avoid using `v-if` inside `v-for`
50
+ - Use `shallowRef` / `shallowReactive` to optimize large objects
51
+
52
+ ## Resource optimization
53
+
54
+ - Images use WebP/AVIF format and provide appropriate sizes
55
+ - For icons, use SVG sprite or icon font first to avoid a large number of independent image requests
56
+ - Fonts are loaded on demand, use `font-display: swap`
57
+ - Third-party dependencies are imported on demand (such as `import { Button } from 'antd'` instead of `import antd from 'antd'`)
58
+
59
+ ## Vite build and development performance
60
+
61
+ Additional compliance when using Vite:
62
+
63
+ - `vite build` does not do type checking, CI must execute `tsc --noEmit` separately or access `vite-plugin-checker`
64
+ - Use `vite --profile` to locate plug-in, parsing or pre-built bottlenecks before slow start
65
+ - Large projects can use `server.warmup.clientFiles` to warm up the core entrance
66
+ - CJS/UMD dependency interoperability issues are first handled through `optimizeDeps.include`
67
+ - For manual sub-packaging, use stable object form first, do not split each `node_modules` package into independent chunks
68
+ - Component library mode must externalize peer dependencies and produce type declarations separately
69
+ - `vite preview` is only used for local build smoke tests, not production servers
70
+
71
+ ## Data request
72
+
73
+ - Avoid waterfall requests (serial dependencies), parallelize as much as possible
74
+ - Proper use of caching strategies (SWR/React Query/VueQuery)
75
+ - Paged loading or virtual scrolling for processing large data sets
76
+ - Anti-shake/throttle processing of high-frequency triggered requests (search, scrolling)
77
+
78
+ ## Checklist
79
+
80
+ - [ ] Whether to record core routing, device, network and current metrics
81
+ - [ ] Whether the route is loaded on demand
82
+ - [ ] Whether heavy components are lazy loaded
83
+ - [ ] Whether to use virtual scrolling or paging for large lists
84
+ - [ ] Whether the image uses a modern format and reasonable size
85
+ - [ ] Whether third-party libraries are imported on demand
86
+ - [ ] Whether there is unnecessary re-rendering
87
+ - [ ] Whether the Vite project executes typecheck separately
88
+ - [ ] Whether the Vite build product has passed the `vite build` and local preview smoke tests
89
+ - [ ] Whether to review loading, error, empty, disabled and mobile status are not destroyed by optimization
90
+
91
+ ## Anti-pattern
92
+
93
+ - Pack all routes in one chunk
94
+ - Load the entire chart library or editor on the first screen
95
+ - Create the same API request repeatedly within the component
96
+ - Large lists directly render thousands of lines of DOM without virtualization
97
+ - No anti-shake/throttling for frequent operations (such as input, scrolling)
98
+ - It is considered that passing `vite build` means that TypeScript has no errors
99
+ - Set `envPrefix: ""` or inject the server key into the client bundle
100
+ - Doing extensive “performance optimization” without first reproducing lag, packet size or Web Vitals indicators
101
+ - Remove status feedback, reduce accessibility, or sacrifice main path maintainability in pursuit of lab scores
@@ -1,82 +1,82 @@
1
- # React 规则
1
+ # React rules
2
2
 
3
- 当仓库或目标模块使用 React 时,应用本文件。
3
+ This file applies when the repository or target module uses React.
4
4
 
5
- ## 技术栈
5
+ ## Technology stack
6
6
 
7
- <!-- 请根据项目实际情况修改 -->
7
+ <!-- Please modify according to the actual situation of the project -->
8
8
 
9
- - 框架: React + TypeScript
10
- - 样式: Tailwind CSS + CSS Modules
11
- - 状态管理: Zustand / Redux Toolkit / Jotai(按项目实际选择)
12
- - UI 组件库: 按项目实际选择(如 Ant Design、Material UI 或内部 Design System)
13
- - 版本与依赖:新建模块、补充 `package.json` 或更新本节前,优先采用彼此兼容的主流稳定版本(对齐官方文档、脚手架默认值或包管理器推荐),避免混用已停止维护或与仓库主线 major 不匹配的依赖。
9
+ - Framework: React + TypeScript
10
+ - Style: Tailwind CSS + CSS Modules
11
+ - Status management: Zustand / Redux Toolkit / Jotai (select according to the actual project)
12
+ - UI component library: actual selection by project (such as Ant Design, Material UI or internal Design System)
13
+ - Versions and dependencies: Before creating a new module, supplementing `package.json` or updating this section, give priority to using mainstream stable versions that are compatible with each other (align with official documents, scaffolding defaults or package manager recommendations) to avoid mixing dependencies that have stopped maintaining or do not match the major of the mainline of the warehouse.
14
14
 
15
- ## React 组件规范
15
+ ## React component specification
16
16
 
17
- - 使用**函数组件**、Hooks 与 TypeScript;**不要**新增类组件(含手写 Error Boundary,统一用 `react-error-boundary` 等库)
18
- - 保持组件小而可组合
19
- - 将可复用逻辑提取到 hooks
20
- - props 保持明确且类型清晰
21
- - 保持可访问性与键盘交互
22
- - 优先使用可推导状态,避免重复维护 state
23
- - 在创建新基础组件前,先复用现有设计系统
24
- - 禁止使用 any,优先使用 unknown
25
- - CSS 命名遵循 BEM(CSS Modules 场景)
17
+ - Use **Function Components**, Hooks and TypeScript; **Do not** add new class components (including handwritten Error Boundary, use `react-error-boundary` and other libraries)
18
+ - Keep components small and composable
19
+ - Extract reusable logic into hooks
20
+ - Keep props explicit and clearly typed
21
+ - Maintain accessibility with keyboard interaction
22
+ - Prioritize the use of deducible state to avoid repeated state maintenance
23
+ - Reuse existing design systems before creating new base components
24
+ - It is forbidden to use any, prefer unknown
25
+ - CSS naming follows BEM (CSS Modules scenario)
26
26
 
27
- ## 模式与最佳实践(React)
27
+ ## Patterns and Best Practices (React)
28
28
 
29
- - **组合**:用小组件 + `children`/props 拼装;避免宽布尔 props 与假「继承」。
30
- - **复合组件**:根组件用 Context 向子组件暴露状态;子组件在缺少 Context 时明确报错。
31
- - **Render Props**:仅在需要封装数据态并把渲染交给上层时考虑;多数场景优先自定义 Hook + 普通组件。
32
- - **Context + useReducer**:中等复杂度的多子树客户端状态;勿把高频变化大对象放在顶层 Context;服务端数据用 React Query / SWR。
33
- - **表单**:中大型表单优先 React Hook Form + Zod;避免单文件巨型受控 state。
34
- - **Error Boundary**:关键模块用 **`react-error-boundary`**(或团队统一的同类库)在模块边界兜底;业务组件一律函数式,不手写类组件 Error Boundary。
35
- - **性能**:`useMemo`/`useCallback`/`React.memo` 按需使用;长列表用虚拟列表(如 TanStack Virtual、react-window);昂贵计算注意不可变派生(勿原地 `sort` 原数组)。
36
- - **动效**:Framer Motion 或 CSS transition;尊重 `prefers-reduced-motion`。
37
- - **无障碍**:复合控件补齐 `role`/`aria-*` 与键盘操作;弹窗管理焦点落入与关闭后恢复。
38
- - **Next.js**:App Router 与 Server Components 相关约定以项目 Next 规则为准。
29
+ - **Composition**: Use widgets + `children`/props to assemble; avoid wide boolean props and fake "inheritance".
30
+ - **Composite component**: The root component uses Context to expose state to sub-components; sub-components explicitly report an error when Context is missing.
31
+ - **Render Props**: Only considered when it is necessary to encapsulate the data state and hand over the rendering to the upper layer; in most scenarios, custom Hook + ordinary components are given priority.
32
+ - **Context + useReducer**: Medium complexity multi-subtree client state; do not put high-frequency changing large objects in the top-level Context; use React Query / SWR for server-side data.
33
+ - **Form**: Prioritize medium and large forms with React Hook Form + Zod; avoid single-file giant controlled state.
34
+ - **Error Boundary**: Key modules use **`react-error-boundary`** (or a similar library unified by the team) to cover the module boundaries; business components must be functional, and no handwritten class components Error Boundary.
35
+ - **Performance**: Use `useMemo`/`useCallback`/`React.memo` on demand; use virtual lists for long lists (such as TanStack Virtual, react-window); pay attention to immutable derivation for expensive calculations (do not `sort` the original array in place).
36
+ - **Motion**: Framer Motion or CSS transition; respect `prefers-reduced-motion`.
37
+ - **Accessibility**: Compound controls complement `role`/`aria-*` and keyboard operations; pop-up window management focus is dropped and restored after closing.
38
+ - **Next.js**: The relevant agreements between App Router and Server Components are subject to the project Next rules.
39
39
 
40
- ## React 实现指导
40
+ ## React Implementation Guide
41
41
 
42
- 创建新组件前:
42
+ Before creating a new component:
43
43
 
44
- 1. 先搜索是否已存在等价组件
45
- 2. 判断逻辑是否应该放入自定义 hook
46
- 3. 与项目当前样式方案保持一致
44
+ 1. First search whether equivalent components already exist
45
+ 2. Determine whether the logic should be put into a custom hook
46
+ 3. Be consistent with the current style scheme of the project
47
47
 
48
- 编辑 React 组件时:
48
+ When editing a React component:
49
49
 
50
- - 避免在同一个文件里混合数据请求、重业务逻辑和展示逻辑
51
- - 避免设计过宽或语义不清的 props API
52
- - 对局部问题避免滥用 context
53
- - 保持条件渲染可读,必要时提取重复分支
50
+ - Avoid mixing data requests, heavy business logic and presentation logic in the same file
51
+ - Avoid designing props APIs that are too broad or have unclear semantics
52
+ - Avoid abusing context for local problems
53
+ - Keep conditional rendering readable and extract duplicate branches if necessary
54
54
 
55
- ## React 文件组织
55
+ ## React file organization
56
56
 
57
- 优先遵循仓库已有约定。
58
- 常见输出可能包括:
57
+ Priority is given to following existing agreements in the warehouse.
58
+ Common output may include:
59
59
 
60
60
  - `Component.tsx`
61
61
  - `Component.types.ts`
62
62
  - `hooks/useComponentLogic.ts`
63
- - `ComponentName.styles.css`(普通 CSS / CSS Modules;使用 styled-components 时为 `ComponentName.styles.ts`)
64
- - 如果仓库采用就近测试,则补充测试文件,如:`__tests__/Component.spec.tsx`
63
+ - `ComponentName.styles.css` (plain CSS / CSS Modules; `ComponentName.styles.ts` when using styled-components)
64
+ - If the warehouse uses nearby testing, add test files, such as: `__tests__/Component.spec.tsx`
65
65
 
66
- ## 组件文件规模
66
+ ## Component file size
67
67
 
68
- - 单个组件文件保持**职责单一**、语义清晰、易于维护。
69
- - **行数参考**:优先将单文件控制在约 **300 行**以内;超过 **500 行**应视为**强烈拆分信号**。
70
- - **未到 500 行也应拆分**的情形:同时存在**复杂状态交织**、**过多副作用**、**JSX 嵌套过深**、**密集条件分支**、数据获取与 UI 长期混在同一文件等,使单文件难以一眼把握时,应拆为**子组件**、**自定义 Hooks**、**工具函数**、**常量**与**类型定义**等独立单元(目录与命名仍遵循上文「React 文件组织」)。
68
+ - A single component file maintains a single responsibility, clear semantics, and is easy to maintain.
69
+ - **Line number reference**: Prioritize the single file to be controlled within about **300 lines**; more than **500 lines** should be regarded as a **strong splitting signal**.
70
+ - **Situations that should be split even if it is less than 500 lines**: There are **complex state interleaving**, **too many side effects**, **JSX too deep nesting**, **dense conditional branches**, data acquisition and UI are mixed in the same file for a long time, etc., making it difficult to grasp a single file at a glance. It should be split into independent units such as **subcomponents**, **custom Hooks**, **tool functions**, **constants** and **type definitions** (the directory and naming still follow the "React file organization" above).
71
71
 
72
- ## React 反模式
72
+ ## React anti-patterns
73
73
 
74
- 避免:
74
+ Avoid:
75
75
 
76
- - 新建**类组件**或手写类式 Error Boundary(应使用函数组件 + `react-error-boundary` 等)
77
- - 对可推导值使用多余 state
78
- - 大段 JSX 不拆成子组件
79
- - 单文件堆叠过多职责与行数,**逾 500 行或复杂度已高**仍拒不拆分(参见上文「组件文件规模」)
80
- - 使用不稳定 key
81
- - 在 props 和 hooks 中无理由使用 `any`
82
- - 没有充分理由时引入第二套样式体系
76
+ - Create a new **class component** or handwritten class Error Boundary (function component + `react-error-boundary`, etc. should be used)
77
+ - Use redundant state for derivable values
78
+ - Large sections of JSX are not broken into subcomponents
79
+ - A single file is stacked with too many responsibilities and lines. It exceeds 500 lines or has high complexity and still refuses to be split (see "Component file size" above)
80
+ - Use unstable keys
81
+ - Use `any` in props and hooks without reason
82
+ - Introduce a second style system when there is no good reason
@@ -1,47 +1,47 @@
1
- # 重构项目规则
1
+ # Refactor project rules
2
2
 
3
- 当任务涉及从现有项目重构、迁移或重写前端代码时,应用本文件。
3
+ This document applies when the task involves refactoring, migrating, or rewriting front-end code from an existing project.
4
4
 
5
- ## 目标
5
+ ## Target
6
6
 
7
- - **视觉和交互**:与原项目一致,用户无感知差异
8
- - **代码质量**:更简洁、易维护,符合目标框架规范
9
- - **业务功能**:与原项目保持一致,**不得缺失功能**;重构前后行为等价
7
+ - **Visual and interactive**: consistent with the original project, no perceived difference by users
8
+ - **Code Quality**: more concise, easier to maintain, and in line with the target framework specifications
9
+ - **Business functions**: consistent with the original project, **no missing functions**; behaviors before and after reconstruction are equivalent
10
10
 
11
- ## 图片与图标
11
+ ## Pictures and Icons
12
12
 
13
- - 直接使用原项目的图片资源路径,不重新托管或替换
14
- - 可使用 SVG 图片(`<img src="*.svg" />` 或 CSS `background-image`),**禁止使用内联 SVG**(`<svg>...</svg>` 直接写在组件中)
15
- - **若原项目使用了 iconfont 或 IcoMoon 图标,重构时继续使用**,保持图标体系一致;不替换为其他图标方案
16
- - 图标优先使用原项目已有的图标文件(iconfont / IcoMoon / 已有 SVG),必要时可引入 SVG 文件作为独立资源
13
+ - Directly use the image resource path of the original project without rehosting or replacing it.
14
+ - SVG images (`<img src="*.svg" />` or CSS `background-image`) can be used, **inline SVG is prohibited** (`<svg>...</svg>` written directly in the component)
15
+ - **If the original project uses iconfont or IcoMoon icons, continue to use them** during reconstruction to keep the icon system consistent; do not replace it with other icon schemes
16
+ - For icons, priority is given to using existing icon files in the original project (iconfont / IcoMoon / existing SVG). If necessary, SVG files can be introduced as independent resources
17
17
 
18
- ## 样式
18
+ ## Style
19
19
 
20
- - 布局样式对齐原项目视觉效果,但**只参考原项目效果,不照搬其 CSS**
21
- - 优先使用 **flex 弹性布局**,避免 `float`、复杂 `position`、冗余嵌套
22
- - 避免不合理写法:`!important` 滥用、过深选择器、重复定义
23
- - **组件中禁止使用内联样式**(`style={{ ... }}` / `style="..."`),样式统一放在 CSS Modules、Tailwind 类或样式文件中,便于维护
20
+ - The layout style aligns with the visual effects of the original project, but **only refers to the original project effects and does not copy its CSS**
21
+ - Prioritize the use of **flex elastic layout** to avoid `float`, complex `position`, and redundant nesting
22
+ - Avoid unreasonable writing methods: `!important` abuse, excessively deep selectors, and repeated definitions
23
+ - **Inline styles are prohibited in components** (`style={{ ... }}` / `style="..."`). Styles are unified in CSS Modules, Tailwind classes or style files for easy maintenance.
24
24
 
25
- ## 强约束
25
+ ##Strong constraints
26
26
 
27
- - 业务功能与原项目完整等价,不得缺失
28
- - 图片使用原项目资源,无内联 SVG;若原项目用 iconfont/IcoMoon 则继续使用
29
- - 样式参考原项目效果但不照搬 CSS,优先 flex 布局,无内联样式
30
- - 对公共 API、路由、事件、埋点、权限、缓存和错误状态建立行为清单,重构前后逐项核对
31
- - 涉及页面、组件、路由、表单、弹窗、导航或关键用户流程的迁移,必须使用 Playwright 或同等真实浏览器验证方式对关键路径做对比验证
32
- - 对视觉敏感页面,应补充截图对比或人工截图验收;动态内容、动画、字体和环境差异需明确屏蔽、稳定化或说明
33
- - 对纯逻辑、类型、构建或无 UI 的迁移,不强制 Playwright,应选择更贴近风险的验证层:type-check、unit test、component test、build 或 lint
34
- - 验证目标不是像素级完全一致,而是确认业务功能无缺失、关键交互等价、主要视觉布局无非预期偏差,并且代码比旧实现更清晰、可维护
27
+ - The business functions are completely equivalent to the original project and must not be missing.
28
+ - Images use original project resources, no inline SVG; if the original project uses iconfont/IcoMoon, continue to use it
29
+ - The style refers to the original project effect but does not copy CSS, giving priority to flex layout, no inline style
30
+ - Establish a behavior list for public APIs, routing, events, hidden points, permissions, caches and error status, and check them one by one before and after reconstruction
31
+ - For migrations involving pages, components, routes, forms, pop-ups, navigation or key user processes, Playwright or equivalent real browser verification methods must be used to compare and verify the critical paths.
32
+ - For visually sensitive pages, screenshot comparison or manual screenshot acceptance should be supplemented; dynamic content, animation, fonts and environmental differences need to be clearly blocked, stabilized or explained
33
+ - For pure logic, type, build or no UI migrations, Playwright is not mandatory and a validation layer closer to the risk should be chosen: type-check, unit test, component test, build or lint
34
+ - The verification goal is not to be completely consistent at the pixel level, but to confirm that there are no missing business functions, key interactions are equivalent, there are no unexpected deviations in the main visual layout, and the code is clearer and maintainable than the old implementation.
35
35
 
36
- ## 死代码清理
36
+ ## Dead code cleanup
37
37
 
38
- 清理未使用代码、导出、样式或依赖时:
38
+ When cleaning unused code, exports, styles or dependencies:
39
39
 
40
- - 先建立验证基线,再做清理。
41
- - 使用工具或搜索证据证明候选项无引用。
42
- - 将候选项分为 SAFE、CAUTION、DANGER。
43
- - 仅自动清理 SAFE 项;路由、配置、运行时模板、动态 import 和公开 API 默认视为高风险。
44
- - 每批清理后运行受影响验证命令。
45
- - 若验证失败,先回到最近一批候选项定位,不继续扩大清理范围。
40
+ - Establish a verification baseline first, then clean it up.
41
+ - Use tools or search for evidence that candidates have no citations.
42
+ - Classify candidates into SAFE, CAUTION, and DANGER.
43
+ - Only SAFE items are automatically sanitized; routing, configuration, runtime templates, dynamic imports, and public APIs are considered high risk by default.
44
+ - Run affected verification command after each batch cleanup.
45
+ - If the verification fails, return to the most recent batch of candidates and do not continue to expand the scope of cleaning.
46
46
 
47
- 不要把死代码清理与功能重写、视觉调整或依赖升级混在同一个改动里。
47
+ Don’t mix dead code cleanup with feature rewrites, visual tweaks, or dependency upgrades in the same change.
@@ -1,40 +1,40 @@
1
- # 渲染模式选型
1
+ #Rendering mode selection
2
2
 
3
- 当项目需要选择或评估 CSR / SSR / SSG / ISR / RSC 时,参考本文件。本文只保留跨框架决策约束;Next.js App Router 细节交给 `fec-nextjs-project-standard`,Nuxt 细节交给 `fec-nuxt-project-standard`,性能证据交给 `fec-performance-optimization`。
3
+ Reference this document when a project needs to select or evaluate CSR/SSR/SSG/ISR/RSC. This article only retains cross-framework decision constraints; Next.js App Router details are left to `fec-nextjs-project-standard`, Nuxt details are left to `fec-nuxt-project-standard`, and performance evidence is left to `fec-performance-optimization`.
4
4
 
5
- ## 渲染模式概览
5
+ ## Rendering mode overview
6
6
 
7
- | 模式 | 生成时机 | 典型适用 |
7
+ | Mode | Generation timing | Typical application |
8
8
  | ---- | -------- | -------- |
9
- | CSR | 浏览器运行时 | 登录后后台、内部工具、高交互 SPA |
10
- | SSR | 请求时服务端 | SEO 关键且内容实时的公开页 |
11
- | SSG | 构建时 | 文档、博客、营销页、变化慢的公开内容 |
12
- | ISR | 构建时 + 按需再生成 | 页面数量多、内容更新频繁但允许延迟 |
13
- | RSC | 服务端组件渲染 | Next.js App Router 中需要减少客户端 JS 的场景 |
14
-
15
- ## 选型原则
16
-
17
- - SEO 必须且内容实时:优先 SSR,并明确缓存、超时和错误降级。
18
- - SEO 必须且内容稳定:优先 SSG;页面数量巨大或更新频繁时考虑 ISR。
19
- - 登录后后台、强交互工作区、内部工具:优先 CSR,公开登录/注册页可单独 SSG/SSR。
20
- - 混合产品:公开页与私有页可以采用不同模式,不为统一架构牺牲体验或成本。
21
- - 页面数量、更新频率、服务器成本、部署平台、缓存策略和团队运维能力必须一起评估。
22
- - RSC 只在支持的框架和路由体系中使用;客户端交互、浏览器 API 和高频状态仍放在客户端叶子组件。
23
-
24
- ## 实施约束
25
-
26
- - SSR / RSC 路径不得直接依赖 `window`、`document`、localStorage 或浏览器专属库。
27
- - Hydration 前后的 HTML、时间、随机数、用户偏好和媒体查询结果要保持一致,避免水合不匹配。
28
- - 服务端数据获取必须有超时、错误降级和缓存策略。
29
- - SSG / ISR 需要明确未预渲染路径、revalidate / 失效策略和回滚方式。
30
- - 客户端大型动效库、图表、编辑器、地图、WebGL/Canvas 等应按需加载,不进入根布局同步 bundle。
31
- - 不在没有响应头、构建输出、trace、路由行为或线上指标证据时断言某路由“已缓存”或“必须动态”。
32
-
33
- ## 检查清单
34
-
35
- - [ ] 明确公开页与私有页、SEO 需求和实时性需求。
36
- - [ ] 明确每类页面使用 CSR / SSR / SSG / ISR / RSC 的理由。
37
- - [ ] 评估页面数量、构建时间、服务器成本和缓存失效策略。
38
- - [ ] 检查 SSR/RSC 代码没有浏览器 API 依赖和不可序列化 props。
39
- - [ ] 确认 loading、error、not-found、离线和权限状态不会因渲染模式丢失。
40
- - [ ] 用构建输出、响应头、trace 或路由行为验证最终模式。
9
+ | CSR | Browser runtime | Post-login backend, internal tools, high-interaction SPA |
10
+ | SSR | Server-side on request | SEO-critical and real-time content public page |
11
+ | SSG | Build-time | Documentation, blogs, marketing pages, slow-changing public content |
12
+ | ISR | Build time + regenerate on demand | Large number of pages, frequent content updates but allow for delays |
13
+ | RSC | Server-side component rendering | Scenarios where client-side JS needs to be reduced in Next.js App Router |
14
+
15
+ ## Selection principles
16
+
17
+ - SEO is a must and content is live: Prioritize SSR and be clear about caching, timeouts and error degradation.
18
+ - SEO is required and the content is stable: Prioritize SSG; consider ISR when the number of pages is huge or updates are frequent.
19
+ - Backend after login, strong interaction workspace, internal tools: priority CSR, public login/registration page can be separate SSG/SSR.
20
+ - Hybrid product: Public pages and private pages can adopt different models without sacrificing experience or cost for a unified architecture.
21
+ - Number of pages, update frequency, server cost, deployment platform, caching strategy and team operation and maintenance capabilities must be evaluated together.
22
+ - RSC is only used in supported frameworks and routing architectures; client interactions, browser APIs, and high-frequency states are still placed in client leaf components.
23
+
24
+ ## Implement constraints
25
+
26
+ - SSR/RSC paths must not directly depend on `window`, `document`, localStorage or browser-specific libraries.
27
+ - HTML, time, random numbers, user preferences and media query results before and after hydration should be consistent to avoid hydration mismatch.
28
+ - Server-side data retrieval must have timeout, error degradation and caching strategies.
29
+ - SSG/ISR needs to clarify the non-prerendered path, revalidate/invalidation strategy and rollback method.
30
+ - Client-side large animation libraries, charts, editors, maps, WebGL/Canvas, etc. should be loaded on demand without entering the root layout synchronization bundle.
31
+ - No longer assert that a route is "cached" or "must be dynamic" without evidence of response headers, build output, traces, route behavior, or online metrics.
32
+
33
+ ## Checklist
34
+
35
+ - [ ] Clarify public pages and private pages, SEO requirements and real-time requirements.
36
+ - [ ] Clarify the reasons for using CSR / SSR / SSG / ISR / RSC for each type of page.
37
+ - [ ] Evaluate page count, build times, server costs, and cache invalidation strategies.
38
+ - [ ] Check that SSR/RSC code has no browser API dependencies and non-serializable props.
39
+ - [ ] Confirm that loading, error, not-found, offline and permission states are not lost across render modes.
40
+ - [ ] Verify the final schema with build output, response headers, traces, or routing behavior.
@@ -1,50 +1,50 @@
1
- # 响应式设计规则
1
+ # Responsive design rules
2
2
 
3
- 凡是任务涉及移动端适配、响应式布局、多端兼容、触摸目标或视口行为时,都应用本文件。本文只保留项目常驻约束;布局模式、container query、响应式表格、媒体和验证细节交给 `fec-responsive-layout`。
3
+ This document should be used whenever the task involves mobile adaptation, responsive layout, multi-device compatibility, touch targets or viewport behavior. This article only retains project-resident constraints; layout mode, container query, responsive tables, media and validation details are left to `fec-responsive-layout`.
4
4
 
5
- ## 核心原则
5
+ ## Core Principles
6
6
 
7
- - **移动优先**:从小屏幕开始设计,逐步增强到大屏幕。
8
- - **内容优先**:小屏优先展示核心任务、关键操作和反馈,次要内容折叠、延后或进入详情层。
9
- - **触摸友好**:所有交互元素必须适配手指操作,关键功能不能只依赖 hover。
10
- - **性能优先**:移动端网络和设备性能较弱,首屏资源、图表、动效和大列表要克制。
11
- - **容器感知**:可复用组件优先适配所在容器,而不是假设整页断点。
12
- - **稳定尺寸**:工具栏、表格列、棋盘、卡片网格和计数器需要稳定约束,避免状态变化导致布局跳动。
7
+ - **Mobile First**: Start designing for small screens and work your way up to large screens.
8
+ - **Content Priority**: Small screens give priority to core tasks, key operations and feedback, and secondary content is folded, postponed or entered into the detail layer.
9
+ - **Touch Friendly**: All interactive elements must adapt to finger operations, and key functions cannot rely solely on hover.
10
+ - **Performance first**: The mobile network and device performance are weak, so first-screen resources, charts, animations, and large lists should be restrained.
11
+ - **Container Aware**: Reusable components will first adapt to the container in which they are located, instead of assuming full page breakpoints.
12
+ - **Stable size**: Toolbars, table columns, checkerboards, card grids and counters need stable constraints to avoid layout jumps caused by state changes.
13
13
 
14
- ## 断点与容器策略
14
+ ## Breakpoints and container strategies
15
15
 
16
- - 默认验证 375px、768px、1024px、1440px,以及断点中间值。
17
- - 使用 mobile-first `min-width` 断点;不要先写桌面样式再用 `max-width` 补移动端。
18
- - Tailwind 前缀从小到大使用:默认 → `sm:` → `md:` → `lg:` → `xl:` → `2xl:`。
19
- - 页面级结构可以使用断点;会被放进侧栏、弹窗、卡片或主内容区的复用组件优先使用 container query。
20
- - grid/flex 子项包含长文本、图表、代码、媒体或表格时,必须考虑 `min-width: 0`、`minmax()`、`aspect-ratio` 和明确溢出策略。
16
+ - Default validation for 375px, 768px, 1024px, 1440px, and breakpoint intermediate values.
17
+ - Use mobile-first `min-width` breakpoint; do not write the desktop style first and then use `max-width` to supplement the mobile version.
18
+ - Tailwind prefixes are used from smallest to largest: default → `sm:` → `md:` → `lg:` → `xl:` → `2xl:`.
19
+ - Page-level structures can use breakpoints; reusable components that will be placed into sidebars, pop-ups, cards, or main content areas preferentially use container queries.
20
+ - `min-width: 0`, `minmax()`, `aspect-ratio` and explicit overflow strategies must be taken into account when grid/flex children contain long text, charts, code, media or tables.
21
21
 
22
- ## 触摸目标与移动端交互
22
+ ## Touch target to interact with mobile terminal
23
23
 
24
- - 空间允许时,按钮、链接、关闭按钮等交互目标至少 44x44px;紧凑工具界面最低也要保证可操作。
25
- - 输入框字号避免低于 16px,防止 iOS Safari 自动缩放。
26
- - 固定底部栏、操作条、抽屉和对话框必须考虑 safe area 与虚拟键盘。
27
- - hover-only 信息必须有点击、焦点或常驻可见替代方案。
28
- - 横竖屏切换后,主操作、焦点位置、滚动容器和错误提示仍应可达。
24
+ - When space permits, interaction targets such as buttons, links, and close buttons must be at least 44x44px; compact tool interfaces must be at least operable.
25
+ - Avoid input box font size below 16px to prevent iOS Safari from automatically scaling.
26
+ - Fixed bottom bar, action bar, drawer and dialog box must consider safe area and virtual keyboard.
27
+ - Hover-only messages must have click, focus, or permanent visible alternatives.
28
+ - After switching between horizontal and vertical screens, the main operation, focus position, scroll container and error prompts should still be accessible.
29
29
 
30
- ## 数据密集区域
30
+ ## Data intensive area
31
31
 
32
- - 表格、列表、看板、编辑器和画布可以局部横向滚动,但页面整体不应出现无意水平溢出。
33
- - 移动端数据密集视图需先定义列优先级:主标识、状态和主操作优先保留;低优先级字段进入详情、展开行或抽屉。
34
- - 小屏仍要保留排序、筛选、分页和选择能力。
35
- - 虚拟滚动只解决 DOM 数量问题,不能替代信息层级设计。
32
+ - Tables, lists, boards, editors and canvases can be partially scrolled horizontally, but the page as a whole should not have unintentional horizontal overflow.
33
+ - Data-intensive views on the mobile terminal need to define column priorities first: main identification, status and main operations are retained first; low-priority fields enter details, expand rows or drawers.
34
+ - Small screens must still retain the ability to sort, filter, paging, and select.
35
+ - Virtual scrolling only solves the problem of DOM quantity and cannot replace information hierarchy design.
36
36
 
37
- ## 响应式媒体
37
+ ## Responsive media
38
38
 
39
- - 图片和视频要有稳定尺寸、`aspect-ratio` 或容器约束,避免加载后推挤布局。
40
- - 需要多尺寸资源时使用 `srcset`、`sizes`、`picture` 或框架图片组件,避免移动端下载桌面大图。
41
- - 媒体裁切必须保留主体信息,不为填满卡片裁掉产品、人物、图表或状态关键区域。
39
+ - Images and videos must have stable size, `aspect-ratio` or container constraints to avoid pushing the layout after loading.
40
+ - Use `srcset`, `sizes`, `picture` or frame picture components when multi-size resources are needed to avoid downloading large desktop images on mobile devices.
41
+ - Media cropping must preserve the main information and do not crop out key areas of products, people, graphics or status to fill the card.
42
42
 
43
- ## 检查清单
43
+ ## Checklist
44
44
 
45
- - [ ] 320-375px 页面级无水平溢出。
46
- - [ ] 断点切换后阅读顺序合理,主操作不被隐藏。
47
- - [ ] 触摸目标、输入字号、safe area、虚拟键盘和横竖屏行为已验证。
48
- - [ ] loading、empty、error、disabled、hover/focus、长翻译文本和大数字不会撑坏固定格式控件。
49
- - [ ] 数据密集区域有列优先级、局部滚动或移动端摘要策略。
50
- - [ ] 首屏媒体尺寸稳定,非首屏媒体不会拖慢移动端主路径。
45
+ - [ ] 320-375px No horizontal overflow at page level.
46
+ - [ ] The reading order is reasonable after breakpoint switching, and the main operation is not hidden.
47
+ - [ ] Touch target, input font size, safe area, virtual keyboard and horizontal and vertical screen behaviors have been verified.
48
+ - [ ] loading, empty, error, disabled, hover/focus, long translation text and large numbers will not break the fixed format control.
49
+ - [ ] Column priority, partial scrolling, or mobile summary strategies for data-intensive areas.
50
+ - [ ] The size of first-screen media is stable, and non-first-screen media will not slow down the main path of the mobile terminal.