capture — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited capture (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Run .skills/capture/scripts/capture_fixture.sh from the project root. It captures the genuine Claude Code request body end to end:
--capture-body <tmp> (detached,via .skills/monitor's run_monitor.sh --detach);
claude turn through it (`benchmark/bin/drive_pty.js--turns 1`), which points claude at the proxy and types a single prompt;
benchmark/bin/verify_fixture.js (must carry ≥1cache_control breakpoint, else the 1h-TTL arm is a no-op);
The captured bytes are the request body only — system prompt, tools, and the one message. The Anthropic API key is not captured (it rides in headers clawback never dumps). Still, treat the fixture as sensitive: it contains your system prompt and tool definitions. It is gitignored-by-convention and excluded from the npm tarball.
Step 2 runs the real claude binary against your own Anthropic limits — exactly one turn. Pin a cheap model to keep it trivial:
.skills/capture/scripts/capture_fixture.sh --model claude-haiku-4-5-20251001Requirements: the claude CLI on PATH, node-pty installed (npm i node-pty), and claude already authenticated.
# default: capture to benchmark/fixtures/ccode.json on 127.0.0.1:8787
.skills/capture/scripts/capture_fixture.sh --model claude-haiku-4-5-20251001
# custom destination / port / prompt:
.skills/capture/scripts/capture_fixture.sh --out benchmark/fixtures/mywork.json \
--port 8790 --prompt "Summarize README.md in one line."--out PATH — fixture destination (default benchmark/fixtures/ccode.json).--host, --port — proxy bind (default 127.0.0.1:8787).--model ID — pin claude's model (cost control; forwarded to drive_pty).--prompt TEXT — the single prompt to type (default: a read-only listing).--keep-tmp — keep the temp dump even if verification fails (debugging).-- is forwarded to drive_pty.js.--capture-body (in src/server.js) dumps the pristine body once, before clawback's strip/1h-rewrite mutations — so the fixture is exactly what Claude Code put on the wire. Replaying it through clawback then exercises the real cache mechanic. See .skills/replay.
Replay the fixture with .skills/replay, then analyze with .skills/bench and visualize with .skills/plot. For the faithful (non-replay) arm that drives real claude live, see .skills/drive.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.