@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,42 +1,42 @@
1
- # 重构清理报告模板
1
+ # Refactor cleaning report template
2
2
 
3
3
  ```markdown
4
- # 重构清理报告
4
+ # Refactor cleanup report
5
5
 
6
- > 生成时间: YYYY-MM-DD HH:mm
7
- > 清理范围: 文件 / 模块 / 依赖 / 路由 / 样式
6
+ > Generation time: YYYY-MM-DD HH:mm
7
+ > Cleanup scope: File/Module/Dependency/Route/Style
8
8
 
9
- ## 基线验证
9
+ ## Baseline verification
10
10
 
11
- | 命令 | 清理前状态 | 清理后状态 | 备注 |
11
+ | Command | Status before cleaning | Status after cleaning | Remarks |
12
12
  | --- | --- | --- | --- |
13
- | `npm run lint` | 失败 / 通过 / 未运行 | 失败 / 通过 / 未运行 | ... |
13
+ | `npm run lint` | failed/passed/didn’t run | failed/passed/didn’t run | ... |
14
14
 
15
- ## 候选项与证据
15
+ ## Candidates and evidence
16
16
 
17
- | 候选项 | 证据 | 风险分类 |
17
+ | Candidates | Evidence | Risk Classification |
18
18
  | --- | --- | --- |
19
- | `path/to/file.ts` | 工具输出 / rg 搜索 / 类型检查 | SAFE / CAUTION / DANGER / UPGRADE |
19
+ | `path/to/file.ts` | Tool output / rg search / type checking | SAFE / CAUTION / DANGER / UPGRADE |
20
20
 
21
- ## 已清理项
21
+ ## Cleaned items
22
22
 
23
- - 删除或修改的文件、导出、样式、依赖或配置
24
- - 每项清理对应的证据
23
+ - Deleted or modified files, exports, styles, dependencies or configurations
24
+ -Evidence corresponding to each cleanup
25
25
 
26
- ## 跳过原因
26
+ ## Skip reason
27
27
 
28
- - CAUTION / DANGER 项为什么没有自动处理
29
- - 需要人工确认、运行时验证或专项流程的内容
28
+ - Why is the CAUTION / DANGER item not automatically processed?
29
+ - Content that requires manual confirmation, runtime verification, or specialized processes
30
30
 
31
- ## 验证命令
31
+ ## Verification command
32
32
 
33
- - 执行的 lint、type-check、test、build 或手工验证
34
- - 关键输出摘要
33
+ - lint, type-check, test, build or manual verification performed
34
+ - Summary of key outputs
35
35
 
36
- ## 剩余风险
36
+ ## Residual risk
37
37
 
38
- - 动态引用、运行时模板、插件元数据或外部入口风险
39
- - 建议后续清理或依赖升级项
38
+ - Dynamic references, runtime templates, plug-in metadata or external entry risks
39
+ - Recommend subsequent cleaning or dependency upgrades
40
40
  ```
41
41
 
42
- 清理完成后,将报告保存到 `reports/refactor-clean-YYYY-MM-DD-HHmmss.md`,并告知用户报告路径。
42
+ After cleaning is completed, save the report to `reports/refactor-clean-YYYY-MM-DD-HHmmss.md` and inform the user of the report path.
@@ -1,34 +1,34 @@
1
1
  ---
2
2
  name: fec-responsive-layout
3
- description: Use when designing, implementing, or reviewing responsive frontend layouts, mobile-first breakpoints, container queries, fluid grids, data-dense tables, touch targets, safe areas, orientation changes, viewport overflow, or cross-device UI behavior; Chinese triggers include 响应式布局, 移动端适配, 断点, 容器查询, 横竖屏, 触摸目标.
3
+ description: Use when designing, implementing, or reviewing responsive frontend layouts, mobile-first breakpoints, container queries, fluid grids, data-dense tables, touch targets, safe areas, orientation changes, viewport overflow, or cross-device UI behavior; Chinese triggers include responsive layouts, mobile-side adaptation, breakpoints, container queries, horizontal and vertical screens, touch targets.
4
4
  ---
5
5
 
6
- # 响应式布局
6
+ # Responsive layout
7
7
 
