📌 项目地址kunchenguid/no-mistakes | ⭐ 1,888 颗星 | 🔧 Go | 📜 未标注

别让有问题的代码流入远程仓库

你是否有过这样的经历:写了一个功能,自我感觉良好,git push origin 后打开 PR,结果 CI 跑出一堆 lint 错误、测试失败、文档缺失。更糟的是,AI 辅助编码越来越多,偶尔生成的“幻觉”代码可能混进仓库。传统做法是在本地手动运行 lint/test,但容易遗漏,且不同开发者习惯不同。GitHub Actions 虽然能在推后检查,但修复后需要重新推送,流程断断续续。

no-mistakes 解决的是“推之前验证”的问题。它在你的本地和远程之间架设一道“门”,你永远不需要直接 git push origin,而是 git push no-mistakes。这道门会在一个隔离的临时工作目录中自动运行审查、测试、文档、lint 等检查,只有全部通过才真正把分支推到远程,并自动为你创建 PR。整个过程不影响你当前的工作目录——你可以继续在原来的分支上写代码,后台管道并行运行。

从安装到第一条通过的 PR

安装很简单(一行命令),然后在你的仓库中初始化:

curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh
$ no-mistakes init
  ✓ Gate initialized

    repo  /Users/you/src/my-repo
    gate  no-mistakes → /Users/you/.no-mistakes/repos/abc123def456.git
  remote  git@github.com:you/my-repo.git
   skill  /no-mistakes installed for agents at user level

  Push through the gate with:
  git push no-mistakes

初始化后,你的仓库多了一个名为 no-mistakes 的 remote,指向本地的一个裸仓库(gate)。平时正常在分支上开发,最后推送时用 git push no-mistakes 即可触发管道:

$ git checkout my-branch
# 在分支上做一些工作……
$ git push no-mistakes
  * Pipeline started

  Run no-mistakes to review.

$ no-mistakes
# 打开 TUI,显示每个检查的结果

no-mistakes 命令(不加参数)会唤起一个文本用户界面(TUI),列出所有检查步骤的进度和发现(findings)。发现分为两类:

  • auto-fix:可以机械修正的问题(如格式、拼写),管道会直接应用修复,你只需 approve 即可。
  • ask-user:涉及代码意图的问题(如逻辑错误、安全风险),管道会暂停,等待你 approve、fix 或 skip。

只有当所有检查都通过(绿色)后,gate 才会把分支推到你配置的远程(例如 github.com:you/my-repo.git)并自动创建 PR。这意味着你完全不用手动写 PR 描述,也不用再 git push origin

它和 CI / pre-commit hook 有什么不同?

对比维度 no-mistakes pre-commit hook GitHub Actions
运行时机 推送到 gate 后(本地) commit 前 push 后(远程)
隔离性 使用 disposable worktree,不影响当前工作区 在当前工作区执行 远程执行
自动化程度 可自动修复 + 创建 PR 仅阻止或提示 仅检查
AI 驱动 内置 AI agent 集成(claude, codex 等) 可调用 API 但配置复杂
人类控制 每个 finding 可 approve/fix/skip 仅阻止或通过 检查失败后需手动修复

核心区别在于:no-mistakes 不是“检查-阻止”模式,而是“检查-修复-放行-自动开 PR”模式。它还能与你的 AI 编码 agent 配合:在 agent 写代码时使用 /no-mistakes 命令,让 agent 自己把写好的代码推入管道,自动完成验证。

注意:不是银弹

  • 需要 AI 模型支持:管道中的审查、修复依赖外部 AI agent(如 Claude、Codex 等)。你得有可用的 API key,并且对应 agent 已安装。如果模型响应慢或不可用,流程可能阻塞。
  • 不是强制约束:你仍然可以直接 git push origin 绕过 gate。no-mistakes 更像一个习惯工具,而不是安全控制。
  • 仅支持 Git 仓库:目前只在 Git 工作流中有效,不适用于其他版本控制。
  • 许可证:项目采用什么许可证?README 未明确提及,使用前请检查仓库 license 文件。从官方描述看,它可能不是严格的商业友好许可,个人项目使用无碍。
  • 学习成本:需要在心理上适应“先推 gate,再从 TUI 里 approve”,而不是传统的推完就跑。不过一旦习惯,它会大幅减少你手动修复 CI 失败的时间。

上手建议

如果你经常使用 AI 辅助编码,或者团队希望统一推前验证流程,可以试试这个工具。从一个小项目开始,运行 no-mistakes init,然后 git push no-mistakes,观察管道如何工作。当它自动帮你修复一个漏掉的注释或缩进并直接开好 PR 时,你就能体会到它的价值。

完整文档(包括 Windows 安装、自定义管道步骤、agent 配置)请查阅官方文档:https://kunchenguid.github.io/no-mistakes/

这篇文章对你有帮助吗?

发表回复