Cursor Rules 使用指南:从 global.rules 到 Project Rules 的配置实践
1. 为什么你的 Cursor 总写出“不像自己项目”的代码刚用 Cursor 那阵子我最常遇到的场景是这样的项目里明明统一用 4 空格缩进、接口层必须带 JSDoc 注释、状态管理只允许用 Zustand结果 AI 补全出来的代码偏偏用 2 空格、注释全靠// TODO、还顺手给我引了个 Redux Toolkit。每次都得手动改一遍改到最后我甚至怀疑——到底是我在用 AI还是 AI 在训练我给它擦屁股。这个问题的根源不在模型能力而在于 Cursor 默认不知道你项目的“潜规则”。它看到的是当前打开的文件片段看不到你团队沉淀在 README、ESLint 配置、代码评审意见里的那些约定。Cursor Rules 就是用来补这块信息的它是一组可配置的指令告诉 AI 在生成、修改、理解代码时应该遵守什么风格、什么边界、什么技术选型。具体来说Rules 能约束三类行为应该做什么比如“新增 API 路由必须写 Zod 校验”、不应该做什么比如“禁止在组件里直接调 fetch”、以及怎么做比如“日期统一用 dayjs不用 moment”。它适合个人开发者统一自己的编码习惯也适合团队把评审标准前置到 AI 生成阶段。而 Rules 本身是分层的这也是很多人配了却没生效的原因。你可能会在global.rules、User Rules、Project Rules 之间来回切换却搞不清谁覆盖谁。这篇就按“分层配置 可复制片段 验证是否生效”的顺序把 Cursor Rules 从 global.rules 到 Project Rules 的实践讲透顺带把团队协作里规则文件怎么组织也说清楚。2. Cursor Rules 分层配置global.rules、User Rules 与 Project Rules 的边界先把概念对齐。Cursor 的 Rules 不是单一文件而是按作用范围分成几个层级理解它们的边界比背语法重要得多。User Rules 是账号级的跟着你的 Cursor 账号走换项目也生效。它适合放“跨项目通用”的偏好比如“始终用中文回答”“解释代码时先给结论再给细节”“不要主动重构我没让你动的文件”。这类规则不该塞项目特有的东西否则换个项目就变成噪音。Project Rules 是项目级的存在项目目录里跟着 Git 走团队共享。它才是放框架约定、API 规范、目录结构约束的地方。Cursor 现在主推的是.cursor/rules/目录下的.mdc文件每个文件可以带 frontmatter 控制生效范围比如只对src/api/**生效。老项目里你可能还会看到根目录的.cursorrules单文件它仍然能用但组织能力弱团队协作时容易变成一坨。global.rules 这个概念在不同版本里表述不太一样本质上指的是“对所有项目生效的通用规则层”。在实际分层里我习惯把它理解成三层通用规则跨语言比如命名、注释、安全底线、语言规则针对 Go/Python/TS 等、框架规则针对 Next.js、React、FastAPI 等。User Rules 承载通用层Project Rules 承载语言层和框架层这样职责最清晰。优先级关系上越靠近项目的规则越具体应该覆盖越通用的规则。也就是说 Project Rules 里的框架规则 语言规则 User Rules 里的通用偏好。但要注意Cursor 不是严格的“后者覆盖前者”的配置合并而是把这些规则一起塞进上下文靠语义让模型判断。所以规则之间如果互相矛盾模型会摇摆。我的做法是通用层只写“不会和任何项目冲突”的底线具体风格全部下沉到 Project Rules避免打架。团队协作里规则文件的组织方式直接决定它会不会腐烂。我的建议是按“目录 职责”拆.mdc文件而不是写一个巨大的.cursorrules。比如00-base.mdc放通用底线10-typescript.mdc放语言规则20-nextjs.mdc放框架规则30-api.mdc用 globs 限定只对 API 目录生效。这样谁改哪块一目了然评审时也能单独讨论。3. 可复制配置.cursorrules 与 Project Rules 片段这一节直接给能抄的配置。先说过渡期的.cursorrules再说现在推荐的.cursor/rules/*.mdc。如果你项目还在用根目录单文件.cursorrules可以这样写注意它是纯文本不需要 frontmatter# 通用底线 - 始终用中文回答解释改动原因时先给结论。 - 不要主动重构未被要求的文件改动范围最小化。 - 新增依赖前必须先说明理由不要静默引入。 # TypeScript / React 约定 - 使用 2 空格缩进字符串统一双引号语句结尾带分号。 - 组件一律函数式 hooks禁止 class 组件。 - 状态管理统一用 Zustand禁止引入 Redux。 - 所有网络请求走 src/lib/request.ts 封装禁止组件内直接 fetch。 - 类型定义优先 interface联合类型用 type。 # API 层约定 - 新增接口必须写 Zod schema 做入参校验。 - 接口返回统一 { code, data, message } 结构。 - 错误处理用 try/catch 统一 logger禁止 console.log。但更推荐的是 Project Rules 目录方式。先建目录mkdir -p .cursor/rules然后写00-base.mdc这是通用底线alwaysApply: true表示始终注入--- description: 项目通用底线规则 alwaysApply: true --- - 始终用中文回答解释改动先给结论。 - 改动范围最小化不主动重构无关文件。 - 新增依赖前说明理由。再写10-typescript.mdc用 globs 限定只对 TS 文件生效--- description: TypeScript 与 React 编码约定 globs: [src/**/*.ts, src/**/*.tsx] alwaysApply: false --- - 2 空格缩进双引号语句结尾分号。 - 组件用函数式 hooks禁止 class 组件。 - 状态管理统一 Zustand禁止 Redux。 - 网络请求走 src/lib/request.ts禁止组件内直接 fetch。 - 类型优先 interface联合类型用 type。最后写30-api.mdc只对 API 目录生效把接口规范钉死--- description: API 层接口规范 globs: [src/api/**/*.ts] alwaysApply: false --- - 新增接口必须写 Zod schema 做入参校验。 - 返回统一 { code, data, message } 结构。 - 错误用 try/catch 统一 logger禁止 console.log。 - 每个导出函数必须有 JSDoc说明参数与返回。这里有个关键点globs写对了规则才会在对应文件被打开时注入。alwaysApply: true的规则会一直占用上下文所以只放真正全局的底线别把框架细节塞进去否则上下文被稀释模型反而抓不住重点。如果你用的是 Cursor 的图形界面User Rules 在 Settings 里配置直接粘贴通用偏好即可比如“始终用中文回答”“不要主动重构”。它和 Project Rules 是叠加关系不是替代关系。4. 验证规则是否生效具体操作步骤与成功结果配完不验证等于没配。下面是我实测下来比较靠谱的验证流程。第一步确认规则文件被识别。在 Cursor 里打开 Chat输入看看能不能引用到规则文件或者打开 Settings 的 Rules 面板Project Rules 应该列出你.cursor/rules/下的所有.mdc。如果没列出来多半是目录层级不对——.cursor/rules/必须在项目根目录不能嵌套在src里。第二步做一次“对抗性测试”。故意让 AI 生成一段违反规则的代码看它会不会被拉回来。比如在src/api/user.ts里输入帮我写一个获取用户列表的接口函数如果30-api.mdc生效它应该输出带 Zod 校验、返回{ code, data, message }、带 JSDoc 的代码。如果它直接给你一个裸fetch加console.log说明规则没注入。第三步验证 globs 的边界。在src/components/UserList.tsx里输入同样的请求这次30-api.mdc不该生效因为 globs 只匹配src/api/**但10-typescript.mdc应该生效输出应该是函数式组件、Zustand、走封装请求。如果 API 规则也跑进来了说明你的 globs 写宽了。第四步看 Cursor 的规则命中提示。新版 Cursor 在 Chat 回复上方会显示本次引用了哪些 Rules点开能看到具体文件。这是最直接的证据。如果列表里没有你期望的规则回去检查alwaysApply和globs。成功的结果长这样你在 API 目录里让 AI 加接口它自动带上 Zod schema 和统一返回结构你在组件目录里让它加交互它自动用 Zustand 而不是useState堆状态你让它解释代码它用中文先给结论。这时候规则才算真正落地。5. 常见报错排查401、local proxy failed 与规则不生效规则配好了但请求层面也可能出问题。下面是我踩过的几类。第一类401 Unauthorized。这通常和 Rules 无关而是模型请求的鉴权失败。如果你是通过 API 方式接入模型检查 Key 是否过期、Base URL 是否写对。用 TaoToken 这类统一入口时Base URL 填https://taotoken.net/apiKey 在控制台的 API Keys 页面生成。401 出现时先确认 Key 有没有多余空格再确认请求头是不是Authorization: Bearer key。第二类local proxy failed或连接超时。这类报错多半是本地网络到接口端点的链路问题不是 Rules 语法问题。先确认 Base URL 可达再确认没有把端点写成带路径的完整 URL有些客户端要求 Base URL 不带/v1由客户端自己拼。如果你在 Cursor 里配的是自定义模型端点检查 Settings 里的 Override OpenAI Base URL 是否和文档一致。第三类规则“看起来配了但不生效”。这是最高频的。排查顺序先看.cursor/rules/是否在项目根目录再看.mdc的 frontmatter 有没有写错globs是数组还是字符串必须是数组再看alwaysApply是不是全设成了false导致没有任何规则常驻最后看规则之间有没有互相矛盾比如 User Rules 说“用单引号”Project Rules 说“用双引号”模型就会随机选。第四类reading choices之类的解析报错。这通常是接口返回结构和你客户端预期不一致比如你用了 OpenAI 兼容格式但端点返回了别的结构。确认 Base URL 和模型 ID 匹配模型 ID 要填端点实际支持的名称别自己编。如果你在 Cursor 里接的是 Claude Code 或 Codex 这类编码 Agent配置要写全三件套Base URL、Key、Model ID。缺一个都会导致请求失败或规则不加载。Base URL 用https://taotoken.net/apiKey 用控制台生成的Model ID 按文档里列出的填。三件套对齐后再回头看 Rules 是否生效才有意义。6. 把 Rules 接进你的日常编码流规则配完不是终点怎么让它持续有用才是。我的做法是把 Rules 当成代码评审的前置层每次评审发现 AI 反复犯的错就补一条到对应的.mdc里而不是只在评审里说一次。这样规则库会跟着项目一起长。团队协作上.cursor/rules/一定要进 Git并且在 PR 里像评审代码一样评审规则改动。谁加的规则、为什么加、影响哪些目录都写清楚。避免有人往00-base.mdc里塞框架细节那会污染所有项目文件。另外规则不是越多越好。上下文是有预算的alwaysApply: true的规则每条都在消耗预算。我的经验是常驻规则控制在 5 条以内其余全部用globs按需注入。这样模型在具体文件里能拿到最相关的约束而不是被一堆无关规则干扰。如果你还没开始配建议从00-base.mdc加一条“改动范围最小化”开始先感受规则生效带来的差异再逐步下沉语言和框架规则。需要生成 Key 或查看接入文档时可以从 API Keys 页面和接入文档入手想先验证模型对话效果用模型对话页面试几轮如果是长期编码或 Agent 场景直接上 Coding Plan 更省心。规则调顺之后你会发现 Cursor 的输出终于开始像“你写的代码”了。

