Sphinx:推送前用问答检验你 AI 代码理解的 Git 钩子
Show HN: Sphinx – a hook that quizzes you on your AI's code before shipping
Sphinx 是一个开源 Git 钩子,面向 agent-assisted 开发,在代码 push 前基于 diff 向开发者出题,确认其真正理解 AI 写的代码后才放行。
作为可立即试用的开源 Git 钩子,把对 AI 代码的理解检查直接嵌入提交流程,为使用编码智能体的团队提供一种具体的兜底做法。
- 免费
- 自由开源软件
“外包你的思考,
但不要外包你的理解。”
— Sun Tzu
Sphinx 是一个用于智能体辅助开发的 Git 钩子。在你的智能体代码发布之前,它会针对这段代码的实际作用向你提一个问题。
npm install -g sphinx-understand
设计为以极少 token 运行,可对接你现有的编程智能体、OpenRouter,或任何兼容 OpenAI 的端点。
$ git push origin main
sphinx · 针对 main 的理解检查
11 个文件已变更 · +5,012 −3,147
Sphinx
你的 Webhook 处理函数现在会在调用 charge() 之前先保存事件 ID。Stripe 超时并再次发送同一事件,重试时会发生什么?
你
它会执行两次,所以顾客会被扣款两次。
Sphinx
不太对。重试时会找到已保存的 ID 并直接返回 200,不再扣款。但这个 ID 是在扣款成功之前就保存下来的。如果 charge() 失败,下一次重试会怎么做?
你
它会跳过扣款,因此顾客永远不会被收费。
✓ 已理解。正在推送到 origin/main。
一段示例对话。真正的问题来自你的 diff。
- 01
你执行推送。
或者你的智能体推送。Git 会在你受保护的分支上暂停。
- 02
Sphinx 发问。
一位从未看过你对话的评审者会阅读你的 diff,并询问当出现异常时这段改动会有什么行为。
- 03
你来回答。
答错了,你会明白其中的原因,然后再尝试新的场景;答对了,推送就会继续进行。
兼容 Codex、Claude Code、Cursor、OpenCode 与 Pi,也可直接配合 Git 使用。你的回答永远不会传至编程智能体,.env 文件与密钥也永远不会被打开。时间紧迫?sphinx yolo 会放行推送,每次跳过都会被记录。
一分钟即可上手。
# Node 22.19+ · macOS, Linux, or WSL
npm install -g sphinx-understand
sphinx install
# then push as usual
git pushsphinx install 会连接 Git 与你的编程智能体,并询问应该由哪个模型进行审查。阅读文档可了解其他全部信息。
来源:Hacker News · sphinx-six-theta.vercel.app