你的 Cursor 还在满天改 Prompt?99%的人不知道.project-rules文件才是王炸
昨晚我盯着 Cursor 的 AI 助手生成了一堆「default export」组件,差点把键盘砸了。 我花了 3 分钟写了一个 .cursorrules 文件。第二天,同样的项目,AI 生成代码的正确率从 60% 飙升到 90%——不用改一行 Prompt。 这不是什么高级技巧。但凡认真研究过 awesome-cursorrules 这个 GitHub 项目(3.9 万 Star)的人都知道:这玩意儿被严重低估了。 你大概是这样写的: # .cursorrules 使用 TypeScript 用 React 组件要有类型定义 然后抱怨 AI 完全不听。 问题在于:你写的是描述,不是指令。 AI 读「要有类型定义」和读「interface ButtonProps { label: string; onClick: () => void; }」是完全不同的理解深度。 来自 awesome-cursorrules 社区最受欢迎的规则格式——决策树 + 示例代码: # .cursorrules ## React 组件规范 生成组件时: 1. 必须用命名导出(禁止 default export) 2. Props 接口必须写在组件上方 3. 事件处理用 useCallback 包装(除非在 deps 数组中直接使用) 4. 样式用 Tailwind,不用 inline style ## 正确示例 typescript export const Card: React.FC = ({ title, onClose }) => { return ( {title} // ❌ 错误:default export、无类型、使用普通函数 {title}X 有了这个示例,AI 每次生成 React 组件时都会「照着抄」,正确率立竿见影。 ## 技巧二:多语言 Monorepo 项目如何让 AI 自动切换上下文 很多团队用 monorepo 管理工作台(Next.js)、后端服务(Python FastAPI)、基础设施(Go)。 在项目根目录放一个 `.cursorrules`,分别定义各语言的编码规范: markdown 前端 TypeScript (apps/web/):严格模式、禁止 any、必须有返回类型 Python 服务 (services/*/app/):必须有类型提示、用 pytest、统一用 Black 格式化 Go 基础设施 (infra/*/):错误必须用 %w 包装、必须传递 context 不同语言冲突时,语言专属规则优先。 这样 AI 在同一段对话里切换 TypeScript/Python/Go 时,会自动遵循各自的规则,不用你每次都重新提醒它。 ## 技巧三:把 ESLint 规则「喂给」AI,从源头减少报错 这是 awesome-cursorrules 里最实用的技巧之一——**把代码规范写进 AI 生成流水线**: markdown 禁止 console.log(统一用结构化日志器 logger) 禁止同步 fetch(必须用 async/await + try/catch) 禁止修改函数参数 所有外部 API 调用必须设置 timeout(默认 5000ms) 所有异步操作必须加错误边界 不用 ! 非空断言(用显式 null 检查替代) 禁止 @ts-ignore(除非加注释说明原因) 不确定类型时优先用 unknown 而不是 any 这样做的好处是:**AI 第一次生成的代码就能通过 lint,不是一遍遍让它修 bug。** ## 技巧四:长对话的「上下文压缩协议」,防止 AI 失忆 对话一长,AI 开始「忘记」之前的约定。解决方案来自社区贡献的上下文管理规则: markdown 当上下文使用超过 70% 时: 在文件顶部添加「变更日志」注释块,总结近期的改动 删除冗余注释和重复的类型定义 只保留当前函数及其直接依赖 在文件头部标注:// Context summary: ... 这个规则让 AI 在长对话里也能保持一致性,不会写着写着突然「失忆」。 ## 技巧五:把团队潜规则编码进去,换人也不怕 比技术技巧更重要的:**`.cursorrules` 能让团队的「潜规则」永久化。** markdown 分支命名:类型/工单号-描述(如 feat/PROJ-123-用户登录) Commit 格式:类型(范围): 描述(Angular 风格) PR 必须包含:做了什么、为什么做、怎么测试 合入 main 必须至少 1 人 review 通过 新功能必须用 Feature Flag 灰度 数据库迁移:必须先向后兼容,再发版 任何迁移操作必须附回滚方案 不管谁接手项目,AI 都记得你的规范。新人 onboarding 时间直接减半。 ## 数据说明一切 - [awesome-cursorrules](https://github.com/PatrickJS/awesome-cursorrules) GitHub:**39,194 Star**,3,336 Fork - [Cursor 官方仓库](https://github.com/cursor/cursor):**32,679 Star** - 近期热点:SpaceX 有权以 600 亿美元收购 Cursor 的消息([Reuters 报道](https://www.reuters.com/technology/spacex-says-it-has-option-acquire-startup-cursor-60-billion-2026-04-21/))引爆 Hacker News,162 票热评 - Reddit r/artificial 上关于 AI 代码编辑器的讨论量同比上涨 47% ## 5 分钟快速上手 bash touch .cursorrules cat > .cursorrules << 'EOF' 所有文件使用 Prettier 格式化 单行最大长度:100 字符 禁止 console.log,统一使用 logger 禁止 any,必须显式标注类型 所有函数必须有返回类型 EOF 就这么简单。配置一次,受益无穷——每个新的 AI 对话窗口都会自动读取这个文件。 --- **你有什么独家的 .cursorrules 规则?评论区见,我来整理成社区最佳实践合集。** **数据来源:** - [awesome-cursorrules GitHub](https://github.com/PatrickJS/awesome-cursorrules)(39K Star) - [Cursor GitHub](https://github.com/cursor/cursor)(32K Star) - [Reddit r/artificial: Cursor 热门讨论](https://www.reddit.com/r/artificial/) - [Reddit r/programming: TypeScript 7.0 Beta 发布](https://www.reddit.com/r/programming/comments/1srwby3/announcing_typescript_70_beta/) - [Hacker News: SpaceX/Cursor 600亿美元收购案](https://news.ycombinator.com/)
