@bovinphang/frontend-craft 2.7.0 → 2.9.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 (502) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +378 -305
  4. package/CHANGELOG.zh-CN.md +377 -304
  5. package/CONTRIBUTING.md +371 -361
  6. package/CONTRIBUTING.zh-CN.md +371 -361
  7. package/README.md +545 -493
  8. package/README.openclaw.md +359 -264
  9. package/README.openclaw.zh-CN.md +359 -264
  10. package/README.zh-CN.md +545 -493
  11. package/agents/fec-architect.md +70 -70
  12. package/agents/fec-code-reviewer.md +103 -82
  13. package/agents/fec-debugger.md +20 -20
  14. package/agents/fec-design-token-mapper.md +36 -36
  15. package/agents/fec-doc-updater.md +13 -13
  16. package/agents/fec-e2e-runner.md +45 -45
  17. package/agents/fec-figma-implementer.md +59 -59
  18. package/agents/fec-performance-optimizer.md +128 -128
  19. package/agents/fec-refactor-cleaner.md +17 -14
  20. package/agents/fec-refactoring-expert.md +81 -0
  21. package/agents/fec-security-reviewer.md +82 -67
  22. package/agents/fec-test-planner.md +27 -27
  23. package/agents/fec-typescript-reviewer.md +103 -87
  24. package/agents/fec-ui-checker.md +64 -64
  25. package/commands/fec-debug.md +19 -19
  26. package/commands/fec-doc-sync.md +11 -11
  27. package/commands/fec-init.md +37 -38
  28. package/commands/fec-plan.md +58 -58
  29. package/commands/fec-refactor-clean.md +11 -11
  30. package/commands/fec-refactor-plan.md +17 -0
  31. package/commands/fec-refactor.md +18 -0
  32. package/commands/fec-review.md +71 -41
  33. package/commands/fec-scaffold.md +41 -41
  34. package/commands/fec-smell.md +17 -0
  35. package/commands/fec-tdd.md +17 -13
  36. package/dist/bin/frontend-craft.js +190 -36
  37. package/dist/hooks/fec-run-tests.js +5 -1
  38. package/dist/hooks/fec-session-start.js +1 -1
  39. package/docs/example-prompts.md +157 -137
  40. package/docs/ja-JP/README.md +534 -493
  41. package/docs/ko-KR/README.md +534 -493
  42. package/docs/project-structure.md +151 -123
  43. package/docs/refactoring/README.md +50 -0
  44. package/docs/refactoring/catalog.md +105 -0
  45. package/docs/refactoring/smell-refactoring-matrix.md +41 -0
  46. package/docs/review-and-diagram-workflows.md +39 -0
  47. package/docs/runtimes/antigravity.md +18 -10
  48. package/docs/runtimes/augment.md +18 -10
  49. package/docs/runtimes/claude.md +191 -177
  50. package/docs/runtimes/claude.zh-CN.md +189 -175
  51. package/docs/runtimes/cline.md +18 -10
  52. package/docs/runtimes/codebuddy.md +18 -10
  53. package/docs/runtimes/codex.md +18 -10
  54. package/docs/runtimes/compatibility.md +27 -0
  55. package/docs/runtimes/copilot.md +18 -10
  56. package/docs/runtimes/cursor.md +18 -10
  57. package/docs/runtimes/gemini.md +18 -10
  58. package/docs/runtimes/kilo.md +18 -10
  59. package/docs/runtimes/openclaw.md +18 -10
  60. package/docs/runtimes/opencode.md +18 -10
  61. package/docs/runtimes/qoder.md +18 -19
  62. package/docs/runtimes/trae.md +18 -10
  63. package/docs/runtimes/windsurf.md +18 -10
  64. package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
  65. package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
  66. package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
  67. package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
  68. package/docs/zh-CN/example-prompts.md +157 -137
  69. package/docs/zh-CN/project-structure.md +148 -123
  70. package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
  71. package/docs/zh-TW/README.md +534 -493
  72. package/localized/zh-CN/agents/fec-architect.md +125 -0
  73. package/localized/zh-CN/agents/fec-code-reviewer.md +171 -0
  74. package/localized/zh-CN/agents/fec-debugger.md +44 -0
  75. package/localized/zh-CN/agents/fec-design-token-mapper.md +75 -0
  76. package/localized/zh-CN/agents/fec-doc-updater.md +30 -0
  77. package/localized/zh-CN/agents/fec-e2e-runner.md +107 -0
  78. package/localized/zh-CN/agents/fec-figma-implementer.md +104 -0
  79. package/localized/zh-CN/agents/fec-performance-optimizer.md +293 -0
  80. package/localized/zh-CN/agents/fec-refactor-cleaner.md +35 -0
  81. package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
  82. package/localized/zh-CN/agents/fec-security-reviewer.md +132 -0
  83. package/localized/zh-CN/agents/fec-test-planner.md +50 -0
  84. package/localized/zh-CN/agents/fec-typescript-reviewer.md +158 -0
  85. package/localized/zh-CN/agents/fec-ui-checker.md +120 -0
  86. package/localized/zh-CN/commands/fec-debug.md +30 -0
  87. package/localized/zh-CN/commands/fec-doc-sync.md +19 -0
  88. package/localized/zh-CN/commands/fec-init.md +70 -0
  89. package/localized/zh-CN/commands/fec-plan.md +94 -0
  90. package/localized/zh-CN/commands/fec-refactor-clean.md +19 -0
  91. package/localized/zh-CN/commands/fec-refactor-plan.md +15 -0
  92. package/localized/zh-CN/commands/fec-refactor.md +14 -0
  93. package/localized/zh-CN/commands/fec-review.md +97 -0
  94. package/localized/zh-CN/commands/fec-scaffold.md +205 -0
  95. package/localized/zh-CN/commands/fec-smell.md +13 -0
  96. package/localized/zh-CN/commands/fec-tdd.md +25 -0
  97. package/localized/zh-CN/skills/TEMPLATE.md +155 -0
  98. package/localized/zh-CN/skills/eval_queries.json +1257 -0
  99. package/localized/zh-CN/skills/fec-accessibility-check/SKILL.md +39 -0
  100. package/localized/zh-CN/skills/fec-accessibility-check/references/report-template.md +23 -0
  101. package/localized/zh-CN/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
  102. package/localized/zh-CN/skills/fec-alchemy/SKILL.md +74 -0
  103. package/localized/zh-CN/skills/fec-alchemy/assets/absorption-plan-template.md +47 -0
  104. package/localized/zh-CN/skills/fec-alchemy/assets/intake-template.md +55 -0
  105. package/localized/zh-CN/skills/fec-alchemy/assets/review-checklist.md +31 -0
  106. package/localized/zh-CN/skills/fec-alchemy/references/methodology.md +94 -0
  107. package/localized/zh-CN/skills/fec-alchemy/references/originality-and-licensing.md +57 -0
  108. package/localized/zh-CN/skills/fec-api-integration/SKILL.md +78 -0
  109. package/localized/zh-CN/skills/fec-api-integration/references/integration-patterns.md +80 -0
  110. package/localized/zh-CN/skills/fec-backend-requirements-handoff/SKILL.md +45 -0
  111. package/localized/zh-CN/skills/fec-browser-storage/SKILL.md +34 -0
  112. package/localized/zh-CN/skills/fec-browser-storage/references/storage-patterns.md +65 -0
  113. package/localized/zh-CN/skills/fec-canvas-threejs/SKILL.md +66 -0
  114. package/localized/zh-CN/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
  115. package/localized/zh-CN/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
  116. package/localized/zh-CN/skills/fec-code-review/SKILL.md +162 -0
  117. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +39 -0
  118. package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
  119. package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
  120. package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
  121. package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  122. package/localized/zh-CN/skills/fec-component-testing/SKILL.md +119 -0
  123. package/localized/zh-CN/skills/fec-data-fetching/SKILL.md +62 -0
  124. package/localized/zh-CN/skills/fec-data-fetching/references/query-patterns.md +103 -0
  125. package/localized/zh-CN/skills/fec-debug-framework/SKILL.md +157 -0
  126. package/localized/zh-CN/skills/fec-debug-framework/references/report-template.md +58 -0
  127. package/localized/zh-CN/skills/fec-dependency-upgrade/SKILL.md +34 -0
  128. package/localized/zh-CN/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
  129. package/localized/zh-CN/skills/fec-doc-sync/SKILL.md +39 -0
  130. package/localized/zh-CN/skills/fec-drawio-studio/SKILL.md +73 -0
  131. package/localized/zh-CN/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +10 -0
  132. package/localized/zh-CN/skills/fec-drawio-studio/data/brand-icons.json +878 -0
  133. package/localized/zh-CN/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  134. package/localized/zh-CN/skills/fec-drawio-studio/references/data-residency.md +27 -0
  135. package/localized/zh-CN/skills/fec-drawio-studio/references/diagram-patterns.md +60 -0
  136. package/localized/zh-CN/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  137. package/localized/zh-CN/skills/fec-drawio-studio/references/layout-and-export.md +72 -0
  138. package/localized/zh-CN/skills/fec-drawio-studio/references/troubleshooting.md +29 -0
  139. package/localized/zh-CN/skills/fec-drawio-studio/references/xml-and-mermaid.md +58 -0
  140. package/localized/zh-CN/skills/fec-drawio-studio/scripts/brand-symbols.mjs +99 -0
  141. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-lint.mjs +205 -0
  142. package/localized/zh-CN/skills/fec-drawio-studio/scripts/diagram-url.mjs +102 -0
  143. package/localized/zh-CN/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  144. package/localized/zh-CN/skills/fec-drawio-studio/scripts/layout-graph.mjs +107 -0
  145. package/localized/zh-CN/skills/fec-drawio-studio/scripts/png-embed-fix.mjs +26 -0
  146. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-go-packages.mjs +36 -0
  147. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-js-modules.mjs +52 -0
  148. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-classes.mjs +30 -0
  149. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-python-modules.mjs +55 -0
  150. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-rust-modules.mjs +35 -0
  151. package/localized/zh-CN/skills/fec-drawio-studio/scripts/scan-ts-modules.mjs +7 -0
  152. package/localized/zh-CN/skills/fec-drawio-studio/scripts/shape-query.mjs +121 -0
  153. package/localized/zh-CN/skills/fec-drawio-studio/scripts/studio-core.mjs +139 -0
  154. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/corporate.json +49 -0
  155. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/default.json +49 -0
  156. package/localized/zh-CN/skills/fec-drawio-studio/styles/built-in/handdrawn.json +49 -0
  157. package/localized/zh-CN/skills/fec-drawio-studio/styles/schema.json +112 -0
  158. package/localized/zh-CN/skills/fec-e2e-testing/SKILL.md +42 -0
  159. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-ci-reporting.md +62 -0
  160. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-special-scenarios.md +52 -0
  161. package/localized/zh-CN/skills/fec-e2e-testing/references/e2e-visual-regression.md +60 -0
  162. package/localized/zh-CN/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
  163. package/localized/zh-CN/skills/fec-form-handling/SKILL.md +76 -0
  164. package/localized/zh-CN/skills/fec-form-handling/references/advanced-form-patterns.md +101 -0
  165. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +110 -0
  166. package/localized/zh-CN/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  167. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  168. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  169. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  170. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  171. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  172. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  173. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  174. package/localized/zh-CN/skills/fec-image-generation/references/artifact-routing.md +80 -0
  175. package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +81 -0
  176. package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
  177. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +37 -0
  178. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  179. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  180. package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +332 -0
  181. package/localized/zh-CN/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  182. package/localized/zh-CN/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  183. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +462 -0
  184. package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -0
  185. package/localized/zh-CN/skills/fec-implement-from-design/SKILL.md +129 -0
  186. package/localized/zh-CN/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
  187. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/SKILL.md +46 -0
  188. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +110 -0
  189. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
  190. package/localized/zh-CN/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +48 -0
  191. package/localized/zh-CN/skills/fec-legacy-web-standard/SKILL.md +35 -0
  192. package/localized/zh-CN/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
  193. package/localized/zh-CN/skills/fec-list-virtualization/SKILL.md +34 -0
  194. package/localized/zh-CN/skills/fec-list-virtualization/references/virtualization-patterns.md +80 -0
  195. package/localized/zh-CN/skills/fec-monorepo-project-standard/SKILL.md +142 -0
  196. package/localized/zh-CN/skills/fec-motion-interaction/SKILL.md +73 -0
  197. package/localized/zh-CN/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
  198. package/localized/zh-CN/skills/fec-nextjs-project-standard/SKILL.md +123 -0
  199. package/localized/zh-CN/skills/fec-nuxt-project-standard/SKILL.md +122 -0
  200. package/localized/zh-CN/skills/fec-performance-optimization/SKILL.md +80 -0
  201. package/localized/zh-CN/skills/fec-performance-optimization/references/framework-performance-patterns.md +38 -0
  202. package/localized/zh-CN/skills/fec-performance-optimization/references/report-template.md +59 -0
  203. package/localized/zh-CN/skills/fec-pwa-implementation/SKILL.md +35 -0
  204. package/localized/zh-CN/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
  205. package/localized/zh-CN/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
  206. package/localized/zh-CN/skills/fec-react-project-standard/SKILL.md +91 -0
  207. package/localized/zh-CN/skills/fec-react-project-standard/references/react-performance-patterns.md +35 -0
  208. package/localized/zh-CN/skills/fec-react-project-standard/references/react-project-structure.md +197 -0
  209. package/localized/zh-CN/skills/fec-react-project-standard/references/react-quality-patterns.md +131 -0
  210. package/localized/zh-CN/skills/fec-react-project-standard/references/react-runtime-patterns.md +293 -0
  211. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +54 -0
  212. package/localized/zh-CN/skills/fec-refactor-clean/references/report-template.md +42 -0
  213. package/localized/zh-CN/skills/fec-refactoring/SKILL.md +83 -0
  214. package/localized/zh-CN/skills/fec-refactoring/references/principles.md +43 -0
  215. package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
  216. package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
  217. package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +59 -0
  218. package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
  219. package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  220. package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
  221. package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  222. package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  223. package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
  224. package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
  225. package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  226. package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
  227. package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  228. package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  229. package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  230. package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
  231. package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  232. package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  233. package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  234. package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
  235. package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  236. package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
  237. package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
  238. package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -0
  239. package/localized/zh-CN/skills/fec-responsive-layout/SKILL.md +34 -0
  240. package/localized/zh-CN/skills/fec-responsive-layout/references/responsive-layout-patterns.md +70 -0
  241. package/localized/zh-CN/skills/fec-route-protection/SKILL.md +135 -0
  242. package/localized/zh-CN/skills/fec-security-review/SKILL.md +54 -0
  243. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +37 -0
  244. package/localized/zh-CN/skills/fec-security-review/references/security-checklist.md +64 -0
  245. package/localized/zh-CN/skills/fec-source-driven-development/SKILL.md +87 -0
  246. package/localized/zh-CN/skills/fec-state-management/SKILL.md +140 -0
  247. package/localized/zh-CN/skills/fec-state-management/references/state-patterns.md +109 -0
  248. package/localized/zh-CN/skills/fec-storybook-component-doc/SKILL.md +37 -0
  249. package/localized/zh-CN/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
  250. package/localized/zh-CN/skills/fec-svg-animation/SKILL.md +148 -0
  251. package/localized/zh-CN/skills/fec-tailwind-design-system/SKILL.md +34 -0
  252. package/localized/zh-CN/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +59 -0
  253. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +55 -0
  254. package/localized/zh-CN/skills/fec-testing-strategy/SKILL.md +45 -0
  255. package/localized/zh-CN/skills/fec-typescript-project-standard/SKILL.md +54 -0
  256. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety-patterns.md +102 -0
  257. package/localized/zh-CN/skills/fec-typescript-project-standard/references/type-safety.md +148 -0
  258. package/localized/zh-CN/skills/fec-ui-design/SKILL.md +108 -0
  259. package/localized/zh-CN/skills/fec-ui-design/data/product-rules.json +231 -0
  260. package/localized/zh-CN/skills/fec-ui-design/data/stack-ui-rules.json +146 -0
  261. package/localized/zh-CN/skills/fec-ui-design/data/style-archetypes.json +373 -0
  262. package/localized/zh-CN/skills/fec-ui-design/data/ux-quality-rules.json +203 -0
  263. package/localized/zh-CN/skills/fec-ui-design/references/design-intelligence.md +97 -0
  264. package/localized/zh-CN/skills/fec-ui-design/references/master-page-overrides.md +30 -0
  265. package/localized/zh-CN/skills/fec-ui-design/references/pre-delivery-checklist.md +39 -0
  266. package/localized/zh-CN/skills/fec-ui-design/scripts/design-system.mjs +648 -0
  267. package/localized/zh-CN/skills/fec-validation-fix/SKILL.md +51 -0
  268. package/localized/zh-CN/skills/fec-validation-fix/references/report-template.md +43 -0
  269. package/localized/zh-CN/skills/fec-vite-project-standard/SKILL.md +83 -0
  270. package/localized/zh-CN/skills/fec-vue3-project-standard/SKILL.md +58 -0
  271. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +162 -0
  272. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +13 -0
  273. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-project-structure.md +176 -0
  274. package/localized/zh-CN/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +216 -0
  275. package/localized/zh-CN/skills/fec-web-video-presentation/SKILL.md +61 -0
  276. package/localized/zh-CN/skills/fec-web-video-presentation/data/starter-themes.json +59 -0
  277. package/localized/zh-CN/skills/fec-web-video-presentation/references/chapter-craft.md +37 -0
  278. package/localized/zh-CN/skills/fec-web-video-presentation/references/content-plan.md +38 -0
  279. package/localized/zh-CN/skills/fec-web-video-presentation/references/recording-and-audio.md +33 -0
  280. package/localized/zh-CN/skills/fec-web-video-presentation/references/theme-system.md +36 -0
  281. package/localized/zh-CN/skills/fec-web-video-presentation/scripts/create-video-presentation.mjs +430 -0
  282. package/localized/zh-CN/skills/fec-web-workers/SKILL.md +35 -0
  283. package/localized/zh-CN/skills/fec-web-workers/references/advanced-workers.md +54 -0
  284. package/localized/zh-CN/skills/fec-web-workers/references/basic-worker.md +67 -0
  285. package/localized/zh-CN/skills/metadata.json +2004 -0
  286. package/localized/zh-CN/skills/relations.json +1023 -0
  287. package/localized/zh-CN/templates/claude/CLAUDE.md +106 -0
  288. package/localized/zh-CN/templates/claude/settings.json +62 -0
  289. package/localized/zh-CN/templates/codex/AGENTS.md +105 -0
  290. package/localized/zh-CN/templates/codex/config.toml +32 -0
  291. package/localized/zh-CN/templates/openclaw/AGENTS.md +101 -0
  292. package/localized/zh-CN/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
  293. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +55 -0
  294. package/localized/zh-CN/templates/shared/rules/fec-api-layer.md +99 -0
  295. package/localized/zh-CN/templates/shared/rules/fec-ci-cd.md +40 -0
  296. package/localized/zh-CN/templates/shared/rules/fec-code-comments.md +33 -0
  297. package/localized/zh-CN/templates/shared/rules/fec-design-system.md +72 -0
  298. package/localized/zh-CN/templates/shared/rules/fec-error-handling.md +56 -0
  299. package/localized/zh-CN/templates/shared/rules/fec-git-conventions.md +73 -0
  300. package/localized/zh-CN/templates/shared/rules/fec-i18n.md +64 -0
  301. package/localized/zh-CN/templates/shared/rules/fec-naming-conventions.md +120 -0
  302. package/localized/zh-CN/templates/shared/rules/fec-performance.md +101 -0
  303. package/localized/zh-CN/templates/shared/rules/fec-react.md +82 -0
  304. package/localized/zh-CN/templates/shared/rules/fec-refactoring.md +47 -0
  305. package/localized/zh-CN/templates/shared/rules/fec-rendering-patterns.md +40 -0
  306. package/localized/zh-CN/templates/shared/rules/fec-responsive-design.md +50 -0
  307. package/localized/zh-CN/templates/shared/rules/fec-source-driven-development.md +31 -0
  308. package/localized/zh-CN/templates/shared/rules/fec-state-management.md +60 -0
  309. package/localized/zh-CN/templates/shared/rules/fec-testing.md +98 -0
  310. package/localized/zh-CN/templates/shared/rules/fec-typescript.md +112 -0
  311. package/localized/zh-CN/templates/shared/rules/fec-vue.md +64 -0
  312. package/localized/zh-CN/templates/shared/rules/fec-working-modes.md +50 -0
  313. package/openclaw.plugin.json +2 -3
  314. package/package.json +28 -17
  315. package/skills/TEMPLATE.md +74 -74
  316. package/skills/eval_queries.json +922 -678
  317. package/skills/fec-accessibility-check/SKILL.md +21 -21
  318. package/skills/fec-accessibility-check/references/report-template.md +12 -12
  319. package/skills/fec-accessibility-check/references/screen-reader-testing.md +24 -24
  320. package/skills/fec-alchemy/SKILL.md +50 -50
  321. package/skills/fec-alchemy/assets/absorption-plan-template.md +32 -32
  322. package/skills/fec-alchemy/assets/intake-template.md +55 -55
  323. package/skills/fec-alchemy/assets/review-checklist.md +23 -23
  324. package/skills/fec-alchemy/references/methodology.md +66 -66
  325. package/skills/fec-alchemy/references/originality-and-licensing.md +42 -42
  326. package/skills/fec-api-integration/SKILL.md +61 -61
  327. package/skills/fec-api-integration/references/integration-patterns.md +30 -30
  328. package/skills/fec-backend-requirements-handoff/SKILL.md +25 -25
  329. package/skills/fec-browser-storage/SKILL.md +16 -16
  330. package/skills/fec-browser-storage/references/storage-patterns.md +16 -16
  331. package/skills/fec-canvas-threejs/SKILL.md +21 -21
  332. package/skills/fec-canvas-threejs/references/rendering-patterns.md +10 -10
  333. package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +37 -37
  334. package/skills/fec-code-review/SKILL.md +113 -94
  335. package/skills/fec-code-review/references/report-template.md +23 -13
  336. package/skills/fec-code-smells/SKILL.md +33 -0
  337. package/skills/fec-code-smells/references/detection-guide.md +25 -0
  338. package/skills/fec-code-smells/references/smell-catalog.md +861 -0
  339. package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  340. package/skills/fec-component-testing/SKILL.md +39 -39
  341. package/skills/fec-data-fetching/SKILL.md +16 -16
  342. package/skills/fec-data-fetching/references/query-patterns.md +27 -27
  343. package/skills/fec-debug-framework/SKILL.md +95 -95
  344. package/skills/fec-debug-framework/references/report-template.md +34 -34
  345. package/skills/fec-dependency-upgrade/SKILL.md +17 -17
  346. package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +31 -31
  347. package/skills/fec-doc-sync/SKILL.md +23 -23
  348. package/skills/fec-drawio-studio/SKILL.md +42 -38
  349. package/skills/fec-drawio-studio/data/THIRD_PARTY_NOTICES.md +1 -1
  350. package/skills/fec-drawio-studio/data/shape-index.json +83570 -0
  351. package/skills/fec-drawio-studio/references/diagram-patterns.md +19 -0
  352. package/skills/fec-drawio-studio/references/flowchart-quality.md +49 -0
  353. package/skills/fec-drawio-studio/references/layout-and-export.md +18 -3
  354. package/skills/fec-drawio-studio/references/xml-and-mermaid.md +5 -1
  355. package/skills/fec-drawio-studio/scripts/diagram-lint.mjs +62 -0
  356. package/skills/fec-drawio-studio/scripts/drawio-export.mjs +134 -0
  357. package/skills/fec-drawio-studio/scripts/shape-query.mjs +55 -15
  358. package/skills/fec-e2e-testing/SKILL.md +24 -24
  359. package/skills/fec-e2e-testing/references/e2e-ci-reporting.md +20 -20
  360. package/skills/fec-e2e-testing/references/e2e-special-scenarios.md +10 -10
  361. package/skills/fec-e2e-testing/references/e2e-visual-regression.md +17 -17
  362. package/skills/fec-e2e-testing/references/playwright-patterns.md +6 -6
  363. package/skills/fec-form-handling/SKILL.md +21 -21
  364. package/skills/fec-form-handling/references/advanced-form-patterns.md +41 -41
  365. package/skills/fec-image-generation/SKILL.md +84 -29
  366. package/skills/fec-image-generation/assets/interactive-diagram.html +371 -0
  367. package/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  368. package/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  369. package/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  370. package/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  371. package/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  372. package/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  373. package/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  374. package/skills/fec-image-generation/references/diagram-workflows.md +41 -3
  375. package/skills/fec-image-generation/references/html-technical-diagrams.md +243 -0
  376. package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  377. package/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  378. package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  379. package/skills/fec-image-generation/scripts/export-diagram.mjs +332 -0
  380. package/skills/fec-image-generation/scripts/interactive-diagram-server.mjs +654 -0
  381. package/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  382. package/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
  383. package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +1537 -0
  384. package/skills/fec-implement-from-design/SKILL.md +81 -81
  385. package/skills/fec-implement-from-design/references/design-plan-template.md +16 -16
  386. package/skills/fec-legacy-to-modern-migration/SKILL.md +29 -29
  387. package/skills/fec-legacy-to-modern-migration/references/migration-execution-checklist.md +81 -81
  388. package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +37 -37
  389. package/skills/fec-legacy-to-modern-migration/references/migration-strategy-and-mapping.md +31 -31
  390. package/skills/fec-legacy-web-standard/SKILL.md +17 -17
  391. package/skills/fec-legacy-web-standard/references/legacy-patterns.md +16 -16
  392. package/skills/fec-list-virtualization/SKILL.md +16 -16
  393. package/skills/fec-list-virtualization/references/virtualization-patterns.md +31 -31
  394. package/skills/fec-monorepo-project-standard/SKILL.md +52 -52
  395. package/skills/fec-motion-interaction/SKILL.md +51 -51
  396. package/skills/fec-motion-interaction/references/motion-patterns.md +11 -11
  397. package/skills/fec-nextjs-project-standard/SKILL.md +64 -64
  398. package/skills/fec-nuxt-project-standard/SKILL.md +57 -57
  399. package/skills/fec-performance-optimization/SKILL.md +54 -54
  400. package/skills/fec-performance-optimization/references/framework-performance-patterns.md +23 -23
  401. package/skills/fec-performance-optimization/references/report-template.md +31 -31
  402. package/skills/fec-pwa-implementation/SKILL.md +17 -17
  403. package/skills/fec-pwa-implementation/references/manifest-and-icons.md +12 -12
  404. package/skills/fec-pwa-implementation/references/service-worker-workbox.md +13 -13
  405. package/skills/fec-react-project-standard/SKILL.md +72 -72
  406. package/skills/fec-react-project-standard/references/react-performance-patterns.md +28 -28
  407. package/skills/fec-react-project-standard/references/react-project-structure.md +112 -112
  408. package/skills/fec-react-project-standard/references/react-quality-patterns.md +72 -72
  409. package/skills/fec-react-project-standard/references/react-runtime-patterns.md +94 -94
  410. package/skills/fec-refactor-clean/SKILL.md +33 -30
  411. package/skills/fec-refactor-clean/references/report-template.md +23 -23
  412. package/skills/fec-refactoring/SKILL.md +83 -0
  413. package/skills/fec-refactoring/references/principles.md +60 -0
  414. package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
  415. package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
  416. package/skills/fec-refactoring/references/workflow.md +90 -0
  417. package/skills/fec-refactoring-api/SKILL.md +25 -0
  418. package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  419. package/skills/fec-refactoring-catalog/SKILL.md +28 -0
  420. package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  421. package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  422. package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
  423. package/skills/fec-refactoring-control/SKILL.md +25 -0
  424. package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  425. package/skills/fec-refactoring-data/SKILL.md +25 -0
  426. package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  427. package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  428. package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  429. package/skills/fec-refactoring-functions/SKILL.md +25 -0
  430. package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  431. package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  432. package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  433. package/skills/fec-refactoring-move-features/SKILL.md +25 -0
  434. package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  435. package/skills/fec-refactoring-validation/SKILL.md +59 -0
  436. package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
  437. package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
  438. package/skills/fec-responsive-layout/SKILL.md +17 -17
  439. package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +37 -37
  440. package/skills/fec-route-protection/SKILL.md +26 -26
  441. package/skills/fec-security-review/SKILL.md +36 -20
  442. package/skills/fec-security-review/references/report-template.md +22 -12
  443. package/skills/fec-security-review/references/security-checklist.md +27 -27
  444. package/skills/fec-source-driven-development/SKILL.md +59 -59
  445. package/skills/fec-state-management/SKILL.md +34 -34
  446. package/skills/fec-state-management/references/state-patterns.md +19 -19
  447. package/skills/fec-storybook-component-doc/SKILL.md +19 -19
  448. package/skills/fec-storybook-component-doc/references/story-patterns.md +12 -12
  449. package/skills/fec-svg-animation/SKILL.md +32 -32
  450. package/skills/fec-tailwind-design-system/SKILL.md +17 -17
  451. package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +36 -36
  452. package/skills/fec-tdd-workflow/SKILL.md +32 -28
  453. package/skills/fec-testing-strategy/SKILL.md +29 -29
  454. package/skills/fec-typescript-project-standard/SKILL.md +38 -38
  455. package/skills/fec-typescript-project-standard/references/type-safety-patterns.md +20 -20
  456. package/skills/fec-typescript-project-standard/references/type-safety.md +18 -18
  457. package/skills/fec-ui-design/SKILL.md +90 -90
  458. package/skills/fec-ui-design/references/design-intelligence.md +61 -61
  459. package/skills/fec-ui-design/references/master-page-overrides.md +15 -15
  460. package/skills/fec-ui-design/references/pre-delivery-checklist.md +38 -38
  461. package/skills/fec-validation-fix/SKILL.md +26 -26
  462. package/skills/fec-validation-fix/references/report-template.md +25 -25
  463. package/skills/fec-vite-project-standard/SKILL.md +39 -39
  464. package/skills/fec-vue3-project-standard/SKILL.md +38 -38
  465. package/skills/fec-vue3-project-standard/references/vue3-composables-routing.md +36 -36
  466. package/skills/fec-vue3-project-standard/references/vue3-performance-patterns.md +8 -8
  467. package/skills/fec-vue3-project-standard/references/vue3-project-structure.md +112 -112
  468. package/skills/fec-vue3-project-standard/references/vue3-state-api-quality.md +74 -74
  469. package/skills/fec-web-video-presentation/SKILL.md +33 -33
  470. package/skills/fec-web-workers/SKILL.md +16 -16
  471. package/skills/fec-web-workers/references/advanced-workers.md +13 -13
  472. package/skills/fec-web-workers/references/basic-worker.md +8 -8
  473. package/skills/metadata.json +485 -116
  474. package/skills/relations.json +268 -0
  475. package/templates/claude/CLAUDE.md +60 -60
  476. package/templates/codex/AGENTS.md +76 -76
  477. package/templates/codex/config.toml +4 -4
  478. package/templates/openclaw/AGENTS.md +68 -68
  479. package/templates/openclaw/OPENCLAW-CONFIG.md +8 -8
  480. package/templates/shared/rules/fec-agent-workflow.md +41 -40
  481. package/templates/shared/rules/fec-api-layer.md +52 -52
  482. package/templates/shared/rules/fec-ci-cd.md +29 -29
  483. package/templates/shared/rules/fec-code-comments.md +22 -22
  484. package/templates/shared/rules/fec-design-system.md +53 -53
  485. package/templates/shared/rules/fec-error-handling.md +40 -40
  486. package/templates/shared/rules/fec-git-conventions.md +42 -42
  487. package/templates/shared/rules/fec-i18n.md +48 -48
  488. package/templates/shared/rules/fec-naming-conventions.md +91 -91
  489. package/templates/shared/rules/fec-performance.md +78 -78
  490. package/templates/shared/rules/fec-react.md +58 -58
  491. package/templates/shared/rules/fec-refactoring.md +34 -34
  492. package/templates/shared/rules/fec-rendering-patterns.md +36 -36
  493. package/templates/shared/rules/fec-responsive-design.md +37 -37
  494. package/templates/shared/rules/fec-source-driven-development.md +22 -22
  495. package/templates/shared/rules/fec-state-management.md +56 -56
  496. package/templates/shared/rules/fec-testing.md +64 -64
  497. package/templates/shared/rules/fec-typescript.md +75 -75
  498. package/templates/shared/rules/fec-vue.md +42 -42
  499. package/templates/shared/rules/fec-working-modes.md +34 -34
  500. package/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
  501. package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
  502. package/skills/fec-drawio-studio/data/shape-index.json.gz +0 -0
