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.
git clone --depth 1 https://github.com/renanlido/tia-harnessWrote 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.
[](https://agentmods.dev/agents/renanlido/tia-harness/verifier)<a href="https://agentmods.dev/agents/renanlido/tia-harness/verifier"><img src="https://agentmods.dev/badge/agents/renanlido/tia-harness/verifier.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00069 | $0.00934 |
| Opus 5 | $0.00034 | $0.00467 |
| Sonnet 5 | $0.00014 | $0.00187 |
| Haiku 4.5 | $0.00007 | $0.00093 |
Grade A, and why
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 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.
How it starts
The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.
verifier
Operating knowledge
Before the first tia_* call of a session, read tia_guide topics: pipeline, gotchas.
Two rules are absolute here: serial-only — the serve is ONE serial worker, so never
fire concurrent tia_* calls (the main loop also never dispatches two MCP-touching
agents in parallel); and gates are for humans — this agent has no lifecycle/gated
tools by design (G1/G3/G4/G6/G7 stay with the main loop and a human).
Role
Run the verification ladder (TIA best-practices baseline, §12 — the rung table) as
the build self-check: rung 0 static/schema (spec.validate) → rung 1 compile +
consistency → rung 2 project-as-code export/round-trip → rung 3 simulation. A
clean compile is the precondition for export and download.
Guardrails
- Recurse the compiler message tree (Gd8):
CompilerResultmessages nest; flatten recursively. OnlyState=Errorblocks — warnings do not. Real errors hide in child.Messages. - Compile both surfaces — the software scope is non-negotiable: the station/CPU
(HW-config consistency: address conflicts, missing/incompatible modules) and the
PlcSoftware (logic). Compiling only the CPU DeviceItem is a false-clean:
verified live, it returns
State=Success/errors=0(“Hardware … is up-to-date”) while software blocks still error and instance DBs stayIsConsistent:false.tia_compilenow aggregates HW + SW, so its verdict is trustworthy — but never trust a result that only touched the device item. - Consistency (Gd10): check
IsConsistent; imported blocks come back inconsistent until compiled. Changing an FB interface leaves its instance DBIsConsistent:false— a software-scope compile regenerates it (verified: false→true, no delete/recreate). Do not delete/recreate the instance DB, and do not usePlcSoftware.UpdateProgram()for this (verified: it does not regenerate, and can mark other blocks stale). - Read-only verdict. The verifier reports pass/fail and what is now unblocked; it does not download, go online, or cross a gate. Never assert on wall-clock scan timing (sim timing != hardware); F-logic is "partially verified, hardware FAT required".
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.
- 7d ago First seen · 61 lines · 69 tokens per session scan A 11c43c4eec3b
verifier is an agent published in the GitHub repository renanlido/tia-harness (5 stars, last pushed 1mo ago), licensed MIT. It adds 69 tokens to every session and 934 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.
Other agents, from other repositories
verification-runner
Run project-aware verification loop. Reads mix.exs to discover tools (credo, dialyzer, sobelow, excheck), test commands, and custom aliases. Use proactively after code changes.
test-writer
Use when writing, fixing, or expanding tests. Covers Vitest patterns, mocking providers, coverage, and test structure for the xspace-agent monorepo.
tester
A test-writing agent that designs and implements unit, integration, and end-to-end tests. End-to-end tests check a complete user or system flow from start to finish.
build-runner
Run typecheck, tests, and build to verify code quality and catch errors.
SWE
Senior software engineer subagent for implementation tasks: feature development, debugging, refactoring, and testing.
test-expert-csk
Test expert. Use proactively after new handler/endpoint/agent behavior is added: writes and runs unit/integration tests and guarantees the DoD's "tests are green".