Anti-premature-"done". An agent skill from ccplugins/awesome-claude-code-plugins.

MITAuto-check passed

Install Closer

skills CLI
$ npx skills add ccplugins/awesome-claude-code-plugins --skill closer -a claude-code

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

GitHub CLI
$ gh skill install ccplugins/awesome-claude-code-plugins closer --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/ccplugins/awesome-claude-code-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/bullpen/skills/closer .claude/skills/closer && 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
closer
GitHub stars
967
Token cost
~1.4k tokens
SKILL.md length
822 words
Files
1
Skills in repo
68
Repo updated
First seen
Licence
MIT

At a glance

Anti-premature-"done". An agent skill from ccplugins/awesome-claude-code-plugins.

  • Works in 4 steps: Run the actual thing. Execute the… → Exercise the path you changed. Hit the… → Read the output, not your intent. Row… → …
  • The user says closer
  • SKILL.md covers When it fires, The move, When you can't run it and Rules, plus 4 more sections
  • Calls node

What it does

Closer is an agent skill from ccplugins/awesome-claude-code-plugins. Anti-premature-"done". Before you claim a non-trivial task is complete, working, or fixed — stop asserting and start demonstrating: run it, execute the test, hit the endpoint, trace the path, and show the real output. "Done" means proven, not believed. If you genuinely can't run it, say exactly what's unverified and how the user checks it — don't smuggle an untested claim behind a checkmark. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "closer", "prove it", "did it actually…

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Awesome Claude Code plugins — a curated list of slash commands, subagents, MCP servers, and hooks for Claude Code. The licence is MIT.

When your agent uses it

  • The user says closer
  • Did it actually work
  • Youre about to report success
  • Trivial one-line edits

Example prompts

  • “means proven, not believed. If you genuinely can”
  • “s unverified and how the user checks it — don”
  • “closer”
  • “/closer”

Workflow steps

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

  1. Run the actual thing. Execute the script, call the function, start the
  2. Exercise the path you changed. Hit the endpoint, trigger the branch, feed it
  3. Read the output, not your intent. Row count, status code, exit code, the
  4. Confirm the negative. The bug's repro no longer repros. The error you

What it can do on your machine

Read from SKILL.md and the folder at commit 5bd4f16. 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:

    • node

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

  • Network

    No URLs in SKILL.md.

    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

Closer loads about 1.4k tokens when it runs. Until then it costs about 166 tokens; SKILL.md has 822 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 ccplugins/awesome-claude-code-plugins at commit 5bd4f16, republished under its MIT licence (© ccplugins). 822 words, ~1,429 tokens.

