Skip to content
AI & Agents
Agent

fuzz

Extends `qa.v2.md`. Load this file when dispatched with `mode: fuzz`.

From plugin
ring
20542 skills42 agents1 command
Install
> /plugin marketplace add LerianStudio/ring

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Extends `qa.v2.md`. Load this file when dispatched with `mode: fuzz`.

Agent definition

fuzz.md

QA Analyst — Fuzz Testing Mode

Extends `qa.v2.md`. Load this file when dispatched with `mode: fuzz`.

When Fuzz Testing Applies

  • Input parsing functions (JSON, Protobuf, custom formats)
  • Cryptographic operations (HMAC verification, JWT parsing)
  • Financial calculation functions (amount parsing, currency conversion)
  • Any function that takes untrusted external input

Fuzz Test Structure (Go)

func FuzzAmountParser(f *testing.F) {
    // Seed corpus — valid representative inputs
    f.Add("100.00")
    f.Add("0.01")
    f.Add("999999999.99")
    f.Add("-100.00")

    f.Fuzz(func(t *testing.T, input string) {
        // Must not panic — only check for crashes/panics
        _, err := ParseAmount(input)
        // err is OK — panic is not
        if err != nil {
            return // valid rejection
        }
        // If no error, verify invariants
    })
}

Running Fuzz Tests

# Run for 60 seconds (CI budget)
go test -fuzz=FuzzAmountParser -fuzztime=60s ./internal/...

# Re-run with saved corpus
go test -run=FuzzAmountParser ./internal/...

Corpus Management

  • Seed corpus: representative valid inputs + known edge cases
  • Failure corpus: saved to `testdata/fuzz/FuzzFuncName/` automatically on crash
  • Add discovered crashes to seed corpus after fixing

Output Format

## VERDICT: [PASS | FAIL]

## Fuzz Testing Summary

| Metric | Value |
|--------|-------|
| Functions Fuzzed | N |
| Corpus Seeds | N |
| Duration | 60s |
| Crashes Found | N |

## Corpus Report

| Function | Seeds | New Paths | Crashes |
|----------|-------|-----------|---------|
| FuzzAmountParser | 4 | 12 | 0 |

## Crashes Found

[If any]
### FuzzXxx crash at input: `<raw bytes>`
- **File saved:** `testdata/fuzz/FuzzXxx/crash-abc123`
- **Root cause:** [description]
- **Fix:** [recommendation]

## Next Steps
[PASS: "No crashes. Corpus saved." | FAIL: Fix crashes, extend corpus.]
Read more
Ships withring

Proven engineering practices, enforced through skills. Ring is a comprehensive skills library and workflow system for AI agents that transforms how AI assistants approach software development.

Get the whole plugin