Help us improve
Share bugs, ideas, or general feedback.
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.
npx claudepluginhub microsoft/skills-for-copilot-studio --plugin copilot-studioHow 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.
Generates Copilot Studio topic YAML files for agent conversations, auto-discovering agents, matching templates, validating schema kinds, and using unique node IDs.
Generates markdown agent files with YAML frontmatter for Claude Code, configuring system prompts, tools, and isolation for autonomous task delegation in plugins.
Creates, modifies, and orchestrates Claude Code tools like skills, agents, and scripts. Triages requests via decision tree to select optimal type by token cost and context needs.
Share bugs, ideas, or general feedback.
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