tckit: Skill for Claude Code

.claude/skills/tc-orient-project/SKILL.md

tc-orient-project is a skill for Claude Code from georgeturneruk/tckit. It costs 115 tokens per session (1,279 once invoked), scanned A, original, MIT.

First-time map of a TwinCAT project, a software project used to program industrial controllers. It groups code by subsystem, identifies the main cyclic program, and samples key function blocks and shared definitions.

In plain words
What is it for?
Use it when first opening a TwinCAT project or when you need its subsystems, tasks, libraries, entry point, and overall code layout explained.
Why use it?
It gives a developer a focused overview of an unfamiliar controller project without requiring an inventory of every code item.

Skill for Claude Code

Written for Claude Code: allowed-tools in frontmatter.

This is georgeturneruk/tckit's own configuration. It tells Claude Code how to work on tckit 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 tckit configures →

Reuse

Borrowing it

Nothing to install: this file belongs to georgeturneruk/tckit. 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/georgeturneruk/tckit/main/.claude/skills/tc-orient-project/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/georgeturneruk/tckit

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 tc-orient-project

README.md
[![agentmods](https://agentmods.dev/badge/skills/georgeturneruk/tckit/tc-orient-project/github.svg)](https://agentmods.dev/skills/georgeturneruk/tckit/tc-orient-project)
Your own site
<a href="https://agentmods.dev/skills/georgeturneruk/tckit/tc-orient-project"><img src="https://agentmods.dev/badge/skills/georgeturneruk/tckit/tc-orient-project/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 tc-orient-project

Your own site · 80×15
<a href="https://agentmods.dev/skills/georgeturneruk/tckit/tc-orient-project"><img src="https://agentmods.dev/badge/skills/georgeturneruk/tckit/tc-orient-project.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 115 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,279 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.00115 $0.01279
Opus 5 $0.00057 $0.00639
Sonnet 5 $0.00023 $0.00256
Haiku 4.5 $0.00012 $0.00128

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

Security

Grade A, and why

tc-orient-project 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/skills/tc-orient-project/SKILL.md · 67 lines

How it starts

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

Orienting on a TwinCAT project

First-touch orientation is a fixed-budget activity. The point is to give the user a useful overview, not to inventory every POU. Stay disciplined.

Procedure

  1. One GetStructure call. Call GetStructure(project_path) exactly once. Read the full response. The returned ProjectStructure already contains everything needed for the overview:
    • pous[].folder groups POUs by subsystem (POUs sharing a folder are part of the same subsystem).
    • tasks lists each task with cycle_time_us, priority, and the bound programs.
    • libraries lists library references (Beckhoff and third-party).
    • gvls, duts are flat name lists.
  2. Identify subsystems. Group pous by folder. Each non-empty folder is a candidate subsystem. The flat (folder="") group is the project's "loose" code. Report the folder names and how many POUs each contains.
  3. Find the entry point. From tasks[].programs, identify which POU is bound to the primary cyclic task (typically the one with the shortest cycle_time_us). Call GetPouInterface on that one POU.
  4. Sample one FB per subsystem. Pick at most 4 subsystems. For each, choose one top-level FB (avoid helpers, internal-looking names, things in a "Functions" or "Utilities" folder). Call GetPouInterface on it. The aim is to learn the project's naming and error-handling conventions, not to map every method.
  5. STOP. Report the orientation. Subsystems, tasks (with cycle times), libraries, entry point, conventions. Do not crawl further. If the user's request demands deeper reading, hand off to tc-read-project.

Budget

  • Total tool calls for orientation should be ≤ 6: one GetStructure + at most one entry-point read + at most four subsystem-sample reads.
  • If you find yourself wanting a fifth GetPouInterface, you are no longer orienting; stop and report what you have.

Anti-patterns

  • Reading every POU "to be thorough". The whole point is to stop early.
  • Calling GetPouItem during orientation. Bodies come later, via tc-read-project.
  • Using Read or Grep on .TcPOU / .TcGVL / .TcDUT files as a substitute for GetStructure / GetPouInterface when those tools are available. GetStructure already mapped them; raw XML reads in that case waste the context window.
  • Calling GetStructure again later in the session "to refresh". It is one-shot per session unless the project changes on disk.
  • Quoting library behaviour from memory. If a library FB needs explaining, hand off to tc-beckhoff-docs.

Read the full file on GitHub · 67 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 · 67 lines · 115 tokens per session scan A ce8fb6c03021

Subscribe to this mod's changes

tc-orient-project is a skill published in the GitHub repository georgeturneruk/tckit (5 stars, last pushed 16d ago), licensed MIT. It adds 115 tokens to every session and 1,279 once invoked, about $0.0006 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 skills, from other repositories

gke-compute-classes

Configures, optimizes, and troubleshoots GKE ComputeClasses. Use when configuring Spot VMs with on-demand fallback, targeting specific accelerators (GPUs/TPUs) or machine families, restricting ComputeClass access, or debugging pending pods related to node pool auto-creation. Do not use for cluster-level Node Auto…

google/skills · 83 tokens

jetson-diagnostic

Read-only Jetson health snapshot for identity, memory, GPU, thermal, power, storage, services, and top processes.

NVIDIA/skills · 30 tokens

doca-socket-relay

Use this skill when the operator is driving the DOCA Socket Relay to bridge a socket-oriented host application onto a BlueField DPU peer without rewriting it — picking the deployment shape (in-process, sidecar, or BlueField service container), configuring the host-side socket and the DPU-side forwarding endpoint…

NVIDIA/skills · 236 tokens

offensive-z-wave

Z-Wave attack methodology — sniffing with Z-Force / EZ-Wave / RTL-SDR + ZniffMobile, S0 (legacy) network-key derivation flaw and key reuse, S2 (modern) ECDH commissioning analysis, replay/injection on unauthenticated nodes, default-key brute-force on test deployments, and home-automation hub pivots. Use when targeting…

SnailSploit/Claude-Red · 113 tokens

hsb-flash

Flash the FPGA on an HSB board connected to an NVIDIA devkit. Supports HSB Lattice boards (FPGA versions 2407, 2412, 2507, 2510) and Leopard Imaging VB1940 "all-in-one" cameras (FPGA versions 2507, 2510). Uses release-specific YAML manifests and board-type-specific program commands. Lattice and VB1940 commands must…

NVIDIA/skills · 94 tokens

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.

NVIDIA/skills · 50 tokens