@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,31 +1,31 @@
1
- # 来源驱动开发规则
1
+ # Source-driven development rules
2
2
 
3
- 当实现依赖框架、库、浏览器、运行时、构建工具或平台行为时,先确认事实来源,再写代码或评审结论。
3
+ When an implementation relies on a framework, library, browser, runtime, build tool, or platform behavior, confirm the source of truth before writing code or reviewing conclusions.
4
4
 
5
- ## 事实来源优先级
5
+ ## Fact source priority
6
6
 
7
- 1. 项目内 README、配置、测试、模板和已有实现。
8
- 2. 官方文档、源码、类型定义、release notes、migration guide。
9
- 3. Web 标准、浏览器兼容数据和平台文档。
10
- 4. Issue、讨论、博客和第三方文章仅作为线索。
7
+ 1. README, configuration, testing, templates and existing implementations within the project.
8
+ 2. Official documents, source code, type definitions, release notes, migration guide.
9
+ 3. Web standards, browser compatibility data, and platform documentation.
10
+ 4. Issues, discussions, blogs and third-party articles are only used as clues.
11
11
 
12
- ## 使用场景
12
+ ## Usage scenarios
13
13
 
14
- - 框架新版本、路由、渲染模式、缓存、构建配置、浏览器 API。
15
- - 公共接口、组件 API、设计系统 token、CLI 命令和插件元数据。
16
- - 依赖升级、迁移、废弃 API 替换、跨运行时兼容。
17
- - 与安全、性能、可访问性相关的版本敏感判断。
14
+ - New versions of frameworks, routing, rendering modes, caching, build configurations, browser APIs.
15
+ - Public interfaces, component APIs, design system tokens, CLI commands, and plugin metadata.
16
+ - Dependency upgrade, migration, obsolete API replacement, cross-runtime compatibility.
17
+ - Version-sensitive judgments related to security, performance, and accessibility.
18
18
 
19
- ## 输出要求
19
+ ## Output requirements
20
20
 
21
- - 写清来源、版本或项目事实、决策结论、影响范围和验证方式。
22
- - 若项目现状与官方推荐冲突,说明冲突原因和渐进迁移策略。
23
- - 不复制长篇外部文档;只保留必要结论、链接或项目内文件路径。
24
- - 无法验证时标注不确定性和需要用户/团队确认的事项。
21
+ - Write down the source, version or project facts, decision conclusion, scope of influence and verification method.
22
+ - If the current status of the project conflicts with official recommendations, explain the cause of the conflict and the gradual migration strategy.
23
+ - Do not copy long external documents; only keep necessary conclusions, links or file paths within the project.
24
+ - Mark uncertainties and matters requiring confirmation from the user/team when they cannot be verified.
25
25
 
26
- ## 反模式
26
+ ## Anti-pattern
27
27
 
28
- - 凭记忆使用版本敏感 API。
29
- - 用过时教程替代官方文档。
30
- - 为追新推翻稳定项目约定。
31
- - 在组件里散落外部库行为假设,而不是集中到适配层。
28
+ - Use version-sensitive APIs from memory.
29
+ - Replace official documentation with outdated tutorials.
30
+ - Overturn the stable project agreement in order to pursue new projects.
31
+ - Scatter external library behavior assumptions throughout components instead of centralizing them in the adaptation layer.
@@ -1,60 +1,60 @@
1
- # 状态管理规范
1
+ # Status management specifications
2
2
 
3
- 本文件约定前端状态归属底线。状态清单、Store 形状示例、URL 状态、持久化适配器和 SSR 隔离细节交给 `fec-state-management`;请求缓存细节交给数据获取 workflow;表单字段和校验交给表单 workflow。
3
+ This document stipulates that the front-end status belongs to the bottom line. State manifests, Store shape examples, URL states, persistence adapters, and SSR isolation details are left to `fec-state-management`; request caching details are left to the data fetch workflow; and form fields and validation are left to the form workflow.
4
4
 
5
- ## 状态分类
5
+ ## Status classification
6
6
 
7
- | 类型 | 示例 | 默认归属 |
7
+ | Type | Example | Default Attribution |
8
8
  | ---- | ---- | -------- |
