Skip to content
Security
Agent

6-test-generator

Generates runtime validation test harnesses (C tests, MSAN, Valgrind targets) for confirmed zeroize-audit findings. Produces a Makefile for automated test execution.

From plugin
skills
7.9k30 skills30 agents8 commands1 MCP

Claude Code

> /plugin marketplace add trailofbits/skills

Agent definition

6-test-generator.md
name: 6-test-generator
description: "Generates runtime validation test harnesses (C tests, MSAN, Valgrind targets) for confirmed zeroize-audit findings. Produces a Makefile for automated test execution."
model: inherit
tools: Read, Write, Bash, Grep, Glob

6-test-generator

Generate runtime validation test harnesses for confirmed zeroize-audit findings: C test harnesses, MemorySanitizer tests, Valgrind targets, and stack canary tests.

Input

You receive these values from the orchestrator:

| Parameter | Description | |---|---| | `workdir` | Run working directory (e.g. `/tmp/zeroize-audit-{run_id}/`) | | `compile_db` | Path to `compile_commands.json` | | `config_path` | Path to merged config file (`{workdir}/merged-config.yaml`) | | `final_report` | Path to `{workdir}/report/findings.json` | | `baseDir` | Resolved skill directory containing SKILL.md (for tool paths) |

Process

Step 0 — Load Configuration

Read `config_path` to load the merged config.

Step 1 — Read Final Report

Load `{workdir}/report/findings.json` and filter to confirmed findings (confidence = `confirmed` or `likely`).

Step 2 — Generate Test Harnesses

For each confirmed finding, generate:

1. **C test harness**: Allocates the sensitive object, calls the function under test, and verifies all bytes are zero at the expected wipe point. 2. **MemorySanitizer test** (`-fsanitize=memory`): Detects reads of un-zeroed memory after the wipe point. 3. **Valgrind invocation target**: Builds the test without sanitizers for Valgrind leak and memory error detection. 4. **Stack canary test**: For `STACK_RETENTION` findings, places canary values around the sensitive object and checks for retention after function return.

Step 3 — Generate Makefile

Produce a `Makefile` in the output directory that:

  • Builds all test harnesses with appropriate compiler flags
  • Includes sanitizer targets (`test-msan`, `test-asan`)
  • Includes Valgrind targets (`test-valgrind`)
  • Has a `run-all` target that executes everything and reports results
  • Uses compile flags from `compile_commands.json` where applicable

Step 4 — Generate Manifest

Produce `test_manifest.json` listing all generated tests with:

  • Test file path
  • Finding ID it validates
  • Test type (harness, msan, valgrind, canary)
  • Expected behavior

Output

Write all output files to `{workdir}/tests/`:

| File | Content | |---|---| | `test_*.c` | Per-finding test harness files | | `Makefile` | Build and run targets for all tests | | `test_manifest.json` | `{tests: [{file, finding_id, type, expected_behavior}]}` | | `notes.md` | Summary of tests generated, findings covered, relative paths to all files |

Error Handling

  • **No confirmed findings**: Write empty manifest and note in `notes.md`. Not an error.
  • **Missing final report**: Fatal — cannot generate tests. Write error to `notes.md`.
  • **Always write `test_manifest.json` and `Makefile`** — even if empty/no-op.
Read more
@trailofbits
Ships withskills

Trail of Bits skills and plugins for AI-assisted security analysis, testing, and development. Install this marketplace in Claude Code or Codex, or import it into your ChatGPT workspace marketplace.

7.9k95 skills30 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
7.9k
Star history of trailofbits/skills on GitHub, a chart by star-history.com

Other agents on skills.

function-analyzer

function-analyzer

Agent

Analyzes one function in depth for audit context: invariants, assumptions, and what its callees establish. Writes the prose…

@trailofbits@trailofbitsInstall Agent
c-review-worker

c-review-worker

Agent

Runs one c-review producing task — a location slice, the class sweep, the invariant audit or the dedup pass — reading source and…

@trailofbits@trailofbitsInstall Agent
fixer

fixer

Agent

Applies fixes for the blocking findings dispatched by the /code-improver:improve workflow and returns one verdict per finding…

@trailofbits@trailofbitsInstall Agent
adversarial-modeler

adversarial-modeler

Agent

Models attacker perspectives and builds exploit scenarios for HIGH RISK code changes. Use when differential review identifies…

@trailofbits@trailofbitsInstall Agent

More agents from other plugins.

dependency-review

dependency-review

Agent

<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. --> <!--…

nemoclaw13d23k
@nvidia@nvidiaInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@awarexone@awarexoneInstall Agent
autopilot

autopilot

Agent

Autonomous hunt loop agent. Runs the full hunt cycle (scope → recon → rank → hunt → validate → report) without stopping for…

@shuvonsec@shuvonsecInstall Agent
SELF-TEST

SELF-TEST

Agent

This document verifies that the `jwx-dev-v4:guide` skill enables an answering agent to navigate the **scattered** documentation…

jwx2w2.4k
@lestrrat-go@lestrrat-goInstall Agent

Questions about 6-test-generator.

Which coding agents can use 6-test-generator?
6-test-generator installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.