From tckit
Use on the FIRST encounter with a TwinCAT project in a session, or when the user asks for a "structural overview", "subsystem map", "what's in this project", "introduce me to this project", "give me the lay of the land", "tell me about this codebase", "summarise this project", or any first-touch orientation. Triggers BEFORE tc-read-project; tc-read-project takes over for follow-up reads once orientation is done. Do NOT use mid-task on a project already mapped this session.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tckit:tc-orient-projectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
get_structure call. Call get_structure(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.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.tasks[].programs, identify which POU is bound to the primary cyclic task (typically the one with the shortest cycle_time_us). Call get_pou_interface on that one POU.get_pou_interface on it. The aim is to learn the project's naming and error-handling conventions, not to map every method.tc-read-project.get_structure + at most one entry-point read + at most four subsystem-sample reads.get_pou_interface, you are no longer orienting; stop and report what you have.get_pou_item during orientation. Bodies come later, via tc-read-project.Read or Grep on .TcPOU / .TcGVL / .TcDUT files as a substitute for get_structure / get_pou_interface when those tools are available. get_structure already mapped them; raw XML reads in that case waste the context window.get_structure again later in the session "to refresh". It is one-shot per session unless the project changes on disk.tc-beckhoff-docs.If mcp__tckit__get_structure is not registered in this session (e.g. the MCP server isn't running, or the user has not configured TcKit), fall back to the minimum-cost path:
.plcproj (item manifest, library refs) and .tsproj (tasks) directly. These are small project-shaping XML files; reading them is cheap and gives most of what get_structure would..plcproj..TcPOU bodies in bulk; sample one or two at the declaration level only, via Read on specific files, to learn conventions.The anti-pattern is using raw XML reads instead of TcKit when TcKit is available, not using them as a fallback when it isn't.
"TcUnit splits into four subsystems by folder:
POUs(15 FBs) — the test framework core (FB_TestSuite, FB_TestResults, FB_TcUnitRunner).POUs/Functions(12 FUNCTIONs) — helpers used by the framework.POUs/Functions/WRITE_PROTECTED_(16 FUNCTIONs) — type-specific write-protect wrappers.DUTs/GVLs/ITFs— supporting types and interfaces.No PLC tasks are defined; this is a library project. Library refs: Tc2_Standard, Tc2_System, Tc2_Utilities, SysFile, SysDir, plus a direct ref to Base Interfaces.
Conventions in FB_TestSuite: PascalCase FB names,
bErrorpropagation,// :Description:doc comments. Inputs are prefixed by type (sName,nValue)."
That is the shape: subsystems with one-line summaries, tasks if any, libraries, conventions inferred from one or two sampled interfaces. Then stop.
When orientation is done and the user asks something specific, hand off to:
tc-read-project for deeper reads (method bodies, GVL contents, DUT details).tc-write-st if the next request is to modify code.tc-beckhoff-docs if an unfamiliar Beckhoff FB needs research.npx claudepluginhub georgeturneruk/tckit --plugin tckitGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.