相关新闻

OpenCV+MediaPipe+CNN手势识别控制鼠标:原理实战与避坑

OpenCV+MediaPipe+CNN手势识别控制鼠标:原理实战与避坑

简介:一份基于OpenCV、Mediapipe与CNN的手势识别鼠标控制完整项目包,主要面向有一定Python基础、希望学习计算机视觉与深度学习结合的开发者。项目利用摄像头采集视频流,经Mediapipe完成手部关键点检测与追踪,再由CNN模型识别手势…

2026/10/10 15:36:29 阅读更多 →
数据库小型MIS开发实验:从需求分析到事务处理的完整链路

数据库小型MIS开发实验:从需求分析到事务处理的完整链路

简介:这份南京邮电大学数据库系统小型MIS开发实验报告,面向计算机、软件工程等专业修读数据库课程的学生,以及需要完成课程设计或实验任务的开发者。报告围绕航班信息、飞机信息、乘客信息和机票信息四类数据,完整呈现从建库建表、…

2026/10/11 10:49:02 阅读更多 →
SQL Server各版本下载地址全解析:从选型到离线部署避坑指南

SQL Server各版本下载地址全解析:从选型到离线部署避坑指南

简介:SQL Server数据库各版本下载地址集合,面向需要安装、部署或维护SQL Server的开发人员与运维人员。资料以PDF文档形式整理,集中收录从SQL Server 2000到2019的企业版、开发版、标准版下载链接,并附SP1、SP3、SP4等补丁地址&am…