8
- 适用于需要让页面、工具界面、表格、仪表盘或组件在多设备上稳定工作的前端任务。需要布局模式和检查清单时加载 [references/responsive-layout-patterns.md](references/responsive-layout-patterns.md)。
8
+ Suitable for front-end tasks that require pages, tool interfaces, tables, dashboards or components to work stably on multiple devices. Load [references/responsive-layout-patterns.md](references/responsive-layout-patterns.md) when layout patterns and checklists are required.
9
9
 
10
10
  ## Purpose
11
11
 
12
- 用内容优先、移动优先和容器感知的方式设计响应式布局,避免只靠固定断点修补溢出。
12
+ Design responsive layouts in a content-first, mobile-first, and container-aware manner to avoid relying solely on fixed breakpoints to fix overflow.
13
13
 
14
14
  ## Procedure
15
15
 
16
- 1. 明确信息优先级:小屏先保留核心任务、关键操作和反馈;次要信息折叠、延后或移入详情层。
17
- 2. 选择布局策略:简单页面用 mobile-first 断点;嵌套组件、卡片网格和侧栏优先考虑 container query。
18
- 3. 设计流式尺寸:用 `minmax()`、`clamp()`、`aspect-ratio`、`max-width`、`min-width: 0` 和稳定网格轨道控制伸缩。
19
- 4. 处理数据密集界面:表格、列表、看板和编辑器需要明确横向滚动、列优先级、冻结列或移动端摘要视图。
20
- 5. 保证触摸与键盘:触摸目标、焦点路径、hover 替代、虚拟键盘、安全区域和横竖屏切换都要复核。
21
- 6. 关联性能与资源:移动端减少首屏大图、重型图表、同步动画和不必要列渲染。
22
- 7. 验证断点之间:检查 375px、768px、1024px、1440px,以及断点中间值是否溢出、遮挡或跳变。
16
+ 1. Clarify the priority of information: On small screens, core tasks, key operations and feedback are retained first; secondary information is folded, postponed or moved to the detail layer.
17
+ 2. Choose a layout strategy: use mobile-first breakpoints for simple pages; give priority to container query for nested components, card grids and sidebars.
18
+ 3. Design flow size: use `minmax()`, `clamp()`, `aspect-ratio`, `max-width`, `min-width: 0` and stable grid track to control scaling.
19
+ 4. Handle data-intensive interfaces: tables, lists, boards, and editors need to explicitly support horizontal scrolling, column prioritization, frozen columns, or mobile summary views.
20
+ 5. Ensure touch and keyboard: touch targets, focus paths, hover substitutions, virtual keyboards, safe areas, and horizontal and vertical screen switching should all be reviewed.
21
+ 6. Correlate performance and resources: The mobile terminal reduces first-screen large images, heavy charts, synchronized animations and unnecessary column rendering.
22
+ 7. Verify between breakpoints: check 375px, 768px, 1024px, 1440px, and whether the intermediate value of the breakpoint overflows, blocks, or jumps.
23
23
 
24
24
  ## Constraints
25
25
 
26
- - 不把桌面版缩小当作移动端设计。
27
- - 不让关键功能只依赖 hover 或宽屏侧栏。
28
- - 不用固定高度掩盖内容变化;需要固定格式时用稳定约束和可滚动区域。
29
- - 不用 viewport 字体缩放替代真实排版层级。
30
- - 不让移动端横向溢出成为默认解决方案;只有数据表、画布或编辑器等明确场景可以局部横滚。
26
+ - Don’t treat the desktop version downsized as a mobile design.
27
+ - Don’t make key features rely solely on hover or widescreen sidebars.
28
+ - Do not use fixed height to cover content changes; use stable constraints and scrollable areas when fixed format is required.
29
+ - Do not use viewport font scaling instead of real typography hierarchy.
30
+ - Do not make mobile horizontal overflow the default solution; only explicit scenes such as data tables, canvases or editors can partially scroll.
31
31
 
32
32
  ## Expected Output
33
33
 
