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,但这些文件得你自己写。问题是:
- 手写费时 —— 把项目里所有封装、规范、命名约定整理成 Markdown,是个枯燥的活
- 容易过期 —— 项目演进后你忘了同步更新规则文件
- 多工具维护 —— 团队里有人用 Claude Code、有人用 Cursor、有人用 Copilot,每个工具要单独写一份
- 覆盖不全 —— 你写的规则只覆盖"显性"约定,"隐性"约定(比如某种页面的标准结构)AI 还是不知道
所以痛点的本质是:AI 工具缺少一个"项目自动分析 + 规则生成"的环节。
三、mirrorai:让 AI 镜像你的项目,而不是创造它自己的风格
mirrorai 是一个开源 npm 工具,专门解决这个问题。它的核心动作很简单:
分析你的存量代码 → 提取项目高频模式 → 自动生成多 AI 工具的规范文件
一行命令安装:
npx mirrorai install
然后在 AI 工具里跑 /mirror-init,它会:
- 扫描你的项目(package.json、go.mod、pyproject.toml 等任意清单文件)识别技术栈
- 分析目录结构、核心抽象、基础设施
- 扫描所有业务文件,按业务单元类型聚类
- 评分筛选出真正高频的模式(出现 ≥ 3 次、单文件 ≥ 50 行、相似度 ≥ 80%)
- 生成你选择的 AI 工具规范文件
- 可选生成 plopfile.js 和模板,用于零 token 本地生成骨架代码
支持的 AI 工具
| AI 工具 | 生成的规范文件 |
|---|---|
| Claude Code | CLAUDE.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>、useFetch、BaseRepository 这些抽象层,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 mirrorai install
这会把一个 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-chart、new-dashboard - ETL 工具会生成
new-pipeline、new-task - 后台管理可能是
new-list、new-form
命名贴合你的业务,而不是套用通用名。
重新运行不会覆盖你的内容
每个 mirrorai 生成的文件都会带一个 marker(<!-- mirrorai:generated -->)。再次运行时如果发现某个规则文件没有这个 marker,会单独询问你:合并、覆盖、还是跳过。绝不静默破坏你的自定义内容。
生成结果有完整的验证流程
生成 plopfile 和模板后会自动执行:
- 语法检查 ——
node --check - 加载检查 ——
npx plop --help - Trial-run —— 用临时模块名跑每个 generator
- 产物语法检查 —— 按项目语言验证
- 语义对比 —— 与提取来源样本对比 import、核心抽象引用、结构段落
- 清理临时文件
- 失败分级处理 —— 单个 generator 失败会被移除,不影响整体流程
七、与其他方案的对比
| 方案 | 是否分析项目 | 多工具支持 | 维护成本 | token 消耗 |
|---|---|---|---|---|
| 手写 CLAUDE.md | ❌ | 单工具 | 高 | 中 |
| GitHub 模板仓库 | ❌ | 单工具 | 中 | 高 |
| Cursor Rules 市场模板 | ❌ | 仅 Cursor | 低 | 高 |
| mirrorai | ✅ 完整分析 | ✅ 5 个工具 | ✅ 极低 | ✅ 极低 |
mirrorai 的独特价值在于:它不是模板库,而是项目分析器。模板库给你"通用 React 项目"的规则,mirrorai 给你"你这个项目"的规则。
八、技术栈与开源信息
- GitHub:github.com/joygqz/mirrorai
- npm:
npx 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 mirrorai install
然后在 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 代码规范、前端工程化、开源工具
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)