2026/10/11 16:35:47 阅读更多 →

最新新闻

Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

Vibe Coding 的边界:从“70% 问题“到“80% 墙“,AI 编程五大局限性与人机分工深度解析

文档教程Vibe Coding示例工程 【免费下载链接】vibe-vibe The First Systematic Vibe Coding Open-Source Tutorial | From Zero to Full-Stack, Empowering Everyone to Build Products with AI | Live at: www.vibevibe.cn ;首个系统化 Vibe Coding 开源教程 | 零…

2026/10/12 0:53:26 阅读更多 →
不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的“非模拟器魔法“:relinker重链接+PRX库+RDNA到SPIR-V

不用模拟器也能玩PS5游戏?拆解AnyPS5的"非模拟器魔法":relinker重链接PRX库RDNA到SPIR-V 【免费下载链接】AnyPS5 Tool for automatic PS5 executables porting to Linux and Windows 项目地址: https://gitcode.com/GitHub_Trending/an/Any…

2026/10/12 0:53:26 阅读更多 →
基于A星算法的无人机三维路径规划Matlab实现与优化

基于A星算法的无人机三维路径规划Matlab实现与优化

做无人机的人基本都绕不开路径规划这道坎。“基于A星算法的无人机三维路径规划算法研究(Matlab代码实现)” 这个题目看着规整,但真正落地的时候,坑比想象的多:地图怎么建、邻居节点怎么扩展、启发函数怎么写才能既快又…

2026/10/12 0:51:25 阅读更多 →
VS Code 中直接使用 Codex 教程及连接失败解决方案:TaoToken 统一 Key 接入与排错实录

VS Code 中直接使用 Codex 教程及连接失败解决方案:TaoToken 统一 Key 接入与排错实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:50:24 阅读更多 →
企业 Agent 提示词注入防御实战:双重护栏与对抗语义检测

企业 Agent 提示词注入防御实战:双重护栏与对抗语义检测

在企业将多智能体(Multi-Agent)系统接入客服咨询、内部知识检索或自动化办公流后,安全攻防的对抗维度发生了一场根本性范式转移:传统的 SQL 注入或跨站脚本攻击(XSS)正在退居二线,而以自然语言为…

2026/10/12 0:47:23 阅读更多 →
Cursor怎么使用:3分钟上手Cursor键盘快捷键速查,用TaoToken统一Key接入GPT4与Claude 3.5辅助编程

Cursor怎么使用:3分钟上手Cursor键盘快捷键速查,用TaoToken统一Key接入GPT4与Claude 3.5辅助编程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 0:46:23 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →