--- 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 To create a new skill: Click ... → Copy on this page, then replace all placeholder content with your implementation. |
|
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\] |
What must exist in the solution before this skill can be applied.
open_solution or create_solution completed)\[Specific tags, channels, or objects that must exist\] |
\[Required ScriptsReferences or NuGet packages\] |
Quick reference for Claude on which tools and table types this skill uses.
Category | Items |
|---|---|
Tools |
|
Tables |
|
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.
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 |
| OnChange |
How to confirm the implementation is correct. List concrete checks.
get_objects('TableType') — verify the new objects appearget_designer_state() — confirm no compilation errors (for scripts)Start runtime ? check that \[expected behavior occurs\] |
browse_namespace('Tag.Path') — verify tags have expected valuesMistake | Why It Happens | How to Avoid | ||
|---|---|---|---|---|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c639e625-834c-4403-8107-d49ae15a532a"><ac:plain-text-body><![CDATA[ | [Mistake 1] | [Root cause] | [Correct approach] | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="146abb4a-092f-4977-8751-18f41c898a9b"><ac:plain-text-body><![CDATA[ | [Mistake 2] | [Root cause] | [Correct approach] | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="3706199e-d1e6-405e-a08f-c5e6978f5077"><ac:plain-text-body><![CDATA[ | [Mistake 3] | [Root cause] | [Correct approach] | ]]></ac:plain-text-body></ac:structured-macro> |
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\] |
{{skill-related-name}} — \[How it connects\] |
{{skill-another-name}} — \[How it connects\] |