Agent skill

Gap Trap

by pliablepixels in pliablepixels/gap-trap

A skill your agent uses when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when…

MITAuto-check: notesTesting & QA

Install Gap Trap

skills CLI
$ npx skills add pliablepixels/gap-trap --skill gap-trap -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pliablepixels/gap-trap gap-trap --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pliablepixels/gap-trap.git skills-src && mkdir -p .claude/skills && cp -r skills-src/gap-trap .claude/skills/gap-trap && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gap-trap
GitHub stars
181
Token cost
~2.3k tokens
SKILL.md length
1,409 words
Files
24
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when…

  • Works in 8 steps: Discover. Follow reference/discovery.md.… → Confirm once. Show the plan as a short… → Install slop-mop. git clone… → …
  • Asked to set up
  • SKILL.md covers Model gate, setup, refine and Common mistakes
  • Calls git; reaches github.com

What it does

Gap Trap is an agent skill from pliablepixels/gap-trap. Use when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when the user says "gap-trap", "gap-trap setup", "gap-trap refine", "gate the rules", or "make the agents' code match the rules".

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 29 other files (for example `reference/discovery.md`, `reference/framework.md` and `reference/gates.md`).

It sits in Testing & QA, covering CI/CD. It works with GitHub Actions. The repository describes itself as: Turns vibe coding into high quality code. Sets up rules and gates in your repo so AI-written code stays correct without you reviewing every line. The licence is MIT.

