{
  "fec-accessibility-check": {
    "should_trigger": [
      "检查这个弹窗的键盘焦点和 aria 是否正确",
      "给这个表单做 WCAG 2.2 AA 无障碍审查",
      "这个菜单能不能只用键盘操作",
      "审查页面标题层级和 landmark",
      "按钮只有图标，帮我补可访问名称",
      "检查 table 语义和屏幕阅读器体验",
      "抽屉关闭后焦点应该回到哪里",
      "a11y review for this React component"
    ],
    "should_not_trigger": [
      "给这个 PR 做整体代码评审",
      "修复 TypeScript 编译错误",
      "写一个 Playwright 登录流程",
      "实现 React 项目目录结构",
      "检查 XSS 和 token 存储风险",
      "优化虚拟列表滚动性能",
      "用 Storybook 写组件文档",
      "把 jQuery 项目迁移到 Vue"
    ]
  },
  "fec-api-integration": {
    "should_trigger": [
      "设计前端 typed API client",
      "统一处理接口 401 refresh token",
      "前后端联调时错误状态怎么映射",
      "文件上传用 multipart 还是预签名 URL",
      "SSE 和 WebSocket 应该选哪个",
      "组件里到处 fetch 想收敛成 API 层",
      "API 422 字段错误怎么展示到表单",
      "frontend API integration with auth refresh"
    ],
    "should_not_trigger": [
      "TanStack Query queryKey 怎么设计",
      "后端服务分层和数据库 repository",
      "React 项目目录怎么划分",
      "只检查 token 是否能放 localStorage",
      "写 Playwright 登录 E2E",
      "配置 Vite proxy",
      "普通按钮 loading 样式",
      "PWA Service Worker 缓存接口"
    ]
  },
  "fec-browser-storage": {
    "should_trigger": [
      "localStorage 里该怎么存用户偏好",
      "IndexedDB 适合缓存这个离线数据吗",
      "设计浏览器端缓存清理策略",
      "Cookie、sessionStorage、localStorage 选哪个",
      "封装带命名空间的客户端持久化",
      "审查 token 是否不该放 localStorage",
      "大数据量本地缓存用什么方案",
      "client persistence strategy for a web app"
    ],
    "should_not_trigger": [
      "配置 Service Worker 离线 fallback",
      "React Query queryKey 怎么设计",
      "修复表单校验错误",
      "写路由 RBAC 守卫",
      "迁移 jQuery 页面",
      "审查 CSP 和 XSS",
      "优化 Canvas 渲染",
      "配置 Next.js metadata"
    ]
  },
  "fec-canvas-threejs": {
    "should_trigger": [
      "实现一个 Three.js 产品 3D 预览",
      "Canvas 粒子动画卡顿怎么优化",
      "React Three Fiber 场景如何清理资源",
      "WebGL texture 太大导致掉帧",
      "签名板 Canvas 适配高清屏",
      "游戏渲染循环怎么写",
      "3D 场景 dispose 有哪些必须做",
      "build a canvas data visualization"
    ],
    "should_not_trigger": [
      "普通 DOM 表单怎么实现",
      "SVG 图标路径描边动画",
      "Web Worker 解析大 JSON",
      "React 项目模块边界设计",
      "优化大列表 DOM 节点数量",
      "Playwright 截图测试",
      "PWA manifest 配置",
      "检查按钮 aria-label"
    ]
  },
  "fec-code-review": {
    "should_trigger": [
      "帮我 review 这个前端 PR",
      "做一次合并前代码评审",
      "检查 React 组件架构和可维护性",
      "看看这批改动有没有类型和状态风险",
      "输出 frontend code review 报告",
      "审查样式一致性和测试缺口",
      "评估这个 UI 实现能不能合并",
      "general frontend PR review"
    ],
    "should_not_trigger": [
      "只检查 XSS 和 CSP",
      "只做 WCAG 无障碍审查",
      "只运行 test 并修复失败",
      "写 Playwright E2E",
      "设计 Next.js 路由结构",
      "迁移 jQuery 到 React",
      "优化 WebGL 帧率",
      "编写 Storybook 文档"
    ]
  },
  "fec-component-testing": {
    "should_trigger": [
      "给这个 React 组件补 RTL 单测",
      "Vue Test Utils 测试 emits",
      "给这个 composable 写单元测试",
      "用 user-event 测试弹窗交互",
      "组件 loading empty error 状态怎么测",
      "避免 snapshot 测试脆弱断言",
      "mock API 后测试组件渲染",
      "表单组件加 Router Provider 的轻量集成测试",
      "为这个 bug 补组件回归测试"
    ],
    "should_not_trigger": [
      "规划这个功能的测试分层",
      "写完整登录到支付的 E2E",
      "配置 Storybook 文档站",
      "跑 lint 并修复失败",
      "审查 XSS 风险",
      "设计 React 项目结构",
      "检查 WCAG 键盘焦点",
      "搭建 Playwright CI artifacts",
      "迁移 jQuery 项目"
    ]
  },
  "fec-data-fetching": {
    "should_trigger": [
      "TanStack Query queryKey 怎么设计",
      "React Query mutation 成功后如何失效缓存",
      "实现乐观更新失败回滚",
      "无限滚动数据用 useInfiniteQuery",
      "SSR hydration with React Query",
      "封装 typed API hooks",
      "替换 useEffect loading state 获取数据",
      "server state caching strategy"
    ],
    "should_not_trigger": [
      "Service Worker 缓存静态资源",
      "localStorage 存用户偏好",
      "表单字段联动校验",
      "Pinia 本地 UI 状态设计",
      "Next.js 服务端组件 fetch 缓存",
      "Web Worker 后台解析 CSV",
      "虚拟列表滚动渲染",
      "审查 token 存储安全"
    ]
  },
  "fec-debug-framework": {
    "should_trigger": [
      "Vite 构建报错 Module not found，帮我排查",
      "页面白屏了，控制台有 TypeError",
      "这个组件渲染结果和预期不一致，帮我 debug",
      "接口返回 500 但前端没展示错误信息",
      "打包后样式丢失，开发环境正常",
      "React 组件 hydration mismatch 怎么定位",
      "HMR 更新后页面状态丢失",
      "排查生产环境偶发性 JS 异常"
    ],
    "should_not_trigger": [
      "给这个模块写单元测试",
      "设计一个新的 React 组件",
      "优化首屏加载性能",
      "做前端安全审查",
      "升级 TypeScript 到最新版本",
      "重构这个 hooks 的逻辑",
      "写一个 Playwright E2E 测试",
      "给这个 API 设计类型定义"
    ]
  },
  "fec-dependency-upgrade": {
    "should_trigger": [
      "把 Vite 从 5 升级到 6，需要评估破坏性变更",
      "package-lock 改了很多，帮我 review 依赖升级风险",
      "修复 npm audit 里的前端高危 CVE",
      "React 大版本升级前需要迁移计划",
      "peer dependency 冲突怎么处理",
      "这个包从 CJS 切到 ESM 会影响构建吗",
      "frontend dependency upgrade verification plan",
      "升级 Storybook 后 CI build 失败需要分析"
    ],
    "should_not_trigger": [
      "只运行 npm test 并修复失败",
      "清理已证明未使用的组件",
      "写 React 组件架构规范",
      "设计 Tailwind token",
      "审查 XSS 和 CSP",
      "配置 Playwright 登录流程",
      "做 UI 视觉打磨",
      "实现 API client 错误映射"
    ]
  },
  "fec-doc-sync": {
    "should_trigger": [
      "同步 README 中的 skill 和 agent 数量",
      "新增命令后更新多语言文档",
      "根据 package.json 生成命令清单",
      "docs sync for runtime documentation",
      "更新 marketplace 描述里的能力数量",
      "检查 README 和 skills metadata 是否一致",
      "把报告输出表同步到文档",
      "更新项目结构文档中的 commands 列表"
    ],
    "should_not_trigger": [
      "给组件写 Storybook stories",
      "修复 TypeScript 构建失败",
      "写登录 E2E 测试",
      "审查 XSS 风险",
      "规划 React 组件边界",
      "清理未使用导出",
      "实现 PWA manifest",
      "优化虚拟列表滚动"
    ]
  },
  "fec-e2e-testing": {
    "should_trigger": [
      "用 Playwright 写登录购买完整流程",
      "治理 flaky E2E 用例",
      "配置 Cypress 关键路径测试",
      "上传 trace screenshot video 到 CI",
      "Page Object 怎么组织",
      "写移动端和桌面端 E2E",
      "视觉回归测试怎么接入",
      "debug a failing Playwright test"
    ],
    "should_not_trigger": [
      "给 Button 写组件单测",
      "Storybook 写组件示例",
      "React 项目结构设计",
      "修复 TypeScript 类型错误",
      "审查 XSS 风险",
      "配置 PWA manifest",
      "选择 localStorage 还是 IndexedDB",
      "写 Zod 表单校验"
    ]
  },
  "fec-form-handling": {
    "should_trigger": [
      "用 React Hook Form 和 Zod 做复杂表单",
      "动态字段 useFieldArray 怎么写",
      "第三方 Select 如何接入 Controller",
      "文件上传表单怎么校验大小和类型",
      "多步表单 schema 怎么拆",
      "表单输入很卡怎么优化",
      "密码确认联动校验",
      "build a typed validation form"
    ],
    "should_not_trigger": [
      "React 项目目录怎么规划",
      "mutation 成功后 invalidation",
      "写表单组件单测",
      "检查 label 和 aria 错误提示",
      "路由未登录重定向",
      "审查文件上传安全风险",
      "普通两个字段搜索框",
      "Vue 组件架构设计"
    ]
  },
  "fec-implement-from-design": {
    "should_trigger": [
      "按 Figma 设计稿实现这个页面",
      "从截图还原一个 React 组件",
      "把 MasterGo 选区转成前端代码",
      "设计 token 应该怎么映射到 CSS 变量",
      "实现设计稿里的弹窗和表格",
      "检查设计稿和实现的视觉差异",
      "用现有组件库还原 Pixso 页面",
      "design-to-code implementation"
    ],
    "should_not_trigger": [
      "创建 PWA Service Worker",
      "写组件单元测试",
      "做通用 PR review",
      "配置 React Query",
      "维护 jQuery 遗留页面",
      "检查 XSS 风险",
      "设计 monorepo package 边界",
      "写 Web Worker"
    ]
  },
  "fec-legacy-to-modern-migration": {
    "should_trigger": [
      "把 jQuery MPA 迁移到 React TypeScript",
      "规划遗留 JSP 页面现代化",
      "从服务端模板迁移到 Vue 3 SPA",
      "做 legacy frontend migration plan",
      "盘点旧系统页面和插件依赖",
      "制定渐进式 Strangler Fig 迁移",
      "迁移 $.ajax 到 typed request layer",
      "jQuery 项目技术栈升级方案"
    ],
    "should_not_trigger": [
      "在 jQuery 项目里修一个点击 bug",
      "维护现有原生 JS 页面不迁移",
      "审查 React PR",
      "写 Playwright E2E",
      "配置 Nuxt 路由",
      "检查 Canvas 内存泄漏",
      "设计浏览器存储策略",
      "写 Storybook 文档"
    ]
  },
  "fec-legacy-web-standard": {
    "should_trigger": [
      "维护一个 jQuery 多页面项目",
      "修复原生 JS 事件委托问题",
      "传统服务端模板页面怎么安全改",
      "审查 .html() 插入用户输入",
      "整理 legacy CSS 和 jQuery 插件初始化",
      "MPA 页面 Ajax loading 怎么处理",
      "不引入框架地改旧页面",
      "vanilla JS legacy maintenance"
    ],
    "should_not_trigger": [
      "把 jQuery 迁移到 React",
      "制定 Vue 3 重构计划",
      "设计 React 项目结构",
      "写组件单元测试",
      "配置 PWA 离线缓存",
      "实现 Three.js 场景",
      "做 Next.js App Router 页面",
      "配置 TanStack Query"
    ]
  },
  "fec-list-virtualization": {
    "should_trigger": [
      "十万行列表滚动卡顿怎么优化",
      "react-window 固定高度列表",
      "TanStack Virtual 动态高度",
      "虚拟滚动和无限加载结合",
      "表格行太多导致 DOM 爆炸",
      "网格 virtualization 怎么做",
      "variable row height measurement",
      "large list windowing performance"
    ],
    "should_not_trigger": [
      "React Query 无限分页数据源",
      "Web Worker 计算布局",
      "Canvas 绘制图表",
      "普通短列表组件",
      "写 E2E 滚动测试",
      "检查 aria 表格语义",
      "PWA 缓存图片",
      "设计 Vue 项目结构"
    ]
  },
  "fec-monorepo-project-standard": {
    "should_trigger": [
      "设计 pnpm workspace 前端 monorepo",
      "Turborepo task pipeline 怎么配置",
      "Nx 多包边界怎么划分",
      "内部包用 workspace:*",
      "检查 monorepo 循环依赖",
      "多 package 发布规范",
      "共享 UI 包和 app 边界",
      "frontend monorepo restructuring"
    ],
    "should_not_trigger": [
      "单个 React 组件架构",
      "Next.js App Router 页面",
      "写表单校验",
      "配置 Playwright E2E",
      "审查 XSS 风险",
      "优化虚拟列表",
      "PWA manifest",
      "维护 jQuery 页面"
    ]
  },
  "fec-motion-interaction": {
    "should_trigger": [
      "给这个产品页设计页面转场动效",
      "Framer Motion 和 GSAP 这里该选哪个",
      "滚动叙事动画怎么做且不掉帧",
      "这个 dashboard 的交互动效太重了帮我降级",
      "Lottie 图标动画怎么按需加载",
      "设计 reduced-motion 下的动画兜底",
      "页面入场 stagger 和布局过渡怎么规划",
      "frontend interaction motion strategy"
    ],
    "should_not_trigger": [
      "SVG 路径描边动画怎么写",
      "Three.js 粒子系统怎么优化",
      "普通 CSS hover 颜色变化",
      "React 项目目录结构设计",
      "检查按钮 aria-label",
      "写 Playwright 动画截图测试",
      "配置 PWA manifest",
      "API 错误状态怎么映射"
    ]
  },
  "fec-nextjs-project-standard": {
    "should_trigger": [
      "Next.js App Router 项目结构",
      "server component 和 client component 边界",
      "配置 SSR SSG ISR",
      "generateMetadata 怎么写",
      "middleware 里做重定向",
      "loading.tsx error.tsx 怎么组织",
      "Next.js fetch cache 策略",
      "Next 14 route layout design"
    ],
    "should_not_trigger": [
      "普通 React 组件拆分",
      "React Hook Form 表单",
      "TanStack Query 客户端缓存",
      "Vue 3 composable 设计",
      "Nuxt 页面路由",
      "Playwright E2E",
      "PWA Service Worker",
      "jQuery 迁移"
    ]
  },
  "fec-nuxt-project-standard": {
    "should_trigger": [
      "Nuxt 3 项目结构怎么组织",
      "useFetch 和 useAsyncData 选择",
      "配置 Nuxt SSR SSG SPA",
      "Nuxt route middleware 鉴权",
      "plugins .client .server 怎么写",
      "server/api 路由设计",
      "Nuxt layouts 和 pages",
      "Nuxt module setup"
    ],
    "should_not_trigger": [
      "普通 Vue 3 组件边界",
      "Next.js App Router",
      "React Query 缓存",
      "写组件单测",
      "PWA manifest",
      "jQuery 维护",
      "Canvas 渲染",
      "Web Worker 性能"
    ]
  },
  "fec-performance-optimization": {
    "should_trigger": [
      "页面首屏 LCP 很慢怎么定位",
      "优化这个 React 页面重复渲染和长任务",
      "bundle size 突然变大帮我分析",
      "Core Web Vitals 不达标需要性能预算",
      "Lighthouse performance 分数下降",
      "滚动卡顿和主线程阻塞排查",
      "检查内存泄漏和未清理事件监听",
      "frontend performance optimization with web vitals"
    ],
    "should_not_trigger": [
      "给 Button 写组件单元测试",
      "规划 React 项目目录结构",
      "检查 XSS 和 CSP 风险",
      "同步 README skill 数量",
      "按 Figma 实现页面",
      "配置路由权限守卫",
      "修复 TypeScript 类型错误",
      "迁移 jQuery 到 Vue"
    ]
  },
  "fec-pwa-implementation": {
    "should_trigger": [
      "给应用加 PWA manifest",
      "配置 Service Worker 离线 fallback",
      "Workbox 缓存策略怎么选",
      "实现 beforeinstallprompt 安装提示",
      "PWA 更新提示和 skipWaiting",
      "maskable icon 怎么配置",
      "iOS PWA 有哪些兼容问题",
      "make this web app installable"
    ],
    "should_not_trigger": [
      "React Query API 缓存",
      "localStorage 持久化偏好",
      "普通页面性能优化",
      "Next.js metadata",
      "写 Playwright E2E",
      "Web Worker 后台计算",
      "审查 XSS 风险",
      "Vue 项目结构"
    ]
  },
  "fec-react-project-standard": {
    "should_trigger": [
      "设计 React TypeScript 项目结构",
      "React feature 模块边界怎么划分",
      "组件、hooks、services 目录怎么放",
      "Context 和局部状态怎么归属",
      "React 页面重构成 features",
      "设计复合组件 API",
      "梳理 React 错误边界和状态层",
      "React component architecture review"
    ],
    "should_not_trigger": [
      "写 React Hook Form 动态表单",
      "TanStack Query mutation 回滚",
      "RTL 组件单测",
      "只检查 a11y 焦点",
      "Next.js App Router fetch cache",
      "虚拟列表滚动性能",
      "PWA Service Worker",
      "XSS 安全审查"
    ]
  },
  "fec-refactor-clean": {
    "should_trigger": [
      "清理未使用的 React 组件",
      "用 knip 检查死代码并安全删除",
      "删除没有引用的工具函数",
      "检查未使用的 npm 依赖",
      "refactor clean unused exports",
      "清理过期路由前先做风险分类",
      "找出无用 CSS 文件但不要误删动态 class",
      "生成 dead code cleanup 报告"
    ],
    "should_not_trigger": [
      "实现新功能页面",
      "写 TDD 失败测试",
      "同步 README 命令表",
      "修复 lint 失败",
      "做安全审查",
      "设计 Next.js 路由结构",
      "写 Playwright 测试",
      "迁移 jQuery 到 React"
    ]
  },
  "fec-route-protection": {
    "should_trigger": [
      "实现未登录跳转登录页",
      "RBAC 权限路由怎么设计",
      "React Router 私有路由守卫",
      "Next middleware 鉴权和 redirect",
      "Vue Router beforeEach 权限判断",
      "Nuxt route middleware 登录态",
      "防止 open redirect",
      "route guard with roles"
    ],
    "should_not_trigger": [
      "审查 token 是否安全存储",
      "设计 React 项目结构",
      "配置 TanStack Query",
      "写 E2E 登录流程",
      "表单校验",
      "PWA 离线缓存",
      "普通菜单键盘可访问性",
      "jQuery 迁移"
    ]
  },
  "fec-responsive-layout": {
    "should_trigger": [
      "这个页面 375px 下横向溢出，帮我做响应式布局",
      "用 container query 改这个组件的布局",
      "移动端表格应该怎么改成可读视图",
      "dashboard 在平板和桌面断点之间跳变",
      "检查触摸目标和安全区域适配",
      "横竖屏切换后底部操作栏挡住内容",
      "responsive layout review for this web app",
      "设计移动优先的多列筛选页面"
    ],
    "should_not_trigger": [
      "为产品页定义视觉风格",
      "设计 Tailwind 组件变体",
      "只检查 aria 和键盘焦点",
      "优化 bundle size",
      "写 Playwright E2E",
      "实现 React 项目目录结构",
      "审查 XSS 风险",
      "升级依赖版本"
    ]
  },
  "fec-security-review": {
    "should_trigger": [
      "检查 dangerouslySetInnerHTML 是否安全",
      "审查 v-html XSS 风险",
      "token 存储和刷新流程安全检查",
      "文件上传前端安全风险",
      "第三方脚本和 CSP 审查",
      "检查 CSRF 防护",
      "开放重定向风险",
      "frontend security review"
    ],
    "should_not_trigger": [
      "普通前端 PR 综合评审",
      "WCAG 键盘焦点审查",
      "React 组件架构设计",
      "Playwright E2E",
      "修复 TypeScript 错误",
      "PWA install prompt",
      "Storybook 组件文档",
      "虚拟列表性能"
    ]
  },
  "fec-source-driven-development": {
    "should_trigger": [
      "这个 Next.js 新版本 API 先查官方文档再决定",
      "帮我确认 Vite 配置项当前版本是否还推荐",
      "这个浏览器 API 兼容性要以规范和 MDN 为准",
      "source-driven decision for a frontend library migration",
      "React Router 版本差异需要查文档",
      "这个包的 ESM/CJS 行为不要凭记忆判断",
      "按项目源码和官方 docs 设计公共接口",
      "验证 Nuxt useFetch 最新推荐用法"
    ],
    "should_not_trigger": [
      "给表单写 Zod 校验",
      "优化大列表虚拟滚动",
      "运行 npm test 并修复失败",
      "检查按钮 aria-label",
      "写 Playwright 登录流程",
      "清理未使用依赖",
      "设计 UI 视觉方向",
      "审查 token 存储安全"
    ]
  },
  "fec-state-management": {
    "should_trigger": [
      "审计这个 dashboard 的状态归属",
      "哪些状态应该放 URL，哪些放 store",
      "React 全局状态 Zustand 和 Context 怎么选",
      "Pinia store 和本地 ref 应该怎么分工",
      "把重复的派生 state 清理掉",
      "服务端状态和客户端 store 边界怎么划分",
      "设计筛选条件、分页和排序的状态归属",
      "frontend state ownership and store selection"
    ],
    "should_not_trigger": [
      "TanStack Query queryKey 细节怎么设计",
      "localStorage 安全持久化怎么封装",
      "React Hook Form 字段校验怎么写",
      "只检查 XSS 和 token 泄露",
      "设计 React 项目目录结构",
      "写 Playwright 登录 E2E",
      "配置 PWA Service Worker",
      "优化虚拟列表滚动性能"
    ]
  },
  "fec-storybook-component-doc": {
    "should_trigger": [
      "给组件写 Storybook stories",
      "配置 Storybook addon-a11y",
      "为设计系统写 MDX 文档",
      "Storybook decorators 怎么处理 Provider",
      "组件状态枚举文档",
      "Chromatic 视觉回归接入",
      "Storybook interaction test",
      "document components in Storybook"
    ],
    "should_not_trigger": [
      "RTL 组件单元测试",
      "Playwright 跨页 E2E",
      "React 项目结构设计",
      "按 Figma 直接实现页面",
      "安全审查",
      "PWA 配置",
      "Web Worker",
      "jQuery 迁移"
    ]
  },
  "fec-tailwind-design-system": {
    "should_trigger": [
      "设计 Tailwind token 和 theme.extend",
      "这个组件库的 class 太散，想整理成 variants",
      "Tailwind 暗色模式怎么和 CSS 变量对齐",
      "检查动态 class 是否会被 purge 掉",
      "用 CVA 设计 Button 的 size 和 tone",
      "Tailwind safelist 应该怎么治理",
      "build a Tailwind design system for this app",
      "把硬编码颜色迁移到 Tailwind 语义 token"
    ],
    "should_not_trigger": [
      "纯 CSS Grid 响应式布局溢出",
      "按 Figma 像素还原页面",
      "写组件 RTL 单测",
      "审查接口 401 错误映射",
      "修复 TypeScript 类型错误",
      "配置路由权限守卫",
      "升级 npm 依赖",
      "做通用前端 PR review"
    ]
  },
  "fec-svg-animation": {
    "should_trigger": [
      "SVG 路径描边动画",
      "logo SVG 动效怎么做",
      "Framer Motion 驱动 SVG",
      "GSAP 控制 icon motion",
      "微交互 SVG 动画",
      "prefers-reduced-motion 兜底",
      "SMIL 和 CSS animation 选择",
      "animate an SVG illustration"
    ],
    "should_not_trigger": [
      "Three.js 3D 场景",
      "Canvas 粒子系统",
      "普通 CSS hover",
      "PWA 图标配置",
      "React 项目结构",
      "写 E2E 测试",
      "检查 XSS",
      "虚拟列表性能"
    ]
  },
  "fec-tdd-workflow": {
    "should_trigger": [
      "用 TDD 实现这个 hook",
      "先写失败测试再修这个 bug",
      "为新组件走红绿重构流程",
      "补一个回归测试再改逻辑",
      "test driven development for this frontend feature",
      "这个工具函数先写单测再实现",
      "修复表单校验 bug 前先复现测试",
      "用测试驱动方式重构状态逻辑"
    ],
    "should_not_trigger": [
      "只运行现有测试并修复失败",
      "制定测试分层策略",
      "写完整 Playwright E2E 流程",
      "同步文档能力表",
      "清理未使用依赖",
      "做 XSS 安全审查",
      "设计 Vue 项目结构",
      "配置 PWA 离线缓存"
    ]
  },
  "fec-testing-strategy": {
    "should_trigger": [
      "为这个前端功能制定测试策略",
      "这次 PR 应该补哪些层级的测试",
      "按风险给登录重构做测试覆盖矩阵",
      "单元测试、组件测试、E2E 怎么分工",
      "规划静态检查、组件测试和 E2E 的质量门禁",
      "评估这个里程碑的测试债治理优先级",
      "测试分层怎么设计",
      "create a frontend testing strategy for this feature"
    ],
    "should_not_trigger": [
      "给 Button 写 RTL 单测",
      "写 Playwright 登录 E2E",
      "运行 npm test 并修复失败",
      "配置 Storybook stories",
      "只检查 XSS 和 CSP",
      "只做 WCAG 键盘焦点审查",
      "实现 React 项目目录结构",
      "优化虚拟列表滚动性能"
    ]
  },
  "fec-typescript-type-safety": {
    "should_trigger": [
      "审查这些 DTO 和 view model 类型边界",
      "这个泛型组件类型怎么设计更安全",
      "用 type guard 收窄 unknown 输入",
      "检查不安全的 as 和非空断言",
      "设计判别联合表达异步状态",
      "给公共 utility type 加类型测试",
      "TypeScript 类型建模和泛型约束 review",
      "API 响应类型和运行时校验怎么对齐"
    ],
    "should_not_trigger": [
      "做整个前端 PR 综合评审",
      "只修复 tsc 编译失败",
      "写 React 组件 UI",
      "检查按钮键盘焦点",
      "配置 Vite env 变量",
      "写 Playwright E2E",
      "选择全局 store 方案",
      "审查 CSP 和 XSS"
    ]
  },
  "fec-ui-design": {
    "should_trigger": [
      "这个后台页面应该走什么 UI 设计方向",
      "帮我把这个工具界面做得更产品化",
      "让这个页面不要那么模板化和泛泛",
      "把这个页面做得更有辨识度和高级感",
      "这个界面看起来有点粗糙，帮我打磨间距和状态",
      "检查按钮 hover active focus disabled 是否完整",
      "这个页面局部有模板感，帮我打磨得更精致",
      "做一次 UI polish pass",
      "为这个美业预约产品生成设计系统建议",
      "根据行业和产品类型给 dashboard 做 UI 方向",
      "写一个 design-system Master 和 dashboard page override",
      "检查这个图表页面的 chart UX 和视觉 QA",
      "product-specific distinctive UI design and visual QA"
    ],
    "should_not_trigger": [
      "按 Figma 像素还原组件",
      "检查键盘焦点和 aria",
      "审查 XSS 和 CSP",
      "写 Playwright E2E",
      "写 React Hook Form 表单",
      "设计浏览器存储策略",
      "配置 Vite 环境变量",
      "给 React 项目做目录规划",
      "实现 Web Worker"
    ]
  },
  "fec-validation-fix": {
    "should_trigger": [
      "运行项目测试并修复失败",
      "npm run build 报错帮我修",
      "typecheck 失败怎么处理",
      "lint failure after changes",
      "跑验证命令并分析失败日志",
      "修复单元测试失败",
      "CI build failed locally",
      "test and fix this frontend repo"
    ],
    "should_not_trigger": [
      "给 Button 写组件单元测试",
      "为登录流程编写 Playwright E2E",
      "写新的 Playwright 测试计划",
      "做代码 review 报告",
      "设计 React 架构",
      "PWA manifest",
      "Web Worker 实现",
      "迁移 jQuery"
    ]
  },
  "fec-vite-project-standard": {
    "should_trigger": [
      "配置 vite.config.ts 的 proxy 和 alias",
      "Vite 项目 build 通过但 typecheck 没跑怎么办",
      "VITE_ 环境变量会不会泄露密钥",
      "优化 Vite dev server 启动速度",
      "Vite library mode 怎么 external peer deps",
      "vite-plugin-checker 该怎么接入",
      "配置 optimizeDeps 解决 CJS 依赖问题",
      "review a Vite production build config"
    ],
    "should_not_trigger": [
      "React 组件边界怎么拆",
      "Vue Router 页面组织",
      "Next.js App Router metadata",
      "Nuxt useFetch SSR",
      "写 Playwright E2E",
      "PWA Service Worker 离线缓存",
      "按钮视觉 polish",
      "审查 XSS DOM 注入"
    ]
  },
  "fec-vue3-project-standard": {
    "should_trigger": [
      "设计 Vue 3 TypeScript 项目结构",
      "Vue SFC 组件边界怎么拆",
      "Composables 和 Pinia 怎么分工",
      "Vue Router 页面组织",
      "Provide Inject 适合这个场景吗",
      "Vue 3 API 层和错误处理约定",
      "Vue 组件架构 review",
      "Composition API project conventions"
    ],
    "should_not_trigger": [
      "Nuxt useFetch 和 SSR",
      "React 组件架构",
      "写 Vue Test Utils 单测",
      "只做 WCAG 审查",
      "TanStack Query 乐观更新",
      "PWA Service Worker",
      "jQuery 迁移",
      "XSS 安全审查"
    ]
  },
  "fec-web-workers": {
    "should_trigger": [
      "大 JSON 解析阻塞主线程",
      "用 Web Worker 处理图片滤镜",
      "Comlink 怎么封装 worker API",
      "Transferable Objects 零拷贝",
      "Worker pool 处理大量任务",
      "SharedWorker 跨 Tab 通信",
      "Vite worker import 怎么写",
      "move heavy browser computation off main thread"
    ],
    "should_not_trigger": [
      "虚拟列表减少 DOM 节点",
      "Canvas 渲染循环",
      "Service Worker 离线缓存",
      "localStorage 存储",
      "React 项目结构",
      "普通 5ms 计算",
      "操作 DOM 更新 UI",
      "写组件测试"
    ]
  }
}