@@ -1,72 +1,72 @@
1
- # 设计系统规则
1
+ # Design system rules
2
2
 
3
- 凡是任务涉及 UI 实现、设计稿转代码、样式、设计 Token 或组件复用时,都应用本文件。本文只保留项目常驻设计约束;产品化设计方向、设计系统生成、页面级 override、UI QA 细节交给 `fec-ui-design`;Tailwind token、variant、dark mode 和 class 治理交给 `fec-tailwind-design-system`;响应式布局交给 `fec-responsive-layout`。
3
+ This document should be used whenever the task involves UI implementation, design draft conversion to code, style, design token, or component reuse. This article only retains the project's resident design constraints; product design direction, design system generation, page-level override, and UI QA details are handed over to `fec-ui-design`; Tailwind token, variant, dark mode and class management are handed over to `fec-tailwind-design-system`; responsive layout is handed over to `fec-responsive-layout`.
4
4
 
5
- ## 核心优先级
5
+ ## Core priority
6
6
 
7
- 1. 复用已有组件。
8
- 2. 在已有组件上扩展。
9
- 3. 创建新的叶子组件。
10
- 4. 只有在理由充分、边界清晰且会被复用时,才创建新的共享基础组件。
7
+ 1. Reuse existing components.
8
+ 2. Expand on existing components.
9
+ 3. Create a new leaf component.
10
+ 4. Only create new shared base components if there is good reason, clear boundaries, and if they will be reused.
11
11
 