When your agent uses it

  • Asked to set up
  • Refine an agent quality framework in a repository (rules with gates
  • Architecture contracts
  • Proven-red tests

Example prompts

  • “gap-trap”
  • “gap-trap setup”
  • “gap-trap refine”
  • “/gap-trap”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Discover. Follow reference/discovery.md. It produces a plan
  2. Confirm once. Show the plan as a short list: the contracts you
  3. Install slop-mop. git clone https://github.com/pliablepixels/slop-mop.git
  4. Write the instruction files from templates/. AGENTS.md and
  5. Write the gates from reference/gates.md, in the repo's own test
  6. Prove each gate red with a scratch violation, remove the
  7. Report what was written, the instruction word count against the
  8. Offer a check. End the report with one question: check the repo

What it can do on your machine

Read from SKILL.md and the folder at commit 119403d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gap Trap loads about 2.3k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,409 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:58
    er the module under test, not a missing `.env`;

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pliablepixels/gap-trap at commit 119403d, republished under its MIT licence (© pliablepixels). 1,409 words, ~2,305 tokens.

Download SKILL.mdSave it as .claude/skills/gap-trap/SKILL.md (or your agent's skills folder). This skill also uses 23 other files; get the full folder from GitHub.
name
gap-trap
description
Use when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when the user says "gap-trap", "gap-trap setup", "gap-trap refine", "gate the rules", or "make the agents' code match the rules".

gap-trap

Sets up a quality framework for repositories where agents write most of the code. Every rule the agents follow has a gate that fails a commit, a push, or a CI run when the rule breaks. A rule a script could check but that names no gate is a defect. The framework is the one described in reference/framework.md; read it before either mode.

Two modes: setup builds the framework in a repo that has none. refine audits a repo that has it and proposes the next rules and gates from what broke. Bare gap-trap with no keyword means setup when the repo has no AGENTS.project.md, otherwise refine. A hand-written AGENTS.md or CLAUDE.md on its own is input to setup, not a sign the framework exists.

Model gate

This skill runs on the top coding model of your harness: in Claude Code, Opus or a more capable model (Opus 4.8 or newer, Opus 5, Fable, Mythos); in Codex, the frontier coding model at high or xhigh reasoning effort. Discovery decides which parts of a codebase get a contract, and a wrong contract costs every later session. Your system prompt names your model.

If it is a cheaper or faster tier (Sonnet, Haiku, a mini model, or low reasoning effort), stop. Read nothing, write nothing. Say exactly this and end the turn:

gap-trap runs on the top coding model of this harness. You are on <model name>. Switch with /model, then run gap-trap again.

Do not dispatch stronger subagents from a weaker orchestrator, start "the easy parts", or offer a lighter version.

setup

  1. Discover. Follow reference/discovery.md. It produces a plan file in your scratch directory: stack, commands, CI provider, contract candidates with real symbol names, the first domain facts from history (the revert probe runs at any commit count), and one row per rule found in an existing instruction file with where it goes and what gates it.
  2. Confirm once. Show the plan as a short list: the contracts you will write (at most six), the gates you will add, the test and lint commands you found, the migrated-rules table, and where slop-mop goes. A build, type check, or lint that is already red is the first item: setup fixes only what its own gate files need (a missing type package, a lockfile) and records the rest as a ratchet count or an out-of-scope entry. Name the cause of each red before recording it: reproduce it, read the failure, and say what is broken. A failure that names an environment variable can still be a code defect. In one trial, seven tests failing with Environment variable not found: DATABASE_URL were a Prisma mock loaded after the module under test, not a missing .env; recording that as an environment gap would have buried the bug and the contract that prevents it. Ask one round of questions, only about what discovery could not settle. Then proceed.
  3. Install slop-mop. git clone https://github.com/pliablepixels/slop-mop.git into your scratch directory and copy slop-mop/slop-mop to the skills directory of the harness you are running in (Claude Code: ~/.claude/skills/; Codex: ~/.agents/skills/), skipping it if present. It is not vendored into the repo; the project rule in AGENTS.project.md requires it. A harness loads its skill list when the session starts, so a skill installed here is not available to the run that installed it: write this run's prose from P10 in AGENTS.md, and tell the user in the report that slop-mop applies from their next session.
  4. Write the instruction files from templates/. AGENTS.md and agents/generic/agent-workflows.md are copied unchanged, with one exception: a rule whose gate cannot exist in this repo (I3's accessibility lint and C3's locales in a repo with no UI) gets its Gate: clause replaced by Gate: n/a, no <thing> in this repo. Nothing else in AGENTS.md changes. AGENTS.project.md, CLAUDE.md, and agents/project/ are filled from the plan; drop the UI and end-to-end lines and {{E2E_CMD}} when the repo has no UI, and delete every placeholder you cannot fill with a verified value. Contracts name real symbols only. Existing instruction files (AGENTS.md, CLAUDE.md, .cursorrules, .github/copilot-instructions.md, CONTRIBUTING.md) are migrated from the plan's migrated-rules table, one row at a time: a contract row becomes a contract block, a rule row becomes a project rule with its gate name or Gate: review, a playbook row goes verbatim into the named agents/project/ file, a command row fills the verification block, and a duplicate or dropped row is left out. No rule is dropped silently; the confirm step showed the table. A file whose name a template owns (AGENTS.md, CLAUDE.md) is replaced by that template. Any other instruction file (.cursorrules, .github/copilot-instructions.md) becomes a one-line pointer to AGENTS.md, so the agent that reads it lands on the rules instead of a stale copy. CONTRIBUTING.md stays where it is. The user sees the diff.
  5. Write the gates from reference/gates.md, in the repo's own test runner and CI provider: the instruction gate, proven red, the PR body check, the ratchet (always, seeded with the counters the repo supports: files over the C2 length, lint problems per rule when a linter runs, each contract Never clause that has violations today), and the mutation smoke when discovery named a risky module (auth, a parser, the API client); otherwise refine adds it after the first fix chain. The stack table there picks the reference: native ports for Node and Python, shell references that need only git, grep, and awk for every other language. Set the instruction gate's word budget at the current count plus half, rounded up to the next 500.
  6. Prove each gate red with a scratch violation, remove the violation, run the repo's full test command, and commit one logical change per commit, in this order: the instruction files with the gate that checks them; one commit per gate after that (ratchet, proven red, mutation smoke, PR body check); the combined gate command and the pre-commit hook; CI last. One commit holding the whole framework hides which gate was proven red against what, and leaves nothing to revert on its own. Do not push unless asked.
  7. Report what was written, the instruction word count against the budget, which contracts say Gate: review and why, whether this run installed slop-mop and so it applies from the next session, any always-loaded file outside the repo whose prose style conflicts with the repo's (~/.codex/AGENTS.md, ~/.claude/CLAUDE.md, a terse or compressed house style): name the file, and say that the repo's rule governs repo prose. End with the one next step: run gap-trap refine after the first incident or in a month.
  8. Offer a check. End the report with one question: check the repo against the new framework now? On no, stop. On yes, change no files and list, grouped by contract or rule ID:
    • each ratchet counter, its count, and the file and line behind each unit of it;
    • each Gate: review contract: read the code its Path: and Never: lines cover and list suspected violations with file and line, marked unverified because no gate checks them;
    • the red build, type check, or lint items recorded in step 2. Fix nothing in this pass. A fix the user picks is its own commit, and a fix that lowers a count reruns the ratchet with --update.
Show full SKILL.md (199 more words)Show less

Instruction files are read by agents. Write them as terse statements with IDs and gate names. Human-voice prose belongs in the repo's docs, not in AGENTS*.md or agents/.

refine

Follow reference/refine.md. It audits rules without gates, contract names that no longer exist, and the commit history since the last refine, and it proposes edits through the self-improvement protocol as one PR. It removes rules with no incident behind them as readily as it adds gates.

Common mistakes

MistakeFix
A contract with a guessed symbol nameEvery name in a Path: line is greppable in the tree; the instruction gate fails otherwise
Writing ten contracts on day oneStart with the places that have one sanctioned path and a violation today; add the rest through refine
A gate that passed on first runProve it red with a scratch violation first; a gate that never failed proves nothing
Vendoring slop-mop into the repoIt installs per agent from its repo; the project rule requires it
Instruction prose polished for peopleAgents read it. Statement, one-clause why, gate name
Skipping the model gate because the repo is smallDiscovery quality is the deliverable; the gate is first for a reason

© pliablepixels, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 23 other files in gap-trap of pliablepixels/gap-trap.

  • SKILL.md
  • reference/discovery.md
  • reference/framework.md
  • reference/gates.md
  • reference/refine.md
  • templates/AGENTS.md
  • templates/AGENTS.project.md
  • templates/CLAUDE.md
  • templates/agents/generic/agent-workflows.md
  • templates/agents/project/documentation.md
  • templates/agents/project/domain-context.md
  • templates/agents/project/glossary.md
  • templates/agents/project/out-of-scope.md
  • templates/agents/project/testing.md
  • templates/gates/github-ci.yml
  • … and 9 more

Open the folder on GitHubat commit 119403d

Compare with similar skills

Gap Trap next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gap Trap compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gap Trap this skillpliablepixels/gap-trap181—~2.3kAutomated safety check: NotesMIT
Update Megatron Golden ValuesNVIDIA/Megatron-LM18k—~2.8kAutomated safety check: PassCustom licence
GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb6.7k—~4.4kAutomated safety check: PassApache-2.0
Bats Shell Testing Patternswshobson/agents40k12 repos~1.3kAutomated safety check: PassMIT
Local CImodule-federation/core2.7k—~914Automated safety check: PassMIT
Simple Modern Uvjlevy/simple-modern-uv301—~1.9kAutomated safety check: PassMIT

Similar skills

  • Official

    Refreshes stored golden values from a GitHub Actions run, reports signed percentage changes per model, and writes a summary ready for a pull request description.

    18k GitHub stars~2.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.

    6.7k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Writes unit tests for shell scripts with Bats: error-condition tests, fixtures and mocks, cross-shell checks, parallel runs, helper files and CI integration.

    40k GitHub starsUsed in 12 repos~1.3k tokens
    Testing & QAAuto-check passed
  • Local CI

    module-federation/core

    Run this repository's local CI parity commands and pnpm run ci:local jobs.

    2.7k GitHub stars~914 tokensUpdated today
    Testing & QAAuto-check passed
  • Simple Modern Uv

    jlevy/simple-modern-uv

    Start, selectively modernize, fully migrate, or update Python projects using simple-modern-uv practices: uv, ruff, BasedPyright, pytest, GitHub Actions CI, and tag-driven PyPI publishing.

    301 GitHub stars~1.9k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • CI Triage

    canton-network/splice

    Triage a failed splice GitHub Actions job (cn-test-failures ref) into a reproducible evidence packet - fetch job log and artifact, isolate the flagged lines, check the known flake families for…

    118 GitHub stars~1.4k tokensUpdated today
    Testing & QAAuto-check passed

Works with

Questions about Gap Trap

What does Gap Trap do?

A skill your agent uses when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when…. Gap Trap is an agent skill from pliablepixels/gap-trap. Use when asked to set up, install, or refine an agent quality framework in a repository (rules with gates, architecture contracts, proven-red tests, ratchets, playbooks), or when the user says "gap-trap", "gap-trap setup", "gap-trap refine", "gate the rules", or "make the agents' code match the rules".

When should I use Gap Trap?

Gap Trap fits situations like: asked to set up; refine an agent quality framework in a repository (rules with gates; architecture contracts; proven-red tests.

How do I install Gap Trap in Claude Code?

Run `npx skills add pliablepixels/gap-trap --skill gap-trap -a claude-code`. Or copy the skill folder (gap-trap in pliablepixels/gap-trap) into .claude/skills/gap-trap in your project. Claude Code loads it when a task matches its description.

How do I install Gap Trap in Codex?

Run `npx skills add pliablepixels/gap-trap --skill gap-trap -a codex`. Or copy the skill folder (gap-trap in pliablepixels/gap-trap) into .agents/skills/gap-trap in your project. Codex loads it when a task matches its description.

Can I use Gap Trap in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pliablepixels/gap-trap --skill gap-trap -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gap-trap, .gemini/skills/gap-trap, .github/skills/gap-trap and .opencode/skills/gap-trap in your project.

What does Gap Trap need to run?

Going by SKILL.md and its folder, Gap Trap needs the command-line tools its instructions call (git).

Does Gap Trap access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Gap Trap safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Gap Trap use?

Gap Trap is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gap Trap use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gap Trap?

Skills that share tags, products or a category with Gap Trap: Update Megatron Golden Values (NVIDIA/Megatron-LM, 18k stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), Bats Shell Testing Patterns (wshobson/agents, 40k stars) and Local CI (module-federation/core, 2.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gap Trap?

pliablepixels (a GitHub user) maintains it in pliablepixels/gap-trap, which has 181 GitHub stars. The repository was last updated on October 2, 2026.

Source: pliablepixels/gap-trap on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.