一个面向 Codex、Claude Code 与 TRAE CN 的本地算法面试教练。它不替你快速产出题解,而是训练并验证这条完整链路:
定位真正决策 → 建立不变量 → 比较方案取舍 → 编码 → 自造反例 → 正确性与复杂度 → 延迟迁移
当前状态:Prototype v0.1.0、公开 MIT、learning outcome pending。
当前版本是 A0 产品原型:运行时只依赖 Python 标准库,包含 6 道原创练习、分级提示、本地判题、双轴画像和到期复习。它不是在线 Judge,也不是安全代码沙箱。访问 GitHub Pages 使用指南,或查看公开仓库 estelledc/algorithm-coach。
- Skill、确定性 CLI、题库和测试需要独立版本与 CI。
- 个人 attempt 和掌握画像不应绑定某个笔记仓库或插件缓存。
- Codex、Claude Code 与 TRAE CN 可以共享同一个 skill 源码和状态目录。
- 后续可以单独演进题库、状态 schema、评测和插件分发,而不污染宿主项目。
唯一 skill 源码位于 skills/algorithm-coach/。.codex-plugin/ 与 .claude-plugin/ 只是分发清单,不复制实现。
直接安装保留简洁调用名:Codex 使用 $algorithm-coach,Claude Code 使用 /algorithm-coach。TRAE CN 从同一个 .agents/skills 入口加载 Skill,通过自然语言显式点名使用。
git clone https://github.com/estelledc/algorithm-coach.git
cd algorithm-coach
python3 scripts/install.py --dry-run
python3 scripts/install.py安装器会把同一个 skill 目录链接到:
- Codex / TRAE CN:
~/.agents/skills/algorithm-coach - Claude Code:
~/.claude/skills/algorithm-coach
它不会覆盖已有文件或不同来源的 symlink。移动 clone 后需要重新安装。安装器目前主要验证 macOS/Linux 的 symlink 工作流;Windows 状态路径已定义,但安装方式仍待实机验证。
TRAE CN 需要在“设置 → 技能与命令”中开启“启用 .agents 技能目录”。确认列表中出现 algorithm-coach 后,直接说“使用 algorithm-coach skill 开始下一道算法面试训练,不要直接给答案”。Skill 与 Slash Command 是两个入口;本项目没有额外创建 TRAE / 命令。
若要开发 Claude Code 插件,在仓库根目录执行 claude --plugin-dir .;插件模式下命令带命名空间。
官方依据:Codex Skills、Claude Code Skills、Claude Code Plugins、TRAE Agent Skills。
说“带我学习这道题”时,Skill 首轮默认不提问:先指出第一个会改变解法的关键性质,再讲不变量、方案取舍与实现陷阱。题面能直接看出的事实由 Agent 压缩说明,不要求用户复述、先交朴素解或汇报主观卡点。只有明确要求闭卷训练、逐步提示、提交测试或掌握验证时,才进入下方的证据训练流程。
代码讲解会依据用户已经暴露的基础渐进展开。初学者或明确反馈信息过载时,一轮只引入一个语法点或一个小代码片段;遇到陌生语法先暂停主算法。ACM 模式默认按数据结构、输入、核心算法和输出分段,不把“需要完整程序入口”误解成“必须一次展示整份代码”。
在 Agent 中说:
用 algorithm-coach 开始下一道算法面试训练,不要直接给答案。
在 TRAE CN 中建议显式说:
使用 algorithm-coach skill 开始 v0.2 真人训练。使用 Python,不透露算法模式,不代写核心代码。
也可以直接使用确定性 CLI:
python3 skills/algorithm-coach/scripts/coach.py init
python3 skills/algorithm-coach/scripts/coach.py next
python3 skills/algorithm-coach/scripts/coach.py start常用命令:
python3 skills/algorithm-coach/scripts/coach.py active
python3 skills/algorithm-coach/scripts/coach.py hint --reflection "我确定了候选状态,但还不能证明每一步都不会漏解"
python3 skills/algorithm-coach/scripts/coach.py submit
python3 skills/algorithm-coach/scripts/coach.py status
python3 skills/algorithm-coach/scripts/coach.py duestart 会为一次练习生成 attempt.md、solution.py、session.json 和复盘模板。Agent 负责追问与反馈,CLI 负责选题、测试、事实记录和画像重建。
状态目录优先级:
- 命令行
--home - 环境变量
ALGORITHM_COACH_HOME - 系统用户数据目录
默认位置:
- macOS:
~/Library/Application Support/algorithm-coach - Linux:
${XDG_DATA_HOME:-~/.local/share}/algorithm-coach - Windows:
%LOCALAPPDATA%/algorithm-coach
状态不写进 skill、插件缓存或当前业务仓库。CLI 使用原子文件替换,但当前没有跨进程锁;不要让 Codex、Claude Code 或 TRAE CN 同时写同一状态目录。
画像采用阶段门:
unseen → exposed → scaffolded → independent → retained → transferable
- 看过完整思路或由 AI 补码,只能算
exposed。 - 借助结构提示完成,最多算
scaffolded。 - 低提示、测试通过且能解释不变量,才可能算
independent。 - 至少隔一天闭卷重建,才可能到
retained。 - 未见变式中独立成功,才可能到
transferable。
confidence 只是调度启发式,不是掌握率。题目难度单独记录,避免把“会不会”和“能做多难”混成一个分数。
只需要先安装 uv,不需要给系统 Python 安装 pytest:
make checkmake check 固定通过 uv 使用 Python 3.12 和 requirements-dev.txt 的隔离环境,覆盖仓库结构、
可移植性、CLI smoke 和 pytest;不会依赖或污染 Homebrew / 系统 Python。需要验证其他兼容版本时,
可显式传入 CHECK_PYTHON_VERSION=3.13。Agent 行为仍需独立前向测试,例如“首次开题不泄露标签”
和“用户索要代码时不越过教练门禁”。
研究依据见 docs/research/techspar.md,可执行训练平台对标见 docs/research/open-source-benchmarks.md,有限版本门见 docs/roadmap.md,GitHub Pages 双轨版本约束见 docs/site-brief.md。当前 Site 0.0.1 只展示可复验工程事实和使用方法;证据完整的 Site 1.0.0 仍需等待真人训练、隔日迁移和跨 Agent 验证。
- runner 只运行你自己编写并信任的 Python;超时与子进程不等于安全沙箱。
- “隐藏测试”只是不在交互中展示输入,文件仍在本机可读。
- 题库使用原创题面;不要提交 LeetCode 完整题面或受限测试数据。
- 不把 Agent 生成的代码、解释或文档当作用户掌握证据。
本仓库采用 MIT License。TechSpar 只作为有出处的设计研究对象;本项目没有复制其代码、题库、提示词或资产,边界见 docs/research/techspar.md。