12
- ## 产品化设计方向
12
+ ## Product design direction
13
13
 
14
- - 工具型页面、SaaS 后台、CRM、运营台:优先安静、密集、可扫描,首屏直接呈现核心工作区。
15
- - 品牌页、作品集、发布页:可以更有表现力,但 H1 应是品牌、产品、对象或品类,说明文案放在副标题。
16
- - 可视化、游戏、创作工具:可以使用更强视觉资产和动效,但必须保持交互可控、状态清晰。
17
- - 每个重要界面都应有贴合业务的视觉锚点,例如真实媒体、数据形态、行业材质、字体性格、空间组织或交互节奏。
18
- - 大胆设计必须服务场景;高频工具重效率和稳定,展示型页面重主体识别和记忆点。
14
+ - Tool-type pages, SaaS backend, CRM, and operations desk: Prioritize quiet, dense, and scannable, and the core work area is directly displayed on the first screen.
15
+ - Brand page, portfolio, release page: It can be more expressive, but H1 should be the brand, product, object or category, and the description copy should be placed in the subtitle.
16
+ - Visualization, games, and creative tools: You can use stronger visual assets and animations, but you must keep the interaction controllable and the status clear.
17
+ - Every important interface should have a visual anchor that fits the business, such as real media, data form, industry material, font character, spatial organization or interaction rhythm.
18
+ - Bold design must serve the scene; high-frequency tools focus on efficiency and stability, and display-type pages focus on subject recognition and memory points.
19
19
 