34
- 输出响应式信息优先级、断点或容器策略、关键组件布局模式、触摸/键盘要求、数据密集区域处理方案和验证结果。完成后页面在常见视口和输入方式下不溢出、不遮挡、可操作。
34
+ Outputs responsive information prioritization, breakpoint or container strategies, key component layout patterns, touch/keyboard requirements, data-intensive area handling options, and validation results. After completion, the page will not overflow, not be blocked, and is operable under common viewports and input methods.
@@ -1,16 +1,16 @@
1
- # 响应式布局模式
1
+ # Responsive layout mode
2
2
 
3
- ## 策略选择
3
+ ## Strategy selection
4
4
 
5
- | 场景 | 策略 |
5
+ | Scenario | Strategy |
6
6
  | ---- | ---- |
7
- | 页面级结构 | 移动优先断点 |
8
- | 会被放进未知父容器的复用组件 | 容器查询 |
9
- | 卡片网格 | `repeat(auto-fit, minmax())`,并设置合理最小宽度 |
10
- | 数据表格 | 列优先级、横向滚动或移动端摘要行 |
11
- | 编辑器 / 画布 / dashboard | 稳定外壳 + 可滚动工作区 |
7
+ | Page-level structure | Mobile-first breakpoints |
8
+ | Reused components that will be put into unknown parent containers | Container query |
9
+ | Card grid | `repeat(auto-fit, minmax())` and set a reasonable minimum width |
10
+ | Data tables | Column priority, horizontal scrolling, or mobile summary rows |
11
+ | Editor / canvas / dashboard | Stable shell + scrollable workspace |
12
12
 
13
- ## CSS 模式
13
+ ## CSS Patterns
14
14
 
15
15
  ```css
16
16
  .card-grid {
@@ -32,39 +32,39 @@
32
32
  }
33
33
  ```
34
34
 
35
- 当 grid/flex 子项包含长文本、表格、代码、图表或媒体时,给子项设置 `min-width: 0`。
35
+ When grid/flex items contain long text, tables, code, charts, or media, set `min-width: 0` to the items.
36
36
 
37
- ## 数据密集型界面
37
+ ## Data-intensive interface
38
38
 
39
- - 编码前先确定移动端列优先级。
40
- - 主标识、状态和主要操作保持可见。
41
- - 低优先级元数据移入详情行、抽屉或可展开面板。
42
- - 小屏仍要保留排序、筛选、分页和选择能力。
43
- - 虚拟滚动只解决 DOM 数量问题,不能解决信息层级问题。
44
- - 表格可以局部横向滚动,但页面整体不应出现无意水平溢出。
39
+ - Prioritize mobile columns before coding.
40
+ - The main logo, status and main actions remain visible.
41
+ - Low priority metadata moved to details row, drawer or expandable panel.
42
+ - Small screens must still retain the ability to sort, filter, paging, and select.
43
+ - Virtual scrolling only solves the problem of DOM quantity, but cannot solve the problem of information hierarchy.
44
+ - The table can be partially scrolled horizontally, but the page as a whole should not have unintentional horizontal overflow.
45
45
 
46
- ## 响应式媒体
46
+ ## Responsive media
47
47
 
48
- - 图片和视频要有稳定尺寸、`aspect-ratio` 或容器约束,避免加载后推挤布局。
49
- - 需要多尺寸资源时使用 `srcset`、`sizes` 或 `<picture>`,不要让移动端下载桌面大图。
50
- - 非首屏图片默认懒加载;首屏主体图按框架能力设置明确优先级。
51
- - 媒体裁切必须保留主体信息;不要为了填满卡片裁掉产品、人物、图表关键区域。
48
+ - Images and videos must have stable size, `aspect-ratio` or container constraints to avoid pushing the layout after loading.
49
+ - Use `srcset`, `sizes` or `<picture>` when you need multi-size resources, and do not let the mobile client download desktop large images.
50
+ - Non-first-screen images are lazy-loaded by default; first-screen main images are prioritized clearly based on frame capabilities.
51
+ - Media cropping must retain the main information; do not crop key areas of products, people, or charts just to fill the card.
52
52
 
53
- ## 触控与视口检查
53
+ ## Touch and viewport inspection
54
54
 