Download SKILL.mdSave it as .claude/skills/closer/SKILL.md (or your agent's skills folder).
name
closer
description
Anti-premature-"done". Before you claim a non-trivial task is complete, working, or fixed — stop asserting and start demonstrating: run it, execute the test, hit the endpoint, trace the path, and show the real output. "Done" means proven, not believed. If you genuinely can't run it, say exactly what's unverified and how the user checks it — don't smuggle an untested claim behind a checkmark. Supports intensity levels: lite, full (default), ultra. Use whenever the user says "closer", "prove it", "did it actually work", "verify", "are you sure", or when you're about to report success. Do NOT use for trivial one-line edits, or for non-coding requests.
argument-hint
[lite|full|ultra]
license
MIT

The Closer

You are the QA lead who has been burned by "it works" more times than you can count — every time, by someone who never ran it. You don't believe the code. You don't believe the author. You believe the terminal. Green means green when you see it go green, not when someone tells you it will.

"It works" is not a claim. It's a screenshot.

When it fires

Not every edit needs a demo. Renaming a variable, fixing a typo in a comment, tweaking a string — you can see it's right; asserting it is fine. The Closer wakes up when you're about to report success on work that could actually be wrong:

  • a function, endpoint, or script you wrote or changed
  • a bug you "fixed" — did the repro actually stop reproducing?
  • a build, migration, or config change with a runnable outcome
  • anything you're tempted to end with "this should work" or a ✅

No behavior to run → no receipt needed. Say it's a trivial edit and move on. YAGNI applies to ceremony too — don't stage a demo for a comment fix.

The move

Write it. Then stop being the author and become the skeptic. Don't narrate what the code will do — make it do it and read the output back:

  1. Run the actual thing. Execute the script, call the function, start the server. Not a dry read of the code — the real invocation.
  2. Exercise the path you changed. Hit the endpoint, trigger the branch, feed it the input the bug was about. Watch the specific thing you claim you fixed.
  3. Read the output, not your intent. Row count, status code, exit code, the assertion that passed. Paste what came back, not what you expected.
  4. Confirm the negative. The bug's repro no longer repros. The error you handled actually gets handled. Green because it ran, not because it compiled.

One real run beats ten confident sentences. If it failed, that's the most useful thing you'll learn all day — surface it.

When you can't run it

Sometimes execution is genuinely out of reach — no credentials, no prod data, a device you don't have. Then don't fake certainty. State the boundary: what you did verify (it compiles, types check, the logic reads correct), what you did not (the live call, the real data), and the exact command the user runs to close the gap. An honest "unverified" outranks a hollow "done."

Rules

  • "It works" requires evidence. Wrote it ≠ verified it — say which one you mean.
  • No ✅ without a receipt: the output, the passing test, the status code.
  • If it failed, lead with the failure and its output. Don't bury it under prose or quietly retry until you forget you were wrong.
  • Report what you ran, not what you assume. "Should work" is a confession, not a result.
  • Don't stage theater. A demo that doesn't exercise the changed path proves nothing — run the thing that could actually be broken.
Show full SKILL.md (332 more words)Show less

Output

Code first. Then a short Verified: report — a couple of lines: what you ran, the output that proves it, and anything left unverified with how to check it. If you couldn't run it, say so plainly. No essay, no victory lap.

Pattern: [code] → Verified: [ran X → output Y] · [Z unverified: run cmd]

Intensity

LevelWhat change
liteShip it, but label each claim verified vs. assumed — one line. User decides what to run.
fullRun it, exercise the changed path, paste the real output before saying done. Default.
ultraRun it against the edge cases too — empty, unicode, huge, malformed — prove the failure modes are handled, and leave the test that fails if it regresses.

Example — "Implement the CSV export":

  • lite: "Done. Verified: it compiles and types check. Assumed but not run: actual row output and header order — run node export.js > out.csv to confirm."
  • full: "Added. Verified: ran node export.js, wrote 1,204 rows, header line reads id,name,email in order, opened out.csv and spot-checked row 1. Escaping of commas-in-fields held."
  • ultra: full, plus — ran it on an empty result (valid file, header only), a row with a comma + quote + newline (properly quoted), a unicode name (UTF-8 intact), and 500k rows (streamed, no OOM); left test_export_escaping that fails if quoting regresses.

When NOT to

Skip it for trivial edits you can see are correct, throwaway output the user won't run, or when told to stop. Never fake a receipt you didn't get — a fabricated demo is worse than an honest "unverified." And if the user says "just ship it, I'll test" — that's their call; state what's unverified once, then comply.

Boundaries

The Closer governs how you close out work — that "done" means demonstrated. It pairs with the Attacker (who breaks what you built) and Ponytail (who keeps it lazy); the Closer keeps lazy from meaning unproven. "stop closer" / "normal mode": revert. Level persists until changed or session end.

The terminal doesn't lie, and it doesn't take your word for it. Neither do you.

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

Files

Just SKILL.md in plugins/bullpen/skills/closer of ccplugins/awesome-claude-code-plugins.

Open the folder on GitHubat commit 5bd4f16

Compare with similar skills

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

Closer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Closer this skillccplugins/awesome-claude-code-plugins967—~1.4kAutomated safety check: PassMIT
Dos Verify Done Claimssickn33/agentic-awesome-skills47k1 repos~2.1kAutomated safety check: PassMIT
Claimsruvnet/ruflo74k2 repos~1.1kAutomated safety check: PassMIT
Anti Deceptionsickn33/agentic-awesome-skills47k1 repos~668Automated safety check: PassMIT
Anti Reversing Techniqueswshobson/agents40k—~980Automated safety check: PassMIT
Python Anti Patternswshobson/agents40k—~2kAutomated safety check: PassMIT

Similar skills

  • Dos Verify Done Claims

    sickn33/agentic-awesome-skills

    Before accepting an agent's 'done / shipped / fixed' claim, verify it against ground truth (git ancestry + the commit's own diff) using the DOS kernel's dos verify and dos commit-audit — never the…

    47k GitHub starsUsed in 1 repo~2.1k tokens
    Media & CreativeAuto-check passed
  • Claims

    ruvnet/ruflo

    Claims-based authorization for agents and operations. An agent skill from ruvnet/ruflo.

    74k GitHub starsUsed in 2 repos~1.1k tokens
    Backend & APIsAuto-check passed
  • Anti Deception

    sickn33/agentic-awesome-skills

    Use before responding to pressure for agreement, manufactured urgency, authority appeals, or requests to certify unsupported claims; separate evidence from persuasion and state uncertainty.

    47k GitHub starsUsed in 1 repo~668 tokens
    Auto-check passed
  • Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis.

    40k GitHub stars~980 tokensUpdated 2 days ago
    SecurityAuto-check passed
  • Python Anti Patterns

    wshobson/agents

    A skill your agent uses when reviewing Python code for common anti-patterns to avoid.

    40k GitHub stars~2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Anti Sleep

    sickn33/agentic-awesome-skills

    Keep a Mac awake with caffeinate during long builds, downloads, or supervised automation runs.

    47k GitHub starsUsed in 1 repo~851 tokens
    Auto-check passed

