@bovinphang/frontend-craft 2.8.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 (195) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +378 -339
  4. package/CHANGELOG.zh-CN.md +377 -338
  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 -320
  9. package/README.openclaw.zh-CN.md +359 -320
  10. package/README.zh-CN.md +545 -493
  11. package/agents/fec-code-reviewer.md +24 -3
  12. package/agents/fec-debugger.md +1 -1
  13. package/agents/fec-doc-updater.md +1 -1
  14. package/agents/fec-e2e-runner.md +1 -1
  15. package/agents/fec-figma-implementer.md +1 -1
  16. package/agents/fec-performance-optimizer.md +1 -1
  17. package/agents/fec-refactor-cleaner.md +4 -1
  18. package/agents/fec-refactoring-expert.md +81 -0
  19. package/agents/fec-security-reviewer.md +17 -1
  20. package/agents/fec-test-planner.md +1 -1
  21. package/agents/fec-typescript-reviewer.md +24 -8
  22. package/agents/fec-ui-checker.md +11 -11
  23. package/commands/fec-debug.md +1 -1
  24. package/commands/fec-refactor-plan.md +17 -0
  25. package/commands/fec-refactor.md +18 -0
  26. package/commands/fec-review.md +40 -10
  27. package/commands/fec-scaffold.md +1 -1
  28. package/commands/fec-smell.md +17 -0
  29. package/commands/fec-tdd.md +6 -2
  30. package/dist/bin/frontend-craft.js +190 -38
  31. package/dist/hooks/fec-run-tests.js +5 -1
  32. package/dist/hooks/fec-session-start.js +1 -1
  33. package/docs/example-prompts.md +157 -140
  34. package/docs/ja-JP/README.md +534 -493
  35. package/docs/ko-KR/README.md +534 -493
  36. package/docs/project-structure.md +151 -131
  37. package/docs/refactoring/README.md +50 -0
  38. package/docs/refactoring/catalog.md +105 -0
  39. package/docs/refactoring/smell-refactoring-matrix.md +41 -0
  40. package/docs/review-and-diagram-workflows.md +39 -0
  41. package/docs/runtimes/antigravity.md +18 -10
  42. package/docs/runtimes/augment.md +18 -10
  43. package/docs/runtimes/claude.md +191 -177
  44. package/docs/runtimes/claude.zh-CN.md +189 -175
  45. package/docs/runtimes/cline.md +18 -10
  46. package/docs/runtimes/codebuddy.md +18 -10
  47. package/docs/runtimes/codex.md +18 -10
  48. package/docs/runtimes/compatibility.md +27 -0
  49. package/docs/runtimes/copilot.md +18 -10
  50. package/docs/runtimes/cursor.md +18 -10
  51. package/docs/runtimes/gemini.md +18 -10
  52. package/docs/runtimes/kilo.md +18 -10
  53. package/docs/runtimes/openclaw.md +18 -10
  54. package/docs/runtimes/opencode.md +18 -10
  55. package/docs/runtimes/qoder.md +18 -19
  56. package/docs/runtimes/trae.md +18 -10
  57. package/docs/runtimes/windsurf.md +18 -10
  58. package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
  59. package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
  60. package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
  61. package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
  62. package/docs/zh-CN/example-prompts.md +157 -140
  63. package/docs/zh-CN/project-structure.md +148 -128
  64. package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
  65. package/docs/zh-TW/README.md +534 -493
  66. package/localized/zh-CN/agents/fec-code-reviewer.md +22 -3
  67. package/localized/zh-CN/agents/fec-refactor-cleaner.md +3 -0
  68. package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
  69. package/localized/zh-CN/agents/fec-security-reviewer.md +16 -0
  70. package/localized/zh-CN/agents/fec-typescript-reviewer.md +23 -7
  71. package/localized/zh-CN/commands/fec-refactor-plan.md +15 -0
  72. package/localized/zh-CN/commands/fec-refactor.md +14 -0
  73. package/localized/zh-CN/commands/fec-review.md +40 -9
  74. package/localized/zh-CN/commands/fec-smell.md +13 -0
  75. package/localized/zh-CN/commands/fec-tdd.md +4 -0
  76. package/localized/zh-CN/skills/eval_queries.json +244 -0
  77. package/localized/zh-CN/skills/fec-code-review/SKILL.md +20 -1
  78. package/localized/zh-CN/skills/fec-code-review/references/report-template.md +11 -1
  79. package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
  80. package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
  81. package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
  82. package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  83. package/localized/zh-CN/skills/fec-image-generation/SKILL.md +31 -1
  84. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  85. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  86. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  87. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  88. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  89. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  90. package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  91. package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +10 -3
  92. package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +8 -1
  93. package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  94. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  95. package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  96. package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +48 -80
  97. package/localized/zh-CN/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  98. package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
  99. package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +193 -53
  100. package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +3 -0
  101. package/localized/zh-CN/skills/fec-refactoring/SKILL.md +83 -0
  102. package/localized/zh-CN/skills/fec-refactoring/references/principles.md +43 -0
  103. package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
  104. package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
  105. package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +59 -0
  106. package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
  107. package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  108. package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
  109. package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  110. package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  111. package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
  112. package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
  113. package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  114. package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
  115. package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  116. package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  117. package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  118. package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
  119. package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  120. package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  121. package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  122. package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
  123. package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  124. package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
  125. package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
  126. package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -0
  127. package/localized/zh-CN/skills/fec-security-review/SKILL.md +16 -0
  128. package/localized/zh-CN/skills/fec-security-review/references/report-template.md +10 -0
  129. package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +3 -0
  130. package/localized/zh-CN/skills/metadata.json +408 -50
  131. package/localized/zh-CN/skills/relations.json +271 -3
  132. package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +1 -0
  133. package/openclaw.plugin.json +2 -3
  134. package/package.json +27 -17
  135. package/skills/eval_queries.json +244 -0
  136. package/skills/fec-code-review/SKILL.md +20 -1
  137. package/skills/fec-code-review/references/report-template.md +11 -1
  138. package/skills/fec-code-smells/SKILL.md +33 -0
  139. package/skills/fec-code-smells/references/detection-guide.md +25 -0
  140. package/skills/fec-code-smells/references/smell-catalog.md +861 -0
  141. package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
  142. package/skills/fec-data-fetching/SKILL.md +1 -1
  143. package/skills/fec-image-generation/SKILL.md +31 -1
  144. package/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
  145. package/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
  146. package/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
  147. package/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
  148. package/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
  149. package/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
  150. package/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
  151. package/skills/fec-image-generation/references/diagram-workflows.md +10 -3
  152. package/skills/fec-image-generation/references/html-technical-diagrams.md +8 -1
  153. package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
  154. package/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
  155. package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
  156. package/skills/fec-image-generation/scripts/export-diagram.mjs +48 -80
  157. package/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
  158. package/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
  159. package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +193 -53
  160. package/skills/fec-legacy-web-standard/SKILL.md +1 -1
  161. package/skills/fec-refactor-clean/SKILL.md +3 -0
  162. package/skills/fec-refactoring/SKILL.md +83 -0
  163. package/skills/fec-refactoring/references/principles.md +60 -0
  164. package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
  165. package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
  166. package/skills/fec-refactoring/references/workflow.md +90 -0
  167. package/skills/fec-refactoring-api/SKILL.md +25 -0
  168. package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
  169. package/skills/fec-refactoring-catalog/SKILL.md +28 -0
  170. package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
  171. package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
  172. package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
  173. package/skills/fec-refactoring-control/SKILL.md +25 -0
  174. package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
  175. package/skills/fec-refactoring-data/SKILL.md +25 -0
  176. package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
  177. package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
  178. package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
  179. package/skills/fec-refactoring-functions/SKILL.md +25 -0
  180. package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
  181. package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
  182. package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
  183. package/skills/fec-refactoring-move-features/SKILL.md +25 -0
  184. package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
  185. package/skills/fec-refactoring-validation/SKILL.md +59 -0
  186. package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
  187. package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
  188. package/skills/fec-security-review/SKILL.md +16 -0
  189. package/skills/fec-security-review/references/report-template.md +10 -0
  190. package/skills/fec-tdd-workflow/SKILL.md +5 -1
  191. package/skills/metadata.json +434 -71
  192. package/skills/relations.json +264 -0
  193. package/templates/shared/rules/fec-agent-workflow.md +1 -0
  194. package/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
  195. package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
