AI 写完,Diff 教回。
Ship with AI. Learn it back.
一个 local-first 的 diff-anchored learning layer。把 Claude / Codex / Cursor 等 AI 工具写出的 git diff,变成带代码证据链、claim 状态、概念图谱、主动回忆测验和 SRS 复习卡的学习记录。
v1.3.8 · pipx install ahadiff
每一行 AI 写的代码,都应该能把学习教回给你。AhaDiff
AI 工具让你 10x 产出,但学习曲线变成了一条平线。
Copilot / Claude 产出大量代码,你点了 Accept,却说不清它为什么有效、何时会失败。
diff 太大、上下文不够,review 变成形式主义。关键逻辑在 LGTM 中悄悄滑过。
用 AI 交付越快,技术债中「人脑里欠的那部分」累积越深,直到一次线上事故暴露一切。
每次 AI 写完代码,AhaDiff 用证据链帮你学会它。
捕获工作区、提交范围、时间窗口、patch URL、文件和目录对比等 10 种 diff 模式;发布验证分开记录捕获覆盖和 live LLM 课程生成,v1.3.8 已记录 DeepSeek 全局 provider 回归。
→生成带 file:line 链接的 claim 状态。S1 语义蕴含仍是私有 shadow-only 测量,不是语义证明。
→课文 + 测验 + SRS 卡片。三阶段撤架 (Full/Hint/Compact) 渐进掌握。
→8 维评估 100 分制。Git ratchet 只接受通过确定性门禁且不低于基线的 run,Phase 2.5 突破瓶颈。
这是一个让你和 AI 共同成长的学习系统。
每句解释都链接到 file:line 代码证据。5 种 claim 状态 (verified / weak / not_proven / contradicted / rejected) 确保可信。
采用 Anki 同源的 FSRS-6 算法,根据你的答题表现自动调整复习间隔。
Full → Hint → Compact 三阶段学习撤架。由 FSRS 记忆稳定度自动驱动,越熟悉提示越少。
accuracy / evidence / diff_coverage / learnability / quiz_transfer / spec_alignment / conciseness / safety_privacy = 100 分。
只进不退:improve loop 渐进优化,Phase 2.5 在卡住时触发结构性重写,突破质量瓶颈。
strict_local / redacted_remote / explicit_remote 三档隐私。远端请求前会执行隐私与脱敏门禁。
OpenAI / Anthropic / Gemini / Azure / DeepSeek / Ollama 等 9 种 API 格式。BYOK,自动探测上下文长度;DeepSeek 走 JSON object 兼容模式,全局 provider 可直接选择并保存。
Claude、Codex、Gemini、Cursor、GitHub Actions、Git hooks 等 CLI / IDE / CI 目标都能接入。
把学习记录导出、复习,或接进你的 agent 与 CI。
WebUI 一键导出 Anki .apkg;CLI 用 export-results 写 results.tsv,export preview 生成本地静态预览包。
Claude、Codex、Cursor、Copilot、GitHub Actions、Git hooks 等 CLI / IDE / CI 的项目级接入指引。
从 diff 捕获到 UI 渲染,每一层各司其职。
从 learn 到复习,一个真实 run 的完整演示(带字幕)。
视频里的安装就是 pip install ahadiff,一行装好。(现在推荐用 pipx 隔离安装,见下方安装说明)
在任何 git 仓库中运行 ahadiff,立刻获得带证据链的学习反馈。
示例输出。具体数字取决于你的 diff。
Dashboard、Lesson、Diff、Quiz、Review、Concepts、Settings:一个本地 React SPA。








保留 Code Review,再补上缺失的学习环。
| Tool | Verified Claims | SRS | Ratchet | Local-first | Evidence Chain | Agent Install |
|---|---|---|---|---|---|---|
| AhaDiff | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Code Wiki | – | – | – | – | ∼ | – |
| Diffity | ∼ | – | – | ✓ | – | – |
| Anki + Code | – | ✓ | – | ✓ | – | – |
| Exercism | – | – | ∼ | – | – | – |
本表反映 AhaDiff 自身的定位和设计重点,不是对其他工具的独立评测。
从捕获到复习,常用命令一览。
ahadiff init | 在仓库里初始化 .ahadiff/ 状态目录 |
ahadiff provider test | 注册并探测一个 LLM 供应商 |
ahadiff learn <range> | 把一段 diff 变成带证据的课程 |
ahadiff quiz <run_id> | 对刚学的 run 做主动回忆测验 |
ahadiff review | 按 FSRS 复习到期卡片 |
ahadiff verify <run_id> | 重新校验 claims 与评分 |
ahadiff improve --rounds N | 在 git worktree 里迭代优化生成 prompt(仅源码 checkout) |
ahadiff improve-run <run_id> | 重新生成课程,仅当确定性评分更高时保留;任何安装方式可用(含 pip) |
ahadiff serve | 打开本地 Web UI |
ahadiff export preview | 生成本地静态预览包 |
ahadiff watch | 工作区变更自动 learn |
ahadiff install hooks --auto-learn | 每次 commit 后后台自动 learn |
ahadiff mcp-server | 面向 AI 工具的只读 MCP server(7 个工具) |
完整命令和 10 种捕获模式见使用指南;v1.3.8 本地 gate 和 live DeepSeek 全局 provider run 已记录,发布状态见 GitHub Release 与 PyPI。
几步之内,从安装到第一节课。
推荐用 pipx install ahadiff 隔离安装已发布的 CLI 和内置 WebUI(uv tool install ahadiff 同样可以,都不需要 git clone),然后配置一个 LLM 供应商。learn 在配置供应商前无法运行。在 venv / conda 里用 pip install ahadiff 也可以;在 Homebrew / 系统 Python 上直接 pip 会触发 externally-managed-environment,改用 pipx 或 uv 即可。
provider test 会发一个小探针请求,成功后把供应商写入 .ahadiff/config.toml。--api-key-env 填的是环境变量名,不是密钥本身。DeepSeek BYOK 使用 openai_compat 与 https://api.deepseek.com;结构化输出走 JSON object mode。DeepSeek v4 的 Thinking Level 只有「无」会关闭思考,低 / 中 / 高会按高处理。不想敲命令?先 ahadiff serve,在 Settings 里用表单添加仓库级或全局 provider,保存前还能预览模型限额。在你的项目中运行 learn 命令,分析最近一次提交的 diff。
打开 Web UI 进行 SRS 复习和测验,巩固知识。
pipx install ahadiff(或 uv tool install ahadiff)隔离安装已发布的 CLI 和内置 WebUI,不需要 git clone。在 Homebrew / 系统 Python 上直接 pip install 会触发 externally-managed-environment,改用 pipx 或 uv 即可;源码 checkout 只适合贡献者开发。