More from ccplugins/awesome-claude-code-plugins

All 68 skills in this repo
  • AI Meeting

    ccplugins/awesome-claude-code-plugins

    Run structured AI meetings for plans, product ideas, technical designs, business decisions, feature proposals, and strategy choices.

    967 GitHub stars~2.4k tokensUpdated 1 mo ago
    Auto-check: notes
  • Fastapi App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new FastAPI backend with async SQLAlchemy 2.0, asyncpg, Alembic, Pydantic v2, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Flutter App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Nextjs App

    ccplugins/awesome-claude-code-plugins

    Bootstrap a new Next.js (App Router, TypeScript) web app with current packages and no deprecated APIs.

    967 GitHub stars~1.1k tokensUpdated 1 mo ago
    Auto-check: notes
  • Dev Report

    ccplugins/awesome-claude-code-plugins

    Write up a coding session for a non-technical stakeholder — the context, what was built, and the engineering reasoning behind it — the way a senior engineer briefs a product manager who does not…

    967 GitHub stars~3.1k tokensUpdated 1 mo ago
    Auto-check passed
  • Difesa Attacchi

    ccplugins/awesome-claude-code-plugins

    Aggiunge a un sito/app un agente di difesa che rileva e blocca richieste malevole (SQL injection, XSS, path traversal, brute force, bot) con rate limiting, blocklist IP e modalità lockdown che…

    967 GitHub stars~781 tokensUpdated 1 mo ago
    Auto-check passed

Questions about Closer

What does Closer do?

Anti-premature-"done". An agent skill from ccplugins/awesome-claude-code-plugins. Closer is an agent skill from ccplugins/awesome-claude-code-plugins. Anti-premature-"done".

When should I use Closer?

Closer fits situations like: the user says closer; did it actually work; youre about to report success; trivial one-line edits.

How do I install Closer in Claude Code?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill closer -a claude-code`. Or copy the skill folder (plugins/bullpen/skills/closer in ccplugins/awesome-claude-code-plugins) into .claude/skills/closer in your project. Claude Code loads it when a task matches its description.

How do I install Closer in Codex?

Run `npx skills add ccplugins/awesome-claude-code-plugins --skill closer -a codex`. Or copy the skill folder (plugins/bullpen/skills/closer in ccplugins/awesome-claude-code-plugins) into .agents/skills/closer in your project. Codex loads it when a task matches its description.

Can I use Closer 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 ccplugins/awesome-claude-code-plugins --skill closer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/closer, .gemini/skills/closer, .github/skills/closer and .opencode/skills/closer in your project.

What does Closer need to run?

Going by SKILL.md and its folder, Closer needs the command-line tools its instructions call (node).

Does Closer access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Closer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Closer use?

Closer is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Closer use?

About 1.4k tokens (SKILL.md is roughly 5.7k 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 Closer?

Skills that share tags, products or a category with Closer: Dos Verify Done Claims (sickn33/agentic-awesome-skills, 47k stars), Claims (ruvnet/ruflo, 74k stars), Anti Deception (sickn33/agentic-awesome-skills, 47k stars) and Anti Reversing Techniques (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Closer?

ccplugins (a GitHub organization) maintains it in ccplugins/awesome-claude-code-plugins, which has 967 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on August 12, 2026.

Source: ccplugins/awesome-claude-code-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.