This skill should be used when the user asks to "create a new prompt sample", "add a new prompt sample", "scaffold a new prompt sample", "create a prompt contribution", "add a prompt", or needs to create a new prompt sample with proper folder structure, README, and sample.json metadata. Do NOT use this skill for agent instructions or system prompts.
This skill guides creating new prompt samples for the pnp/copilot-prompts repository with the correct folder structure, README, assets folder, and sample.json metadata file.
Critical: Always ask the user for the following information before scaffolding:
Microsoft 365 Copilot (for M365 prompts used in Teams, Word, Excel, PowerPoint, Outlook, etc.)Microsoft Copilot (for general Microsoft Copilot prompts)GitHub Copilot (for GitHub Copilot prompts)m365 — Microsoft 365 Copilot (Teams, Outlook, general M365)ppt — PowerPointword — Wordgithub — GitHub Copilotwhiteboard — Whiteboardwellness — Wellness / lifestyleIf the user doesn't provide all details upfront, ask for the missing ones before proceeding.
Create the sample in samples/prompts/{folder-name}/:
samples/prompts/{folder-name}/
├── assets/
│ └── sample.json # Metadata for the M365 Solution Gallery
├── README.md # Documentation
Folder naming rules:
{prefix}-{short-description}-prompt (e.g., m365-email-sorting, ppt-sales-report-prompt, github-copilot-fix-code)Create samples/prompts/{folder-name}/README.md using this structure:
# {Prompt Title}

## Summary
{Short summary of what this prompt does and why it's useful.}
## Prompt 💡
{The actual prompt text goes here. If it contains code blocks, wrap them appropriately.}
## Description ℹ️
{A more detailed description of how the prompt works, what it produces, and any tips for getting the best results.}
## Contributors 👨💻
[{Author Name}](https://github.com/{github-username})
## Version history
Version|Date|Comments
-------|----|--------
1.0|{Month DD, YYYY}|Initial release
## Instructions 📝
1. {Step-by-step instructions on how to use the prompt}
2. {Where to open Copilot}
3. {How to enter the prompt}
4. {What to expect}
### Improvise Usage 🚀
{Suggestions for how the user can modify or extend the prompt for their own needs.}
## Prerequisites
* [{Product Name}]({product-url})
## 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{folder-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:
README.md (capital letters)./assets/demo.png as placeholder)https://m365-visitor-stats.azurewebsites.net/SamplesGallery/copilotprompts-{folder-name}{Month DD, YYYY} formatissues?q=label URL with the actual folder nameProduct-specific prerequisites and instructions:
For Microsoft 365 Copilot prompts:
[Copilot for Microsoft 365](https://developer.microsoft.com/microsoft-365/dev-program)For GitHub Copilot prompts:
[GitHub Copilot](https://copilot.github.com/)For Microsoft Copilot prompts:
[Microsoft Copilot](https://copilot.microsoft.com/)Create samples/prompts/{folder-name}/assets/sample.json:
[
{
"name": "copilotprompts-{folder-name}",
"source": "pnp",
"title": "{Prompt Title}",
"shortDescription": "{Short description of what the prompt does}",
"url": "https://github.com/pnp/copilot-prompts/tree/main/samples/prompts/{folder-name}",
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-prompts/tree/main/samples/prompts/{folder-name}",
"longDescription": [
"{A longer description of what the prompt does and why it's useful. Can be the same as shortDescription if appropriate.}"
],
"creationDateTime": "{YYYY-MM-DD}",
"updateDateTime": "{YYYY-MM-DD}",
"products": [
"{Product Name}"
],
"metadata": [],
"thumbnails": [
{
"type": "image",
"order": 100,
"url": "https://github.com/pnp/copilot-prompts/raw/main/samples/prompts/{folder-name}/assets/demo.png",
"alt": "{Description of the screenshot}"
}
],
"authors": [
{
"gitHubAccount": "{github-username}",
"pictureUrl": "https://github.com/{github-username}.png",
"name": "{Author Name}"
}
],
"references": [
{
"name": "{Product Name}",
"description": "{Product Name}",
"url": "{product-url}"
}
]
}
]
Key metadata rules:
name: Always copilotprompts-{folder-name} (matches the tracking image ID)shortDescription and longDescription[0]: Should describe the same thing; longDescription can be more detailedcreationDateTime and updateDateTime: Use YYYY-MM-DD format with the current dateproducts: Must be one of: "Microsoft 365 Copilot", "Microsoft Copilot", "GitHub Copilot"source: Always "pnp"url: Points to the sample folder on GitHub main branchdownloadUrl: Uses the pnp partial download service URLpictureUrl for authors: Use https://github.com/{username}.png as a shortcutthumbnails.url: Points to the screenshot in the assets folder on the main branchProduct-specific references:
For Microsoft 365 Copilot:
{
"name": "Microsoft 365 Copilot",
"description": "Microsoft 365 Copilot",
"url": "https://copilot.microsoft.com/"
}
For GitHub Copilot:
{
"name": "GitHub Copilot",
"description": "GitHub Copilot",
"url": "https://copilot.github.com/"
}
For Microsoft Copilot:
{
"name": "Microsoft Copilot",
"description": "Microsoft Copilot",
"url": "https://copilot.microsoft.com/"
}
After creating the files, remind the user to:
assets/demo.png (or .gif).png fileBefore finalizing, verify:
samples/prompts/ (NOT inside samples/agent-instructions/ or samples/skills/){prefix}-{description}-prompt convention (lowercase, hyphens, no dots)README.md exists with correct capitalizationassets/ folder existsassets/sample.json exists with valid JSONsample.json name field matches pattern copilotprompts-{folder-name}sample.json dates are in YYYY-MM-DD formatsample.json URLs use the correct folder namecopilotprompts-{folder-name}samples/prompts/{folder-name}/, never in samples/agent-instructions/ or samples/skills/README.md + assets/sample.jsonassets/ foldersample.json feeds the M365 Solution Gallery — accuracy matters