# Show HN: Whetstone – 20 Claude Code skills, each distilled from one real failure

> Source: <https://whetstone.akbarsha.dev/>
> Published: 2026-08-09 20:07:58+00:00

# Every skill

here is a *scar*.

Agent skills honed on real work. Each one is a short, self-contained rule set
distilled from **one concrete failure** — written so an AI coding agent
(or a human) can apply the lesson without the original context.

## Not general advice. A scar.

### It happened.

Every skill names the sanitized case it was distilled from — a check that passed against a stand-in, a merge that dropped a field, a green test that could never fail. No hypotheticals.

### It generalizes.

No project or company detail survives. The lesson is stripped to its mechanism so it transfers to your codebase, your stack, your next incident.

### It has an edge.

Each ends in a pre-flight checklist that fails loudly when a box is unchecked — a gate on "done," not a suggestion you can wave through.

If it reads like a blog post, it doesn't belong. If it reads like a checklist a tired engineer would thank you for at3am, it does.

## Twenty edges,

grouped by grind.

Each links to its `SKILL.md`

— the full rule set, the sanitized case, and the pre-flight check.

### Verify & prove

06 skills[verify-through-the-real-path ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/verify-through-the-real-path)

#### Verify Through the Real Path

Before claiming something works, is done, safe, or fast — verify through the actual trigger, real data, and representative conditions, not a stand-in.

[prove-the-test-can-fail ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/prove-the-test-can-fail)

#### Prove the Test Can Fail

After writing a test, or before trusting a green one — make it fail on purpose once, and confirm new branches are reachable by the mocks.

[measure-the-delta-not-the-absolute ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/measure-the-delta-not-the-absolute)

#### Measure the Delta, Not the Absolute

Judging whether your change is clean on a red or noisy baseline — prove it by stash-and-compare, not by which files appear in the failure list.

[test-fixture-realism ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/test-fixture-realism)

#### Test-Fixture Realism

Writing tests against a shared store or fabricated fixtures — make fixtures mirror data reality and assertions unable to pass trivially.

[know-your-aggregate-command-scope ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/know-your-aggregate-command-scope)

#### Know Your Aggregate Command's Scope

Before citing a test / lint / type-check / build script as proof — confirm what it actually runs, how it forwards args, and whether it caches.

[running-long-background-jobs ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/running-long-background-jobs)

#### Running Long Background Jobs

Launching or verifying a long-running / detached job, or reconciling a batch against a corpus other processes also write to.

### Plan & design

06 skills[plan-cross-encoding-review ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/plan-cross-encoding-review)

#### Plan Cross-Encoding Review

Reviewing a plan or spec — catch the bug where one intent is encoded twice and the copies quietly disagree.

[confirm-the-premise-first ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/confirm-the-premise-first)

#### Confirm the Premise First

Designing when a choice depends on a technical property — state the ground truth (local vs remote, reversible vs not) before asking downstream questions.

[audit-before-you-build ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/audit-before-you-build)

#### Audit Before You Build

Starting from a ticket, checklist, or spec — grep for what already exists first; trackers record conversations, not deliverables.

[inject-ambient-inputs ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/inject-ambient-inputs)

#### Inject Ambient Inputs

Writing logic that reads the clock, randomness, env, or handles — pass them in as parameters so the pure core tests with no mocking machinery.

[consistency-is-local-first ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/consistency-is-local-first)

#### Consistency Is Local First

Adding code to an existing module — match the nearest sibling's pattern; a repo-wide convention is the default only when the module has none.

[validate-the-users-proposed-mechanism ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/validate-the-users-proposed-mechanism)

#### Validate the User's Proposed Mechanism

A user names a platform, tool, or library — treat it as a proposed mechanism; grep the artifact for disqualifiers before agreeing.

### Change safely

04 skills[grep-the-blast-radius ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/grep-the-blast-radius)

#### Grep the Blast Radius

Changing a shared contract (flag, column, type, endpoint) — the retired name is your consumer index; grep the whole workspace and run cross-boundary suites.

[diff-each-side-against-merge-base ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/diff-each-side-against-merge-base)

#### Diff Each Side Against the Merge Base

Resolving a merge or rebase conflict — markers show where git gave up, not the full delta; auto-merge silently drops fields.

[verify-absence-claims ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/verify-absence-claims)

#### Verify Absence Claims

Acting on a "none exists / not found" claim, especially from delegated research — re-grep it; absence is only as good as the search pattern.

[negative-invariant-testing ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/negative-invariant-testing)

#### Negative-Invariant Testing

Protecting a "never does X" constraint — a behavioural test can't see an unused capability; assert structurally on the mechanism's existence.

### Diagnose & review

03 skills[read-the-real-failing-call ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/read-the-real-failing-call)

#### Read the Real Failing Call

Hardening against a failure mode — instrument the real failing call before and after, because a plausible hypothesis is not a diagnosis.

[manufacture-review-independence ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/manufacture-review-independence)

#### Manufacture Review Independence

Reviewing your own work (author == reviewer) — replace lost independence with scoped parallel passes and adversarial re-reads of the source.

[findings-list-is-not-a-todo-list ↗
](https://github.com/iamakbarsha1/whetstone/tree/main/skills/findings-list-is-not-a-todo-list)

#### A Findings List Is Not a To-Do List

Acting on a review or audit list — re-read each item's disposition and bucket them; some are marked no-fix, some need a human decision.

## Same shape,

every time.

One folder, one `SKILL.md`

. Plain Markdown, so any agent that can load a system prompt can use it — the plugin auto-discovery is the only Claude Code-specific part.

-
frontmatter
#### name + description

The description carries the trigger phrases, so a skill-aware agent surfaces the right skill when the situation matches.

-
the rule
#### The core rule

One paragraph. The whole lesson, stated once, before any elaboration.

-
the cases
#### Checks

Each rule paired with the sanitized real case it came from — the scar that earned it.

-
the gate
#### Pre-flight check

The checklist that gates "done" and fails loudly when a box is unchecked.

## Install

Two ways in. The plugin gives you auto-discovery; the manual copy is just folders.

### Claude Code plugin

Add the marketplace, then install the plugin — all 20 skills come with it. Run both inside Claude Code.

### Manual copy

Each skill is a self-contained folder in the Claude Code skill layout. Copy one, or all of them.
