Skip to content

Commit 8afad63

Browse files
committed
Merge branch '3.5.x'
2 parents 424ded2 + 89c51bc commit 8afad63

File tree

11 files changed

+550
-29
lines changed

11 files changed

+550
-29
lines changed

.claude/README.md

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
# FIT Framework - Claude Code 配置
2+
3+
本目录包含 FIT Framework 项目的 Claude Code 配置文件。
4+
5+
## 📁 目录结构
6+
7+
```
8+
.claude/
9+
├── README.md # 本文件
10+
├── project-rules.md # 项目规则和规范(Claude 会自动遵循)
11+
└── commands/ # 自定义 Slash Commands
12+
├── pr.md # 创建 PR
13+
├── pr-update.md # 更新 PR 描述
14+
├── commit.md # 提交变更
15+
├── upgrade-dep.md # 升级依赖
16+
└── review.md # 审查 PR
17+
```
18+
19+
## 📋 项目规则
20+
21+
`project-rules.md` 文件定义了 Claude 在处理本项目时必须遵循的规则:
22+
23+
### 规则 1: 文件权限管理
24+
- 所有新建/修改的文件必须设置正确的所有者权限
25+
- 动态从 `pom.xml` 等参考文件获取权限信息
26+
- 避免硬编码用户名和用户组
27+
28+
### 规则 2: PR 提交规范
29+
- **必须**先读取 `.github/pull_request_template.md`
30+
- **必须**查看最近 3 个 merged PR 作为参考
31+
- PR 描述必须完整填写所有必填项
32+
- 结尾添加 Claude Code 签名
33+
34+
## 🚀 Slash Commands 使用指南
35+
36+
### 创建 Pull Request
37+
38+
```bash
39+
# 创建 PR 到默认分支(main)
40+
/pr
41+
42+
# 创建 PR 到 main 分支
43+
/pr main
44+
45+
# 创建 PR 到指定分支
46+
/pr develop
47+
```
48+
49+
**工作流程:**
50+
1. 自动读取 PR 模板
51+
2. 查看最近的 PR 示例
52+
3. 分析当前分支的变更
53+
4. 按模板格式创建 PR
54+
55+
### 更新现有 PR
56+
57+
```bash
58+
# 更新 PR #369 的描述
59+
/pr-update 369
60+
```
61+
62+
### 提交变更
63+
64+
```bash
65+
# 交互式提交(会询问提交信息)
66+
/commit
67+
68+
# 使用指定消息提交
69+
/commit "feat: add new feature"
70+
```
71+
72+
### 升级依赖
73+
74+
```bash
75+
# 升级 swagger-ui 从 5.30.0 到 5.30.2
76+
/upgrade-dep swagger-ui 5.30.0 5.30.2
77+
```
78+
79+
**自动化流程:**
80+
1. 创建功能分支
81+
2. 更新依赖文件
82+
3. 运行编译测试
83+
4. 提交变更
84+
5. 创建 PR
85+
86+
### 审查 PR
87+
88+
```bash
89+
# 审查 PR #369
90+
/review 369
91+
```
92+
93+
**审查内容:**
94+
- PR 标题和描述是否符合规范
95+
- 代码变更的合理性
96+
- 安全问题检查
97+
- 测试覆盖情况
98+
- 生成审查报告
99+
100+
## 🎯 最佳实践
101+
102+
### 1. 使用 Slash Commands
103+
优先使用自定义命令,而不是手动描述任务:
104+
-`/pr 3.5.x`
105+
- ❌ "请帮我创建一个PR到3.5.x分支"
106+
107+
### 2. PR 创建流程
108+
始终使用 `/pr` 命令,确保:
109+
- 自动遵循项目规范
110+
- 完整填写 PR 模板
111+
- 参考最近的 PR 格式
112+
113+
### 3. 依赖升级
114+
使用 `/upgrade-dep` 命令,自动化整个流程:
115+
- 创建分支
116+
- 更新文件
117+
- 测试验证
118+
- 提交并创建 PR
119+
120+
## 🔧 参数传递规则
121+
122+
Slash commands 支持参数,参数规则:
123+
124+
1. **单个参数**
125+
```bash
126+
/pr main
127+
```
128+
- `main` 是目标分支参数
129+
130+
2. **多个参数**
131+
```bash
132+
/upgrade-dep swagger-ui 5.30.0 5.30.2
133+
```
134+
- `swagger-ui` - 包名
135+
- `5.30.0` - 原版本
136+
- `5.30.2` - 新版本
137+
138+
3. **带空格的参数**
139+
```bash
140+
/commit "feat: add new feature"
141+
```
142+
- 使用引号包裹
143+
144+
## 📝 项目信息
145+
146+
- **项目名称**: FIT Framework
147+
- **主分支**: main
148+
- **开发分支**: 3.5.x
149+
- **仓库**: https://github.com/ModelEngine-Group/fit-framework
150+
151+
## 🔗 相关文件
152+
153+
- **PR 模板**: `.github/pull_request_template.md`
154+
- **贡献指南**: `CONTRIBUTING.md`
155+
- **项目规则**: `.claude/project-rules.md`
156+
157+
## ⚙️ 常用命令
158+
159+
```bash
160+
# 编译项目
161+
mvn clean install
162+
163+
# 快速编译(跳过测试)
164+
mvn -B clean package -Dmaven.test.skip=true
165+
166+
# 运行测试
167+
mvn test
168+
169+
# 启动应用
170+
./fit start
171+
172+
# 查看 Git 状态
173+
git status
174+
175+
# 查看 PR 列表
176+
gh pr list
177+
178+
# 查看某个 PR
179+
gh pr view 369
180+
```
181+
182+
## 🆘 故障排除
183+
184+
### 问题:Claude 没有遵循 PR 模板
185+
**解决方案**:使用 `/pr` 命令而不是手动描述
186+
187+
### 问题:PR 描述格式不对
188+
**解决方案**:使用 `/pr-update <pr-number>` 命令更新
189+
190+
### 问题:文件权限错误
191+
**解决方案**:已在 `project-rules.md` 中配置自动处理
192+
193+
### 问题:想要自定义命令
194+
**解决方案**:在 `.claude/commands/` 目录创建新的 `.md` 文件
195+
196+
## 📚 扩展阅读
197+
198+
- [Claude Code 文档](https://docs.claude.com/claude-code)
199+
- [Slash Commands 指南](https://docs.claude.com/claude-code/slash-commands)
200+
- [项目配置最佳实践](https://docs.claude.com/claude-code/project-setup)
201+
202+
---
203+
204+
**最后更新**: 2025-11-10
205+
**配置版本**: 1.0.0

.claude/commands/commit.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
提交当前变更到 Git。
2+
3+
**用法:**
4+
- `/commit` - 交互式提交(会询问提交信息)
5+
- `/commit <message>` - 直接提交并使用指定消息
6+
7+
**执行步骤:**
8+
9+
1. **查看当前变更**
10+
```
11+
git status
12+
git diff --stat
13+
```
14+
15+
2. **如果有未追踪的文件,询问用户是否添加**
16+
- 列出所有 untracked 文件
17+
- 排除 `.claude/` 目录
18+
- 让用户确认要添加哪些文件
19+
20+
3. **添加文件到暂存区**
21+
```
22+
git add <files>
23+
```
24+
25+
4. **创建提交**
26+
- 如果用户提供了消息,使用该消息
27+
- 如果没有消息,根据变更内容生成合适的提交消息
28+
- 提交消息格式遵循项目规范
29+
- 添加 Co-Authored-By 签名
30+
31+
```
32+
git commit -m "$(cat <<'EOF'
33+
<提交消息>
34+
35+
🤖 Generated with [Claude Code](https://claude.com/claude-code)
36+
37+
Co-Authored-By: Claude <[email protected]>
38+
EOF
39+
)"
40+
```
41+
42+
5. **显示提交结果**
43+
```
44+
git log -1 --stat
45+
git status
46+
```
47+
48+
**注意事项:**
49+
- 不要提交包含敏感信息的文件(.env, credentials 等)
50+
- 确保提交消息清晰描述了变更内容
51+
- 遵循项目的 commit message 规范

.claude/commands/pr-update.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
更新现有 Pull Request 的描述。
2+
3+
**用法:**
4+
- `/pr-update <pr-number>` - 更新指定PR的描述,使其符合模板规范
5+
6+
**执行步骤:**
7+
8+
1. **解析PR编号**
9+
- 从命令参数中提取 PR 编号:命令格式为 `/pr-update <number>`
10+
11+
2. **读取 PR 模板**(必须执行)
12+
```
13+
Read(".github/PULL_REQUEST_TEMPLATE.md")
14+
```
15+
16+
3. **查看最近 3 个 merged PR 作为参考**
17+
```
18+
gh pr list --limit 3 --state merged --json number,title,body
19+
```
20+
21+
4. **获取当前PR信息**
22+
```
23+
gh pr view <pr-number>
24+
```
25+
26+
5. **获取PR的变更内容**
27+
```
28+
gh pr diff <pr-number>
29+
```
30+
31+
6. **更新PR描述**
32+
- 按照 `.github/PULL_REQUEST_TEMPLATE.md` 格式重新编写
33+
- 参考最近的 PR 格式
34+
- 保留原有的有效信息
35+
- 补充缺失的部分
36+
- 使用 HEREDOC 格式更新
37+
38+
```
39+
gh pr edit <pr-number> --body "$(cat <<'EOF'
40+
<完整的PR描述>
41+
EOF
42+
)"
43+
```
44+
45+
**注意事项:**
46+
- 必须严格遵循 PR 模板格式
47+
- 保留原有PR中有价值的信息
48+
- 补充所有必填项
49+
- 结尾添加:`🤖 Generated with [Claude Code](https://claude.com/claude-code)`

.claude/commands/pr.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
创建 Pull Request。
2+
3+
**用法:**
4+
- `/pr` - 创建PR到默认分支 main
5+
- `/pr main` - 创建PR到 main 分支
6+
- `/pr <branch-name>` - 创建PR到指定分支
7+
8+
**执行步骤:**
9+
10+
1. **解析目标分支**
11+
- 如果用户提供了参数(如 `main`, `3.5.x`, `develop` 等),使用该参数作为目标分支
12+
- 如果没有参数,默认使用 `main` 作为目标分支
13+
- 从命令参数中提取分支名:命令格式为 `/pr <branch>`,参数部分即为分支名
14+
15+
2. **读取 PR 模板**(必须执行)
16+
```
17+
Read(".github/PULL_REQUEST_TEMPLATE.md")
18+
```
19+
20+
3. **查看最近 3 个 merged PR 作为参考**(必须执行)
21+
```
22+
gh pr list --limit 3 --state merged --json number,title,body
23+
```
24+
25+
4. **分析当前分支的完整变更**
26+
- 运行 `git status` 查看当前状态
27+
- 运行 `git log <target-branch>..HEAD --oneline` 查看所有提交
28+
- 运行 `git diff <target-branch>...HEAD --stat` 查看变更统计
29+
- 运行 `git diff <target-branch>...HEAD` 查看详细变更(如果需要)
30+
31+
5. **检查远程分支状态**
32+
```
33+
git rev-parse --abbrev-ref --symbolic-full-name @{u}
34+
```
35+
36+
6. **如果分支未推送,先推送**
37+
```
38+
git push -u origin <current-branch>
39+
```
40+
41+
7. **根据模板创建 PR**
42+
- 按照 `.github/PULL_REQUEST_TEMPLATE.md` 格式填写所有部分
43+
- 参考最近的 PR 格式和风格
44+
- 使用 HEREDOC 格式传递 body
45+
- PR 结尾必须添加:`🤖 Generated with [Claude Code](https://claude.com/claude-code)`
46+
47+
```
48+
gh pr create --base <target-branch> --title "<标题>" --body "$(cat <<'EOF'
49+
<完整的PR描述>
50+
EOF
51+
)"
52+
```
53+
54+
**注意事项:**
55+
- 必须严格遵循 PR 模板格式
56+
- 所有必填项都要填写完整
57+
- 参考最近的 merged PR 的格式和风格
58+
- 确保 PR 标题格式正确(如:`[模块名] 简短描述`

0 commit comments

Comments
 (0)