项目结构调整
This commit is contained in:
450
ARCHIVE_USAGE_GUIDE.md
Normal file
450
ARCHIVE_USAGE_GUIDE.md
Normal file
@@ -0,0 +1,450 @@
|
||||
# 自动归档配置使用指南
|
||||
|
||||
本文档说明如何使用项目的自动归档配置和辅助脚本。
|
||||
|
||||
---
|
||||
|
||||
## 配置文件
|
||||
|
||||
### `.claude/file_organization.json`
|
||||
|
||||
这是主配置文件,定义了项目的文件组织规则,包括:
|
||||
|
||||
- **目录结构定义**: 归档目录、文档目录、源码目录的路径和用途
|
||||
- **文件类型规则**: 不同文件扩展名的默认存放位置
|
||||
- **命名规范**: Bug修复、功能更新、版本发布的命名模板
|
||||
- **工作流规则**: 各类归档的标准流程
|
||||
- **自动分类规则**: 根据关键词自动识别归档类型
|
||||
- **模板路径**: 文档模板的位置
|
||||
- **脚本路径**: 辅助脚本的位置
|
||||
|
||||
### 配置加载
|
||||
|
||||
配置文件会被以下工具自动读取:
|
||||
- Claude Code AI (自动识别文件组织规则)
|
||||
- 辅助脚本 (使用配置生成归档)
|
||||
|
||||
---
|
||||
|
||||
## 文档模板
|
||||
|
||||
模板位置: `.claude/templates/`
|
||||
|
||||
### 1. `bug_fix_template.md`
|
||||
Bug修复文档模板,包含以下占位符:
|
||||
- `{{BUG_DESCRIPTION}}` - Bug描述
|
||||
- `{{DATE}}` - 日期
|
||||
- `{{AUTHOR}}` - 作者
|
||||
- `{{COMMIT_HASH}}` - Git提交哈希
|
||||
- `{{FILE_PATH}}` - 文件路径
|
||||
- 等等...
|
||||
|
||||
### 2. `feature_update_template.md`
|
||||
功能更新文档模板,包含以下占位符:
|
||||
- `{{FEATURE_NAME}}` - 功能名称
|
||||
- `{{DATE}}` - 日期
|
||||
- `{{AUTHOR}}` - 开发者
|
||||
- `{{COMMIT_HASH}}` - Git提交哈希
|
||||
- 等等...
|
||||
|
||||
### 3. `release_notes_template.md`
|
||||
版本发布说明模板,包含以下占位符:
|
||||
- `{{VERSION}}` - 版本号
|
||||
- `{{RELEASE_DATE}}` - 发布日期
|
||||
- `{{RELEASE_TYPE}}` - 发布类型
|
||||
- `{{COMMIT_COUNT}}` - 提交数量
|
||||
- 等等...
|
||||
|
||||
---
|
||||
|
||||
## 辅助脚本
|
||||
|
||||
脚本位置: `scripts/`
|
||||
|
||||
### 1. Bug修复归档脚本
|
||||
|
||||
**脚本**: `scripts/archive_bug_fix.sh`
|
||||
|
||||
**功能**:
|
||||
- 自动创建Bug修复归档目录结构
|
||||
- 生成Bug修复文档
|
||||
- 复制文档到快速查阅目录
|
||||
|
||||
**使用方法**:
|
||||
```bash
|
||||
# 基本用法
|
||||
./scripts/archive_bug_fix.sh <bug名称>
|
||||
|
||||
# 指定作者
|
||||
./scripts/archive_bug_fix.sh <bug名称> "作者名称"
|
||||
|
||||
# 示例
|
||||
./scripts/archive_bug_fix.sh path_tracking_error
|
||||
./scripts/archive_bug_fix.sh csv_load_issue "张三"
|
||||
```
|
||||
|
||||
**执行流程**:
|
||||
1. 验证是否在项目根目录
|
||||
2. 创建归档目录: `archives/bug_fixes/YYYYMMDD_<bug名称>/`
|
||||
3. 创建子目录: `code/`, `docs/`, `tests/`
|
||||
4. 从模板生成文档并替换占位符
|
||||
5. 复制文档到 `docs/fixes/` 供快速查阅
|
||||
6. 显示下一步操作提示
|
||||
|
||||
**创建的目录结构**:
|
||||
```
|
||||
archives/bug_fixes/20251115_path_tracking_error/
|
||||
├── code/ # 存放修复的代码文件
|
||||
├── docs/ # 存放详细文档
|
||||
│ └── BUG_path_tracking_error_20251115.md
|
||||
└── tests/ # 存放测试文件
|
||||
|
||||
docs/fixes/ # 文档快速查阅副本
|
||||
└── BUG_path_tracking_error_20251115.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. 功能更新归档脚本
|
||||
|
||||
**脚本**: `scripts/archive_feature.sh`
|
||||
|
||||
**功能**:
|
||||
- 自动创建功能更新归档目录结构
|
||||
- 生成功能更新文档
|
||||
- 复制文档到快速查阅目录
|
||||
|
||||
**使用方法**:
|
||||
```bash
|
||||
# 基本用法
|
||||
./scripts/archive_feature.sh <功能名称>
|
||||
|
||||
# 指定开发者
|
||||
./scripts/archive_feature.sh <功能名称> "开发者名称"
|
||||
|
||||
# 示例
|
||||
./scripts/archive_feature.sh adaptive_lookahead
|
||||
./scripts/archive_feature.sh dynamic_obstacle_avoidance "李四"
|
||||
```
|
||||
|
||||
**执行流程**:
|
||||
1. 验证是否在项目根目录
|
||||
2. 创建归档目录: `archives/updates/YYYYMMDD_<功能名称>/`
|
||||
3. 创建子目录: `code/`, `docs/`, `tests/`
|
||||
4. 从模板生成文档并替换占位符
|
||||
5. 复制文档到 `docs/updates/` 供快速查阅
|
||||
6. 显示下一步操作提示
|
||||
|
||||
**创建的目录结构**:
|
||||
```
|
||||
archives/updates/20251115_adaptive_lookahead/
|
||||
├── code/ # 存放新增/修改的代码
|
||||
├── docs/ # 存放详细文档
|
||||
│ └── UPDATE_adaptive_lookahead_20251115.md
|
||||
└── tests/ # 存放测试文件
|
||||
|
||||
docs/updates/ # 文档快速查阅副本
|
||||
└── UPDATE_adaptive_lookahead_20251115.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 版本发布脚本
|
||||
|
||||
**脚本**: `scripts/create_release.sh`
|
||||
|
||||
**功能**:
|
||||
- 创建版本归档目录
|
||||
- 生成Release Notes
|
||||
- 创建Git Tag
|
||||
- 可选备份完整代码
|
||||
|
||||
**使用方法**:
|
||||
```bash
|
||||
# 基本用法
|
||||
./scripts/create_release.sh <版本号>
|
||||
|
||||
# 指定发布类型
|
||||
./scripts/create_release.sh <版本号> <Major|Minor|Patch>
|
||||
|
||||
# 示例
|
||||
./scripts/create_release.sh 1.2.0
|
||||
./scripts/create_release.sh 2.0.0 Major
|
||||
./scripts/create_release.sh 1.2.1 Patch
|
||||
```
|
||||
|
||||
**版本号格式**: X.Y.Z
|
||||
- **X** (Major): 重大版本,可能包含不兼容的API变更
|
||||
- **Y** (Minor): 次要版本,新增功能但向后兼容
|
||||
- **Z** (Patch): 补丁版本,仅bug修复
|
||||
|
||||
**执行流程**:
|
||||
1. 验证版本号格式和git仓库
|
||||
2. 确定发布类型 (自动或手动指定)
|
||||
3. 创建版本目录: `archives/versions/vX.Y.Z/`
|
||||
4. 统计提交和文件变更
|
||||
5. 生成Release Notes
|
||||
6. 创建Git Tag
|
||||
7. 可选:备份源码到归档目录
|
||||
8. 显示推送tag的命令
|
||||
|
||||
**创建的目录结构**:
|
||||
```
|
||||
archives/versions/v1.2.0/
|
||||
├── release_notes.md # 版本发布说明
|
||||
└── backup/ # 可选:完整代码备份
|
||||
└── source_code.tar.gz
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完整工作流程
|
||||
|
||||
### Bug修复流程
|
||||
|
||||
1. **在主代码目录修复bug**
|
||||
```bash
|
||||
vim src/path_tracker.cpp
|
||||
# 修复bug...
|
||||
```
|
||||
|
||||
2. **提交git**
|
||||
```bash
|
||||
git add src/path_tracker.cpp
|
||||
git commit -m "fix: 修复路径跟踪误差累积问题"
|
||||
```
|
||||
|
||||
3. **创建归档**
|
||||
```bash
|
||||
./scripts/archive_bug_fix.sh path_tracking_error "你的名字"
|
||||
```
|
||||
|
||||
4. **编辑文档**
|
||||
```bash
|
||||
vim archives/bug_fixes/20251115_path_tracking_error/docs/BUG_path_tracking_error_20251115.md
|
||||
# 填写详细的bug信息、原因分析、修复方案等
|
||||
```
|
||||
|
||||
5. **复制相关文件到归档**
|
||||
```bash
|
||||
# 复制修复的代码
|
||||
cp src/path_tracker.cpp archives/bug_fixes/20251115_path_tracking_error/code/
|
||||
|
||||
# 如有测试文件
|
||||
cp tests/test_path_tracker.cpp archives/bug_fixes/20251115_path_tracking_error/tests/
|
||||
```
|
||||
|
||||
6. **提交归档**
|
||||
```bash
|
||||
git add archives/bug_fixes/ docs/fixes/
|
||||
git commit -m "archive: Bug修复 - path_tracking_error"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 功能更新流程
|
||||
|
||||
1. **在主代码目录开发新功能**
|
||||
```bash
|
||||
vim src/adaptive_lookahead.cpp
|
||||
vim include/adaptive_lookahead.h
|
||||
# 开发新功能...
|
||||
```
|
||||
|
||||
2. **提交git**
|
||||
```bash
|
||||
git add src/adaptive_lookahead.cpp include/adaptive_lookahead.h
|
||||
git commit -m "feature: 实现自适应前视距离算法"
|
||||
```
|
||||
|
||||
3. **创建归档**
|
||||
```bash
|
||||
./scripts/archive_feature.sh adaptive_lookahead "你的名字"
|
||||
```
|
||||
|
||||
4. **编辑文档**
|
||||
```bash
|
||||
vim archives/updates/20251115_adaptive_lookahead/docs/UPDATE_adaptive_lookahead_20251115.md
|
||||
# 填写功能说明、设计方案、使用方法等
|
||||
```
|
||||
|
||||
5. **复制相关文件到归档**
|
||||
```bash
|
||||
# 复制新增的代码
|
||||
cp src/adaptive_lookahead.cpp archives/updates/20251115_adaptive_lookahead/code/
|
||||
cp include/adaptive_lookahead.h archives/updates/20251115_adaptive_lookahead/code/
|
||||
|
||||
# 如有测试和示例
|
||||
cp tests/test_adaptive_lookahead.cpp archives/updates/20251115_adaptive_lookahead/tests/
|
||||
cp examples/example_adaptive.cpp archives/updates/20251115_adaptive_lookahead/code/
|
||||
```
|
||||
|
||||
6. **提交归档**
|
||||
```bash
|
||||
git add archives/updates/ docs/updates/
|
||||
git commit -m "archive: 功能更新 - adaptive_lookahead"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 版本发布流程
|
||||
|
||||
1. **确保所有变更已提交**
|
||||
```bash
|
||||
git status
|
||||
# 应该显示 "working tree clean"
|
||||
```
|
||||
|
||||
2. **运行发布脚本**
|
||||
```bash
|
||||
./scripts/create_release.sh 1.2.0
|
||||
```
|
||||
|
||||
3. **编辑Release Notes**
|
||||
```bash
|
||||
vim archives/versions/v1.2.0/release_notes.md
|
||||
# 填写版本概述、新增功能、bug修复等
|
||||
```
|
||||
|
||||
4. **提交归档**
|
||||
```bash
|
||||
git add archives/versions/
|
||||
git commit -m "release: v1.2.0"
|
||||
```
|
||||
|
||||
5. **推送tag**
|
||||
```bash
|
||||
git push origin v1.2.0
|
||||
```
|
||||
|
||||
6. **在GitHub/GitLab创建Release**
|
||||
- 上传编译好的二进制文件
|
||||
- 复制Release Notes内容
|
||||
- 发布
|
||||
|
||||
---
|
||||
|
||||
## AI辅助使用
|
||||
|
||||
当使用Claude Code时,AI会自动读取 `.claude/file_organization.json` 配置,并根据以下规则工作:
|
||||
|
||||
### 自动识别归档类型
|
||||
|
||||
AI会根据关键词自动识别任务类型:
|
||||
|
||||
- **Bug修复关键词**: bug, fix, 修复, 错误, 问题
|
||||
- 文件归档到: `archives/bug_fixes/`
|
||||
- 文档归档到: `docs/fixes/`
|
||||
|
||||
- **功能更新关键词**: feature, update, 新增, 功能, 更新, add, implement
|
||||
- 文件归档到: `archives/updates/`
|
||||
- 文档归档到: `docs/updates/`
|
||||
|
||||
- **版本发布关键词**: version, release, 版本, 发布
|
||||
- 文件归档到: `archives/versions/`
|
||||
|
||||
### 示例对话
|
||||
|
||||
```
|
||||
用户: 我发现了一个路径跟踪的bug,帮我修复并归档
|
||||
|
||||
AI: 我会帮你修复这个bug并按照项目规范归档。根据配置,我会:
|
||||
1. 修复代码
|
||||
2. 创建归档目录 archives/bug_fixes/YYYYMMDD_path_tracking/
|
||||
3. 生成修复文档
|
||||
4. 复制代码和文档到相应位置
|
||||
```
|
||||
|
||||
```
|
||||
用户: 实现一个新的自适应前视距离功能
|
||||
|
||||
AI: 我会实现这个新功能并归档。根据配置,我会:
|
||||
1. 开发新功能代码
|
||||
2. 创建归档目录 archives/updates/YYYYMMDD_adaptive_lookahead/
|
||||
3. 生成功能文档
|
||||
4. 创建使用示例
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 目录快速参考
|
||||
|
||||
```
|
||||
project_root/
|
||||
├── .claude/
|
||||
│ ├── file_organization.json # 主配置文件
|
||||
│ └── templates/ # 文档模板
|
||||
│ ├── bug_fix_template.md
|
||||
│ ├── feature_update_template.md
|
||||
│ └── release_notes_template.md
|
||||
│
|
||||
├── scripts/ # 辅助脚本
|
||||
│ ├── archive_bug_fix.sh # Bug修复归档
|
||||
│ ├── archive_feature.sh # 功能更新归档
|
||||
│ └── create_release.sh # 版本发布
|
||||
│
|
||||
├── archives/ # 归档目录
|
||||
│ ├── bug_fixes/ # Bug修复归档
|
||||
│ │ └── YYYYMMDD_bug名称/
|
||||
│ │ ├── code/
|
||||
│ │ ├── docs/
|
||||
│ │ └── tests/
|
||||
│ ├── updates/ # 功能更新归档
|
||||
│ │ └── YYYYMMDD_功能名称/
|
||||
│ │ ├── code/
|
||||
│ │ ├── docs/
|
||||
│ │ └── tests/
|
||||
│ └── versions/ # 版本归档
|
||||
│ └── vX.Y.Z/
|
||||
│ ├── release_notes.md
|
||||
│ └── backup/
|
||||
│
|
||||
├── docs/ # 当前文档
|
||||
│ ├── fixes/ # Bug修复文档(快速查阅)
|
||||
│ ├── updates/ # 功能更新文档(快速查阅)
|
||||
│ ├── guides/ # 使用指南
|
||||
│ └── protocol/ # 协议文档
|
||||
│
|
||||
├── src/ # 源代码(主工作目录)
|
||||
├── include/ # 头文件(主工作目录)
|
||||
└── examples/ # 示例代码(主工作目录)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 为什么要同时保存到归档目录和docs目录?
|
||||
|
||||
A:
|
||||
- **归档目录** (`archives/`): 完整归档,包含代码、文档、测试,用于长期保存和追溯
|
||||
- **文档目录** (`docs/`): 文档副本,方便快速查阅最新的修复和更新
|
||||
|
||||
### Q: 脚本在Windows上能用吗?
|
||||
|
||||
A: 脚本是bash脚本,需要在Git Bash、WSL或Cygwin中运行。也可以手动执行脚本中的步骤。
|
||||
|
||||
### Q: 如何自定义模板?
|
||||
|
||||
A: 直接编辑 `.claude/templates/` 下的模板文件,使用 `{{占位符}}` 格式添加自定义字段。
|
||||
|
||||
### Q: AI如何知道要使用这些配置?
|
||||
|
||||
A: AI会自动读取 `.claude/file_organization.json` 配置文件,并根据其中的规则工作。
|
||||
|
||||
### Q: 可以修改归档路径吗?
|
||||
|
||||
A: 可以,编辑 `.claude/file_organization.json` 中的 `directories` 部分,修改路径配置。
|
||||
|
||||
---
|
||||
|
||||
## 维护建议
|
||||
|
||||
1. **定期检查归档**: 每月检查归档目录,确保文档完整
|
||||
2. **更新模板**: 根据实际需求不断完善文档模板
|
||||
3. **脚本优化**: 根据使用反馈优化脚本功能
|
||||
4. **配置同步**: 团队成员保持配置文件一致
|
||||
|
||||
---
|
||||
|
||||
最后更新: 2025-11-15
|
||||
Reference in New Issue
Block a user