Files
nexus/Project/fonrey/Vibe Coding项目管理技巧.md
2026-06-04 14:34:32 +08:00

175 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
这是一个非常实际的问题。用 OpenCode或类似 AI 编码工具)做长周期项目,核心挑战是**每次会话 AI 都是"失忆"的**,你需要一套机制让它快速恢复上下文。
以下是一套完整的项目管理方案:
---
## 核心思路:用文档作为 AI 的"外部记忆"
AI 没有跨会话记忆,但它每次都能读文件。所以你的目标是:**把项目状态写进文件,而不是靠 AI 记住。**
---
## 一、项目文档结构
在项目根目录维护以下几个关键文件:
```
project-root/
├── CLAUDE.md # AI 行为规则 + 项目概览OpenCode 每次自动读取)
├── TASK.md # 任务总表P0/P1/P2 优先级
├── PROGRESS.md # 每日进度日志(最重要)
├── ARCHITECTURE.md # 技术架构
└── .opencode/
└── context.md # 会话级补充上下文(可选)
```
---
## 二、最关键的文件:`PROGRESS.md`
这是你每天结束时必须更新的文件,格式建议如下:
```markdown
# 项目进度日志
## 2025-01-15今日
### ✅ 已完成
- [x] 实现了 PropertyListing 的 CRUD API
- [x] 修复了权限校验的 bug见 commit abc123
### 🔄 进行中
- [ ] 房源搜索功能(已完成 70%
- 已做Elasticsearch 索引配置
- 未做:前端搜索组件、过滤器逻辑
- 卡点:全文搜索中文分词需要引入 IK 插件
### ⏭️ 明日计划
- 完成搜索前端组件
- 开始客源管理模块的数据模型
### 🐛 已知问题 / 技术债
- PropertyImage 上传后缩略图生成有时失败,原因未查
### 📁 今日改动的关键文件
- `apps/listings/views.py`
- `apps/listings/serializers.py`
- `templates/listings/search.html`
```
---
## 三、`CLAUDE.md` — AI 的启动说明书
OpenCode 会自动读取项目根目录的 `CLAUDE.md`。把它写成"给 AI 的操作手册"
```markdown
# Fonrey 项目 AI 开发规范
## 项目简介
B2B SaaS 房产中介管理系统Django + HTMX + Alpine.js + PostgreSQL
## 每次会话开始前,你必须做的事
1. 阅读 `PROGRESS.md` 了解当前进度
2. 阅读 `TASK.md` 了解当前 Sprint 目标
3. 确认今天要完成哪个具体任务后再写代码
## 技术约束
- 前端HTMX + Alpine.js + Tailwind禁止引入 React/Vue
- 文件上传:统一用 FilePond
- 权限:使用自定义 RBAC不使用 django-guardian
## 代码规范
- 所有新文件必须有注释说明用途
- 每完成一个功能,更新 PROGRESS.md
## 禁止事项
- 不要修改 DATA_MODEL.md 中已定稳的数据表结构
- 不要在没有确认的情况下重构已有模块
```
---
## 四、每日工作流程
### 早上开始2 分钟)
给 AI 发这条固定的"启动 prompt"
```
请阅读 PROGRESS.md 和 TASK.md告诉我
1. 昨天完成了什么
2. 今天应该继续做什么
3. 有没有未解决的卡点
然后我们开始今天的工作。
```
AI 读完文件后会给你一个摘要,你确认后直接开工。
### 晚上结束5 分钟)
让 AI 帮你更新进度日志:
```
今天的工作完成了,请帮我更新 PROGRESS.md
- 完成了:[你说]
- 未完成的:[你说]
- 明天继续:[你说]
```
---
## 五、处理"卡点"和"上下文切换"
### 当你在一个功能里遇到复杂问题时
创建一个临时文件 `SCRATCH.md`
```markdown
# 当前卡点:中文全文搜索
## 问题描述
PostgreSQL tsvector 对中文分词支持差
## 已尝试的方案
1. 方案A用 zhparser - 失败,原因 xxx
2. 方案B用 pg_jieba - 待验证
## 当前倾向
方案B明天继续
```
下次会话告诉 AI"先读 SCRATCH.md",秒回上下文。
### 当你需要切换模块时
在 PROGRESS.md 里明确标记"暂停点",记录文件名和函数名,这比描述更精确。
---
## 六、可选增强Git commit 作为进度锚点
养成每完成一个小功能就 commit 的习惯commit message 写清楚:
```
feat(listings): 完成房源搜索 API支持关键词+区域过滤
TODO: 前端搜索组件待完成
```
这样 AI 可以通过 `git log --oneline -20` 快速看到最近的工作轨迹,作为 PROGRESS.md 的补充。
---
## 总结
|文件|作用|更新频率|
|---|---|---|
|`CLAUDE.md`|AI 行为规范,一次写好|很少改|
|`TASK.md`|任务总表|每周调整|
|`PROGRESS.md`|每日进度日志|**每天必更新**|
|`SCRATCH.md`|当前卡点临时笔记|按需|
**最核心的一句话:每天花 5 分钟更新 `PROGRESS.md`,比什么方法都有效。** AI 能读文件,但它读不了你的脑子——把脑子里的状态写进文件,问题就解决了。