开源项目

no-mistakes

no-mistakes

Git 推送代理工具,在代码推送到远程前自动运行 AI 驱动的审查/测试/ lint 管道,所有检查通过后才创建干净的 PR。亮点是与多种 coding agent(Claude、Codex 等)兼容,支持自动修复安全机械性错误,人类只需处理涉及意图的发现。今日 stars 暴涨,适合追求代码质量和自动化 PR 流程的团队。

README

git push no-mistakes

发布状态 平台 X Discord

清除所有杂乱,提交干净的 PR。

English · 简体中文

no-mistakes 演示

no-mistakes 在你真实的远程仓库前放置了一个本地 Git 代理。 将分支推送到 no-mistakes 而不是 origin,它会创建一个可丢弃的工作目录(worktree),运行一个 AI 驱动的验证流水线,仅在所有检查通过后将分支转发到配置的推送目标,并自动打开一个干净的 PR。

  • 非阻塞 - 流水线在隔离的工作目录中运行,不会干扰你的工作。
  • Agent(智能体)无关 - 支持 claude、codex、rovodev、opencode 或通过 acpx 的 acp:<target>。
  • Agent 原生支持 - /no-mistakes 让你的编码智能体(coding agent)执行一个任务并将其门控,或者对已有的已提交工作进行门控:它会运行流水线,让流水线应用安全修复,并将剩余需要人为判断的部分升级给你处理。
  • 人始终掌握决策权 - 自动修复或审查发现的问题,由你决定。
  • 默认生成干净的 PR - 一键推送、打开 PR、观察 CI(持续集成)并自动修复失败。

完整文档:https://kunchenguid.github.io/no-mistakes/

工作原理

        你的分支
            │  git push no-mistakes
            ▼
   ┌──────────────────────────────────────────────┐
   │  可丢弃的工作目录 — 你的工作保持原样          │
   │  审查 → 测试 → 文档 → 代码检查 → 推送 → PR → CI │
   └──────────────────────────────────────────────┘
            │  所有检查通过
            ▼
        为你打开的干净 PR

每个步骤要么自行通过,要么带着一个 发现(finding) 停下来,等待你处理。 安全的、机械式的修复会被自动应用;任何涉及你意图的内容都会被升级给你 批准、修复 或 跳过。 除非所有检查都通过,否则任何内容都不会到达配置的推送目标。

安装

curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh

Windows、Go 安装以及从源码构建的说明见安装指南。

快速开始

$ no-mistakes init
  ✓ 门控初始化完成

    仓库  /Users/you/src/my-repo
    门控  no-mistakes → /Users/you/.no-mistakes/repos/abc123def456.git
   远程  git@github.com:you/my-repo.git
    技能  /no-mistakes 已安装到用户级别的智能体中

  通过门推送时请使用:
  git push no-mistakes <branch>

$ git checkout my-branch

# 在分支上做一些工作...

$ git push no-mistakes
  * 流水线已启动

  运行 no-mistakes 进行审查。

$ no-mistakes
# 打开当前运行的 TUI(终端用户界面)

对于 GitHub fork 贡献,将 origin 指向父仓库,并用 no-mistakes init --fork-url <your-fork-url> 初始化。

在 TUI 中你可以对每个发现进行处理:自动修复类型的发现会被自动应用(或批准后应用),需要用户判断类型的发现则需要你批准、修复或跳过。 一旦所有检查通过,门控会将你的分支转发到配置的推送目标并为你打开 PR,因此无需手动执行 git push origin,也无需手动编写 PR 描述。 希望让你的编码智能体以无头模式驱动同样的流程?使用 /no-mistakes(见下文)。

三种触发门控的方式

每个变更都通过相同的流水线执行。根据你完成变更时的工作方式选择入口:

  • git push no-mistakes - 显式的 Git 路径。将已提交的分支推送到门控远程仓库而不是 origin。
  • no-mistakes - TUI。在做出变更后运行(无需提交),向导会引导你创建分支、提交并通过门控推送,然后关联到运行中。no-mistakes -y 会自动完成所有这些步骤。
  • /no-mistakes - 智能体技能。告诉编码智能体执行一个任务并通过 /no-mistakes <task> 进行门控,或者使用裸的 /no-mistakes 对已有的已提交工作进行门控。它会运行流水线,让流水线应用安全修复,并在遇到需要人为判断的内容时停下来询问你。

no-mistakes init 会为 Claude Code 和其他智能体安装 /no-mistakes 技能。在底层,该技能驱动 no-mistakes axi,一个面向同一审批流程的非交互式 TOON 接口。

参见快速入门了解完整的首次运行向导。

开发

make build   # 构建 bin/no-mistakes,包含版本信息
make test    # 运行 go test -race ./...(不包括 e2e 测试套件)
make e2e     # 运行标记的端到端智能体旅程测试套件
make e2e-record # 当智能体通信格式变化时重新录制 e2e 测试夹具
make lint    # 检查生成的技能文件是否漂移,并运行 go vet ./...
make skill   # 重新生成已提交的 no-mistakes 技能文件
make fmt     # 运行 gofmt -w .
make demo    # 重新生成 demo.gif 和 demo.mp4(需要 vhs 和 ffmpeg)
make docs    # 构建 docs/dist 中的 Astro 文档站点

查看 Makefile 获取完整的目标列表。

make e2e-record 会用真实的 claude、codex 和 opencode CLI 覆盖 internal/e2e/fixtures/,消耗真实的 API 配额,提交前请仔细审查。

Star 历史

Star 历史图表
开源项目kunchenguid2026-06-24原文

相关内容