plc-code-analysis
Standalone skill for multi-perspective PLC code security and quality analysis. Triggers on: "review", "audit", "analyze", "security check", "vulnerability…
TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters.
$ npx -y skills add Czarnak/totally-integrated-claude --skill addin-operations --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/addin-operationsContext preview
The summary Claude sees to decide when to auto-load this skill.
TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters.
name: addin-operations description: > TIA Portal Add-In development in Visual Studio Code: creating Add-In C# projects, adding Add-In templates, compiling and debugging Add-Ins, converting Add-Ins from older TIA Portal versions and configuring Add-In project parameters. license: MIT allowed-tools: Bash(dotnet new *)
Source: TIA Portal Add-In Development Tools Manual (11/2025)
Add-In development in VS Code using C# and the dotnet Add-In SDK. Do not mix with Python wrapper calls.
---
Load ONLY the reference file(s) relevant to the task. Do not load all files at once.
| Reference file | Load when the task involves | |---|---| | `references/api-surface.md` | Choosing provider/add-in types; VCI or CAx workflow item types; workflow-to-assembly mapping | | `references/api-menus.md` | Building context menu structures; action items; submenus; selection handling | | `references/api-permissions.md` | Starting external processes; handling ProcessStartPermission | | `references/assembly-references.md` | Adding PLC software, block, or tag access to an Add-In csproj | | `references/attribute-helper.md` | Reading/writing engineering object attributes via `GetAttributeInfos` or `SetAttributes` | | `references/threading-and-callbacks.md` | Add-In execution lifetime; notifications and confirmations; separate-process UI; status callback constraints | | `references/runtime-gotchas.md` | Unsupported assembly-path resolution; managed dependency packaging; SplitContainer sizing crashes; WinForms `.resx` sandbox failures; version fields; engineering-object field warnings | | `references/package-and-publisher.md` | `.addin` package internals; V21 publisher config; `PlatformTarget`; verifying a published package | | `references/migrate-from-older-version.md` | Converting a V20 (or earlier) Add-In to V21; decompiling an existing `.addin` when source is lost | | `references/skeleton.md` | Starting a new context-menu Add-In from scratch |
For tasks spanning multiple areas, load all relevant reference files before generating code.
---
1. Pick the Add-In type → run `dotnet new <template>` (see template table below) 2. Decide which TIA Portal objects the Add-In must access; if PLC/SW/HW → load `references/assembly-references.md` 3. Implement `BuildContextMenuItems` — status callback returns `MenuStatus.Enabled`, guard logic goes in the action callback 4. For UI: use callback-scoped `MessageBoxProvider`, or a permitted separate process for long-lived/custom UI → load `references/threading-and-callbacks.md` 5. Before distributing: compile with "Run build task", debug with F5
---
1. Open the Windows command prompt with administrator privileges. 2. (Optional) Navigate to the desired project location, or use the `--output` parameter. 3. Run:
dotnet new addin-project [options]
| Parameter | Long form | Short | Description | |-----------|-----------|-------|-------------| | output | --output | -o | Project folder. If not specified, project is created in the current directory. | | name | --name | -n | Project name. If not specified, the parent directory name is used. | | Namespace | --Namespace | -N | C# namespace. Default is derived from output directory or project name. | | TIAAccess | --TIAAccess | -TI | Authorization level: `ReadWrite` (default) or `ReadOnly`. |
dotnet new addin-project -o C:\MyAddIns\MyFirstAddIn -n MyAddinProject -N MyAddinNamespace -TI ReadWrite
The following parameters can also be set at creation time but are **editable later in `Config.xml`** inside the project directory: Author, Description, AddInVersion, ProductName, ProductId, ProductVersion, UnrestrictedAccess, JustificationComment.
A new project is created containing the framework for an empty Add-In that can be built. The project directory contains `Config.xml` for changing parameters after creation.
---
1. Open the Windows command prompt with administrator privileges. 2. Navigate to the project directory (or use `--output`). 3. Run:
dotnet new <Add-In-Type> [-o <output dir>] [-n <name>] [-N <namespace>]
Replace `<Add-In-Type>` with the short name from the table below.
**addin-project-tree-menu** — TIA Portal Project-Tree Context Menu Add-In Adds custom entries to the right-click menu of the project tree. Use cases: automating operations on blocks, tag tables, or devices; batch-exporting selected items; running custom validations on project tree objects.
**addin-project-library-tree-menu** — TIA Portal Project-Library-Tree Context Menu Add-In Adds custom entries to the right-click menu of the project library tree. Use cases: custom library management operations; automated copying or versioning of library types; bulk operations on library elements.
**addin-global-library-tree-menu** — TIA Portal Global-Library-Tree Context Menu Add-In Adds custom entries to the right-click menu of a global library. Use cases: synchronizing global library content with external systems; enforcing naming conventions across library elements; automated library maintenance tasks.
**addin-devices-and-networks-menu** — TIA Portal Devices and Networks Context Menu Add-In Adds custom entries to the right-click menu of the hardware and network editor. Use cases: automated network configuration; bulk device parameter changes; generating device reports or hardware bills of materials.
**addin-vci-editor** — TIA Portal VCI Editor Add-In Adds entries to the workspace area of the Version Control Interface workspace editor. These entries are always visible and should contain general-purpose functions. For repository-specific operations, use the VCI Import or VCI Export templates
A Claude Code plugin for Siemens TIA Portal engineering automation. Provides a routed skill framework for TIA Portal engineering automation: Siemens TIA Scripting Python V1.4.3 for its supported wrapper surface, audited C# Openness skills for advanced
Repo: Czarnak/totally-integrated-claude
Standalone skill for multi-perspective PLC code security and quality analysis. Triggers on: "review", "audit", "analyze", "security check", "vulnerability…
Internal reference skill — do NOT load directly from user queries.
Manual, read-only prerequisite probe for TIA Portal V21 and its modular Openness API, with optional Python TIA Scripting and TIA MCP checks.
C# Openness implementation of import/export and round-trip engineering.