55
- - 空间允许时,交互目标至少 44x44px。
56
- - 移动端输入框字号避免低于 16px。
57
- - 固定底部栏和操作条必须考虑 `env(safe-area-inset-bottom)`。
58
- - 对话框和抽屉需要适配虚拟键盘导致的视口变化。
59
- - 只在 hover 时出现的内容必须提供点击、焦点或常驻可见替代方案。
60
- - iOS/Android 横竖屏切换后,主操作、焦点位置和滚动容器仍应可达。
61
- - 需要局部滚动的区域应明确最大高度和滚动边界,避免页面和内部容器互相抢滚动。
55
+ - Interactive targets should be at least 44x44px, space permitting.
56
+ - Avoid lowering the font size of the mobile input box below 16px.
57
+ - Fixed bottom bars and action bars must consider `env(safe-area-inset-bottom)`.
58
+ - Dialog boxes and drawers need to adapt to viewport changes caused by the virtual keyboard.
59
+ - Content that only appears on hover must provide click, focus, or permanently visible alternatives.
60
+ - After switching between horizontal and vertical screens on iOS/Android, the main operation, focus position and scroll container should still be accessible.
61
+ - Areas that require partial scrolling should have a clear maximum height and scrolling boundary to prevent the page and internal containers from competing for scrolling.
62
62
 
63
- ## 验证清单
63
+ ## Verification list
64
64
 
65
- - 320-375px:页面级没有横向溢出。
66
- - 768px:布局切换后阅读顺序仍然合理。
67
- - 1024-1440px:内容宽度有约束,扫描路径清晰。
68
- - 长标签、翻译文本、数字以及 empty/error/loading 状态不会撑坏固定格式控件。
69
- - 横竖屏切换不会困住焦点或隐藏主操作。
70
- - 虚拟键盘弹出时,输入框、提交按钮和错误提示不被遮挡。
65
+ - 320-375px: No horizontal overflow at the page level.
66
+ - 768px: The reading order is still reasonable after the layout is switched.
67
+ - 1024-1440px: The content width is constrained and the scanning path is clear.
68
+ - Long labels, translated text, numbers, and empty/error/loading states will not break fixed format controls.
69
+ - Switching between horizontal and vertical screens will not trap focus or hide the main operation.
70
+ - When the virtual keyboard pops up, the input box, submit button and error prompt are not blocked.
@@ -1,24 +1,24 @@
1
1
  ---
2
2
  name: fec-route-protection
3
- description: Use when implementing or reviewing frontend route protection, auth guards, RBAC, permission routes, login state handling, redirects, middleware, React Router, Next.js, Vue Router, or Nuxt route middleware; Chinese triggers include 路由保护, 权限路由, 登录态.
3
+ description: Use when implementing or reviewing frontend route protection, auth guards, RBAC, permission routes, login state handling, redirects, middleware, React Router, Next.js, Vue Router, or Nuxt route middleware; Chinese triggers include route protection, permission routing, login state.
4
4
  ---
5
5
 
6
- # 路由保护
6
+ #Route protection
7
7
 
8
8
  ## Purpose
9
9
 
10
- 为前端应用建立清晰的认证、授权和重定向边界,避免越权访问与闪烁渲染。
10
+ Establish clear authentication, authorization and redirection boundaries for front-end applications to avoid unauthorized access and flickering rendering.
11
11
 
12
12
  ## When to Use
13
13
 
14
- - 页面需要登录后访问,或不同角色看到不同路由。
15
- - 需要实现 React Router、Next.js、Nuxt 或 Vue Router 的路由守卫。
16
- - 登录过期、权限不足、组织/租户切换需要统一处理。
17
- - 不用于替代服务端授权;前端路由保护只能改善体验,不能作为唯一安全边界。
14
+ - The page needs to be logged in to access, or different roles can see different routes.
15
+ - Requires implementing route guards for React Router, Next.js, Nuxt or Vue Router.
16
+ - Login expiration, insufficient permissions, and organization/tenant switching need to be handled uniformly.
17
+ - Not used to replace server-side authorization; front-end routing protection can only improve the experience and cannot be used as the only security boundary.
18
18
 
19
19
  ## Procedure
20
20
 
21
- ### 1. 定义认证与授权状态
21
+ ### 1. Define authentication and authorization status
22
22
 