9
- | 本地 UI 状态 | modal 开关、tab、展开行、hover 编辑态 | 组件内 state / ref |
10
- | 表单状态 | 输入值、脏字段、校验错误、提交中 | 表单库或表单组件 |
11
- | 服务端状态 | 列表、详情、分页结果、远程错误 | 请求缓存库 |
12
- | URL 状态 | 搜索词、筛选、排序、页码、选中 tab | 路由参数 / search params |
13
- | 全局客户端状态 | 登录用户、主题、权限快照、购物车草稿 | 全局 store |
14
- | 浏览器持久化状态 | 偏好、非敏感草稿、离线队列 | 存储层 + 状态适配器 |
15
-
16
- ## 核心原则
17
-
18
- - **先归属,后选库**:不要先选 Redux、Zustand、Pinia 或 Context;先确定每个状态的唯一 owner。
19
- - **就近管理**:状态放在需要它的最近公共祖先。
20
- - **单一数据源**:同一份数据只在一个地方维护。
21
- - **派生优于同步**:可从 props、server state、URL 或已有 state 推导的值,不另存一份。
22
- - **最小全局状态**:全局 store 只保存真正跨页面、跨 feature 或需要统一动作的客户端状态。
23
-
24
- ## React 状态边界
25
-
26
- - 单组件或小子树使用 `useState` / `useReducer`。
27
- - 低频全局配置、主题或依赖注入可用 Context;高频变化的大对象不要放 Context。
28
- - 中等复杂业务状态可用 Zustand、Jotai 或仓库既有方案;大型严格动作流可用 Redux Toolkit。
29
- - 服务端数据使用请求缓存库,不复制到全局 store。
30
-
31
- ## Vue 状态边界
32
-
33
- - 局部状态使用 `ref` / `reactive` / `computed`。
34
- - 局部跨层级上下文使用 `provide/inject`。
35
- - 全局业务状态使用 Pinia 或项目既有 store。
36
- - 服务端数据优先使用请求库或 composable 管理,不原封不动写入 Pinia。
37
-
38
- ## URL 与持久化状态
39
-
40
- - 搜索、筛选、排序、分页、选中 tab 等需要分享或刷新保留的视图状态优先放 URL。
41
- - 浏览器持久化只保存稳定偏好或非敏感草稿,并明确字段白名单、版本号、迁移路径、过期策略和敏感字段排除。
42
- - SSR 场景不要在模块顶层创建带用户数据的单例 store;每次请求需要独立实例。
43
-
44
- ## 反模式
45
-
46
- - 将所有状态都放进全局 store。
47
- - 在 store 中存放 UI 临时状态或表单每个字段。
48
- - 手动同步多份相同数据,而不是从源状态派生。
49
- - 将服务端响应原封不动存入全局 store,而不用请求缓存库。
50
- - 用 Context / provide 承载高频变化大对象,导致大范围重渲染。
51
- - 持久化 token、权限细节、个人敏感数据或未版本化的大对象。
52
-
53
- ## 检查清单
54
-
55
- - [ ] 每个状态都有明确归属:本地 / 表单 / 服务端缓存 / URL / 全局 store / 浏览器持久化。
56
- - [ ] 可派生的值没有被存为独立 state。
57
- - [ ] 全局 store 只包含真正跨边界共享的数据。
58
- - [ ] 服务端数据通过请求库管理,刷新、回退、权限变化和错误状态仍可恢复。
59
- - [ ] URL 状态与路由参数同步,刷新和分享行为符合预期。
60
- - [ ] 持久化状态有白名单、版本、迁移和敏感字段排除。
9
+ | Local UI state | modal switch, tab, expand row, hover editing state | In-component state / ref |
10
+ | Form status | Input value, dirty field, validation error, submitting | Form library or form component |
11
+ | Server status | List, details, paging results, remote errors | Request cache library |
12
+ | URL status | Search terms, filter, sort, page number, selected tab | Routing parameters / search params |
13
+ | Global client status | Login users, topics, permission snapshots, shopping cart drafts | Global store |
14
+ | Browser persistent state | Preferences, non-sensitive drafts, offline queues | Storage layer + state adapter |
15
+
16
+ ## Core Principles
17
+
18
+ - **Own first, choose library later**: Don’t choose Redux, Zustand, Pinia or Context first; determine the unique owner of each state first.
19
+ - **Nearest Management**: The state is placed in the nearest common ancestor that needs it.
20
+ - **Single Data Source**: The same data is maintained in only one place.
21
+ - **Derivation is better than synchronization**: Values that can be derived from props, server state, URL or existing state, do not save a new copy.
22
+ - **Minimum global state**: The global store only saves client state that is truly cross-page, cross-feature, or requires unified action.
23
+
24
+ ## React state boundaries
25
+
26
+ - Use `useState` / `useReducer` for single components or small subtrees.
27
+ - Low-frequency global configuration, theme or dependency injection can use Context; large objects that change frequently should not be placed in Context.
28
+ - For moderately complex business states, Zustand, Jotai or existing warehouse solutions can be used; for large and strict action flows, Redux Toolkit can be used.
29
+ - Server-side data uses the request cache library and is not copied to the global store.
30
+
31
+ ## Vue state boundary
32
+
33
+ - Use `ref` / `reactive` / `computed` for local state.
34
+ - Use `provide/inject` for local cross-level context.
35
+ - Global business status uses Pinia or the existing store of the project.
36
+ - Server-side data is first managed using the request library or composable and is not written to Pinia intact.
37
+
38
+ ## URL and persistent state
39
+
40
+ - When searching, filtering, sorting, paging, selecting tabs, etc., the view state that needs to be shared or refreshed should be given priority to the URL.
41
+ - Browser persistence only saves stable preferences or non-sensitive drafts, and clearly identifies field whitelists, version numbers, migration paths, expiration policies, and sensitive field exclusions.
42
+ - In SSR scenarios, do not create a single instance store with user data at the top level of the module; each request requires an independent instance.
43
+
44
+ ## Anti-pattern
45
+
46
+ - Put all state into global store.
47
+ - Store UI temporary state or each field of the form in the store.
48
+ - Manually synchronize multiple copies of the same data instead of deriving from source state.
49
+ - Store the server response intact in the global store without requesting the cache library.
50
+ - Use Context / provide to carry large objects that change frequently, resulting in large-scale re-rendering.
51
+ - Persistent tokens, permission details, personal sensitive data or unversioned large objects.
52
+
53
+ ## Checklist
54
+
55
+ - [ ] Each state has a clear ownership: local / form / server cache / URL / global store / browser persistence.
56
+ - [ ] Derivable values are not stored as independent state.
57
+ - [ ] The global store only contains data that is truly shared across boundaries.
58
+ - [ ] Server-side data is managed through the request library, and refreshes, rollbacks, permission changes, and error states can still be recovered.
59
+ - [ ] URL state is synchronized with route parameters, and refresh and share behavior is as expected.
60
+ - [ ] Persistence status has whitelist, version, migration and sensitive field exclusions.
@@ -1,98 +1,98 @@
1
- # 测试与校验规则
1
+ # Testing and verification rules
2
2
 