20
- 避免:
20
+ Avoid:
21
21
 
22
- - 把日常高频工具做成营销落地页。
23
- - 默认使用紫色渐变、装饰光斑、堆叠卡片、空泛 hero 或无语境默认字体。
24
- - 页面区块大面积卡片化,尤其是卡片套卡片。
25
- - 用可见说明文字解释常见控件本该表达的功能。
26
- - 让整个界面只由一个色相的深浅变化组成。
22
+ - Turn daily high-frequency tools into marketing landing pages.
23
+ - Use purple gradient, decorative light spots, stacked cards, empty hero or non-contextual default font by default.
24
+ - Large areas of the page are card-based, especially card sets.
25
+ - Use visible explanatory text to explain the functions that common controls are supposed to express.
26
+ - Let the entire interface consist of only one shade of hue.
27
27
 
28
- ## 设计稿转代码规则
28
+ ## Design draft conversion code rules
29
29
 
30
- - 有设计上下文时,先通过 MCP 或截图/标注读取事实来源,不靠猜测决定布局、间距、字体、颜色或状态。
31
- - 设计稿中的颜色、间距、圆角、阴影和字体应映射到现有 token、CSS 变量、主题变量或组件 variant。
32
- - 创建新组件前先检查现有组件库和业务组件,优先复用。
33
- - 默认验证 mobile(375px)、tablet(768px)、desktop(1440px)。
34
- - 像素还原要求以项目约定为准;没有约定时,核心结构、间距、字体、状态和交互优先于机械追求截图重合。
35
- - 复杂设计任务实现前先给出简短实现计划,说明复用组件、新建组件、可能改动文件、响应式策略和 token 映射。
30
+ - When given design context, read the source of truth first through MCP or screenshots/annotations, and don’t rely on guesswork to determine layout, spacing, fonts, colors, or status.
31
+ - Colors, spacing, rounded corners, shadows, and fonts in the design should be mapped to existing tokens, CSS variables, theme variables, or component variants.
32
+ - Check existing component libraries and business components before creating new components and prioritize reuse.
33
+ - Default verification is mobile(375px), tablet(768px), desktop(1440px).
34
+ - Pixel restoration requirements are subject to the project agreement; if there is no agreement, the core structure, spacing, fonts, status and interaction will take precedence over mechanical pursuit of screenshot overlap.
35
+ - Before implementing complex design tasks, a brief implementation plan is given, describing reused components, new components, possible changed files, responsive strategies and token mapping.
36
36
 
