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.
npx skills add renanlido/tia-harness --skill tia.verifygit 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/skills/renanlido/tia-harness/tia.verify)<a href="https://agentmods.dev/skills/renanlido/tia-harness/tia.verify"><img src="https://agentmods.dev/badge/skills/renanlido/tia-harness/tia.verify/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.
<a href="https://agentmods.dev/skills/renanlido/tia-harness/tia.verify"><img src="https://agentmods.dev/badge/skills/renanlido/tia-harness/tia.verify.svg" alt="Reviewed on agentmods" width="80" 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.00182 | $0.01134 |
| Opus 5 | $0.00091 | $0.00567 |
| Sonnet 5 | $0.00036 | $0.00227 |
| Haiku 4.5 | $0.00018 | $0.00113 |
Grade A, and why
tia.verify 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 12d 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 — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.
tia.verify — the verification ladder, rungs 0–3 (class M-off)
Prove a project "works in practice" offline, the only honest pre-deploy evidence. The
verification ladder (TIA best-practices baseline §12): rung 0 static (spec.validate), rung 1 compile +
consistency, rung 2 project-as-code diff, rung 3 simulation (PLCSIM, future). A
clean compile is the precondition (Gd9) for export and download — so this gate-keeps
tia.handoff.
Preconditions
- A project open (
tia_status→hasProject:true). Connecting is G1 — defer to the human.
Inputs / tools
tia_compile(per CLP) — returns{ state, errors, warnings, messages[] (tree), verification, nextHints }.tia_plc_blocks—isConsistentper block (stale ⇒ recompile).tia_export_xml— rung 2: export blocks/types to SimaticML for a git diff (round-trip proof).- Protection repair (when compile shows the bare-CPU errors):
tia_obj_service+tia_obj_invoke Protect+tia_obj_set_attributes PlcProtectionAccessLevel=FullAccess(see../tia.scaffold/RECIPES.md).
Outputs
- Per CLP:
compiled=clean|error,errors,warnings, and — if errors — the leaf messages (the real text; recurse the tree, intermediate nodes are empty by design). - A ladder verdict: which rungs passed (0 static, 1 compile/consistency, 2 export-diff) and
whether deploy (
tia.handoff) is unblocked.
Procedure (in order)
- Confirm open (
tia_status). - Rung 1 — compile each CLP (
tia_compile). Interpret: onlyState=Errorblocks; warnings never block (Gd8). The message tree's intermediate nodes have empty descriptions — recurse to the leaves for the real error text (don't report "3 errors" with no text). - Auto-repair the known case. If the errors are the bare-CPU protection signature
(confidential-config password / communication certificate / access level), apply the
RECIPES.mdprotection recipe and re-compile. Re-run is idempotent. - Consistency. Confirm
isConsistenton the blocks (tia_plc_blocks); a freshly imported block — or an instance DB whose FB interface changed — comes back inconsistent until compiled. The cure is a (software-scope) re-compile, whichtia_compiledoes and which regenerates the instance DB (verified: false→true). Re-runtia_compileand re-check; never delete/recreate the instance DB, and never reach forUpdateProgram()(it does not regenerate and can mark other blocks stale). - Rung 2 (optional) — project-as-code.
tia_export_xmlto a directory for a git diff / round-trip proof. Rung 3 (PLCSIM) is future — note it, don't fake it. - Report + hand off. If
errors:0, state that Gd9 is satisfied →tia.handoffmay prepare the (gated) download. If errors remain, list the leaf messages + fixes; do NOT proceed to deploy.
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.
- 12d ago First seen · 72 lines · 182 tokens per session scan A 4c47e81dfba1
tia.verify is a skill published in the GitHub repository renanlido/tia-harness (5 stars, last pushed 1mo ago), licensed MIT. It adds 182 tokens to every session and 1,134 once invoked, about $0.0009 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 skills, from other repositories
tiaportal-mcp
A skill for controlling Siemens TIA Portal, the engineering software used to configure Siemens PLCs and HMIs. It works through an MCP server, a tool connection that lets an agent inspect and change projects.
unity-ceedling-integration
Use when adding, configuring, or debugging Unity, Ceedling, CMock, or embedded C unit tests, mocks, fixtures, build variants, or CI test runs.
airflow-dag-patterns
Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.
ios-simulator
Verify and debug native, React Native, Expo, or Flutter apps on an iOS Simulator with agent-device. Use when an agent needs to launch an app, inspect its live UI, tap, type, scroll, validate a code change, collect failure evidence, or reproduce a workflow on an iPhone or iPad Simulator.
solopi-ai
A command-line framework for testing Android apps and devices with SoloPi, including on-device or cloud AI decision models. It manages devices, test cases, recorded interactions, replays, performance history, and evidence.
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.