Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Apply

ASecurity

Use when applying accepted self-improvement sweep findings to skills as individually gated edits and commits.

3 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentsrustbash

Works with

claude codecursorcli

Security Analysis

A100/100

Scanned 9/19/2026

$npx -y skills add tony/skills --skill apply --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Apply?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Apply
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tony-apply/badge)](https://www.skillsdirectory.com/skills/tony-apply)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: apply
description: "Use when applying accepted self-improvement sweep findings to skills as individually gated edits and commits."
allowed-tools: ["Bash", "Read", "Grep", "Glob", "Edit", "Write", "AskUserQuestion", "Task"]
argument-hint: "[<finding id>...] [--dry-run]"
user-invocable: true
disable-model-invocation: true
---


# `/self-improvement:apply`

Land what the sweep proved. The ledger already carries the evidence
and the change class per finding; this skill turns each one into the
smallest edit that removes the gap, behind the gates that catch a bad
one.

Invoked by name only: it edits the `SKILL.md` files that route the
whole catalog, and a bad edit there degrades skills that were working.

## The rule that makes this safe

```
NO EDIT WITHOUT A LEDGER ENTRY
```

Every edit traces to a finding with a ratio, a spread, a window, and a verdict.
An improvement noticed while working here is not in scope — it has no
usage evidence, which is exactly what separates this skill from
rewriting prose because it could read better.

Recompute the ledger key the sweep recorded — the catalog's `HEAD` and
the finding-set digest. A mismatch means the catalog moved since the
sweep: sweep again rather than apply a picture that no longer holds.

## `$ARGUMENTS` contract

Non-flag text selects finding ids; empty takes every accepted finding
in the ledger, in the order the ledger ranked them.

| Flag | Default | Effect |
|---|---|---|
| `--dry-run` | off | Show the edits and the gates each would run, and stop before the first write. |

## Phase 0: Situational awareness

Read the project's conventions files for its commit format and its
quality checks, and confirm the tree is clean. A dirty tree halts:
mixing a catalog edit with unrelated work is how an unreviewable
commit gets made.

## Phase 1: Orchestration plan

Enter plan mode if the host supports it (Claude Code: `EnterPlanMode`;
Cursor / Codex / Gemini: `/plan` or `Shift+Tab`) and present, per
finding: the id, the smallest edit that removes the gap, the files it
touches, and the gate it must clear. Then the commit sequence.

Say plainly which findings you are **not** applying and why. A sweep
proposes more than a catalog should absorb at once, and the restraint
is the point.

Wait for approval, then exit plan mode.

## Phase 2: Edit, one finding at a time

Match the edit to the verdict the sweep recorded, not to the
reviewer's instinct:

- A **capability gap** grows behavior the skill did not have.
- A **trust gap** echoes behavior it already performs, so the reader
  can see it fired. This is usually one line and never a new mechanism.
- A **present but not binding** finding never gets another sentence
  restating the rule that already failed. It gets a checked output
  gate, a resolved-and-echoed value, or an argument.

Prefer the smallest shape that works: a default over an argument, an
argument over a new skill. A new skill is the last resort and needs
its marketplace entry, its README row, and a description that survives
the collision check.

Strip evidence before it lands. The ledger may quote absolute paths,
hostnames, and client names; a `SKILL.md`, a commit message, a pull
request body, and an issue may not.

## Phase 3: Gate each edit

Any edit that touches a `description` is gated on the catalog's own
routing checks before it is committed — the collision ceiling and
description limits are enforced there, and a description that reads
better while colliding with a sibling makes both skills worse.

```console
uv run scripts/skill_evals.py check
```

Feed the mined prompts back through the router to confirm the edit
moved the ranking the way the finding predicted.

```console
uv run scripts/skill_evals.py route "<a redacted prompt from the finding>"
```

Then the project's own gates as its conventions define them, plus
whatever regenerates derived manifests. A red gate stops the run at
that finding; report and hand back rather than pressing on.

## Phase 4: Commit

One finding, one commit, in the project's commit format, describing
the defect and the fix in the project's own terms. It does not cite
the finding id or the sweep — a future reader wants to know what was
wrong, not who noticed. The ledger holds that mapping.

When the `slop` plugin is installed, `/slop:scan` already defines the
one-finding-one-commit loop and its gate discipline; follow it rather
than inventing a second version. Without it, the rule is the whole of
it: one finding per commit, each behind its own green gate.

## Phase 5: Verify what you wrote

Skill prose is written in one pass and reviewed by reading, so it
carries contradictions that gates cannot see: a phase that promises
what another phase forbids, a flag documented as absolute that a panel
overrides, a handoff to a skill that cannot accept the input.

Before handing back, re-read the edits against the skills they landed
in and look specifically for those. When the host supports sub-agents,
run this as an independent adversarial pass rather than re-reading
your own work.

Findings from this pass are fixed before handing back, not left for a
later review. While the branch is unpushed, amend the commit that
introduced the defect so the history stays one-finding-one-commit;
once it is pushed, the fix lands as its own commit.

## Output contract

1. Hero block (1–3 lines): `N applied, M skipped` plus the branch.
2. `## Applied` — per finding: the edit, the gates it cleared, and its
   commit subject.
3. `## Skipped` — findings not applied and why, including any the plan
   deliberately held back.
4. `## Verification` — gate commands run and their results, and what
   the adversarial pass found and fixed.
5. End with an `AskUserQuestion` panel: open a pull request, sweep
   again, or stop. In a non-interactive run, record the options and
   stop.

Attribution

tonytony
View sourceSee grades on GitHubMore from tony →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →