MCPcopy
hub / github.com/kunchenguid/no-mistakes

github.com/kunchenguid/no-mistakes @v1.33.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.33.0 ↗
4,508 symbols 20,231 edges 431 files 1,076 documented · 24%
README

git push no-mistakes

Release Platform X Discord

kunchenguid%2Fno-mistakes | Trendshift

干掉所有 slop,开出干净的 PR。

English · 简体中文

no-mistakes demo

no-mistakes 在你真实的远端前面放了一个本地 git 代理。 把分支推给 no-mistakes 而不是 origin,它会拉起一个用完即弃的 worktree,跑一条 AI 驱动的校验流水线,只有每一项检查都通过后才把分支转发到配置的推送目标,并自动开出一个干净的 PR。

  • 不阻塞 —— 流水线在隔离的 worktree 里跑,不打断你手头的工作。
  • 不挑 agent —— 支持 claudecodexrovodevopencodepi,或通过 acpxacp:<target>
  • agent 原生 —— /no-mistakes 既能让编码 agent 完成一个任务再过网关,也能直接为已提交的工作过网关:它跑完流水线、让流水线应用安全的修复,剩下的升级给你。
  • 人始终说了算 —— 自动修复,还是逐条审查 findings,你决定。
  • 默认就是干净 PR —— 推送、开 PR、盯 CI、自动修复失败,一气呵成。

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

工作原理

        你的分支
            │  git push no-mistakes
            ▼
   ┌───────────────────────────────────────────────┐
   │  用完即弃的 worktree —— 你的工作原地不动          │
   │  review → test → docs → lint → push → PR → CI │
   └───────────────────────────────────────────────┘
            │  每项检查变绿
            ▼
        干净的 PR,已替你开好

每一步要么自己通过,要么停下来给你一条 finding 让你处理。 安全、机械性的修复会自动应用;任何牵涉到你意图的,都会升级给你来 approve(批准)fix(修复)skip(跳过)。 在每项检查都变绿之前,没有任何东西会到达配置的推送目标。

安装

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

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

快速上手

$ 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 <branch>

$ git checkout my-branch

# 在分支里干点活……

$ git push no-mistakes
  * Pipeline started

  Run no-mistakes to review.

$ no-mistakes
# 打开当前运行的 TUI

如果是 GitHub fork 贡献,让 origin 指向父仓库,并用 no-mistakes init --fork-url <your-fork-url> 初始化。

在 TUI 里你逐条处理 findingauto-fix 类自动替你应用(或由你 approve 放行),ask-user 类需要你判断,由你 approve、fix 或 skip。 每项检查变绿后,网关会把你的分支转发到配置的推送目标并替你开好 PR,不用手动 git push origin,也不用手写 PR 正文。 想让编码 agent 无人值守地走完同一套流程? 用 /no-mistakes(见下文)。

触发网关的三种方式

每一处改动都走同一条流水线。改动就绪时,挑一个最贴合你当下工作方式的入口:

  • git push no-mistakes —— 显式的 Git 路径。把已提交的分支推给网关 remote,而不是 origin
  • no-mistakes —— TUI。改完之后运行它(无需先提交),向导会带你建分支、提交、推过网关,然后挂到这次运行上。no-mistakes -y 会把这一切自动做完。
  • /no-mistakes —— agent skill。用 /no-mistakes <task> 让编码 agent 完成一个任务再过网关,或用裸 /no-mistakes 为已提交的工作过网关。它跑完流水线、让流水线应用安全的修复,并在任何需要人来拍板的地方停下来问你。

no-mistakes init 会为 Claude Code 及其他 agent 安装 /no-mistakes skill。底层上这个 skill 驱动的是 no-mistakes axi —— 同一套审批流程的非交互式 TOON 接口。

完整的首次运行走查见快速上手

开发

