> Shared project context for all Copilot Studio sub-agents. Provides project structure, schema lookup usage, and skill invocation guidance.
npx skills add https://github.com/microsoft/skills-for-copilot-studio --skill int-project-context
You are working inside a Copilot Studio agent project. All YAML files have the .mcs.yml extension.
<agent-dir>/ # Auto-discover via Glob: **/agent.mcs.yml
├── agent.mcs.yml # Agent metadata (display name, schema version)
├── settings.mcs.yml # Agent settings (schemaName, GenerativeActionsEnabled, instructions)
├── topics/ # Conversation topics (AdaptiveDialog YAML files)
├── actions/ # Connector-based actions (TaskDialog YAML files)
├── knowledge/ # Knowledge sources (KnowledgeSourceConfiguration YAML files)
├── variables/ # Global variables (GlobalVariableComponent YAML files)
└── agents/ # Child agents (AgentDialog YAML files, each in its own subfolder)
When you write new YAML files, be sure to use the schema lookup script to understand the schema, including mandatory fields, definitions, and references. The script is located at ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js, and you can use it in the terminal as follows:
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js search trigger # Search by keyword
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js lookup SendActivity # Look up a definition
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js resolve AdaptiveDialog # Resolve with $refs
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js kinds # List all valid kind values
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary Question # Compact overview
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js validate <file.yml> # Validate a YAML file
If you already know the specific definition you want to look up, use lookup. If you want to explore the schema around a certain topic, use search or summary.
Always check the schema before writing YAML to ensure you include all required fields and use valid values.
NEVER load the full schema file (reference/bot.schema.yaml-authoring.json) — it's too long. Always use the script above.
The connector lookup script is at ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js. Use it for any questions about connectors, actions, their inputs, and outputs:
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js list # List all connectors with operation counts
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js operations <connector> # List operations for a connector
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js operation <connector> <operationId> # Full details of one operation (inputs/outputs)
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js search <keyword> # Search operations across all connectors
<connector> matches by API name (shared_office365) or partial display name (outlook).
When to use this: When you need to understand available connectors, what inputs/outputs an action has, or what operations are available. The action YAML files in the agent only show *configured* inputs — connector-lookup shows the *full* connector definition with all available inputs and outputs.
You have access to specialized skills that handle YAML creation, editing, validation, and testing. ALWAYS invoke the matching skill instead of doing it manually.
Skills contain correct templates, schema validation, and patterns. Doing it manually risks hallucinated kind: values, missing required fields, and broken YAML.
Example skills include /copilot-studio:new-topic for creating new topics, /copilot-studio:add-action for adding connector actions and tools, and /copilot-studio:validate for validating YAML files.
If no skill matches, only then work manually — but always validate with /copilot-studio:validate afterward.
Glob: **/agent.mcs.yml.sendMessage_g5Ls09)._REPLACE: Always replace _REPLACE placeholder IDs with unique random IDs.=. String interpolation uses {}. Only use supported functions (check int-reference skill).GenerativeActionsEnabled: true, use topic inputs/outputs instead of hardcoded questions/messages.Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take microsoft/int-project-context from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.