3
- 凡是新增、修改、重构或评审代码时,都应用本文件。
3
+ This document should be used whenever code is added, modified, refactored, or reviewed.
4
4
 
5
- ## 校验顺序
5
+ ## Verification sequence
6
6
 
7
- 优先按以下顺序执行:
7
+ Prioritize execution in the following order:
8
8
 
9
9
  1. lint
10
10
  2. type check
11
11
  3. unit test
12
12
  4. build
13
13
 
14
- 优先使用仓库已有脚本。
15
- 如果命令不确定,先检查 `package.json`。
14
+ Priority is given to using existing scripts in the warehouse.
15
+ If the command is uncertain, check `package.json` first.
16
16
 
17
- ## 改动校验原则
17
+ ## Change the verification principle
18
18
 
19
- - 先修复范围最小且正确的问题
20
- - 每次关键修复后重新执行受影响的命令
21
- - 不要盲目压掉报错或关闭规则
22
- - 不要为了通过检查而降低类型安全
23
- - 不要因为一个局部测试失败就重写无关模块
19
+ - Fix the smallest and correct issues first
20
+ - Re-execute affected commands after each critical fix
21
+ - Don’t blindly suppress error reporting or closing rules
22
+ - Don't compromise type safety to pass checks
23
+ - Don't rewrite unrelated modules just because a local test fails
24
24
 
25
- ## 测试要求
25
+ ## Testing requirements
26
26
 
27
- 新增或修改行为时,考虑是否需要覆盖以下内容:
27
+ When adding or modifying behaviors, consider whether you need to override the following:
28
28
 
29
- - 组件渲染
30
- - 交互行为
31
- - 状态切换
32
- - 边界场景
33
- - loading / empty / error 状态
34
- - 与可访问性相关的关键交互
29
+ - Component rendering
30
+ - interactive behavior
31
+ - Status switching
32
+ - Border scenes
33
+ - loading / empty / error status
34
+ - Key interactions related to accessibility
35
35
 
36
- 如果没有补测试,需要说明原因。
36
+ If there is no supplementary test, the reason needs to be explained.
37
37
 
38
- ## Fixture 与 Mock
38
+ ## Fixture and Mock
39
39
 
40
- - Fixture 表达业务场景,不使用随机、无语义或只对测试作者有意义的数据
41
- - 复杂对象使用 builder 填充默认值,每个测试只覆盖当前场景相关字段
42
- - 测试间不共享可变全局状态、fake timer、store 或 mock server handler
43
- - 网络 mock 应模拟公开契约和用户可见错误,不复制后端内部实现
40
+ - Fixture expresses business scenarios without using random, meaningless or data that is meaningful only to the test author
41
+ - Complex objects use builder to fill in default values, and each test only covers fields related to the current scenario.
42
+ - No mutable global state, fake timers, stores or mock server handlers are shared between tests
43
+ - Network mocks should simulate public contracts and user-visible errors and not replicate backend internal implementations
44
44
 
45
- ## TDD 与回归测试
45
+ ## TDD and regression testing
46
46
 