23
23
  ```ts
24
24
  export type AuthStatus = "loading" | "anonymous" | "authenticated";
@@ -34,7 +34,7 @@ export function canAccess(user: CurrentUser, required: string[]) {
34
34
  }
35
35
  ```
36
36
 
37
- ### 2. React Router 使用布局守卫
37
+ ### 2. React Router uses layout guards
38
38
 
39
39
  ```tsx
40
40
  import { Navigate, Outlet, useLocation } from "react-router-dom";
@@ -68,7 +68,7 @@ const router = createBrowserRouter([
68
68
  ]);
69
69
  ```
70
70
 
71
- ### 3. Next.js 优先在服务端边界处理
71
+ ### 3. Next.js prioritizes processing at the server boundary
72
72
 
73
73
  ```ts
74
74
  // middleware.ts
@@ -92,9 +92,9 @@ export const config = {
92
92
  };
93
93
  ```
94
94
 
95
- 对需要精细权限的 App Router 页面,在 server component 或 server action 中重新校验权限,不依赖客户端状态。
95
+ For App Router pages that require fine-grained permissions, re-verify permissions in the server component or server action, regardless of client status.
96
96
 
97
- ### 4. Vue Router / Nuxt 使用导航守卫
97
+ ### 4. Vue Router / Nuxt uses navigation guards
98
98
 
99
99
  ```ts
100
100
  router.beforeEach(async (to) => {
@@ -112,24 +112,24 @@ router.beforeEach(async (to) => {
112
112
  });
113
113
  ```
114
114
 
115
- ### 5. 统一失败与跳转体验
115
+ ### 5. Unify failure and jump experience
116
116
 
117
- - `401`:清理过期会话,跳转登录页并保留 `redirect`。
118
- - `403`:进入无权限页,不反复重试。
119
- - `loading`:渲染稳定骨架屏,避免先显示私有内容再跳转。
120
- - 登录成功:只跳转到同源且允许的路径,防止 open redirect。
121
- - RBAC:权限矩阵来自可信会话或后端返回;前端只用于路由体验和 UI 裁剪,不能替代接口授权。
122
- - 会话刷新:401 刷新失败后统一清理状态;避免多个并发请求各自触发跳转或刷新风暴。
117
+ - `401`: Clean up expired sessions, jump to the login page and keep `redirect`.
118
+ - `403`: Enter the unauthorized page, do not try again.
119
+ - `loading`: Render a stable skeleton screen to avoid displaying private content first and then jumping.
120
+ - Successful login: only jump to the same origin and allowed path to prevent open redirect.
121
+ - RBAC: The permission matrix is returned from the trusted session or backend; the frontend is only used for routing experience and UI tailoring, and cannot replace interface authorization.
122
+ - Session refresh: Uniformly clean up status after 401 refresh failure; avoid multiple concurrent requests from triggering jumps or refresh storms.
123
123
 
124
124
  ## Constraints
125
125
 
126
- - 前端路由保护不是安全边界;API、SSR loader、server action 必须重复做授权校验。
127
- - 不要在组件渲染后用 `useEffect` 才跳转私有页面,否则会出现敏感内容闪烁。
128
- - redirect 参数必须限制为站内路径,不能直接信任 URL 输入。
129
- - 权限信息应来自可信会话或后端响应,不要只依赖 localStorage 中的角色字段。
130
- - 多租户应用必须把 tenant/org 上下文纳入权限判断。
131
- - 不把菜单隐藏视为授权完成;用户直接访问 URL、刷新页面、篡改 localStorage 和替换 tenant 都必须验证。
126
+ - Front-end routing protection is not a security boundary; API, SSR loader, and server actions must undergo repeated authorization verification.
127
+ - Do not use `useEffect` to jump to the private page after the component is rendered, otherwise sensitive content will flicker.
128
+ - The redirect parameter must be restricted to within-site paths and URL input cannot be trusted directly.
129
+ - Permission information should come from a trusted session or backend response, don't rely solely on role fields in localStorage.
130
+ - Multi-tenant applications must incorporate the tenant/org context into permission determinations.
131
+ - Menu hiding is not considered authorization completion; users must authenticate when accessing the URL directly, refreshing the page, tampering with localStorage, and replacing tenants.
132
132
 
