Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
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

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Before You Claim

ASecurity

Seven questions answered with evidence at the moment a change is written, one for each defect class this repo's fault register keeps recording — a sentence claiming what the code does not do, a check that cannot fail, a fix for the instance while the class stays open, a rule that lives in prose with no mechanism, a property measured once, a guard that reads a command's spelling instead of its operation, a number written into prose. Use this skill every time you add or edit a comment, a docstr...

4 stars
0 votes
0 copies
1 views
Added 9/21/2026
developmentpythongobashgit

Works with

mcp

Security Analysis

A100/100

Scanned 9/21/2026

Install to Claude Code

$npx -y skills add AleksandarBisevac/claude-plugins --skill before-you-claim --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Before You Claim?

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

Security grade badge for Before You Claim
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aleksandarbisevac-before-you-claim/badge)](https://www.skillsdirectory.com/skills/aleksandarbisevac-before-you-claim)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: before-you-claim
description: Seven questions answered with evidence at the moment a change is written, one for each defect class this repo's fault register keeps recording — a sentence claiming what the code does not do, a check that cannot fail, a fix for the instance while the class stays open, a rule that lives in prose with no mechanism, a property measured once, a guard that reads a command's spelling instead of its operation, a number written into prose. Use this skill every time you add or edit a comment, a docstring, a `.md` document, a `--help` text, a `--selftest` case, a lint, a hook, a guard, an agent brief, `orchestrator.md`, or any rule addressed to an agent; every time you fix a fault from the register or a bug from the manifest; and every time you are about to write down a number, a timing, or "does not reproduce". It applies to the ordinary edit, not only the big one — the register's worst recurrences were one-line comments and one-word fixes. The answers end whatever you hand over — the commit message, or when there is no commit, the notes, the PR text, the message back to the orchestrator — as a `claims:` block; a hook in this repo refuses a commit on these surfaces without one.
---

# Before you claim

Every defect class below was written by an agent that had read the rules and was following
them; the moment of writing had no question. This skill is the question — seven of them, each
answered with something that can be *shown*. It holds no rule of its own: `no-silent-pass`,
`writing-python` and `CLAUDE.md` say how; this asks *did you, on this change, and where is the
evidence?*

**Questions 1, 2, 5 and 7 are one line each because the evals said so.** Run against a baseline
with no skill on 2026-09-12, twice and on two models, the arms tied on those four at full marks
and separated on question 4 both times. They still get asked; they no longer get a paragraph.
The runs and their grading are in `../before-you-claim-workspace/iteration-4/benchmark.json`.

## Two touches

**Before the first edit**, one line: which questions this change will have to answer
(`touches: 1, 3, 4`). The sweep, the mutation and the second measurement are cheap before the
edit and expensive after; naming the question is what gets them done while they are cheap.

**Before you say done**, the `claims:` block (shape at the end) — one line per question, each
carrying the evidence you gathered or `n/a — <reason>`. It ends whatever leaves your hands: the
commit message when you commit; otherwise your notes, the PR description, or the message back
to the orchestrator. There is no "done except the block". A line that asserts where evidence
should be ("yes, it fails", no red output shown) is the skill not being used.

The hook that asks for the block sees `git commit` only after `&&`, after `;`, or at the start
of the command — not one that begins its own line under a heredoc, and not `-F -`. Its silence
is not a verdict.

## The seven questions

**1. What does this sentence claim the code does — and where is the line that does it?** The
`file:line`, or the sentence rewritten to say only what the code does.
`scripts/claim-lines.py <diff> --tree <checkout>` lists the added prose that claims behaviour.

**2. What breaks this check, and did I watch it break?** The mutation, the red output, the
restore; for a guard, the over-fire mutation too, with the allow case going red. Purge
`__pycache__` between cycles. "The suite is green" is not an answer — it was green before the
case existed. `no-silent-pass` is the long form.

**3. Is this the fix for the instance, or for the class — and where else does the class live?**
Grep the **bare** shape — the word, the number, the token — in the same file first, then the
tree, and narrow only after you have seen every hit: a grep narrowed by the words you expect
beside it (`seventeen` filtered by `edge|debt`) never shows the sentence about something else
carrying the same rot. Paste the grep and its hits verbatim, then account for **every hit**:
fixed, or *left, because …*. A sweep that names none of what it left is half a sweep — the next
reader cannot tell a site you judged from one you missed.

**4. Does this rule live in prose, or in a mechanism?** For every `must`/`never`/`always`
addressed to an agent: the hook, script, schema or lint that enforces it, named **in the rule's
own sentence** — and if nothing does, the rule says so about itself, where its reader will see
it: *"Nothing enforces this today; the orchestrator's own recorded run is the verdict either
way."*

The failure has one shape, and it is the shape that costs marks: the author builds the
mechanism, puts it somewhere real — a drift lint, a README row, a test anchor — and never puts
the sentence where the rule's reader is, so the brief handed to the executor still says only
*never do this*. **The mechanism is not the answer; the sentence naming it, in the rule's own
text, is.** Your notes are read once by one person; the brief is read by every agent it is
handed to.

**5. Did I measure this once, and could the window have lied?** Two runs with a deliberate gap,
on the tree the claim is about, the spread written — or *measured once* beside the number, in
the document. Readings that agree inside one quiet window are still one window.

**6. Does this guard read what the command will *do*, or what it *says*?** The decision from the
operation — the file set, the tool's semantics, the resolved path — never a pattern over the
text or one tool's name; and the allow case proven quiet *before* the deny widens. This is the
register's longest-running class, and it recurs because a pattern over text always looks
finished: a commit guard that reads `&&` but not a newline, a history guard that refuses a
heredoc whose only act is to write a file. Both were widenings of an earlier text pattern. The
test is whether you can name the operation the decision reads.

**7. Is this number derived by something, or written by me?** The command that re-derives it
beside it, or the number deleted and the pointer kept. History with a date stays legal;
`CONTRIBUTING.md`'s *Writing a count that is allowed* is the long form. A green build is not
evidence — the lints cannot see a decimal, or tell a past-tense count from a present-tense one.

Two rules about the register: a finding goes into it *before* the fix, never inline in an
unrelated change, and the fix cites the constraint in the code, never the fault id; a wrong
first diagnosis is corrected in place with a sentence saying it was wrong, never deleted.

## The block

`claims:` alone on a line, then one line per question in order; a line may continue on
indented lines. The hook checks presence and shape; the reviewer judges the answers.

```
claims:
1 <file:line that does what the sentence says | rewritten to say only what the code does | n/a — no behaviour claimed>
2 <mutation → red output → restored; allow case → red under over-fire | n/a — no check touched>
3 <grep for the bare shape: N hits — each fixed, or left because … | n/a — not a fix of a reported defect>
4 <enforced by <hook/script>, named in the rule's own sentence | rule says "unenforced because …" about itself | n/a — no rule to an agent>
5 <two runs, gap, spread | "measured once" beside the number in the document | n/a — no property recorded>
6 <decision reads the operation, not the text; allow case proven quiet first | n/a — no guard>
7 <command beside the number | number deleted, pointer kept | n/a — no number written>
```

Filled in, from a real change (a guard taught to see an MCP read):

```
claims:
1 guard-secrets-read.py:1402-1414 is the branch the docstring describes; hooks.json:5 routes mcp__.* to it
2 branch removed → m1-m6 red (213/219) → restored 219/219; read-verb check dropped → m9, m10 (allow) red
3 grep -n 'tool == "' guard-secrets-read.py: 3 hits — Read, Grep, Bash, each already reading a resolved path; MCP joins them
4 n/a — no rule to an agent
5 n/a — no property recorded
6 decision = resolved `path`/`paths` against SECRET_PATH; allow: mcp read of README → no output, exit 0, shown before the deny widened
7 n/a — no number written
```

`references/questions.md` holds the long form of each question — why the class recurs, and
examples from this repo of it being written and of it being avoided.

Attribution

AleksandarBisevacAleksandarBisevac
View sourceMore from AleksandarBisevac →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

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

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284722 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →