add-adaptive-card
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt.
Skill by microsoftOfficial
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-adaptive-card
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.
About
Reviews
Write a reviewNo 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-adaptive-card
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-adaptive-card- Description
- Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt. Use when the user asks to add an adaptive card, rich card, form card, info card, confirmation card, or interactive card to a topic.
- License
- MIT
- Allowed tools
- Bash(node, *schema-lookup.bundle.js, *),, Read,, Write,, Edit,, Glob
- Instructions
- 171 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Agent Skills spec issues
- name: missing
Files (2)
- SKILL.md
- card-templates.md
SKILL.md (first lines)
# Add Adaptive Card
Add an `AdaptiveCardPrompt` node to an existing Copilot Studio topic. Use this for all Adaptive Card scenarios — display-only cards, input forms, and confirmation flows.
## Instructions
1. **Auto-discover the agent directory**:
```
Glob: agents/**/agent.mcs.yml
```
NEVER hardcode an agent name.
2. **Clarify requirements** from the user if not specified:
- Which topic should the card be added to?
- Which card type (form, info, confirmation)?
- What fields, labels, and placeholders are needed?
- Which topic variables should receive the submitted values?
3. **Read the target topic file** to understand its structure and find the correct insertion point.
4. **Verify the schema** if needed:
```bash
# Copilot Studio node schema
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary AdaptiveCardPrompt
# Adaptive Cards element schema (v1.6 — the version supported by Copilot Studio)
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js ac-summary TextBlock
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js ac-summary Input.Text
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js ac-search Action
```
5. **Select and adapt the template** from [card-templates.md](card-templates.md) matching the requested type.
6. **Generate unique IDs** for all new nodes (format: `<nodeType>_<6-8 random alphanumeric>`).
7. **Insert the node(s)** at the correct position in the `actions` array using Edit.
8. **Validate** the updated topic file:
```bash
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js validate <topic-file.yml>
```
9. **Inform the user** that they must push (VS Code Extension) and publish (Copilot Studio UI) before testing with `/chat-with-agent` or `/run-tests`.
## AdaptiveCardPrompt Structure
`AdaptiveCardPrompt` is the correct node kind for all Adaptive Cards in Copilot Studio. The card JSON is embedded as a **multiline YAML literal string** under `card: |`.
```yaml
- kind: AdaptiveCardPrompt
id: adaptiveCardPrompt_m9Kp2x
card: |
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.5",
"body": [...],
"actions": [...]
}
output:
binding:
fieldId: Topic.MyVariable
outputType:
properties:
fieldId:
type: String
```
**Rules**:
- `card: |` — the literal block scalar is mandatory. Do not use `card: >` or inline the JSON without it.
- `$schema` and `version` are required inside the card JSON.
- The `output.binding` maps each card input `id` to a topic variable (`Topic.VarName`, no `=` prefix).
- `outputType.properties` must declare a type for every bound field.
- Use plain `binding:` — no `kind:` property inside it.
- **Every `AdaptiveCardPrompt` must have `output`, `outputType`, and an `Action.Submit` button** — including display-only info cards. Omitting any of these causes VS Code extension errors (`MissingRequiredProperty`, `AdaptiveCardMissingActionSubmit`).
- For info cards with no meaningful inputs, add an `Action.Submit` (e.g. "OK") and bind a dummy acknowledgement variable (`Topic.CardAcknowledged`, type `String`).
## Node Comparison
| Node | Use When |
|------|----------|
| `AdaptiveCardPrompt` | Any Adaptive Card — with or without input fields |
| `SendActivity` | Plain text messages with optional `{}` variable interpolation |
Do NOT use `SendActivity` with an `attachments` array for Adaptive Cards.
## Field Validation
Do NOT use `style: "Email"` or `style: "Tel"` for validation — these only change the mobile keyboard and do not validate on submit. Always use `regex`:
```json
{
"type": "Input.Text",
"id": "email",
"label": "Email address",
"placeholder": "Enter your email address",
"isRequired": true,
"regex": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
"errorMessage": "Enter a valid email address"
}
```
```json
{
"type": "Input.Text",
"id": "mobile",
"label": "Mobile number",
"placeholder": "Enter your mobile number",
"isRequired": true,
"regex": "^[+]?[0-9][\\s\\-\\(\\)0-9]{6,14}$",
"errorMessage": "Enter a valid mobile number"
}
```
| Approach | Validates on submit? | Notes |
|----------|---------------------|-------|
| `regex` | Yes — blocks submit if pattern fails | Use for email, phone, any format |
| `isRequired: true` | Yes — blocks submit if empty | Mandatory fields |
| `style: "Email"` | No | Keyboard hint only — never use for validation |From microsoft/skills-for-copilot-studio, MIT.
More from microsoft/skills-for-copilot-studio
- 0.582score
int-project-context
microsoftOfficial
Shared project context for all Copilot Studio sub-agents.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
add-generative-answers
microsoftOfficial
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot Studio topic.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
add-global-variable
microsoftOfficial
Add a global variable to a Copilot Studio agent.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
int-patterns
microsoftOfficial
Pattern library for Copilot Studio agent design.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
add-node
microsoftOfficial
Add or modify a node in an existing Copilot Studio topic.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
add-other-agents
microsoftOfficial
Add child agents, connected agents, or other multi-agent patterns to a Copilot Studio agent.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
edit-agent
microsoftOfficial
Edit Copilot Studio agent settings, instructions, or configuration.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
lookup-schema
microsoftOfficial
Look up Copilot Studio YAML schema definitions.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
add-knowledge
microsoftOfficial
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
edit-triggers
microsoftOfficial
Modify topic triggers — trigger phrases and model description.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
create-eval-set
microsoftOfficial
Create a test set CSV file for import into Copilot Studio's in-product Evaluate tab.
SkillCFreshness: C★ 482Claude Code +9 - 0.581score
list-kinds
microsoftOfficial
List all available kind discriminator values from the Copilot Studio YAML schema.
SkillCFreshness: C★ 482Claude Code +9
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
- Source
- GitHubgithub-graphql
More from microsoft
- 0.714score
skillopt-sleep
microsoftOfficial
Reference-only OpenClaw adaptation of SkillOpt-Sleep.
SkillAFreshness: A★ 18.7KClaude Code +9 - 0.707score
Playwright MCP
microsoftOfficial
Playwright Tools.
ConnectorAFreshness: ALocal★ 38.6KClaude Code +5 - 0.687score
squad
microsoftOfficial
Squad's command catalog and interactive menu.
SkillAFreshness: A★ 1.4KClaude Code +9 - 0.687score
coordinator-response-mode
microsoftOfficial
Selecting WHO handles work is the Routing table; selecting HOW they handle it (Direct, Lightweight, Standard, Full) is Response Mode.
SkillAFreshness: A★ 1.4KClaude Code +9 - 0.687score
coordinator-source-of-truth
microsoftOfficial
The complete file-by-file source-of-truth hierarchy for Squad: which files are authoritative, which are derived/append-only, who may write each one, who may…
SkillAFreshness: A★ 1.4KClaude Code +9 - 0.687score
squad-commands
microsoftOfficial
Categorized catalog of common Squad operations.
SkillAFreshness: A★ 1.4KClaude Code +9
Cite this page
add-adaptive-card skill. Agent Mart. https://agentmart.dev/skills/microsoft-add-adaptive-card (last updated 2026-10-24)