@bovinphang/frontend-craft 2.5.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.
- package/.claude-plugin/marketplace.json +61 -0
- package/.claude-plugin/plugin.json +32 -0
- package/.mcp.json +44 -0
- package/CHANGELOG.md +229 -0
- package/CHANGELOG.zh-CN.md +228 -0
- package/CODE_OF_CONDUCT.md +34 -0
- package/CODE_OF_CONDUCT.zh-CN.md +34 -0
- package/CONTRIBUTING.md +356 -0
- package/CONTRIBUTING.zh-CN.md +356 -0
- package/LICENSE +21 -0
- package/README.md +467 -0
- package/README.openclaw.md +262 -0
- package/README.openclaw.zh-CN.md +262 -0
- package/README.zh-CN.md +467 -0
- package/SECURITY.md +44 -0
- package/SECURITY.zh-CN.md +44 -0
- package/agents/fec-architect.md +125 -0
- package/agents/fec-code-reviewer.md +152 -0
- package/agents/fec-debugger.md +44 -0
- package/agents/fec-design-token-mapper.md +75 -0
- package/agents/fec-doc-updater.md +30 -0
- package/agents/fec-e2e-runner.md +107 -0
- package/agents/fec-figma-implementer.md +104 -0
- package/agents/fec-performance-optimizer.md +293 -0
- package/agents/fec-refactor-cleaner.md +32 -0
- package/agents/fec-security-reviewer.md +116 -0
- package/agents/fec-test-planner.md +50 -0
- package/agents/fec-typescript-reviewer.md +142 -0
- package/agents/fec-ui-checker.md +120 -0
- package/commands/fec-debug.md +30 -0
- package/commands/fec-doc-sync.md +18 -0
- package/commands/fec-init.md +70 -0
- package/commands/fec-plan.md +94 -0
- package/commands/fec-refactor-clean.md +19 -0
- package/commands/fec-review.md +66 -0
- package/commands/fec-scaffold.md +205 -0
- package/commands/fec-tdd.md +21 -0
- package/dist/bin/frontend-craft.js +82 -0
- package/dist/hooks/fec-cleanup-claude-cache.js +4 -0
- package/dist/hooks/fec-format-changed-file.js +1 -0
- package/dist/hooks/fec-notify.js +1 -0
- package/dist/hooks/fec-run-tests.js +1 -0
- package/dist/hooks/fec-security-check.js +2 -0
- package/dist/hooks/fec-session-start.js +1 -0
- package/docs/example-prompts.md +124 -0
- package/docs/ja-JP/README.md +467 -0
- package/docs/ko-KR/README.md +467 -0
- package/docs/project-structure.md +119 -0
- package/docs/runtimes/antigravity.md +10 -0
- package/docs/runtimes/augment.md +10 -0
- package/docs/runtimes/claude.md +171 -0
- package/docs/runtimes/claude.zh-CN.md +169 -0
- package/docs/runtimes/cline.md +10 -0
- package/docs/runtimes/codebuddy.md +10 -0
- package/docs/runtimes/codex.md +10 -0
- package/docs/runtimes/copilot.md +10 -0
- package/docs/runtimes/cursor.md +10 -0
- package/docs/runtimes/gemini.md +10 -0
- package/docs/runtimes/kilo.md +10 -0
- package/docs/runtimes/openclaw.md +10 -0
- package/docs/runtimes/opencode.md +10 -0
- package/docs/runtimes/qoder.md +19 -0
- package/docs/runtimes/trae.md +10 -0
- package/docs/runtimes/windsurf.md +10 -0
- package/docs/superpowers/plans/2026-05-29-fec-debug.md +491 -0
- package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +340 -0
- package/docs/zh-CN/example-prompts.md +124 -0
- package/docs/zh-CN/project-structure.md +119 -0
- package/docs/zh-TW/README.md +467 -0
- package/hooks/hooks.json +71 -0
- package/openclaw.plugin.json +26 -0
- package/package.json +101 -0
- package/skills/TEMPLATE.md +155 -0
- package/skills/eval_queries.json +890 -0
- package/skills/fec-accessibility-check/SKILL.md +39 -0
- package/skills/fec-accessibility-check/references/report-template.md +23 -0
- package/skills/fec-accessibility-check/references/screen-reader-testing.md +33 -0
- package/skills/fec-api-integration/SKILL.md +78 -0
- package/skills/fec-api-integration/references/integration-patterns.md +80 -0
- package/skills/fec-browser-storage/SKILL.md +34 -0
- package/skills/fec-browser-storage/references/storage-patterns.md +65 -0
- package/skills/fec-canvas-threejs/SKILL.md +66 -0
- package/skills/fec-canvas-threejs/references/rendering-patterns.md +67 -0
- package/skills/fec-canvas-threejs/references/shader-webgl-patterns.md +67 -0
- package/skills/fec-code-review/SKILL.md +135 -0
- package/skills/fec-code-review/references/report-template.md +29 -0
- package/skills/fec-component-testing/SKILL.md +119 -0
- package/skills/fec-data-fetching/SKILL.md +62 -0
- package/skills/fec-data-fetching/references/query-patterns.md +77 -0
- package/skills/fec-debug-framework/SKILL.md +162 -0
- package/skills/fec-dependency-upgrade/SKILL.md +34 -0
- package/skills/fec-dependency-upgrade/references/dependency-upgrade-workflow.md +56 -0
- package/skills/fec-doc-sync/SKILL.md +37 -0
- package/skills/fec-e2e-testing/SKILL.md +40 -0
- package/skills/fec-e2e-testing/references/e2e-advanced.md +176 -0
- package/skills/fec-e2e-testing/references/playwright-patterns.md +95 -0
- package/skills/fec-form-handling/SKILL.md +76 -0
- package/skills/fec-form-handling/references/advanced-form-patterns.md +72 -0
- package/skills/fec-implement-from-design/SKILL.md +122 -0
- package/skills/fec-implement-from-design/references/design-plan-template.md +36 -0
- package/skills/fec-legacy-to-modern-migration/SKILL.md +180 -0
- package/skills/fec-legacy-to-modern-migration/references/migration-report-template.md +41 -0
- package/skills/fec-legacy-web-standard/SKILL.md +35 -0
- package/skills/fec-legacy-web-standard/references/legacy-patterns.md +85 -0
- package/skills/fec-list-virtualization/SKILL.md +34 -0
- package/skills/fec-list-virtualization/references/virtualization-patterns.md +52 -0
- package/skills/fec-monorepo-project-standard/SKILL.md +142 -0
- package/skills/fec-motion-interaction/SKILL.md +66 -0
- package/skills/fec-motion-interaction/references/motion-patterns.md +112 -0
- package/skills/fec-nextjs-project-standard/SKILL.md +117 -0
- package/skills/fec-nuxt-project-standard/SKILL.md +122 -0
- package/skills/fec-performance-optimization/SKILL.md +72 -0
- package/skills/fec-pwa-implementation/SKILL.md +36 -0
- package/skills/fec-pwa-implementation/references/manifest-and-icons.md +53 -0
- package/skills/fec-pwa-implementation/references/service-worker-workbox.md +68 -0
- package/skills/fec-react-project-standard/SKILL.md +83 -0
- package/skills/fec-react-project-standard/references/react-project-details.md +642 -0
- package/skills/fec-refactor-clean/SKILL.md +48 -0
- package/skills/fec-responsive-layout/SKILL.md +34 -0
- package/skills/fec-responsive-layout/references/responsive-layout-patterns.md +59 -0
- package/skills/fec-route-protection/SKILL.md +135 -0
- package/skills/fec-security-review/SKILL.md +38 -0
- package/skills/fec-security-review/references/report-template.md +27 -0
- package/skills/fec-security-review/references/security-checklist.md +64 -0
- package/skills/fec-source-driven-development/SKILL.md +61 -0
- package/skills/fec-state-management/SKILL.md +140 -0
- package/skills/fec-state-management/references/state-patterns.md +109 -0
- package/skills/fec-storybook-component-doc/SKILL.md +37 -0
- package/skills/fec-storybook-component-doc/references/story-patterns.md +118 -0
- package/skills/fec-svg-animation/SKILL.md +148 -0
- package/skills/fec-tailwind-design-system/SKILL.md +34 -0
- package/skills/fec-tailwind-design-system/references/tailwind-system-patterns.md +55 -0
- package/skills/fec-tdd-workflow/SKILL.md +52 -0
- package/skills/fec-testing-strategy/SKILL.md +45 -0
- package/skills/fec-typescript-type-safety/SKILL.md +157 -0
- package/skills/fec-typescript-type-safety/references/type-safety-patterns.md +102 -0
- package/skills/fec-ui-design/SKILL.md +90 -0
- package/skills/fec-ui-design/data/product-rules.json +110 -0
- package/skills/fec-ui-design/data/stack-ui-rules.json +14 -0
- package/skills/fec-ui-design/data/style-archetypes.json +74 -0
- package/skills/fec-ui-design/data/ux-quality-rules.json +56 -0
- package/skills/fec-ui-design/references/design-intelligence.md +37 -0
- package/skills/fec-ui-design/references/master-page-overrides.md +30 -0
- package/skills/fec-ui-design/references/pre-delivery-checklist.md +33 -0
- package/skills/fec-ui-design/scripts/design-system.mjs +530 -0
- package/skills/fec-validation-fix/SKILL.md +48 -0
- package/skills/fec-vite-project-standard/SKILL.md +83 -0
- package/skills/fec-vue3-project-standard/SKILL.md +49 -0
- package/skills/fec-vue3-project-standard/references/vue3-project-details.md +547 -0
- package/skills/fec-web-workers/SKILL.md +36 -0
- package/skills/fec-web-workers/references/advanced-workers.md +54 -0
- package/skills/fec-web-workers/references/basic-worker.md +67 -0
- package/skills/metadata.json +1422 -0
- package/skills/relations.json +644 -0
- package/templates/claude/CLAUDE.md +106 -0
- package/templates/claude/settings.json +62 -0
- package/templates/codex/AGENTS.md +105 -0
- package/templates/codex/config.toml +32 -0
- package/templates/openclaw/AGENTS.md +101 -0
- package/templates/openclaw/OPENCLAW-CONFIG.md +12 -0
- package/templates/shared/rules/fec-agent-workflow.md +54 -0
- package/templates/shared/rules/fec-api-layer.md +99 -0
- package/templates/shared/rules/fec-ci-cd.md +128 -0
- package/templates/shared/rules/fec-code-comments.md +33 -0
- package/templates/shared/rules/fec-design-system.md +248 -0
- package/templates/shared/rules/fec-error-handling.md +200 -0
- package/templates/shared/rules/fec-git-conventions.md +73 -0
- package/templates/shared/rules/fec-i18n.md +112 -0
- package/templates/shared/rules/fec-naming-conventions.md +120 -0
- package/templates/shared/rules/fec-performance.md +101 -0
- package/templates/shared/rules/fec-react.md +82 -0
- package/templates/shared/rules/fec-refactoring.md +43 -0
- package/templates/shared/rules/fec-rendering-patterns.md +183 -0
- package/templates/shared/rules/fec-responsive-design.md +227 -0
- package/templates/shared/rules/fec-source-driven-development.md +31 -0
- package/templates/shared/rules/fec-state-management.md +163 -0
- package/templates/shared/rules/fec-testing.md +98 -0
- package/templates/shared/rules/fec-typescript.md +355 -0
- package/templates/shared/rules/fec-vue.md +64 -0
- package/templates/shared/rules/fec-working-modes.md +50 -0
|
@@ -0,0 +1,890 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fec-accessibility-check": {
|
|
3
|
+
"should_trigger": [
|
|
4
|
+
"检查这个弹窗的键盘焦点和 aria 是否正确",
|
|
5
|
+
"给这个表单做 WCAG 2.2 AA 无障碍审查",
|
|
6
|
+
"这个菜单能不能只用键盘操作",
|
|
7
|
+
"审查页面标题层级和 landmark",
|
|
8
|
+
"按钮只有图标,帮我补可访问名称",
|
|
9
|
+
"检查 table 语义和屏幕阅读器体验",
|
|
10
|
+
"抽屉关闭后焦点应该回到哪里",
|
|
11
|
+
"a11y review for this React component"
|
|
12
|
+
],
|
|
13
|
+
"should_not_trigger": [
|
|
14
|
+
"给这个 PR 做整体代码评审",
|
|
15
|
+
"修复 TypeScript 编译错误",
|
|
16
|
+
"写一个 Playwright 登录流程",
|
|
17
|
+
"实现 React 项目目录结构",
|
|
18
|
+
"检查 XSS 和 token 存储风险",
|
|
19
|
+
"优化虚拟列表滚动性能",
|
|
20
|
+
"用 Storybook 写组件文档",
|
|
21
|
+
"把 jQuery 项目迁移到 Vue"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"fec-api-integration": {
|
|
25
|
+
"should_trigger": [
|
|
26
|
+
"设计前端 typed API client",
|
|
27
|
+
"统一处理接口 401 refresh token",
|
|
28
|
+
"前后端联调时错误状态怎么映射",
|
|
29
|
+
"文件上传用 multipart 还是预签名 URL",
|
|
30
|
+
"SSE 和 WebSocket 应该选哪个",
|
|
31
|
+
"组件里到处 fetch 想收敛成 API 层",
|
|
32
|
+
"API 422 字段错误怎么展示到表单",
|
|
33
|
+
"frontend API integration with auth refresh"
|
|
34
|
+
],
|
|
35
|
+
"should_not_trigger": [
|
|
36
|
+
"TanStack Query queryKey 怎么设计",
|
|
37
|
+
"后端服务分层和数据库 repository",
|
|
38
|
+
"React 项目目录怎么划分",
|
|
39
|
+
"只检查 token 是否能放 localStorage",
|
|
40
|
+
"写 Playwright 登录 E2E",
|
|
41
|
+
"配置 Vite proxy",
|
|
42
|
+
"普通按钮 loading 样式",
|
|
43
|
+
"PWA Service Worker 缓存接口"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"fec-browser-storage": {
|
|
47
|
+
"should_trigger": [
|
|
48
|
+
"localStorage 里该怎么存用户偏好",
|
|
49
|
+
"IndexedDB 适合缓存这个离线数据吗",
|
|
50
|
+
"设计浏览器端缓存清理策略",
|
|
51
|
+
"Cookie、sessionStorage、localStorage 选哪个",
|
|
52
|
+
"封装带命名空间的客户端持久化",
|
|
53
|
+
"审查 token 是否不该放 localStorage",
|
|
54
|
+
"大数据量本地缓存用什么方案",
|
|
55
|
+
"client persistence strategy for a web app"
|
|
56
|
+
],
|
|
57
|
+
"should_not_trigger": [
|
|
58
|
+
"配置 Service Worker 离线 fallback",
|
|
59
|
+
"React Query queryKey 怎么设计",
|
|
60
|
+
"修复表单校验错误",
|
|
61
|
+
"写路由 RBAC 守卫",
|
|
62
|
+
"迁移 jQuery 页面",
|
|
63
|
+
"审查 CSP 和 XSS",
|
|
64
|
+
"优化 Canvas 渲染",
|
|
65
|
+
"配置 Next.js metadata"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"fec-canvas-threejs": {
|
|
69
|
+
"should_trigger": [
|
|
70
|
+
"实现一个 Three.js 产品 3D 预览",
|
|
71
|
+
"Canvas 粒子动画卡顿怎么优化",
|
|
72
|
+
"React Three Fiber 场景如何清理资源",
|
|
73
|
+
"WebGL texture 太大导致掉帧",
|
|
74
|
+
"签名板 Canvas 适配高清屏",
|
|
75
|
+
"游戏渲染循环怎么写",
|
|
76
|
+
"3D 场景 dispose 有哪些必须做",
|
|
77
|
+
"build a canvas data visualization"
|
|
78
|
+
],
|
|
79
|
+
"should_not_trigger": [
|
|
80
|
+
"普通 DOM 表单怎么实现",
|
|
81
|
+
"SVG 图标路径描边动画",
|
|
82
|
+
"Web Worker 解析大 JSON",
|
|
83
|
+
"React 项目模块边界设计",
|
|
84
|
+
"优化大列表 DOM 节点数量",
|
|
85
|
+
"Playwright 截图测试",
|
|
86
|
+
"PWA manifest 配置",
|
|
87
|
+
"检查按钮 aria-label"
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
"fec-code-review": {
|
|
91
|
+
"should_trigger": [
|
|
92
|
+
"帮我 review 这个前端 PR",
|
|
93
|
+
"做一次合并前代码评审",
|
|
94
|
+
"检查 React 组件架构和可维护性",
|
|
95
|
+
"看看这批改动有没有类型和状态风险",
|
|
96
|
+
"输出 frontend code review 报告",
|
|
97
|
+
"审查样式一致性和测试缺口",
|
|
98
|
+
"评估这个 UI 实现能不能合并",
|
|
99
|
+
"general frontend PR review"
|
|
100
|
+
],
|
|
101
|
+
"should_not_trigger": [
|
|
102
|
+
"只检查 XSS 和 CSP",
|
|
103
|
+
"只做 WCAG 无障碍审查",
|
|
104
|
+
"只运行 test 并修复失败",
|
|
105
|
+
"写 Playwright E2E",
|
|
106
|
+
"设计 Next.js 路由结构",
|
|
107
|
+
"迁移 jQuery 到 React",
|
|
108
|
+
"优化 WebGL 帧率",
|
|
109
|
+
"编写 Storybook 文档"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"fec-component-testing": {
|
|
113
|
+
"should_trigger": [
|
|
114
|
+
"给这个 React 组件补 RTL 单测",
|
|
115
|
+
"Vue Test Utils 测试 emits",
|
|
116
|
+
"给这个 composable 写单元测试",
|
|
117
|
+
"用 user-event 测试弹窗交互",
|
|
118
|
+
"组件 loading empty error 状态怎么测",
|
|
119
|
+
"避免 snapshot 测试脆弱断言",
|
|
120
|
+
"mock API 后测试组件渲染",
|
|
121
|
+
"表单组件加 Router Provider 的轻量集成测试",
|
|
122
|
+
"为这个 bug 补组件回归测试"
|
|
123
|
+
],
|
|
124
|
+
"should_not_trigger": [
|
|
125
|
+
"规划这个功能的测试分层",
|
|
126
|
+
"写完整登录到支付的 E2E",
|
|
127
|
+
"配置 Storybook 文档站",
|
|
128
|
+
"跑 lint 并修复失败",
|
|
129
|
+
"审查 XSS 风险",
|
|
130
|
+
"设计 React 项目结构",
|
|
131
|
+
"检查 WCAG 键盘焦点",
|
|
132
|
+
"搭建 Playwright CI artifacts",
|
|
133
|
+
"迁移 jQuery 项目"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
"fec-data-fetching": {
|
|
137
|
+
"should_trigger": [
|
|
138
|
+
"TanStack Query queryKey 怎么设计",
|
|
139
|
+
"React Query mutation 成功后如何失效缓存",
|
|
140
|
+
"实现乐观更新失败回滚",
|
|
141
|
+
"无限滚动数据用 useInfiniteQuery",
|
|
142
|
+
"SSR hydration with React Query",
|
|
143
|
+
"封装 typed API hooks",
|
|
144
|
+
"替换 useEffect loading state 获取数据",
|
|
145
|
+
"server state caching strategy"
|
|
146
|
+
],
|
|
147
|
+
"should_not_trigger": [
|
|
148
|
+
"Service Worker 缓存静态资源",
|
|
149
|
+
"localStorage 存用户偏好",
|
|
150
|
+
"表单字段联动校验",
|
|
151
|
+
"Pinia 本地 UI 状态设计",
|
|
152
|
+
"Next.js 服务端组件 fetch 缓存",
|
|
153
|
+
"Web Worker 后台解析 CSV",
|
|
154
|
+
"虚拟列表滚动渲染",
|
|
155
|
+
"审查 token 存储安全"
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
"fec-debug-framework": {
|
|
159
|
+
"should_trigger": [
|
|
160
|
+
"Vite 构建报错 Module not found,帮我排查",
|
|
161
|
+
"页面白屏了,控制台有 TypeError",
|
|
162
|
+
"这个组件渲染结果和预期不一致,帮我 debug",
|
|
163
|
+
"接口返回 500 但前端没展示错误信息",
|
|
164
|
+
"打包后样式丢失,开发环境正常",
|
|
165
|
+
"React 组件 hydration mismatch 怎么定位",
|
|
166
|
+
"HMR 更新后页面状态丢失",
|
|
167
|
+
"排查生产环境偶发性 JS 异常"
|
|
168
|
+
],
|
|
169
|
+
"should_not_trigger": [
|
|
170
|
+
"给这个模块写单元测试",
|
|
171
|
+
"设计一个新的 React 组件",
|
|
172
|
+
"优化首屏加载性能",
|
|
173
|
+
"做前端安全审查",
|
|
174
|
+
"升级 TypeScript 到最新版本",
|
|
175
|
+
"重构这个 hooks 的逻辑",
|
|
176
|
+
"写一个 Playwright E2E 测试",
|
|
177
|
+
"给这个 API 设计类型定义"
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"fec-dependency-upgrade": {
|
|
181
|
+
"should_trigger": [
|
|
182
|
+
"把 Vite 从 5 升级到 6,需要评估破坏性变更",
|
|
183
|
+
"package-lock 改了很多,帮我 review 依赖升级风险",
|
|
184
|
+
"修复 npm audit 里的前端高危 CVE",
|
|
185
|
+
"React 大版本升级前需要迁移计划",
|
|
186
|
+
"peer dependency 冲突怎么处理",
|
|
187
|
+
"这个包从 CJS 切到 ESM 会影响构建吗",
|
|
188
|
+
"frontend dependency upgrade verification plan",
|
|
189
|
+
"升级 Storybook 后 CI build 失败需要分析"
|
|
190
|
+
],
|
|
191
|
+
"should_not_trigger": [
|
|
192
|
+
"只运行 npm test 并修复失败",
|
|
193
|
+
"清理已证明未使用的组件",
|
|
194
|
+
"写 React 组件架构规范",
|
|
195
|
+
"设计 Tailwind token",
|
|
196
|
+
"审查 XSS 和 CSP",
|
|
197
|
+
"配置 Playwright 登录流程",
|
|
198
|
+
"做 UI 视觉打磨",
|
|
199
|
+
"实现 API client 错误映射"
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"fec-doc-sync": {
|
|
203
|
+
"should_trigger": [
|
|
204
|
+
"同步 README 中的 skill 和 agent 数量",
|
|
205
|
+
"新增命令后更新多语言文档",
|
|
206
|
+
"根据 package.json 生成命令清单",
|
|
207
|
+
"docs sync for runtime documentation",
|
|
208
|
+
"更新 marketplace 描述里的能力数量",
|
|
209
|
+
"检查 README 和 skills metadata 是否一致",
|
|
210
|
+
"把报告输出表同步到文档",
|
|
211
|
+
"更新项目结构文档中的 commands 列表"
|
|
212
|
+
],
|
|
213
|
+
"should_not_trigger": [
|
|
214
|
+
"给组件写 Storybook stories",
|
|
215
|
+
"修复 TypeScript 构建失败",
|
|
216
|
+
"写登录 E2E 测试",
|
|
217
|
+
"审查 XSS 风险",
|
|
218
|
+
"规划 React 组件边界",
|
|
219
|
+
"清理未使用导出",
|
|
220
|
+
"实现 PWA manifest",
|
|
221
|
+
"优化虚拟列表滚动"
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"fec-e2e-testing": {
|
|
225
|
+
"should_trigger": [
|
|
226
|
+
"用 Playwright 写登录购买完整流程",
|
|
227
|
+
"治理 flaky E2E 用例",
|
|
228
|
+
"配置 Cypress 关键路径测试",
|
|
229
|
+
"上传 trace screenshot video 到 CI",
|
|
230
|
+
"Page Object 怎么组织",
|
|
231
|
+
"写移动端和桌面端 E2E",
|
|
232
|
+
"视觉回归测试怎么接入",
|
|
233
|
+
"debug a failing Playwright test"
|
|
234
|
+
],
|
|
235
|
+
"should_not_trigger": [
|
|
236
|
+
"给 Button 写组件单测",
|
|
237
|
+
"Storybook 写组件示例",
|
|
238
|
+
"React 项目结构设计",
|
|
239
|
+
"修复 TypeScript 类型错误",
|
|
240
|
+
"审查 XSS 风险",
|
|
241
|
+
"配置 PWA manifest",
|
|
242
|
+
"选择 localStorage 还是 IndexedDB",
|
|
243
|
+
"写 Zod 表单校验"
|
|
244
|
+
]
|
|
245
|
+
},
|
|
246
|
+
"fec-form-handling": {
|
|
247
|
+
"should_trigger": [
|
|
248
|
+
"用 React Hook Form 和 Zod 做复杂表单",
|
|
249
|
+
"动态字段 useFieldArray 怎么写",
|
|
250
|
+
"第三方 Select 如何接入 Controller",
|
|
251
|
+
"文件上传表单怎么校验大小和类型",
|
|
252
|
+
"多步表单 schema 怎么拆",
|
|
253
|
+
"表单输入很卡怎么优化",
|
|
254
|
+
"密码确认联动校验",
|
|
255
|
+
"build a typed validation form"
|
|
256
|
+
],
|
|
257
|
+
"should_not_trigger": [
|
|
258
|
+
"React 项目目录怎么规划",
|
|
259
|
+
"mutation 成功后 invalidation",
|
|
260
|
+
"写表单组件单测",
|
|
261
|
+
"检查 label 和 aria 错误提示",
|
|
262
|
+
"路由未登录重定向",
|
|
263
|
+
"审查文件上传安全风险",
|
|
264
|
+
"普通两个字段搜索框",
|
|
265
|
+
"Vue 组件架构设计"
|
|
266
|
+
]
|
|
267
|
+
},
|
|
268
|
+
"fec-implement-from-design": {
|
|
269
|
+
"should_trigger": [
|
|
270
|
+
"按 Figma 设计稿实现这个页面",
|
|
271
|
+
"从截图还原一个 React 组件",
|
|
272
|
+
"把 MasterGo 选区转成前端代码",
|
|
273
|
+
"设计 token 应该怎么映射到 CSS 变量",
|
|
274
|
+
"实现设计稿里的弹窗和表格",
|
|
275
|
+
"检查设计稿和实现的视觉差异",
|
|
276
|
+
"用现有组件库还原 Pixso 页面",
|
|
277
|
+
"design-to-code implementation"
|
|
278
|
+
],
|
|
279
|
+
"should_not_trigger": [
|
|
280
|
+
"创建 PWA Service Worker",
|
|
281
|
+
"写组件单元测试",
|
|
282
|
+
"做通用 PR review",
|
|
283
|
+
"配置 React Query",
|
|
284
|
+
"维护 jQuery 遗留页面",
|
|
285
|
+
"检查 XSS 风险",
|
|
286
|
+
"设计 monorepo package 边界",
|
|
287
|
+
"写 Web Worker"
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
"fec-legacy-to-modern-migration": {
|
|
291
|
+
"should_trigger": [
|
|
292
|
+
"把 jQuery MPA 迁移到 React TypeScript",
|
|
293
|
+
"规划遗留 JSP 页面现代化",
|
|
294
|
+
"从服务端模板迁移到 Vue 3 SPA",
|
|
295
|
+
"做 legacy frontend migration plan",
|
|
296
|
+
"盘点旧系统页面和插件依赖",
|
|
297
|
+
"制定渐进式 Strangler Fig 迁移",
|
|
298
|
+
"迁移 $.ajax 到 typed request layer",
|
|
299
|
+
"jQuery 项目技术栈升级方案"
|
|
300
|
+
],
|
|
301
|
+
"should_not_trigger": [
|
|
302
|
+
"在 jQuery 项目里修一个点击 bug",
|
|
303
|
+
"维护现有原生 JS 页面不迁移",
|
|
304
|
+
"审查 React PR",
|
|
305
|
+
"写 Playwright E2E",
|
|
306
|
+
"配置 Nuxt 路由",
|
|
307
|
+
"检查 Canvas 内存泄漏",
|
|
308
|
+
"设计浏览器存储策略",
|
|
309
|
+
"写 Storybook 文档"
|
|
310
|
+
]
|
|
311
|
+
},
|
|
312
|
+
"fec-legacy-web-standard": {
|
|
313
|
+
"should_trigger": [
|
|
314
|
+
"维护一个 jQuery 多页面项目",
|
|
315
|
+
"修复原生 JS 事件委托问题",
|
|
316
|
+
"传统服务端模板页面怎么安全改",
|
|
317
|
+
"审查 .html() 插入用户输入",
|
|
318
|
+
"整理 legacy CSS 和 jQuery 插件初始化",
|
|
319
|
+
"MPA 页面 Ajax loading 怎么处理",
|
|
320
|
+
"不引入框架地改旧页面",
|
|
321
|
+
"vanilla JS legacy maintenance"
|
|
322
|
+
],
|
|
323
|
+
"should_not_trigger": [
|
|
324
|
+
"把 jQuery 迁移到 React",
|
|
325
|
+
"制定 Vue 3 重构计划",
|
|
326
|
+
"设计 React 项目结构",
|
|
327
|
+
"写组件单元测试",
|
|
328
|
+
"配置 PWA 离线缓存",
|
|
329
|
+
"实现 Three.js 场景",
|
|
330
|
+
"做 Next.js App Router 页面",
|
|
331
|
+
"配置 TanStack Query"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
"fec-list-virtualization": {
|
|
335
|
+
"should_trigger": [
|
|
336
|
+
"十万行列表滚动卡顿怎么优化",
|
|
337
|
+
"react-window 固定高度列表",
|
|
338
|
+
"TanStack Virtual 动态高度",
|
|
339
|
+
"虚拟滚动和无限加载结合",
|
|
340
|
+
"表格行太多导致 DOM 爆炸",
|
|
341
|
+
"网格 virtualization 怎么做",
|
|
342
|
+
"variable row height measurement",
|
|
343
|
+
"large list windowing performance"
|
|
344
|
+
],
|
|
345
|
+
"should_not_trigger": [
|
|
346
|
+
"React Query 无限分页数据源",
|
|
347
|
+
"Web Worker 计算布局",
|
|
348
|
+
"Canvas 绘制图表",
|
|
349
|
+
"普通短列表组件",
|
|
350
|
+
"写 E2E 滚动测试",
|
|
351
|
+
"检查 aria 表格语义",
|
|
352
|
+
"PWA 缓存图片",
|
|
353
|
+
"设计 Vue 项目结构"
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
"fec-monorepo-project-standard": {
|
|
357
|
+
"should_trigger": [
|
|
358
|
+
"设计 pnpm workspace 前端 monorepo",
|
|
359
|
+
"Turborepo task pipeline 怎么配置",
|
|
360
|
+
"Nx 多包边界怎么划分",
|
|
361
|
+
"内部包用 workspace:*",
|
|
362
|
+
"检查 monorepo 循环依赖",
|
|
363
|
+
"多 package 发布规范",
|
|
364
|
+
"共享 UI 包和 app 边界",
|
|
365
|
+
"frontend monorepo restructuring"
|
|
366
|
+
],
|
|
367
|
+
"should_not_trigger": [
|
|
368
|
+
"单个 React 组件架构",
|
|
369
|
+
"Next.js App Router 页面",
|
|
370
|
+
"写表单校验",
|
|
371
|
+
"配置 Playwright E2E",
|
|
372
|
+
"审查 XSS 风险",
|
|
373
|
+
"优化虚拟列表",
|
|
374
|
+
"PWA manifest",
|
|
375
|
+
"维护 jQuery 页面"
|
|
376
|
+
]
|
|
377
|
+
},
|
|
378
|
+
"fec-motion-interaction": {
|
|
379
|
+
"should_trigger": [
|
|
380
|
+
"给这个产品页设计页面转场动效",
|
|
381
|
+
"Framer Motion 和 GSAP 这里该选哪个",
|
|
382
|
+
"滚动叙事动画怎么做且不掉帧",
|
|
383
|
+
"这个 dashboard 的交互动效太重了帮我降级",
|
|
384
|
+
"Lottie 图标动画怎么按需加载",
|
|
385
|
+
"设计 reduced-motion 下的动画兜底",
|
|
386
|
+
"页面入场 stagger 和布局过渡怎么规划",
|
|
387
|
+
"frontend interaction motion strategy"
|
|
388
|
+
],
|
|
389
|
+
"should_not_trigger": [
|
|
390
|
+
"SVG 路径描边动画怎么写",
|
|
391
|
+
"Three.js 粒子系统怎么优化",
|
|
392
|
+
"普通 CSS hover 颜色变化",
|
|
393
|
+
"React 项目目录结构设计",
|
|
394
|
+
"检查按钮 aria-label",
|
|
395
|
+
"写 Playwright 动画截图测试",
|
|
396
|
+
"配置 PWA manifest",
|
|
397
|
+
"API 错误状态怎么映射"
|
|
398
|
+
]
|
|
399
|
+
},
|
|
400
|
+
"fec-nextjs-project-standard": {
|
|
401
|
+
"should_trigger": [
|
|
402
|
+
"Next.js App Router 项目结构",
|
|
403
|
+
"server component 和 client component 边界",
|
|
404
|
+
"配置 SSR SSG ISR",
|
|
405
|
+
"generateMetadata 怎么写",
|
|
406
|
+
"middleware 里做重定向",
|
|
407
|
+
"loading.tsx error.tsx 怎么组织",
|
|
408
|
+
"Next.js fetch cache 策略",
|
|
409
|
+
"Next 14 route layout design"
|
|
410
|
+
],
|
|
411
|
+
"should_not_trigger": [
|
|
412
|
+
"普通 React 组件拆分",
|
|
413
|
+
"React Hook Form 表单",
|
|
414
|
+
"TanStack Query 客户端缓存",
|
|
415
|
+
"Vue 3 composable 设计",
|
|
416
|
+
"Nuxt 页面路由",
|
|
417
|
+
"Playwright E2E",
|
|
418
|
+
"PWA Service Worker",
|
|
419
|
+
"jQuery 迁移"
|
|
420
|
+
]
|
|
421
|
+
},
|
|
422
|
+
"fec-nuxt-project-standard": {
|
|
423
|
+
"should_trigger": [
|
|
424
|
+
"Nuxt 3 项目结构怎么组织",
|
|
425
|
+
"useFetch 和 useAsyncData 选择",
|
|
426
|
+
"配置 Nuxt SSR SSG SPA",
|
|
427
|
+
"Nuxt route middleware 鉴权",
|
|
428
|
+
"plugins .client .server 怎么写",
|
|
429
|
+
"server/api 路由设计",
|
|
430
|
+
"Nuxt layouts 和 pages",
|
|
431
|
+
"Nuxt module setup"
|
|
432
|
+
],
|
|
433
|
+
"should_not_trigger": [
|
|
434
|
+
"普通 Vue 3 组件边界",
|
|
435
|
+
"Next.js App Router",
|
|
436
|
+
"React Query 缓存",
|
|
437
|
+
"写组件单测",
|
|
438
|
+
"PWA manifest",
|
|
439
|
+
"jQuery 维护",
|
|
440
|
+
"Canvas 渲染",
|
|
441
|
+
"Web Worker 性能"
|
|
442
|
+
]
|
|
443
|
+
},
|
|
444
|
+
"fec-performance-optimization": {
|
|
445
|
+
"should_trigger": [
|
|
446
|
+
"页面首屏 LCP 很慢怎么定位",
|
|
447
|
+
"优化这个 React 页面重复渲染和长任务",
|
|
448
|
+
"bundle size 突然变大帮我分析",
|
|
449
|
+
"Core Web Vitals 不达标需要性能预算",
|
|
450
|
+
"Lighthouse performance 分数下降",
|
|
451
|
+
"滚动卡顿和主线程阻塞排查",
|
|
452
|
+
"检查内存泄漏和未清理事件监听",
|
|
453
|
+
"frontend performance optimization with web vitals"
|
|
454
|
+
],
|
|
455
|
+
"should_not_trigger": [
|
|
456
|
+
"给 Button 写组件单元测试",
|
|
457
|
+
"规划 React 项目目录结构",
|
|
458
|
+
"检查 XSS 和 CSP 风险",
|
|
459
|
+
"同步 README skill 数量",
|
|
460
|
+
"按 Figma 实现页面",
|
|
461
|
+
"配置路由权限守卫",
|
|
462
|
+
"修复 TypeScript 类型错误",
|
|
463
|
+
"迁移 jQuery 到 Vue"
|
|
464
|
+
]
|
|
465
|
+
},
|
|
466
|
+
"fec-pwa-implementation": {
|
|
467
|
+
"should_trigger": [
|
|
468
|
+
"给应用加 PWA manifest",
|
|
469
|
+
"配置 Service Worker 离线 fallback",
|
|
470
|
+
"Workbox 缓存策略怎么选",
|
|
471
|
+
"实现 beforeinstallprompt 安装提示",
|
|
472
|
+
"PWA 更新提示和 skipWaiting",
|
|
473
|
+
"maskable icon 怎么配置",
|
|
474
|
+
"iOS PWA 有哪些兼容问题",
|
|
475
|
+
"make this web app installable"
|
|
476
|
+
],
|
|
477
|
+
"should_not_trigger": [
|
|
478
|
+
"React Query API 缓存",
|
|
479
|
+
"localStorage 持久化偏好",
|
|
480
|
+
"普通页面性能优化",
|
|
481
|
+
"Next.js metadata",
|
|
482
|
+
"写 Playwright E2E",
|
|
483
|
+
"Web Worker 后台计算",
|
|
484
|
+
"审查 XSS 风险",
|
|
485
|
+
"Vue 项目结构"
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"fec-react-project-standard": {
|
|
489
|
+
"should_trigger": [
|
|
490
|
+
"设计 React TypeScript 项目结构",
|
|
491
|
+
"React feature 模块边界怎么划分",
|
|
492
|
+
"组件、hooks、services 目录怎么放",
|
|
493
|
+
"Context 和局部状态怎么归属",
|
|
494
|
+
"React 页面重构成 features",
|
|
495
|
+
"设计复合组件 API",
|
|
496
|
+
"梳理 React 错误边界和状态层",
|
|
497
|
+
"React component architecture review"
|
|
498
|
+
],
|
|
499
|
+
"should_not_trigger": [
|
|
500
|
+
"写 React Hook Form 动态表单",
|
|
501
|
+
"TanStack Query mutation 回滚",
|
|
502
|
+
"RTL 组件单测",
|
|
503
|
+
"只检查 a11y 焦点",
|
|
504
|
+
"Next.js App Router fetch cache",
|
|
505
|
+
"虚拟列表滚动性能",
|
|
506
|
+
"PWA Service Worker",
|
|
507
|
+
"XSS 安全审查"
|
|
508
|
+
]
|
|
509
|
+
},
|
|
510
|
+
"fec-refactor-clean": {
|
|
511
|
+
"should_trigger": [
|
|
512
|
+
"清理未使用的 React 组件",
|
|
513
|
+
"用 knip 检查死代码并安全删除",
|
|
514
|
+
"删除没有引用的工具函数",
|
|
515
|
+
"检查未使用的 npm 依赖",
|
|
516
|
+
"refactor clean unused exports",
|
|
517
|
+
"清理过期路由前先做风险分类",
|
|
518
|
+
"找出无用 CSS 文件但不要误删动态 class",
|
|
519
|
+
"生成 dead code cleanup 报告"
|
|
520
|
+
],
|
|
521
|
+
"should_not_trigger": [
|
|
522
|
+
"实现新功能页面",
|
|
523
|
+
"写 TDD 失败测试",
|
|
524
|
+
"同步 README 命令表",
|
|
525
|
+
"修复 lint 失败",
|
|
526
|
+
"做安全审查",
|
|
527
|
+
"设计 Next.js 路由结构",
|
|
528
|
+
"写 Playwright 测试",
|
|
529
|
+
"迁移 jQuery 到 React"
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
"fec-route-protection": {
|
|
533
|
+
"should_trigger": [
|
|
534
|
+
"实现未登录跳转登录页",
|
|
535
|
+
"RBAC 权限路由怎么设计",
|
|
536
|
+
"React Router 私有路由守卫",
|
|
537
|
+
"Next middleware 鉴权和 redirect",
|
|
538
|
+
"Vue Router beforeEach 权限判断",
|
|
539
|
+
"Nuxt route middleware 登录态",
|
|
540
|
+
"防止 open redirect",
|
|
541
|
+
"route guard with roles"
|
|
542
|
+
],
|
|
543
|
+
"should_not_trigger": [
|
|
544
|
+
"审查 token 是否安全存储",
|
|
545
|
+
"设计 React 项目结构",
|
|
546
|
+
"配置 TanStack Query",
|
|
547
|
+
"写 E2E 登录流程",
|
|
548
|
+
"表单校验",
|
|
549
|
+
"PWA 离线缓存",
|
|
550
|
+
"普通菜单键盘可访问性",
|
|
551
|
+
"jQuery 迁移"
|
|
552
|
+
]
|
|
553
|
+
},
|
|
554
|
+
"fec-responsive-layout": {
|
|
555
|
+
"should_trigger": [
|
|
556
|
+
"这个页面 375px 下横向溢出,帮我做响应式布局",
|
|
557
|
+
"用 container query 改这个组件的布局",
|
|
558
|
+
"移动端表格应该怎么改成可读视图",
|
|
559
|
+
"dashboard 在平板和桌面断点之间跳变",
|
|
560
|
+
"检查触摸目标和安全区域适配",
|
|
561
|
+
"横竖屏切换后底部操作栏挡住内容",
|
|
562
|
+
"responsive layout review for this web app",
|
|
563
|
+
"设计移动优先的多列筛选页面"
|
|
564
|
+
],
|
|
565
|
+
"should_not_trigger": [
|
|
566
|
+
"为产品页定义视觉风格",
|
|
567
|
+
"设计 Tailwind 组件变体",
|
|
568
|
+
"只检查 aria 和键盘焦点",
|
|
569
|
+
"优化 bundle size",
|
|
570
|
+
"写 Playwright E2E",
|
|
571
|
+
"实现 React 项目目录结构",
|
|
572
|
+
"审查 XSS 风险",
|
|
573
|
+
"升级依赖版本"
|
|
574
|
+
]
|
|
575
|
+
},
|
|
576
|
+
"fec-security-review": {
|
|
577
|
+
"should_trigger": [
|
|
578
|
+
"检查 dangerouslySetInnerHTML 是否安全",
|
|
579
|
+
"审查 v-html XSS 风险",
|
|
580
|
+
"token 存储和刷新流程安全检查",
|
|
581
|
+
"文件上传前端安全风险",
|
|
582
|
+
"第三方脚本和 CSP 审查",
|
|
583
|
+
"检查 CSRF 防护",
|
|
584
|
+
"开放重定向风险",
|
|
585
|
+
"frontend security review"
|
|
586
|
+
],
|
|
587
|
+
"should_not_trigger": [
|
|
588
|
+
"普通前端 PR 综合评审",
|
|
589
|
+
"WCAG 键盘焦点审查",
|
|
590
|
+
"React 组件架构设计",
|
|
591
|
+
"Playwright E2E",
|
|
592
|
+
"修复 TypeScript 错误",
|
|
593
|
+
"PWA install prompt",
|
|
594
|
+
"Storybook 组件文档",
|
|
595
|
+
"虚拟列表性能"
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
"fec-source-driven-development": {
|
|
599
|
+
"should_trigger": [
|
|
600
|
+
"这个 Next.js 新版本 API 先查官方文档再决定",
|
|
601
|
+
"帮我确认 Vite 配置项当前版本是否还推荐",
|
|
602
|
+
"这个浏览器 API 兼容性要以规范和 MDN 为准",
|
|
603
|
+
"source-driven decision for a frontend library migration",
|
|
604
|
+
"React Router 版本差异需要查文档",
|
|
605
|
+
"这个包的 ESM/CJS 行为不要凭记忆判断",
|
|
606
|
+
"按项目源码和官方 docs 设计公共接口",
|
|
607
|
+
"验证 Nuxt useFetch 最新推荐用法"
|
|
608
|
+
],
|
|
609
|
+
"should_not_trigger": [
|
|
610
|
+
"给表单写 Zod 校验",
|
|
611
|
+
"优化大列表虚拟滚动",
|
|
612
|
+
"运行 npm test 并修复失败",
|
|
613
|
+
"检查按钮 aria-label",
|
|
614
|
+
"写 Playwright 登录流程",
|
|
615
|
+
"清理未使用依赖",
|
|
616
|
+
"设计 UI 视觉方向",
|
|
617
|
+
"审查 token 存储安全"
|
|
618
|
+
]
|
|
619
|
+
},
|
|
620
|
+
"fec-state-management": {
|
|
621
|
+
"should_trigger": [
|
|
622
|
+
"审计这个 dashboard 的状态归属",
|
|
623
|
+
"哪些状态应该放 URL,哪些放 store",
|
|
624
|
+
"React 全局状态 Zustand 和 Context 怎么选",
|
|
625
|
+
"Pinia store 和本地 ref 应该怎么分工",
|
|
626
|
+
"把重复的派生 state 清理掉",
|
|
627
|
+
"服务端状态和客户端 store 边界怎么划分",
|
|
628
|
+
"设计筛选条件、分页和排序的状态归属",
|
|
629
|
+
"frontend state ownership and store selection"
|
|
630
|
+
],
|
|
631
|
+
"should_not_trigger": [
|
|
632
|
+
"TanStack Query queryKey 细节怎么设计",
|
|
633
|
+
"localStorage 安全持久化怎么封装",
|
|
634
|
+
"React Hook Form 字段校验怎么写",
|
|
635
|
+
"只检查 XSS 和 token 泄露",
|
|
636
|
+
"设计 React 项目目录结构",
|
|
637
|
+
"写 Playwright 登录 E2E",
|
|
638
|
+
"配置 PWA Service Worker",
|
|
639
|
+
"优化虚拟列表滚动性能"
|
|
640
|
+
]
|
|
641
|
+
},
|
|
642
|
+
"fec-storybook-component-doc": {
|
|
643
|
+
"should_trigger": [
|
|
644
|
+
"给组件写 Storybook stories",
|
|
645
|
+
"配置 Storybook addon-a11y",
|
|
646
|
+
"为设计系统写 MDX 文档",
|
|
647
|
+
"Storybook decorators 怎么处理 Provider",
|
|
648
|
+
"组件状态枚举文档",
|
|
649
|
+
"Chromatic 视觉回归接入",
|
|
650
|
+
"Storybook interaction test",
|
|
651
|
+
"document components in Storybook"
|
|
652
|
+
],
|
|
653
|
+
"should_not_trigger": [
|
|
654
|
+
"RTL 组件单元测试",
|
|
655
|
+
"Playwright 跨页 E2E",
|
|
656
|
+
"React 项目结构设计",
|
|
657
|
+
"按 Figma 直接实现页面",
|
|
658
|
+
"安全审查",
|
|
659
|
+
"PWA 配置",
|
|
660
|
+
"Web Worker",
|
|
661
|
+
"jQuery 迁移"
|
|
662
|
+
]
|
|
663
|
+
},
|
|
664
|
+
"fec-tailwind-design-system": {
|
|
665
|
+
"should_trigger": [
|
|
666
|
+
"设计 Tailwind token 和 theme.extend",
|
|
667
|
+
"这个组件库的 class 太散,想整理成 variants",
|
|
668
|
+
"Tailwind 暗色模式怎么和 CSS 变量对齐",
|
|
669
|
+
"检查动态 class 是否会被 purge 掉",
|
|
670
|
+
"用 CVA 设计 Button 的 size 和 tone",
|
|
671
|
+
"Tailwind safelist 应该怎么治理",
|
|
672
|
+
"build a Tailwind design system for this app",
|
|
673
|
+
"把硬编码颜色迁移到 Tailwind 语义 token"
|
|
674
|
+
],
|
|
675
|
+
"should_not_trigger": [
|
|
676
|
+
"纯 CSS Grid 响应式布局溢出",
|
|
677
|
+
"按 Figma 像素还原页面",
|
|
678
|
+
"写组件 RTL 单测",
|
|
679
|
+
"审查接口 401 错误映射",
|
|
680
|
+
"修复 TypeScript 类型错误",
|
|
681
|
+
"配置路由权限守卫",
|
|
682
|
+
"升级 npm 依赖",
|
|
683
|
+
"做通用前端 PR review"
|
|
684
|
+
]
|
|
685
|
+
},
|
|
686
|
+
"fec-svg-animation": {
|
|
687
|
+
"should_trigger": [
|
|
688
|
+
"SVG 路径描边动画",
|
|
689
|
+
"logo SVG 动效怎么做",
|
|
690
|
+
"Framer Motion 驱动 SVG",
|
|
691
|
+
"GSAP 控制 icon motion",
|
|
692
|
+
"微交互 SVG 动画",
|
|
693
|
+
"prefers-reduced-motion 兜底",
|
|
694
|
+
"SMIL 和 CSS animation 选择",
|
|
695
|
+
"animate an SVG illustration"
|
|
696
|
+
],
|
|
697
|
+
"should_not_trigger": [
|
|
698
|
+
"Three.js 3D 场景",
|
|
699
|
+
"Canvas 粒子系统",
|
|
700
|
+
"普通 CSS hover",
|
|
701
|
+
"PWA 图标配置",
|
|
702
|
+
"React 项目结构",
|
|
703
|
+
"写 E2E 测试",
|
|
704
|
+
"检查 XSS",
|
|
705
|
+
"虚拟列表性能"
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
"fec-tdd-workflow": {
|
|
709
|
+
"should_trigger": [
|
|
710
|
+
"用 TDD 实现这个 hook",
|
|
711
|
+
"先写失败测试再修这个 bug",
|
|
712
|
+
"为新组件走红绿重构流程",
|
|
713
|
+
"补一个回归测试再改逻辑",
|
|
714
|
+
"test driven development for this frontend feature",
|
|
715
|
+
"这个工具函数先写单测再实现",
|
|
716
|
+
"修复表单校验 bug 前先复现测试",
|
|
717
|
+
"用测试驱动方式重构状态逻辑"
|
|
718
|
+
],
|
|
719
|
+
"should_not_trigger": [
|
|
720
|
+
"只运行现有测试并修复失败",
|
|
721
|
+
"制定测试分层策略",
|
|
722
|
+
"写完整 Playwright E2E 流程",
|
|
723
|
+
"同步文档能力表",
|
|
724
|
+
"清理未使用依赖",
|
|
725
|
+
"做 XSS 安全审查",
|
|
726
|
+
"设计 Vue 项目结构",
|
|
727
|
+
"配置 PWA 离线缓存"
|
|
728
|
+
]
|
|
729
|
+
},
|
|
730
|
+
"fec-testing-strategy": {
|
|
731
|
+
"should_trigger": [
|
|
732
|
+
"为这个前端功能制定测试策略",
|
|
733
|
+
"这次 PR 应该补哪些层级的测试",
|
|
734
|
+
"按风险给登录重构做测试覆盖矩阵",
|
|
735
|
+
"单元测试、组件测试、E2E 怎么分工",
|
|
736
|
+
"规划静态检查、组件测试和 E2E 的质量门禁",
|
|
737
|
+
"评估这个里程碑的测试债治理优先级",
|
|
738
|
+
"测试分层怎么设计",
|
|
739
|
+
"create a frontend testing strategy for this feature"
|
|
740
|
+
],
|
|
741
|
+
"should_not_trigger": [
|
|
742
|
+
"给 Button 写 RTL 单测",
|
|
743
|
+
"写 Playwright 登录 E2E",
|
|
744
|
+
"运行 npm test 并修复失败",
|
|
745
|
+
"配置 Storybook stories",
|
|
746
|
+
"只检查 XSS 和 CSP",
|
|
747
|
+
"只做 WCAG 键盘焦点审查",
|
|
748
|
+
"实现 React 项目目录结构",
|
|
749
|
+
"优化虚拟列表滚动性能"
|
|
750
|
+
]
|
|
751
|
+
},
|
|
752
|
+
"fec-typescript-type-safety": {
|
|
753
|
+
"should_trigger": [
|
|
754
|
+
"审查这些 DTO 和 view model 类型边界",
|
|
755
|
+
"这个泛型组件类型怎么设计更安全",
|
|
756
|
+
"用 type guard 收窄 unknown 输入",
|
|
757
|
+
"检查不安全的 as 和非空断言",
|
|
758
|
+
"设计判别联合表达异步状态",
|
|
759
|
+
"给公共 utility type 加类型测试",
|
|
760
|
+
"TypeScript 类型建模和泛型约束 review",
|
|
761
|
+
"API 响应类型和运行时校验怎么对齐"
|
|
762
|
+
],
|
|
763
|
+
"should_not_trigger": [
|
|
764
|
+
"做整个前端 PR 综合评审",
|
|
765
|
+
"只修复 tsc 编译失败",
|
|
766
|
+
"写 React 组件 UI",
|
|
767
|
+
"检查按钮键盘焦点",
|
|
768
|
+
"配置 Vite env 变量",
|
|
769
|
+
"写 Playwright E2E",
|
|
770
|
+
"选择全局 store 方案",
|
|
771
|
+
"审查 CSP 和 XSS"
|
|
772
|
+
]
|
|
773
|
+
},
|
|
774
|
+
"fec-ui-design": {
|
|
775
|
+
"should_trigger": [
|
|
776
|
+
"这个后台页面应该走什么 UI 设计方向",
|
|
777
|
+
"帮我把这个工具界面做得更产品化",
|
|
778
|
+
"让这个页面不要那么模板化和泛泛",
|
|
779
|
+
"把这个页面做得更有辨识度和高级感",
|
|
780
|
+
"这个界面看起来有点粗糙,帮我打磨间距和状态",
|
|
781
|
+
"检查按钮 hover active focus disabled 是否完整",
|
|
782
|
+
"这个页面局部有模板感,帮我打磨得更精致",
|
|
783
|
+
"做一次 UI polish pass",
|
|
784
|
+
"为这个美业预约产品生成设计系统建议",
|
|
785
|
+
"根据行业和产品类型给 dashboard 做 UI 方向",
|
|
786
|
+
"写一个 design-system Master 和 dashboard page override",
|
|
787
|
+
"检查这个图表页面的 chart UX 和视觉 QA",
|
|
788
|
+
"product-specific distinctive UI design and visual QA"
|
|
789
|
+
],
|
|
790
|
+
"should_not_trigger": [
|
|
791
|
+
"按 Figma 像素还原组件",
|
|
792
|
+
"检查键盘焦点和 aria",
|
|
793
|
+
"审查 XSS 和 CSP",
|
|
794
|
+
"写 Playwright E2E",
|
|
795
|
+
"写 React Hook Form 表单",
|
|
796
|
+
"设计浏览器存储策略",
|
|
797
|
+
"配置 Vite 环境变量",
|
|
798
|
+
"给 React 项目做目录规划",
|
|
799
|
+
"实现 Web Worker"
|
|
800
|
+
]
|
|
801
|
+
},
|
|
802
|
+
"fec-validation-fix": {
|
|
803
|
+
"should_trigger": [
|
|
804
|
+
"运行项目测试并修复失败",
|
|
805
|
+
"npm run build 报错帮我修",
|
|
806
|
+
"typecheck 失败怎么处理",
|
|
807
|
+
"lint failure after changes",
|
|
808
|
+
"跑验证命令并分析失败日志",
|
|
809
|
+
"修复单元测试失败",
|
|
810
|
+
"CI build failed locally",
|
|
811
|
+
"test and fix this frontend repo"
|
|
812
|
+
],
|
|
813
|
+
"should_not_trigger": [
|
|
814
|
+
"给 Button 写组件单元测试",
|
|
815
|
+
"为登录流程编写 Playwright E2E",
|
|
816
|
+
"写新的 Playwright 测试计划",
|
|
817
|
+
"做代码 review 报告",
|
|
818
|
+
"设计 React 架构",
|
|
819
|
+
"PWA manifest",
|
|
820
|
+
"Web Worker 实现",
|
|
821
|
+
"迁移 jQuery"
|
|
822
|
+
]
|
|
823
|
+
},
|
|
824
|
+
"fec-vite-project-standard": {
|
|
825
|
+
"should_trigger": [
|
|
826
|
+
"配置 vite.config.ts 的 proxy 和 alias",
|
|
827
|
+
"Vite 项目 build 通过但 typecheck 没跑怎么办",
|
|
828
|
+
"VITE_ 环境变量会不会泄露密钥",
|
|
829
|
+
"优化 Vite dev server 启动速度",
|
|
830
|
+
"Vite library mode 怎么 external peer deps",
|
|
831
|
+
"vite-plugin-checker 该怎么接入",
|
|
832
|
+
"配置 optimizeDeps 解决 CJS 依赖问题",
|
|
833
|
+
"review a Vite production build config"
|
|
834
|
+
],
|
|
835
|
+
"should_not_trigger": [
|
|
836
|
+
"React 组件边界怎么拆",
|
|
837
|
+
"Vue Router 页面组织",
|
|
838
|
+
"Next.js App Router metadata",
|
|
839
|
+
"Nuxt useFetch SSR",
|
|
840
|
+
"写 Playwright E2E",
|
|
841
|
+
"PWA Service Worker 离线缓存",
|
|
842
|
+
"按钮视觉 polish",
|
|
843
|
+
"审查 XSS DOM 注入"
|
|
844
|
+
]
|
|
845
|
+
},
|
|
846
|
+
"fec-vue3-project-standard": {
|
|
847
|
+
"should_trigger": [
|
|
848
|
+
"设计 Vue 3 TypeScript 项目结构",
|
|
849
|
+
"Vue SFC 组件边界怎么拆",
|
|
850
|
+
"Composables 和 Pinia 怎么分工",
|
|
851
|
+
"Vue Router 页面组织",
|
|
852
|
+
"Provide Inject 适合这个场景吗",
|
|
853
|
+
"Vue 3 API 层和错误处理约定",
|
|
854
|
+
"Vue 组件架构 review",
|
|
855
|
+
"Composition API project conventions"
|
|
856
|
+
],
|
|
857
|
+
"should_not_trigger": [
|
|
858
|
+
"Nuxt useFetch 和 SSR",
|
|
859
|
+
"React 组件架构",
|
|
860
|
+
"写 Vue Test Utils 单测",
|
|
861
|
+
"只做 WCAG 审查",
|
|
862
|
+
"TanStack Query 乐观更新",
|
|
863
|
+
"PWA Service Worker",
|
|
864
|
+
"jQuery 迁移",
|
|
865
|
+
"XSS 安全审查"
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
"fec-web-workers": {
|
|
869
|
+
"should_trigger": [
|
|
870
|
+
"大 JSON 解析阻塞主线程",
|
|
871
|
+
"用 Web Worker 处理图片滤镜",
|
|
872
|
+
"Comlink 怎么封装 worker API",
|
|
873
|
+
"Transferable Objects 零拷贝",
|
|
874
|
+
"Worker pool 处理大量任务",
|
|
875
|
+
"SharedWorker 跨 Tab 通信",
|
|
876
|
+
"Vite worker import 怎么写",
|
|
877
|
+
"move heavy browser computation off main thread"
|
|
878
|
+
],
|
|
879
|
+
"should_not_trigger": [
|
|
880
|
+
"虚拟列表减少 DOM 节点",
|
|
881
|
+
"Canvas 渲染循环",
|
|
882
|
+
"Service Worker 离线缓存",
|
|
883
|
+
"localStorage 存储",
|
|
884
|
+
"React 项目结构",
|
|
885
|
+
"普通 5ms 计算",
|
|
886
|
+
"操作 DOM 更新 UI",
|
|
887
|
+
"写组件测试"
|
|
888
|
+
]
|
|
889
|
+
}
|
|
890
|
+
}
|