# Aider-AI/aider 研究分析

## 本轮结论

`Aider-AI/aider` 的核心价值不是终端聊天，而是 Git 驱动的 AI 编辑闭环。它把仓库状态、编辑格式、
repo map、命令执行、lint/test 和提交协作放进同一条循环，让 AI 修改始终能被 diff、验证、回滚和审查。

本仓最应该迁移的是“AI 修改必须进入证据链”：任何文档、研究、脚本或资源变更，都要能说明 diff 范围、
验证命令、失败修复和提交边界。

## 本地证据

- 研究对象：`Aider-AI/aider`
- 当前研究角色：终端 AI 结对编程工具
- 原始仓库：`raw/repository/`
- 原始来源清单：`raw/sources.yml`
- 事实摘要：`domain.yml`
- 深度证据：`deep-dive.md`

## 对标拆解

| 项 | 内容 |
|:---|:---|
| 参考对象 | `Aider-AI/aider` |
| 它解决的核心问题 | 让 AI 对真实仓库的修改可 diff、可测试、可提交、可回滚 |
| 核心机制 | `repo.py` 管 Git 状态，`repomap.py` 压缩上下文，`coders/` 定义编辑协议，`linter.py` 接入反馈 |
| 真正带来结果的动作 | 把 AI 输出变成 Git 工作流里的可审查补丁，而不是孤立文本 |
| 可迁移做法 | dirty state 检查、diff 审查、门禁命令、验证证据和提交叙事 |
| 不可迁移条件 | 不复制完整终端产品、多模型配置和 Python 编辑器实现 |
| 下一步试用动作 | 在 `docs/workflow/` 沉淀“AI 修改 -> diff 审查 -> make test -> commit”闭环 |

## 改良迭代

| 改良目标 | 原模式 | 本仓版本 | 验证指标 |
|:---|:---|:---|:---|
| Git 状态护栏 | Aider 围绕 Git dirty state 和 commit 工作 | 每次任务先看 `git status`，不覆盖用户改动 | 变更说明能区分用户改动和本轮改动 |
| 文档上下文压缩 | Aider 用 repo map 选择上下文 | 本仓建立 research/docs 入口地图和索引校验 | 新文档不会漏进 README、metadata、llms |
| 反馈循环 | Aider 把 lint/test 反馈接进对话 | 本仓统一用 `make test` 做文档门禁 | 修改后失败项能回到具体文件修复 |

## 可迁移清单

- 把“修改前检查工作区状态”写成所有 AI 工程任务默认动作。
- 把 `make test`、`git diff --check` 和关键脚本输出纳入交付说明。
- 为研究域建立文档地图或索引生成机制，减少长文档漂移。
- 对大文件修改优先使用局部 patch，避免全文件重写带来无关 diff。

## 不可迁移清单

- 不把本仓变成 Aider 竞品。
- 不复制其多模型兼容层、coder 实现和交互式命令系统。
- 不把 repo map 当成万能方案；本仓优先解决 Markdown 索引漂移和研究域路由。

## 验证动作

| 动作 | 成功信号 | 失败信号 |
|:---|:---|:---|
| 为一次文档任务记录状态、diff、门禁和提交说明 | 后续审查能复现变更链路 | 只能从对话里猜为什么这么改 |
| 抽样新增文档后跑索引检查 | README、metadata、llms 同步 | 新文档存在但入口缺失 |
| 对同一类研究文档使用固定分析骨架 | 读者能横向比较对象 | 每篇分析结构不同、不可比较 |

## 沉淀判断

- 稳定结论应下沉到 `docs/workflow/` 的 AI 修改闭环。
- `deep-dive.md` 保留源码证据；本文件负责把证据转成迁移动作。
