Skill Template — Replace This Title
[replace, with, relevant, keywords]
One-line summary explaining what this skill teaches Claude to do
Version: "1.0" Author: "Tatsoft


First Steps After Creating a Solution

Brief one-paragraph summary of what this skill accomplishes. Focus on the outcome, not the process. Write this for Claude — it reads this after deciding to load the skill, so get straight to the point


When to Use This Skill

Describe the trigger conditions. Be specific — Claude uses this to decide whether to load the skill.

Use this skill when:

  • The user asks to [specific scenario]
  • The user mentions [specific keywords or concepts]
  • The solution needs [specific capability]

Do NOT use this skill when:

  • [Scenario where a different approach is better]
  • [Common misapplication to avoid]

Prerequisites

What must exist in the solution before this skill can be applied. List specific objects, modules, or configurations.

  • Solution must be open (open_solution or create_solution completed)
  • [Specific tags, channels, or objects that must exist]
  • [Required ScriptsReferences or NuGet packages]

MCP Tools and Tables Involved

Quick reference for Claude on which tools and table types this skill uses.

Tools: get_table_schema, write_objects, list_protocols, get_objects, list_elements Tables: UnsTags, DevicesChannels, DevicesNodes, DevicesPoints

Implementation Steps

Step 1: [Action Name]

Explain what to do and why. Include the exact MCP tool call.

First, fetch the schema to confirm field names:

get_table_schema('TableType')

Then write the objects:

{
  "table_type": "TableType",
  "data": [
    {
      "Name": "ObjectName",
      "Property1": "Value1",
      "Property2": "Value2"
    }
  ]
}

Key decisions:

  • Why this value for Property1
  • What to change for different scenarios

Step 2: [Action Name]

Continue the pattern. Each step should be self-contained enough that Claude can execute it and verify before moving on.

{
  "table_type": "AnotherTable",
  "data": [
    {
      "Name": "ObjectName",
      "DependsOn": "ObjectFromStep1"
    }
  ]
}

Step 3: [Action Name]

Final configuration step.

Code Examples

Include C# script examples when the skill involves ScriptsClasses or ScriptsTasks.

// ScriptsClasses — ClassContent for [purpose]
public static void MethodName(string tagPath)
{
    double value = @Tag.TagPath.Value;
    // Process logic here
    @Tag.OutputTag.Value = result;
}

Expression to trigger this class: | ObjectName | Expression | Execution | |---|---|---| | TriggerName | Script.Class.ClassName.MethodName(Tag.InputTag) | OnChange |

Verification

How to confirm the implementation is correct. List concrete checks.

  1. get_objects('TableType') — verify the new objects appear
  2. get_designer_state() — confirm no compilation errors (for scripts)
  3. Start runtime → check that [expected behavior occurs]
  4. browse_namespace('Tag.Path') — verify tags have expected values

Common Pitfalls

  • [Mistake]: [Why it happens and how to avoid it]
  • [Mistake]: [Why it happens and how to avoid it]
  • [Mistake]: [Why it happens and how to avoid it]

Variations

Optional section for common variations of this skill.

Variation A: [Name]

  • Change Step 2 to use [alternative approach]
  • Useful when [scenario]

Variation B: [Name]

  • Skip Step 3 and instead [alternative approach]
  • Useful when [scenario]

Related Skills

  • skill-related-name — [How it connects]
  • skill-another-name — [How it connects]

In this section...