make build   # 构建 bin/no-mistakes(带版本信息)
make test    # 运行 go test -race ./...(不含 e2e 套件)
make e2e     # 运行打了标签的端到端 agent 旅程套件
make e2e-record # agent 线格式变化时,重新录制 e2e fixtures
make lint    # 检查生成的 skill 是否漂移,并跑 go vet ./...
make skill   # 重新生成已提交的 no-mistakes skill 文件
make fmt     # 运行 gofmt -w .
make demo    # 重新生成 demo.gif 和 demo.mp4(需要 vhs 和 ffmpeg)
make docs    # 在 docs/dist 构建 Astro 文档站

完整 target 列表见 Makefile

make e2e-record 会用真实的 claudecodexopencode CLI 覆盖 internal/e2e/fixtures/,会消耗真实 API 额度,提交前应当审查。

Star 历史

Star History Chart

Extension points exported contracts — how you extend this code

Reader (Interface)
Reader is implemented by per-agent transcript readers. [7 implementers]
internal/intent/reader.go
Step (Interface)
Step is the interface that each pipeline step implements. [18 implementers]
internal/pipeline/pipeline.go
Agent (Interface)
Agent is the interface for running AI agent tasks. [16 implementers]
internal/agent/agent.go
Host (Interface)
Host is the provider-agnostic interface to a PR-hosting service. Transport (CLI vs HTTP API) is an implementation detail [5 …
internal/scm/host.go
Sink (Interface)
(no doc) [5 implementers]
internal/telemetry/telemetry.go
StepFactory (FuncType)
StepFactory creates pipeline steps for a run. Defaults to steps.AllSteps.
internal/daemon/manager.go
HandlerFunc (FuncType)
HandlerFunc processes a JSON-RPC request and returns a result or error.
internal/ipc/server.go
Disambiguator (Interface)
Disambiguator chooses among multiple accepted transcript matches when the deterministic file-overlap matcher cannot make [2 …
internal/intent/disambiguator.go

Core symbols most depended-on inside this repo

Close
called by 255
internal/agent/agent.go
NewModel
called by 210
internal/tui/app.go
Error
called by 195
internal/tui/messages.go
Run
called by 195
internal/agent/agent.go
Add
called by 187
internal/agent/agent.go
WithRoot
called by 184
internal/paths/paths.go
Error
called by 164
internal/cli/root.go
View
called by 121
internal/tui/view.go

Shape

Function 3,535
Method 624
Struct 311
TypeAlias 19
FuncType 11
Interface 8

Languages

Go100%

Modules by API surface

internal/e2e/journey_test.go108 symbols
internal/pipeline/steps/prsummary.go64 symbols
internal/pipeline/steps/pr_test.go54 symbols
internal/wizard/wizard.go50 symbols
internal/wizard/wizard_test.go47 symbols
internal/pipeline/steps/pr.go47 symbols
internal/agent/agent.go44 symbols
internal/tui/action_bar_test.go41 symbols
internal/telemetry/telemetry.go38 symbols
internal/e2e/harness.go37 symbols
cmd/fakeagent/opencode.go36 symbols
internal/pipeline/steps/common_test.go35 symbols

Dependencies from manifests, versioned

github.com/atotto/clipboardv0.1.4 · 1×
github.com/aymanbagabas/go-osc52/v2v2.0.1 · 1×
github.com/charmbracelet/bubblesv1.0.0 · 1×
github.com/charmbracelet/colorprofilev0.4.1 · 1×
github.com/charmbracelet/x/ansiv0.11.6 · 1×
github.com/charmbracelet/x/cellbufv0.0.15 · 1×
github.com/charmbracelet/x/termv0.2.2 · 1×
github.com/clipperhouse/displaywidthv0.9.0 · 1×
github.com/clipperhouse/stringishv0.1.1 · 1×
github.com/clipperhouse/uax29/v2v2.5.0 · 1×

For agents

$ claude mcp add no-mistakes \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact