CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

fuzzing-harness

Write and run a fuzzer, fuzz harnesses and property-based tests for the code that handles untrusted bytes (file and packet parsers in C, C++, Rust, Go, Python or JS, decoders, serializers, deserializers, token and header parsing, protocol state machines), then minimize, dedupe and triage the crashes into verified findings with regression tests. Covers libFuzzer, cargo-fuzz, Go native fuzzing, Atheris, Jazzer.js and Jazzer, Hypothesis, fast-check and proptest, seed corpora and dictionaries, sanitizer builds, and CI fuzzing with ClusterFuzzLite or OSS-Fuzz. Use when the user mentions 'fuzzing,' 'fuzz harness,' 'fuzz target,' 'libFuzzer,' 'cargo fuzz,' 'go test -fuzz,' 'Atheris,' 'Jazzer,' 'property-based testing,' 'Hypothesis property test,' 'fast-check,' 'proptest,' 'seed corpus,' 'fuzzing dictionary,' 'AddressSanitizer report,' 'fuzzer crash files,' 'minimize a crash input,' 'ClusterFuzzLite,' 'OSS-Fuzz,' or wants to fuzz their parser.

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A highly effective skill body: every step is executable with exact commands, the workflow carries validation and consent gates appropriate to a security skill that builds and runs user code, and detail is correctly partitioned into real reference files. The only trimmable cost is repetition of the authorization rule and the length of the inline worked examples and report template.

Suggestions

State the ask-before-every-install/build/run rule once in Authorization and reference it from Step 5 and Boundaries instead of restating it in all four places, trimming ~10 lines.

Move two or three of the five Step 7 worked examples (e.g., the Go and Atheris ones) into a reference file alongside crash-triage.md, keeping one fully worked confirmed example inline for calibration.

Consider relocating the verbatim report template in Output Format to a section of references/findings-format.md, keeping only the required section list and one filled-in finding inline.

DimensionReasoningScore

Conciseness

The body is dense with skill-specific expert guidance (target-ranking heuristics, harness rules, oracle tables, sanitizer flags, dedupe policy) and teaches almost nothing Claude already knows — no 'what is fuzzing' padding. It misses level 5 because the ask-before-running rule is stated four times (intro, Authorization, Step 5 heading, Boundaries) and the ~30-line worked-examples block and ~50-line report template repeat detail that could be consolidated, so not quite 'every token earns its place'.

4 / 5

Actionability

Guidance is copy-paste ready throughout: exact ripgrep/grep inventory patterns with portable fallbacks, an engine-per-language table, concrete flag values ('-fsanitize=fuzzer,address,undefined', '-rss_limit_mb=2048', '-max_total_time=600', '-minimize_crash=1 -runs=10000'), defined fingerprint format with a worked example, an ext-keys table, and executable validation commands ('node references/validate-findings.mjs findings.json'). Specific examples cover the common cases across all supported engines — the level-5 anchor.

5 / 5

Workflow Clarity

The eight steps are explicitly sequenced (Inventory → rank → write → seeds → run → minimize/dedupe/triage → verify → regression/CI) with validation checkpoints and feedback loops exactly where they matter for a batch, run-user's-code skill: 'Run (after the user's yes)' gating, reproduce-before-minimize, harness-bug → fix-and-rerun, flaky → check leaked state, a refutation pass before every verdict, and 'validate findings.json' before rendering the report. This is the level-5 pattern: clear sequence, explicit validation, error-recovery loops.

5 / 5

Progressive Disclosure

The body is an overview of decisions and workflow, pushing per-engine detail to real, clearly signaled one-level-deep references: '[references/harness-templates.md](references/harness-templates.md)', '[references/crash-triage.md](references/crash-triage.md)', '[references/verification.md](references/verification.md)', '[references/findings-format.md](references/findings-format.md)', '[references/severity-calibration.md](references/severity-calibration.md)', '[references/ci-integration.md](references/ci-integration.md)'. All nine referenced bundle files exist with substantial matching content; no nested (2+ level) references, and the inline tables (property oracles, ext keys) are decision content that belongs in the overview — matching the level-5 anchor structure.

5 / 5

Total

19

/

20

Passed

Description

96%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete, third-person capability statement, exhaustive natural trigger terms, explicit what-and-when, with a precisely scoped domain. The only residual risk is that the generic term 'fuzzing' can also mean live web-app fuzzing, which the description does not explicitly disambiguate.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — 'Write and run a fuzzer, fuzz harnesses and property-based tests', 'minimize, dedupe and triage the crashes into verified findings with regression tests' — against a precisely named domain ('file and packet parsers in C, C++, Rust, Go, Python or JS, decoders, serializers, deserializers, token and header parsing, protocol state machines'). Coverage is comprehensive across write, run, triage, and regression phases; it exceeds the level-4 anchor, which expects minor gaps.

5 / 5

Completeness

Both questions are answered explicitly and concretely: 'what' is the write-and-run/triage pipeline with named tooling ('Covers libFuzzer, cargo-fuzz, Go native fuzzing, Atheris, Jazzer.js and Jazzer, Hypothesis, fast-check and proptest, seed corpora and dictionaries, sanitizer builds, and CI fuzzing'), and 'when' is the explicit 'Use when the user mentions ...' clause with concrete trigger phrases — exactly the level-5 anchor example pattern.

5 / 5

Trigger Term Quality

The 'Use when' clause enumerates ~20 natural trigger phrases users would actually say: 'fuzzing', 'fuzz harness', 'fuzz target', 'libFuzzer', 'cargo fuzz', 'go test -fuzz', 'Atheris', 'Jazzer', 'property-based testing', 'Hypothesis property test', 'seed corpus', 'fuzzing dictionary', 'AddressSanitizer report', 'fuzzer crash files', 'minimize a crash input', 'ClusterFuzzLite', 'OSS-Fuzz', plus the colloquial 'wants to fuzz their parser'. This matches the level-5 anchor's comprehensive coverage including tool-specific synonyms; it is not level 4 because no common variation users would say is missing.

5 / 5

Distinctiveness Conflict Risk

The niche is clear — coverage-guided fuzzing and property-based testing of untrusted-byte parsers with crash triage — and most triggers are unambiguous tool names, placing it above level 3 ('could still overlap'). However, the bare trigger term 'fuzzing' is ambiguous with web-application/endpoint fuzzing in security contexts, which is a minor overlap risk with a closely related web-testing skill, so it fits level 4 ('mostly distinct; minor overlap risk') rather than level 5.

4 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

Total

15

/

16

Passed

Repository

briiirussell/cybersecurity-skills

Path

skills/fuzzing-harness/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.