tia-handoff

tia-handoff is a skill for Claude Code from renanlido/tia-harness. It costs 189 tokens per session (3,286 once invoked), scanned A, original, MIT.

A procedure for preparing a human-approval package before a gated Siemens TIA operation, such as downloading code to a controller or going online. It stops at the approval boundary rather than independently changing equipment, networks, secrets, or safety settings.

In plain words
What is it for?
Use it to prepare approval for deployment, commissioning, network scans, credential operations, or safety-related actions in TIA Portal.
Why use it?
It makes the proposed action, required human step, plan, hash, and resume call explicit. This prevents an agent from autonomously commissioning or making other high-risk physical changes.

Skill for Claude Code

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

Part of the tia-harness plugin — 9 skills, 4 agents, 1 hook shipped together

Good fit Use it to prepare approval for deployment, commissioning, network scans, credential operations, or safety-related actions in TIA Portal.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/renanlido/tia-harness/tia-handoff
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.

Any agent
npx skills add renanlido/tia-harness --skill tia-handoff
Clone the repo
git clone --depth 1 https://github.com/renanlido/tia-harness

Made for: Claude Code.

Or install tia-harness, the plugin that ships this one along with the rest of its 9 skills, 4 agents, 1 hook.

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 tia-handoff

README.md
[![agentmods](https://agentmods.dev/badge/skills/renanlido/tia-harness/tia-handoff/github.svg)](https://agentmods.dev/skills/renanlido/tia-harness/tia-handoff)
Your own site
<a href="https://agentmods.dev/skills/renanlido/tia-harness/tia-handoff"><img src="https://agentmods.dev/badge/skills/renanlido/tia-harness/tia-handoff/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 tia-handoff

Your own site · 80×15
<a href="https://agentmods.dev/skills/renanlido/tia-harness/tia-handoff"><img src="https://agentmods.dev/badge/skills/renanlido/tia-harness/tia-handoff.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 189 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,286 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.00189 $0.03286
Opus 5.5 $0.00076 $0.01314
Sonnet 5.5 $0.00038 $0.00657
Haiku 4.5 $0.00019 $0.00329

Measured 4d ago against content hash 42ae90090ce7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

tia-handoff 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 4d 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.

codex/skills/tia-handoff/SKILL.md · 158 lines

How it starts

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

tia-handoff — prepare the gate, let a human act (class GATE)

The harness is an assistant up to the gate, never an autonomous commissioner. Anything that touches the physical controller, the network, secrets, or safety stops here: this skill assembles the approval envelope (requires_human_action) — what can be done, what the human must do, the plan + hash, and the exact resume call — and then stops.

Errors and reporting

  • First call tia_ping: continue only if it reports reachable:true and activated:true. activated:null with a busy detail means a job is still running: poll tia_job_status with the jobId you hold, or wait and ping again. Otherwise stop, quote its detail and hint verbatim and say that nothing was changed (prerequisites: tia_guide {"topic":"gotchas"}).
  • If no tia_* tool is available, the tia MCP is not connected: say so and stop. Never continue from memory and never work around it with hand-made HTTP calls (they bypass the MCP's gate checks).
  • On a tool error (isError:true), quote its error and kind verbatim, relay its hint, and state what was done and what was not. Apply only the remedy the hint or this skill names, at most once; otherwise stop and ask.
  • Never report success after an error, never retry a refused call with changed arguments, and never cross a human gate: relay a requires_human_action answer verbatim and wait for the human.
  • status:"running" or kind:"busy" is not a failure: poll tia_job_status {jobId}. After a timeout, check the state before repeating anything.

When to use

  • After tia-verify is clean and the user wants to download / deploy / go online / scan / commission.
  • Whenever a step needs a secret (master secret, UMAC, an upload / block / certificate password), a password-policy decision, or touches F (safety).

The gates (and the tool that fronts each)

Gate Action Tool What the human must approve
G1 open/connect project (1st time) tia_connect (+ tia_show_ui) confirm the TIA trust dialog on the serve host
G3 download (CPU STOP → possible program delete → overwrite → restart) tia_download the verified plan + software fingerprint + EVERY loadPreview.willConfirm entry: StopAll, ResetModule = DeleteAll (a different program on the CPU is deleted), OverwriteSystemData, ConsistentDownload of blocks and alarm text libraries, StartModule, and UpgradeTargetDevice (only if opted in; without it a CPU that needs it refuses the load)
G4 go online (connect to live CPU) tia_online it is safe to connect to the target machine
G4 station upload (read CPU into project) tia_upload it is safe to connect to the target machine AND the open project is a dedicated backup project (the upload adds a new station — skill tia-backup)
G7 network scan (accessible devices) tia_accessible_devices probing the local network via the PG/PC NIC
G6 credentials: master secret / UMAC / upload read password / block know-how password / certificate password / password policy / local-session logon dialog tia_mastersecret_set ({plc, password}), tia_mastersecret_reset, tia_connect (umacUser/umacPassword), tia_upload (password), tia_block_protect, tia_certificate_import, tia_password_policy_set, tia_local_session_open (a UMAC-protected session may wait on a Siemens logon dialog on the serve host) supply the secret / decide the policy / answer the logon dialog (human/credential vault); a reset only on the human's explicit request
G5 safety/F author·modify·download — never autonomous; F deploy is a human, gated action

Read the full file on GitHub · 158 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. 4d ago Changed · +3 lines 42ae90090ce7
  2. 7d ago Changed · +23 lines 56aaecb12352
  3. 10d ago First seen · 132 lines · 189 tokens per session scan A 166d1f2ad82f

Subscribe to this mod's changes

tia-handoff is a skill published in the GitHub repository renanlido/tia-harness (11 stars, last pushed 4d ago), licensed MIT. It adds 189 tokens to every session and 3,286 once invoked, about $0.0008 per session on Opus 5.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-10-18.

Related

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.

bulaofen0036-coder/TIA_Portal_Openness_MCP · 103 tokens

iaiops-building

Building edition of iaiops — facility / HVAC / BMS / 厂务 over BACnet/IP (ASHRAE 135): Who-Is discovery, object/point lists, presentValue snapshots, COV capture, TrendLog reads, one MOC-gated property write; plus Modbus-TCP/RTU for meters/chillers and optional plain MQTT for IoT sensors, with the cross-protocol brain.…

industrial-aiops/industrial-aiops · 236 tokens

iaiops-factory

Factory edition of iaiops — discrete-manufacturing lines: OPC-UA, Modbus-TCP/RTU, Siemens S7comm (S7-300/400/1200/1500), Mitsubishi MC/MELSEC, Omron FINS (CS/CJ/CP/NX), Allen-Bradley EtherNet/IP (ControlLogix/CompactLogix), EtherCAT (CoE/SOEM), PROFINET (DCP discovery), MTConnect (CNC machine tools), IO-Link (master…

industrial-aiops/industrial-aiops · 200 tokens

iaiops-pharma

Pharmaceutical-manufacturing edition of iaiops — GMP drug/biologics plants as a distinct vertical from generic buildings and municipal water. BACnet/IP BMS+EMS (cleanroom pressure cascade, temperature/RH), Modbus (PW/WFI skids, stills, EDI, analysers), HART-IP (conductivity / TOC / level transmitters), OPC-UA (DCS…

industrial-aiops/industrial-aiops · 293 tokens

iaiops-clinical

Clinical-facility edition of iaiops — hospital / healthcare facilities as a distinct vertical from generic building management, with patient-safety framing. BACnet/IP BMS (isolation-room pressurization + medical-gas source monitoring), Modbus (medical-gas alarm panels / energy meters), OPC-UA (plant SCADA), plus the…

industrial-aiops/industrial-aiops · 222 tokens

iaiops-process

Process-industry edition of iaiops — chemical / pharma / food & beverage / oil & gas plants: HART-IP process instrumentation (transmitters, valve positioners, loop current), OPC-UA (DCS / gateway read), Modbus-TCP/RTU (skids, analyzers), optional MQTT/Sparkplug B UNS, plus the cross-protocol brain (downtime…

industrial-aiops/industrial-aiops · 150 tokens