Agent skill

Spec Drift Check

by JuliusBrussee in JuliusBrussee/cavekit

Read-only detector that compares SPEC.md with the code and reports invariant, interface and task drift grouped by severity, without changing anything.

MITAuto-check passedDevelopment

Install Spec Drift Check

skills CLI
$ npx skills add JuliusBrussee/cavekit --skill check -a claude-code

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

GitHub CLI
$ gh skill install JuliusBrussee/cavekit check --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/JuliusBrussee/cavekit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/check .claude/skills/check && 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
check
GitHub stars
1.1k
Token cost
~666 tokens
SKILL.md length
263 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Read-only detector that compares SPEC.md with the code and reports invariant, interface and task drift grouped by severity, without changing anything.

  • Works in 2 steps: Read SPEC.md. If missing → "no spec,… → Parse invocation args
  • Checking whether the code still matches SPEC.md after a build
  • SKILL.md covers LOAD, CHECK §V — invariants, CHECK §I — interfaces and CHECK §T — tasks, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

check is a read-only drift detector for spec-driven development. It reads SPEC.md, compares it with the current code and reports violations grouped by severity, writing nothing and never invoking other skills. If there is no SPEC.md it says so and stops. It is meant to run after each build and before shipping, since drift caught at that point is only a diff.

Arguments choose the scope: the invariants section by default, interfaces, tasks, or all three. For each invariant it turns the rule into a checkable claim about the code, reads the relevant files and marks it HOLD, VIOLATE or UNVERIFIABLE with file and line evidence. Interface items are marked MATCH, DRIFT, MISSING or EXTRA, and tasks are checked for claimed work, with completed rows that lack evidence flagged STALE. The report ends with one-line remedy hints pointing to the spec or build skills, with no scores or grades.

When your agent uses it

  • Checking whether the code still matches SPEC.md after a build
  • Auditing interface definitions in the spec against the implementation
  • Finding spec tasks marked done that have no evidence in the code
  • Running a drift report before shipping

Example prompts

  • “Check drift between SPEC.md and the code.”
  • “Verify the invariants in the spec and tell me which ones are violated.”
  • “Audit all spec sections and give me remedy hints without fixing anything.”

Requirements

  • A SPEC.md file in the repository

Workflow steps

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

  1. Read SPEC.md. If missing → "no spec, nothing to check." Stop.
  2. Parse invocation args

What it can do on your machine

Read from SKILL.md and the folder at commit 7421e87. 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

    No scripts in the folder and no shell commands in SKILL.md.

    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

Spec Drift Check loads about 666 tokens when it runs. Until then it costs about 108 tokens; SKILL.md has 263 words of instructions outside code blocks.

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

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 JuliusBrussee/cavekit at commit 7421e87, republished under its MIT licence (© JuliusBrussee). 263 words, ~666 tokens.

