Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add JckJhns/skill-check --skill skill-checkgit clone --depth 1 https://github.com/JckJhns/skill-checkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jckjhns/skill-check/skill-check)<a href="https://agentmods.dev/skills/jckjhns/skill-check/skill-check"><img src="https://agentmods.dev/badge/skills/jckjhns/skill-check/skill-check.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00192 | $0.02311 |
| Opus 5 | $0.00096 | $0.01156 |
| Sonnet 5 | $0.00038 | $0.00462 |
| Haiku 4.5 | $0.00019 | $0.00231 |
Grade A, and why
skill-check scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 205 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SkillCheck — Comprehensive Skill Testing
SkillCheck audits an entire skill directory, understands every moving part, and generates targeted tests to verify the skill works as advertised. It doesn't just check "does it roughly work" — it tests every aspect: triggering, input handling, output quality, script correctness, security, best practices, and resource integrity.
How it works
Three phases: Discover → Test → Report. Discovery is always required. Testing depth depends on what the user wants. Reporting adapts to what was found.
| Depth | What it covers |
|---|---|
| Quick | Static analysis — structure, syntax, integrity, security, best practices |
| Standard | Static + script execution + happy-path I/O + eval regression |
| Deep | Everything — edge cases, mock files, e2e workflows, stress |
If the user doesn't specify, default to Standard — it catches real functional problems without the time investment of Deep. If they seem in a hurry, go Quick. If they mention thoroughness, edge cases, or "test everything", go Deep.
For a worked example of a Standard Check from start to finish, see references/example-run.md.
Gotchas
- The
evals.jsonformat must match the skill-creator schema exactly (seereferences/eval-schema.md). Don't invent a new format — compatibility with skill-creator's benchmarking tools is the whole point. - Mock file generation for binary formats (DOCX, XLSX, PPTX, PDF, images) requires
third-party Python packages that may not be installed. Always check availability
before generating and fall back to text-based equivalents if installation fails.
See
references/mock-files.mdfor the dependency list. - Cross-reference mismatches between SKILL.md and scripts are often the root cause of multiple downstream test failures (script execution fails, eval regression fails, I/O tests fail — all for the same reason). Identify and report the root cause rather than listing each symptom as a separate unrelated failure.
- Best practice scores are advisory and reported separately — do not add them to the main pass/fail verdict percentage. A skill can be functionally perfect but structurally messy, and the report should reflect that distinction.
- Security review runs before script execution for a reason — if Critical security issues are found in scripts, warn the user before executing them at Standard or Deep depth. Don't silently run code you've just flagged as dangerous.
- Incomplete skills (TODOs, stubs, placeholder text) need a progress report, not a
wall of failures. It's easy to mechanically run the standard flow and produce 15
failures that all say "this doesn't exist yet" — that's not useful. Read
references/incomplete-skills.mdand reframe. - On Claude.ai without subagents, end-to-end tests run sequentially in shared context. This means earlier test results can influence later tests — an agent that just discovered a cross-reference bug might "know" to use the correct arguments on the next test. Keep this in mind when interpreting e2e results.
- The frontmatter
namefield must match the parent directory name per the Agent Skills spec. This is easy to miss because many platforms will still load the skill with a mismatch — but others won't, making it a silent portability bug. - Report sections should be collapsed when empty — a Quick Check on a minimal skill
should produce 5 sections, not a 12-section skeleton full of "N/A".
See
references/report-format.mdfor collapsing rules.
What ships with it
18 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/evals.json 5.4 KB
- evals/files/broken-skill/FIXTURE.md 542 B
- evals/files/broken-skill/scripts/convert.py 834 B runs code
- evals/files/healthy-skill/FIXTURE.md 1.2 KB
- evals/files/healthy-skill/scripts/extract_key_points.py 1.7 KB runs code
- evals/files/incomplete-skill/FIXTURE.md 343 B
- evals/files/insecure-skill/FIXTURE.md 622 B
- evals/files/insecure-skill/scripts/fetch_data.py 733 B runs code
- references/best-practices.md 18 KB
- references/deep-check.md 5.5 KB
- references/eval-schema.md 7.2 KB
- references/example-run.md 17 KB
- references/finding-the-skill.md 2.5 KB
- references/incomplete-skills.md 3.2 KB
- references/mock-files.md 12 KB
- references/quick-check.md 16 KB
- references/report-format.md 15 KB
- references/standard-check.md 6.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 205 lines · 192 tokens per session scan A 0e6f2735e96f
skill-check is a skill published in the GitHub repository JckJhns/skill-check (2 stars, last pushed 4mo ago), licensed MIT. It adds 192 tokens to every session and 2,311 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
betterthink
Enforce a stricter execution workflow for coding tasks: reduce ambiguity before editing, complete and verify one work item before starting the next, keep the project's instructions file lean and current when conventions or commands change, and screenshot-check UI work across mobile, tablet, and desktop. Use when the…
betterthink
Enforce a stricter execution workflow for coding tasks: reduce ambiguity before editing, complete and verify one work item before starting the next, keep the project's rules file lean and current when conventions or commands change, and screenshot-check UI work across mobile, tablet, and desktop. Use when the user…
declaring-invariants
Find tests that enumerate a domain by copying it, and declare the invariants a codebase depends on. Reports where a parametrize list, for-loop, or it.each iterates a hand-written subset of a dict/set/tuple/Enum that exists in the source, and names the members nothing covers. Use when reviewing tests, when a module…
gating
Build and audit deterministic verification gates — a check that blocks a pipeline and can be shown to go red. Use when writing a calibration gate, CI check, validation script or pre-publication check for a numeric or empirical result; when a plausible-but-wrong value would survive review; when asking whether an…
test-verification
Requires behavioral, failure-path, and durable-seam evidence for tests and review. Use when writing tests, reviewing test coverage, assessing behavioral test quality, or accepting high-risk behavior on test evidence.
change-request-to-go-live-protocol
Use this skill when a Dynamics 365 change request must be structured and progressed through impact assessment, fit-gap analysis, UAT sign-off, go/no-go decision, go-live execution, and hypercare using the Success by Design framework. Defines the full change-to-go-live flow — change request intake, solution blueprint…