37
- ## 设计 Token 与样式
37
+ ## Design Token and style
38
38
 
39
- - 优先使用已有 design token、CSS 变量或主题变量;不要硬编码颜色、圆角、间距、阴影和字体取值。
40
- - 缺少所需 token 时要明确指出,并集中补齐或记录,不在多个组件里散落字面量。
41
- - Tailwind 项目中,token 应通过语义化 `theme.extend`、CSS 变量或组件 variant 承接;不要把 `blue-600`、`rounded-xl` 等具体值复制成事实标准。
42
- - 组件 variant 应区分语义 tone、尺寸 size、密度 density 和状态 state;不要让一个字符串参数同时承载多种业务含义。
43
- - 动态 Tailwind class 必须可被构建扫描识别;复杂映射使用显式对象、variant 工具或 safelist。
44
- - 优先使用局部、受控的样式,不做大范围全局覆盖;与项目现有 CSS Modules、Tailwind、组件库或样式体系保持一致。
39
+ - Prefer using existing design tokens, CSS variables, or theme variables; do not hard-code colors, rounded corners, spacing, shadows, and font values.
40
+ - When required tokens are missing, clearly point them out and centrally complete or record them, rather than scattering literals in multiple components.
41
+ - In the Tailwind project, tokens should be inherited through semantic `theme.extend`, CSS variables or component variants; do not copy specific values such as `blue-600` and `rounded-xl` into de facto standards.
42
+ - Component variants should distinguish semantic tone, size, density and state; do not let a string parameter carry multiple business meanings at the same time.
43
+ - Dynamic Tailwind classes must be recognized by build scans; use explicit objects, variant tools, or safelist for complex mappings.
44
+ - Prioritize the use of local, controlled styles instead of large-scale global coverage; be consistent with the project's existing CSS Modules, Tailwind, component libraries or style systems.
45
45
 
46
- ## 界面质感基线
46
+ ## Interface texture baseline
47
47
 