Download SKILL.mdSave it as .claude/skills/check/SKILL.md (or your agent's skills folder).
name
check
description
Read-only drift detector. Diffs SPEC.md against current code and reports violations grouped by severity. Writes nothing — suggests remedies via the spec or build skills but never invokes them. Triggers when the user asks to check drift, audit the spec, verify invariants, or ask whether code still matches the spec. Phrasings: "check drift", "audit the spec", "does the code still match §V", "check invariants", "spec vs code".

check — drift report

Pure diagnostic. Reports violations. Writes nothing. User decides remedy.

Spec drifting silently from code is the #1 SDD failure mode. check is the detector. Run it after each /build and before each ship — drift caught here is a diff; drift caught in prod is a §B.

LOAD

  1. Read SPEC.md. If missing → "no spec, nothing to check." Stop.
  2. Parse invocation args:
    • §V → check invariants only (default)
    • §I → check interfaces
    • §T → audit task status vs code
    • --all → all three

CHECK §V — invariants

For each V<n>:

  1. Translate invariant into verifiable claim about code.
  2. Grep / read relevant files.
  3. Classify: HOLD / VIOLATE / UNVERIFIABLE.
  4. Record address + file:line evidence.

CHECK §I — interfaces

For each I item:

  1. Locate implementation.
  2. Classify:
    • MATCH — shape in code = shape in spec.
    • DRIFT — impl exists, shape differs.
    • MISSING — impl absent.
    • EXTRA — code exposes surface not in §I.

CHECK §T — tasks

For each T<n>:

  1. If x: verify claimed work present.
  2. If ~: note as in-progress.
  3. If .: note as pending.
  4. Flag x rows with no evidence as STALE.

REPORT

Caveman. Grouped by severity.

## §V drift
V2 VIOLATE: auth/mw.go:47 uses `<` not `≤`. see §B.1.
V5 UNVERIFIABLE: no test covers ∀ req path.

## §I drift
I.api DRIFT: POST /x returns `{result}` not `{id}`. route.go:112.
I.cmd MISSING: `foo bar` absent from cli/*.go.

## §T drift
T3 STALE: status `x`, no middleware file exists.

## summary
2 violate. 1 missing. 1 stale. 1 unverifiable.
next: spec skill with `bug:` or fix code at cited lines.

REMEDY HINTS (not actions)

End report with one-line hint per class:

  • VIOLATE / DRIFT → invoke spec skill bug: <V.n> or fix code.
  • MISSING → invoke build skill on §T.n if task exists; else spec skill amend §T.
  • STALE → spec skill amend §T to uncheck.
  • EXTRA → spec skill amend §I to document, or delete code.

Never invoke fixes. Report only.

NON-GOALS

  • Zero writes. No SPEC.md edits. No code edits.
  • No sub-agents. Main thread reads.
  • No scores, no grades. Binary per item: holds or drifts.

© JuliusBrussee, 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 skills/check of JuliusBrussee/cavekit.

Open the folder on GitHubat commit 7421e87

Compare with similar skills

Spec Drift Check 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.

Spec Drift Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Spec Drift Check this skillJuliusBrussee/cavekit1.1k—~666Automated safety check: PassMIT
Bulletproof Workflowartemiimillier/bulletproof153—~3.5kAutomated safety check: PassMIT
Spec-Driven Feature Developmenttech-leads-club/agent-skills7k—~4.3kAutomated safety check: PassCC-BY-4.0
Build a New-Project SliceKhazP/vibe-coding-prompt-template3.1k—~353Automated safety check: NotesMIT
TLC Implementtech-leads-club/agent-skills7k—~4.3kAutomated safety check: PassCC-BY-4.0
agtx Execute Phasefynnfluegge/agtx1.7k—~439Automated safety check: PassApache-2.0

Similar skills

  • Bulletproof Workflow

    artemiimillier/bulletproof

    Applies a 12-stage verified workflow, from research to deploy, to non-trivial coding tasks, scaled to lightweight, standard or full mode by task size.

    153 GitHub stars~3.5k tokensUpdated 6 mo ago
    DevelopmentAuto-check passed
  • Spec-Driven Feature Development

    tech-leads-club/agent-skills

    Plans and implements a feature through four phases, specify, design, tasks and execute, with testable requirements, atomic commits and a separate verifier checking the work.

    7k GitHub stars~4.3k tokensUpdated 18 days ago
    DevelopmentAuto-check passed
  • Build a New-Project Slice

    KhazP/vibe-coding-prompt-template

    Builds one working slice of a new project from the brief, runs the affected checks and the user journey, and reports what was and was not verified.

    3.1k GitHub stars~353 tokensUpdated 4 days ago
    DevelopmentAuto-check: notes
  • TLC Implement

    tech-leads-club/agent-skills

    Turns an already-planned ticket or spec into a checklist, builds it, and has a fresh verifier agent prove each check independently.

    7k GitHub stars~4.3k tokensUpdated 18 days ago
    DevelopmentAuto-check passed
  • agtx Execute Phase

    fynnfluegge/agtx

    Carries out an approved plan for an agtx-managed task: implements the changes, runs tests, commits, writes a summary to .agtx/execute.md and then stops.

    1.7k GitHub stars~439 tokensUpdated 6 days ago
    Agent WorkflowsAuto-check passed
  • Spec-Driven Development

    LichAmnesia/lich-skills

    Runs a gated Spec, Plan, Build, Test, Review, Ship workflow so non-trivial changes are specified, verified and reviewed before they ship, with a named artifact per phase.

    234 GitHub stars~3.5k tokensUpdated 4 mo ago
    Agent WorkflowsAuto-check passed

More from JuliusBrussee/cavekit

All 8 skills in this repo
  • Backprop: Bug-to-Spec Protocol

    JuliusBrussee/cavekit

    After a bug is found, traces its root cause and feeds a new testable invariant back into the project spec so the bug class can't recur.

    1.1k GitHub stars~653 tokensUpdated 1 mo ago
    Auto-check passed
  • Caveman Spec Compression

    JuliusBrussee/cavekit

    Compresses SPEC.md writes and spec-referencing prose into terse, symbol-heavy fragments that drop articles, filler and hedging while keeping facts intact.

    1.1k GitHub stars~721 tokensUpdated 1 mo ago
    Auto-check passed
  • Adversarial Spec Review

    JuliusBrussee/cavekit

    Builds a skeptical reviewer grounded in the codebase and research notes to try to refute a spec before any code is written, citing file:line evidence and ending in a go or no-go gate.

    1.1k GitHub stars~959 tokensUpdated 1 mo ago
    Auto-check passed
  • Deepen Module Design

    JuliusBrussee/cavekit

    Scans the code a spec touches for its shallowest module, then proposes a refactor that hides more behind a smaller interface without changing behavior.

    1.1k GitHub stars~1k tokensUpdated 1 mo ago
    Auto-check passed
  • Grill Before Spec

    JuliusBrussee/cavekit

    Interrogates a vague idea one question at a time, recommending an answer each round and recording results as goals and constraints before a spec is written.

    1.1k GitHub stars~812 tokensUpdated 1 mo ago
    Auto-check passed
  • Research

    JuliusBrussee/cavekit

    Gather external knowledge the spec needs and distill it into §R — the durable research log — so build grounds in facts instead of hallucinating library behavior.

    1.1k GitHub stars~782 tokensUpdated 1 mo ago
    Auto-check passed

Categories

Questions about Spec Drift Check

What does Spec Drift Check do?

Read-only detector that compares SPEC.md with the code and reports invariant, interface and task drift grouped by severity, without changing anything. check is a read-only drift detector for spec-driven development.md, compares it with the current code and reports violations grouped by severity, writing nothing and never invoking other skills.

When should I use Spec Drift Check?

Spec Drift Check fits situations like: checking whether the code still matches SPEC.md after a build; auditing interface definitions in the spec against the implementation; finding spec tasks marked done that have no evidence in the code; running a drift report before shipping.

How do I install Spec Drift Check in Claude Code?

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

How do I install Spec Drift Check in Codex?

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

Can I use Spec Drift Check 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 JuliusBrussee/cavekit --skill check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/check, .gemini/skills/check, .github/skills/check and .opencode/skills/check in your project.

What does Spec Drift Check need to run?

SKILL.md names no scripts, command-line tools or credentials: Spec Drift Check is instructions for the agent only. Our summary lists: A SPEC.md file in the repository.

Does Spec Drift Check 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 Spec Drift Check 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 Spec Drift Check use?

Spec Drift Check 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 Spec Drift Check use?

About 666 tokens (SKILL.md is roughly 2.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 Spec Drift Check?

Skills that share tags, products or a category with Spec Drift Check: Bulletproof Workflow (artemiimillier/bulletproof, 153 stars), Spec-Driven Feature Development (tech-leads-club/agent-skills, 7k stars), Build a New-Project Slice (KhazP/vibe-coding-prompt-template, 3.1k stars) and TLC Implement (tech-leads-club/agent-skills, 7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Spec Drift Check?

JuliusBrussee (a GitHub user) maintains it in JuliusBrussee/cavekit, which has 1,149 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on August 14, 2026.

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