触发性问题:文档初始化 检查文档完整性 该写什么文档 文档放哪里
项目复杂度?
├── 简单(1-3人,单仓库,无微服务)→ 最小集:README + CHANGELOG + 01 + 04
├── 中等(3-8人,前后端分离,≤2子项目)→ 标准集:最小集 + 02 + 05 + 06
└── 复杂(8+人,微服务/多仓库,≥3子项目)→ 完整集:标准集 + 03 + 07 + 子项目文档
有终端用户(有 UI/面向非开发者)?
├── 是 → 建议建 08-user-guide(中等/复杂必建,简单可选)
└── 否(纯API/后台/库)→ 不建 08-user-guide
项目当前阶段?
├── 立项/初始化 → 只建 README + CHANGELOG + DOCUMENTATION_INDEX
├── 需求确定 → +01-requirements
├── 架构确定 → +02-architecture(+03-database 如用数据库)
├── API 设计完成 → +04-api
├── 首个功能完成 → +05-feature-guide
├── 首次部署 → +06-deployment
└── 首次发布 → +07-release-notes
原则:文档跟随代码进度,不提前建空文档。
| 级别 | 判断标准 | 最小文档集 | 可选 |
|---|---|---|---|
| ------ | --------- | ----------- | ------ |
| 简单 | 1-3人 / 单仓库 / 无微服务 / 周期<3个月 | README + CHANGELOG + 01 + 04 | 05(如有人手) |
| 中等 | 3-8人 / 前后端分离 / ≤2子项目 / 周期3-12个月 | 简单集 + 02 + 05 + 06 | 03(用数据库时必建) |
| 复杂 | 8+人 / 微服务 / 多仓库 / ≥3子项目 / 周期>12个月 | 中等集 + 03 + 07 + 子项目文档 | openapi.yaml |
子项目判断(满足任一定为子项目,需独立文档):
文档随项目推进逐步建立,禁止在项目初期创建空文档占位。
| 阶段 | 触发条件 | 建立文档 | 说明 |
|---|---|---|---|
| ------ | --------- | --------- | ------ |
| S0 初始化 | 仓库创建 / 项目立项 | README + CHANGELOG + docs/DOCUMENTATION_INDEX.md | 只写基本信息,留空章节 |
| S1 需求 | 需求评审通过 | +01-requirements | 冻结前可反复修改 |
| S2 架构 | 技术方案确定 | +02-architecture | 用数据库时同步建 03-database |
| S3 接口 | API 第一稿完成 | +04-api(+ openapi.yaml 推荐) | |
| S4 开发 | 首个功能模块完成 | +05-feature-guide | 后续每个大功能更新此文档 |
| S5 部署 | 首次部署到测试/生产环境 | +06-deployment(+ 08-user-guide 如有终端用户) | |
| S6 发布 | 首次正式版本发布 | +07-release-notes | 后续每次发布更新 |
{project-root}/
├── README.md
├── CHANGELOG.md
├── docs/
│ ├── DOCUMENTATION_INDEX.md
│ ├── api/
│ │ └── openapi.yaml ← 推荐,与 04-api.md 同步
│ ├── core/ ← 核心文档(文件名固定,无版本号)
│ │ ├── 01-requirements.md
│ │ ├── 02-architecture.md
│ │ ├── 03-database.md ← 用数据库时必建
│ │ ├── 04-api.md
│ │ ├── 05-feature-guide.md
│ │ ├── 06-deployment.md
│ │ ├── 07-release-notes.md
│ │ └── 08-user-guide.md ← 有终端用户时建(见§产品使用说明)
│ └── {subproject}/ ← 子项目文档
│ ├── {sp}-01-requirements.md
│ ├── {sp}-02-architecture.md
│ └── ...
└── .workbuddy/memory/ ← AI Agent 工作记忆(人类不读)
命名规则(强制执行):
{序号}-{英文名}.md(无版本号){子项目ID}-{序号}-{英文名}.md详细规范见 references/doc-spec.md,模板见 references/templates.md。
| # | 文档 | 简单 | 中等 | 复杂 | 内容边界(写什么 / 不写什么) |
|---|---|---|---|---|---|
| --- | ------ | ------ | ------ | ------ | ------------------------------ |
| - | README.md | ✅ | ✅ | ✅ | 项目简介、快速开始、文档入口 / 不含详细API |
| - | CHANGELOG.md | ✅ | ✅ | ✅ | 版本变更列表 / 不含技术实现细节 |
| 1 | 01-requirements | ✅ | ✅ | ✅ | 功能需求、用户故事、验收标准 / 不含技术选型 |
| 2 | 02-architecture | - | ✅ | ✅ | 组件图、技术栈、端口规划 / 不含API参数 |
| 3 | 03-database | - | △ | ✅ | 表结构、索引、ER图 / 不含业务逻辑 |
| 4 | 04-api.md | ✅ | ✅ | ✅ | 端点清单、请求/响应格式 / 不含表结构 |
| 5 | 05-feature-guide | △ | ✅ | ✅ | 功能使用说明、配置项 / 不含实现代码 |
| 6 | 06-deployment | - | ✅ | ✅ | 环境要求、安装步骤、故障排查 / 不含需求 |
| 7 | 07-release-notes | - | - | ✅ | 版本摘要、升级指引 / 不含完整变更细节 |
| 8 | 08-user-guide | △ | ✅ | ✅ | 面向最终用户的使用说明 / 不含实现细节 |
✅=必须 △=按需(有终端用户时建) - =不需要
| 触发事件 | 创建文档 | 适用复杂度 |
|---|---|---|
| --------- | --------- | ----------- |
| 仓库初始化 | README + CHANGELOG + DOCUMENTATION_INDEX | 全部 |
| 需求评审通过 | 01-requirements | 全部 |
| 架构方案确定 | 02-architecture(+03 如用数据库) | 中等、复杂 |
| API 设计第一稿 | 04-api + openapi.yaml | 全部(API项目必建) |
| 首个功能完成 | 05-feature-guide | 中等、复杂 |
| 首次部署 | 06-deployment(+ 08-user-guide,如有终端用户) | 中等、复杂 |
| 首次发布 | 07-release-notes | 复杂 |
> 规则:代码变更与文档更新在同一 commit / PR 中完成。
| 代码变更 | 同步更新文档 |
|---|---|
| --------- | ------------- |
| 增加/修改功能 | 01-requirements + README |
| 修改架构/端口 | 02-architecture + README |
| 修改表结构 | 03-database |
| 新增/修改API | 04-api + openapi.yaml |
| 修改核心逻辑 | 05-feature-guide |
| 修改部署步骤 | 06-deployment |
| 版本发布(打tag) | 07-release-notes + CHANGELOG + README |
| UI/交互变更影响用户操作 | 08-user-guide(如有) |
| 条件 | 文档要求 | 最少建哪些 |
|---|---|---|
| ------ | --------- | ----------- |
| 独立部署单元 / 独立代码库 | 完整集(01-07按需) | 01 + 02 + 04 |
| 独立团队负责 | 完整集 | 01 + 02 |
| 纯前端模块 | 精简集 | 02 + 04 + 05 |
| 微服务(独立进程) | 完整集 + 微服务专属章节 | 01 + 02 + 04 + 07 |
{子项目ID}-{两位序号}-{英文名}.md
例:admin-01-requirements.md ai-services-04-api.md
子项目内部序号映射:01=requirements, 02=architecture, 03=data-model, 04=api, 05=feature-guide, 06=ui-design, 07=deployment
服务发现与注册 / 服务间通信 / 数据一致性策略 / 容错与降级 / 服务依赖拓扑
微服务架构文档补充章节模板(写入 {sp}-02-architecture.md):
## 7. 服务发现与注册
| 配置项 | 值 | 说明 |
|--------|------|------|
| 注册中心 | {Nacos/Consul/etcd} | {版本} |
| 服务名 | {service-name} | 注册中心的名称 |
| 健康检查 | {HTTP/TCP} | {路径/端口} |
## 8. 服务间通信
### 同步调用
| 调用目标 | 协议 | 用途 | 超时 |
|---------|------|------|------|
| {service-A} | gRPC/HTTP | {用途} | {N}ms |
### 异步通信(消息队列)
| Topic/Queue | 生产/消费 | 用途 | 消费者组 |
|-------------|---------|------|---------|
| {topic} | 生产者 | {事件} | {group} |
## 9. 数据一致性
### 策略选择
- 核心链路:{Saga / TCC / 本地事务}
- 非核心链路:{最终一致性 / 异步补偿}
| 跨服务场景 | 一致性策略 | 补偿方式 |
|-----------|----------|---------|
| {场景} | {策略} | {补偿方式} |
## 10. 容错与降级
| 机制 | 配置 | 说明 |
|------|------|------|
| 熔断 | 阈值 {N},窗口 {N}s | {触发条件} |
| 限流 | {N} QPS / 每实例 | {策略} |
| 降级 | 降级为 {降级方案} | {触发条件} |
| 重试 | 最大 {N} 次,间隔 {N}ms | 仅对 {场景} 启用 |
## 11. 服务依赖拓扑
(依赖关系图,Mermaid 或 ASCII)
子项目经历五个阶段,各阶段文档操作不同:
创建 ──→ 开发 ──→ 冻结 ──→ 归档 ──→ 废弃
| 阶段 | 定义 | 文档操作 | 状态标记 |
|---|---|---|---|
| ------ | ------ | --------- | --------- |
| 创建 | 子项目正式立项 | 创建 01-requirements + 02-architecture | 草稿 |
| 开发 | 功能开发进行中 | 按需创建 03-07,持续更新 | 开发中 |
| 冻结 | 功能冻结,不再接受新需求 | 所有文档标记"已冻结",锁定内容 | 已冻结 |
| 归档 | 合并/下线/不再维护 | 目录移入 docs/_archived/{sp}/ | 保留引用 |
| 废弃 | 彻底下线 | 标记"已废弃",不删除 | 已废弃 |
状态流转规则:
详细检查清单见 references/doc-spec.md 子项目生命周期章节。
README.md → 2. 02-architecture → 3. 04-api → 4. 03-database → 5. 子项目文档按需.workbuddy/memory/)不替代正式文档{sp}-{NN}-{type}.md)docs/ 目录结构必须遵守:
[Unreleased] 段落在开发过程中持续积累,发布前归档docs/_archived/,不删除禁止行为:
| 文件 | 内容 |
|---|---|
| ------ | ------ |
references/doc-spec.md | 各文档详细内容边界、模板结构、版本同步规则 |
references/templates.md | 所有文档的完整模板(复制后替换占位符即可使用) |
以下场景不触发(节省 AI 上下文):
共 1 个版本