48
- - 嵌套圆角保持光学关系:外层圆角约等于内层圆角 + 间距。
49
- - 图标按钮、箭头、播放三角等非对称图形按视觉中心微调。
50
- - 小控件命中区域至少 40x40px,空间允许时优先 44x44px。
51
- - 标题和短文本可用 `text-wrap: balance`,短中正文可用 `text-wrap: pretty`。
52
- - 计数器、价格、时间、表格数字使用 `font-variant-numeric: tabular-nums`。
53
- - 动效只声明实际变化属性,禁止 `transition: all` 和 `will-change: all`,并尊重 `prefers-reduced-motion`。
48
+ - Nested fillets maintain an optical relationship: the outer fillet is approximately equal to the inner fillet + spacing.
49
+ - Asymmetric graphics such as icon buttons, arrows, and playback triangles are fine-tuned according to the visual center.
50
+ - The hit area of the small control should be at least 40x40px, and 44x44px is preferred if space allows.
51
+ - `text-wrap: balance` can be used for titles and short texts, and `text-wrap: pretty` can be used for short and medium text.
52
+ - Use `font-variant-numeric: tabular-nums` for counters, prices, times, and tabular numbers.
53
+ - Animation only declares actual change attributes, prohibits `transition: all` and `will-change: all`, and respects `prefers-reduced-motion`.
54
54
 
55
- ## 暗色模式
55
+ ## Dark mode
56
56
 
57
- - 项目级暗色模式只选择一种主策略:CSS 变量、根节点 class、`data-theme` 或组件库主题。
58
- - 支持手动切换主题时,要在首屏绘制前初始化用户偏好,避免主题闪烁;实现细节交给 Tailwind / design-system skill reference。
59
- - 亮色与暗色都要复核 disabled、focus、selected、invalid、skeleton、chart、表单控件、第三方组件和阴影层级。
60
- - 不只靠降低透明度表达 disabled,不只补背景色而忽略文本、边框、图表和焦点状态。
57
+ - Project-level dark mode only selects one main strategy: CSS variables, root node class, `data-theme` or component library theme.
58
+ - When supporting manual theme switching, user preferences must be initialized before the first screen is drawn to avoid theme flickering; the implementation details are left to Tailwind / design-system skill reference.
59
+ - Review disabled, focus, selected, invalid, skeleton, chart, form controls, third-party components and shadow levels for both light and dark colors.
60
+ - Don't just reduce the transparency to express disabled, don't just fill in the background color and ignore text, borders, charts and focus states.
61
61
 
62
- ## 可访问性基线
62
+ ## Accessibility Baseline
63
63
 
64
- - 优先使用语义化 HTML。
65
- - 表单控件具备标签,纯图标按钮具备可访问名称。
66
- - 菜单、标签页、对话框和自定义控件支持键盘操作。
67
- - 焦点样式可见,标题层级正确,真实表格数据使用表格语义。
68
- - 颜色对比度、触摸目标、reduced-motion 和错误提示不能被视觉 polish 破坏。
64
+ - Prefer semantic HTML.
65
+ - Form controls have labels and pure icon buttons have accessible names.
66
+ - Menus, tabs, dialog boxes and custom controls support keyboard operation.
67
+ - Focus styles are visible, title levels are correct, and real table data uses table semantics.
68
+ - Color contrast, touch targets, reduced-motion and error prompts cannot be destroyed by visual polish.
69
69
 
70
- ## UI 任务输出
70
+ ## UI task output
71
71
 
72
- 实现完成后说明复用了什么、新建了什么、与设计稿或项目 token 的偏差、缺少哪些资源或交互细节。复杂 UI 还应说明状态覆盖、响应式验证和剩余设计风险。
72
+ After the implementation is completed, explain what was reused, what was newly created, deviations from the design draft or project token, and what resources or interaction details are missing. Complex UIs should also account for state overrides, responsive validation, and remaining design risks.
@@ -1,56 +1,56 @@
1
- # 错误处理规范
1
+ # Error handling specifications
2
2
 
3
- 本文件约定前端错误处理的常驻边界。React/Vue 组件边界细节交给对应框架 skill,API 错误映射和鉴权刷新交给 `fec-api-integration`,安全敏感错误交给 `fec-security-review`。
3
+ This document agrees on the resident boundaries of front-end error handling. React/Vue component boundary details are handed over to the corresponding framework skill, API error mapping and authentication refresh are handed over to `fec-api-integration`, and security-sensitive errors are handed over to `fec-security-review`.
4
4
 
5
- ## 错误分层
5
+ ## Error layering
6
6
 
7
- | 层级 | 错误类型 | 默认处理 |
7
+ | Hierarchy | Error type | Default handling |
8
8
  | ---- | -------- | -------- |
9
- | 全局 | 未捕获异常、Promise rejection | 捕获、上报、全局降级 UI |
10
- | 路由 / 页面 | 页面级渲染异常 | Error Boundary / 框架错误边界 + 页面级降级 |
11
- | 模块 | 功能模块运行时异常 | 模块级边界 + 局部降级 |
12
- | 组件 / 请求 | 数据请求失败、操作失败 | 用户可理解提示 + 可恢复动作 |
13
- | 表单 | 校验失败 | 字段级错误提示和修正入口 |
9
+ | Global | Uncaught exceptions, Promise rejection | Capture, reporting, global downgrade UI |
10
+ | Routing / Page | Page-level rendering exception | Error Boundary / Frame error boundary + Page-level degradation |
11
+ | Module | Function module runtime exception | Module-level boundary + local degradation |
12
+ | Component/Request | Data request failure, operation failure | User-understandable prompts + recoverable actions |
13
+ | Form | Validation failure | Field-level error prompts and correction entry |
14
14
 
15
- ## 全局与模块边界
15
+ ## Global and module boundaries
16
16
 
17
- - 应在应用入口注册未捕获异常和 Promise rejection 监听,并接入项目错误上报平台。
18
- - React 使用项目统一的 Error Boundary 方案;业务组件保持函数式,不新增手写类组件边界。
19
- - Vue 使用项目统一的 `app.config.errorHandler`、`onErrorCaptured` 或框架级错误边界。
20
- - 独立功能模块应有局部降级能力,模块崩溃不应导致整个页面白屏。
21
- - Error Boundary 处理渲染异常;普通 API 失败应落到 loading/error/empty/data 状态和可恢复操作。
17
+ - Uncaught exception and Promise rejection monitoring should be registered at the application entrance and connected to the project error reporting platform.
18
+ - React uses the project's unified Error Boundary solution; business components remain functional and no new handwritten class component boundaries are added.
19
+ - Vue uses project-unified `app.config.errorHandler`, `onErrorCaptured` or framework-level error boundaries.
20
+ - Independent functional modules should have local downgrade capabilities, and module crashes should not cause the entire page to go blank.
21
+ - Error Boundary handles rendering exceptions; normal API failures should fall into the loading/error/empty/data state and recoverable operations.
22
22
 
23
- ## API 错误处理
23
+ ## API error handling
24
24
 
25
- - 请求层统一归一错误形状,组件不直接解析后端异常、token refresh 或重试策略。
26
- - 每类错误都应对应明确下一步:重试、重新登录、修改输入、返回上级、刷新冲突数据、联系支持或稍后再试。
27
- - `401`、`403`、`404`、`409`、`422`、`429`、`5xx` 和网络错误应有可区分的用户提示和日志语义。
28
- - UI 可显示 request id / trace id 方便支持排查,但不得暴露内部堆栈、SQL、服务名、密钥或敏感字段。
25
+ - The request layer uniformly normalizes error shapes, and components do not directly parse backend exceptions, token refresh or retry strategies.
26
+ - Each type of error should have a clear next step: retry, log in again, modify input, return to the previous level, refresh conflicting data, contact support, or try again later.
27
+ - `401`, `403`, `404`, `409`, `422`, `429`, `5xx` and network errors should have distinguishable user prompts and log semantics.
28
+ - The UI can display request id / trace id to facilitate support troubleshooting, but must not expose internal stacks, SQL, service names, keys or sensitive fields.
29
29
 
30
- ## 用户体验
30
+ ## User experience
31
31
 
32
- - 每个数据展示区域处理 Loading、Error、Empty、Success 四种状态。
33
- - 全局级错误页提供返回首页、刷新或重试路径;模块级降级只影响该模块;操作级错误给出下一步。
34
- - 重试策略要克制:用户手动重试优先,自动重试需有上限、退避和停止条件。
35
- - 错误提示应保留用户已输入内容,避免因失败丢失表单或上下文。
32
+ - Each data display area handles four states: Loading, Error, Empty, and Success.
33
+ - Global-level error pages provide paths to return to the home page, refresh or retry; module-level downgrades only affect this module; operation-level errors provide the next step.
34
+ - The retry strategy must be restrained: users’ manual retries are given priority, and automatic retries must have upper limits, backoff and stop conditions.
35
+ - Error prompts should retain what the user has entered to avoid losing the form or context due to failure.
36
36
 
