项目架构文档包

目的

每个项目都应该有一组最小架构文档,先让新人、接手项目的人和技术负责人能回答:

这个项目解决什么问题?
用什么技术栈?
系统怎么分层?
有哪些模块和服务?
上游依赖谁?
下游影响谁?
数据在哪里?
API 和事件怎么交互?
怎么本地运行、测试、部署、回滚?
哪些地方不能随便改?

没有这些文档,人类 review 只能依赖资深工程师记忆;后续 Agent 也只能靠代码搜索和猜测工作。

最小文档包

文件 必须回答 模板
docs/PROJECT.md 项目入口、owner、环境、命令、监控、发布和回滚入口 templates/项目入口-project-index.md
docs/ARCHITECTURE.md 系统边界、架构图、模块、数据流、运行路径 templates/系统架构-architecture.md
docs/TECH_STACK.md 技术选型、版本、替代方案、选型原因 templates/技术选型-tech-stack.md
docs/DEPENDENCIES.md 上游、下游、外部服务、失败影响、owner templates/依赖图-dependency-map.md
docs/MODULE_CONTRACTS.md 模块职责、接口、数据、依赖、禁止耦合 templates/模块契约-module-contract.md
docs/SERVICE_CONTRACTS.md 服务 API、鉴权、事件、SLO、运维入口 templates/服务契约-service-contract.md
docs/TESTING.md 每种变更应该跑什么检查,命令语义是什么 33-测试和质量-testing-quality.md
docs/RUNBOOK.md 生产故障如何诊断、缓解、回滚 templates/运维手册-runbook.md
docs/SECURITY.md 鉴权、密钥、权限、数据敏感性、安全 review 55-安全基线-security-baseline.md

草台团队可以先只做四个:

PROJECT.md
ARCHITECTURE.md
TECH_STACK.md
DEPENDENCIES.md

这四个能让新人快速知道项目入口、项目边界、技术栈和上下游风险。

L0 要求:PROJECT.md 必须能让新人找到 owner、启动命令、检查命令、监控、发布和回滚入口;其他文档每份最多一页,先回答关键问题,不追求完整格式。等项目稳定后再补模块契约、服务契约、runbook 和安全文档。

项目级落地要求见 40-项目级闭环-project-level-closure.md

三角色项目文档责任

角色 对项目文档负责什么
产品负责人 PROJECT.md 中的用户、核心路径、业务 owner、验收入口
技术负责人 ARCHITECTURE.md、模块边界、数据、风险路径
平台 / 资深工程师 TECH_STACK.mdDEPENDENCIES.md、本地运行、CI、发布和排障入口

架构文档必须覆盖

1. 系统边界

说明这个项目做什么、不做什么、谁使用、谁维护。

2. 技术选型

说明语言、框架、数据库、队列、缓存、部署方式、测试工具、观测工具,以及为什么选它们。

3. 模块和服务

说明每个模块或服务的职责、owner、输入输出、拥有的数据、禁止耦合。

4. 上下游依赖

说明:

方向 要记录什么
上游 谁调用本系统,依赖哪些 API、事件、SLA
下游 本系统调用谁,失败后怎么降级
外部服务 第三方 API、provider、支付、短信、对象存储等
共享基础设施 DB、Redis、queue、object storage、feature flag、secret manager

5. 数据和状态

说明核心表、状态机、数据 owner、保留策略、migration 入口。

6. API / 事件契约

说明 REST/RPC/webhook/event 的 schema、鉴权、幂等、错误码、版本兼容。

7. 运行和部署

说明本地启动、CI 检查、部署流程、环境变量、回滚路径。

8. 项目 Owner 和入口

说明 Product Owner、Tech Owner、Ops Owner、Doc Driver、任务看板、PR/CI、监控、日志、发布入口在哪里。

9. 风险边界

说明哪些路径、表、权限、集成、生产配置必须人工 approval。

后续 Agent 使用方式

这一节在人类架构文档包稳定后再看。

Agent run 启动前,应优先读取:

  1. ARCHITECTURE.md
  2. TECH_STACK.md
  3. DEPENDENCIES.md
  4. 相关 MODULE_CONTRACTS.mdSERVICE_CONTRACTS.md
  5. TESTING.md

如果这些文档缺失,Agent 应先执行 discovery,输出架构草稿或依赖清单,而不是直接改代码。

更新规则

这些变化必须同步更新架构文档包:

  1. 新增或删除服务。
  2. 模块职责变化。
  3. 数据库 schema 或核心状态机变化。
  4. 新增上游或下游依赖。
  5. 外部 API、webhook、事件契约变化。
  6. 部署方式、环境变量、密钥策略变化。
  7. 自动化或 Agent runtime、权限、scope 或 approval 策略变化。

如果 PR 改了架构但没有更新文档,reviewer 应要求补齐。

过期规则

架构文档不是一次性产物。

规则 处理方式
超过 30 天未确认 Driver 快速检查是否仍准确
超过 60 天未确认 标记 stale,不作为默认事实
文档和代码冲突 以代码和运行事实为准,同时创建文档修复任务
Agent 发现冲突 先输出差异和建议,不直接按过期文档改代码

每个项目至少指定一个 Doc Driver,负责推动架构文档不过期。Doc Driver 不一定亲自写完,但要负责让文档能被信任。

下一步阅读

读完或填完这份文档后,通常继续看: