6c9acbc501
- journal: 2026-05-25 完整工作记录 - arch/today.md: 标记完成,列出明日待办 - ROADMAP.md: 进度更新至40%,信息架构重构标为完成 - 从 ai_project 同步 ADR-008 + P-003 到 main Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
73 lines
3.2 KiB
Markdown
73 lines
3.2 KiB
Markdown
# 架构决策记录 (ADR)
|
||
|
||
## ADR-001: "1 人 + 2 AI" 协作框架
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳(后升级为 1 人 + 3 AI)
|
||
- 决策: 采用人类负责人 + Dev AI + QA AI 的三角协作模式
|
||
- 理由: 单人开发需要 AI 辅助,但 AI 不能互审,需要人类做最终决策
|
||
- 影响: 定义了 R/W/RW/- 四级权限体系
|
||
|
||
## ADR-002: 四级权限体系
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳
|
||
- 决策: 采用 `-`(禁止) / `R`(只读) / `W`(可写) / `RW`(读写) 四级权限,比二进制的读写更精细
|
||
- 理由: AI 角色需要明确的边界,"只读但不能写"和"完全不可见"需要区分
|
||
- 影响: 所有目录访问按权限矩阵执行,`forbidden > read_only > allowed` 优先级
|
||
|
||
## ADR-003: 根级 docs/ 目录
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳
|
||
- 决策: 项目级文档放在根目录 `docs/` 而非子项目内
|
||
- 理由: 跨项目共享的文档(架构设计、开发规范)不应属于某个子项目
|
||
- 影响: docs/ 由 Arch AI 和 Dev AI 共同维护
|
||
|
||
## ADR-004: 独立 tools/ 和 data/ 目录
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳
|
||
- 决策: 开发工具脚本和训练数据从 shared/ 中独立出来
|
||
- 理由: tools 和 data 的使用场景和权限需求与 shared 不同
|
||
- 影响: Arch AI 和 Dev AI 可写 tools/ 和 data/,QA AI 只能读 data/
|
||
|
||
## ADR-005: 工作流重试和升级机制
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳
|
||
- 决策: 测试 → 修复循环最多 3 轮,Round 3 仍有 BLOCKER/HIGH 则升级给人类
|
||
- 理由: 防止无限循环,确保严重问题得到人类关注
|
||
- 影响: `skip_acceptance_on_retry: true`,修复轮次不重写验收标准
|
||
|
||
## ADR-006: resume-context Skill 多机同步
|
||
|
||
- 日期: 2026-05-23
|
||
- 状态: 已采纳
|
||
- 决策: 通过 `resume-context` Skill 实现换电脑时上下文恢复
|
||
- 理由: 用户在家和公司两台电脑开发,需要快速恢复 AI 工作上下文
|
||
- 影响: 角色检测、关键文档加载、上下文摘要生成
|
||
|
||
## ADR-007: 分层信息架构 + Token 预算
|
||
|
||
- 日期: 2026-05-25
|
||
- 状态: 已采纳
|
||
- 决策: 采用四层信息架构(工作台 → 路线图 → 阶段上下文 → 知识沉淀),每层有 token 预算
|
||
- 理由: AI 上下文窗口有限(~200K tokens),旧 AGENTS.md 单体文件浪费 token;每个 AI 角色只需要知道自己该干什么
|
||
- 影响: 所有 AI 从 `.ai/roles/{role}/` 启动;新增 `ROADMAP.md`、`DASHBOARD.md`、`docs/share/` 分享层
|
||
|
||
## ADR-008: 框架/项目双分支 + 同步机制
|
||
|
||
- 日期: 2026-05-25
|
||
- 状态: 已采纳
|
||
- 决策: 采用双分支策略:`main` 分支开发具体项目(ErrLens),`ai_project` 分支保持为去敏的通用模板。通过 `sync-template.sh` 从 main 单向同步框架层变化到模板分支
|
||
- 理由:
|
||
- 框架层变化需要传播到模板,但重做去敏化消耗巨大(~100K tokens)
|
||
- 两个分支的差异本质是"变量替换",可以脚本自动化
|
||
- 框架层(AGENTS/权限/提示词/工作流)和项目层(任务/日志/代码)的边界清晰
|
||
- 影响:
|
||
- 新增 `SYNC.md` 定义框架层/项目层边界
|
||
- 新增 `sync-template.sh` 实现自动同步
|
||
- 新增 `TEMPLATE.yaml` + `init.sh` 实现一键初始化
|
||
- AI 项目框架从此可复用,token 节省 95%+
|