37
- ## 错误上报
37
+ ## Error reporting
38
38
 
39
- 上报内容应包含错误堆栈、页面 URL、浏览器/设备信息、用户或会话标识、操作上下文、请求标识和版本信息。上报前清理 token、密码、个人敏感字段和大体积 payload。
39
+ The reported content should include the error stack, page URL, browser/device information, user or session ID, operation context, request ID, and version information. Clean tokens, passwords, personal sensitive fields and large payloads before reporting.
40
40
 
41
- ## 反模式
41
+ ## Anti-pattern
42
42
 
43
- - 空 `catch` 块吞掉错误。
44
- - 所有错误统一用 `alert()` 或一个模糊 toast。
45
- - 接口失败时 UI 无反馈,或把后端原始异常直接展示给用户。
46
- - Error Boundary 没有重试或返回路径。
47
- - 在组件中到处写重复 `try/catch`,而不是统一封装请求边界。
48
- - 用 Error Boundary 承接普通 API 错误,导致用户无法理解或恢复。
43
+ - Empty `catch` blocks swallow errors.
44
+ - All errors are reported with `alert()` or a vague toast.
45
+ - When the interface fails, there is no feedback from the UI, or the original exception from the backend is directly displayed to the user.
46
+ - Error Boundary has no retry or return path.
47
+ - Write repeated `try/catch` everywhere in the component instead of uniformly encapsulating request boundaries.
48
+ - Use Error Boundary to handle common API errors, making it impossible for users to understand or recover.
49
49
 
50
- ## 检查清单
50
+ ## Checklist
51
51
 
52
- - [ ] 全局未捕获异常和 Promise rejection 已监听。
53
- - [ ] 关键页面或模块有框架错误边界和局部降级 UI。
54
- - [ ] API 请求有统一错误归一、分级处理和可恢复动作。
55
- - [ ] 数据区域覆盖 Loading / Error / Empty / Success。
56
- - [ ] 错误上报包含足够定位信息且不泄露敏感数据。
52
+ - [ ] Global uncaught exceptions and Promise rejections are listened to.
53
+ - [ ] Critical pages or modules have frame error boundaries and partially degraded UI.
54
+ - [ ] API requests have unified error normalization, hierarchical processing and recoverable actions.
55
+ - [ ] Data area override Loading / Error / Empty / Success.
56
+ - [ ] Error reports contain sufficient location information and do not leak sensitive data.
@@ -1,8 +1,8 @@
1
- # Git 提交规范
1
+ # Git commit specifications
2
2
 
3
- 凡是创建 commit、编写 commit message 或准备提交代码时,都应用本文件。
3
+ This file should be used whenever creating a commit, writing a commit message, or preparing to submit code.
4
4
 
5
- ## Conventional Commits 格式
5
+ ## Conventional Commits Format
6
6
 
7
7
  ```
8
8
  <type>(<scope>): <subject>
@@ -12,62 +12,62 @@
12
12
  [footer]
13
13
  ```
14
14
 
15
- ### type 取值
15
+ ### type value
16
16
 
17
- | type | 用途 |
17
+ | type | purpose |
18
18
  |------|------|
19
- | `feat` | 新功能 |
20
- | `fix` | 修复 bug |
21
- | `refactor` | 重构(不改变行为) |
22
- | `style` | 代码格式调整(不影响逻辑) |
23
- | `docs` | 文档变更 |
24
- | `test` | 测试相关 |
25
- | `chore` | 构建、工具、依赖等杂项 |
26
- | `perf` | 性能优化 |
27
- | `ci` | CI/CD 配置变更 |
19
+ | `feat` | New features |
20
+ | `fix` | Fix bug |
21
+ | `refactor` | Refactor (does not change behavior) |
22
+ | `style` | Code format adjustment (does not affect logic) |
23
+ | `docs` | Documentation changes |
24
+ | `test` | Test related |
25
+ | `chore` | Build, tools, dependencies and other miscellaneous items |
26
+ | `perf` | Performance optimization |
27
+ | `ci` | CI/CD configuration changes |
28
28
 
29
29
  ### scope
30
30
 
31
- 可选,标明影响范围,如模块名、组件名或功能域:
31
+ Optional, indicate the scope of influence, such as module name, component name or functional domain:
32
32
 
33
- - `feat(auth): 新增手机号登录`
34
- - `fix(table): 修复排序列未高亮`
35
- - `refactor(api): 统一请求错误处理`
33
+ - `feat(auth): add new mobile phone number to log in`
34
+ - `fix(table): Fix sorting column not highlighted`
35
+ - `refactor(api): unified request error handling`
36
36
 
37
- ### subject 规范
37
+ ### subject specification
38
38
 
39
- - 使用祈使句("增加 xxx" 而非 "增加了 xxx")
40
- - 不超过 72 个字符
41
- - 不以句号结尾
42
- - 如果影响范围较大,在 body 中详细说明
39
+ - Use imperative sentences ("increased xxx" instead of "increased xxx")
40
+ - No more than 72 characters
41
+ - does not end with a period
42
+ - If the scope of impact is large, describe it in detail in the body
43
43
 
44
- ## 分支命名
44
+ ## Branch naming
45
45
 
46
- - `feature/xxx` — 新功能
47
- - `fix/xxx` — 修复
48
- - `refactor/xxx` — 重构
49
- - `hotfix/xxx` — 紧急修复
46
+ - `feature/xxx` — new features
47
+ - `fix/xxx` — fix
48
+ - `refactor/xxx` — Refactor
49
+ - `hotfix/xxx` — emergency fix
50
50
 
51
- ## 提交前检查
51
+ ## Check before submission
52
52
 
53
- 提交前必须通过:
53
+ Must pass before submission:
54
54
 
55
55
  1. lint
56
56
  2. type-check
57
- 3. 与变更相关的测试
57
+ 3. Testing related to changes
58
58
 
59
- 未经用户确认不要直接执行 `git commit`。
59
+ Do not execute `git commit` directly without user confirmation.
60
60
 
61
- ## 提交粒度
61
+ ## Submission granularity
62
62
 
63
- - 一个提交只包含一个清晰目的:功能、修复、测试、文档或清理。
64
- - 大型计划应拆成可验证的小批次,每批都有说明和命令结果。
65
- - 清理、格式化和行为变更不要混在同一提交中。
66
- - 推送或发 PR 前先复查 diff,确认没有本地配置、密钥、临时报告或调试输出。
63
+ - A commit only has one clear purpose: feature, fix, test, documentation or cleanup.
64
+ - Large programs should be broken into verifiable smaller batches, each with instructions and command results.
65
+ - Don't mix cleanup, formatting, and behavior changes in the same commit.
66
+ - Review the diff before pushing or sending a PR to make sure there are no local configurations, keys, temporary reports or debug output.
67
67
 
68
- ## 反模式
68
+ ## Anti-pattern
69
69
 
70
- - 一个 commit 混合不相关的改动
71
- - commit message 过于笼统(如 "update"、"fix bug"、"wip")
72
- - 在 commit 中包含调试代码、console.log 或临时 hack
73
- - 未说明验证命令或已知剩余风险就提交高风险改动
70
+ - A commit that mixes unrelated changes
71
+ - The commit message is too general (such as "update", "fix bug", "wip")
72
+ - Include debug code, console.log, or temporary hacks in commits
73
+ - Commit high-risk changes without specifying verification commands or knowing the remaining risk
@@ -1,64 +1,64 @@
1
- # 国际化 (i18n) 规则
1
+ # Internationalization (i18n) rules
2
2
 
3
- 凡是涉及用户可见文案、提示信息、表单标签、错误消息或 UI 文本时,都应用本文件。请根据项目实际 i18n 方案修改 locales 路径、库与 key 前缀。
3
+ This document applies whenever it involves user-visible copy, tooltips, form labels, error messages, or UI text. Please modify the locales path, library and key prefix according to the actual i18n solution of the project.
4
4
 
5
- ## 适用范围
5
+ ## Scope of application
6
6
 