133
133
  ## Expected Output
134
134
 
135
- 产出一套路由守卫实现,覆盖 loading、未登录、权限不足、登录后回跳和会话过期。验证时直接访问私有 URL、刷新页面、切换角色、篡改 redirect 参数,确认行为稳定且 API 仍有服务端授权。
135
+ Produce a set of routing guard implementations, covering loading, not logged in, insufficient permissions, bounce after login and session expiration. During verification, directly access the private URL, refresh the page, switch roles, and tamper with redirect parameters to confirm that the behavior is stable and the API still has server authorization.
@@ -1,38 +1,38 @@
1
1
  ---
2
2
  name: fec-security-review
3
- description: Use when reviewing frontend security risks such as XSS, CSRF, sensitive data exposure, unsafe DOM APIs, untrusted user input, authentication/token handling, payment flows, file upload, CSP, dependency risk, or third-party scripts; Chinese triggers include 安全审查, 安全检查.
3
+ description: Use when reviewing frontend security risks such as XSS, CSRF, sensitive data exposure, unsafe DOM APIs, untrusted user input, authentication/token handling, payment flows, file upload, CSP, dependency risk, or third-party scripts; Chinese triggers include security review, security check.
4
4
  ---
5
5
 
6
- # 前端安全审查
6
+ # Front-end security review
7
7
 
8
8
  ## Purpose
9
9
 
10
- 识别前端代码中的客户端安全风险,并给出可执行修复建议。
10
+ Identify client-side security risks in front-end code and recommend actionable fixes.
11
11
 
12
12
  ## Procedure
13
13
 
14
- 1. 先确认审查面:用户输入、动态 HTML、URL 跳转、认证态、RBAC、文件上传、支付/删除等敏感操作、第三方脚本和依赖。
15
- 2. 搜索高危模式:`dangerouslySetInnerHTML`、`v-html`、`innerHTML`、`document.write`、动态 script、未校验 redirect、明文 token。
16
- 3. 按风险类型审查:XSS、CSP、敏感数据、CSRF、依赖、输入校验、文件上传、开放重定向、认证授权和第三方脚本。
17
- 4. 用边界模型判断责任:客户端只能改善体验和减少误用,鉴权、授权、上传信任和敏感操作必须由服务端最终裁决。
18
- 5. 高危问题标记为阻塞合并;前端校验只能改善体验,不能作为唯一安全边界。
19
- 6. 输出分级安全报告;报告格式见 [references/report-template.md](references/report-template.md)。
14
+ 1. First confirm the review areas: user input, dynamic HTML, URL jump, authentication status, RBAC, file upload, payment/deletion and other sensitive operations, third-party scripts and dependencies.
15
+ 2. Search for high-risk patterns: `dangerouslySetInnerHTML`, `v-html`, `innerHTML`, `document.write`, dynamic script, unverified redirect, and plain text token.
16
+ 3. Review by risk type: XSS, CSP, sensitive data, CSRF, dependencies, input validation, file upload, open redirection, authentication authorization and third-party scripts.
17
+ 4. Use the boundary model to determine responsibility: The client can only improve the experience and reduce misuse. Authentication, authorization, upload trust and sensitive operations must be finalized by the server.
18
+ 5. High-risk issues are marked as blocking merges; front-end verification can only improve the experience and cannot be used as the only security boundary.
19
+ 6. Output a hierarchical security report; see [references/report-template.md](references/report-template.md) for the report format.
20
20
 
21
- ## 详细参考
21
+ ## Detailed reference
22
22
 
23
- - 需要 XSS、CSP、敏感数据、CSRF、依赖和输入校验细节时,加载 [references/security-checklist.md](references/security-checklist.md)。
24
- - 撰写安全审查报告时,加载 [references/report-template.md](references/report-template.md)。
23
+ - Load [references/security-checklist.md](references/security-checklist.md) when XSS, CSP, sensitive data, CSRF, dependencies and input validation details are required.
24
+ - When writing a security review report, load [references/report-template.md](references/report-template.md).
25
25
 
