327 lines
10 KiB
Markdown
327 lines
10 KiB
Markdown
# 📋 开发日志更新规则
|
||
|
||
> **本文件定义了 AI 助手更新开发文档的规范**
|
||
|
||
---
|
||
|
||
## ⚡ 核心原则
|
||
|
||
| 规则 | 说明 |
|
||
|------|------|
|
||
| **默认更新** | 更新 `DayN.md` 和 `TASK_COMPLETE.md` |
|
||
| **按需更新** | 其他文档仅在内容变化涉及时更新 |
|
||
| **链路对齐** | 新增/重构文档后,回写入口文档(`README.md` 或对应 `*_README.md`) |
|
||
| **智能修改** | 错误→替换,改进→追加(见下方详细规则) |
|
||
| **先读后写** | 更新前先查看文件当前内容 |
|
||
| **日内合并** | 同一天的多次小修改合并为最终版本 |
|
||
|
||
---
|
||
|
||
## 🧾 全局文档更新清单 (Checklist)
|
||
|
||
> **每次提交重要变更时,请核对以下文件是否需要同步:**
|
||
|
||
| 优先级 | 文件路径 | 检查重点 |
|
||
| :---: | :--- | :--- |
|
||
| 🔥 **High** | `Docs/DevLogs/DayN.md` | **(最新日志)** 详细记录变更、修复、代码片段 |
|
||
| 🔥 **High** | `Docs/TASK_COMPLETE.md` | **(任务总览)** 更新 Day Current、`[x]` 与更新时间 |
|
||
| ⚡ **Med** | `README.md` | **(项目主页)** 功能特性、技术栈、最新截图 |
|
||
| ⚡ **Med** | `Docs/DEPLOY_MANUAL.md` | **(部署手册)** 环境变量、依赖包、启动命令变更 |
|
||
| ⚡ **Med** | `Docs/PUBLISH_DEPLOY.md` | **(发布专项)** 四平台登录/发布实现、排障、验收流程 |
|
||
| ⚡ **Med** | `Docs/BACKEND_DEV.md` | **(后端规范)** 接口契约、模块划分、环境变量 |
|
||
| ⚡ **Med** | `Docs/BACKEND_README.md` | **(后端文档)** 接口说明、架构设计 |
|
||
| ⚡ **Med** | `Docs/FRONTEND_DEV.md` | **(前端规范)** API封装、日期格式化、新页面规范 |
|
||
| ⚡ **Med** | `Docs/FRONTEND_README.md` | **(前端文档)** 功能说明、页面变更 |
|
||
| 🧊 **Low** | `Docs/DOC_RULES.md` | **(规则文档)** 文档结构变化或流程变化时同步更新 |
|
||
| 🧊 **Low** | `Docs/*_DEPLOY.md` | **(子系统部署)** LatentSync/CosyVoice/字幕等独立部署文档 |
|
||
|
||
---
|
||
|
||
## 🔍 修改原内容的判断标准
|
||
|
||
### 场景 1:错误修正 → **替换/删除**
|
||
|
||
**条件**:之前的方法/方案**无法工作**或**逻辑错误**
|
||
|
||
**操作**:
|
||
- ✅ 直接替换为正确内容
|
||
- ✅ 添加一行修正说明:`> **修正 (HH:MM)**:[错误原因],已更新`
|
||
- ❌ 不保留错误方法(避免误导)
|
||
|
||
**示例**:
|
||
```markdown
|
||
## 🔧 XXX功能修复
|
||
|
||
~~旧方法:增加超时时间(无效)~~
|
||
> **修正 (16:20)**:单纯超时无法解决,已更新为Stealth模式
|
||
|
||
### 解决方案
|
||
- 启用Stealth模式...
|
||
```
|
||
|
||
### 场景 2:方案改进 → **保留+追加**
|
||
|
||
**条件**:之前的方法**可以工作**,后来发现**更好的方法**
|
||
|
||
**操作**:
|
||
- ✅ 保留原方法(标注版本 V1/V2)
|
||
- ✅ 追加新方法
|
||
- ✅ 说明改进原因
|
||
|
||
**示例**:
|
||
```markdown
|
||
## ⚡ 性能优化
|
||
|
||
### V1: 基础实现 (Day 5)
|
||
- 单线程处理 ✅
|
||
|
||
### V2: 性能优化 (Day 7)
|
||
- 多线程并发
|
||
- 速度提升 3x ⚡
|
||
```
|
||
|
||
### 场景 3:同一天多次修改 → **合并**
|
||
|
||
**条件**:同一天内对同一功能的多次小改动
|
||
|
||
**操作**:
|
||
- ✅ 直接更新为最终版本
|
||
- ❌ 不记录中间的每次迭代
|
||
- ✅ 可注明"多次优化后"
|
||
|
||
|
||
---
|
||
|
||
## 🔍 更新前检查清单
|
||
|
||
> **核心原则**:追加前先查找,避免重复和遗漏
|
||
|
||
### 必须执行的检查步骤
|
||
|
||
**1. 快速浏览全文**(使用 `Read` 或 `Grep`)
|
||
```markdown
|
||
# 检查是否存在:
|
||
- 同主题的旧章节?
|
||
- 待更新的状态标记(🔄 待验证)?
|
||
- 未完成的TODO项?
|
||
```
|
||
|
||
**2. 判断操作类型**
|
||
|
||
| 情况 | 操作 |
|
||
|------|------|
|
||
| **有相关旧内容且错误** | 替换(场景1) |
|
||
| **有相关旧内容可改进** | 追加V2(场景2) |
|
||
| **有待验证状态** | 更新状态标记 |
|
||
| **全新独立内容** | 追加到末尾 |
|
||
|
||
**3. 必须更新的内容**
|
||
|
||
- ✅ **状态标记**:`🔄 待验证` → `✅ 已修复` / `❌ 失败`
|
||
- ✅ **进度百分比**:更新为最新值
|
||
- ✅ **文件修改列表**:补充新修改的文件
|
||
- ❌ **禁止**:创建重复的章节标题
|
||
|
||
### 发布相关变更的三检(新增)
|
||
|
||
若涉及抖音/微信/B站/小红书发布或扫码登录,额外执行:
|
||
|
||
1. **路由真值检查**:以 `backend/app/modules/publish/router.py` 为准校验 API 路径,避免文档写成旧路径(例如 `/screenshots/`)。
|
||
2. **专项文档对齐**:更新 `Docs/PUBLISH_DEPLOY.md` 中对应平台章节(登录、发布判定、排障)。
|
||
3. **入口文档回写**:至少回写一处入口文档(`README.md` 或 `Docs/BACKEND_README.md` / `Docs/DEPLOY_MANUAL.md`)。
|
||
|
||
### 示例场景
|
||
|
||
**错误示例**(未检查旧内容):
|
||
```markdown
|
||
## 🔧 QR登录修复 (15:00)
|
||
**状态**:🔄 待验证
|
||
|
||
## 🔧 QR登录修复 (16:00) ❌ 重复!
|
||
**状态**:✅ 已修复
|
||
```
|
||
|
||
**正确做法**:
|
||
```markdown
|
||
## 🔧 QR登录修复 (15:00)
|
||
**状态**:✅ 已修复 ← 直接更新原状态
|
||
```
|
||
|
||
---
|
||
|
||
## ️ 工具使用规范
|
||
|
||
> **核心原则**:使用正确的工具,避免字符编码问题
|
||
|
||
### ✅ 推荐工具:Read / Grep / apply_patch
|
||
|
||
**使用场景**:
|
||
- `Read`:更新前先查看文件当前内容
|
||
- `apply_patch`:精确替换现有内容、追加新章节
|
||
- `Grep`:搜索文件中是否已有相关章节
|
||
- `Write`:创建新文件(如 Day{N+1}.md)
|
||
|
||
**注意事项**:
|
||
```markdown
|
||
1. **先读后写**:编辑前先用 Read 确认内容
|
||
2. **精确匹配**:`apply_patch` 的上下文必须与文件内容一致
|
||
3. **避免重复**:编辑前用 Grep 检查是否已存在同主题章节
|
||
```
|
||
|
||
### ❌ 禁止使用:命令行工具修改文档
|
||
|
||
**禁止场景**:
|
||
- ❌ 使用 `echo >>` 追加内容
|
||
- ❌ 使用 `sed` / `awk` 修改文档
|
||
- ❌ 使用 `cat <<EOF` 写入内容
|
||
|
||
**原因**:
|
||
- 容易破坏 UTF-8 编码和中文字符
|
||
- 难以追踪修改,容易出错
|
||
- 无法精确匹配替换位置
|
||
|
||
### 📝 最佳实践示例
|
||
|
||
**追加新章节**:使用 `apply_patch`,以文件末尾稳定上下文为锚点追加。
|
||
|
||
**修改现有内容**:使用 `apply_patch` 精确替换。
|
||
```markdown
|
||
@@
|
||
-**状态**:🔄 待修复
|
||
+**状态**:✅ 已修复
|
||
```
|
||
|
||
|
||
---
|
||
|
||
## 📁 文件结构
|
||
|
||
```
|
||
ViGent2/Docs/
|
||
├── TASK_COMPLETE.md # 任务总览(仅按需更新)
|
||
├── DOC_RULES.md # 本文件
|
||
├── BACKEND_DEV.md # 后端开发规范
|
||
├── BACKEND_README.md # 后端功能文档
|
||
├── FRONTEND_DEV.md # 前端开发规范
|
||
├── FRONTEND_README.md # 前端功能文档
|
||
├── DEPLOY_MANUAL.md # 部署手册
|
||
├── PUBLISH_DEPLOY.md # 多平台发布专项文档
|
||
├── SUPABASE_DEPLOY.md # Supabase 部署文档
|
||
├── LATENTSYNC_DEPLOY.md # LatentSync 部署文档
|
||
├── COSYVOICE3_DEPLOY.md # 声音克隆部署文档
|
||
├── ALIPAY_DEPLOY.md # 支付宝付费部署文档
|
||
├── SUBTITLE_DEPLOY.md # 字幕系统部署文档
|
||
└── DevLogs/
|
||
├── Day1.md # 开发日志
|
||
└── ...
|
||
```
|
||
|
||
---
|
||
|
||
## 📅 DayN.md 更新规则(日常更新)
|
||
|
||
### 更新时机
|
||
|
||
> **边开发边记录,不要等到最后才写。**
|
||
|
||
- 每完成一个功能/修复后,**立即**追加到 DayN.md
|
||
- 避免积攒到对话末尾一次性补写,容易遗漏变更
|
||
- `TASK_COMPLETE.md` 同理,重要变更完成后及时同步
|
||
|
||
### 新建判断 (对话开始前)
|
||
1. **回顾进度**:查看 `TASK_COMPLETE.md` 了解当前状态
|
||
2. **检查日期**:查看最新 `DayN.md`
|
||
- **今天 (与当前日期相同)** → 🚨 **绝对禁止创建新文件**,必须**追加**到现有 `DayN.md` 末尾!即使是完全不同的功能模块。
|
||
- **之前 (昨天或更早)** → 创建 `Day{N+1}.md`
|
||
|
||
### 追加格式
|
||
```markdown
|
||
---
|
||
|
||
## 🔧 [章节标题]
|
||
|
||
### 问题描述
|
||
简要描述...
|
||
|
||
### 解决方案
|
||
```code
|
||
# 代码示例
|
||
```
|
||
|
||
### 结果
|
||
- ✅ 修复了 xxx
|
||
```
|
||
|
||
### 快速修复格式
|
||
```markdown
|
||
## 🐛 [Bug 简述] (HH:MM)
|
||
|
||
**问题**:一句话描述
|
||
**修复**:修改了 `文件名` 中的 xxx
|
||
**状态**:✅ 已修复 / 🔄 待验证
|
||
```
|
||
|
||
### ⚠️ 注意
|
||
- **DayN.md 文件开头禁止使用 `---`**,避免被解析为 Front Matter。
|
||
- 分隔线只用于章节之间,不作为文件第一行。
|
||
|
||
---
|
||
|
||
## 📏 内容简洁性规则
|
||
|
||
### 代码示例长度控制
|
||
- **原则**:只展示关键代码片段(10-20行以内)
|
||
- **超长代码**:使用 `// ... 省略 ...` 或仅列出文件名+行号
|
||
- **完整代码**:引用文件链接,而非粘贴全文
|
||
|
||
### 调试信息处理
|
||
- **临时调试**:验证后删除(如调试日志、测试截图)
|
||
- **有价值信息**:保留(如错误日志、性能数据)
|
||
|
||
### 敏感信息处理
|
||
- **禁止落盘**:Cookie 值、Token、密钥、完整手机号、支付凭证。
|
||
- **日志引用**:仅记录必要关键词与结论,避免粘贴大段原始日志。
|
||
- **路径引用**:优先给相对路径与文件名,不记录无关个人目录信息。
|
||
|
||
### 状态标记更新
|
||
- **🔄 待验证** → 验证后更新为 **✅ 已修复** 或 **❌ 失败**
|
||
- 直接修改原状态,无需追加新行
|
||
|
||
|
||
---
|
||
|
||
## 📝 TASK_COMPLETE.md 更新规则
|
||
|
||
> 与 DayN.md 同步更新,记录重要变更时更新任务总览。
|
||
|
||
### 更新原则
|
||
- **格式一致性**:直接参考 `TASK_COMPLETE.md` 现有格式追加内容。
|
||
- **进度更新**:仅在阶段性里程碑时更新进度百分比。
|
||
|
||
### 🔍 完整性检查清单 (必做)
|
||
|
||
每次更新 `TASK_COMPLETE.md` 时,必须**逐一检查**以下板块:
|
||
|
||
1. **文件头部**
|
||
- [ ] `更新时间`:必须是当天日期
|
||
- [ ] `整体进度`:与当前 Day 状态一致(例如 Day31)
|
||
|
||
2. **当日 Current 区块**
|
||
- [ ] 新增/更新 `Day N (Current)` 标题
|
||
- [ ] 关键任务以 `[x]` 列出(避免仅写结论)
|
||
- [ ] 前一天 Day 标题取消 `(Current)` 标记
|
||
|
||
3. **Roadmap 与模块状态**
|
||
- [ ] 如有已完成长期事项,及时从待办迁移到已完成
|
||
- [ ] 模块完成度有变化时同步更新
|
||
|
||
4. **相关文档链接**
|
||
- [ ] 新增的核心文档(如 `PUBLISH_DEPLOY.md`)要在相关位置可追溯
|
||
- [ ] 若 DayN 记录了“文档回写”,`TASK_COMPLETE.md` 的当日条目也要体现
|
||
|
||
> **口诀**:头部日期、当日 Current、模块状态、链接可追溯。
|
||
|
||
---
|
||
|
||
**最后更新**:2026-03-03
|