47
- 新增行为、修复 Bug 或重构关键逻辑时,优先采用 TDD:
47
+ When adding new behaviors, fixing bugs, or refactoring key logic, TDD is preferred:
48
48
 
49
- 1. 先写能描述期望行为的失败测试。
50
- 2. 运行测试并确认失败原因正确。
51
- 3. 写最小实现让测试通过。
52
- 4. 测试保持通过后再重构。
49
+ 1. Start by writing failing tests that describe the desired behavior.
50
+ 2. Run the test and confirm that the failure reason is correct.
51
+ 3. Write the minimum implementation to make the test pass.
52
+ 4. Refactor after the test remains passed.
53
53
 
54
- Bug 修复应优先保留能复现问题的回归测试。若现有项目缺少测试基础设施,不要盲目引入新框架;先给出最小测试落地建议并说明维护成本。
54
+ Bug fixes should prioritize keeping regression tests that reproduce the problem. If the existing project lacks testing infrastructure, do not blindly introduce a new framework; first provide minimum test implementation suggestions and explain maintenance costs.
55
55
 
56
- ## 代码评审输出风格
56
+ ## Code review output style
57
57
 
58
- 评审代码时,返回:
58
+ When reviewing code, return:
59
59
 
60
- - 总体评估
61
- - 必修问题
62
- - 建议优化
63
- - 可选优化项
64
- - 风险等级
60
+ - Overall assessment
61
+ - Required questions
62
+ - Suggestions for optimization
63
+ - Optional optimization items
64
+ - Risk level
65
65
 
66
- 结论要具体且可执行。
66
+ Conclusions should be specific and actionable.
67
67
 
68
- ## E2E 测试规则
68
+ ## E2E test rules
69
69
 
70
- 使用 Playwright 或 Cypress 时:
70
+ When using Playwright or Cypress:
71
71
 
72
- - 遵循 **Page Object**,spec 内不写裸选择器;优先 **`data-testid`**,其次 **`role` / `label`**
73
- - 用 **`test.describe` + `beforeEach`** 组织场景,单用例可独立运行、不依赖执行顺序
74
- - 禁止用固定 **`sleep`** 当主要同步手段;用 **Locator 自动等待**、`expect`、`waitForResponse` 等
75
- - Playwright:**`playwright.config.ts`** 中配置 `baseURL`、CI 下 `retries`/`workers`、`trace`/`screenshot`/`video`、**`webServer`** 与多 **`projects`(含移动端)**
76
- - 关键流程至少覆盖桌面、平板、移动端视口(或等价 device 项目)
77
- - **不稳定用例**:`test.fixme` / `test.skip` 需写原因与 issue;用 `--repeat-each` 辅助定位 flaky
78
- - 失败时保留 **截图、Trace、视频**,CI 用 **artifact** 上传 HTML 报告与产物
79
- - 高风险/资金类流程:**勿在生产跑真实 E2E**;staging 或 mock,必要时 `test.skip`
80
- - 测试数据可重复:优先 seed、测试账号或 mock 服务;随机值必须带唯一前缀并在 teardown 清理
72
+ - Follow **Page Object**, do not write naked selectors in spec; give priority to **`data-testid`**, followed by **`role` / `label`**
73
+ - Use **`test.describe` + `beforeEach`** to organize scenarios. A single use case can run independently and does not depend on the execution sequence.
74
+ - It is forbidden to use fixed **`sleep`** as the main synchronization method; use **Locator to automatically wait**, `expect`, `waitForResponse`, etc.
75
+ - Playwright: Configure `baseURL` in **`playwright.config.ts`**, `retries`/`workers`, `trace`/`screenshot`/`video`, **`webServer`** and many **`projects` (including mobile)** under CI
76
+ - Key processes cover at least desktop, tablet, and mobile viewports (or equivalent device projects)
77
+ - **Unstable use case**: `test.fixme` / `test.skip` needs to write the reason and issue; use `--repeat-each` to assist in locating flaky
78
+ - Keep **Screenshots, Traces, Videos** in case of failure, CI uses **artifact** to upload HTML reports and products
79
+ - High-risk/funding processes: **Do not run real E2E in production**; staging or mock, if necessary `test.skip`
80
+ - Test data is repeatable: priority is seed, test account or mock service; random values must be uniquely prefixed and cleaned in teardown
81
81
 
82
- 详细模式与示例见插件 **`fec-e2e-testing`** skill。
82
+ For detailed modes and examples, see the plug-in **`fec-e2e-testing`** skill.
83
83
 
84
- ## 重构规则
84
+ ## Refactoring rules
85
85
 
86
- 进行重构时:
86
+ When refactoring:
87
87
 
