skills/add-node/SKILL.md
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a question, message, condition, variable, or other node to a topic. Do NOT use this for generative answers or knowledge search — use /add-generative-answers instead.
npx skillsauth add microsoft/skills-for-copilot-studio skills/add-nodeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
development
Pattern library for Copilot Studio agent design. Contains proven and recommended implementation patterns with YAML examples. Used by the Advisor agent to suggest patterns and by the Author agent to reference YAML structure during implementation. USE FOR: design guidance, pattern suggestions, review against best practices, troubleshooting known pitfalls, YAML reference during implementation. DO NOT USE FOR: general YAML schema reference (use int-reference), topic creation mechanics (use new-topic).
testing
Look up Copilot Studio YAML schema definitions. Use when the user asks about schema structure, element properties, or how to use a specific YAML kind.
data-ai
Reference tables for Copilot Studio YAML authoring: triggers, actions, variables, entities, Power Fx functions, templates. Preloaded by author and advisor agents.
development
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the user asks to add a knowledge source, documentation URL, website, or SharePoint site for the agent to search.