跳到主要内容

在 Cursor 中使用 YOLO 模式进行快速迭代

Cursor YOLO Mode

Cursor 中的 YOLO 模式(You Only Live Once)会自动接受所有 AI 生成的差异和更改,无需为每个更改手动批准。这大大加快了重复性任务和可信工作流程的速度,但也带来了风险。本指南介绍如何安全有效地使用 YOLO 模式。

什么是 YOLO 模式?​

YOLO 模式启用:

  • 自动接受差异 - AI 更改立即应用
  • 更快的迭代 - 无需为每个更改点击"接受"
  • 批量操作 - 按顺序应用多个更改
  • 减少摩擦 - 更长时间保持心流状态

何时使用 YOLO 模式​

良好的使用场景​

场景为什么 YOLO 适用
添加 JSDoc 注释低风险,可预测
重命名变量易于通过搜索验证
格式化代码安全,可撤销
添加类型编译器捕获错误
重构导入IDE 高亮显示问题
编写测试测试运行器验证
更新配置文件通常简单明了

避免 YOLO 的场景​

场景风险等级
认证更改严重
数据库迁移严重
支付处理严重
API 合约更改高
大型架构更改高
生产部署严重
删除文件高

启用 YOLO 模式​

方法 1:设置​

{
"cursor.yoloMode": true,
"cursor.autoAcceptDiffs": true,
"cursor.autoApplyChanges": true
}

方法 2:命令面板​

  1. 按 Cmd/Ctrl + Shift + P
  2. 输入 "YOLO Mode"
  3. 选择 切换 YOLO 模式

方法 3:聊天命令​

/yolo

或:

为此会话启用 YOLO 模式

方法 4:键盘快捷键​

// keybindings.json
{
"key": "cmd+shift+y",
"command": "cursor.toggleYoloMode"
}

YOLO 模式配置​

安全 YOLO 设置​

{
"cursor.yoloMode": true,
"cursor.autoAcceptDiffs": true,

// 安全限制
"cursor.yolo.maxFilesPerSession": 20,
"cursor.yolo.maxLinesChanged": 500,
"cursor.yolo.requireTestsPass": true,
"cursor.yolo.excludePatterns": [
"src/auth/**",
"src/payment/**",
"src/database/migrations/**",
"**/*.env*",
"config/production/**"
],

// 自动保存设置
"cursor.yolo.autoSaveBeforeApply": true,
"cursor.yolo.createGitCheckpoint": true
}

按项目 YOLO​

创建 .cursor/yolo-config.json:

{
"enabled": true,
"safePatterns": [
"src/components/**/*.tsx",
"src/hooks/**/*.ts",
"src/utils/**/*.ts",
"tests/**/*.ts"
],
"unsafePatterns": [
"src/auth/**",
"src/api/**",
"src/database/**"
],
"maxChangesPerFile": 50,
"requireReviewFor": [
"*.config.*",
"*.env*",
"Dockerfile"
]
}

安全 YOLO 工作流程​

工作流程 1:文档冲刺​

[YOLO ON] 为 src/utils/ 中的所有函数添加 JSDoc 注释
遵循 src/utils/helpers.ts 中的现有样式

预期:15-20 个文件被修改,所有注释已添加 验证:抽查几个文件

工作流程 2:TypeScript 迁移​

[YOLO ON] 为 src/components/ 添加 TypeScript 类型
使用 src/types/ 中的接口
保持现有运行时行为

预期:类型已添加,无逻辑更改 验证:运行 tsc --noEmit

工作流程 3:测试生成​

[YOLO ON] 为 src/services/user.ts 编写单元测试
遵循 tests/services/auth.test.ts 中的模式
覆盖所有公共方法

预期:创建新的测试文件 验证:使用 npm test 运行测试

工作流程 4:导入清理​

[YOLO ON] 整理 src/pages/ 中的导入
分组:React、外部库、内部、类型
移除未使用的导入

预期:干净的导入,无功能更改 验证:应用仍然构建

安全措施​

1. Git 检查点​

始终在 YOLO 之前创建检查点:

# 创建 YOLO 检查点分支
git checkout -b yolo/task-name

# 提交当前状态
git add -A && git commit -m "checkpoint: before YOLO session"

2. YOLO 后审查​

YOLO 会话后:

# 审查所有更改
git diff

# 检查更改的文件
git diff --stat

# 运行测试
npm test

# 如果有问题,回退
git checkout -- .

3. 带测试的 YOLO​

配置为仅在测试通过时才 YOLO:

{
"cursor.yolo.requireTestsPass": true,
"cursor.yolo.testCommand": "npm test",
"cursor.yolo.stopOnTestFailure": true
}

4. 文件大小限制​

{
"cursor.yolo.maxFileSizeKB": 100,
"cursor.yolo.maxFilesPerChange": 10,
"cursor.yolo.maxLinesPerFile": 200
}

YOLO 模式命令​

聊天命令​

命令操作
/yolo on启用 YOLO 模式
/yolo off禁用 YOLO 模式
/yolo status检查 YOLO 状态
/yolo safe仅对安全模式使用 YOLO
/yolo full完全 YOLO(所有文件)

会话命令​

[yolo on] 为所有 API 端点添加错误处理
[yolo safe] 将组件 props 重构为使用接口
[yolo off] 等等,让我先审查最后一个更改

衡量 YOLO 效果​

跟踪这些指标:

指标不使用 YOLO使用 YOLO
每个任务的时间15-30 分钟5-10 分钟
每次更改的点击次数3-50
上下文切换高低
错误率低略高
回退率低5-10%

团队 YOLO 指南​

团队何时应使用 YOLO​

  • 代码风格更新
  • 文档改进
  • 添加类型
  • 重构内部工具
  • 编写测试

何时禁止使用 YOLO​

  • 生产热修复
  • 安全相关更改
  • 数据库架构更改
  • API 版本更改
  • 配置更改

YOLO 更改的 PR 模板​

## YOLO 会话

### 任务
[描述 YOLO 会话做了什么]

### 更改的文件
- [x] 所有更改已审查
- [x] 测试通过
- [x] 未修改敏感文件

### 验证
- [x] 已完成手动抽查
- [x] 自动化测试通过
- [x] 未检测到回归

### 回退
```bash
git revert HEAD

## YOLO 模式 + 其他功能

### YOLO + 后台代理

[Background, YOLO ON] 为 src/models/ 中的所有文件添加类型


### YOLO + 自定义模式

```json
{
"name": "Safe YOLO",
"systemPrompt": "You are in YOLO mode but with safety constraints. Only modify: .tsx components, .ts utilities, and tests. Never modify: auth, payment, or database files. Always add types, never remove them.",
"tools": {
"write": true,
"edit": true
}
}

YOLO + 计划模式​

[PLAN MODE] 计划重构
[Review plan]
[YOLO ON] 执行已批准的计划

常见 YOLO 陷阱​

陷阱预防
对错误的文件使用 YOLO使用 excludePatterns
更改过多设置 maxFilesPerSession
破坏性更改要求测试通过
失去跟踪创建 git 检查点
安全问题排除 auth/payment 文件

快速 YOLO 安全检查清单​

在开始 YOLO 会话之前:

  • 创建了 git 检查点分支
  • 审查了 YOLO 配置
  • 确认任务对 YOLO 是安全的
  • 排除了敏感目录
  • 之后可以运行测试
  • 回退计划已准备就绪

YOLO 会话后:

  • 使用 git diff 审查差异
  • 运行了测试
  • 抽查了关键文件
  • 已提交或已回退

相关资源​