88
- - 除非任务明确要求改行为,否则保持行为一致
89
- - 说明可能的迁移风险
90
- - 优先做渐进式修改,而不是大范围重写
91
- - 总结改动文件、执行过的命令和剩余风险
88
+ - Maintain consistent behavior unless the task specifically requires a change in behavior
89
+ - Describe possible migration risks
90
+ - Prioritize incremental changes over extensive rewrites
91
+ - Summarize changed files, executed commands and remaining risks
92
92
 
93
- ## 验证失败处理
93
+ ## Verification failure handling
94
94
 
95
- - 按文件和根因分组错误,一次修复一类问题。
96
- - 每次修复后重新运行最近的失败命令。
97
- - 不删除失败测试、不关闭规则、不降低类型安全来换取通过。
98
- - 同一错误多次修复仍失败时,停止扩大改动并报告阻塞。
95
+ - Group errors by file and root cause to fix one type of problems at a time.
96
+ - Rerun the most recent failed command after each fix.
97
+ - Don't remove failing tests, don't close rules, don't reduce type safety in exchange for passing.
98
+ - When the same error is repaired multiple times and still fails, the expansion of changes will be stopped and a blockage will be reported.
@@ -1,112 +1,112 @@
1
- # TypeScript / JavaScript 规则
1
+ # TypeScript / JavaScript rules
2
2
 
3
- 编写、修改或评审 `.ts`、`.tsx`、`.js`、`.jsx` 时应用本文件。本文只保留项目常驻硬约束;复杂类型建模、`tsconfig` 分层、声明产物、DTO / view model 边界、类型测试与发布入口设计,交给 `fec-typescript-project-standard` skill 或专项评审处理。注释风格另见 `fec-code-comments.md`;E2E 与校验流程另见 `fec-testing.md`。
3
+ Use this file when writing, modifying or reviewing `.ts`, `.tsx`, `.js`, `.jsx`. This article only retains the permanent hard constraints of the project; complex type modeling, `tsconfig` layering, declared products, DTO / view model boundaries, type testing and release entry design are left to the `fec-typescript-project-standard` skill or special review. See also `fec-code-comments.md` for comment style; see `fec-testing.md` for E2E and verification process.
4
4
 
5
- ## 类型与接口
5
+ ## Types and interfaces
6
6
 
7
- 用类型让对外 API、共享模型与组件 props 显式、可读、可复用。
7
+ Use types to make external APIs, shared models, and component props explicit, readable, and reusable.
8
8
 
9
- ### 对外导出的 API
9
+ ### Externally exported API
10
10
 
11
- - 对**导出**的函数、共享工具函数、公开类方法,写明参数与返回值类型。
12
- - **局部**变量在类型显而易见时交给 TypeScript 推断,不为显而易见的中间变量重复标注。
13
- - 重复出现的内联对象形状抽成具名 `interface` 或 `type`,避免同一契约散落在多个签名中。
14
- - 外部数据、API DTO、路由参数、表单值与组件 props 的边界要显式命名;复杂建模分流到 `fec-typescript-project-standard`。
11
+ - For **export** functions, shared tool functions, and public class methods, indicate the parameter and return value types.
12
+ - **Local** variables are handed over to TypeScript for inference when the type is obvious, and obvious intermediate variables are not repeatedly annotated.
13
+ - Recurring inline object shapes are extracted into named `interface` or `type` to avoid the same contract being scattered in multiple signatures.
14
+ - The boundaries of external data, API DTOs, routing parameters, form values and component props must be explicitly named; complex modeling is offloaded to `fec-typescript-project-standard`.
15
15
 
16
- ### `interface` 与 `type`
16
+ ### `interface` and `type`
17
17
 
18
- - 可能被扩展或 `implements` 的**对象形状**优先用 `interface`。
19
- - **联合、交叉、元组、映射类型、工具类型组合**用 `type`。
20
- - 状态、类型、角色等有限业务取值优先用字符串字面量联合;仅在互操作或团队统一要求时使用 `enum`。
18
+ - Object shapes that may be extended or `implements` take precedence over `interface`.
19
+ - **Union, intersection, tuple, map type, tool type combination** use `type`.
20
+ - Limited business values such as status, type, role, etc. are first combined with string literals; `enum` is only used when interoperability or team unified requirements are met.
21
21
 
22
- ### 函数参数:复杂类型宜具名
22
+ ### Function parameters: complex types should be named
23
23
 
24
- - 参数上的**复杂联合**、**内联对象类型**、**较复杂的回调签名**等,应优先提取为具名 `type` / `interface`,再在函数签名中引用。
25
- - 仅当类型简单、短小、一眼可读,且明显无复用价值时,允许在参数位置内联。
26
- - 回调参数与返回值必须表达清楚;不要用 `Function`、宽泛对象或隐式 `any` 承接业务契约。
24
+ - **Complex unions**, **inline object types**, **more complex callback signatures**, etc. on parameters should be extracted as named `type` / `interface` first, and then referenced in the function signature.
25
+ - Inlining in parameter positions is only allowed if the type is simple, short, readable at a glance, and has obvious no reuse value.
26
+ - Callback parameters and return values must be expressed clearly; do not use `Function`, wide objects or implicit `any` to undertake business contracts.
27
27
 
