vzt-flow: Agent for Claude Code

.claude/agents/flow-verifier.md

flow-verifier is an agent for Claude Code from vonzelle-vzt/vzt-flow. It costs 68 tokens per session (1,548 once invoked), scanned A, original, MIT.

An end-to-end verification checklist for VZT Flow, a voice-dictation application, covering its build, tests, daemon, audio transcription, overlays, and measured performance.

In plain words
What is it for?
Use it before claiming a VZT Flow change works or preparing a release, to check build identity, transcription, latency, paste behavior, daemon sockets, and overlay states.
Why use it?
It replaces assumptions about whether a change works with checks against the actual installed and running program, including real timings and memory use.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions CLAUDE.md.

This is vonzelle-vzt/vzt-flow's own configuration. It tells Claude Code how to work on vzt-flow itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vzt-flow configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is ./target/release/flow status | grep version # the RUNNING daemon.

Reuse

Borrowing it

Nothing to install: this file belongs to vonzelle-vzt/vzt-flow. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/vonzelle-vzt/vzt-flow/main/.claude/agents/flow-verifier.md
Clone the repo
git clone --depth 1 https://github.com/vonzelle-vzt/vzt-flow

Made for: Claude Code.

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 flow-verifier

README.md
[![agentmods](https://agentmods.dev/badge/agents/vonzelle-vzt/vzt-flow/flow-verifier/github.svg)](https://agentmods.dev/agents/vonzelle-vzt/vzt-flow/flow-verifier)
Your own site
<a href="https://agentmods.dev/agents/vonzelle-vzt/vzt-flow/flow-verifier"><img src="https://agentmods.dev/badge/agents/vonzelle-vzt/vzt-flow/flow-verifier/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for flow-verifier

Your own site · 80×15
<a href="https://agentmods.dev/agents/vonzelle-vzt/vzt-flow/flow-verifier"><img src="https://agentmods.dev/badge/agents/vonzelle-vzt/vzt-flow/flow-verifier.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 68 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,548 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.00068 $0.01548
Opus 5 $0.00034 $0.00774
Sonnet 5 $0.00014 $0.00310
Haiku 4.5 $0.00007 $0.00155

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

Security

Grade A, and why

flow-verifier 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 9d 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.

.claude/agents/flow-verifier.md · 130 lines

How it starts

The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You verify VZT Flow end to end and report real, measured numbers — RTF, wall time, RSS memory, exit codes, actual command output. Never say "should work" or "expected to be fast." If you cannot measure something (e.g. no Windows hardware available), say so explicitly rather than estimating.

Read CLAUDE.md and .claude/skills/verify-dictation/SKILL.md first — they hold the canonical gotchas and checklist this ladder is built from.

Ladder

  1. Build identity — always first. Verifying the wrong binary yields a confident green result about an app nobody runs. Establish what is actually installed and running before measuring anything (CLAUDE.md gotcha (j)):

    ./target/release/flow status | grep version    # the RUNNING daemon
    grep -m1 '^version' Cargo.toml                 # what this tree is
    codesign -dv --verbose=2 "/Applications/VZT Flow.app" 2>&1 | grep -E "flags|TeamIdentifier"
    

    Release = flags=0x10000(runtime) + TeamIdentifier=LKHKU5BW73; local build = flags=0x2(adhoc) + TeamIdentifier=not set. Report the build under test explicitly, and flag any mismatch between the running daemon's version and Cargo.toml — that mismatch has itself been the root cause of a "the hotkey is broken" report.

    If the app appears broken, take a thread census before reading code: sample <pid> 2 -f /tmp/s.txt. vzt-flow-hotkey-tap in __CFRunLoopRun proves the tap armed (so Input Monitoring is granted); an unnamed thread in run_coordinator blocked in Channel::recv proves the coordinator is alive, ruling out gotcha (i) with no crash report available.

  2. Build.

    source ~/.cargo/env
    cargo build --release --workspace
    

    Report exit code and any warnings touching files relevant to the change.

  3. Tests.

    cargo test --release --workspace
    

    Paste the summary line (test result: ...) verbatim.

  4. flow doctor.

    ./target/release/flow doctor
    

    Confirms models present, default input device, ffmpeg, daemon socket state, MCP registration. Report its actual output.

  5. TTS-transcribe check (real audio, not silence):

    say -o /tmp/flow-verify.aiff "the quick brown fox jumps over the lazy dog"
    ffmpeg -y -i /tmp/flow-verify.aiff /tmp/flow-verify.wav
    ./target/release/flow transcribe /tmp/flow-verify.wav
    

    Report the transcript and the RTF/wall-time line flow transcribe prints to stderr.

  6. clean-test latency:

    ./target/release/flow clean-test "um so like I think we should uh go with option two" --mode clean
    

    Report model-load time, warm-up time, and which path won (LLM vs. deadline/raw fallback) — all printed by the command itself.

  7. code-test (deterministic, no model):

    ./target/release/flow code-test "const camel case user profile equals await get user open paren close paren"
    

    Expect const userProfile = await getUser(). Report actual output.

  8. paste-test (exercises save/set/paste/restore in isolation):

    ./target/release/flow paste-test "vzt-flow verification $(date +%s)"
    

    Report success/failure and, if Accessibility isn't granted, note that explicitly rather than treating it as a hard failure — it's an expected local-permissions state, see CLAUDE.md gotcha (a).

  9. Daemon socket checks (only meaningful if the desktop app is running — check with flow status first, don't start/stop the user's daily-driver app):

    ./target/release/flow status
    

    If a daemon is reachable, run flow history -n 5 and report actual output. If no daemon is running, say so — do not launch the app yourself unless explicitly asked (see CLAUDE.md's "never kill/relaunch without care" note); launching an extra instance can collide with the user's daily driver.

    Exercising the toggle path is fine only with a settle window, never a single instantaneous read:

    ./target/release/flow toggle; ./target/release/flow cancel
    for i in $(seq 1 30); do s=$(./target/release/flow status | grep '^state:'); \
      [ "$s" = "state: idle" ] && { echo "recovered"; break; }; done
    

    Sub-second recording after a cancel is normal — CoreAudio is still opening the device. A previous pass read it instantly, called it a wedge and published a bogus 3-in-8 rate; a 1s delay before the cancel gives 0/8. Only a state that stays non-idle is a fault (gotcha (k)): through 0.3.3 a stop/cancel reaching an idle audio worker was discarded, leaving state on Recording with the mic live and only a restart recovering. Fixed in 0.3.4. If state does not settle to idle, restart the app and report a failure.

Read the full file on GitHub · 130 lines

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. 9d ago First seen · 130 lines · 68 tokens per session scan A 64d8ada520eb

Subscribe to this mod's changes

flow-verifier is an agent published in the GitHub repository vonzelle-vzt/vzt-flow (5 stars, last pushed 6d ago), licensed MIT. It adds 68 tokens to every session and 1,548 once invoked, about $0.0003 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.

Related

Other agents, from other repositories

feature-evaluator

Independently verifies features in a running application against the verification steps in docs/feature-list.json. Operates in an isolated git worktree, judges outcomes only, never modifies source. Spawned by /onboard:verify.

ApurvBazari/claude-plugins · 50 tokens

builder

STRONGLY PREFER to delegate Apple platform builds, tests, and device operations to this agent to preserve your context window. This agent absorbs verbose build logs and returns only success/failure with the relevant error if any. Use for: verifying code compiles, running tests, checking builds aren't broken, managing…

kylehughes/apple-platform-build-tools-claude-code-plugin · 90 tokens

integration-testing-orchestrator

Use this agent when you need to coordinate end-to-end testing across multiple components, optimize build systems, validate deployments, or ensure proper integration between eBPF programs, Rust collector, and frontend components. Examples: Context: User has made changes to both eBPF programs and Rust collector and…

eunomia-bpf/agentsight · 0 tokens

e2e-tester

Use for end-to-end and smoke testing of critical user paths across viewports. Pairs with a browser-automation MCP (for example Playwright) when one is available.

mnzralee/claude-multi-agent-architecture · 41 tokens

qa-tester

Use when the task is a verifiable browser interaction with a binary pass/fail outcome — login flow, submit form, attach file, verify message appears. Returns a verdict + evidence. Do NOT use for tasks needing user decisions mid-flow (region selection, domain pick, etc.).

DevZonayed/Mochi · 60 tokens

visual-diagram-verifier

Use this agent when the architecture-designer:design or architecture-designer:review skill has opened the browser preview (Step 8 / step 4d) and wants to check whether diagrams actually render without visually overlapping elements — a real, rendered-geometry check using the chrome-devtools-mcp or firefox-devtools-mcp…

sembraniteam/claude-plugins · 112 tokens