Update nexus: fix conflicts and sync local changes
This commit is contained in:
@@ -40,9 +40,64 @@ Vibe Coding 最怕 AI 随意引入不兼容的库。
|
||||
- **核心页面路由:** 定义 MVP 阶段的所有 URL 路径及对应的功能页面。
|
||||
|
||||
- **全局布局:** 描述 Header, Sidebar, Footer 的行为。
|
||||
|
||||
|
||||
### 5. AI 指令手册 (`.cursorrules` 或 `AI_INSTRUCTIONS.md`)
|
||||
|
||||
### 5. 项目骨架设计(`ARCHITECTURE.md`)
|
||||
- **技术栈**
|
||||
- Backend: Django 4.x
|
||||
- 前端交互: HTMX 1.x + Alpine.js 3.x
|
||||
- 样式: [Tailwind / 你的选择]
|
||||
- 数据库: [PostgreSQL / SQLite]
|
||||
|
||||
- **目录结构说明**
|
||||
[说明每个目录的职责]
|
||||
|
||||
- **Django App 划分原则**
|
||||
- 每个 App 对应一个业务域,不跨域
|
||||
- App 列表:accounts / dashboard / [其他]
|
||||
|
||||
- **模板约定**
|
||||
- base.html 定义全局布局和 block 插槽
|
||||
- HTMX 局部刷新的模板放在 partials/ 下
|
||||
- block 结构:title / content / extra_css / extra_js
|
||||
|
||||
- **HTMX 使用约定**
|
||||
- 所有 HTMX 请求的 view 需判断 HX-Request header
|
||||
- 局部响应只返回对应的 partial 模板
|
||||
- 示例:
|
||||
def my_view(request):
|
||||
if request.htmx:
|
||||
return render(request, 'partials/xxx.html', context)
|
||||
return render(request, 'full/xxx.html', context)
|
||||
|
||||
- **Alpine.js 使用约定**
|
||||
- 只负责纯客户端状态(下拉展开、tab 切换、表单校验提示)
|
||||
- 不处理需要服务端数据的逻辑,那部分交给 HTMX
|
||||
|
||||
- **URL 命名规范**
|
||||
- 格式:app_name:resource-action
|
||||
- 示例:accounts:login, dashboard:report-list
|
||||
|
||||
- **环境变量**
|
||||
- 使用 .env 文件管理,通过 django-environ 读取
|
||||
- 敏感配置不进 settings.py 硬编码
|
||||
|
||||
### 6. 任务清单(`TASK.md`)
|
||||
这是 Vibe Coding 中最关键的"指挥文件"。它不只是任务清单,更是 AI 在每次对话中快速定位上下文的锚点。
|
||||
|
||||
**分解 User Story 的标准方法**
|
||||
每个 User Story 在交给 AI 编码前,需要满足 **INVEST 原则** 中最关键的三条:
|
||||
|
||||
| 原则 | 实操含义 |
|
||||
| ------------------- | ------------------------------------ |
|
||||
| **Independent(独立)** | 这个 Story 能单独开发、单独测试,不强依赖其他未完成的 Story |
|
||||
| **Small(小)** | 一个 Story 的编码工作控制在一次对话内能完成 |
|
||||
| **Testable(可验证)** | 有明确的验收标准,你能用眼睛或操作来判断是否完成 |
|
||||
**拆分的实用规则:** 如果一个 Story 的描述里出现了"并且"或"还可以",就应该拆成两个。
|
||||
|
||||
|
||||
|
||||
### 6. AI 指令手册 (`.cursorrules` 或 `AI_INSTRUCTIONS.md`)
|
||||
|
||||
这是 Vibe Coding 的“灵魂”,专门给 Claude 看的“说明书”。
|
||||
|
||||
@@ -74,4 +129,61 @@ Vibe Coding 最怕 AI 随意引入不兼容的库。
|
||||
|
||||
2. **环境对齐:** 将文档喂给 Claude,问它:“基于这些文档,你认为实现 MVP 的第一步是什么?请列出任务清单。”
|
||||
|
||||
3. **循环迭代:** 按照 `任务清单 -> 生成代码 -> 测试反馈 -> 更新文档` 的循环进行。
|
||||
3. **循环迭代:** 按照 `任务清单 -> 生成代码 -> 测试反馈 -> 更新文档` 的循环进行。
|
||||
|
||||
```
|
||||
准备阶段(你现在所在的位置)
|
||||
↓
|
||||
① 整理 TASK.md,按 P0/P1/P2 排优先级
|
||||
↓
|
||||
② 从 Phase 1 挑第一个 Story 开始
|
||||
↓
|
||||
③ 每次开启新对话,给 AI 提供以下上下文包:
|
||||
- TASK.md(让 AI 知道全局和当前任务)
|
||||
- 相关模块的 PRD 片段
|
||||
- 对应的 UI HTML 原型
|
||||
- Tech Stack 文档
|
||||
- 相关的 Data Model
|
||||
↓
|
||||
④ AI 完成编码后,你验收(对照验收标准)
|
||||
↓
|
||||
⑤ 验收通过 → 在 TASK.md 勾选 [x] → 进入下一个 Story
|
||||
↓
|
||||
⑥ 每完成一个模块,检查是否需要更新 Data Model 或 Tech 文档
|
||||
```
|
||||
|
||||
### 给 AI 的标准开场提示词
|
||||
|
||||
每次开始一个新 Story 时,用这个模板开场:
|
||||
|
||||
```
|
||||
## 当前任务
|
||||
我正在开发 [项目名],现在要实现 US-XXX:[Story 标题]
|
||||
|
||||
## 上下文文件(我将依次提供)
|
||||
1. TASK.md - 了解项目全局状态和本任务优先级
|
||||
2. Tech Stack 文档 - 了解技术约束
|
||||
3. Data Model - 了解数据结构
|
||||
4. 本模块 PRD - 了解功能需求
|
||||
5. 本模块 UI 原型 HTML - 了解视觉要求
|
||||
|
||||
## 本次任务的验收标准
|
||||
- [条件1]
|
||||
- [条件2]
|
||||
|
||||
## 约束
|
||||
- 只实现本 Story 范围内的功能,Phase 2/3 的内容不要提前实现
|
||||
- 如遇到需要修改 Data Model 的情况,先告知我,不要擅自修改
|
||||
- 完成后告诉我你新建或修改了哪些文件
|
||||
```
|
||||
|
||||
**TASK.md 是活文档,AI 也要帮你维护它。**
|
||||
|
||||
每次 Story 完成后,让 AI 顺手输出一行更新指令,比如:
|
||||
|
||||
```
|
||||
请在 TASK.md 中将 US-003 标记为已完成,并在备注中记录:
|
||||
"Session 存储改用 httpOnly cookie,与原方案不同"
|
||||
```
|
||||
|
||||
这样你的 TASK.md 不只是任务清单,还成了项目的**决策日志**,下一次换新对话时 AI 能快速理解为什么某些事情是现在这样做的。
|
||||
Reference in New Issue
Block a user