no-mistakes is a local Git proxy that validates changes in an isolated worktree before forwarding a push to the real remote and opening a pull request. It is for developers and coding agents that want automated checks, safe fixes, CI repair, and human review before changes are published.
Borrowing it
Nothing to install: this file belongs to kunchenguid/no-mistakes. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/.agents/skills/pr-enforcement-action/SKILL.mdgit clone --depth 1 https://github.com/kunchenguid/no-mistakesWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kunchenguid/no-mistakes/pr-enforcement-action)<a href="https://agentmods.dev/skills/kunchenguid/no-mistakes/pr-enforcement-action"><img src="https://agentmods.dev/badge/skills/kunchenguid/no-mistakes/pr-enforcement-action/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kunchenguid/no-mistakes/pr-enforcement-action"><img src="https://agentmods.dev/badge/skills/kunchenguid/no-mistakes/pr-enforcement-action.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00032 | $0.01111 |
| Opus 5.5 | $0.00013 | $0.00444 |
| Sonnet 5.5 | $0.00006 | $0.00222 |
| Haiku 4.5 | $0.00003 | $0.00111 |
Grade A, and why
pr-enforcement-action scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 29d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- `.github/actions/require-no-mistakes/verify.py` reads the PR body/head SHA it verifies from a **live** GitHub REST API lookup first (via `live_pr_facts`, a direct `urllib.request` GET to `{GITHUB_API_URL}/repos/{repo}/ How it starts
The opening of the file, as written. The whole thing — 23 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Shared PR-Enforcement Action (.github/actions/require-no-mistakes)
- The shared implementation of the
PR must be raised via no-mistakesgate is a composite action that lets enforcing repositories replace copied, drift-prone scripts. It verifies the signature line, parses the v1 pipeline-step attestation, bindshead_shato the PR head, and requiresreview,test, anddocumentto becompleted. Callers pin a release tag or commit SHA, never@main, which the judged PR can edit. Per-repo configuration is exemptions only (exempt-authors,exempt-bot-authors,exempt-head-branches); which steps are required is deliberately not an input, so no caller can weaken the gate while still reporting the same check name. The action README owns usage;CONTRIBUTING.mdowns the contributor-facing contract. - This repository's own gate (
.github/workflows/no-mistakes-required.yml) is a thin caller of the action, pinned at an already-published commit SHA. GitHub downloadsuses:at job setup, so the pin must always name a ref that already carries the action. That pin IS the self-certification guard: a PR editing the action is fully tested on its own head (the Go tests execute the working-treeverify.py) while the required check judging it runs the published pinned copy, so the change cannot rewrite its own judge. Bumping the pin is a separate deliberate PR. - This repo's automation exemptions stay in the job-level
if:, not inexempt-authors. An in-job exemption still needs the run to start, and a GITHUB_TOKEN PR's run is created inaction_requiredand never starts; thepaths-ignoreentries exist for the same reason. Repos without that constraint should prefer the action's inputs. - Duplicate step records are LAST-WINS by design (
check_required_stepsinverify.py), and a skip-shaped sibling field on acompletedrecord is deliberately not inspected. Some pre-migration inline gates were stricter (requiring every record of a name to becompleted); that strictness is explicitly NOT the standard, and relaxing to last-wins on migration is the intended outcome, not a regression. Do not "harden" this without an owner decision. - All callers use the T2 trigger set (
opened,edited,synchronize,reopened). Since the pre-push attestation change (#994),synchronizeis the event that judges a pipeline-pushed head, so it is restored rather than dropped afterhead_shabinding. - Migrating a repository is rarely a one-file swap. Repos whose tests extract and execute the inline
run:block (anextractGateScript()helper and its gate test) break at import once the block is gone, and repo-levelAGENTS.mdnotes that tell agents to hand-copy the gate from a sibling repository must be rewritten - that copying is the drift the shared action exists to remove. - Regressions:
require_no_mistakes_action_test.goexecutesverify.pythe way a runner does (verdicts, exemption surface, event-payload binding);workflow_no_mistakes_required_test.goowns the CALLER - immutable-SHA pin, single delegating step, exemptions, triggers, concurrency identity, fork boundary - and drives the real action through the event payload.
Stale Actions Event Replay Can Resurrect a Superseded Check (require-no-mistakes)
.github/actions/require-no-mistakes/verify.pyreads the PR body/head SHA it verifies from a live GitHub REST API lookup first (vialive_pr_facts, a directurllib.requestGET to{GITHUB_API_URL}/repos/{repo}/pulls/{number}with the forwardedgithub-tokenas a Bearer token, noghCLI), not fromGITHUB_EVENT_PATH, whenever a caller forwards no explicitpr-body/pr-head-sha(the documented zero-input integration every caller actually uses). A GitHub Actions job rerun replays the event payload archived at the run's original trigger rather than delivering a fresh one; re-running an old, already-superseded failed run therefore used to reproduce its stale verdict with a brand-new check-run timestamp, which both GitHub's own required-check view andcollapseLatestByName(internal/scm/github/github.go) treat as current - pinning a stale FAILURE next to an already-green commit with no clean recovery short of a new SHA. When a required live lookup is unavailable (nopull-requests: read, no token, or the API call fails), the gate fails closed rather than certifying compliance from the possibly-stale event payload; explicitpr-body/pr-head-shainputs always skip the live lookup and win, unchanged.- Tests:
require_no_mistakes_action_test.go(TestRequireActionLiveLookupOverridesStaleArchivedEventand siblings).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 29d ago Changed · +5 lines · +6 tokens per session 34ea6ccc45dc
- 1mo ago Changed f27c2d4ea496
- 1mo ago First seen · 18 lines · 26 tokens per session scan A f35fcfb75bc3
pr-enforcement-action is a skill published in the GitHub repository kunchenguid/no-mistakes (8,945 stars, last pushed today), licensed MIT. It adds 32 tokens to every session and 1,111 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
pr
Draft a PR body from OMC's paper trail — the smallest visual that proves the change, evidence consumed from the verify protocol (never re-collected), reversibility from the ADR test on the diff, glossary language throughout.
merge-batch
Prepare and merge an owner-selected PR batch with contributor credit and exact-candidate admission. Use for a pasted PR list; combined focused validation is diagnostic, and every actual landing still requires its applicable checks and authorization.
otto-pr-review-loop
Run Polly and OCR on a PR until all findings settle.
engram-branch-pr
PR creation workflow for Engram following the issue-first enforcement system. Trigger: When creating a pull request, opening a PR, or preparing changes for review.
github-contributor
A step-by-step guide for contributing code, tests, documentation, or build changes to open-source projects you do not maintain. It explains how to prepare a pull request that follows the project’s rules and is easier for maintainers to review.
revdiff
Review diffs, files, and documents with inline annotations in a TUI overlay, or answer questions about revdiff usage, configuration, themes, and keybindings. Opens revdiff in agterm/tmux/zellij/herdr/kitty/wezterm/cmux/ghostty/iterm2/emacs-vterm, captures annotations, and addresses them. Works in git, hg, and jj repos…