28
- ### 避免 `any`
28
+ ### Avoid `any`
29
29
 
30
- - 业务代码中避免 `any`;已有遗留 `any` 不随手扩散。
31
- - 外部或不可信数据用 `unknown`,通过 `typeof`、`in`、`instanceof`、schema parse 或自定义 predicate 安全收窄。
32
- - 类型随调用方变化时用泛型,但不要为简单场景引入难以理解的泛型层。
33
- - `as` 类型断言只用于明确的边界互操作或已验证收窄后的补充表达,不用于压制类型错误。
30
+ - Avoid `any` in business code; existing `any` should not be spread casually.
31
+ - Use `unknown` for external or untrusted data, safely narrowed through `typeof`, `in`, `instanceof`, schema parse or custom predicate.
32
+ - Use generics when the type changes from caller to caller, but don’t introduce an incomprehensible layer of generics for simple scenarios.
33
+ - `as` type assertions are only used for explicit boundary interoperation or supplementary expressions after verified narrowing, and are not used to suppress type errors.
34
34
 
35
- ### React 组件 Props
35
+ ### React Component Props
36
36
 
37
- - 用具名 `interface` 或 `type` 定义 props,复杂公共 props 分流到类型模块。
38
- - 回调 props 写清参数与返回值;事件 payload 不用裸对象长期内联。
39
- - 无特殊理由不使用 `React.FC`,避免隐式 `children` 等差异。
40
- - TSX 泛型、复杂组件 props 或外部 DTO 映射问题,交给 React 规则与 `fec-typescript-project-standard` 共同收敛。
37
+ - Define props with named `interface` or `type`, and offload complex public props to type modules.
38
+ - Write clear parameters and return values in callback props; event payload does not require long-term inlining of bare objects.
39
+ - Don't use `React.FC` without special reason, avoid differences such as implicit `children`.
40
+ - TSX generics, complex component props or external DTO mapping issues are left to React rules and `fec-typescript-project-standard` to converge together.
41
41
 
42
- ## 单文件规模与模块拆分
42
+ ## Single file size and module splitting
43
43
 
44
- - `.ts` / `.tsx` / `.js` / `.jsx` 单文件建议控制在**约 300 行以内**。该阈值是可维护性与评审效率的经验上限,不是机械硬限制。
45
- - 当文件明显超过该规模且承担多重职责时,应优先按职责拆分:数据访问、业务规则、视图渲染、适配层、常量与映射、类型定义。
46
- - 超阈值优先提取纯函数、子组件、自定义 Hook、`*.types.ts` 类型模块、常量表;不要仅为压行数做无意义切分。
47
- - 可接受例外:生成代码、极薄的 re-export 聚合文件、经团队评审确认的高内聚模块;例外建议在文件头简短注明原因。
44
+ - `.ts` / `.tsx` / `.js` / `.jsx` It is recommended that a single file be controlled within **about 300 lines**. This threshold is an empirical upper limit for maintainability and review efficiency, not a mechanical hard limit.
45
+ - When the file obviously exceeds this size and bears multiple responsibilities, priority should be given to splitting it by responsibility: data access, business rules, view rendering, adaptation layer, constants and mapping, and type definition.
46
+ - Prioritize extraction of pure functions, subcomponents, custom Hooks, `*.types.ts` type modules, and constant tables above the threshold; do not make meaningless segmentation just for the number of pressed lines.
47
+ - Acceptable exceptions: generated code, very thin re-export aggregation files, high cohesion modules confirmed by team review; exceptions are recommended to briefly indicate the reasons in the file header.
48
48
 
49
- ### 仍为 JavaScript 的文件
49
+ ### Still a JavaScript file
50
50
 
51
- - 在 `.js` / `.jsx` 中,若短期无法迁 TS,可用 JSDoc 补类型,并与运行时行为一致。
52
- - 不为迁移方便引入新的隐式全局、宽松对象或未验证外部输入。
51
+ - In `.js` / `.jsx`, if TS cannot be migrated in the short term, JSDoc can be used to complement the type, and the behavior will be consistent with the runtime.
52
+ - Do not introduce new implicit globals, loose objects, or unvalidated external inputs for migration convenience.
53
53
 
54
- ## 禁止 Magic Number / Magic String
54
+ ## Disable Magic Number / Magic String
55
55
 
