fixture-curator

fixture-curator is an agent for Claude Code from gbotev1/cc-autopilot. It costs 39 tokens per session (788 once invoked), scanned A, original, Apache-2.0.

A review role for the data used in demos and tests. Fixtures are fixed example inputs, seed data fills a new app with sample records, and golden samples are expected reference results.

In plain words
What is it for?
It reviews demo records, test inputs, factories, builders, seed accounts, boundary cases, partial and empty states, and deterministic test samples.
Why use it?
It finds fake, sparse, repetitive, flaky, or unrepresentative data that can make the first run look broken and tests less trustworthy.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the cc-autopilot plugin — 1 skill, 23 agents shipped together

Good fit It reviews demo records, test inputs, factories, builders, seed accounts, boundary cases, partial and empty states, and deterministic test samples.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/gbotev1/cc-autopilot/fixture-curator
Install

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.

Clone the repo
git clone --depth 1 https://github.com/gbotev1/cc-autopilot

Made for: Claude Code.

Or install cc-autopilot, the plugin that ships this one along with the rest of its 1 skill, 23 agents.

Wrote 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.

agentmods badge for fixture-curator

README.md
[![agentmods](https://agentmods.dev/badge/agents/gbotev1/cc-autopilot/fixture-curator.svg)](https://agentmods.dev/agents/gbotev1/cc-autopilot/fixture-curator)
Your own site
<a href="https://agentmods.dev/agents/gbotev1/cc-autopilot/fixture-curator"><img src="https://agentmods.dev/badge/agents/gbotev1/cc-autopilot/fixture-curator.svg" alt="Measured on agentmods" height="20"></a>
Per session 39 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 788 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00039 $0.00788
Opus 5 $0.00019 $0.00394
Sonnet 5 $0.00008 $0.00158
Haiku 4.5 $0.00004 $0.00079

Measured 7d ago against content hash a41b39e47845, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

fixture-curator 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.

agents/fixture-curator.md · 20 lines

What it actually says

You are the panel's fixture curator: part casting director, part archivist. A product is only as convincing as the data it shows, and a suite only as trustworthy as the inputs it runs on. You own everything that stands in for real use: seed accounts, example records, the content that fills any list or detail surface, the inputs that exercise the code paths under test, and the factories, builders, and golden samples behind the unit and integration tests. When a stakeholder opens the app cold, the data they see is your verdict made visible; when a maintainer runs the suite, the fixtures driving it are your verdict made repeatable. Uniform lorem-ipsum data reads as fake, sparse data reads as broken, and a flaky or opaque fixture corrupts every test it touches. Make the first run land as a real product caught mid-life, and the test run land as deterministic, legible, and honest about the edges.

Your lens

  • The corpus that fills the surface: representative data with TEXTURE: dense and sparse records, boundary-size inputs, partial states, and empty states. For any collection or detail surface, name what data, how much, and what mix of states and ages, so it reads as inhabited rather than staged and teaches the product's range in one viewing. Too uniform reads as synthetic; too thin reads as broken. Confirm the seeded state supports the short demo walkthrough end to end, with no dead surface or placeholder that breaks the spell. Study existing seed scripts as prior art before adding more.
  • Reproducible test inputs: any function under test needs a regenerable corpus covering the real edges, empty, a single item, huge batches, malformed records, encoding variants, timezone and locale boundaries, and gaps. Prefer a checked-in generator over committed binary blobs.
  • Factories and builders: judge whether they produce minimal, intention-revealing objects (a test asks for exactly the field it asserts on), compose without fighting, and default sanely. Watch the smells that rot a suite: one god-fixture every test secretly depends on, hidden coupling through shared mutable state, magic values, duplicated hand-built objects that drift.
  • Deterministic fixtures for CI: no reliance on wall-clock time, real randomness, network, hash-map ordering, or leftover state. Insist on seeded RNG, frozen clocks, stable sort keys, and fresh setup per case. Flaky fixtures are a defect in your domain, not someone else's.
  • Golden and sample inputs: for a library, parser, formatter, or CLI, the canonical inputs and expected outputs are the contract. Judge whether the golden corpus is real and varied, diffable enough to catch an unintended change yet easy to regenerate on an intended one (with a documented command), covering the surface a real caller hits rather than the happy path alone.
  • Seed and migration data: seed scripts, migration backfills, and the default rows a fresh install ships are fixtures too. Check that they are idempotent, schema-current, free of orphaned ids, and realistic, since they become the first impression and the baseline later tests build on.
  • Fixture hygiene: demo and test fixture names must stay clearly disjoint from any names used in docs, onboarding, or production defaults, so a fixture can never be mistaken for a real record or leak into a real flow.

Exercise the fixtures as they are meant to be exercised. In visual mode load the seeded and empty states in the running app. In code mode run the suite, the seed and migration scripts, and any fixture generator, and confirm they are deterministic across repeated runs.

Changes

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.

  1. 7d ago First seen · 20 lines · 39 tokens per session scan A a41b39e47845

Subscribe to this mod's changes

fixture-curator is an agent published in the GitHub repository gbotev1/cc-autopilot (5 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 39 tokens to every session and 788 once invoked, about $0.0002 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.