Skip to content
Agentmart
Submit a tool

int-patterns

Pattern library for Copilot Studio agent design.

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-int-patterns

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

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).

Use cases: design, agent-building

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/int-patterns

What's inside

Skill name
int-patterns
Description
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).
License
MIT
Instructions
172 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • files: referenced but missing: templates/topics/conversation-init.topic.mcs.yml

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Copilot Studio Pattern Library

**Only read the pattern file relevant to the current task** — do NOT read all files.

## How to use patterns

Patterns are **recommendations, not requirements**. How you present them depends on your role:

**If you are the Advisor agent:**
- Present each pattern as a suggestion — explain the challenge it solves and why it's relevant
- Use status-appropriate language:
  - `proven`: "This is a proven pattern used in production — consider it for…"
  - `recommended`: "A recommended approach that works well — consider it for…"
  - `experimental`: "This is an experimental approach, not yet fully validated — you may want to test thoroughly before adopting"
- Always say "you could consider…" or "a common approach is…", never "you must…"
- Let the user decide — do NOT auto-apply patterns without confirmation

**If you are the Author agent:**
- When implementing a pattern the user or Advisor has already chosen, read the relevant pattern file for the correct YAML structure
- Do NOT suggest patterns yourself — that is the Advisor's role
- Use the YAML examples as reference for the correct kinds, fields, and structure

## Pattern Index

### JIT Glossary → [jit-glossary.md](${CLAUDE_SKILL_DIR}/../../patterns/jit-glossary.md)

Loads customer-specific acronyms into a global variable on first message so the orchestrator can expand them before searching knowledge sources.

**Read this pattern when:**
- The user wants to add a glossary, acronym list, or terminology table
- Knowledge search quality is poor because the agent doesn't understand internal abbreviations
- The user asks about loading CSV/text data into a variable at conversation start

### JIT User Context → [jit-user-context.md](${CLAUDE_SKILL_DIR}/../../patterns/jit-user-context.md)

Loads the current user's M365 profile (country, department) into global variables for personalized answers.

**Read this pattern when:**
- The user wants country-aware, department-aware, or role-aware answers
- The agent needs to call the M365 Users connector
- The user asks about personalizing responses based on who is chatting

### Dynamic Topic Redirect → [dynamic-topic-redirect.md](${CLAUDE_SKILL_DIR}/../../patterns/dynamic-topic-redirect.md)

Uses a Switch expression inside a BeginDialog node to route to different topics based on a variable.

**Read this pattern when:**
- The user needs to route to one of several topics based on a variable
- The user wants to replace nested ConditionGroup nodes with a cleaner approach
- The user asks about dynamic topic redirects or Switch expressions

### Prevent Child Agent Responses → [prevent-child-agent-responses.md](${CLAUDE_SKILL_DIR}/../../patterns/prevent-child-agent-responses.md)

Stops child agents from messaging users directly by instructing them to use output variables.

**Read this pattern when:**
- The user wants a child agent to return data without messaging the user
- The user is confused about the completion setting on a child agent
- The parent agent needs to control all user-facing responses

### Date Context → [date-context.md](${CLAUDE_SKILL_DIR}/../../patterns/date-context.md)

Injects the current date into agent instructions using Power Fx for accurate date-relative responses.

**Read this pattern when:**
- Users ask date-relative questions ("What's next week?", "upcoming events")
- The agent handles schedules, calendars, deadlines, or time-sensitive content
- Date interpretation is causing confusion or hallucinations

### Orchestrator-Generated Variables → [orchestrator-variables.md](${CLAUDE_SKILL_DIR}/../../patterns/orchestrator-variables.md)

Uses AutomaticTaskInput to classify or extract structured data from the user's message at orchestration time — zero extra cost or latency.

**Read this pattern when:**
- The user needs to route knowledge searches by category
- The user wants to extract a classification without asking the user or using an AI Prompt
- Knowledge search quality suffers because all sources are searched indiscriminately

### Prevent Tool Call Leaks → [prevent-tool-call-leaks.md](${CLAUDE_SKILL_DIR}/../../patterns/prevent-tool-call-leaks.md)

Stops the orchestrator from leaking internal reasoning and tool call metadata to the end user.

**Read this pattern when:**
- Users report seeing raw JSON in agent responses
- The agent has connector actions that the orchestrator invokes indirectly
- Responses contain `explanation_of_tool_call` or similar internal metadata

### Channel-Aware Behavior → [channel-aware-behavior.md](${CLAUDE_SKILL_DIR}/../../patterns/channel-aware-behavior.md)

Detects the host channel from `System.Activity.ChannelId` and gates behavior per surface (Teams, M365 Copilot, web chat, Direct Line, voice).

**Read this pattern when:**
- A feature works on one channel but breaks on another (file upload, Adaptive Card variants, hyperlinks)
- The user asks to detect Teams vs. M365 Copilot vs. web vs. voice
- A naive `=Lower(ChannelId) = "msteams"` check is silently failing for `msteams:Copilot` or other compound channel IDs
### RAI Error Handling → [rai-error-handling.md](${CLAUDE_SKILL_DIR}/../../patterns/rai-error-handling.md)

Classifies Azure OpenAI content-filter errors by subcode in the OnError topic and returns category-specific user messages with telemetry. Azure OpenAI models only — does not work with Anthropic or xAI models.

**Read this pattern when:**
- The user needs industry-specific or empathetic error messages for RAI content-filter violations
- The user wants category-specific handling (e.g., crisis resources for self-harm, security messaging for jailbreak attempts)
- The user asks about `OnError`, `ContentFiltered`, Azure OpenAI content filters, or RAI subcodes

### Line Breaks in Messages → [line-breaks-in-messages.md](${CLAUDE_SKILL_DIR}/../../patterns/line-breaks-in-messages.md)

Uses `<br /><br />` inside message and question nodes to render reliable paragraph spacing across channels.

**Read this pattern when:**
- Users report that bot messages feel like walls of text
- Multi-part questions or welcome messages need visual separation
- The user asks about line breaks, `<br />`, or formatting in messages or questions

### Knowledge Hold Message → [knowledge-hold-message.md](${CLAUDE_SKILL_DIR}/../../patterns/knowledge-hold-message.md)

Sends a randomized hold message during knowledge search so users know the agent is working.

**Read this pattern when:**
- The agent has noticeable knowledge-search latency

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)
May 13, 2026 (5 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

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