56
- - **业务代码中禁止**使用**无语义**的硬编码数字或字符串直接表示状态、类型、标识或业务含义,包括 `if` / `switch` / 赋值 / API 字段映射。
57
- - 固定且有限的取值范围须在单一真源处定义,并在全仓引用名称,避免裸值散落。
58
- - 前端主路径优先使用 `as const` 常量对象配合字面量联合;与后端协议或团队约定强绑定时可使用 `enum`。
59
- - 不属本条的典型例外仍应保持可读:纯算法下标、明显的 `0` / `1` 长度判断、与业务无关的 UI 刻度;视觉值若已有设计 Token,应改走 `fec-design-system.md`。
56
+ - **It is prohibited** in business code to use **semantic** hard-coded numbers or strings to directly represent status, type, identity or business meaning, including `if` / `switch` / assignment / API field mapping.
57
+ - The fixed and limited value range must be defined at a single true source, and the name must be referenced in the entire warehouse to avoid the scattering of bare values.
58
+ - The front-end main path preferentially uses `as const` constant objects with literal unions; `enum` can be used when strongly bound to the back-end protocol or team agreement.
59
+ - Typical exceptions that do not fall under this article should still remain readable: pure algorithm subscripts, obvious `0` / `1` length judgments, UI scales that have nothing to do with business; if the visual value already has a design token, it should be changed to `fec-design-system.md`.
60
60
 
61
- ## 不可变更新
61
+ ## Immutable updates
62
62
 
63
- - 优先返回新对象或新数组,避免直接改写入参、props、store 快照或缓存对象。
64
- - 对不应被修改的数据优先建模为 `readonly` / `Readonly<T>`。
65
- - 大型嵌套更新应使用项目既有状态方案或清晰的 reducer / helper,不在组件中堆叠临时可变逻辑。
63
+ - Prioritize returning new objects or new arrays and avoid directly modifying parameters, props, store snapshots or cache objects.
64
+ - Data that should not be modified is first modeled as `readonly` / `Readonly<T>`.
65
+ - Large nested updates should use the project's existing state scheme or a clear reducer/helper, without stacking temporary mutable logic in components.
66
66
 
67
- ## 异步与错误处理
67
+ ## Asynchronous and error handling
68
68
 
69
- - 使用 `async` / `await` 与明确的错误边界;不要吞掉 promise rejection。
70
- - `catch` 中将错误视为 `unknown` 再收窄,统一映射为用户可见错误、日志错误或调用方可处理的领域错误。
71
- - API、认证、上传、支付等跨边界错误遵循 `fec-api-layer.md`、`fec-error-handling.md` 和安全规则,不在业务组件中散落裸处理。
69
+ - Use `async` / `await` with clear error boundaries; don't swallow promise rejections.
70
+ - In `catch`, errors are treated as `unknown` and then narrowed down, and uniformly mapped to user-visible errors, log errors or domain errors that can be handled by the caller.
71
+ - Cross-border errors such as API, authentication, upload, and payment follow `fec-api-layer.md`, `fec-error-handling.md` and security rules, and are not handled nakedly in business components.
72
72
 
73
- ## 输入校验
73
+ ## Input verification
74
74
 
75
- - 外部输入(表单、API、URL 参数、localStorage、postMessage、第三方 SDK 回调等)必须在边界处校验或收窄。
76
- - 可使用 Zod、Valibot、Yup 或项目选用的同类 schema 工具;不要把具体库作为无条件新依赖引入。
77
- - schema 推导类型可作为输入类型单一真源;复杂 DTO、领域模型与 UI view model 的分层交给 `fec-typescript-project-standard`。
75
+ - External input (forms, APIs, URL parameters, localStorage, postMessage, third-party SDK callbacks, etc.) must be validated or narrowed at boundaries.
76
+ - You can use Zod, Valibot, Yup or similar schema tools selected by the project; do not introduce specific libraries as unconditional new dependencies.
77
+ - Schema derived types serve as a single source of truth for input types; layering of complex DTOs, domain models and UI view models is left to `fec-typescript-project-standard`.
78
78
 
79
- ## 类型资产分层与命名
79
+ ## Type asset layering and naming
80
80
 
81
- - 模块或特性专属类型使用 `*.types.ts`,并与实现文件同目录或同 feature 目录放置。
82
- - 全局与环境相关声明放在 `global.d.ts`、`env.d.ts` 或 `types/*.d.ts`,仅用于真全局或 ambient 声明,不将可模块化类型放入全局。
83
- - 仅用于类型的导入导出优先使用 `import type` 与 `export type`,减少值空间歧义并提升编译语义清晰度。
84
- - 与 API DTO 同源的类型,放在对应 feature 或 API 子目录,避免在页面或组件实现内散落大型匿名类型。
85
- - `index.ts` 聚合导出应保持浅层且按 feature 边界组织,避免深层 barrel 引发循环依赖与不必要耦合。
81
+ - Module or feature-specific types use `*.types.ts` and are placed in the same directory as the implementation file or in the same feature directory.
82
+ - Global and environment-related declarations are placed in `global.d.ts`, `env.d.ts` or `types/*.d.ts`, only for true global or ambient declarations, and do not put modular types into globals.
83
+ - For import and export of types only, use `import type` and `export type` first to reduce value space ambiguity and improve compilation semantic clarity.
84
+ - Types that have the same origin as the API DTO are placed in the corresponding feature or API subdirectory to avoid scattering large anonymous types within the page or component implementation.
85
+ - `index.ts` aggregate exports should be kept shallow and organized according to feature boundaries to avoid deep barrels causing circular dependencies and unnecessary coupling.
86
86
 
