SuperAPI AI 工具集

no-mistakes

部署与运维

查看项目

更新于 10-16 09:03

技能介绍

用途

no-mistakes 是一个用于 Git 仓库的「门控推送」(gated push)工作流工具。它把「功能已完成、准备推送」这一环节组织成一条可检查、可干预的流水线,替代直接执行 git push 的做法。其流水线顺序为:intent -> rebase -> review -> test -> document -> lint -> push -> pr -> ci。

主要能力

  • 就绪检查:通过内置脚本检查 git、no-mistakes、各 provider CLI、受支持的 agent 二进制、origin 与 no-mistakes 远程、.no-mistakes.yaml 以及 no-mistakes doctor 状态。
  • 门控推送:使用 git push no-mistakes <branch> 推送,而非 git push origin。
  • 运行跟踪:可附加到当前运行(no-mistakes、no-mistakes attach),查看流水线各步骤结果。
  • 发现处理:对阻塞项按步骤(rebase、review、test、document、lint、push、pr、ci)归类,判断属于用户决策、代码修复、配置修复还是外部服务故障。
  • 重跑:使用 no-mistakes rerun 重新尝试。
  • 跳过与向导:no-mistakes --skip test,lint 或 git push -o no-mistakes.skip=test,lint no-mistakes <branch> 用于一次性跳过;no-mistakes 与 no-mistakes -y 用于引导未提交工作的分支/提交/推送。
  • 仓库初始化与移除:no-mistakes init 添加本地 no-mistakes 远程并在 ~/.no-mistakes(或 NM_HOME)下创建门控状态,不删除 origin;no-mistakes eject 移除当前仓库的门控。

使用方式

  1. 检查就绪:在仓库根目录运行内置脚本(只读、仅标准库):

python3 <skill-dir>/scripts/check_no_mistakes.py --cwd . python <skill-dir>/scripts/check_no_mistakes.py --cwd .

需要机器可读输出时加 --json。随后检查 Git 状态:

git status --short --branch git branch --show-current git remote -v no-mistakes status no-mistakes runs --limit 10

  1. 确认推送:在任何影响远程的命令前,明确说明分支与命令,例如:

Ready to push <branch> through no-mistakes with: git push no-mistakes <branch>

  1. 通过门控推送:git push no-mistakes <branch>。

  2. 附加并驱动运行:no-mistakes 或 no-mistakes attach。

  3. 处理发现:总结具体步骤、引用关键错误文本、判断类型,仅在用户要求时实施代码/配置修复,修复后重跑或继续;需要再次尝试时使用 no-mistakes rerun。

  4. 报告结果:是否已推送、PR URL(若创建/更新)、CI 状态、剩余阻塞项。

安装(仅在缺失或损坏时作为回退):

macOS/Linux release binary; installs/restarts daemon

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

Go install; telemetry off by default unless configured at runtime

go install github.com/kunchenguid/no-mistakes/cmd/no-mistakes@latest

Source checkout

make build make install

安装后运行 no-mistakes doctor。依赖:git 与至少一个受支持的 agent 二进制(claude、codex、opencode、acli for Rovo Dev、pi)或用于 ACP 目标的 acpx;PR/CI 步骤中 GitHub 使用 gh,GitLab 使用 glab,Bitbucket Cloud 使用 NO_MISTAKES_BITBUCKET_EMAIL 与 NO_MISTAKES_BITBUCKET_API_TOKEN。

仓库设置:

git remote -v no-mistakes init

配置示例(.no-mistakes.yaml):

agent: codex

commands: test: "go test -race ./..." lint: "go vet ./..." format: "gofmt -w ."

ignore_patterns:

  • "*.generated.go"
  • "vendor/**"

auto_fix: rebase: 3 review: 0 test: 3 document: 3 lint: 3 ci: 3

若省略 commands,所选 agent 会尝试自动检测检查项。机器本地路径或标志可放在全局配置 ~/.no-mistakes/config.yaml 的 agent_path_override 中。

适用场景

  • 功能开发完成、原本要执行 git push 时,改用门控推送流程。
  • 需要统一本地与远程检查(测试、lint、格式、文档、评审)后再推送的仓库。
  • 希望由 agent 协助处理流水线发现并修复失败 CI 的场景。

限制与注意事项

  • git push no-mistakes、裸 no-mistakes -y 以及 CI 自动修复运行均属于影响远程的操作,除非用户明确要求推送/PR 流程,否则应先询问。
  • 分支脏且用户未要求提交、当前分支为 main/master/develop 等受保护基分支、缺少 origin、缺少 no-mistakes 远程且未批准 init、doctor 报告硬失败时,应停止并询问。
  • 本地确定性检查来自 commands.test、commands.lint、commands.format;AI 判断覆盖 diff 评审、缺失文档检查、自动修复尝试以及无命令时的检查检测;远程 CI 仍属于 Git provider,no-mistakes 仅监视并可请求 agent 修复失败任务。
  • 若 doctor 找不到 agent,先检查 PATH,再在 ~/.no-mistakes/config.yaml 设置 agent_path_override;若守护进程缺少环境变量,应放入登录 shell 加载的启动文件后重启守护进程;若 PR/CI 步骤跳过,检查 gh/glab 认证或 Bitbucket 环境变量。
  • 「clean」指分支通过了配置的本地与远程门控,并不代表完美。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。