当前位置: 首页 > news >正文

AI 写代码总跑偏?mirrorai 让 Claude Code、Cursor、Copilot 严格遵守你项目的真实规范

一、痛点:AI 工具写出来的代码,永远跟你项目格格不入

你有没有过这种经历——

团队花了几个月时间,封装了一套组件库、约定了接口调用方式、确定了页面结构。然后你引入 Claude Code 或 Cursor 开始用 AI 写代码。结果呢?

AI 把这些规范全部忽略了。

  • AI 不知道你把<el-table>封装成了<AppTable>,直接用原始组件
  • AI 不知道接口必须走src/api/下的封装,自己造了个 axios 调用
  • AI 不知道列表页有固定的结构模板,每次都重新发明结构
  • AI 不知道某个工具函数已经存在,反复创建重复的逻辑

最终的代码能跑,但跟项目格格不入。你花在纠正 AI 上的时间,比它帮你省下的还多。

更糟的是,你维护多个项目时:每个项目规范不同,每次 AI 对话都从零开始。你得不停地告诉 AI “用我们项目的封装”、“按已有页面的写法来”、“别造新轮子”。


二、根本原因:AI 没有项目上下文

为什么会这样?

因为 AI 工具默认不读你的项目代码。Claude Code 启动时会读CLAUDE.md,Cursor 会读.cursorrules,但这些文件得你自己写。问题是:

  1. 手写费时—— 把项目里所有封装、规范、命名约定整理成 Markdown,是个枯燥的活
  2. 容易过期—— 项目演进后你忘了同步更新规则文件
  3. 多工具维护—— 团队里有人用 Claude Code、有人用 Cursor、有人用 Copilot,每个工具要单独写一份
  4. 覆盖不全—— 你写的规则只覆盖"显性"约定,"隐性"约定(比如某种页面的标准结构)AI 还是不知道

所以痛点的本质是:AI 工具缺少一个"项目自动分析 + 规则生成"的环节。


三、mirrorai:让 AI 镜像你的项目,而不是创造它自己的风格

mirrorai 是一个开源 npm 工具,专门解决这个问题。它的核心动作很简单:

分析你的存量代码 → 提取项目高频模式 → 自动生成多 AI 工具的规范文件

一行命令安装:

npx mirroraiinstall

然后在 AI 工具里跑/mirror-init,它会:

  1. 扫描你的项目(package.json、go.mod、pyproject.toml 等任意清单文件)识别技术栈
  2. 分析目录结构、核心抽象、基础设施
  3. 扫描所有业务文件,按业务单元类型聚类
  4. 评分筛选出真正高频的模式(出现 ≥ 3 次、单文件 ≥ 50 行、相似度 ≥ 80%)
  5. 生成你选择的 AI 工具规范文件
  6. 可选生成 plopfile.js 和模板,用于零 token 本地生成骨架代码

支持的 AI 工具

