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


Canonical template for creating FrameworX AI Skills — markdown playbooks that teach the AI assistant how to build specific solutions. Duplicate this page to create your own skill.


Publishing checklist: When publishing a skill page to Confluence, you must add the skill label to the page. Without this label, search_docs(query, labels='skill') will not discover your skill. Add additional labels for relevant modules (e.g. alarm, script, ml).

To create a new skill: Click ...Copy on this page, then replace all placeholder content with your implementation.



What This Skill Does

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.

Example: "This skill creates a complete alarm pipeline: groups for severity classification, alarm items with limit-based triggers on existing tags, and verification via AlarmsMonitor."


On this page:


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:

Do NOT use this skill when:

Prerequisites

What must exist in the solution before this skill can be applied.

MCP Tools and Tables Involved

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

Category

Items

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:

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.

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

How to Avoid

‹Mistake 1›

‹Root cause›

‹Correct approach›

‹Mistake 2›

‹Root cause›

‹Correct approach›

‹Mistake 3›

‹Root cause›

‹Correct approach›

Variations

Optional section for common variations of this skill.

Variation A: ‹Name›

Variation B: ‹Name›

Related Skills


In this section...