Skip to content

Commit ef4400c

Browse files
committed
feat: checkout new branch only when modifying files
1 parent 149ad7f commit ef4400c

1 file changed

Lines changed: 11 additions & 33 deletions

File tree

.ai-ready/rules/auto-create-branch-on-master.md

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,13 @@
11
# Auto Create Branch on Master/Main Rule
22

3-
当 agent 启动时,如果检测到当前分支是 master 或 main,需要先获取当前日期,根据用户的任务描述生成一个符合规范的分支名并切换到该分支
3+
当 agent 准备对 workspace 中的文件进行写操作时,如果检测到当前分支是 master 或 main,需要先获取当前日期,根据任务上下文生成一个符合规范的分支名并切换到该分支
44

55
## 触发条件
66

7-
当 agent 启动并检测到以下条件时
7+
仅当满足以下**所有条件**时触发分支创建
88
1. 当前目录是一个 git 仓库(存在 `.git` 目录)
99
2. 当前分支是 `master``main`
10-
3. 用户的初始输入包含**有意义的任务**(非闲聊)
11-
12-
### 闲聊识别
13-
14-
以下类型的输入被视为**闲聊**,不触发分支创建:
15-
16-
| 类型 | 示例 |
17-
|------|------|
18-
| 问候 | "Hello", "Hi", "Hey there" |
19-
| 天气询问 | "How is the weather today" |
20-
| 寒暄 | "How are you", "What's up" |
21-
| 无意义的输入 | "Test", "123", "???" |
22-
23-
**处理逻辑**
24-
1. 如果初始输入是闲聊,**不要**创建分支,保持当前 `master``main` 分支
25-
2. 继续与用户对话,等待用户首次提出**有意义的任务**
26-
3. 当用户提出有意义的任务时,立即执行分支创建流程
27-
28-
### 有意义的任务示例
29-
30-
| 任务描述 | 类型判断 |
31-
|----------|----------|
32-
| "帮我添加一个登录页面" | feat |
33-
| "修复用户注册的 bug" | fix |
34-
| "重构首页代码" | refactor |
35-
| "更新依赖包" | chore |
36-
| "给我解释一下这段代码" | 有意义但不需要切分支 |
10+
3. Agent 准备执行会对 workspace 文件进行**写操作**(如 Edit、Write、NotebookEdit)
3711

3812
## 执行步骤
3913

@@ -47,7 +21,7 @@ date +%y%m%d
4721

4822
### 2. 分析任务类型
4923

50-
根据用户提供的任务描述,判断任务类型:
24+
根据当前任务上下文,判断任务类型:
5125

5226
| 类型 | 说明 | 示例 |
5327
|------|------|------|
@@ -58,7 +32,7 @@ date +%y%m%d
5832

5933
### 3. 生成任务摘要
6034

61-
从用户的任务描述中提取关键词,生成简短的英文摘要(使用小写字母,单词之间用连字符分隔):
35+
从当前任务上下文中提取关键词,生成简短的英文摘要(使用小写字母,单词之间用连字符分隔):
6236

6337
- "帮我添加一个登录页面" → `add-login-page`
6438
- "修复用户注册时的验证错误" → `fix-user-registration-validation`
@@ -91,17 +65,21 @@ git checkout -b 260130-feat-add-login-page
9165

9266
## 完整示例
9367

94-
假设今天是 2026 年 2 月 3 日,用户的任务描述是:"帮我添加一个用户登录页面"
68+
假设今天是 2026 年 2 月 3 日,任务上下文是:"帮我添加一个用户登录页面"
69+
70+
当 Agent 准备执行 Edit/Write 操作修改文件时:
9571

9672
1. 获取日期:`260203`
9773
2. 判断类型:这是一个新功能开发,使用 `feat`
9874
3. 生成摘要:`add-login-page`
9975
4. 组合分支名:`260203-feat-add-login-page`
10076
5. 执行命令:`git checkout -b 260203-feat-add-login-page`
77+
6. 然后继续执行原有的写操作
10178

10279
## 注意事项
10380

104-
- 分支名生成后,需要向用户确认是否使用该分支名,或是否需要调整
81+
- **只在准备修改文件时才触发**:纯读操作(Read、Glob、Grep 等)不会触发分支创建
82+
- 分支名生成后,应直接执行分支创建,无需向用户确认(用户已通过任务描述表达了意图)
10583
- 如果用户明确要求在 master/main 分支上操作,则不需要创建新分支
10684
- 如果当前目录不是 git 仓库,或当前分支不是 master/main,则不需要执行此规则
10785
- 任务摘要的长度应控制在合理范围内,通常不超过 50 个字符

0 commit comments

Comments
 (0)