@@ -1,320 +1,359 @@
1
- # frontend-craft
2
-
3
- [![Stars](https://img.shields.io/github/stars/bovinphang/frontend-craft?style=flat)](https://github.com/bovinphang/frontend-craft/stargazers)
4
- [![CI](https://github.com/bovinphang/frontend-craft/actions/workflows/ci.yml/badge.svg)](https://github.com/bovinphang/frontend-craft/actions/workflows/ci.yml)
5
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
- ![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?logo=typescript&logoColor=white)
7
- ![Node](https://img.shields.io/badge/-Node.js-339933?logo=node.js&logoColor=white)
8
-
9
- ---
10
-
11
- <div align="center">
12
-
13
- **Language / 语言**
14
-
15
- [English](README.openclaw.md) | [**简体中文**](README.openclaw.zh-CN.md)
16
-
17
- </div>
18
-
19
- ---
20
-
21
- **面向 OpenClaw 的 frontend-craft 原生插件包。**
22
-
23
- `frontend-craft` 是 [frontend-craft](https://github.com/bovinphang/frontend-craft) 的 OpenClaw 原生打包产物,包含工作流技能、Markdown 命令、OpenClaw 工作区模板、typed hooks、设计工具 MCP 参考配置,以及可选的 `frontend_craft_init_workspace` 初始化工具。
24
-
25
- **环境要求:** Node.js **>= 22**,OpenClaw plugin API **>= 2026.4.20**。
26
-
27
- ---
28
-
29
- ## 快速开始
30
-
31
- ### 1. 安装
32
-
33
- 从 ClawHub 安装(发布后推荐):
34
-
35
- ```bash
36
- openclaw plugins install clawhub:frontend-craft
37
- ```
38
-
39
- 从 npm 安装:
40
-
41
- ```bash
42
- openclaw plugins install frontend-craft
43
- ```
44
-
45
- 从主仓库构建出的本地 tarball 安装:
46
-
47
- ```bash
48
- npm install
49
- npm run pack:openclaw
50
- openclaw plugins install ./frontend-craft-<version>.tgz
51
- ```
52
-
53
- 本地开发时可链接包目录:
54
-
55
- ```bash
56
- openclaw plugins install -l /path/to/frontend-craft/npm-packages/openclaw
57
- ```
58
-
59
- ### 2. 启用插件
60
-
61
- npm 包名和 OpenClaw 插件 id 均为 `frontend-craft`。
62
-
63
- ```json5
64
- {
65
- plugins: {
66
- allow: ["frontend-craft"],
67
- entries: {
68
- "frontend-craft": {
69
- enabled: true,
70
- config: {
71
- // 可选,字段见 openclaw.plugin.json:
72
- // formatAfterWrite: true,
73
- // notifyOnAgentEnd: true,
74
- },
75
- },
76
- },
77
- },
78
- }
79
- ```
80
-
81
- 调整插件配置后重启网关:
82
-
83
- ```bash
84
- openclaw gateway restart
85
- openclaw plugins inspect frontend-craft
86
- ```
87
-
88
- ### 3. 初始化 OpenClaw 工作区
89
-
90
- OpenClaw 通常从代理工作区加载上下文,例如 `~/.openclaw/workspace`。可使用可选工具 `frontend_craft_init_workspace`,参数为:
91
-
92
- - `workspaceDir`:工作区根目录的绝对路径
93
- - `overwriteAgents`:仅在需要覆盖已有 `AGENTS.md` 时设为 `true`
94
-
95
- 该工具会复制:
96
-
97
- - `templates/openclaw/AGENTS.md` -> 工作区 `AGENTS.md`
98
- - `templates/shared/rules/*.md` -> 工作区 `skills/frontend-craft-rules/`
99
-
100
- 你也可以手工复制这些文件。OpenClaw 配置说明见 `templates/openclaw/OPENCLAW-CONFIG.md`。
101
-
102
- ### 4. 配置设计工具 MCP
103
-
104
- 包内 `.mcp.json` 是 Figma、Sketch、MasterGo、Pixso、墨刀的参考配置。OpenClaw 原生插件不会自动合并 MCP 配置,请将其中的 `mcpServers` 拷贝到 embedded Pi / 网关 MCP 配置中。
105
-
106
- 常见环境变量:
107
-
108
- | 变量 | 工具 |
109
- | ---------------- | --------------- |
110
- | `FIGMA_API_KEY` | Figma / Desktop |
111
- | `SKETCH_API_KEY` | Sketch |
112
- | `MG_MCP_TOKEN` | MasterGo |
113
- | `MODAO_TOKEN` | 墨刀 |
114
-
115
- Pixso 使用 `.mcp.json` 中的本地 MCP URL。摹客暂无 MCP 集成,请使用截图或导出标注。
116
-
117
- ---
118
-
119
- ## 包结构
120
-
121
- ```text
122
- frontend-craft/
123
- |-- dist/ # 打包后的 OpenClaw 插件入口
124
- |-- skills/ # 工作流技能
125
- |-- commands/ # 作为技能加载的 Markdown 命令说明
126
- |-- templates/openclaw/ # OpenClaw AGENTS.md 与配置说明
127
- |-- templates/shared/ # 共享前端规则
128
- |-- .mcp.json # 设计工具 MCP 参考配置
129
- |-- openclaw.plugin.json # 插件元数据与配置 schema
130
- |-- package.json
131
- ```
132
-
133
- ---
134
-
135
- ## 功能概览
136
-
137
- ### 技能
138
-
139
- OpenClaw 包包含 `skills/` 下全部 45 个公开工作流技能,按使用场景分组如下。
140
-
141
- **项目规范**
142
-
143
- | 技能 | 用途 |
144
- | -------------------------------- | --------------------------------------------------- |
145
- | `fec-react-project-standard` | React + TypeScript 项目规范 |
146
- | `fec-vue3-project-standard` | Vue 3 + TypeScript 项目规范 |
147
- | `fec-nextjs-project-standard` | Next.js App Router、SSR/SSG、路由、元数据、中间件 |
148
- | `fec-nuxt-project-standard` | Nuxt 3 SSR/SSG、组合式函数、路由、中间件 |
149
- | `fec-vite-project-standard` | Vite 配置、环境变量安全、HMR、开发代理、构建优化 |
150
- | `fec-monorepo-project-standard` | pnpm workspace、Turborepo、Nx 结构与任务编排 |
151
- | `fec-typescript-project-standard` | TypeScript 配置、公开类型、声明文件、DTO 和泛型 |
152
-
153
- **实现能力**
154
-
155
- | 技能 | 用途 |
156
- | ------------------------- | -------------------------------------------------------------- |
157
- | `fec-data-fetching` | 服务端状态获取、缓存、失效、SSR 与无限加载 |
158
- | `fec-api-integration` | 类型化 API 客户端、鉴权刷新、上传与实时通信 |
159
- | `fec-state-management` | 状态归属、store 选型、URL/服务端/表单/本地状态边界 |
160
- | `fec-form-handling` | 跨框架表单选型、schema 校验、动态字段、上传、多步流程 |
161
- | `fec-browser-storage` | localStorage/sessionStorage/IndexedDB/Cookies 选型与安全持久化 |
162
- | `fec-route-protection` | React Router、Next.js、Vue Router、Nuxt 的权限路由保护 |
163
- | `fec-pwa-implementation` | PWA manifest、Service Worker、离线缓存与安装提示 |
164
- | `fec-web-workers` | Web Worker、Transferable、Comlink、Worker 池 |
165
- | `fec-canvas-threejs` | Canvas 2D、Three.js、React Three Fiber、WebGL 性能与可访问性 |
166
- | `fec-svg-animation` | CSS、Framer Motion、GSAP SVG 动画与 reduced-motion 降级 |
167
- | `fec-list-virtualization` | 按框架选型的大列表虚拟滚动、测量、网格和无限滚动 |
168
-
169
- **测试**
170
-
171
- | 技能 | 用途 |
172
- | ----------------------- | -------------------------------------------------------- |
173
- | `fec-testing-strategy` | 测试层级选择、风险矩阵与覆盖规划 |
174
- | `fec-component-testing` | RTL / Vue Test Utils 组件测试与回归用例 |
175
- | `fec-e2e-testing` | Playwright / Cypress E2E 结构、产物、CI 与不稳定用例治理 |
176
- | `fec-tdd-workflow` | 测试先行的 red-green-refactor 前端实现流程 |
177
-
178
- **评审与质量**
179
-
180
- | 技能 | 用途 |
181
- | ------------------------------ | -------------------------------------------------------- |
182
- | `fec-code-review` | 架构、类型安全、渲染、样式、可访问性、测试、安全评审 |
183
- | `fec-debug-framework` | 构建、运行时、UI 与 API/data 问题的系统化诊断 |
184
- | `fec-security-review` | XSS、CSRF、敏感数据泄露、不安全输入处理 |
185
- | `fec-accessibility-check` | 面向 WCAG 的语义结构、键盘支持、焦点、标签检查 |
186
- | `fec-dependency-upgrade` | 依赖升级、lockfile 评审、CVE 修复和迁移验证 |
187
- | `fec-validation-fix` | 执行校验命令、分析失败并安全修复 |
188
- | `fec-performance-optimization` | Core Web Vitals、bundle、渲染、内存、网络和预算评审 |
189
- | `fec-refactor-clean` | 安全清理死代码、未用导出、样式、路由与依赖 |
190
-
191
- **设计 UI**
192
-
193
- | 技能 | 用途 |
194
- | ----------------------------- | ---------------------------------------------------------- |
195
- | `fec-ui-design` | UI 方向、视觉识别、界面打磨、状态与视觉 QA |
196
- | `fec-image-generation` | 图表、图片生成/编辑、视觉资产与 PNG QA 修复循环 |
197
- | `fec-drawio-studio` | 可编辑 draw.io / diagrams.net 技术图、形状检索与代码结构图 |
198
- | `fec-web-video-presentation` | 将文章、口播稿、课程和 demo 转成可录屏的 16:9 步进网页演示 |
199
- | `fec-tailwind-design-system` | Tailwind token、主题扩展、组件变体、class 治理和暗色模式 |
200
- | `fec-responsive-layout` | 移动优先布局、容器查询、数据密集型响应式界面 |
201
- | `fec-motion-interaction` | 上下文感知动效、页面转场、滚动动画与 reduced motion |
202
- | `fec-implement-from-design` | 基于 Figma、Sketch、MasterGo、Pixso、墨刀或截图实现 UI |
203
- | `fec-storybook-component-doc` | Storybook 组件文档、设计系统展示与隔离状态预览 |
204
-
205
- **遗留迁移**
206
-
207
- | 技能 | 用途 |
208
- | -------------------------------- | ------------------------------------------ |
209
- | `fec-legacy-web-standard` | JavaScript + jQuery + HTML/CSS 传统前端规范 |
210
- | `fec-legacy-to-modern-migration` | 遗留前端现代化、目标栈识别与分阶段迁移策略 |
211
-
212
- **项目演进**
213
-
214
- | 技能 | 用途 |
215
- | ------------- | ------------------------------------------------ |
216
- | `fec-alchemy` | 吸收参考系统想法,并重设计为原创、项目原生改进 |
217
-
218
- **维护与文档**
219
-
220
- | 技能 | 用途 |
221
- | ------------------------------- | -------------------------------------------------------- |
222
- | `fec-backend-requirements-handoff` | 面向后端交接 UI 数据需求、用户动作、状态、规则和问题 |
223
- | `fec-doc-sync` | 同步 README、配置、脚本、路由/API、环境变量与部署事实 |
224
- | `fec-source-driven-development` | 根据项目事实和官方来源校验版本敏感的前端决策 |
225
-
226
- ### 技能使用:场景与示例
227
-
228
- 技能定义在 `skills/<id>/SKILL.md`。本插件在 `openclaw.plugin.json` 中将 `skills` 与 `commands` 注册为技能根。运行时一般会按各技能前置元数据里的 **description** 与当前任务做 **自动匹配**;具体行为取决于你的 OpenClaw / Agent 配置。**普通用户不必知道内部技能 id**,用自然语言说明目标即可;熟悉仓库的人若知道 id 也可以显式写出。
229
-
230
- 本节是面向 OpenClaw 的快速示例,不是完整提示词清单。完整的按场景组织的提示词库覆盖 skills、agents、commands、设计工作流、测试、维护和 runtime 初始化,见 [docs/zh-CN/example-prompts.md](docs/zh-CN/example-prompts.md)。
231
-
232
- **使用建议**
233
-
234
- - 评审或重构时尽量带上 **文件路径、目录或组件名**。
235
- - 设计还原请提供 **Figma 链接 / 节点 id、截图**,或说明已配置的设计 MCP。
236
- - lint、类型检查、测试或构建失败时,请写明你实际执行的 **命令**(若与常见脚本不一致)。
237
-
238
- **OpenClaw 快速场景与示例话术**
239
-
240
- | 场景 | 技能(供查阅) | 示例话术(不出现技能名) |
241
- | ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
242
- | 合并前做 PR / 分支评审 | `fec-code-review` | 「合并前请评审 `src/features/checkout/`:架构、类型、无障碍和测试;把 Markdown 报告写到 `reports/`。」 |
243
- | 聚焦 XSS、密钥、危险 DOM | `fec-security-review` | 「请审计 `src/lib/auth.ts` 以及所有渲染或存储用户 HTML 的代码,按严重程度列出 XSS 与密钥泄露风险及修复建议。」 |
244
- | 新弹窗 / 表单 — 键盘与 ARIA | `fec-accessibility-check` | 「检查 `src/components/ConfirmDialog.tsx` 的键盘陷阱、焦点顺序、标签与 ARIA,并给出可落地的修改建议。」 |
245
- | 对齐 React 工程约定 | `fec-react-project-standard` | 「我们使用 React 18 和 TanStack Query,请对照成熟 React + TS 实践评审 `src/pages/Dashboard/`,并贴合现有抽象。」 |
246
- | 对齐 Vue 工程约定 | `fec-vue3-project-standard` | 「请评审 `src/views/Settings.vue` 及相关 composables,是否符合 Vue 3 + TS 惯例并与项目其余部分一致。」 |
247
- | 按设计稿 / 截图实现 UI | `fec-implement-from-design` | 「请按 Figma 节点 `123:456` 实现该界面:间距与设计 Token 对齐,复用现有 `Button`,并说明假设条件。」 |
248
- | CI 或本地脚本失败 | `fec-validation-fix` | 「`pnpm lint` 和 `pnpm test` 都挂了,请定位根因并修复,不要放宽类型或跳过检查。」 |
249
- | 维护 jQuery / MPA 老页面 | `fec-legacy-web-standard` | 「`public/js/legacy/*.js` 仍在生产使用,请在保持行为的前提下给出可维护性改进与模式建议。」 |
250
- | 规划遗留前端现代化 | `fec-legacy-to-modern-migration` | 「我们有 `static/app.js` 的 jQuery + 多页应用,请评估保留 MPA、局部现代化或迁到目标栈的分阶段方案、风险与里程碑。」 |
251
- | 规划前端测试覆盖 | `fec-testing-strategy` | 「这次 checkout 重构先别急着写测试,请把风险映射到静态检查、单元/组件、E2E、视觉、无障碍和安全覆盖。」 |
252
- | 补充或稳定 E2E | `fec-e2e-testing` | 「请用 Playwright 给登录流程加冒烟用例:目录清晰、使用 Page Object,并说明如何在 CI 里跑。」 |
253
- | Next.js App Router 功能 | `fec-nextjs-project-standard` | 「请评审 `app/(dashboard)/reports/page.tsx` 及相关 server actions 是否符合 Next.js App Router 最佳实践(数据获取、错误、元数据等)。」 |
254
- | Nuxt 3 页面或布局 | `fec-nuxt-project-standard` | 「请评审 `pages/admin/*.vue` 与 `composables/useApi.ts` 是否符合 Nuxt 3 的 SSR、数据与组合式用法惯例。」 |
255
- | Monorepo 边界与任务编排 | `fec-monorepo-project-standard` | 「`apps/web` 依赖 `packages/ui`,请检查包边界、workspace 配置和 Turborepo 任务图是否有问题。」 |
256
- | 服务端数据获取 | `fec-data-fetching` | 「请评审 `src/data/reports.ts` 的服务端状态获取:缓存 key、失效策略、SSR 水合,以及是否需要查询库。」 |
257
- | 状态归属与 store 选型 | `fec-state-management` | 「请审计 dashboard 的状态:哪些属于 URL 参数、TanStack Query、本地 state 或全局 store,并给出安全迁移方案。」 |
258
- | 复杂表单与校验 | `fec-form-handling` | 「构建多步注册表单:按项目框架选择表单库和 schema 校验方案,包含文件上传和动态条件字段。」 |
259
- | 为应用添加路由守卫 | `fec-route-protection` | 「为 React Router 的 `/admin` 路由做权限保护:未登录用户重定向,基于角色控制访问。」 |
260
- | 编写组件单元测试 | `fec-component-testing` | 「为 `src/components/UserCard.tsx` 编写 RTL 测试:渲染、user-event 交互和快照回归用例。」 |
261
- | 组件库文档化 | `fec-storybook-component-doc` | 「为 `packages/ui/` 搭建 Storybook:MDX 文档、无障碍 addon 和交互测试。」 |
262
- | 渲染上万条列表数据 | `fec-list-virtualization` | 「`ProductList` 渲染上万行太卡,请按现有框架、动态高度、浏览器查找和 SEO 约束选择虚拟滚动方案并测量性能。」 |
263
- | 添加离线支持 | `fec-pwa-implementation` | 「把这个 React 应用做成 PWA:manifest、Service Worker、离线缓存策略和安装提示。」 |
264
- | 重计算移出主线程 | `fec-web-workers` | 「把图片处理逻辑移到 Web Worker,用 Comlink 通信,保持 UI 响应。」 |
265
- | 构建交互式 3D 场景 | `fec-canvas-threejs` | 「在 `src/components/ProductViewer.tsx` 添加 Three.js 产品展示,兼顾性能和降级方案。」 |
266
- | 为落地页添加 SVG 动效 | `fec-svg-animation` | 「用 Framer Motion 为 hero 区 SVG 添加动画,并为 reduced-motion 用户提供静态降级方案。」 |
267
- | 设计与打磨 UI | `fec-ui-design` | 「请评审 `src/components/Dashboard.tsx` 的 UI 方向、视觉识别、间距、状态和动效打磨。」 |
268
- | 构建可录屏网页演示 | `fec-web-video-presentation` | 「把这段产品 demo 口播稿转成 16:9 浏览器演示:拆口播节拍、章节 step、主题 token,并给出录屏指引。」 |
269
- | 优化 Vite 构建配置 | `fec-vite-project-standard` | 「请审计 `vite.config.ts` 的 HMR、开发代理、环境变量安全和库模式最佳实践。」 |
270
-
271
- **斜杠命令(`commands/` 下的 Markdown)**
272
-
273
- 作为**固定步骤**的命令说明加载。对话里用自然语言描述要做的事即可,代理可按对应命令文档执行,**无需**说出命令文件名。完整命令提示词见 [docs/zh-CN/example-prompts.md](docs/zh-CN/example-prompts.md#高级用户提示词)。
274
-
275
- | 命令文档 | 适用时机 | 示例(自然语言) |
276
- | ------------------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
277
- | `fec-init.md` | 在**业务仓库**里初始化 **Claude 风格** 的 `.claude/` 模板(文档内路径针对 `.claude/`)。 | 「请在本仓库初始化 `.claude/`,按插件提供的模板与规则复制;若已有文件请先问我是否覆盖。」 |
278
- | `fec-review.md` | 引导式评审并保存 `reports/code-review-*.md`。 | 「请评审我上一次提交里改动的文件,并写一份结构化 Markdown 报告到 `reports/`。」 |
279
- | `fec-scaffold.md` | 页面 / 功能 / 组件目录脚手架。 | 「请为 React 项目脚手架一个新页面 UserDetail:放在 `src/pages/...`,并带上空的 `components/` 与 `hooks/` 目录。」 |
280
- | `fec-plan.md` | 实现前做架构方案或测试策略规划。 | 「先规划 checkout 重写:组件边界、状态流、风险和测试覆盖。」 |
281
- | `fec-tdd.md` | 使用 red-green-refactor 的测试驱动实现流程。 | 「这个筛选组件请按 TDD 做:先写失败测试,再实现最小行为。」 |
282
- | `fec-debug.md` | 诊断构建、运行时、UI 或 API/data 失败。 | 「登录后 dashboard 崩溃,请检查错误路径、定位根因,并写一份 debug 报告。」 |
283
- | `fec-refactor-clean.md` | 分类并安全清理死代码、未用导出、样式和依赖。 | 「清理 `src/features/billing/` 里的未用导出和样式,保持行为不变并报告变更。」 |
284
- | `fec-doc-sync.md` | 同步 README、文档、环境说明、脚本列表、API/路由说明和部署事实。 | 「检查 README 命令列表是否还匹配 package scripts,并更新漂移的文档。」 |
285
-
286
- ### Hooks
287
-
288
- | Hook | 行为 |
289
- | --------------------- | --------------------------------------------------------------------- |
290
- | `before_tool_call` | 拦截危险 shell / exec 类命令 |
291
- | `after_tool_call` | 可选地对 write/edit 目标运行 Prettier(`formatAfterWrite`,默认开启) |
292
- | `before_prompt_build` | 每个会话追加一次框架与包管理器提示 |
293
- | `agent_end` | 运行成功时输出完成提示音 / 日志行(`notifyOnAgentEnd`,默认开启) |
294
-
295
- ### 插件配置
296
-
297
- | 键 | 类型 | 默认 | 含义 |
298
- | ------------------ | ------- | ------ | --------------------------------------- |
299
- | `formatAfterWrite` | boolean | `true` | write/edit 工具调用后运行 Prettier |
300
- | `notifyOnAgentEnd` | boolean | `true` | agent 运行成功时输出完成提示音 / 日志行 |
301
-
302
- ---
303
-
304
- ## 从源码构建
305
-
306
- 在主 `frontend-craft` 仓库中执行:
307
-
308
- ```bash
309
- npm install
310
- npm run typecheck:openclaw
311
- npm run pack:openclaw
312
- ```
313
-
314
- `npm run pack:openclaw` 会构建并校验 OpenClaw bundle,刷新 `npm-packages/openclaw`,并在 `npm-packages/openclaw/` 目录下写出 `frontend-craft-<version>.tgz`。
315
-
316
- ---
317
-
318
- ## License
319
-
320
- MIT
1
+ # frontend-craft
2
+
3
+ [![Stars](https://img.shields.io/github/stars/bovinphang/frontend-craft?style=flat)](https://github.com/bovinphang/frontend-craft/stargazers)
4
+ [![CI](https://github.com/bovinphang/frontend-craft/actions/workflows/ci.yml/badge.svg)](https://github.com/bovinphang/frontend-craft/actions/workflows/ci.yml)
5
+ [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
6
+ ![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?logo=typescript&logoColor=white)
7
+ ![Node](https://img.shields.io/badge/-Node.js-339933?logo=node.js&logoColor=white)
8
+
9
+ ---
10
+
11
+ <div align="center">
12
+
13
+ **Language / 语言**
14
+
15
+ [English](README.openclaw.md) | [**简体中文**](README.openclaw.zh-CN.md)
16
+
17
+ </div>
18
+
19
+ ---
20
+
21
+ **面向 OpenClaw 的 frontend-craft 原生插件包。**
22
+
23
+ `frontend-craft` 是 [frontend-craft](https://github.com/bovinphang/frontend-craft) 的 OpenClaw 原生打包产物,包含工作流技能、Markdown 命令、OpenClaw 工作区模板、typed hooks、设计工具 MCP 参考配置,以及可选的 `frontend_craft_init_workspace` 初始化工具。
24
+
25
+ 该原生包提供 **56 个工作流技能**,并将 **11 个命令工作流通过技能提供(同名工作流复用完整技能)**。14 个专业 Agent 属于其他运行时适配器,不是 OpenClaw 原生 Agent。
26
+
27
+ **环境要求:** Node.js **>= 22**,OpenClaw plugin API **>= 2026.4.20**。
28
+
29
+ ---
30
+
31
+ ## 快速开始
32
+
33
+ ### 1. 安装
34
+
35
+ 从 ClawHub 安装(发布后推荐):
36
+
37
+ ```bash
38
+ openclaw plugins install clawhub:frontend-craft
39
+ ```
40
+
41
+ 从 npm 安装:
42
+
43
+ ```bash
44
+ openclaw plugins install frontend-craft
45
+ ```
46
+
47
+ 从主仓库构建出的本地 tarball 安装:
48
+
49
+ ```bash
50
+ npm install
51
+ npm run pack:openclaw
52
+ openclaw plugins install ./frontend-craft-<version>.tgz
53
+ ```
54
+
55
+ 本地开发时可链接包目录:
56
+
57
+ ```bash
58
+ openclaw plugins install -l /path/to/frontend-craft/npm-packages/openclaw
59
+ ```
60
+
61
+ ### 2. 启用插件
62
+
63
+ npm 包名和 OpenClaw 插件 id 均为 `frontend-craft`。
64
+
65
+ ```json5
66
+ {
67
+ plugins: {
68
+ allow: ["frontend-craft"],
69
+ entries: {
70
+ "frontend-craft": {
71
+ enabled: true,
72
+ config: {
73
+ // 可选,字段见 openclaw.plugin.json:
74
+ // formatAfterWrite: true,
75
+ // notifyOnAgentEnd: true,
76
+ },
77
+ },
78
+ },
79
+ },
80
+ }
81
+ ```
82
+
83
+ 调整插件配置后重启网关:
84
+
85
+ ```bash
86
+ openclaw gateway restart
87
+ openclaw plugins inspect frontend-craft
88
+ ```
89
+
90
+ ### 3. 初始化 OpenClaw 工作区
91
+
92
+ OpenClaw 通常从代理工作区加载上下文,例如 `~/.openclaw/workspace`。可使用可选工具 `frontend_craft_init_workspace`,参数为:
93
+
94
+ - `workspaceDir`:工作区根目录的绝对路径
95
+ - `overwriteAgents`:仅在需要覆盖已有 `AGENTS.md` 时设为 `true`
96
+
97
+ 该工具会复制:
98
+
99
+ - `templates/openclaw/AGENTS.md` -> 工作区 `AGENTS.md`
100
+ - `templates/shared/rules/*.md` -> 工作区 `skills/frontend-craft-rules/`
101
+
102
+ 你也可以手工复制这些文件。OpenClaw 配置说明见 `templates/openclaw/OPENCLAW-CONFIG.md`。
103
+
104
+ ### 4. 配置设计工具 MCP
105
+
106
+ 包内 `.mcp.json` 是 Figma、Sketch、MasterGo、Pixso、墨刀的参考配置。OpenClaw 原生插件不会自动合并 MCP 配置,请将其中的 `mcpServers` 拷贝到 embedded Pi / 网关 MCP 配置中。
107
+
108
+ 常见环境变量:
109
+
110
+ | 变量 | 工具 |
111
+ | ---------------- | --------------- |
112
+ | `FIGMA_API_KEY` | Figma / Desktop |
113
+ | `SKETCH_API_KEY` | Sketch |
114
+ | `MG_MCP_TOKEN` | MasterGo |
115
+ | `MODAO_TOKEN` | 墨刀 |
116
+
117
+ Pixso 使用 `.mcp.json` 中的本地 MCP URL。摹客暂无 MCP 集成,请使用截图或导出标注。
118
+
119
+ ---
120
+
121
+ ## 包结构
122
+
123
+ ```text
124
+ frontend-craft/
125
+ |-- dist/ # 打包后的 OpenClaw 插件入口
126
+ |-- skills/ # 工作流技能
127
+ |-- commands/ # 命令源文件;转换后的技能位于 skills/
128
+ |-- templates/openclaw/ # OpenClaw AGENTS.md 与配置说明
129
+ |-- templates/shared/ # 共享前端规则
130
+ |-- .mcp.json # 设计工具 MCP 参考配置
131
+ |-- openclaw.plugin.json # 插件元数据与配置 schema
132
+ |-- package.json
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 功能概览
138
+
139
+ ### 技能
140
+
141
+ OpenClaw 包包含 `skills/` 下全部 56 个公开工作流技能,按使用场景分组如下。
142
+
143
+ **项目规范**
144
+
145
+ | 技能 | 用途 |
146
+ | -------------------------------- | --------------------------------------------------- |
147
+ | `fec-react-project-standard` | React + TypeScript 项目规范 |
148
+ | `fec-vue3-project-standard` | Vue 3 + TypeScript 项目规范 |
149
+ | `fec-nextjs-project-standard` | Next.js App Router、SSR/SSG、路由、元数据、中间件 |
150
+ | `fec-nuxt-project-standard` | Nuxt 3 SSR/SSG、组合式函数、路由、中间件 |
151
+ | `fec-vite-project-standard` | Vite 配置、环境变量安全、HMR、开发代理、构建优化 |
152
+ | `fec-monorepo-project-standard` | pnpm workspace、Turborepo、Nx 结构与任务编排 |
153
+ | `fec-typescript-project-standard` | TypeScript 配置、公开类型、声明文件、DTO 和泛型 |
154
+
155
+ **实现能力**
156
+
157
+ | 技能 | 用途 |
158
+ | ------------------------- | -------------------------------------------------------------- |
159
+ | `fec-data-fetching` | 服务端状态获取、缓存、失效、SSR 与无限加载 |
160
+ | `fec-api-integration` | 类型化 API 客户端、鉴权刷新、上传与实时通信 |
161
+ | `fec-state-management` | 状态归属、store 选型、URL/服务端/表单/本地状态边界 |
162
+ | `fec-form-handling` | 跨框架表单选型、schema 校验、动态字段、上传、多步流程 |
163
+ | `fec-browser-storage` | localStorage/sessionStorage/IndexedDB/Cookies 选型与安全持久化 |
164
+ | `fec-route-protection` | React Router、Next.js、Vue Router、Nuxt 的权限路由保护 |
165
+ | `fec-pwa-implementation` | PWA manifest、Service Worker、离线缓存与安装提示 |
166
+ | `fec-web-workers` | Web Worker、Transferable、Comlink、Worker 池 |
167
+ | `fec-canvas-threejs` | Canvas 2D、Three.js、React Three Fiber、WebGL 性能与可访问性 |
168
+ | `fec-svg-animation` | CSS、Framer Motion、GSAP SVG 动画与 reduced-motion 降级 |
169
+ | `fec-list-virtualization` | 按框架选型的大列表虚拟滚动、测量、网格和无限滚动 |
170
+
171
+ **测试**
172
+
173
+ | 技能 | 用途 |
174
+ | ----------------------- | -------------------------------------------------------- |
175
+ | `fec-testing-strategy` | 测试层级选择、风险矩阵与覆盖规划 |
176
+ | `fec-component-testing` | RTL / Vue Test Utils 组件测试与回归用例 |
177
+ | `fec-e2e-testing` | Playwright / Cypress E2E 结构、产物、CI 与不稳定用例治理 |
178
+ | `fec-tdd-workflow` | 测试先行的 red-green-refactor 前端实现流程 |
179
+
180
+ **评审与质量**
181
+
182
+ | 技能 | 用途 |
183
+ | ------------------------------ | -------------------------------------------------------- |
184
+ | `fec-code-review` | 架构、类型安全、渲染、样式、可访问性、测试、安全评审 |
185
+ | `fec-debug-framework` | 构建、运行时、UI 与 API/data 问题的系统化诊断 |
186
+ | `fec-security-review` | XSS、CSRF、敏感数据泄露、不安全输入处理 |
187
+ | `fec-accessibility-check` | 面向 WCAG 的语义结构、键盘支持、焦点、标签检查 |
188
+ | `fec-dependency-upgrade` | 依赖升级、lockfile 评审、CVE 修复和迁移验证 |
189
+ | `fec-validation-fix` | 执行校验命令、分析失败并安全修复 |
190
+ | `fec-performance-optimization` | Core Web Vitals、bundle、渲染、内存、网络和预算评审 |
191
+ | `fec-refactor-clean` | 安全清理死代码、未用导出、样式、路由与依赖 |
192
+
193
+ **重构**
194
+
195
+ | 技能 | 用途 |
196
+ | --- | --- |
197
+ | `fec-refactoring` | 保持行为的重构编排与安全工作流 |
198
+ | `fec-code-smells` | 基于证据诊断 24 种标准代码坏味道 |
199
+ | `fec-refactoring-catalog` | 在 61 项标准手法中选择和组合 |
200
+ | `fec-refactoring-functions` | 函数类重构 |
201
+ | `fec-refactoring-encapsulation` | 封装类重构 |
202
+ | `fec-refactoring-move-features` | 搬移特性类重构与清理路由 |
203
+ | `fec-refactoring-data` | 数据重构 |
204
+ | `fec-refactoring-control` | 条件/控制流重构 |
205
+ | `fec-refactoring-api` | API 重构 |
206
+ | `fec-refactoring-inheritance` | 继承/委托重构 |
207
+ | `fec-refactoring-validation` | 行为保持验证与证明等级 |
208
+
209
+ **设计 UI**
210
+
211
+ | 技能 | 用途 |
212
+ | ----------------------------- | ---------------------------------------------------------- |
213
+ | `fec-ui-design` | UI 方向、视觉识别、界面打磨、状态与视觉 QA |
214
+ | `fec-image-generation` | 图表、图片生成/编辑、视觉资产与 PNG QA 修复循环 |
215
+ | `fec-drawio-studio` | 可编辑 draw.io / diagrams.net 技术图、形状检索与代码结构图 |
216
+ | `fec-web-video-presentation` | 将文章、口播稿、课程和 demo 转成可录屏的 16:9 步进网页演示 |
217
+ | `fec-tailwind-design-system` | Tailwind token、主题扩展、组件变体、class 治理和暗色模式 |
218
+ | `fec-responsive-layout` | 移动优先布局、容器查询、数据密集型响应式界面 |
219
+ | `fec-motion-interaction` | 上下文感知动效、页面转场、滚动动画与 reduced motion |
220
+ | `fec-implement-from-design` | 基于 Figma、Sketch、MasterGo、Pixso、墨刀或截图实现 UI |
221
+ | `fec-storybook-component-doc` | Storybook 组件文档、设计系统展示与隔离状态预览 |
222
+
223
+ 技术图质量工作流:`fec-image-generation` 的标准时序/流程图优先本地 Mermaid,架构图复用 draw.io 工作流,工具缺失时使用 JSON/HTML。导出 PNG 时生成实际测量且与缩放一致的 manifest,再运行 QA 并检查最终 PNG;保留完整文字、显式布局与关系,最多自动修复两轮,未解决问题需明确报告。可复现样例位于 `skills/fec-image-generation/assets/quality-examples/`。
224
+
225
+ [审核范围与技术图交付指南](docs/zh-CN/review-and-diagram-workflows.md).
226
+
227
+ **遗留迁移**
228
+
229
+ | 技能 | 用途 |
230
+ | -------------------------------- | ------------------------------------------ |
231
+ | `fec-legacy-web-standard` | JavaScript + jQuery + HTML/CSS 传统前端规范 |
232
+ | `fec-legacy-to-modern-migration` | 遗留前端现代化、目标栈识别与分阶段迁移策略 |
233
+
234
+ **项目演进**
235
+
236
+ | 技能 | 用途 |
237
+ | ------------- | ------------------------------------------------ |
238
+ | `fec-alchemy` | 吸收参考系统想法,并重设计为原创、项目原生改进 |
239
+
240
+ **维护与文档**
241
+
242
+ | 技能 | 用途 |
243
+ | ------------------------------- | -------------------------------------------------------- |
244
+ | `fec-backend-requirements-handoff` | 面向后端交接 UI 数据需求、用户动作、状态、规则和问题 |
245
+ | `fec-doc-sync` | 同步 README、配置、脚本、路由/API、环境变量与部署事实 |
246
+ | `fec-source-driven-development` | 根据项目事实和官方来源校验版本敏感的前端决策 |
247
+
248
+ ### 技能使用:场景与示例
249
+
250
+ 技能定义在 `skills/<id>/SKILL.md`。本插件在 `openclaw.plugin.json` 中将 `skills` 注册为技能根;命令工作流在打包时转换为技能。运行时一般会按各技能前置元数据里的 **description** 与当前任务做 **自动匹配**;具体行为取决于你的 OpenClaw / Agent 配置。**普通用户不必知道内部技能 id**,用自然语言说明目标即可;熟悉仓库的人若知道 id 也可以显式写出。
251
+
252
+ 本节是面向 OpenClaw 的快速示例,不是完整提示词清单。完整的按场景组织的提示词库覆盖 skills、agents、commands、设计工作流、测试、维护和 runtime 初始化,见 [docs/zh-CN/example-prompts.md](docs/zh-CN/example-prompts.md)。
253
+
254
+ **使用建议**
255
+
256
+ - 评审或重构时尽量带上 **文件路径、目录或组件名**。
257
+ - 设计还原请提供 **Figma 链接 / 节点 id、截图**,或说明已配置的设计 MCP。
258
+ - lint、类型检查、测试或构建失败时,请写明你实际执行的 **命令**(若与常见脚本不一致)。
259
+
260
+ **OpenClaw 快速场景与示例话术**
261
+
262
+ | 场景 | 技能(供查阅) | 示例话术(不出现技能名) |
263
+ | ---------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
264
+ | 指定目录评审 | `fec-code-review` | 「合并前请评审 `src/features/checkout/`:架构、类型、无障碍和测试;把 Markdown 报告写到 `reports/`。」 |
265
+ | 聚焦 XSS、密钥、危险 DOM | `fec-security-review` | 「请审计 `src/lib/auth.ts` 以及所有渲染或存储用户 HTML 的代码,按严重程度列出 XSS 与密钥泄露风险及修复建议。」 |
266
+ | 新弹窗 / 表单 — 键盘与 ARIA | `fec-accessibility-check` | 「检查 `src/components/ConfirmDialog.tsx` 的键盘陷阱、焦点顺序、标签与 ARIA,并给出可落地的修改建议。」 |
267
+ | 对齐 React 工程约定 | `fec-react-project-standard` | 「我们使用 React 18 和 TanStack Query,请对照成熟 React + TS 实践评审 `src/pages/Dashboard/`,并贴合现有抽象。」 |
268
+ | 对齐 Vue 工程约定 | `fec-vue3-project-standard` | 「请评审 `src/views/Settings.vue` 及相关 composables,是否符合 Vue 3 + TS 惯例并与项目其余部分一致。」 |
269
+ | 按设计稿 / 截图实现 UI | `fec-implement-from-design` | 「请按 Figma 节点 `123:456` 实现该界面:间距与设计 Token 对齐,复用现有 `Button`,并说明假设条件。」 |
270
+ | CI 或本地脚本失败 | `fec-validation-fix` | 「`pnpm lint` 和 `pnpm test` 都挂了,请定位根因并修复,不要放宽类型或跳过检查。」 |
271
+ | 维护 jQuery / MPA 老页面 | `fec-legacy-web-standard` | 「`public/js/legacy/*.js` 仍在生产使用,请在保持行为的前提下给出可维护性改进与模式建议。」 |
272
+ | 规划遗留前端现代化 | `fec-legacy-to-modern-migration` | 「我们有 `static/app.js` 的 jQuery + 多页应用,请评估保留 MPA、局部现代化或迁到目标栈的分阶段方案、风险与里程碑。」 |
273
+ | 规划前端测试覆盖 | `fec-testing-strategy` | 「这次 checkout 重构先别急着写测试,请把风险映射到静态检查、单元/组件、E2E、视觉、无障碍和安全覆盖。」 |
274
+ | 补充或稳定 E2E | `fec-e2e-testing` | 「请用 Playwright 给登录流程加冒烟用例:目录清晰、使用 Page Object,并说明如何在 CI 里跑。」 |
275
+ | Next.js App Router 功能 | `fec-nextjs-project-standard` | 「请评审 `app/(dashboard)/reports/page.tsx` 及相关 server actions 是否符合 Next.js App Router 最佳实践(数据获取、错误、元数据等)。」 |
276
+ | Nuxt 3 页面或布局 | `fec-nuxt-project-standard` | 「请评审 `pages/admin/*.vue` 与 `composables/useApi.ts` 是否符合 Nuxt 3 的 SSR、数据与组合式用法惯例。」 |
277
+ | Monorepo 边界与任务编排 | `fec-monorepo-project-standard` | 「`apps/web` 依赖 `packages/ui`,请检查包边界、workspace 配置和 Turborepo 任务图是否有问题。」 |
278
+ | 服务端数据获取 | `fec-data-fetching` | 「请评审 `src/data/reports.ts` 的服务端状态获取:缓存 key、失效策略、SSR 水合,以及是否需要查询库。」 |
279
+ | 状态归属与 store 选型 | `fec-state-management` | 「请审计 dashboard 的状态:哪些属于 URL 参数、TanStack Query、本地 state 或全局 store,并给出安全迁移方案。」 |
280
+ | 复杂表单与校验 | `fec-form-handling` | 「构建多步注册表单:按项目框架选择表单库和 schema 校验方案,包含文件上传和动态条件字段。」 |
281
+ | 为应用添加路由守卫 | `fec-route-protection` | 「为 React Router 的 `/admin` 路由做权限保护:未登录用户重定向,基于角色控制访问。」 |
282
+ | 编写组件单元测试 | `fec-component-testing` | 「为 `src/components/UserCard.tsx` 编写 RTL 测试:渲染、user-event 交互和快照回归用例。」 |
283
+ | 组件库文档化 | `fec-storybook-component-doc` | 「为 `packages/ui/` 搭建 Storybook:MDX 文档、无障碍 addon 和交互测试。」 |
284
+ | 渲染上万条列表数据 | `fec-list-virtualization` | 「`ProductList` 渲染上万行太卡,请按现有框架、动态高度、浏览器查找和 SEO 约束选择虚拟滚动方案并测量性能。」 |
285
+ | 添加离线支持 | `fec-pwa-implementation` | 「把这个 React 应用做成 PWA:manifest、Service Worker、离线缓存策略和安装提示。」 |
286
+ | 重计算移出主线程 | `fec-web-workers` | 「把图片处理逻辑移到 Web Worker,用 Comlink 通信,保持 UI 响应。」 |
287
+ | 构建交互式 3D 场景 | `fec-canvas-threejs` | 「在 `src/components/ProductViewer.tsx` 添加 Three.js 产品展示,兼顾性能和降级方案。」 |
288
+ | 为落地页添加 SVG 动效 | `fec-svg-animation` | 「用 Framer Motion 为 hero 区 SVG 添加动画,并为 reduced-motion 用户提供静态降级方案。」 |
289
+ | 设计与打磨 UI | `fec-ui-design` | 「请评审 `src/components/Dashboard.tsx` 的 UI 方向、视觉识别、间距、状态和动效打磨。」 |
290
+ | 构建可录屏网页演示 | `fec-web-video-presentation` | 「把这段产品 demo 口播稿转成 16:9 浏览器演示:拆口播节拍、章节 step、主题 token,并给出录屏指引。」 |
291
+ | 优化 Vite 构建配置 | `fec-vite-project-standard` | 「请审计 `vite.config.ts` 的 HMR、开发代理、环境变量安全和库模式最佳实践。」 |
292
+
293
+ **斜杠命令(`commands/` 下的 Markdown)**
294
+
295
+ 作为**固定步骤**的命令说明加载。对话里用自然语言描述要做的事即可,代理可按对应命令文档执行,**无需**说出命令文件名。完整命令提示词见 [docs/zh-CN/example-prompts.md](docs/zh-CN/example-prompts.md#高级用户提示词)。
296
+
297
+ | 命令文档 | 适用时机 | 示例(自然语言) |
298
+ | ------------------------ | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
299
+ | `fec-init.md` | 在**业务仓库**里初始化 **Claude 风格** 的 `.claude/` 模板(文档内路径针对 `.claude/`)。 | 「请在本仓库初始化 `.claude/`,按插件提供的模板与规则复制;若已有文件请先问我是否覆盖。」 |
300
+ | `fec-review.md` | 引导式评审并保存 `reports/code-review-*.md`。 | 「请评审我上一次提交里改动的文件,并写一份结构化 Markdown 报告到 `reports/`。」 |
301
+ | `fec-scaffold.md` | 页面 / 功能 / 组件目录脚手架。 | 「请为 React 项目脚手架一个新页面 UserDetail:放在 `src/pages/...`,并带上空的 `components/` 与 `hooks/` 目录。」 |
302
+ | `fec-plan.md` | 实现前做架构方案或测试策略规划。 | 「先规划 checkout 重写:组件边界、状态流、风险和测试覆盖。」 |
303
+ | `fec-tdd.md` | 使用 red-green-refactor 的测试驱动实现流程。 | 「这个筛选组件请按 TDD 做:先写失败测试,再实现最小行为。」 |
304
+ | `fec-debug.md` | 诊断构建、运行时、UI 或 API/data 失败。 | 「登录后 dashboard 崩溃,请检查错误路径、定位根因,并写一份 debug 报告。」 |
305
+ | `fec-refactor-clean.md` | 分类并安全清理死代码、未用导出、样式和依赖。 | 「清理 `src/features/billing/` 里的未用导出和样式,保持行为不变并报告变更。」 |
306
+ | `fec-smell.md` | 诊断结构代码坏味道,不修改业务代码。 | 「找出 `Compose.tsx` 的代码坏味道并给出证据,先不要改。」 |
307
+ | `fec-refactor-plan.md` | 生成有顺序、保持行为的小步重构计划。 | 「先为这个大型写信模块设计安全重构计划,不改代码。」 |
308
+ | `fec-refactor.md` | 一次执行一个经过验证的保持行为重构步骤。 | 「保持可观察行为不变地重构这个模块,并逐步验证。」 |
309
+ | `fec-doc-sync.md` | 同步 README、文档、环境说明、脚本列表、API/路由说明和部署事实。 | 「检查 README 命令列表是否还匹配 package scripts,并更新漂移的文档。」 |
310
+
311
+ ### Hooks
312
+
313
+ | Hook | 行为 |
314
+ | --------------------- | --------------------------------------------------------------------- |
315
+ | `before_tool_call` | 拦截危险 shell / exec 类命令 |
316
+ | `after_tool_call` | 可选地对 write/edit 目标运行 Prettier(`formatAfterWrite`,默认开启) |
317
+ | `before_prompt_build` | 每个会话追加一次框架与包管理器提示 |
318
+ | `agent_end` | 运行成功时输出完成提示音 / 日志行(`notifyOnAgentEnd`,默认开启) |
319
+
320
+ ### 插件配置
321
+
322
+ | 键 | 类型 | 默认 | 含义 |
323
+ | ------------------ | ------- | ------ | --------------------------------------- |
324
+ | `formatAfterWrite` | boolean | `true` | write/edit 工具调用后运行 Prettier |
325
+ | `notifyOnAgentEnd` | boolean | `true` | agent 运行成功时输出完成提示音 / 日志行 |
326
+
327
+ ---
328
+
329
+ ## 从源码构建
330
+
331
+ 在主 `frontend-craft` 仓库中执行:
332
+
333
+ ```bash
334
+ npm install
335
+ npm run typecheck:openclaw
336
+ npm run pack:openclaw
337
+ ```
338
+
339
+ `npm run pack:openclaw` 会构建并校验 OpenClaw bundle,刷新 `npm-packages/openclaw`,并在 `npm-packages/openclaw/` 目录下写出 `frontend-craft-<version>.tgz`。
340
+
341
+ ---
342
+
343
+ ## License
344
+
345
+ MIT
346
+
347
+ ### 审核范围
348
+
349
+ 代码和安全审核 skill 采用三种模式。在 OpenClaw 中使用自然语言提出请求;以下斜杠命令示例适用于提供 `/fec-review` 的运行时:
350
+
351
+ - **改动审核**:明确要求最近改动、本次修改、暂存区、PR 或提交,或当前任务已明确这些改动上下文。无改动时说明没有可审核的改动,不自动审核最近提交。
352
+ - **指定范围审核**:指定文件或目录,审核其中现有代码,包括未改动代码,不要求 Git 差异。
353
+ - **全项目审核(默认)**:未指定范围或改动上下文,或明确要求审核整个项目时,先建立项目自有前端代码、相关测试、配置和依赖声明清单,再按模块审核。
354
+
355
+ 指定文件或目录默认审核其全部代码;加上“本次改动”才仅审核差异。自然语言请求“审核代码”即使有改动也默认全项目;开始时说明模式和范围,修改后自动委托审核须显式传入本次改动范围。
356
+
357
+ 示例:`/fec-review`、`/fec-review 审核最近改动`、`/fec-review 审核 src/components/Button.tsx`、`/fec-review 审核 src/features/`、`/fec-review 审核整个项目`。这些是自然语言指令,不是 CLI 参数;明确指定的范围优先于默认模式。
358
+
359
+ 默认排除依赖目录、构建产物、缓存、生成文件和第三方代码。报告记录模式、目标范围、已审核及未覆盖文件或模块、排除项、完成状态和验证结果;覆盖不足时标记部分完成。读取调用方或执行全项目 lint/类型检查不等于完成人工审核。改动审核保留合并建议,指定范围和全项目审核评估已审核范围的风险。前端审核不替代后端专项审核;未要求修复时不修改业务代码。