26
26
  ## Constraints
27
27
 
28
- - 不要为了方便开发而绕过安全机制。
29
- - 不要依赖前端校验作为唯一安全防线。
30
- - 不要信任任何来自客户端的数据。
31
- - 发现高危问题时必须标记为阻塞合并。
32
- - 与通用代码质量 review 分工:本 skill 关注威胁、攻击面和数据泄露。
33
- - 不把依赖审计结果机械等同为可利用漏洞;需要结合运行路径、暴露面和修复成本判断。
34
- - 不把隐藏按钮、前端路由守卫或本地角色字段当作授权边界;API、SSR loader、server action 和敏感操作必须有服务端裁决。
28
+ - Don't bypass security mechanisms to facilitate development.
29
+ - Don't rely on front-end validation as your only line of security.
30
+ - Do not trust any data coming from the client.
31
+ - High-risk issues must be marked as blocking merges when found.
32
+ - Separated from general code quality review: This skill focuses on threats, attack surfaces, and data breaches.
33
+ - Do not mechanically equate dependence on audit results with exploitable vulnerabilities; judgments need to be made based on the running path, exposure surface and repair cost.
34
+ - Do not treat hidden buttons, front-end route guards, or local role fields as authorization boundaries; APIs, SSR loaders, server actions, and sensitive operations must have server-side arbitration.
35
35
 
36
36
  ## Expected Output
37
37
 
38
- 输出 CRITICAL/HIGH/MEDIUM/LOW 分级安全审查报告,每个问题关联具体文件和行号,给出修复建议;报告保存为 `reports/security-review-YYYY-MM-DD-HHmmss.md`。
38
+ Output a CRITICAL/HIGH/MEDIUM/LOW graded security review report. Each issue is associated with a specific file and line number, and repair suggestions are given; the report is saved as `reports/security-review-YYYY-MM-DD-HHmmss.md`.
@@ -1,27 +1,27 @@
1
- # 安全审查报告模板
1
+ # Security review report template
2
2
 
3
3
  ```markdown
4
- # 安全审查报告
4
+ # Security Review Report
5
5
 
6
- > 生成时间: YYYY-MM-DD HH:mm
7
- > 评审工具: frontend-craft
6
+ > Generation time: YYYY-MM-DD HH:mm
7
+ > Review tool: frontend-craft
8
8
 
9
- ## CRITICAL / 高危 (N项)
10
- - **[文件:行号]** 风险描述 -> 修复建议
9
+ ## CRITICAL / HIGH RISK (N items)
10
+ - **[File:line number]** Risk description -> Repair suggestions
11
11
 
12
- ## HIGH / 中高危 (N项)
12
+ ## HIGH / Medium to high risk (N items)
13
13
  - ...
14
14
 
15
- ## MEDIUM / 中危 (N项)
15
+ ## MEDIUM / medium risk (N items)
16
16
  - ...
17
17
 
18
- ## LOW / 低危或建议 (N项)
18
+ ## LOW / low risk or recommended (N items)
19
19
  - ...
20
20
 
21
- ## 已通过的安全检查
21
+ ## Passed security check
22
22
  - ...
23
23
 
24
- **整体安全等级**: 安全 / 存在风险 / 高危需修复
24
+ **Overall security level**: safe / risky / high risk and needs to be repaired
25
25
  ```
26
26
 
27
- 审查完成后,将报告保存到 `reports/security-review-YYYY-MM-DD-HHmmss.md`,并告知用户报告路径。
27
+ After the review is completed, save the report to `reports/security-review-YYYY-MM-DD-HHmmss.md` and inform the user of the report path.
@@ -1,12 +1,12 @@
1
- # 前端安全审查清单
1
+ # Front-end security review checklist
2
2
 
3
3
  ## XSS
4
4
 
