From copilot-studio
Adds or modifies nodes like SendActivity, Question, ConditionGroup, SetVariable in Copilot Studio topics via schema lookup, file reads, and edits. Use for user-requested non-generative additions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/copilot-studio:add-node <node-type> to <topic-name><node-type> to <topic-name>copilot-studio-authorThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Add a new node to an existing Copilot Studio topic, or modify an existing one.
Add a new node to an existing Copilot Studio topic, or modify an existing one.
In Copilot Studio, the elements inside a topic's actions array are nodes (SendActivity, Question, ConditionGroup, etc.). These are different from actions (actions/*.mcs.yml), which are connector-based TaskDialogs. This skill handles nodes within topics.
For generative answers (SearchAndSummarizeContent, AnswerQuestionWithAI), use the /add-generative-answers skill instead — it has the specific patterns, follow-up ConditionGroup logic, and disambiguation guidance needed to set them up correctly.
Auto-discover the agent directory:
Glob: **/agent.mcs.yml
NEVER hardcode an agent name.
Parse the arguments to identify:
Look up the node schema:
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve <NodeType>
Read the existing topic file to understand its current structure.
Generate or modify the node with:
<nodeType>_<6-8 random alphanumeric>)Determine the correct insertion point in the actions array and present the plan to the user before writing.
| Node | Purpose | Key Properties |
|---|---|---|
SendActivity | Send message | kind, id, activity |
Question | Ask user input | kind, id, variable, prompt, entity |
SetVariable | Set/compute value | kind, id, variable, value |
SetTextVariable | Set text with interpolation (YAML-only, no canvas) | kind, id, variable, value |
ConditionGroup | Branching logic | kind, id, conditions |
BeginDialog | Call another topic | kind, id, dialog |
EndDialog | End topic | kind, id |
CancelAllDialogs | Cancel all topics | kind, id |
When the agent has GenerativeActionsEnabled: true:
=: condition: =System.FallbackCount < 3{}: activity: "Error: {System.Error.Message}"variable: init:Topic.MyVarText(), Now(), IsBlank(), !IsBlank()- kind: Question
id: question_k7xPm2
variable: init:Topic.UserName
prompt: What is your name?
entity: StringPrebuiltEntity
alwaysPrompt: true
interruptionPolicy:
allowInterruption: false
npx claudepluginhub microsoft/skills-for-copilot-studio --plugin copilot-studioGenerates Copilot Studio topic YAML files for agent conversations, auto-discovering agents, matching templates, validating schema kinds, and using unique node IDs.
Guides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.