Skip to content
Agentmart
Submit a tool

add-node

Add or modify a node in an existing Copilot Studio topic.

Skill by microsoftOfficial

IndexedMIT★ 482
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/microsoft-add-node

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/add-node

Tools it pre-approves 7

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash(node
  • *schema-lookup.bundle.js
  • *),
  • Read,
  • Write,
  • Edit,
  • Glob

What's inside

Skill name
add-node
Description
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.
License
MIT
Allowed tools
Bash(node, *schema-lookup.bundle.js, *),, Read,, Write,, Edit,, Glob
Instructions
84 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Agent Skills spec issues

  • name: missing

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Add Node to Topic

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.

## Instructions

1. **Auto-discover the agent directory**:
   ```
   Glob: **/agent.mcs.yml
   ```
   NEVER hardcode an agent name.

2. **Parse the arguments** to identify:
   - The node type (SendActivity, Question, SetVariable, ConditionGroup, etc.)
   - The target topic file
   - If modifying an existing node, which node to modify

3. **Look up the node schema**:
   ```bash
   node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve <NodeType>
   ```

4. **Read the existing topic file** to understand its current structure.

5. **Generate or modify the node** with:
   - A unique ID (format: `<nodeType>_<6-8 random alphanumeric>`)
   - All required properties from the schema
   - Appropriate default values

6. **Determine the correct insertion point** in the actions array and present the plan to the user before writing.

## Common Node Types

| 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` |

## Generative Orchestration Guidelines

When the agent has `GenerativeActionsEnabled: true`:

- Prefer **AutomaticTaskInput** over Question nodes for collecting user info (the orchestrator handles prompting automatically).
- Still use Question nodes when: conditional asks (ask X only if Y), or end-of-flow confirmations.
- Prefer **topic outputs** over SendActivity for returning results.
- Do NOT use SendActivity to show final outputs unless it's a precise mid-flow message.

## Power Fx Quick Reference

- Expressions start with `=`: `condition: =System.FallbackCount < 3`
- String interpolation uses `{}`: `activity: "Error: {System.Error.Message}"`
- Variable init on first assignment: `variable: init:Topic.MyVar`
- Common: `Text()`, `Now()`, `IsBlank()`, `!IsBlank()`

## Example: Adding a Question Node

```yaml
- kind: Question
  id: question_k7xPm2
  variable: init:Topic.UserName
  prompt: What is your name?
  entity: StringPrebuiltEntity
  alwaysPrompt: true
  interruptionPolicy:
    allowInterruption: false
```

## Important Notes

- **Unique IDs**: Use random 6-8 alphanumeric characters. Duplicate IDs cause Copilot Studio errors.
- Verify the node type exists in the schema before generating.
- For ConditionGroup, include at least one condition item with its own unique ID.

From microsoft/skills-for-copilot-studio, MIT.

More from microsoft/skills-for-copilot-studio

Signals

Stars
482
Forks
103
Open issues
29
Last commit (this folder)
Mar 19, 2026 (7 months ago)
Last release
May 13, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from microsoft

Cite this page

add-node skill. Agent Mart. https://agentmart.dev/skills/microsoft-add-node (last updated 2026-10-24)