Create an Agent Instruction / System Prompt Sample
This skill guides creating new agent instruction samples for the pnp/copilot-prompts repository. These samples live inside samples/agent-instructions/ and represent agents whose system prompt / instructions are the contribution. Contributors build an agent in Microsoft Copilot Studio and share the instructions (system prompt) that power it.
Before Starting
Critical: Always ask the user for the following information before scaffolding:
- Agent name — a short, descriptive name for the agent (e.g., "Communication Assistant", "Smart Crop Doctor", "Elevator Pitch Alchemist")
- Agent instructions / system prompt — the full system prompt text that defines the agent's behavior, personality, skills, and operating principles
- Summary — a short description of what the agent does and why it's useful
- Use case category — one or more categories the agent falls into:
- 🎮 Gaming — AI-powered game ideas, NPC interactions, procedural storytelling
- 📚 Storytelling & Creative Writing — Fiction, poetry, and immersive storytelling prompts
- 🤖 AI Assistants — Virtual assistants, chatbots, and productivity helpers
- 🛠️ Productivity & Tools — Code generation, automation, and workflow improvements
- 🎓 Education — Learning aids, tutoring, and interactive teaching tools
- 🏥 Healthcare & Wellbeing — AI for mental health, fitness, and well-being support
- 🌎 Other — If the idea doesn't fit the above
- Author name — the contributor's full name
- Author GitHub username — the contributor's GitHub handle
If the user doesn't provide all details upfront, ask for the missing ones before proceeding.
Sample Directory Structure
Create the sample in samples/agent-instructions/{agent-name}/:
samples/agent-instructions/{agent-name}/
├── assets/
│ ├── demo.png # Required static preview
│ └── sample.json # Metadata for the M365 Solution Gallery
├── README.md # Documentation with agent instructions
Folder naming rules:
- Use lowercase and hyphens only (e.g.,
daily-chore-children, communication-assistant, peace-keeper-agent)
- Do NOT use periods/dots in the folder name
- Keep it concise but descriptive — it should hint at what the agent does
- Do NOT include prefixes like
m365- or github- — agent instruction folders use plain descriptive names
Step 1: Create README.md
Create samples/agent-instructions/{agent-name}/README.md using this structure:
# 🎯 {Agent Name}
## Summary
{Short summary of what this agent does, its purpose, and why it's useful.}
## Instruction
{The full agent instructions / system prompt goes here.
This is the core contribution — the complete system prompt that defines:
- The agent's identity and purpose
- Execution steps or workflow
- Operating principles and guidelines
- Tone and personality
- Example interactions (optional)
- Limitations and constraints (optional)}
## 🏆 Use Case Category
{Mark the applicable categories with [x]:}
- [ ] 🎮 **Gaming** – AI-powered game ideas, NPC interactions, procedural storytelling
- [ ] 📚 **Storytelling & Creative Writing** – Fiction, poetry, and immersive storytelling prompts
- [ ] 🤖 **AI Assistants** – Virtual assistants, chatbots, and productivity helpers
- [ ] 🛠️ **Productivity & Tools** – Code generation, automation, and workflow improvements
- [ ] 🎓 **Education** – Learning aids, tutoring, and interactive teaching tools
- [ ] 🏥 **Healthcare & Wellbeing** – AI for mental health, fitness, and well-being support
- [ ] 🌎 **Other** – If your idea doesn't fit the above, tell us what it's about!
## Contributors 👨💻
[{Author Name}](https://github.com/{github-username})
## Version history
Version|Date|Comments
-------|----|--------
1.0|{Month DD, YYYY}|Initial release
## Instructions 📝
- Make sure you have Microsoft 365 Copilot in your tenant.
- Access Copilot studio agent builder
- On the left-hand rail, select Create an agent - New agent
- Add description to refine agents behavior. Make sure to use short, precise and simple description.
- Paste the prompt in the Instructions field, and alter it according to your needs.
- Try out your agent in the same window.
## Prerequisites
Copilot License
## Help
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.
You can try looking at [issues related to this sample](https://github.com/pnp/copilot-prompts/issues?q=label%3A%22sample%3A%20{agent-name}%22) to see if anybody else is having the same issues.
If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-prompts/issues/new).
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-prompts/issues/new).
## Disclaimer
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**

README rules:
- NEVER rephrase, rewrite, or modify the user's system prompt / agent instructions. Copy the prompt exactly as provided by the user — word for word, character for character. The user's original wording is the contribution; do not "improve", shorten, expand, or restructure it.
- The file must be named
README.md
- Include
 after the title
- The Instruction section is the most important part — it contains the full system prompt in a fenced code block
- The system prompt should be well-structured with clear sections (Purpose, Execution Steps, Operating Principles, Tone, etc.)
- The Instructions 📝 section (how to use) always describes the Copilot Studio agent builder workflow
- The tracking image at the bottom MUST follow the pattern:
https://m365-visitor-stats.azurewebsites.net/copilot-prompts/copilotprompts-agent-{agent-name}
- Include the Help and Disclaimer sections exactly as shown
- Use the current date for the version history in
{Month DD, YYYY} format
- Mark the correct Use Case Category checkboxes based on what the user selected
Step 2: Create Metadata (assets/sample.json)
Create samples/agent-instructions/{agent-name}/assets/sample.json:
[
{
"name": "copilotprompts-agent-{agent-name}",
"source": "pnp",
"title": "{Agent Title}",
"shortDescription": "{Short description of what the agent does}",
"url": "https://github.com/pnp/copilot-prompts/tree/main/samples/agent-instructions/{agent-name}",
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-prompts/tree/main/samples/agent-instructions/{agent-name}",
"longDescription": [
"{A longer description of what the agent does and why it's useful.}"
],
"creationDateTime": "{YYYY-MM-DD}",
"updateDateTime": "{YYYY-MM-DD}",
"products": [
"Copilot"
],
"metadata": [],
"thumbnails": [
{
"type": "image",
"order": 100,
"url": "https://github.com/pnp/copilot-prompts/raw/main/samples/agent-instructions/{agent-name}/assets/demo.png",
"alt": "{Description of the agent screenshot}"
}
],
"authors": [
{
"gitHubAccount": "{github-username}",
"pictureUrl": "https://avatars.githubusercontent.com/{github-username}",
"name": "{Author Name}"
}
],
"references": [
{
"name": "Microsoft Copilot",
"description": "Microsoft Copilot",
"url": "https://copilot.microsoft.com/"
}
]
}
]
Key metadata rules:
name: Always copilotprompts-agent-{agent-name} where {agent-name} is the folder name
shortDescription and longDescription[0]: Should describe the agent's purpose; longDescription can be more detailed
creationDateTime and updateDateTime: Use YYYY-MM-DD format with the current date
products: Always ["Copilot"] for agent instruction samples
source: Always "pnp"
url: Points to samples/agent-instructions/{agent-name} on GitHub main branch
downloadUrl: Uses the pnp partial download service URL pointing to the same path
pictureUrl for authors: Use https://avatars.githubusercontent.com/{username}
thumbnails: Point to the required sample-specific static PNG and provide descriptive alt text
Step 3: Remind About Screenshots
After creating the files, remind the user to:
- Add a screenshot of the agent in action as
assets/demo.png
- Update the thumbnail URL and alt text if a different PNG filename is used
- Keep the screenshot reference in
README.md aligned with that file
- Additional GIF, JPEG, or WebP media is optional, but at least one static PNG is required
Writing Good Agent Instructions
When helping a user craft their system prompt, encourage them to include these sections:
- Purpose / Identity — Who is the agent? What is its core mission?
- Execution Steps — Step-by-step workflow the agent follows
- Operating Principles / Guidelines — Rules and constraints for the agent's behavior
- Tone — How the agent should communicate (warm, professional, playful, etc.)
- Example Interactions (optional) — Sample conversations showing expected input/output
- Limitations (optional) — What the agent cannot or should not do
- Privacy and Safety (optional) — Any data handling or safety considerations
The system prompt should be detailed enough that anyone can paste it into Copilot Studio's Instructions field and get a working agent.
Validation Checklist
Before finalizing, verify:
Key Rules
- NEVER rephrase, rewrite, or modify the user's system prompt / agent instructions. Always copy them verbatim into the README's Instruction section. The user's exact wording is the contribution.
- This skill is for agent instruction / system prompt samples ONLY — not for simple prompt samples
- Samples MUST go in
samples/agent-instructions/{agent-name}/, never directly under samples/
- Every sample requires
README.md, assets/sample.json, and at least one sample-specific static PNG in assets/
- The core contribution is the system prompt / agent instructions in the README's Instruction section
- The
products field in sample.json is always ["Copilot"] (these are Copilot Studio agents)
- Prerequisites are always "Copilot License"
- The Instructions section always describes the Copilot Studio agent builder workflow
- The
sample.json feeds the M365 Solution Gallery — accuracy matters
- Follow existing naming patterns in the
agent-instructions folder for consistency
1---2name: create-system-prompt3description: This skill should be used when the user asks to "create an agent instruction", "add agent instructions", "scaffold an agent sample", "create a system prompt sample", "add a system prompt", "create a new agent", "build an agent", or needs to create a new agent instruction sample with proper folder structure, README, and sample.json metadata inside the agent-instructions folder. Do NOT use this skill for simple prompt samples that are not agent instructions.4---56# Create an Agent Instruction / System Prompt Sample78This skill guides creating new agent instruction samples for the pnp/copilot-prompts repository. These samples live inside `samples/agent-instructions/` and represent agents whose system prompt / instructions are the contribution. Contributors build an agent in Microsoft Copilot Studio and share the instructions (system prompt) that power it.910## Before Starting1112**Critical**: Always ask the user for the following information before scaffolding:13141. **Agent name** — a short, descriptive name for the agent (e.g., "Communication Assistant", "Smart Crop Doctor", "Elevator Pitch Alchemist")152. **Agent instructions / system prompt** — the full system prompt text that defines the agent's behavior, personality, skills, and operating principles163. **Summary** — a short description of what the agent does and why it's useful174. **Use case category** — one or more categories the agent falls into:18 - 🎮 **Gaming** — AI-powered game ideas, NPC interactions, procedural storytelling19 - 📚 **Storytelling & Creative Writing** — Fiction, poetry, and immersive storytelling prompts20 - 🤖 **AI Assistants** — Virtual assistants, chatbots, and productivity helpers21 - 🛠️ **Productivity & Tools** — Code generation, automation, and workflow improvements22 - 🎓 **Education** — Learning aids, tutoring, and interactive teaching tools23 - 🏥 **Healthcare & Wellbeing** — AI for mental health, fitness, and well-being support24 - 🌎 **Other** — If the idea doesn't fit the above255. **Author name** — the contributor's full name266. **Author GitHub username** — the contributor's GitHub handle2728If the user doesn't provide all details upfront, ask for the missing ones before proceeding.2930## Sample Directory Structure3132Create the sample in `samples/agent-instructions/{agent-name}/`:3334```35samples/agent-instructions/{agent-name}/36├── assets/37│ ├── demo.png # Required static preview38│ └── sample.json # Metadata for the M365 Solution Gallery39├── README.md # Documentation with agent instructions40```4142**Folder naming rules:**43- Use lowercase and hyphens only (e.g., `daily-chore-children`, `communication-assistant`, `peace-keeper-agent`)44- Do NOT use periods/dots in the folder name45- Keep it concise but descriptive — it should hint at what the agent does46- Do NOT include prefixes like `m365-` or `github-` — agent instruction folders use plain descriptive names4748## Step 1: Create README.md4950Create `samples/agent-instructions/{agent-name}/README.md` using this structure:5152```markdown53# 🎯 {Agent Name}5455## Summary5657{Short summary of what this agent does, its purpose, and why it's useful.}5859## Instruction6061```62{The full agent instructions / system prompt goes here.6364This is the core contribution — the complete system prompt that defines:65- The agent's identity and purpose66- Execution steps or workflow67- Operating principles and guidelines68- Tone and personality69- Example interactions (optional)70- Limitations and constraints (optional)}71```7273## 🏆 Use Case Category7475{Mark the applicable categories with [x]:}7677- [ ] 🎮 **Gaming** – AI-powered game ideas, NPC interactions, procedural storytelling78- [ ] 📚 **Storytelling & Creative Writing** – Fiction, poetry, and immersive storytelling prompts79- [ ] 🤖 **AI Assistants** – Virtual assistants, chatbots, and productivity helpers80- [ ] 🛠️ **Productivity & Tools** – Code generation, automation, and workflow improvements81- [ ] 🎓 **Education** – Learning aids, tutoring, and interactive teaching tools82- [ ] 🏥 **Healthcare & Wellbeing** – AI for mental health, fitness, and well-being support83- [ ] 🌎 **Other** – If your idea doesn't fit the above, tell us what it's about!8485## Contributors 👨💻8687[{Author Name}](https://github.com/{github-username})8889## Version history9091Version|Date|Comments92-------|----|--------931.0|{Month DD, YYYY}|Initial release9495## Instructions 📝9697- Make sure you have Microsoft 365 Copilot in your tenant.98- Access Copilot studio agent builder99- On the left-hand rail, select Create an agent - New agent100- Add description to refine agents behavior. Make sure to use short, precise and simple description.101- Paste the prompt in the Instructions field, and alter it according to your needs.102- Try out your agent in the same window.103104## Prerequisites105106Copilot License107108## Help109110We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.111112You can try looking at [issues related to this sample](https://github.com/pnp/copilot-prompts/issues?q=label%3A%22sample%3A%20{agent-name}%22) to see if anybody else is having the same issues.113114If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-prompts/issues/new).115116Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-prompts/issues/new).117118## Disclaimer119120**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**121122123```124125**README rules:**126- **NEVER rephrase, rewrite, or modify the user's system prompt / agent instructions.** Copy the prompt exactly as provided by the user — word for word, character for character. The user's original wording is the contribution; do not "improve", shorten, expand, or restructure it.127- The file must be named `README.md`128- Include `` after the title129- The **Instruction** section is the most important part — it contains the full system prompt in a fenced code block130- The system prompt should be well-structured with clear sections (Purpose, Execution Steps, Operating Principles, Tone, etc.)131- The **Instructions 📝** section (how to use) always describes the Copilot Studio agent builder workflow132- The tracking image at the bottom MUST follow the pattern: `https://m365-visitor-stats.azurewebsites.net/copilot-prompts/copilotprompts-agent-{agent-name}`133- Include the Help and Disclaimer sections exactly as shown134- Use the current date for the version history in `{Month DD, YYYY}` format135- Mark the correct Use Case Category checkboxes based on what the user selected136137## Step 2: Create Metadata (assets/sample.json)138139Create `samples/agent-instructions/{agent-name}/assets/sample.json`:140141```json142[143 {144 "name": "copilotprompts-agent-{agent-name}",145 "source": "pnp",146 "title": "{Agent Title}",147 "shortDescription": "{Short description of what the agent does}",148 "url": "https://github.com/pnp/copilot-prompts/tree/main/samples/agent-instructions/{agent-name}",149 "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-prompts/tree/main/samples/agent-instructions/{agent-name}",150 "longDescription": [151 "{A longer description of what the agent does and why it's useful.}"152 ],153 "creationDateTime": "{YYYY-MM-DD}",154 "updateDateTime": "{YYYY-MM-DD}",155 "products": [156 "Copilot"157 ],158 "metadata": [],159 "thumbnails": [160 {161 "type": "image",162 "order": 100,163 "url": "https://github.com/pnp/copilot-prompts/raw/main/samples/agent-instructions/{agent-name}/assets/demo.png",164 "alt": "{Description of the agent screenshot}"165 }166 ],167 "authors": [168 {169 "gitHubAccount": "{github-username}",170 "pictureUrl": "https://avatars.githubusercontent.com/{github-username}",171 "name": "{Author Name}"172 }173 ],174 "references": [175 {176 "name": "Microsoft Copilot",177 "description": "Microsoft Copilot",178 "url": "https://copilot.microsoft.com/"179 }180 ]181 }182]183```184185**Key metadata rules:**186- `name`: Always `copilotprompts-agent-{agent-name}` where `{agent-name}` is the folder name187- `shortDescription` and `longDescription[0]`: Should describe the agent's purpose; `longDescription` can be more detailed188- `creationDateTime` and `updateDateTime`: Use `YYYY-MM-DD` format with the current date189- `products`: Always `["Copilot"]` for agent instruction samples190- `source`: Always `"pnp"`191- `url`: Points to `samples/agent-instructions/{agent-name}` on GitHub main branch192- `downloadUrl`: Uses the pnp partial download service URL pointing to the same path193- `pictureUrl` for authors: Use `https://avatars.githubusercontent.com/{username}`194- `thumbnails`: Point to the required sample-specific static PNG and provide descriptive alt text195196## Step 3: Remind About Screenshots197198After creating the files, remind the user to:1991. Add a screenshot of the agent in action as `assets/demo.png`2002. Update the thumbnail URL and alt text if a different PNG filename is used2013. Keep the screenshot reference in `README.md` aligned with that file2024. Additional GIF, JPEG, or WebP media is optional, but at least one static PNG is required203204## Writing Good Agent Instructions205206When helping a user craft their system prompt, encourage them to include these sections:2072081. **Purpose / Identity** — Who is the agent? What is its core mission?2092. **Execution Steps** — Step-by-step workflow the agent follows2103. **Operating Principles / Guidelines** — Rules and constraints for the agent's behavior2114. **Tone** — How the agent should communicate (warm, professional, playful, etc.)2125. **Example Interactions** (optional) — Sample conversations showing expected input/output2136. **Limitations** (optional) — What the agent cannot or should not do2147. **Privacy and Safety** (optional) — Any data handling or safety considerations215216The system prompt should be detailed enough that anyone can paste it into Copilot Studio's Instructions field and get a working agent.217218## Validation Checklist219220Before finalizing, verify:221- [ ] Folder is inside `samples/agent-instructions/` (NOT directly under `samples/`)222- [ ] Folder name is lowercase with hyphens only, no dots, no app-host prefix223- [ ] `README.md` exists224- [ ] `README.md` contains the full system prompt in a fenced code block under the **Instruction** section225- [ ] At least one Use Case Category is checked226- [ ] `assets/` folder exists227- [ ] `assets/` contains at least one sample-specific static PNG228- [ ] `assets/sample.json` exists with valid JSON229- [ ] `sample.json` `name` field matches pattern `copilotprompts-agent-{agent-name}`230- [ ] `sample.json` `products` is `["Copilot"]`231- [ ] `sample.json` URLs include the full path `samples/agent-instructions/{agent-name}`232- [ ] `sample.json` dates are in `YYYY-MM-DD` format233- [ ] README tracking image URL matches `copilotprompts-agent-{agent-name}`234- [ ] README contains Instructions, Help, and Disclaimer sections235- [ ] Author information is filled in236237## Key Rules238239- **NEVER rephrase, rewrite, or modify the user's system prompt / agent instructions.** Always copy them verbatim into the README's Instruction section. The user's exact wording is the contribution.240- **This skill is for agent instruction / system prompt samples ONLY** — not for simple prompt samples241- Samples MUST go in `samples/agent-instructions/{agent-name}/`, never directly under `samples/`242- Every sample requires `README.md`, `assets/sample.json`, and at least one sample-specific static PNG in `assets/`243- The core contribution is the **system prompt / agent instructions** in the README's Instruction section244- The `products` field in sample.json is always `["Copilot"]` (these are Copilot Studio agents)245- Prerequisites are always "Copilot License"246- The Instructions section always describes the Copilot Studio agent builder workflow247- The `sample.json` feeds the [M365 Solution Gallery](https://adoption.microsoft.com/en-us/sample-solution-gallery/) — accuracy matters248- Follow existing naming patterns in the `agent-instructions` folder for consistency