no-mistakes: Skill for Claude Code

.agents/skills/pr-enforcement-action/SKILL.md

pr-enforcement-action is a skill for Claude Code from kunchenguid/no-mistakes. It costs 32 tokens per session (1,111 once invoked), scanned A, original, MIT.

A shared GitHub Action that checks whether a pull request has passed required review, testing, and documentation steps. A pull request is a proposed code change awaiting review.

In plain words
What is it for?
Use it when changing or migrating the shared no-mistakes pull-request enforcement action or the workflow that calls it.
Why use it?
It replaces copied repository-specific scripts with one pinned check and prevents a pull request from weakening the rules it is meant to satisfy.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: installed under .agents/ (shared by several agents); mentions AGENTS.md.

This is kunchenguid/no-mistakes's own configuration. It tells Claude Code how to work on no-mistakes itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything no-mistakes configures →

About the project

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.

kunchenguid/no-mistakes · 8,945 stars · on GitHub · kunchenguid.github.io

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/.agents/skills/pr-enforcement-action/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/kunchenguid/no-mistakes

Made for: Claude Code.

Wrote 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.

agentmods badge for pr-enforcement-action

README.md
[![agentmods](https://agentmods.dev/badge/skills/kunchenguid/no-mistakes/pr-enforcement-action/github.svg)](https://agentmods.dev/skills/kunchenguid/no-mistakes/pr-enforcement-action)
Your own site
<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.

agentmods 80×15 button for pr-enforcement-action

Your own site · 80×15
<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>
Per session 32 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,111 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 29d ago against content hash 34ea6ccc45dc, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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}/
.agents/skills/pr-enforcement-action/SKILL.md · 23 lines

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-mistakes gate is a composite action that lets enforcing repositories replace copied, drift-prone scripts. It verifies the signature line, parses the v1 pipeline-step attestation, binds head_sha to the PR head, and requires review, test, and document to be completed. 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.md owns 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 downloads uses: 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-tree verify.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 in exempt-authors. An in-job exemption still needs the run to start, and a GITHUB_TOKEN PR's run is created in action_required and never starts; the paths-ignore entries 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_steps in verify.py), and a skip-shaped sibling field on a completed record is deliberately not inspected. Some pre-migration inline gates were stricter (requiring every record of a name to be completed); 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), synchronize is the event that judges a pipeline-pushed head, so it is restored rather than dropped after head_sha binding.
  • Migrating a repository is rarely a one-file swap. Repos whose tests extract and execute the inline run: block (an extractGateScript() helper and its gate test) break at import once the block is gone, and repo-level AGENTS.md notes 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.go executes verify.py the way a runner does (verdicts, exemption surface, event-payload binding); workflow_no_mistakes_required_test.go owns 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.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}/pulls/{number} with the forwarded github-token as a Bearer token, no gh CLI), not from GITHUB_EVENT_PATH, whenever a caller forwards no explicit pr-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 and collapseLatestByName (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 (no pull-requests: read, no token, or the API call fails), the gate fails closed rather than certifying compliance from the possibly-stale event payload; explicit pr-body/pr-head-sha inputs always skip the live lookup and win, unchanged.
  • Tests: require_no_mistakes_action_test.go (TestRequireActionLiveLookupOverridesStaleArchivedEvent and siblings).

Read the full file on GitHub · 23 lines

Changes

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.

  1. 29d ago Changed · +5 lines · +6 tokens per session 34ea6ccc45dc
  2. 1mo ago Changed f27c2d4ea496
  3. 1mo ago First seen · 18 lines · 26 tokens per session scan A f35fcfb75bc3

Subscribe to this mod's changes

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.

Related

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.

Yeachan-Heo/oh-my-claudecode · 47 tokens

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.

diegosouzapw/OmniRoute · 46 tokens

otto-pr-review-loop

Run Polly and OCR on a PR until all findings settle.

omnigent-ai/omnigent · 17 tokens

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.

Gentleman-Programming/engram · 37 tokens

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.

daymade/claude-code-skills · 105 tokens

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…

umputun/revdiff · 248 tokens