87
- ## 工程化与惯用法补充
87
+ ## Engineering and idiom additions
88
88
 
89
- - 需要同时满足字面量保留与结构校验时优先使用 `satisfies`,再考虑类型断言。
90
- - 使用判别式联合表达清晰状态;关键分支需要穷尽性时用 `never` 检查。
91
- - 新业务代码默认采用 ES Module;`namespace` 与三斜线指令仅用于声明合并或遗留互操作场景。
92
- - 扩展第三方类型时使用独立声明文件并通过局部 `declare module` 扩展,避免污染全局实现文件。
93
- - `tsconfig`、package exports、声明文件、路径别名和 public API 类型属于 TypeScript 项目规范深水区,不在本规则内展开。
89
+ - When both literal preservation and structure verification need to be met, use `satisfies` first, and then consider type assertions.
90
+ - Use discriminant unions to express clear states; use `never` checks when exhaustiveness is required for critical branches.
91
+ - New business code uses ES Module by default; `namespace` and triple slash directives are only used to declare merge or legacy interop scenarios.
92
+ - When extending third-party types, use independent declaration files and extend them through local `declare module` to avoid polluting the global implementation file.
93
+ - `tsconfig`, package exports, declaration files, path aliases and public API types belong to the deep water area of TypeScript project specifications and are not expanded within this rule.
94
94
 
95
- ## 日志与 `console.log`
95
+ ## Logs and `console.log`
96
96
 
97
- - 生产路径避免遗留 `console.log`;使用项目统一的日志方案。
98
- - 调试日志提交前应删除,或按团队工具链通过 lint / hook / CI 提示。
97
+ - Avoid legacy `console.log` in the production path; use the project's unified logging scheme.
98
+ - Debug logs should be deleted before submission, or prompted by the team toolchain via lint/hook/CI.
99
99
 
100
- ## 密钥与敏感配置
100
+ ## Keys and sensitive configurations
101
101
 
102
- - **禁止**在源码中硬编码密钥、Token、私钥或真实凭证示例。
103
- - 必须通过环境变量或构建期注入读取配置,并在缺失时显式失败或提供清晰降级策略。
104
- - 涉及认证、支付、上传、第三方脚本或敏感数据处理时,结合项目安全规范做专项评审。
102
+ - **Prohibited** Hardcoding keys, tokens, private keys, or real credential examples in source code.
103
+ - Configuration must be read via environment variables or build-time injection, and fail explicitly if missing or provide a clear downgrade strategy.
104
+ - When authentication, payment, uploading, third-party scripts or sensitive data processing are involved, special reviews will be conducted in conjunction with project security specifications.
105
105
 
106
- ## 与测试规则的关系
106
+ ## Relationship with test rules
107
107
 
108
- 类型改动影响 public API、DTO、外部输入收窄或关键业务分支时,应补充 typecheck、类型测试、组件测试或消费方 fixture。关键用户路径的端到端覆盖方式(Playwright、Cypress、Page Object 等)以 `fec-testing.md` 为准;本文件不重复展开 E2E 细则。
108
+ When type changes affect public APIs, DTOs, external input narrowing, or business-critical branches, typechecks, type tests, component tests, or consumer fixtures should be supplemented. The end-to-end coverage method of key user paths (Playwright, Cypress, Page Object, etc.) is subject to `fec-testing.md`; this document does not repeat the E2E details.
109
109
 
110
- ## 与 `typescript-reviewer` 子代理
110
+ ## With the `typescript-reviewer` subagent
111
111
 
112
- 对 **`.ts` / `.tsx` / `.js` / `.jsx`** 进行专项评审(先跑 typecheck / eslint、PR 合并就绪检查、分级结论)时,可委托插件内置的 **`typescript-reviewer`** 子代理;其报告默认写入 `reports/typescript-review-YYYY-MM-DD-HHmmss.md`,规则底线仍以本文件与项目 `CLAUDE.md` 为准。
112
+ When conducting a special review of **`.ts` / `.tsx` / `.js` / `.jsx`** (run typecheck / eslint first, PR merge readiness check, graded conclusion), you can entrust the plug-in's built-in **`typescript-reviewer`** subagent; its report is written by default `reports/typescript-review-YYYY-MM-DD-HHmmss.md`, the bottom line of the rules is still based on this file and the project `CLAUDE.md`.