AI 工具生成的规范文件
Claude CodeCLAUDE.md+.claude/commands/*.md
Cursor.cursorrules
Windsurf.windsurfrules
GitHub Copilot.github/copilot-instructions.md
Cline.clinerules

运行时可按需勾选——团队只用 Cursor 就只生成.cursorrules,不会污染目录。

支持的项目类型

不限语言、不限框架、不限业务领域

  • 前端:Vue 2/3、React、Svelte、Angular、Next.js、Nuxt、Astro
  • 后端:Express、NestJS、FastAPI、Django、Flask、Spring Boot、Gin、Laravel、Rails 等
  • 移动:React Native、Flutter、SwiftUI、Jetpack Compose
  • CLI / 库:clap、cobra、commander、click 等
  • 数据:ETL pipeline、消息消费者、定时任务、报表导出

只要你的项目里有可识别的重复模式,mirrorai 就能帮你。


四、mirrorai 解决的四个核心痛点

1. AI 不认识你封装的抽象层

团队封装的<AppTable>useFetchBaseRepository这些抽象层,AI 一概不知。

mirrorai 怎么做:生成的规范文件会列出每一个封装组件/工具/服务的名称、位置、用法。明确告诉 AI 什么已经存在、必须用什么。

2. AI 总在浪费你的 token

让 AI 写一个标准的 CRUD 列表页,它会从头生成:表格结构、分页、加载状态、搜索栏、错误处理。这些80% 在你项目里都是固定模板,纯粹是 token 浪费。

mirrorai 怎么做:从项目实际代码中提取骨架模板,本地零 token 生成模板部分,AI 只补充业务字段。token 消耗降低 60-80%

3. AI 不知道什么场景该用哪个模式

即便有了CLAUDE.md,AI 还是需要用户明确说"用列表页模板"或"按订单管理那个写法"。手动指挥太麻烦。

mirrorai 怎么做:生成的CLAUDE.md里有个Auto-Execute Rules段,AI 会根据用户描述自动识别场景

你:帮我做个请假申请功能 AI:(自动识别为审批流模式) → 按项目规范生成端点 + 测试 + 路由

无需手动触发任何命令。

4. 团队同时用多个 AI 工具,规则文件维护成本爆炸

有人用 Claude Code,有人用 Cursor,有人用 Copilot——五个工具五份规则,同步是噩梦。

mirrorai 怎么做:一次分析,按需生成所有选中工具的规范文件,内容核心一致,仅格式适配。再次运行可重新生成、增量更新或合并。


五、快速上手:3 分钟用上

第一步:安装

# 在项目根目录执行npx mirroraiinstall

这会把一个mirror-init.md文件复制到.claude/commands/目录。整个工具就这么大——后续所有规则都由 AI 分析项目动态生成。

第二步:在 AI 工具里初始化

/mirror-init

AI 会问你两个问题:

Which AI coding tools do you use? (multi-select, comma-separated) 1. Claude Code → CLAUDE.md + .claude/commands/ 2. Cursor → .cursorrules 3. Windsurf → .windsurfrules 4. GitHub Copilot → .github/copilot-instructions.md 5. Cline → .clinerules Also generate a plopfile and skeleton templates for zero-token local scaffolding? (y/n)

选完之后等几分钟,AI 会自动完成分析、生成规则、模板提取、语法验证、语义验证、最终报告全套流程。

第三步:日常开发

由于规则文件里有Auto-Execute Rules绝大多数场景下你不需要手动触发命令,直接描述需求即可:

你:帮我做一个订单管理页面 AI:(识别为列表页模式 + 表单弹窗模式) → 按规范创建列表页 + 表单组件 + API 文件 + 路由配置

可选:零 token 生成骨架

如果开启了 plop 模板:

npx plop--help# 查看可用模式npx mirrorai new<模式名><模块名># 本地生成骨架,AI 再填业务

六、工作原理:为什么不会跑偏

很多人会问:mirrorai 怎么保证生成的规则不"瞎写"?

核心机制是“绝不预设、全部基于真实代码”

你的项目代码 ↓ 扫描清单文件 → 识别语言、框架、技术栈 ↓ 扫描业务代码 → 按业务单元类型聚类 ↓ 评分筛选:出现 ≥ 3 次 + 单文件 ≥ 50 行 + 相似度 ≥ 80% ↓ 生成 4 类产物 ├─ 规范文件:CLAUDE.md / .cursorrules / .windsurfrules / ... ├─ Slash Commands:只为高频模式生成(3–6 个,命名贴合业务) ├─ plopfile:与命令一一对应的骨架生成器 └─ 模板:从项目实际代码提取的 .hbs 文件(任意语言)

特别值得说的几点:

没有固定命令集

不像别的脚手架工具固定生成new-list/new-form,mirrorai完全根据项目实际情况决定生成哪些命令。

  • OA 系统会生成new-approval(审批流)
  • 数据大屏会生成new-chartnew-dashboard
  • ETL 工具会生成new-pipelinenew-task
  • 后台管理可能是new-listnew-form

命名贴合你的业务,而不是套用通用名。

重新运行不会覆盖你的内容

每个 mirrorai 生成的文件都会带一个 marker(<!-- mirrorai:generated -->)。再次运行时如果发现某个规则文件没有这个 marker,会单独询问你:合并、覆盖、还是跳过。绝不静默破坏你的自定义内容

生成结果有完整的验证流程

生成 plopfile 和模板后会自动执行:

  1. 语法检查——node --check
  2. 加载检查——npx plop --help
  3. Trial-run—— 用临时模块名跑每个 generator
  4. 产物语法检查—— 按项目语言验证
  5. 语义对比—— 与提取来源样本对比 import、核心抽象引用、结构段落
  6. 清理临时文件
  7. 失败分级处理—— 单个 generator 失败会被移除,不影响整体流程

七、与其他方案的对比

方案是否分析项目多工具支持维护成本token 消耗
手写 CLAUDE.md单工具
GitHub 模板仓库单工具
Cursor Rules 市场模板仅 Cursor
mirrorai✅ 完整分析✅ 5 个工具✅ 极低✅ 极低

mirrorai 的独特价值在于:它不是模板库,而是项目分析器。模板库给你"通用 React 项目"的规则,mirrorai 给你"你这个项目"的规则。


八、技术栈与开源信息

  • GitHub:github.com/joygqz/mirrorai
  • npmnpx mirrorai install
  • License:MIT
  • 环境要求:Node.js 18+
  • 依赖:仅picocolors(彩色输出)

用什么 AI 工具订阅?

mirrorai 本身不调用 Anthropic API,整个分析过程跑在你的 AI 工具内(用你已有的订阅):

  • Claude Code 订阅
  • Cursor Pro
  • Windsurf
  • GitHub Copilot
  • Cline

任意一个都行。整个流程无需 API Key


九、总结

问题:AI 工具写代码总跑偏,因为它不知道你项目的真实规范。

根因:项目规范信息没有传递给 AI;手写又费时、易过期、难跨工具。

方案:mirrorai 自动分析项目代码 → 生成 CLAUDE.md、.cursorrules、.windsurfrules、Copilot instructions、Cline rules 一站式规则文件。

收益

  • ✅ AI 严格遵守项目规范,停止跑偏
  • ✅ token 消耗降低 60-80%
  • ✅ 多 AI 工具统一管理
  • ✅ 无需额外 API Key,走现有订阅
  • ✅ 重新运行不破坏你的自定义内容

🔗 立即试用

# 在你的项目根目录执行npx mirroraiinstall

然后在 Claude Code / Cursor / Windsurf 等任意 AI 工具里输入:

/mirror-init

剩下的交给 AI。

GitHub 仓库:https://github.com/joygqz/mirrorai
欢迎 Star、Issue、PR。


📌 文章配套标签:Claude Code、CLAUDE.md、Cursor、cursorrules、Windsurf、GitHub Copilot、Cline、AI 编程助手、AI 代码规范、前端工程化、开源工具

http://www.jsqmd.com/news/855543/

相关文章:

  • 2026年自助建站平台哪个好?推荐这4个知名建站平台!
  • Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
  • 【正式版上线】Open Claw 2.7.5 桌面端一键安装部署教程
  • 三步告别键盘连击:KeyboardChatterBlocker高效使用全攻略
  • C#如何优雅处理引用类型的深拷贝 (十一)
  • Kimi、DeepSeek、阶跃星辰三天融资超百亿,中国AI的“中场战事”刚刚开始
  • 掌握Linux网络设计中的WebSocket服务器
  • 港科大沈劭劼、谭平团队最新成果:开源280万全景数据集,实现零样本立体匹配
  • 测试经理为保障项目按期交付,主动规划核心内容
  • 我开发了一个 AI 表单填写 Chrome 插件:AutoFormX,提升 Web 测试和表单联调效率
  • 3步搞定OFD兼容难题:Ofd2Pdf实战手册
  • Cursor试用限制终极解决方案:3分钟快速重置设备标识实战指南
  • STM32 HAL库驱动中景园0.96寸OLED(SSD1306)避坑指南:从IIC地址到GRAM刷新的完整流程
  • 别再傻傻分不清:一张图看懂BLDC六步换相与PMSM FOC的本质区别与应用选型
  • 不止是省9.9刀:解锁特斯拉Model 3的‘行驶中保持WiFi’功能,打造家庭移动娱乐中心
  • 告别臃肿UI!5K行代码的GuiLite在STM32 HAL库上跑起来了(附工程源码)
  • 避开这3个坑,你的C# + VisionPro相机采集程序才算稳定(WinForm实战)
  • 告别接线混乱!用ESP32的I2C接口驱动LCD1602,5分钟搞定温湿度显示(附完整代码)
  • 从音箱分频到电源净化:聊聊RLC低通滤波器那些意想不到的实用场景
  • 操作系统概述(4)--操作系统运行机制(1):处理机双重模式与中断
  • FPGA管脚不够用?手把手教你用74HC595级联驱动8位数码管(附Verilog代码与仿真)
  • C++ STL常用函数一览表(快速记忆版本)
  • 多模态协作:文本、图像、语音Agent配合
  • Odrive运动控制实战:用STM32的CAN总线读取电机位置和发送位置指令
  • Perplexity历史资料搜索效率提升300%:实测验证的5步精准检索法(附2024最新API调用参数)
  • 构建AI应用时如何借助Taotoken实现模型的灵活选型与降级
  • 《Linux系统编程》Linux基础开发工具 (三):从零实现动态进度条(附回车、换行与缓冲区详解)
  • TPU核心引擎的‘血管网络’:用RTL仿真动画可视化脉动阵列数据流
  • 顶尖销售都在读什么?这三本书揭示理解客户的奥秘
  • Rockchip设备USB通信协议解析:rkdeveloptool的3种高效调试模式实战指南