okhp3-copilot-studio-skill-foundry
OverKill Hill P3 · overkillhill.com · github.com/OKHP3
Create a reusable capability for a Copilot Studio agent. This Foundry treats a
skill as one task-specific component in an agent design, explicitly separate
from agent identity/instructions, knowledge sources, and tools.
Scope
| In scope |
Out of scope |
| A focused reusable task capability usable by one or more Copilot Studio agents |
Whole-agent personality, conversation design, or organizational policy |
| Markdown skill files and optional package contents |
A connector, API, MCP server, action, or knowledge-source implementation |
| Authoring, sharing, testing, and package/deployment planning |
Publishing to a live environment or changing agent configuration without approval |
Host contract
- Target: Copilot Studio agents/workflows powered by the GitHub Copilot
harness.
- Skill shape: name, description, YAML frontmatter, Markdown instructions,
and optionally a ZIP package with supporting files.
- Authoring route: use Build > Skills > Create from blank for an
agent-local draft, upload a Markdown skill file, or upload a ZIP whose root
contains
SKILL.md. The route changes acceptance and revision behavior, not
the component boundary.
- Activation: the orchestration runtime decides relevance using the request
and skill description. Therefore descriptions need concrete trigger language
and one coherent job.
- Component boundary: skills guide task behavior; instructions set general
behavior, knowledge provides reference data, and tools connect external
services. Do not conceal a tool dependency in a skill.
- Read references/copilot-studio-host-contract.md
before defining the capability or package contents.
Foundry workflow
- Name a repeatable outcome that recurs across agents, not a one-off answer.
Capture real task inputs, expected outputs, known corrections, failure
conditions, and the agent surfaces expected to use it.
- Classify every requirement: skill instruction, agent instruction,
knowledge source, tool/action/connector, or human approval. If a
requirement crosses categories, record the dependency and integration point.
- Select the authoring route and test boundary. Record whether the package is
an agent-local Build draft, one uploaded Markdown file, or a rooted ZIP.
Require a Preview-tab test after creation or replacement; do not call upload
validation successful task execution.
- Design the skill's activation description. It should identify the task,
inputs, desired result, and exclusion terms that prevent it from absorbing a
neighboring skill.
- Put the normal procedure and output template in
SKILL.md. Put detailed
taxonomies, examples, or schemas in references/ only when the workflow
explicitly tells the agent when to load them. Bundle scripts only when their
execution contract and environment have been validated.
- Default to advice, analysis, and draft output. If a skill directs an agent
to a tool or knowledge source, disclose the required component, permission
assumption, input/output contract, and user approval point. The skill itself
neither creates the tool nor expands its authority.
- Create normal, activation-collision/missing-dependency, and tool-action or
prompt-injection evaluations. Test through a named Studio agent before
claiming that an orchestrator selects or executes the skill correctly.
Required SKILL.md pattern
## Purpose and activation
## Agent-component contract
## Required input
## Procedure
## Output contract
## Tool and approval boundary
## Safe outcomes
## Validation
## References
The component contract must say what remains in agent instructions, knowledge,
or tools. It must not duplicate an entire agent configuration in the skill.
Authoring and test record
For each Studio skill candidate, record the selected authoring route, agent
identity/environment, package root or file identity, validation result, and a
Preview-tab test prompt. An accepted upload or saved Build draft proves only
that the artifact entered the agent configuration; it does not prove activation
quality, tool availability, or an approved deployment.
Copilot Studio-specific gotchas
- A skill is not a tool. Never write a tool/API call as if Markdown itself can
execute it.
- A skill is not a knowledge source. Cite or request the relevant knowledge
dependency rather than embedding confidential tenant content in a portable
package.
- A skill is not an agent's identity. Keep personality, broad guardrails, and
general conversation behavior out unless they are essential to this one task.
- A ZIP package carries the skill and optional files; it does not prove that an
environment has approved or published it.
- A direct Markdown upload and a ZIP upload have different package acceptance
conditions. Keep
SKILL.md at the ZIP root and do not treat a folder wrapper
as a portable success without a host validation result.
- Usage, build, test, and evaluation may have environment and cost controls.
Record those as deployment assumptions rather than hiding them.
Output contract
Return a Foundry handoff with the reusable-task definition, component map,
activation description, SKILL.md skeleton, dependency and approval ledger,
three-case evaluation plan, authoring/test record, and an agent-level
test/deployment plan. Do not add
the package to an agent, change a tool, or publish an environment without a
separate authorization.
Validation gate
- Folder/frontmatter name match and clear trigger phrases.
- One coherent task distinct from identity, knowledge, and tools.
- Authoring route, package root/file identity, and Preview-tab test are
recorded independently of structural validity.
- Explicit dependency contract for every external action or knowledge source.
- Draft/approval behavior for any effectful tool use.
- Evaluations cover normal activation, a collision or missing dependency, and
hostile/untrusted input or unapproved effect.
- Structural validation does not prove a Copilot Studio orchestrator activated
the skill or that an agent package is live.
References
- references/copilot-studio-host-contract.md — Studio skill, package, and component evidence.
- benchmarks/maturation-2026-09-01.md — v1.1.0 evidence, review, and limits.
- Agent Skills creation best practices — portable baseline used by this host adapter.
About
Built by Jamie Hill · OverKill Hill P3
Published at github.com/OKHP3
Part of the OKHP3/skillz Agent Skill library.
MIT License -- free to use, fork, and adapt. A nod to the source is appreciated.
1---2name: okhp3-copilot-studio-skill-foundry3description: Design, author, evaluate, and package a reusable Microsoft Copilot Studio agent skill. Use when a task-specific capability must be created or shared across Copilot Studio agents powered by the GitHub Copilot harness. Do not use for Cowork packages, SharePoint site skills, GitHub repository skills, agent identity, knowledge-source design, or tool/connector implementation alone.4license: MIT5---67# okhp3-copilot-studio-skill-foundry89**OverKill Hill P3** · [overkillhill.com](https://overkillhill.com) · [github.com/OKHP3](https://github.com/OKHP3)1011Create a reusable capability for a Copilot Studio agent. This Foundry treats a12skill as one task-specific component in an agent design, explicitly separate13from agent identity/instructions, knowledge sources, and tools.1415## Scope1617| In scope | Out of scope |18| --- | --- |19| A focused reusable task capability usable by one or more Copilot Studio agents | Whole-agent personality, conversation design, or organizational policy |20| Markdown skill files and optional package contents | A connector, API, MCP server, action, or knowledge-source implementation |21| Authoring, sharing, testing, and package/deployment planning | Publishing to a live environment or changing agent configuration without approval |2223## Host contract2425- **Target:** Copilot Studio agents/workflows powered by the GitHub Copilot26 harness.27- **Skill shape:** name, description, YAML frontmatter, Markdown instructions,28 and optionally a ZIP package with supporting files.29- **Authoring route:** use Build > Skills > Create from blank for an30 agent-local draft, upload a Markdown skill file, or upload a ZIP whose root31 contains `SKILL.md`. The route changes acceptance and revision behavior, not32 the component boundary.33- **Activation:** the orchestration runtime decides relevance using the request34 and skill description. Therefore descriptions need concrete trigger language35 and one coherent job.36- **Component boundary:** skills guide task behavior; instructions set general37 behavior, knowledge provides reference data, and tools connect external38 services. Do not conceal a tool dependency in a skill.39- Read [references/copilot-studio-host-contract.md](references/copilot-studio-host-contract.md)40 before defining the capability or package contents.4142## Foundry workflow43441. Name a repeatable outcome that recurs across agents, not a one-off answer.45 Capture real task inputs, expected outputs, known corrections, failure46 conditions, and the agent surfaces expected to use it.472. Classify every requirement: **skill instruction**, **agent instruction**,48 **knowledge source**, **tool/action/connector**, or **human approval**. If a49 requirement crosses categories, record the dependency and integration point.503. Select the authoring route and test boundary. Record whether the package is51 an agent-local Build draft, one uploaded Markdown file, or a rooted ZIP.52 Require a Preview-tab test after creation or replacement; do not call upload53 validation successful task execution.544. Design the skill's activation description. It should identify the task,55 inputs, desired result, and exclusion terms that prevent it from absorbing a56 neighboring skill.575. Put the normal procedure and output template in `SKILL.md`. Put detailed58 taxonomies, examples, or schemas in `references/` only when the workflow59 explicitly tells the agent when to load them. Bundle scripts only when their60 execution contract and environment have been validated.616. Default to advice, analysis, and draft output. If a skill directs an agent62 to a tool or knowledge source, disclose the required component, permission63 assumption, input/output contract, and user approval point. The skill itself64 neither creates the tool nor expands its authority.657. Create normal, activation-collision/missing-dependency, and tool-action or66 prompt-injection evaluations. Test through a named Studio agent before67 claiming that an orchestrator selects or executes the skill correctly.6869## Required SKILL.md pattern7071```markdown72## Purpose and activation73## Agent-component contract74## Required input75## Procedure76## Output contract77## Tool and approval boundary78## Safe outcomes79## Validation80## References81```8283The component contract must say what remains in agent instructions, knowledge,84or tools. It must not duplicate an entire agent configuration in the skill.8586## Authoring and test record8788For each Studio skill candidate, record the selected authoring route, agent89identity/environment, package root or file identity, validation result, and a90Preview-tab test prompt. An accepted upload or saved Build draft proves only91that the artifact entered the agent configuration; it does not prove activation92quality, tool availability, or an approved deployment.9394## Copilot Studio-specific gotchas9596- A skill is not a tool. Never write a tool/API call as if Markdown itself can97 execute it.98- A skill is not a knowledge source. Cite or request the relevant knowledge99 dependency rather than embedding confidential tenant content in a portable100 package.101- A skill is not an agent's identity. Keep personality, broad guardrails, and102 general conversation behavior out unless they are essential to this one task.103- A ZIP package carries the skill and optional files; it does not prove that an104 environment has approved or published it.105- A direct Markdown upload and a ZIP upload have different package acceptance106 conditions. Keep `SKILL.md` at the ZIP root and do not treat a folder wrapper107 as a portable success without a host validation result.108- Usage, build, test, and evaluation may have environment and cost controls.109 Record those as deployment assumptions rather than hiding them.110111## Output contract112113Return a Foundry handoff with the reusable-task definition, component map,114activation description, SKILL.md skeleton, dependency and approval ledger,115three-case evaluation plan, authoring/test record, and an agent-level116test/deployment plan. Do not add117the package to an agent, change a tool, or publish an environment without a118separate authorization.119120## Validation gate121122- Folder/frontmatter name match and clear trigger phrases.123- One coherent task distinct from identity, knowledge, and tools.124- Authoring route, package root/file identity, and Preview-tab test are125 recorded independently of structural validity.126- Explicit dependency contract for every external action or knowledge source.127- Draft/approval behavior for any effectful tool use.128- Evaluations cover normal activation, a collision or missing dependency, and129 hostile/untrusted input or unapproved effect.130- Structural validation does not prove a Copilot Studio orchestrator activated131 the skill or that an agent package is live.132133## References134135- [references/copilot-studio-host-contract.md](references/copilot-studio-host-contract.md) — Studio skill, package, and component evidence.136- [benchmarks/maturation-2026-09-01.md](benchmarks/maturation-2026-09-01.md) — v1.1.0 evidence, review, and limits.137- [Agent Skills creation best practices](https://agentskills.io/skill-creation/best-practices) — portable baseline used by this host adapter.138139## About140141Built by [Jamie Hill](https://overkillhill.com) · [OverKill Hill P3](https://overkillhill.com)142Published at [github.com/OKHP3](https://github.com/OKHP3)143Part of the [OKHP3/skillz](https://github.com/OKHP3/skillz) Agent Skill library.144MIT License -- free to use, fork, and adapt. A nod to the source is appreciated.