5
- - `dangerouslySetInnerHTML` 和 `v-html` 必须有明确理由和输入净化。
6
- - 用户输入不得直接插入 DOM、`innerHTML`、`document.write`。
7
- - URL 参数不得直接用于页面渲染。
8
- - 动态生成的 `<script>` 标签必须审查来源。
9
- - 富文本使用 DOMPurify 等库,并配置标签、属性、协议白名单。
5
+ - `dangerouslySetInnerHTML` and `v-html` must have explicit reason and input sanitization.
6
+ - User input must not be inserted directly into the DOM, `innerHTML`, `document.write`.
7
+ - URL parameters must not be used directly in page rendering.
8
+ - Dynamically generated `<script>` tags must be sourced.
9
+ - Rich text uses libraries such as DOMPurify and configures tags, attributes, and protocol whitelists.
10
10
 
11
11
  ```ts
12
12
  import DOMPurify from "dompurify";
@@ -18,7 +18,7 @@ const clean = DOMPurify.sanitize(dirtyHtml, {
18
18
  });
19
19
  ```
20
20
 
21
- ## 安全重定向
21
+ ## Safe redirection
22
22
 
23
23
  ```ts
24
24
  function safeRedirect(url: string): string {
@@ -29,36 +29,36 @@ function safeRedirect(url: string): string {
29
29
 
30
30
  ## CSP
31
31
 
32
- - 推荐先用 `Content-Security-Policy-Report-Only` 验证。
33
- - `default-src 'self'`、`object-src 'none'`、`frame-ancestors 'none'`、`base-uri 'self'` 是常见底线。
34
- - 避免 `'unsafe-eval'`;内联脚本优先 nonce。
32
+ - It is recommended to verify with `Content-Security-Policy-Report-Only` first.
33
+ - `default-src 'self'`, `object-src 'none'`, `frame-ancestors 'none'`, `base-uri 'self'` are common bottom lines.
34
+ - Avoid `'unsafe-eval''; inline scripts take precedence over nonce.
35
35
 
36
36
  ```http
37
37
  Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'none'; base-uri 'self'; form-action 'self';
38
38
  ```
39
39
 
40
- ## 敏感数据
40
+ ## Sensitive data
41
41
 
42
- - 禁止前端硬编码 API Key、Secret、密码。
43
- - 禁止 localStorage/sessionStorage/IndexedDB 存明文 token、密码、信用卡信息。
44
- - 禁止 URL query 参数传 token 或密码。
45
- - 禁止 console.log 或错误上报携带隐私数据。
46
- - Token 优先 httpOnly + Secure + SameSite cookie。
42
+ - It is prohibited to hard-code API Key, Secret, and password on the front end.
43
+ - LocalStorage/sessionStorage/IndexedDB is prohibited from storing plain text tokens, passwords, and credit card information.
44
+ - Prohibit URL query parameters from passing token or password.
45
+ - Console.log or error reports are prohibited from carrying private data.
46
+ - Token priority httpOnly + Secure + SameSite cookie.
47
47
 
48
48
  ## CSRF
49
49
 
50
- - 变更操作必须携带 CSRF token 或使用同等后端防护。
51
- - 关键操作不要使用 GET。
52
- - 检查后端是否校验 `Origin` / `Referer`。
50
+ - Change operations must carry CSRF tokens or use equivalent backend protection.
51
+ - Do not use GET for critical operations.
52
+ - Check whether the backend verifies `Origin` / `Referer`.
53
53
 
54
- ## 依赖与第三方脚本
54
+ ## Dependencies and third-party scripts
55
55
 
56
- - 定期审查依赖安全公告。
57
- - 禁止从非官方 CDN 加载脚本,除非有 SRI 和来源审查。
58
- - 动态加载第三方脚本必须有业务必要性和降级策略。
56
+ - Regularly review dependency security bulletins.
57
+ - Disallow script loading from unofficial CDNs unless SRI and source vetted.
58
+ - Dynamically loading third-party scripts must have business necessity and a downgrade strategy.
59
59
 
60
- ## 输入校验与文件上传
60
+ ## Input verification and file upload
61
61
 
62
- - 前端校验不是安全边界,后端必须二次校验。
63
- - 文件上传校验 MIME、大小、扩展名和内容;不能只看扩展名。
64
- - 正则校验注意 ReDoS 风险。
62
+ - Front-end verification is not a security boundary, and the back-end must be verified twice.
63
+ - File uploads verify MIME, size, extension and content; don't just look at the extension.
64
+ - Pay attention to ReDoS risks in regular verification.