7
- - **现代栈(React / Vue / Next / Nuxt 等)**:新增或修改的用户可见文案必须走项目 i18n 方案。
8
- - **遗留 HTML/JS、渐进迁移或新旧并存**:新代码路径仍须满足核心原则;遗留层遵守迁移约束,避免扩大硬编码和混乱 key。
7
+ - **Modern stack (React/Vue/Next/Nuxt, etc.)**: New or modified user-visible copy must follow the project i18n solution.
8
+ - **Legacy HTML/JS, progressive migration or coexistence of old and new**: The new code path must still meet the core principles; the legacy layer adheres to migration constraints to avoid expanding hard coding and confusing keys.
9
9
 
10
- 下文用 `src/locales/` 指代项目实际文案资源目录,请按仓库约定替换。
10
+ `src/locales/` is used below to refer to the actual copywriting resource directory of the project. Please replace it according to the warehouse convention.
11
11
 
12
- ## 核心原则
12
+ ## Core Principles
13
13
 
14
- - 新应用代码中的用户可见文案须使用 i18n,禁止硬编码中文或英文字符串。
15
- - i18n key 按模块组织,使用点分命名,例如 `order.list.empty`。
16
- - 相同语义的文案复用同一个 key,避免重复定义。
17
- - 变量、复数、日期、数字和货币使用 i18n 能力格式化,不用字符串拼接。
18
- - 修改文案前先检索现有资源,优先复用准确 key。
14
+ - User-visible copy in new application code must use i18n, and hardcoding Chinese or English strings is prohibited.
15
+ - i18n keys are organized by modules and named with dots, such as `order.list.empty`.
16
+ - Copies with the same semantics reuse the same key to avoid repeated definitions.
17
+ - Variables, plurals, dates, numbers and currencies are formatted using i18n capabilities without string concatenation.
18
+ - Search existing resources before modifying the copy, and give priority to reusing accurate keys.
19
19
 
20
- ## 文案与资源规范
20
+ ## Copywriting and resource specifications
21
21
 
22
- - `common.*` 用于跨模块通用文案,例如确认、取消、提交、加载中。
23
- - `module.component.*` 用于模块级文案。
24
- - `validation.*` 用于表单校验提示。
25
- - `error.*` 用于错误信息。
26
- - 每种自然语言对应独立资源文件,禁止多种语言混写在同一文件或同一顶层多语言对象内。
27
- - 文案文件须以 UTF-8 保存;团队有约定时优先 UTF-8 无 BOM,避免中文、日文等非 ASCII 文案乱码。
28
- - 新增 key 时,同步更新当前功能应覆盖的主要语言文件;若某语言暂缺,必须显式记录缺口。
22
+ - `common.*` is used for cross-module common copywriting, such as confirm, cancel, submit, and loading.
23
+ - `module.component.*` is used for module-level copy.
24
+ - `validation.*` is used for form validation prompts.
25
+ - `error.*` for error messages.
26
+ - Each natural language corresponds to an independent resource file, and multiple languages are prohibited from being mixed in the same file or the same top-level multi-language object.
27
+ - Copywriting files must be saved in UTF-8; when the team has an agreement, priority will be given to UTF-8 without BOM to avoid garbled non-ASCII copywriting in Chinese, Japanese and other languages.
28
+ - When adding a key, the main language files that should be covered by the current function are updated simultaneously; if a language is temporarily missing, the gap must be explicitly recorded.
29
29
 
30
- ## 遗留代码与迁移场景
30
+ ## Legacy code and migration scenarios
31
31
 
32
- - 遗留 HTML 或 JS 中不新增用户可见硬编码,除非该段为纯静态展示且仓库尚无可接入 i18n 路径。
33
- - React / Vue 等新代码路径新增提示、错误、按钮、表单标签时,必须走 i18n。
34
- - 新增子应用或模块时,与现有语言文件结构、命名空间和懒加载策略一致。
35
- - key 按页面、模块和语义组织,避免继续沿用历史缩写或无意义分段。
36
- - 旧 key 若仅“能用但不准”,优先重命名 key 并重写译文,不长期保留并行兼容。
37
- - 仅当旧 key 已成为对外契约(后端、埋点、外部文档、第三方集成等固定引用)时,才引入映射层或别名过渡。
32
+ - No new user-visible hardcoding is added in legacy HTML or JS, unless the segment is purely static and the repository does not yet have access to the i18n path.
33
+ - When new code paths such as React/Vue add prompts, errors, buttons, and form labels, i18n must be used.
34
+ - When adding new sub-applications or modules, they should be consistent with the existing language file structure, namespace and lazy loading strategy.
35
+ - Keys are organized by page, module and semantics to avoid continuing to use historical abbreviations or meaningless segments.
36
+ - If the old key is only "usable but inaccurate", priority will be given to renaming the key and rewriting the translation, and parallel compatibility will not be maintained for a long time.
37
+ - Only introduce mapping layer or alias transition when the old key has become an external contract (fixed reference in backend, buried points, external documents, third-party integration, etc.).
38
38
 
39
- ## 实现约束
39
+ ## Implement constraints
40
40
 
41
- - Vue、React、Next、Nuxt 的具体调用方式以项目现有 i18n 库为准,例如 `vue-i18n`、`react-intl`、`react-i18next` 或框架内置方案。
42
- - 组件中不要直接写用户可见硬编码;测试可通过 key 或最终文案断言,但应避免与翻译细节过度耦合。
43
- - 懒加载语言包时,loading、fallback 和缺失 key 行为要可预期。
44
- - 错误、表单和空状态文案要能表达用户下一步,不只翻译技术错误。
41
+ - The specific calling methods of Vue, React, Next, and Nuxt are subject to the existing i18n library of the project, such as `vue-i18n`, `react-intl`, `react-i18next` or the framework's built-in solution.
42
+ - Do not directly write user-visible hard coding in components; tests can assert through key or final copywriting, but should avoid over-coupling with translation details.
43
+ - When lazily loading language packs, loading, fallback, and missing key behaviors must be predictable.
44
+ - Error, form, and empty state copy should express the user’s next step, not just translate technical errors.
45
45
 
46
- ## 检查清单
46
+ ## Checklist
47
47
 
48
- - [ ] 所有新增用户可见文案使用 i18n key。
49
- - [ ] 新增 key 已添加到所有应覆盖语言文件,且各语言分文件维护。
50
- - [ ] 语言资源文件为 UTF-8,打开无乱码。
51
- - [ ] key 命名符合模块、组件、用途约定,并复用已有语义。
52
- - [ ] 插值、复数、日期、数字、货币使用 i18n 格式化。
53
- - [ ] 迁移或混合栈中未扩大用户可见硬编码。
54
- - [ ] 新代码未破坏现有命名空间、加载方式和子应用边界。
48
+ - [ ] All newly added user-visible copy uses i18n key.
49
+ - [ ] The new key has been added to all language files that should be covered, and each language is maintained in separate files.
50
+ - [ ] The language resource file is UTF-8, and there will be no garbled characters when opened.
51
+ - [ ] key naming conforms to module, component, and usage conventions, and reuses existing semantics.
52
+ - [ ] Interpolation, complex numbers, dates, numbers, currencies are formatted using i18n.
53
+ - [ ] User-visible hardcoding not expanded in migration or hybrid stacks.
54
+ - [ ] The new code does not break existing namespaces, loading methods, and sub-app boundaries.
55
55
 
56
- ## 反模式
56
+ ## Anti-pattern
57
57
 
58
- - 在模板或 JSX 中直接写用户可见中文或英文字符串。
59
- - 使用字符串拼接代替 i18n 插值。
60
- - 在 JS/TS 逻辑中硬编码 toast、错误或确认文案。
61
- - 不同模块为相同含义创建不同 key。
62
- - 多语言混写导致 diff、评审和按需加载困难。
63
- - 用非 UTF-8 或错误编码保存文案文件。
64
- - 为迁就历史缩写或劣质命名长期保留多套并行 key。
58
+ - Write user-visible Chinese or English strings directly in templates or JSX.
59
+ - Use string concatenation instead of i18n interpolation.
60
+ - Hardcode toast, error or confirmation text in JS/TS logic.
61
+ - Different modules create different keys for the same meaning.
62
+ - Mixing multiple languages makes diffing, reviewing and on-demand loading difficult.
63
+ - Save copy files in non-UTF-8 or incorrect encoding.
64
+ - Long-term retention of multiple sets of parallel keys to accommodate historical abbreviations or poor naming.