mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-26 11:05:12 +00:00
Merge branch 'main' into CAST_Imaging_Structural_Agents
This commit is contained in:
1946
.all-contributorsrc
1946
.all-contributorsrc
File diff suppressed because it is too large
Load Diff
33
.github/workflows/contributors.yml
vendored
33
.github/workflows/contributors.yml
vendored
@@ -8,32 +8,49 @@ on:
|
||||
jobs:
|
||||
contributors:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Extract Node version from package.json
|
||||
id: node-version
|
||||
run: |
|
||||
NODE_VERSION=$(jq -r '.engines.node // "22.x"' package.json)
|
||||
echo "version=${NODE_VERSION}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: "20"
|
||||
node-version: ${{ steps.node-version.outputs.version }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
run: npm ci
|
||||
|
||||
- name: Update contributors
|
||||
- name: Check contributors
|
||||
id: contributors_check
|
||||
run: npm run contributors:check
|
||||
env:
|
||||
PRIVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Generate contributors report
|
||||
if: steps.contributors_check.outcome == 'failure'
|
||||
run: |
|
||||
mkdir -p reports
|
||||
npm run contributors:report
|
||||
test -f reports/contributor-report.md && cat reports/contributor-report.md >> "$GITHUB_STEP_SUMMARY"
|
||||
env:
|
||||
PRIVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Regenerate README
|
||||
run: |
|
||||
npm install
|
||||
npm start
|
||||
run: npm start
|
||||
|
||||
- name: Check for changes
|
||||
id: verify-changed-files
|
||||
|
||||
1
.github/workflows/validate-readme.yml
vendored
1
.github/workflows/validate-readme.yml
vendored
@@ -11,6 +11,7 @@ on:
|
||||
- "*.js"
|
||||
- "README.md"
|
||||
- "docs/**"
|
||||
- "skills/**"
|
||||
|
||||
jobs:
|
||||
validate-readme:
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
node_modules
|
||||
*.orig
|
||||
Copilot-Processing.md
|
||||
reports/
|
||||
|
||||
# macOS system files
|
||||
.DS_Store
|
||||
|
||||
@@ -200,7 +200,8 @@ For full example of usage checkout edge-ai tasks collection:
|
||||
- A brief description of what your instruction/prompt does
|
||||
- Any relevant context or usage notes
|
||||
|
||||
**Note**: Once your contribution is merged, you'll automatically be added to our [Contributors](./README.md#contributors-) section! We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project.
|
||||
> [!NOTE]
|
||||
> We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project. Jump to [Contributors Recognition](#contributor-recognition) to learn more!
|
||||
|
||||
## What We Accept
|
||||
|
||||
@@ -234,21 +235,34 @@ To maintain a safe, responsible, and constructive community, we will **not accep
|
||||
- **Write clearly**: Use simple, direct language
|
||||
- **Promote best practices**: Encourage secure, maintainable, and ethical development practices
|
||||
|
||||
## Contributors Recognition
|
||||
## Contributor Recognition
|
||||
|
||||
This project uses [all-contributors](https://github.com/all-contributors/all-contributors) to recognize contributors. When you make a contribution, you'll automatically be recognized in our contributors list!
|
||||
We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize **all types of contributions** to this project.
|
||||
|
||||
We welcome contributions of all types, including:
|
||||
To add yourself, leave a comment on a relevant issue or pull request using your GitHub username and the appropriate contribution type(s):
|
||||
|
||||
- 📝 Documentation improvements
|
||||
- 💻 Code contributions
|
||||
- 🐛 Bug reports and fixes
|
||||
- 🎨 Design improvements
|
||||
- 💡 Ideas and suggestions
|
||||
- 🤔 Answering questions
|
||||
- 📢 Promoting the project
|
||||
```markdown
|
||||
@all-contributors add @username for contributionType1, contributionType2
|
||||
```
|
||||
|
||||
The contributors list is updated automatically every Sunday at **3:00 AM UTC**. When the next run completes, your name will appear in the [README Contributors](./README.md#contributors-) section.
|
||||
|
||||
### Contribution Types
|
||||
|
||||
We welcome many kinds of contributions, including the custom categories below:
|
||||
|
||||
| Category | Description | Emoji |
|
||||
| --- | --- | :---: |
|
||||
| **Instructions** | Custom instruction sets that guide GitHub Copilot behavior | 🧭 |
|
||||
| **Prompts** | Reusable or one-off prompts for GitHub Copilot | ⌨️ |
|
||||
| **Agents (Chat Modes)** | Defined GitHub Copilot roles or personalities | 🎭 |
|
||||
| **Skills** | Specialized knowledge of a task for GitHub Copilot | 🧰 |
|
||||
| **Collections** | Curated bundles of related prompts, agents, or instructions | 🎁 |
|
||||
|
||||
In addition, all standard contribution types supported by [All Contributors](https://allcontributors.org/emoji-key/) are recognized.
|
||||
|
||||
> Every contribution matters. Thanks for helping improve this resource for the GitHub Copilot community.
|
||||
|
||||
Your contributions help make this resource better for the entire GitHub Copilot community!
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
|
||||
325
README.md
325
README.md
@@ -1,9 +1,6 @@
|
||||
# 🤖 Awesome GitHub Copilot Customizations
|
||||
[](https://aka.ms/awesome-github-copilot) [](#contributors-)
|
||||
|
||||
[](https://aka.ms/awesome-github-copilot)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[](#contributors-)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
|
||||
A community created collection of custom agents, prompts, and instructions to supercharge your GitHub Copilot experience across different domains, languages, and use cases.
|
||||
|
||||
@@ -128,7 +125,7 @@ The customizations in this repository are sourced from and created by third-part
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
Thanks goes to these wonderful people ([emoji key](./CONTRIBUTING.md#contributors-recognition)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
@@ -136,125 +133,247 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.aaron-powell.com/"><img src="https://avatars.githubusercontent.com/u/434140?v=4?s=100" width="100px;" alt="Aaron Powell"/><br /><sub><b>Aaron Powell</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=aaronpowell" title="Code">💻</a> <a href="#maintenance-aaronpowell" title="Maintenance">🚧</a> <a href="#projectManagement-aaronpowell" title="Project Management">📆</a> <a href="#promotion-aaronpowell" title="Promotion">📣</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mubaidr.js.org/"><img src="https://avatars.githubusercontent.com/u/2222702?v=4?s=100" width="100px;" alt="Muhammad Ubaid Raza"/><br /><sub><b>Muhammad Ubaid Raza</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mubaidr" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://digitarald.de/"><img src="https://avatars.githubusercontent.com/u/8599?v=4?s=100" width="100px;" alt="Harald Kirschner"/><br /><sub><b>Harald Kirschner</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=digitarald" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mbianchidev"><img src="https://avatars.githubusercontent.com/u/37507190?v=4?s=100" width="100px;" alt="Matteo Bianchi"/><br /><sub><b>Matteo Bianchi</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mbianchidev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AungMyoKyaw"><img src="https://avatars.githubusercontent.com/u/9404824?v=4?s=100" width="100px;" alt="Aung Myo Kyaw"/><br /><sub><b>Aung Myo Kyaw</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=AungMyoKyaw" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://danielscottraynsford.com/"><img src="https://avatars.githubusercontent.com/u/7589164?v=4?s=100" width="100px;" alt="Daniel Scott-Raynsford"/><br /><sub><b>Daniel Scott-Raynsford</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=PlagueHO" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/burkeholland"><img src="https://avatars.githubusercontent.com/u/686963?v=4?s=100" width="100px;" alt="Burke Holland"/><br /><sub><b>Burke Holland</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=burkeholland" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.aaron-powell.com/"><img src="https://avatars.githubusercontent.com/u/434140?v=4?s=100" width="100px;" alt="Aaron Powell"/><br /><sub><b>Aaron Powell</b></sub></a><br /><a href="#agents-aaronpowell" title="Specialized agents for GitHub Copilot">🎭</a> <a href="https://github.com/github/awesome-copilot/commits?author=aaronpowell" title="Code">💻</a> <a href="#collections-aaronpowell" title="Curated collections of related content">🎁</a> <a href="https://github.com/github/awesome-copilot/commits?author=aaronpowell" title="Documentation">📖</a> <a href="#infra-aaronpowell" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#instructions-aaronpowell" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#maintenance-aaronpowell" title="Maintenance">🚧</a> <a href="#prompts-aaronpowell" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://codemilltech.com/"><img src="https://avatars.githubusercontent.com/u/2053639?v=4?s=100" width="100px;" alt="Matt Soucoup"/><br /><sub><b>Matt Soucoup</b></sub></a><br /><a href="#infra-codemillmatt" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.buymeacoffee.com/troystaylor"><img src="https://avatars.githubusercontent.com/u/44444967?v=4?s=100" width="100px;" alt="Troy Simeon Taylor"/><br /><sub><b>Troy Simeon Taylor</b></sub></a><br /><a href="#agents-troystaylor" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-troystaylor" title="Curated collections of related content">🎁</a> <a href="#instructions-troystaylor" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-troystaylor" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/abbas133"><img src="https://avatars.githubusercontent.com/u/7757139?v=4?s=100" width="100px;" alt="Abbas"/><br /><sub><b>Abbas</b></sub></a><br /><a href="#agents-abbas133" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-abbas133" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://calva.io/"><img src="https://avatars.githubusercontent.com/u/30010?v=4?s=100" width="100px;" alt="Peter Strömberg"/><br /><sub><b>Peter Strömberg</b></sub></a><br /><a href="#agents-PEZ" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-PEZ" title="Curated collections of related content">🎁</a> <a href="#instructions-PEZ" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-PEZ" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://danielscottraynsford.com/"><img src="https://avatars.githubusercontent.com/u/7589164?v=4?s=100" width="100px;" alt="Daniel Scott-Raynsford"/><br /><sub><b>Daniel Scott-Raynsford</b></sub></a><br /><a href="#agents-PlagueHO" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-PlagueHO" title="Curated collections of related content">🎁</a> <a href="#instructions-PlagueHO" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-PlagueHO" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jhauga"><img src="https://avatars.githubusercontent.com/u/10998676?v=4?s=100" width="100px;" alt="John Haugabook"/><br /><sub><b>John Haugabook</b></sub></a><br /><a href="#instructions-jhauga" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-jhauga" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://calva.io/"><img src="https://avatars.githubusercontent.com/u/30010?v=4?s=100" width="100px;" alt="Peter Strömberg"/><br /><sub><b>Peter Strömberg</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=PEZ" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.devprodlogs.com/"><img src="https://avatars.githubusercontent.com/u/51440732?v=4?s=100" width="100px;" alt="Daniel Meppiel"/><br /><sub><b>Daniel Meppiel</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=danielmeppiel" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://montemagno.com/"><img src="https://avatars.githubusercontent.com/u/1676321?v=4?s=100" width="100px;" alt="James Montemagno"/><br /><sub><b>James Montemagno</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=jamesmontemagno" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VamshiVerma"><img src="https://avatars.githubusercontent.com/u/21999324?v=4?s=100" width="100px;" alt="Vamshi Verma"/><br /><sub><b>Vamshi Verma</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=VamshiVerma" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sinedied"><img src="https://avatars.githubusercontent.com/u/593151?v=4?s=100" width="100px;" alt="Yohan Lasorsa"/><br /><sub><b>Yohan Lasorsa</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=sinedied" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OrenMe"><img src="https://avatars.githubusercontent.com/u/5461862?v=4?s=100" width="100px;" alt="Oren Me"/><br /><sub><b>Oren Me</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=OrenMe" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mjrousos"><img src="https://avatars.githubusercontent.com/u/10077254?v=4?s=100" width="100px;" alt="Mike Rousos"/><br /><sub><b>Mike Rousos</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mjrousos" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://witter.cz/@pavel"><img src="https://avatars.githubusercontent.com/u/7853836?v=4?s=100" width="100px;" alt="Pavel Simsa"/><br /><sub><b>Pavel Simsa</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=psimsa" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://digitarald.de/"><img src="https://avatars.githubusercontent.com/u/8599?v=4?s=100" width="100px;" alt="Harald Kirschner"/><br /><sub><b>Harald Kirschner</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=digitarald" title="Code">💻</a> <a href="https://github.com/github/awesome-copilot/commits?author=digitarald" title="Documentation">📖</a> <a href="#maintenance-digitarald" title="Maintenance">🚧</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://mubaidr.js.org/"><img src="https://avatars.githubusercontent.com/u/2222702?v=4?s=100" width="100px;" alt="Muhammad Ubaid Raza"/><br /><sub><b>Muhammad Ubaid Raza</b></sub></a><br /><a href="#agents-mubaidr" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-mubaidr" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tmeschter"><img src="https://avatars.githubusercontent.com/u/10506730?v=4?s=100" width="100px;" alt="Tom Meschter"/><br /><sub><b>Tom Meschter</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=tmeschter" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.aungmyokyaw.com/"><img src="https://avatars.githubusercontent.com/u/9404824?v=4?s=100" width="100px;" alt="Aung Myo Kyaw"/><br /><sub><b>Aung Myo Kyaw</b></sub></a><br /><a href="#agents-AungMyoKyaw" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-AungMyoKyaw" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/JasonYeMSFT"><img src="https://avatars.githubusercontent.com/u/39359541?v=4?s=100" width="100px;" alt="JasonYeMSFT"/><br /><sub><b>JasonYeMSFT</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=JasonYeMSFT" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/jrc356/"><img src="https://avatars.githubusercontent.com/u/37387479?v=4?s=100" width="100px;" alt="Jon Corbin"/><br /><sub><b>Jon Corbin</b></sub></a><br /><a href="#agents-Jrc356" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-Jrc356" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/guiopen"><img src="https://avatars.githubusercontent.com/u/94094527?v=4?s=100" width="100px;" alt="Guilherme do Amaral Alves "/><br /><sub><b>Guilherme do Amaral Alves </b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=guiopen" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.buymeacoffee.com/troystaylor"><img src="https://avatars.githubusercontent.com/u/44444967?v=4?s=100" width="100px;" alt="Troy Simeon Taylor"/><br /><sub><b>Troy Simeon Taylor</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=troystaylor" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/ambilykk/"><img src="https://avatars.githubusercontent.com/u/10282550?v=4?s=100" width="100px;" alt="Ambily"/><br /><sub><b>Ambily</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=ambilykk" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://tgrall.github.io/"><img src="https://avatars.githubusercontent.com/u/541250?v=4?s=100" width="100px;" alt="Tugdual Grall"/><br /><sub><b>Tugdual Grall</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=tgrall" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TianqiZhang"><img src="https://avatars.githubusercontent.com/u/5326582?v=4?s=100" width="100px;" alt="Tianqi Zhang"/><br /><sub><b>Tianqi Zhang</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=TianqiZhang" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/shubham070"><img src="https://avatars.githubusercontent.com/u/5480589?v=4?s=100" width="100px;" alt="Shubham Gaikwad"/><br /><sub><b>Shubham Gaikwad</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=shubham070" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sdolgin"><img src="https://avatars.githubusercontent.com/u/576449?v=4?s=100" width="100px;" alt="Saul Dolgin"/><br /><sub><b>Saul Dolgin</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=sdolgin" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/troytaylor-msft"><img src="https://avatars.githubusercontent.com/u/248058374?v=4?s=100" width="100px;" alt="troytaylor-msft"/><br /><sub><b>troytaylor-msft</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=troytaylor-msft" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://delatorre.dev/"><img src="https://avatars.githubusercontent.com/u/38289677?v=4?s=100" width="100px;" alt="Emerson Delatorre"/><br /><sub><b>Emerson Delatorre</b></sub></a><br /><a href="#instructions-fazedordecodigo" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/burkeholland"><img src="https://avatars.githubusercontent.com/u/686963?v=4?s=100" width="100px;" alt="Burke Holland"/><br /><sub><b>Burke Holland</b></sub></a><br /><a href="#agents-burkeholland" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#infra-burkeholland" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#instructions-burkeholland" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-burkeholland" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://yaooqinn.github.io/"><img src="https://avatars.githubusercontent.com/u/8326978?v=4?s=100" width="100px;" alt="Kent Yao"/><br /><sub><b>Kent Yao</b></sub></a><br /><a href="#instructions-yaooqinn" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-yaooqinn" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.devprodlogs.com/"><img src="https://avatars.githubusercontent.com/u/51440732?v=4?s=100" width="100px;" alt="Daniel Meppiel"/><br /><sub><b>Daniel Meppiel</b></sub></a><br /><a href="#prompts-danielmeppiel" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yeelam-gordon"><img src="https://avatars.githubusercontent.com/u/73506701?v=4?s=100" width="100px;" alt="Gordon Lam"/><br /><sub><b>Gordon Lam</b></sub></a><br /><a href="#instructions-yeelam-gordon" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.madskristensen.net/"><img src="https://avatars.githubusercontent.com/u/1258877?v=4?s=100" width="100px;" alt="Mads Kristensen"/><br /><sub><b>Mads Kristensen</b></sub></a><br /><a href="#instructions-madskristensen" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nullchimp"><img src="https://avatars.githubusercontent.com/u/58362593?v=4?s=100" width="100px;" alt="NULLchimp"/><br /><sub><b>NULLchimp</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=nullchimp" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MattVevang"><img src="https://avatars.githubusercontent.com/u/20714898?v=4?s=100" width="100px;" alt="Matt Vevang"/><br /><sub><b>Matt Vevang</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=MattVevang" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://devkimchi.com/"><img src="https://avatars.githubusercontent.com/u/1538528?v=4?s=100" width="100px;" alt="Justin Yoo"/><br /><sub><b>Justin Yoo</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=justinyoo" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://hachyderm.io/@0gis0"><img src="https://avatars.githubusercontent.com/u/175379?v=4?s=100" width="100px;" alt="Gisela Torres"/><br /><sub><b>Gisela Torres</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=0GiS0" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://debbie.codes/"><img src="https://avatars.githubusercontent.com/u/13063165?v=4?s=100" width="100px;" alt="Debbie O'Brien"/><br /><sub><b>Debbie O'Brien</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=debs-obrien" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/agreaves-ms"><img src="https://avatars.githubusercontent.com/u/111466195?v=4?s=100" width="100px;" alt="Allen Greaves"/><br /><sub><b>Allen Greaves</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=agreaves-ms" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AmeliaRose802"><img src="https://avatars.githubusercontent.com/u/26167931?v=4?s=100" width="100px;" alt="Amelia Payne"/><br /><sub><b>Amelia Payne</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=AmeliaRose802" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://ks6088ts.github.io/"><img src="https://avatars.githubusercontent.com/u/1254960?v=4?s=100" width="100px;" alt="Shinji Takenaka"/><br /><sub><b>Shinji Takenaka</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=ks6088ts" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/spectatora"><img src="https://avatars.githubusercontent.com/u/1385755?v=4?s=100" width="100px;" alt="spectatora"/><br /><sub><b>spectatora</b></sub></a><br /><a href="#agents-spectatora" title="Specialized agents for GitHub Copilot">🎭</a> <a href="https://github.com/github/awesome-copilot/commits?author=spectatora" title="Code">💻</a> <a href="#maintenance-spectatora" title="Maintenance">🚧</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sinedied"><img src="https://avatars.githubusercontent.com/u/593151?v=4?s=100" width="100px;" alt="Yohan Lasorsa"/><br /><sub><b>Yohan Lasorsa</b></sub></a><br /><a href="#instructions-sinedied" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-sinedied" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VamshiVerma"><img src="https://avatars.githubusercontent.com/u/21999324?v=4?s=100" width="100px;" alt="Vamshi Verma"/><br /><sub><b>Vamshi Verma</b></sub></a><br /><a href="#instructions-VamshiVerma" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-VamshiVerma" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://montemagno.com/"><img src="https://avatars.githubusercontent.com/u/1676321?v=4?s=100" width="100px;" alt="James Montemagno"/><br /><sub><b>James Montemagno</b></sub></a><br /><a href="#agents-jamesmontemagno" title="Specialized agents for GitHub Copilot">🎭</a> <a href="https://github.com/github/awesome-copilot/commits?author=jamesmontemagno" title="Documentation">📖</a> <a href="#instructions-jamesmontemagno" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-jamesmontemagno" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/alefragnani"><img src="https://avatars.githubusercontent.com/u/3781424?v=4?s=100" width="100px;" alt="Alessandro Fragnani"/><br /><sub><b>Alessandro Fragnani</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=alefragnani" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/ambilykk/"><img src="https://avatars.githubusercontent.com/u/10282550?v=4?s=100" width="100px;" alt="Ambily"/><br /><sub><b>Ambily</b></sub></a><br /><a href="#agents-ambilykk" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-ambilykk" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SebastienDegodez"><img src="https://avatars.githubusercontent.com/u/2349146?v=4?s=100" width="100px;" alt="Sebastien DEGODEZ"/><br /><sub><b>Sebastien DEGODEZ</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=SebastienDegodez" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://graef.io/"><img src="https://avatars.githubusercontent.com/u/19261257?v=4?s=100" width="100px;" alt="Sebastian Gräf"/><br /><sub><b>Sebastian Gräf</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=segraef" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://9ssi7.dev/"><img src="https://avatars.githubusercontent.com/u/76786120?v=4?s=100" width="100px;" alt="Salih İbrahimbaş"/><br /><sub><b>Salih İbrahimbaş</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=9ssi7" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/inquinity"><img src="https://avatars.githubusercontent.com/u/406234?v=4?s=100" width="100px;" alt="Robert Altman"/><br /><sub><b>Robert Altman</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=inquinity" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pertrai1"><img src="https://avatars.githubusercontent.com/u/442374?v=4?s=100" width="100px;" alt="Rob Simpson"/><br /><sub><b>Rob Simpson</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=pertrai1" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://ricksm.it/"><img src="https://avatars.githubusercontent.com/u/7207783?v=4?s=100" width="100px;" alt="Rick Smit"/><br /><sub><b>Rick Smit</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=ricksmit3000" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://dotneteers.net/"><img src="https://avatars.githubusercontent.com/u/28162552?v=4?s=100" width="100px;" alt="Peter Smulovics"/><br /><sub><b>Peter Smulovics</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=psmulovics" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/krushideep"><img src="https://avatars.githubusercontent.com/u/174652083?v=4?s=100" width="100px;" alt="krushideep"/><br /><sub><b>krushideep</b></sub></a><br /><a href="#prompts-krushideep" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mihsoft"><img src="https://avatars.githubusercontent.com/u/53946345?v=4?s=100" width="100px;" alt="devopsfan"/><br /><sub><b>devopsfan</b></sub></a><br /><a href="#agents-mihsoft" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://tgrall.github.io/"><img src="https://avatars.githubusercontent.com/u/541250?v=4?s=100" width="100px;" alt="Tugdual Grall"/><br /><sub><b>Tugdual Grall</b></sub></a><br /><a href="#instructions-tgrall" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-tgrall" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.promptboost.dev/"><img src="https://avatars.githubusercontent.com/u/5461862?v=4?s=100" width="100px;" alt="Oren Me"/><br /><sub><b>Oren Me</b></sub></a><br /><a href="#agents-OrenMe" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-OrenMe" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mjrousos"><img src="https://avatars.githubusercontent.com/u/10077254?v=4?s=100" width="100px;" alt="Mike Rousos"/><br /><sub><b>Mike Rousos</b></sub></a><br /><a href="#instructions-mjrousos" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-mjrousos" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://devkimchi.com/"><img src="https://avatars.githubusercontent.com/u/1538528?v=4?s=100" width="100px;" alt="Justin Yoo"/><br /><sub><b>Justin Yoo</b></sub></a><br /><a href="#instructions-justinyoo" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/guiopen"><img src="https://avatars.githubusercontent.com/u/94094527?v=4?s=100" width="100px;" alt="Guilherme do Amaral Alves "/><br /><sub><b>Guilherme do Amaral Alves </b></sub></a><br /><a href="#instructions-guiopen" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pelikhan"><img src="https://avatars.githubusercontent.com/u/4175913?v=4?s=100" width="100px;" alt="Peli de Halleux"/><br /><sub><b>Peli de Halleux</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=pelikhan" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.paulomorgado.net/"><img src="https://avatars.githubusercontent.com/u/470455?v=4?s=100" width="100px;" alt="Paulo Morgado"/><br /><sub><b>Paulo Morgado</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=paulomorgado" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://nickyt.co/"><img src="https://avatars.githubusercontent.com/u/833231?v=4?s=100" width="100px;" alt="Nick Taylor"/><br /><sub><b>Nick Taylor</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=nickytonline" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikeparker104"><img src="https://avatars.githubusercontent.com/u/12763221?v=4?s=100" width="100px;" alt="Mike Parker"/><br /><sub><b>Mike Parker</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mikeparker104" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikekistler"><img src="https://avatars.githubusercontent.com/u/85643503?v=4?s=100" width="100px;" alt="Mike Kistler"/><br /><sub><b>Mike Kistler</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mikekistler" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://a11ysupport.io/"><img src="https://avatars.githubusercontent.com/u/498678?v=4?s=100" width="100px;" alt="Michael Fairchild"/><br /><sub><b>Michael Fairchild</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=mfairchild365" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/michael-volz/"><img src="https://avatars.githubusercontent.com/u/129928?v=4?s=100" width="100px;" alt="Michael A. Volz (Flynn)"/><br /><sub><b>Michael A. Volz (Flynn)</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=michaelvolz" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/griffinashe/"><img src="https://avatars.githubusercontent.com/u/6391612?v=4?s=100" width="100px;" alt="Griffin Ashe"/><br /><sub><b>Griffin Ashe</b></sub></a><br /><a href="#agents-griffinashe" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-griffinashe" title="Curated collections of related content">🎁</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anchildress1"><img src="https://avatars.githubusercontent.com/u/6563688?v=4?s=100" width="100px;" alt="Ashley Childress"/><br /><sub><b>Ashley Childress</b></sub></a><br /><a href="#agents-anchildress1" title="Specialized agents for GitHub Copilot">🎭</a> <a href="https://github.com/github/awesome-copilot/commits?author=anchildress1" title="Documentation">📖</a> <a href="#instructions-anchildress1" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.senseof.tech/"><img src="https://avatars.githubusercontent.com/u/50712277?v=4?s=100" width="100px;" alt="Adrien Clerbois"/><br /><sub><b>Adrien Clerbois</b></sub></a><br /><a href="#agents-AClerbois" title="Specialized agents for GitHub Copilot">🎭</a> <a href="https://github.com/github/awesome-copilot/commits?author=AClerbois" title="Documentation">📖</a> <a href="#prompts-AClerbois" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Vhivi"><img src="https://avatars.githubusercontent.com/u/38220028?v=4?s=100" width="100px;" alt="ANGELELLI David"/><br /><sub><b>ANGELELLI David</b></sub></a><br /><a href="#agents-Vhivi" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://markdav.is/"><img src="https://avatars.githubusercontent.com/u/311063?v=4?s=100" width="100px;" alt="Mark Davis"/><br /><sub><b>Mark Davis</b></sub></a><br /><a href="#instructions-markdav-is" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MattVevang"><img src="https://avatars.githubusercontent.com/u/20714898?v=4?s=100" width="100px;" alt="Matt Vevang"/><br /><sub><b>Matt Vevang</b></sub></a><br /><a href="#instructions-MattVevang" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://max.irro.at/"><img src="https://avatars.githubusercontent.com/u/589073?v=4?s=100" width="100px;" alt="Maximilian Irro"/><br /><sub><b>Maximilian Irro</b></sub></a><br /><a href="#instructions-mpgirro" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/4regab"><img src="https://avatars.githubusercontent.com/u/178603515?v=4?s=100" width="100px;" alt="4regab"/><br /><sub><b>4regab</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=4regab" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TheovanKraay"><img src="https://avatars.githubusercontent.com/u/24420698?v=4?s=100" width="100px;" alt="Theo van Kraay"/><br /><sub><b>Theo van Kraay</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=TheovanKraay" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://glsauto.com/"><img src="https://avatars.githubusercontent.com/u/132710946?v=4?s=100" width="100px;" alt="Troy Witthoeft (glsauto)"/><br /><sub><b>Troy Witthoeft (glsauto)</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=twitthoeft-gls" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/iletai"><img src="https://avatars.githubusercontent.com/u/26614687?v=4?s=100" width="100px;" alt="Tài Lê"/><br /><sub><b>Tài Lê</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=iletai" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tinyurl.com/3p5j9mwe"><img src="https://avatars.githubusercontent.com/u/9591887?v=4?s=100" width="100px;" alt="Udaya Veeramreddygari"/><br /><sub><b>Udaya Veeramreddygari</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=udayakumarreddyv" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://bio.warengonzaga.com/"><img src="https://avatars.githubusercontent.com/u/15052701?v=4?s=100" width="100px;" alt="Waren Gonzaga"/><br /><sub><b>Waren Gonzaga</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=warengonzaga" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://blog.miniasp.com/"><img src="https://avatars.githubusercontent.com/u/88981?v=4?s=100" width="100px;" alt="Will 保哥"/><br /><sub><b>Will 保哥</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=doggy8088" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nullchimp"><img src="https://avatars.githubusercontent.com/u/58362593?v=4?s=100" width="100px;" alt="NULLchimp"/><br /><sub><b>NULLchimp</b></sub></a><br /><a href="#agents-nullchimp" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pkarda"><img src="https://avatars.githubusercontent.com/u/12649718?v=4?s=100" width="100px;" alt="Peter Karda"/><br /><sub><b>Peter Karda</b></sub></a><br /><a href="#prompts-pkarda" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sdolgin"><img src="https://avatars.githubusercontent.com/u/576449?v=4?s=100" width="100px;" alt="Saul Dolgin"/><br /><sub><b>Saul Dolgin</b></sub></a><br /><a href="#agents-sdolgin" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-sdolgin" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-sdolgin" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/shubham070"><img src="https://avatars.githubusercontent.com/u/5480589?v=4?s=100" width="100px;" alt="Shubham Gaikwad"/><br /><sub><b>Shubham Gaikwad</b></sub></a><br /><a href="#agents-shubham070" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-shubham070" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-shubham070" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TheovanKraay"><img src="https://avatars.githubusercontent.com/u/24420698?v=4?s=100" width="100px;" alt="Theo van Kraay"/><br /><sub><b>Theo van Kraay</b></sub></a><br /><a href="#instructions-TheovanKraay" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/TianqiZhang"><img src="https://avatars.githubusercontent.com/u/5326582?v=4?s=100" width="100px;" alt="Tianqi Zhang"/><br /><sub><b>Tianqi Zhang</b></sub></a><br /><a href="#agents-TianqiZhang" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://blog.miniasp.com/"><img src="https://avatars.githubusercontent.com/u/88981?v=4?s=100" width="100px;" alt="Will 保哥"/><br /><sub><b>Will 保哥</b></sub></a><br /><a href="#agents-doggy8088" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-doggy8088" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yukiomoto"><img src="https://avatars.githubusercontent.com/u/38450410?v=4?s=100" width="100px;" alt="Yuki Omoto"/><br /><sub><b>Yuki Omoto</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=yukiomoto" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hueanmy"><img src="https://avatars.githubusercontent.com/u/20430626?v=4?s=100" width="100px;" alt="Meii"/><br /><sub><b>Meii</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=hueanmy" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/samqbush"><img src="https://avatars.githubusercontent.com/u/74389839?v=4?s=100" width="100px;" alt="samqbush"/><br /><sub><b>samqbush</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=samqbush" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sdanzo-hrb"><img src="https://avatars.githubusercontent.com/u/136493100?v=4?s=100" width="100px;" alt="sdanzo-hrb"/><br /><sub><b>sdanzo-hrb</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=sdanzo-hrb" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/voidfnc"><img src="https://avatars.githubusercontent.com/u/194750710?v=4?s=100" width="100px;" alt="voidfnc"/><br /><sub><b>voidfnc</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=voidfnc" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/webreidi"><img src="https://avatars.githubusercontent.com/u/55603905?v=4?s=100" width="100px;" alt="Wendy Breiding"/><br /><sub><b>Wendy Breiding</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=webreidi" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zooav"><img src="https://avatars.githubusercontent.com/u/12625412?v=4?s=100" width="100px;" alt="Ankur Sharma"/><br /><sub><b>Ankur Sharma</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=zooav" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tsubalog.hatenablog.com/"><img src="https://avatars.githubusercontent.com/u/1592808?v=4?s=100" width="100px;" alt="Yuta Matsumura"/><br /><sub><b>Yuta Matsumura</b></sub></a><br /><a href="#instructions-tsubakimoto" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/anschnapp"><img src="https://avatars.githubusercontent.com/u/17565996?v=4?s=100" width="100px;" alt="anschnapp"/><br /><sub><b>anschnapp</b></sub></a><br /><a href="#agents-anschnapp" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hizahizi-hizumi"><img src="https://avatars.githubusercontent.com/u/163728895?v=4?s=100" width="100px;" alt="hizahizi-hizumi"/><br /><sub><b>hizahizi-hizumi</b></sub></a><br /><a href="#instructions-hizahizi-hizumi" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jianminhuang.cc/"><img src="https://avatars.githubusercontent.com/u/6296280?v=4?s=100" width="100px;" alt="黃健旻 Vincent Huang"/><br /><sub><b>黃健旻 Vincent Huang</b></sub></a><br /><a href="#prompts-Jian-Min-Huang" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://brunoborges.io/"><img src="https://avatars.githubusercontent.com/u/129743?v=4?s=100" width="100px;" alt="Bruno Borges"/><br /><sub><b>Bruno Borges</b></sub></a><br /><a href="#collections-brunoborges" title="Curated collections of related content">🎁</a> <a href="#instructions-brunoborges" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.movinglive.ca/"><img src="https://avatars.githubusercontent.com/u/14792628?v=4?s=100" width="100px;" alt="Steve Magne"/><br /><sub><b>Steve Magne</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=MovingLive" title="Documentation">📖</a> <a href="#instructions-MovingLive" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://shaneneuville.com/"><img src="https://avatars.githubusercontent.com/u/5375137?v=4?s=100" width="100px;" alt="Shane Neuville"/><br /><sub><b>Shane Neuville</b></sub></a><br /><a href="#agents-PureWeen" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-PureWeen" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jianminhuang.cc/"><img src="https://avatars.githubusercontent.com/u/6296280?v=4?s=100" width="100px;" alt="黃健旻 Vincent Huang"/><br /><sub><b>黃健旻 Vincent Huang</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Jian-Min-Huang" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dgh06175"><img src="https://avatars.githubusercontent.com/u/77305722?v=4?s=100" width="100px;" alt="이상현"/><br /><sub><b>이상현</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=dgh06175" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/abdidaudpropel"><img src="https://avatars.githubusercontent.com/u/51310019?v=4?s=100" width="100px;" alt="Abdi Daud"/><br /><sub><b>Abdi Daud</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=abdidaudpropel" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.senseof.tech/"><img src="https://avatars.githubusercontent.com/u/50712277?v=4?s=100" width="100px;" alt="Adrien Clerbois"/><br /><sub><b>Adrien Clerbois</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=AClerbois" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.qreate.it/"><img src="https://avatars.githubusercontent.com/u/1868590?v=4?s=100" width="100px;" alt="Alan Sprecacenere"/><br /><sub><b>Alan Sprecacenere</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=tegola" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://asilva.dev/"><img src="https://avatars.githubusercontent.com/u/2493377?v=4?s=100" width="100px;" alt="André Silva"/><br /><sub><b>André Silva</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=askpt" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://javaetmoi.com/"><img src="https://avatars.githubusercontent.com/u/838318?v=4?s=100" width="100px;" alt="Antoine Rey"/><br /><sub><b>Antoine Rey</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=arey" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://asilva.dev/"><img src="https://avatars.githubusercontent.com/u/2493377?v=4?s=100" width="100px;" alt="André Silva"/><br /><sub><b>André Silva</b></sub></a><br /><a href="#agents-askpt" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-askpt" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/agreaves-ms"><img src="https://avatars.githubusercontent.com/u/111466195?v=4?s=100" width="100px;" alt="Allen Greaves"/><br /><sub><b>Allen Greaves</b></sub></a><br /><a href="#agents-agreaves-ms" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-agreaves-ms" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AmeliaRose802"><img src="https://avatars.githubusercontent.com/u/26167931?v=4?s=100" width="100px;" alt="Amelia Payne"/><br /><sub><b>Amelia Payne</b></sub></a><br /><a href="#agents-AmeliaRose802" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BBoyBen"><img src="https://avatars.githubusercontent.com/u/34445365?v=4?s=100" width="100px;" alt="BBoyBen"/><br /><sub><b>BBoyBen</b></sub></a><br /><a href="#instructions-BBoyBen" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://azureincubations.io/"><img src="https://avatars.githubusercontent.com/u/45323234?v=4?s=100" width="100px;" alt="Brooke Hamilton"/><br /><sub><b>Brooke Hamilton</b></sub></a><br /><a href="#instructions-brooke-hamilton" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/GeekTrainer"><img src="https://avatars.githubusercontent.com/u/6109729?v=4?s=100" width="100px;" alt="Christopher Harrison"/><br /><sub><b>Christopher Harrison</b></sub></a><br /><a href="#instructions-GeekTrainer" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/breakid"><img src="https://avatars.githubusercontent.com/u/1446918?v=4?s=100" width="100px;" alt="Dan"/><br /><sub><b>Dan</b></sub></a><br /><a href="#instructions-breakid" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/artemsaveliev"><img src="https://avatars.githubusercontent.com/u/15679218?v=4?s=100" width="100px;" alt="Artem Saveliev"/><br /><sub><b>Artem Saveliev</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=artemsaveliev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://brunoborges.io/"><img src="https://avatars.githubusercontent.com/u/129743?v=4?s=100" width="100px;" alt="Bruno Borges"/><br /><sub><b>Bruno Borges</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=brunoborges" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.peug.net/"><img src="https://avatars.githubusercontent.com/u/3845786?v=4?s=100" width="100px;" alt="Christophe Peugnet"/><br /><sub><b>Christophe Peugnet</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=tossnet" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.movinglive.ca/"><img src="https://avatars.githubusercontent.com/u/14792628?v=4?s=100" width="100px;" alt="Chtive"/><br /><sub><b>Chtive</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=MovingLive" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/craigbekker"><img src="https://avatars.githubusercontent.com/u/1115912?v=4?s=100" width="100px;" alt="Craig Bekker"/><br /><sub><b>Craig Bekker</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=craigbekker" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/breakid"><img src="https://avatars.githubusercontent.com/u/1446918?v=4?s=100" width="100px;" alt="Dan"/><br /><sub><b>Dan</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=breakid" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ewega"><img src="https://avatars.githubusercontent.com/u/26189114?v=4?s=100" width="100px;" alt="Eldrick Wega"/><br /><sub><b>Eldrick Wega</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=ewega" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.felixarjuna.dev/"><img src="https://avatars.githubusercontent.com/u/79026094?v=4?s=100" width="100px;" alt="Felix Arjuna"/><br /><sub><b>Felix Arjuna</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=felixarjuna" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/feapaydin"><img src="https://avatars.githubusercontent.com/u/19946639?v=4?s=100" width="100px;" alt="Furkan Enes"/><br /><sub><b>Furkan Enes</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=feapaydin" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://learn.microsoft.com/dotnet"><img src="https://avatars.githubusercontent.com/u/24882762?v=4?s=100" width="100px;" alt="Genevieve Warren"/><br /><sub><b>Genevieve Warren</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=gewarren" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geoder101"><img src="https://avatars.githubusercontent.com/u/145904?v=4?s=100" width="100px;" alt="George Dernikos"/><br /><sub><b>George Dernikos</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=geoder101" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/giomartinsdev"><img src="https://avatars.githubusercontent.com/u/125399281?v=4?s=100" width="100px;" alt="Giovanni de Almeida Martins"/><br /><sub><b>Giovanni de Almeida Martins</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=giomartinsdev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ioana37"><img src="https://avatars.githubusercontent.com/u/69301842?v=4?s=100" width="100px;" alt="Ioana A"/><br /><sub><b>Ioana A</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Ioana37" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nohwnd"><img src="https://avatars.githubusercontent.com/u/5735905?v=4?s=100" width="100px;" alt="Jakub Jareš"/><br /><sub><b>Jakub Jareš</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=nohwnd" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://joe-watkins.io/"><img src="https://avatars.githubusercontent.com/u/3695795?v=4?s=100" width="100px;" alt="Joe Watkins"/><br /><sub><b>Joe Watkins</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=joe-watkins" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://johnpapa.net/"><img src="https://avatars.githubusercontent.com/u/1202528?v=4?s=100" width="100px;" alt="John Papa"/><br /><sub><b>John Papa</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=johnpapa" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.sugbo4j.co.nz/"><img src="https://avatars.githubusercontent.com/u/15100839?v=4?s=100" width="100px;" alt="Joseph Gonzales"/><br /><sub><b>Joseph Gonzales</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=josephgonzales01" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://digio.es/"><img src="https://avatars.githubusercontent.com/u/173672918?v=4?s=100" width="100px;" alt="José Antonio Garrido"/><br /><sub><b>José Antonio Garrido</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=josegarridodigio" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ranrar"><img src="https://avatars.githubusercontent.com/u/95967772?v=4?s=100" width="100px;" alt="Kim Skov Rasmussen"/><br /><sub><b>Kim Skov Rasmussen</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Ranrar" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/whiteken"><img src="https://avatars.githubusercontent.com/u/20211937?v=4?s=100" width="100px;" alt="Kenny White"/><br /><sub><b>Kenny White</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=whiteken" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LouellaCreemers"><img src="https://avatars.githubusercontent.com/u/46204894?v=4?s=100" width="100px;" alt="Louella Creemers"/><br /><sub><b>Louella Creemers</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=LouellaCreemers" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/lukemurray"><img src="https://avatars.githubusercontent.com/u/24467442?v=4?s=100" width="100px;" alt="Luke Murray"/><br /><sub><b>Luke Murray</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=lukemurraynz" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://marknoble.com/"><img src="https://avatars.githubusercontent.com/u/3819700?v=4?s=100" width="100px;" alt="Mark Noble"/><br /><sub><b>Mark Noble</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=marknoble" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://soderlind.no"><img src="https://avatars.githubusercontent.com/u/1649452?v=4?s=100" width="100px;" alt="Per Søderlind"/><br /><sub><b>Per Søderlind</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=soderlind" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/riqueufmg"><img src="https://avatars.githubusercontent.com/u/108551585?v=4?s=100" width="100px;" alt="Henrique Nunes"/><br /><sub><b>Henrique Nunes</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=riqueufmg" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://blog.codewithdan.com/"><img src="https://avatars.githubusercontent.com/u/1767249?v=4?s=100" width="100px;" alt="Dan Wahlin"/><br /><sub><b>Dan Wahlin</b></sub></a><br /><a href="#agents-DanWahlin" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://debbie.codes/"><img src="https://avatars.githubusercontent.com/u/13063165?v=4?s=100" width="100px;" alt="Debbie O'Brien"/><br /><sub><b>Debbie O'Brien</b></sub></a><br /><a href="#agents-debs-obrien" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-debs-obrien" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-debs-obrien" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/echarrod"><img src="https://avatars.githubusercontent.com/u/1381991?v=4?s=100" width="100px;" alt="Ed Harrod"/><br /><sub><b>Ed Harrod</b></sub></a><br /><a href="#prompts-echarrod" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://learn.microsoft.com/dotnet"><img src="https://avatars.githubusercontent.com/u/24882762?v=4?s=100" width="100px;" alt="Genevieve Warren"/><br /><sub><b>Genevieve Warren</b></sub></a><br /><a href="#prompts-gewarren" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/guigui42"><img src="https://avatars.githubusercontent.com/u/2376010?v=4?s=100" width="100px;" alt="Guillaume"/><br /><sub><b>Guillaume</b></sub></a><br /><a href="#agents-guigui42" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-guigui42" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/riqueufmg"><img src="https://avatars.githubusercontent.com/u/108551585?v=4?s=100" width="100px;" alt="Henrique Nunes"/><br /><sub><b>Henrique Nunes</b></sub></a><br /><a href="#prompts-riqueufmg" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jeremiah-snee-openx"><img src="https://avatars.githubusercontent.com/u/113928685?v=4?s=100" width="100px;" alt="Jeremiah Snee"/><br /><sub><b>Jeremiah Snee</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=jeremiah-snee-openx" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/spectatora"><img src="https://avatars.githubusercontent.com/u/1385755?v=4?s=100" width="100px;" alt="spectatora"/><br /><sub><b>spectatora</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=spectatora" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mike-Hanna"><img src="https://avatars.githubusercontent.com/u/50142889?v=4?s=100" width="100px;" alt="Michael"/><br /><sub><b>Michael</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Mike-Hanna" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lechnerc77"><img src="https://avatars.githubusercontent.com/u/22294087?v=4?s=100" width="100px;" alt="Christian Lechner"/><br /><sub><b>Christian Lechner</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=lechnerc77" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jan-v.nl"><img src="https://avatars.githubusercontent.com/u/462356?v=4?s=100" width="100px;" alt="Jan de Vries"/><br /><sub><b>Jan de Vries</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Jandev" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kartikdhiman"><img src="https://avatars.githubusercontent.com/u/59189590?v=4?s=100" width="100px;" alt="Kartik Dhiman"/><br /><sub><b>Kartik Dhiman</b></sub></a><br /><a href="#instructions-kartikdhiman" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://kristiyanvelkov.com/"><img src="https://avatars.githubusercontent.com/u/40764277?v=4?s=100" width="100px;" alt="Kristiyan Velkov"/><br /><sub><b>Kristiyan Velkov</b></sub></a><br /><a href="#agents-kristiyan-velkov" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/msalaman"><img src="https://avatars.githubusercontent.com/u/28122166?v=4?s=100" width="100px;" alt="msalaman"/><br /><sub><b>msalaman</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=msalaman" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://soderlind.no/"><img src="https://avatars.githubusercontent.com/u/1649452?v=4?s=100" width="100px;" alt="Per Søderlind"/><br /><sub><b>Per Søderlind</b></sub></a><br /><a href="#instructions-soderlind" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://dotneteers.net/"><img src="https://avatars.githubusercontent.com/u/28162552?v=4?s=100" width="100px;" alt="Peter Smulovics"/><br /><sub><b>Peter Smulovics</b></sub></a><br /><a href="#instructions-psmulovics" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/madvimer"><img src="https://avatars.githubusercontent.com/u/3188898?v=4?s=100" width="100px;" alt="Ravish Rathod"/><br /><sub><b>Ravish Rathod</b></sub></a><br /><a href="#instructions-madvimer" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://ricksm.it/"><img src="https://avatars.githubusercontent.com/u/7207783?v=4?s=100" width="100px;" alt="Rick Smit"/><br /><sub><b>Rick Smit</b></sub></a><br /><a href="#agents-ricksmit3000" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pertrai1"><img src="https://avatars.githubusercontent.com/u/442374?v=4?s=100" width="100px;" alt="Rob Simpson"/><br /><sub><b>Rob Simpson</b></sub></a><br /><a href="#instructions-pertrai1" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/inquinity"><img src="https://avatars.githubusercontent.com/u/406234?v=4?s=100" width="100px;" alt="Robert Altman"/><br /><sub><b>Robert Altman</b></sub></a><br /><a href="#instructions-inquinity" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://salih.guru/"><img src="https://avatars.githubusercontent.com/u/76786120?v=4?s=100" width="100px;" alt="Salih"/><br /><sub><b>Salih</b></sub></a><br /><a href="#instructions-salihguru" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://graef.io/"><img src="https://avatars.githubusercontent.com/u/19261257?v=4?s=100" width="100px;" alt="Sebastian Gräf"/><br /><sub><b>Sebastian Gräf</b></sub></a><br /><a href="#agents-segraef" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-segraef" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SebastienDegodez"><img src="https://avatars.githubusercontent.com/u/2349146?v=4?s=100" width="100px;" alt="Sebastien DEGODEZ"/><br /><sub><b>Sebastien DEGODEZ</b></sub></a><br /><a href="#instructions-SebastienDegodez" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sesmyrnov"><img src="https://avatars.githubusercontent.com/u/59627981?v=4?s=100" width="100px;" alt="Sergiy Smyrnov"/><br /><sub><b>Sergiy Smyrnov</b></sub></a><br /><a href="#prompts-sesmyrnov" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/SomeSolutionsArchitect"><img src="https://avatars.githubusercontent.com/u/139817767?v=4?s=100" width="100px;" alt="SomeSolutionsArchitect"/><br /><sub><b>SomeSolutionsArchitect</b></sub></a><br /><a href="#agents-SomeSolutionsArchitect" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kewalaka"><img src="https://avatars.githubusercontent.com/u/3146590?v=4?s=100" width="100px;" alt="Stu Mace"/><br /><sub><b>Stu Mace</b></sub></a><br /><a href="#agents-kewalaka" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-kewalaka" title="Curated collections of related content">🎁</a> <a href="#instructions-kewalaka" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/STRUDSO"><img src="https://avatars.githubusercontent.com/u/1543732?v=4?s=100" width="100px;" alt="Søren Trudsø Mahon"/><br /><sub><b>Søren Trudsø Mahon</b></sub></a><br /><a href="#instructions-STRUDSO" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://enakdesign.com/"><img src="https://avatars.githubusercontent.com/u/14024037?v=4?s=100" width="100px;" alt="Tj Vita"/><br /><sub><b>Tj Vita</b></sub></a><br /><a href="#agents-semperteneo" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pelikhan"><img src="https://avatars.githubusercontent.com/u/4175913?v=4?s=100" width="100px;" alt="Peli de Halleux"/><br /><sub><b>Peli de Halleux</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=pelikhan" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.paulomorgado.net/"><img src="https://avatars.githubusercontent.com/u/470455?v=4?s=100" width="100px;" alt="Paulo Morgado"/><br /><sub><b>Paulo Morgado</b></sub></a><br /><a href="#prompts-paulomorgado" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://paul.crane.net.nz/"><img src="https://avatars.githubusercontent.com/u/808676?v=4?s=100" width="100px;" alt="Paul Crane"/><br /><sub><b>Paul Crane</b></sub></a><br /><a href="#agents-pcrane" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.pamelafox.org/"><img src="https://avatars.githubusercontent.com/u/297042?v=4?s=100" width="100px;" alt="Pamela Fox"/><br /><sub><b>Pamela Fox</b></sub></a><br /><a href="#prompts-pamelafox" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://oskarthornblad.se/"><img src="https://avatars.githubusercontent.com/u/640102?v=4?s=100" width="100px;" alt="Oskar Thornblad"/><br /><sub><b>Oskar Thornblad</b></sub></a><br /><a href="#instructions-prewk" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nischays"><img src="https://avatars.githubusercontent.com/u/54121853?v=4?s=100" width="100px;" alt="Nischay Sharma"/><br /><sub><b>Nischay Sharma</b></sub></a><br /><a href="#agents-nischays" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Naikabg"><img src="https://avatars.githubusercontent.com/u/19915620?v=4?s=100" width="100px;" alt="Nikolay Marinov"/><br /><sub><b>Nikolay Marinov</b></sub></a><br /><a href="#agents-Naikabg" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/niksac"><img src="https://avatars.githubusercontent.com/u/20246918?v=4?s=100" width="100px;" alt="Nik Sachdeva"/><br /><sub><b>Nik Sachdeva</b></sub></a><br /><a href="#agents-niksacdev" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#collections-niksacdev" title="Curated collections of related content">🎁</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://onetipaweek.com/"><img src="https://avatars.githubusercontent.com/u/833231?v=4?s=100" width="100px;" alt="Nick Taylor"/><br /><sub><b>Nick Taylor</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=nickytonline" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://nicholasdbrady.github.io/cookbook/"><img src="https://avatars.githubusercontent.com/u/18353756?v=4?s=100" width="100px;" alt="Nick Brady"/><br /><sub><b>Nick Brady</b></sub></a><br /><a href="#agents-nicholasdbrady" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nastanford"><img src="https://avatars.githubusercontent.com/u/1755947?v=4?s=100" width="100px;" alt="Nathan Stanford Sr"/><br /><sub><b>Nathan Stanford Sr</b></sub></a><br /><a href="#instructions-nastanford" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/matebarabas"><img src="https://avatars.githubusercontent.com/u/22733424?v=4?s=100" width="100px;" alt="Máté Barabás"/><br /><sub><b>Máté Barabás</b></sub></a><br /><a href="#instructions-matebarabas" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikeparker104"><img src="https://avatars.githubusercontent.com/u/12763221?v=4?s=100" width="100px;" alt="Mike Parker"/><br /><sub><b>Mike Parker</b></sub></a><br /><a href="#instructions-mikeparker104" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mikekistler"><img src="https://avatars.githubusercontent.com/u/85643503?v=4?s=100" width="100px;" alt="Mike Kistler"/><br /><sub><b>Mike Kistler</b></sub></a><br /><a href="#prompts-mikekistler" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/giomartinsdev"><img src="https://avatars.githubusercontent.com/u/125399281?v=4?s=100" width="100px;" alt="Giovanni de Almeida Martins"/><br /><sub><b>Giovanni de Almeida Martins</b></sub></a><br /><a href="#instructions-giomartinsdev" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dgh06175"><img src="https://avatars.githubusercontent.com/u/77305722?v=4?s=100" width="100px;" alt="이상현"/><br /><sub><b>이상현</b></sub></a><br /><a href="#instructions-dgh06175" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zooav"><img src="https://avatars.githubusercontent.com/u/12625412?v=4?s=100" width="100px;" alt="Ankur Sharma"/><br /><sub><b>Ankur Sharma</b></sub></a><br /><a href="#prompts-zooav" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/webreidi"><img src="https://avatars.githubusercontent.com/u/55603905?v=4?s=100" width="100px;" alt="Wendy Breiding"/><br /><sub><b>Wendy Breiding</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=webreidi" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/voidfnc"><img src="https://avatars.githubusercontent.com/u/194750710?v=4?s=100" width="100px;" alt="voidfnc"/><br /><sub><b>voidfnc</b></sub></a><br /><a href="#agents-voidfnc" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://about.me/shane-lee"><img src="https://avatars.githubusercontent.com/u/5466825?v=4?s=100" width="100px;" alt="shane lee"/><br /><sub><b>shane lee</b></sub></a><br /><a href="#instructions-shavo007" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sdanzo-hrb"><img src="https://avatars.githubusercontent.com/u/136493100?v=4?s=100" width="100px;" alt="sdanzo-hrb"/><br /><sub><b>sdanzo-hrb</b></sub></a><br /><a href="#agents-sdanzo-hrb" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nativebpm"><img src="https://avatars.githubusercontent.com/u/33398121?v=4?s=100" width="100px;" alt="sauran"/><br /><sub><b>sauran</b></sub></a><br /><a href="#instructions-isauran" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/samqbush"><img src="https://avatars.githubusercontent.com/u/74389839?v=4?s=100" width="100px;" alt="samqbush"/><br /><sub><b>samqbush</b></sub></a><br /><a href="#prompts-samqbush" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pareenaverma"><img src="https://avatars.githubusercontent.com/u/59843121?v=4?s=100" width="100px;" alt="pareenaverma"/><br /><sub><b>pareenaverma</b></sub></a><br /><a href="#agents-pareenaverma" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/oleksiyyurchyna"><img src="https://avatars.githubusercontent.com/u/10256765?v=4?s=100" width="100px;" alt="oleksiyyurchyna"/><br /><sub><b>oleksiyyurchyna</b></sub></a><br /><a href="#collections-oleksiyyurchyna" title="Curated collections of related content">🎁</a> <a href="#prompts-oleksiyyurchyna" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/time-by-waves"><img src="https://avatars.githubusercontent.com/u/34587654?v=4?s=100" width="100px;" alt="oceans-of-time"/><br /><sub><b>oceans-of-time</b></sub></a><br /><a href="#instructions-time-by-waves" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kshashank57"><img src="https://avatars.githubusercontent.com/u/57212456?v=4?s=100" width="100px;" alt="kshashank57"/><br /><sub><b>kshashank57</b></sub></a><br /><a href="#agents-kshashank57" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-kshashank57" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hueanmy"><img src="https://avatars.githubusercontent.com/u/20430626?v=4?s=100" width="100px;" alt="Meii"/><br /><sub><b>Meii</b></sub></a><br /><a href="#agents-hueanmy" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/factory-davidgu"><img src="https://avatars.githubusercontent.com/u/229352262?v=4?s=100" width="100px;" alt="factory-davidgu"/><br /><sub><b>factory-davidgu</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=factory-davidgu" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/dangelov-qa"><img src="https://avatars.githubusercontent.com/u/92313553?v=4?s=100" width="100px;" alt="dangelov-qa"/><br /><sub><b>dangelov-qa</b></sub></a><br /><a href="#agents-dangelov-qa" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/BenoitMaucotel"><img src="https://avatars.githubusercontent.com/u/54392431?v=4?s=100" width="100px;" alt="BenoitMaucotel"/><br /><sub><b>BenoitMaucotel</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=BenoitMaucotel" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/benjisho-aidome"><img src="https://avatars.githubusercontent.com/u/218995725?v=4?s=100" width="100px;" alt="benjisho-aidome"/><br /><sub><b>benjisho-aidome</b></sub></a><br /><a href="#agents-benjisho-aidome" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#instructions-benjisho-aidome" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-benjisho-aidome" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yukiomoto"><img src="https://avatars.githubusercontent.com/u/38450410?v=4?s=100" width="100px;" alt="Yuki Omoto"/><br /><sub><b>Yuki Omoto</b></sub></a><br /><a href="#instructions-yukiomoto" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/wschultz-boxboat"><img src="https://avatars.githubusercontent.com/u/110492948?v=4?s=100" width="100px;" alt="Will Schultz"/><br /><sub><b>Will Schultz</b></sub></a><br /><a href="#agents-wschultz-boxboat" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://bio.warengonzaga.com/"><img src="https://avatars.githubusercontent.com/u/15052701?v=4?s=100" width="100px;" alt="Waren Gonzaga"/><br /><sub><b>Waren Gonzaga</b></sub></a><br /><a href="#agents-warengonzaga" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/vincentkoc"><img src="https://avatars.githubusercontent.com/u/25068?v=4?s=100" width="100px;" alt="Vincent Koc"/><br /><sub><b>Vincent Koc</b></sub></a><br /><a href="#agents-vincentkoc" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Vaporjawn"><img src="https://avatars.githubusercontent.com/u/15694665?v=4?s=100" width="100px;" alt="Victor Williams"/><br /><sub><b>Victor Williams</b></sub></a><br /><a href="#agents-Vaporjawn" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://vesharma.dev/"><img src="https://avatars.githubusercontent.com/u/62218708?v=4?s=100" width="100px;" alt="Ve Sharma"/><br /><sub><b>Ve Sharma</b></sub></a><br /><a href="#agents-VeVarunSharma" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.ferryhopper.com/"><img src="https://avatars.githubusercontent.com/u/19361558?v=4?s=100" width="100px;" alt="Vasileios Lahanas"/><br /><sub><b>Vasileios Lahanas</b></sub></a><br /><a href="#instructions-vlahanas" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tinyurl.com/3p5j9mwe"><img src="https://avatars.githubusercontent.com/u/9591887?v=4?s=100" width="100px;" alt="Udaya Veeramreddygari"/><br /><sub><b>Udaya Veeramreddygari</b></sub></a><br /><a href="#instructions-udayakumarreddyv" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/iletai"><img src="https://avatars.githubusercontent.com/u/26614687?v=4?s=100" width="100px;" alt="Tài Lê"/><br /><sub><b>Tài Lê</b></sub></a><br /><a href="#prompts-iletai" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://tsubasaogawa.me/"><img src="https://avatars.githubusercontent.com/u/7788821?v=4?s=100" width="100px;" alt="Tsubasa Ogawa"/><br /><sub><b>Tsubasa Ogawa</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=tsubasaogawa" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://glsauto.com/"><img src="https://avatars.githubusercontent.com/u/132710946?v=4?s=100" width="100px;" alt="Troy Witthoeft (glsauto)"/><br /><sub><b>Troy Witthoeft (glsauto)</b></sub></a><br /><a href="#instructions-twitthoeft-gls" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jfversluis.dev/"><img src="https://avatars.githubusercontent.com/u/939291?v=4?s=100" width="100px;" alt="Gerald Versluis"/><br /><sub><b>Gerald Versluis</b></sub></a><br /><a href="#instructions-jfversluis" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/geoder101"><img src="https://avatars.githubusercontent.com/u/145904?v=4?s=100" width="100px;" alt="George Dernikos"/><br /><sub><b>George Dernikos</b></sub></a><br /><a href="#prompts-geoder101" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/gautambaghel"><img src="https://avatars.githubusercontent.com/u/22324290?v=4?s=100" width="100px;" alt="Gautam"/><br /><sub><b>Gautam</b></sub></a><br /><a href="#agents-gautambaghel" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/feapaydin"><img src="https://avatars.githubusercontent.com/u/19946639?v=4?s=100" width="100px;" alt="Furkan Enes"/><br /><sub><b>Furkan Enes</b></sub></a><br /><a href="#instructions-feapaydin" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fmuecke"><img src="https://avatars.githubusercontent.com/u/7921024?v=4?s=100" width="100px;" alt="Florian Mücke"/><br /><sub><b>Florian Mücke</b></sub></a><br /><a href="#agents-fmuecke" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.felixarjuna.dev/"><img src="https://avatars.githubusercontent.com/u/79026094?v=4?s=100" width="100px;" alt="Felix Arjuna"/><br /><sub><b>Felix Arjuna</b></sub></a><br /><a href="#instructions-felixarjuna" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ewega"><img src="https://avatars.githubusercontent.com/u/26189114?v=4?s=100" width="100px;" alt="Eldrick Wega"/><br /><sub><b>Eldrick Wega</b></sub></a><br /><a href="#prompts-ewega" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danchev"><img src="https://avatars.githubusercontent.com/u/12420863?v=4?s=100" width="100px;" alt="Dobri Danchev"/><br /><sub><b>Dobri Danchev</b></sub></a><br /><a href="#prompts-danchev" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://dgamboa.com/"><img src="https://avatars.githubusercontent.com/u/7052267?v=4?s=100" width="100px;" alt="Diego Gamboa"/><br /><sub><b>Diego Gamboa</b></sub></a><br /><a href="#prompts-difegam" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/derekclair"><img src="https://avatars.githubusercontent.com/u/5247629?v=4?s=100" width="100px;" alt="Derek Clair"/><br /><sub><b>Derek Clair</b></sub></a><br /><a href="#agents-derekclair" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-derekclair" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://dev.to/davidortinau"><img src="https://avatars.githubusercontent.com/u/41873?v=4?s=100" width="100px;" alt="David Ortinau"/><br /><sub><b>David Ortinau</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=davidortinau" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danielabbatt"><img src="https://avatars.githubusercontent.com/u/8926756?v=4?s=100" width="100px;" alt="Daniel Abbatt"/><br /><sub><b>Daniel Abbatt</b></sub></a><br /><a href="#instructions-danielabbatt" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/CypherHK"><img src="https://avatars.githubusercontent.com/u/230935834?v=4?s=100" width="100px;" alt="CypherHK"/><br /><sub><b>CypherHK</b></sub></a><br /><a href="#agents-CypherHK" title="Specialized agents for GitHub Copilot">🎭</a> <a href="#prompts-CypherHK" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/craigbekker"><img src="https://avatars.githubusercontent.com/u/1115912?v=4?s=100" width="100px;" alt="Craig Bekker"/><br /><sub><b>Craig Bekker</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=craigbekker" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.peug.net/"><img src="https://avatars.githubusercontent.com/u/3845786?v=4?s=100" width="100px;" alt="Christophe Peugnet"/><br /><sub><b>Christophe Peugnet</b></sub></a><br /><a href="#instructions-tossnet" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/lechnerc77"><img src="https://avatars.githubusercontent.com/u/22294087?v=4?s=100" width="100px;" alt="Christian Lechner"/><br /><sub><b>Christian Lechner</b></sub></a><br /><a href="#instructions-lechnerc77" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/charris-msft"><img src="https://avatars.githubusercontent.com/u/74415662?v=4?s=100" width="100px;" alt="Chris Harris"/><br /><sub><b>Chris Harris</b></sub></a><br /><a href="#agents-charris-msft" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/artemsaveliev"><img src="https://avatars.githubusercontent.com/u/15679218?v=4?s=100" width="100px;" alt="Artem Saveliev"/><br /><sub><b>Artem Saveliev</b></sub></a><br /><a href="#instructions-artemsaveliev" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://javaetmoi.com/"><img src="https://avatars.githubusercontent.com/u/838318?v=4?s=100" width="100px;" alt="Antoine Rey"/><br /><sub><b>Antoine Rey</b></sub></a><br /><a href="#prompts-arey" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/PiKa919"><img src="https://avatars.githubusercontent.com/u/96786190?v=4?s=100" width="100px;" alt="Ankit Das"/><br /><sub><b>Ankit Das</b></sub></a><br /><a href="#instructions-PiKa919" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/alineavila"><img src="https://avatars.githubusercontent.com/u/24813256?v=4?s=100" width="100px;" alt="Aline Ávila"/><br /><sub><b>Aline Ávila</b></sub></a><br /><a href="#instructions-alineavila" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/martin-cod"><img src="https://avatars.githubusercontent.com/u/33550246?v=4?s=100" width="100px;" alt="Alexander Martinkevich"/><br /><sub><b>Alexander Martinkevich</b></sub></a><br /><a href="#agents-martin-cod" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aldunchev"><img src="https://avatars.githubusercontent.com/u/4631021?v=4?s=100" width="100px;" alt="Aleksandar Dunchev"/><br /><sub><b>Aleksandar Dunchev</b></sub></a><br /><a href="#agents-aldunchev" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.qreate.it/"><img src="https://avatars.githubusercontent.com/u/1868590?v=4?s=100" width="100px;" alt="Alan Sprecacenere"/><br /><sub><b>Alan Sprecacenere</b></sub></a><br /><a href="#instructions-tegola" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/akashxlr8"><img src="https://avatars.githubusercontent.com/u/58072860?v=4?s=100" width="100px;" alt="Akash Kumar Shaw"/><br /><sub><b>Akash Kumar Shaw</b></sub></a><br /><a href="#instructions-akashxlr8" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/abdidaudpropel"><img src="https://avatars.githubusercontent.com/u/51310019?v=4?s=100" width="100px;" alt="Abdi Daud"/><br /><sub><b>Abdi Daud</b></sub></a><br /><a href="#agents-abdidaudpropel" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/AIAlchemyForge"><img src="https://avatars.githubusercontent.com/u/253636689?v=4?s=100" width="100px;" alt="AIAlchemyForge"/><br /><sub><b>AIAlchemyForge</b></sub></a><br /><a href="#instructions-AIAlchemyForge" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/4regab"><img src="https://avatars.githubusercontent.com/u/178603515?v=4?s=100" width="100px;" alt="4regab"/><br /><sub><b>4regab</b></sub></a><br /><a href="#instructions-4regab" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MiguelElGallo"><img src="https://avatars.githubusercontent.com/u/60221874?v=4?s=100" width="100px;" alt="Miguel P Z"/><br /><sub><b>Miguel P Z</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=MiguelElGallo" title="Documentation">📖</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://a11ysupport.io/"><img src="https://avatars.githubusercontent.com/u/498678?v=4?s=100" width="100px;" alt="Michael Fairchild"/><br /><sub><b>Michael Fairchild</b></sub></a><br /><a href="#instructions-mfairchild365" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/michael-volz/"><img src="https://avatars.githubusercontent.com/u/129928?v=4?s=100" width="100px;" alt="Michael A. Volz (Flynn)"/><br /><sub><b>Michael A. Volz (Flynn)</b></sub></a><br /><a href="#prompts-michaelvolz" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mike-Hanna"><img src="https://avatars.githubusercontent.com/u/50142889?v=4?s=100" width="100px;" alt="Michael"/><br /><sub><b>Michael</b></sub></a><br /><a href="#instructions-Mike-Hanna" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.mehmetalierol.com/"><img src="https://avatars.githubusercontent.com/u/16721723?v=4?s=100" width="100px;" alt="Mehmet Ali EROL"/><br /><sub><b>Mehmet Ali EROL</b></sub></a><br /><a href="#agents-mehmetalierol" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://maxprilutskiy.com/"><img src="https://avatars.githubusercontent.com/u/5614659?v=4?s=100" width="100px;" alt="Max Prilutskiy"/><br /><sub><b>Max Prilutskiy</b></sub></a><br /><a href="#agents-maxprilutskiy" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mbianchidev"><img src="https://avatars.githubusercontent.com/u/37507190?v=4?s=100" width="100px;" alt="Matteo Bianchi"/><br /><sub><b>Matteo Bianchi</b></sub></a><br /><a href="#agents-mbianchidev" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://marknoble.com/"><img src="https://avatars.githubusercontent.com/u/3819700?v=4?s=100" width="100px;" alt="Mark Noble"/><br /><sub><b>Mark Noble</b></sub></a><br /><a href="#agents-marknoble" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ManishJayaswal"><img src="https://avatars.githubusercontent.com/u/9527491?v=4?s=100" width="100px;" alt="Manish Jayaswal"/><br /><sub><b>Manish Jayaswal</b></sub></a><br /><a href="#agents-ManishJayaswal" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/lukemurray"><img src="https://avatars.githubusercontent.com/u/24467442?v=4?s=100" width="100px;" alt="Luke Murray"/><br /><sub><b>Luke Murray</b></sub></a><br /><a href="#agents-lukemurraynz" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/LouellaCreemers"><img src="https://avatars.githubusercontent.com/u/46204894?v=4?s=100" width="100px;" alt="Louella Creemers"/><br /><sub><b>Louella Creemers</b></sub></a><br /><a href="#instructions-LouellaCreemers" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/saikoumudi"><img src="https://avatars.githubusercontent.com/u/22682497?v=4?s=100" width="100px;" alt="Sai Koumudi Kaluvakolanu"/><br /><sub><b>Sai Koumudi Kaluvakolanu</b></sub></a><br /><a href="#agents-saikoumudi" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/whiteken"><img src="https://avatars.githubusercontent.com/u/20211937?v=4?s=100" width="100px;" alt="Kenny White"/><br /><sub><b>Kenny White</b></sub></a><br /><a href="#instructions-whiteken" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/KaloyanGenev"><img src="https://avatars.githubusercontent.com/u/42644424?v=4?s=100" width="100px;" alt="KaloyanGenev"/><br /><sub><b>KaloyanGenev</b></sub></a><br /><a href="#agents-KaloyanGenev" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ranrar"><img src="https://avatars.githubusercontent.com/u/95967772?v=4?s=100" width="100px;" alt="Kim Skov Rasmussen"/><br /><sub><b>Kim Skov Rasmussen</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=Ranrar" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.julien-dubois.com/"><img src="https://avatars.githubusercontent.com/u/316835?v=4?s=100" width="100px;" alt="Julien Dubois"/><br /><sub><b>Julien Dubois</b></sub></a><br /><a href="#prompts-jdubois" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://digio.es/"><img src="https://avatars.githubusercontent.com/u/173672918?v=4?s=100" width="100px;" alt="José Antonio Garrido"/><br /><sub><b>José Antonio Garrido</b></sub></a><br /><a href="#instructions-josegarridodigio" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://www.sugbo4j.co.nz/"><img src="https://avatars.githubusercontent.com/u/15100839?v=4?s=100" width="100px;" alt="Joseph Gonzales"/><br /><sub><b>Joseph Gonzales</b></sub></a><br /><a href="#instructions-josephgonzales01" title="Custom instructions for GitHub Copilot">🧭</a> <a href="#prompts-josephgonzales01" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yortch"><img src="https://avatars.githubusercontent.com/u/4576246?v=4?s=100" width="100px;" alt="Jorge Balderas"/><br /><sub><b>Jorge Balderas</b></sub></a><br /><a href="#instructions-yortch" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://johnpapa.net/"><img src="https://avatars.githubusercontent.com/u/1202528?v=4?s=100" width="100px;" alt="John Papa"/><br /><sub><b>John Papa</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=johnpapa" title="Code">💻</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://www.johnlokerse.dev/"><img src="https://avatars.githubusercontent.com/u/3514513?v=4?s=100" width="100px;" alt="John"/><br /><sub><b>John</b></sub></a><br /><a href="#agents-johnlokerse" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="http://joe-watkins.io/"><img src="https://avatars.githubusercontent.com/u/3695795?v=4?s=100" width="100px;" alt="Joe Watkins"/><br /><sub><b>Joe Watkins</b></sub></a><br /><a href="#instructions-joe-watkins" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://jan-v.nl/"><img src="https://avatars.githubusercontent.com/u/462356?v=4?s=100" width="100px;" alt="Jan de Vries"/><br /><sub><b>Jan de Vries</b></sub></a><br /><a href="#agents-Jandev" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nohwnd"><img src="https://avatars.githubusercontent.com/u/5735905?v=4?s=100" width="100px;" alt="Jakub Jareš"/><br /><sub><b>Jakub Jareš</b></sub></a><br /><a href="#prompts-nohwnd" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jaxn"><img src="https://avatars.githubusercontent.com/u/29095?v=4?s=100" width="100px;" alt="Jackson Miller"/><br /><sub><b>Jackson Miller</b></sub></a><br /><a href="#instructions-jaxn" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Ioana37"><img src="https://avatars.githubusercontent.com/u/69301842?v=4?s=100" width="100px;" alt="Ioana A"/><br /><sub><b>Ioana A</b></sub></a><br /><a href="#instructions-Ioana37" title="Custom instructions for GitHub Copilot">🧭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hunterhogan"><img src="https://avatars.githubusercontent.com/u/2958419?v=4?s=100" width="100px;" alt="Hunter Hogan"/><br /><sub><b>Hunter Hogan</b></sub></a><br /><a href="#agents-hunterhogan" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/hashimwarren"><img src="https://avatars.githubusercontent.com/u/6027587?v=4?s=100" width="100px;" alt="Hashim Warren"/><br /><sub><b>Hashim Warren</b></sub></a><br /><a href="#agents-hashimwarren" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Arggon"><img src="https://avatars.githubusercontent.com/u/20962238?v=4?s=100" width="100px;" alt="Gonzalo"/><br /><sub><b>Gonzalo</b></sub></a><br /><a href="#prompts-Arggon" title="Reusable prompts for GitHub Copilot">⌨️</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://hachyderm.io/@0gis0"><img src="https://avatars.githubusercontent.com/u/175379?v=4?s=100" width="100px;" alt="Gisela Torres"/><br /><sub><b>Gisela Torres</b></sub></a><br /><a href="#agents-0GiS0" title="Specialized agents for GitHub Copilot">🎭</a></td>
|
||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/shibicr93"><img src="https://avatars.githubusercontent.com/u/6803434?v=4?s=100" width="100px;" alt="Shibi Ramachandran"/><br /><sub><b>Shibi Ramachandran</b></sub></a><br /><a href="https://github.com/github/awesome-copilot/commits?author=shibicr93" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
|
||||
@@ -6,6 +6,9 @@ description: An agent designed to assist with software development tasks for .NE
|
||||
|
||||
You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices.
|
||||
|
||||
You are familiar with the currently released .NET and C# versions (for example, up to .NET 10 and C# 14 at the time of writing). (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new
|
||||
and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new for details.)
|
||||
|
||||
When invoked:
|
||||
|
||||
- Understand the user's .NET task and context
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing'
|
||||
model: GPT-4.1
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
|
||||
# Accessibility Expert
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration'
|
||||
model: 'GPT-4.1'
|
||||
tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'figma-dev-mode-mcp-server']
|
||||
tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'figma-dev-mode-mcp-server']
|
||||
---
|
||||
|
||||
# AEM Front-End Specialist
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Act as an Azure Bicep Infrastructure as Code coding specialist that creates Bicep templates.'
|
||||
tools:
|
||||
[ 'edit/editFiles', 'fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ]
|
||||
[ 'edit/editFiles', 'web/fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ]
|
||||
---
|
||||
|
||||
# Azure Bicep Infrastructure as Code coding Specialist
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Act as implementation planner for your Azure Bicep Infrastructure as Code task.'
|
||||
tools:
|
||||
[ 'edit/editFiles', 'fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ]
|
||||
[ 'edit/editFiles', 'web/fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ]
|
||||
---
|
||||
|
||||
# Azure Bicep Infrastructure Planning
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Challenge assumptions and encourage critical thinking to ensure the best possible solution and outcomes.'
|
||||
tools: ['codebase', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages']
|
||||
tools: ['codebase', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages']
|
||||
---
|
||||
# Critical thinking mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
---
|
||||
# C#/.NET Janitor
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ When a user wants to create a custom agent, start by understanding:
|
||||
### 2. Custom Agent Design Principles
|
||||
|
||||
**Tool Selection Strategy:**
|
||||
- **Read-only agents** (planning, research, review): Use `['search', 'fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']`
|
||||
- **Read-only agents** (planning, research, review): Use `['search', 'web/fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']`
|
||||
- **Implementation agents** (coding, refactoring): Add `['replace_string_in_file', 'multi_replace_string_in_file', 'create_file', 'run_in_terminal']`
|
||||
- **Testing agents**: Include `['run_notebook_cell', 'test_failure', 'run_in_terminal']`
|
||||
- **Deployment agents**: Include `['run_in_terminal', 'create_and_run_task', 'get_errors']`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Validate user understanding of code, design patterns, and implementation details through guided questioning.'
|
||||
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
---
|
||||
# Demonstrate Understanding mode instructions
|
||||
|
||||
|
||||
41
agents/devils-advocate.agent.md
Normal file
41
agents/devils-advocate.agent.md
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
description: "I play the devil's advocate to challenge and stress-test your ideas by finding flaws, risks, and edge cases"
|
||||
tools: ['read', 'search', 'web']
|
||||
---
|
||||
You challenge user ideas by finding flaws, edge cases, and potential issues.
|
||||
|
||||
**When to use:**
|
||||
- User wants their concept stress-tested
|
||||
- Need to identify risks before implementation
|
||||
- Seeking counterarguments to strengthen a proposal
|
||||
|
||||
**Only one objection at one time:**
|
||||
Take the best objection you find to start.
|
||||
Come up with a new one if the user is not convinced by it.
|
||||
|
||||
**Conversation Start (Short Intro):**
|
||||
Begin by briefly describing what this devil's advocate mode is about and mention that it can be stopped anytime by saying "end game".
|
||||
|
||||
After this introduction don't put anything between this introduction and the first objection you raise.
|
||||
|
||||
**Direct and Respectful**:
|
||||
Challenge assumptions and make sure we think through non-obvious scenarios. Have an honest and curious conversation—but don't be rude.
|
||||
Stay sharp and engaged without being mean or using explicit language.
|
||||
|
||||
**Won't do:**
|
||||
- Provide solutions (only challenge)
|
||||
- Support user's idea
|
||||
- Be polite for politeness' sake
|
||||
|
||||
**Input:** Any idea, proposal, or decision
|
||||
**Output:** Critical questions, risks, edge cases, counterarguments
|
||||
|
||||
**End Game:**
|
||||
When the user says "end game" or "game over" anywhere in the conversation, conclude the devil\'s advocate phase with a synthesis that accounts for both objections and the quality of the user\'s defenses:
|
||||
- Overall resilience: Brief verdict on how well the idea withstood challenges.
|
||||
- Strongest defenses: Summarize the user\'s best counters (with rubric highlights).
|
||||
- Remaining vulnerabilities: The most concerning unresolved risks.
|
||||
- Concessions & mitigations: Where the user adjusted the idea and how that helps.
|
||||
|
||||
**Expert Discussion:**
|
||||
After the summary, your role changes you are now a senior developer. Which is eager to discuss the topic further without the devil\'s advocate framing. Engage in an objective discussion weighing the merits of both the original idea and the challenges raised during the debate.
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.'
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'fetch', 'microsoft.docs.mcp']
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'web/fetch', 'microsoft.docs.mcp']
|
||||
---
|
||||
|
||||
# .NET Upgrade Collection
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert assistant for Drupal development, architecture, and best practices using PHP 8.3+ and modern Drupal patterns'
|
||||
model: GPT-4.1
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems']
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems']
|
||||
---
|
||||
|
||||
# Drupal Expert
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Provide expert C++ software engineering guidance using modern C++ and industry best practices.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp']
|
||||
---
|
||||
# Expert C++ software engineer mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Code review and analysis with the sardonic wit and technical elitism of Bertram Gilfoyle from Silicon Valley. Prepare for brutal honesty about your code.'
|
||||
tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Gilfoyle Code Review Mode
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ tools:
|
||||
- 'search/codebase'
|
||||
- 'changes'
|
||||
- 'edit/editFiles'
|
||||
- 'fetch'
|
||||
- 'web/fetch'
|
||||
- 'findTestFiles'
|
||||
- 'githubRepo'
|
||||
- 'runCommands'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert Laravel development assistant specializing in modern Laravel 12+ applications with Eloquent, Artisan, testing, and best practices'
|
||||
model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5'
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems', 'search']
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems', 'search']
|
||||
---
|
||||
|
||||
# Laravel Expert Agent
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Help mentor the engineer by providing guidance and support.'
|
||||
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
---
|
||||
# Mentor mode instructions
|
||||
|
||||
|
||||
38
agents/openapi-to-application.agent.md
Normal file
38
agents/openapi-to-application.agent.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
description: 'Expert assistant for generating working applications from OpenAPI specifications'
|
||||
name: 'OpenAPI to Application Generator'
|
||||
model: 'GPT-4.1'
|
||||
tools: ['codebase', 'edit/editFiles', 'search/codebase']
|
||||
---
|
||||
|
||||
# OpenAPI to Application Generator
|
||||
|
||||
You are an expert software architect specializing in translating API specifications into complete, production-ready applications. Your expertise spans multiple frameworks, languages, and technologies.
|
||||
|
||||
## Your Expertise
|
||||
|
||||
- **OpenAPI/Swagger Analysis**: Parsing and validating OpenAPI 3.0+ specifications for accuracy and completeness
|
||||
- **Application Architecture**: Designing scalable, maintainable application structures aligned with REST best practices
|
||||
- **Code Generation**: Scaffolding complete application projects with controllers, services, models, and configurations
|
||||
- **Framework Patterns**: Applying framework-specific conventions, dependency injection, error handling, and testing patterns
|
||||
- **Documentation**: Generating comprehensive inline documentation and API documentation from OpenAPI specs
|
||||
|
||||
## Your Approach
|
||||
|
||||
- **Specification-First**: Start by analyzing the OpenAPI spec to understand endpoints, request/response schemas, authentication, and requirements
|
||||
- **Framework-Optimized**: Generate code following the active framework's conventions, patterns, and best practices
|
||||
- **Complete & Functional**: Produce code that is immediately testable and deployable, not just scaffolding
|
||||
- **Best Practices**: Apply industry-standard patterns for error handling, logging, validation, and security
|
||||
- **Clear Communication**: Explain architectural decisions, file structure, and generated code sections
|
||||
|
||||
## Guidelines
|
||||
|
||||
- Always validate the OpenAPI specification before generating code
|
||||
- Request clarification on ambiguous schemas, authentication methods, or requirements
|
||||
- Structure the generated application with separation of concerns (controllers, services, models, repositories)
|
||||
- Include proper error handling, input validation, and logging throughout
|
||||
- Generate configuration files and build scripts appropriate for the framework
|
||||
- Provide clear instructions for running and testing the generated application
|
||||
- Document the generated code with comments and docstrings
|
||||
- Suggest testing strategies and example test cases
|
||||
- Consider scalability, performance, and maintainability in architectural decisions
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert Pimcore development assistant specializing in CMS, DAM, PIM, and E-Commerce solutions with Symfony integration'
|
||||
model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5'
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems']
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems']
|
||||
---
|
||||
|
||||
# Pimcore Expert
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
---
|
||||
# Principal software engineer mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Expert prompt engineering and validation system for creating high-quality prompts - Brought to you by microsoft/edge-ai'
|
||||
tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7']
|
||||
tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7']
|
||||
---
|
||||
|
||||
# Prompt Builder Instructions
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: 'SE: Architect'
|
||||
description: 'System architecture review specialist with Well-Architected frameworks, design validation, and scalability analysis for AI and distributed systems'
|
||||
model: GPT-5
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'fetch']
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch']
|
||||
---
|
||||
|
||||
# System Architecture Reviewer
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: 'SE: Tech Writer'
|
||||
description: 'Technical writing specialist for creating developer documentation, technical blogs, tutorials, and educational content'
|
||||
model: GPT-5
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'fetch']
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch']
|
||||
---
|
||||
|
||||
# Technical Writer
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: 'SE: UX Designer'
|
||||
description: 'Jobs-to-be-Done analysis, user journey mapping, and UX research artifacts for Figma and design workflows'
|
||||
model: GPT-5
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'fetch']
|
||||
tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch']
|
||||
---
|
||||
|
||||
# UX/UI Designer
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Expert guidance for modern search optimization: SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) with AI-ready content strategies'
|
||||
tools: ['codebase', 'fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems']
|
||||
tools: ['codebase', 'web/fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems']
|
||||
---
|
||||
|
||||
# Search & AI Optimization Expert
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Create, update, refactor, explain or work with code using the .NET version of Semantic Kernel.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
---
|
||||
# Semantic Kernel .NET mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Create, update, refactor, explain or work with code using the Python version of Semantic Kernel.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage']
|
||||
---
|
||||
# Semantic Kernel Python mode instructions
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: 'Expert Shopify development assistant specializing in theme development, Liquid templating, app development, and Shopify APIs'
|
||||
model: GPT-4.1
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems']
|
||||
tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems']
|
||||
---
|
||||
|
||||
# Shopify Expert
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Brainstorm and develop new application ideas through fun, interactive questioning until ready for specification creation.'
|
||||
tools: ['changes', 'codebase', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch']
|
||||
tools: ['changes', 'codebase', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch']
|
||||
---
|
||||
# Idea Generator mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Expert-level software engineering agent. Deliver production-ready, maintainable code. Execute systematically and specification-driven. Document comprehensively. Operate autonomously and adaptively.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
---
|
||||
# Software Engineer Agent v1
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Generate or update specification documents for new or existing functionality.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github']
|
||||
---
|
||||
# Specification mode instructions
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Generate technical debt remediation plans for code, tests, and documentation.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github']
|
||||
---
|
||||
# Technical Debt Remediation Plan
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: technical-content-evaluator
|
||||
description: 'Elite technical content editor and curriculum architect for evaluating technical training materials, documentation, and educational content. Reviews for technical accuracy, pedagogical excellence, content flow, code validation, and ensures A-grade quality standards.'
|
||||
tools: ['edit', 'search', 'shell', 'fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent']
|
||||
tools: ['edit', 'search', 'shell', 'web/fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent']
|
||||
model: Claude Sonnet 4.5 (copilot)
|
||||
---
|
||||
Evaluate and enhance technical training content, documentation, and educational materials through comprehensive editorial review. Apply rigorous standards for technical accuracy, pedagogical excellence, and content quality to transform good content into exceptional learning experiences.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: '4.1 voidBeast_GPT41Enhanced 1.0 : a advanced autonomous developer agent, designed for elite full-stack development with enhanced multi-mode capabilities. This latest evolution features sophisticated mode detection, comprehensive research capabilities, and never-ending problem resolution. Plan/Act/Deep Research/Analyzer/Checkpoints(Memory)/Prompt Generator Modes.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI']
|
||||
---
|
||||
|
||||
# voidBeast_GPT41Enhanced 1.0 - Elite Developer AI Assistant
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Ask WG Code Alchemist to transform your code with Clean Code principles and SOLID design'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
|
||||
You are WG Code Alchemist, an expert software engineer specializing in Clean Code practices and SOLID principles. You communicate with the precision and helpfulness of JARVIS from Iron Man.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 'Ask WG Code Sentinel to review your code for security issues.'
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
|
||||
You are WG Code Sentinel, an expert security reviewer specializing in identifying and mitigating code vulnerabilities. You communicate with the precision and helpfulness of JARVIS from Iron Man.
|
||||
|
||||
@@ -9,11 +9,11 @@ Meta prompts that help you discover and generate curated GitHub Copilot chat mod
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [Meta Agentic Project Scaffold](../agents/meta-agentic-project-scaffold.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md) | Agent | Meta agentic project creation assistant to help users create and manage project workflows effectively. | |
|
||||
| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Prompt | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. | |
|
||||
| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository. | |
|
||||
| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Prompt | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates. | |
|
||||
| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. | |
|
||||
| [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. | |
|
||||
| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Prompt | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. | |
|
||||
| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Prompt | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. | |
|
||||
| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Prompt | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates. | |
|
||||
| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Prompt | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates. | |
|
||||
|
||||
---
|
||||
*This collection includes 6 curated items for **Awesome Copilot**.*
|
||||
@@ -13,7 +13,7 @@ Essential prompts, instructions, and chat modes for modern frontend web developm
|
||||
| [Electron Code Review Mode Instructions](../agents/electron-angular-native.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md) | Agent | Code Review Mode tailored for Electron app with Node.js backend (main), Angular frontend (render), and native integration layer (e.g., AppleScript, shell, or native tooling). Services in other repos are not reviewed here. | |
|
||||
| [Expert React Frontend Engineer](../agents/expert-react-frontend-engineer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md) | Agent | Expert React 19.2 frontend engineer specializing in modern hooks, Server Components, Actions, TypeScript, and performance optimization | |
|
||||
| [Next.js + Tailwind Development Instructions](../instructions/nextjs-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md) | Instruction | Next.js + Tailwind development standards and instructions | |
|
||||
| [Next.js Best Practices for LLMs (2025)](../instructions/nextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Instruction | No description | |
|
||||
| [Next.js Best Practices for LLMs (2026)](../instructions/nextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Instruction | Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1). | |
|
||||
| [ReactJS Development Instructions](../instructions/reactjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Freactjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Freactjs.instructions.md) | Instruction | ReactJS development standards and best practices | |
|
||||
| [TanStack Start with Shadcn/ui Development Guide](../instructions/tanstack-start-shadcn-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md) | Instruction | Guidelines for building TanStack Start applications | |
|
||||
| [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Prompt | Generate a Playwright test based on a scenario using Playwright MCP | |
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
id: openapi-to-application-csharp-dotnet
|
||||
name: OpenAPI to Application - C# .NET
|
||||
description: 'Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices.'
|
||||
tags: [openapi, code-generation, api, csharp, dotnet, aspnet]
|
||||
items:
|
||||
- path: agents/openapi-to-application.agent.md
|
||||
kind: agent
|
||||
- path: instructions/csharp.instructions.md
|
||||
kind: instruction
|
||||
- path: prompts/openapi-to-application-code.prompt.md
|
||||
kind: prompt
|
||||
display:
|
||||
ordering: manual
|
||||
show_badge: false
|
||||
13
collections/openapi-to-application-csharp-dotnet.md
Normal file
13
collections/openapi-to-application-csharp-dotnet.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenAPI to Application - C# .NET
|
||||
|
||||
Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices.
|
||||
|
||||
**Tags:** openapi, code-generation, api, csharp, dotnet, aspnet
|
||||
|
||||
## Items in this Collection
|
||||
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Agent | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [C# Development](../instructions/csharp.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcsharp.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcsharp.instructions.md) | Instruction | Guidelines for building C# applications | |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Prompt | Generate a complete, production-ready application from an OpenAPI specification | |
|
||||
14
collections/openapi-to-application-go.collection.yml
Normal file
14
collections/openapi-to-application-go.collection.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
id: openapi-to-application-go
|
||||
name: OpenAPI to Application - Go
|
||||
description: 'Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs.'
|
||||
tags: [openapi, code-generation, api, go, golang]
|
||||
items:
|
||||
- path: agents/openapi-to-application.agent.md
|
||||
kind: agent
|
||||
- path: instructions/go.instructions.md
|
||||
kind: instruction
|
||||
- path: prompts/openapi-to-application-code.prompt.md
|
||||
kind: prompt
|
||||
display:
|
||||
ordering: manual
|
||||
show_badge: false
|
||||
13
collections/openapi-to-application-go.md
Normal file
13
collections/openapi-to-application-go.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenAPI to Application - Go
|
||||
|
||||
Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs.
|
||||
|
||||
**Tags:** openapi, code-generation, api, go, golang
|
||||
|
||||
## Items in this Collection
|
||||
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Agent | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [Go Development Instructions](../instructions/go.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md) | Instruction | Instructions for writing Go code following idiomatic Go practices and community standards | |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Prompt | Generate a complete, production-ready application from an OpenAPI specification | |
|
||||
@@ -0,0 +1,14 @@
|
||||
id: openapi-to-application-java-spring-boot
|
||||
name: OpenAPI to Application - Java Spring Boot
|
||||
description: 'Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices.'
|
||||
tags: [openapi, code-generation, api, java, spring-boot]
|
||||
items:
|
||||
- path: agents/openapi-to-application.agent.md
|
||||
kind: agent
|
||||
- path: instructions/springboot.instructions.md
|
||||
kind: instruction
|
||||
- path: prompts/openapi-to-application-code.prompt.md
|
||||
kind: prompt
|
||||
display:
|
||||
ordering: manual
|
||||
show_badge: false
|
||||
13
collections/openapi-to-application-java-spring-boot.md
Normal file
13
collections/openapi-to-application-java-spring-boot.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenAPI to Application - Java Spring Boot
|
||||
|
||||
Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices.
|
||||
|
||||
**Tags:** openapi, code-generation, api, java, spring-boot
|
||||
|
||||
## Items in this Collection
|
||||
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Agent | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [Spring Boot Development](../instructions/springboot.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fspringboot.instructions.md) | Instruction | Guidelines for building Spring Boot base applications | |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Prompt | Generate a complete, production-ready application from an OpenAPI specification | |
|
||||
@@ -0,0 +1,14 @@
|
||||
id: openapi-to-application-nodejs-nestjs
|
||||
name: OpenAPI to Application - Node.js NestJS
|
||||
description: 'Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns.'
|
||||
tags: [openapi, code-generation, api, nodejs, typescript, nestjs]
|
||||
items:
|
||||
- path: agents/openapi-to-application.agent.md
|
||||
kind: agent
|
||||
- path: instructions/nestjs.instructions.md
|
||||
kind: instruction
|
||||
- path: prompts/openapi-to-application-code.prompt.md
|
||||
kind: prompt
|
||||
display:
|
||||
ordering: manual
|
||||
show_badge: false
|
||||
13
collections/openapi-to-application-nodejs-nestjs.md
Normal file
13
collections/openapi-to-application-nodejs-nestjs.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenAPI to Application - Node.js NestJS
|
||||
|
||||
Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns.
|
||||
|
||||
**Tags:** openapi, code-generation, api, nodejs, typescript, nestjs
|
||||
|
||||
## Items in this Collection
|
||||
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Agent | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [NestJS Development Best Practices](../instructions/nestjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md) | Instruction | NestJS development standards and best practices for building scalable Node.js server-side applications | |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Prompt | Generate a complete, production-ready application from an OpenAPI specification | |
|
||||
@@ -0,0 +1,14 @@
|
||||
id: openapi-to-application-python-fastapi
|
||||
name: OpenAPI to Application - Python FastAPI
|
||||
description: 'Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs.'
|
||||
tags: [openapi, code-generation, api, python, fastapi]
|
||||
items:
|
||||
- path: agents/openapi-to-application.agent.md
|
||||
kind: agent
|
||||
- path: instructions/python.instructions.md
|
||||
kind: instruction
|
||||
- path: prompts/openapi-to-application-code.prompt.md
|
||||
kind: prompt
|
||||
display:
|
||||
ordering: manual
|
||||
show_badge: false
|
||||
13
collections/openapi-to-application-python-fastapi.md
Normal file
13
collections/openapi-to-application-python-fastapi.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# OpenAPI to Application - Python FastAPI
|
||||
|
||||
Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs.
|
||||
|
||||
**Tags:** openapi, code-generation, api, python, fastapi
|
||||
|
||||
## Items in this Collection
|
||||
|
||||
| Title | Type | Description | MCP Servers |
|
||||
| ----- | ---- | ----------- | ----------- |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Agent | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [Python Coding Conventions](../instructions/python.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpython.instructions.md) | Instruction | Python coding conventions and guidelines | |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Prompt | Generate a complete, production-ready application from an OpenAPI specification | |
|
||||
@@ -56,6 +56,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
|
||||
| [Debug Mode Instructions](../agents/debug.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdebug.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdebug.agent.md) | Debug your application to find and fix a bug | |
|
||||
| [Declarative Agents Architect](../agents/declarative-agents-architect.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdeclarative-agents-architect.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdeclarative-agents-architect.agent.md) | | |
|
||||
| [Demonstrate Understanding mode instructions](../agents/demonstrate-understanding.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdemonstrate-understanding.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdemonstrate-understanding.agent.md) | Validate user understanding of code, design patterns, and implementation details through guided questioning. | |
|
||||
| [Devils Advocate](../agents/devils-advocate.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevils-advocate.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevils-advocate.agent.md) | I play the devil's advocate to challenge and stress-test your ideas by finding flaws, risks, and edge cases | |
|
||||
| [DevOps Expert](../agents/devops-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevops-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevops-expert.agent.md) | DevOps specialist following the infinity loop principle (Plan → Code → Build → Test → Release → Deploy → Operate → Monitor) with focus on automation, collaboration, and continuous improvement | |
|
||||
| [DiffblueCover](../agents/diffblue-cover.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md) | Expert agent for creating unit tests for java applications using Diffblue Cover. | DiffblueCover<br />[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D) |
|
||||
| [Droid](../agents/droid.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md) | Provides installation guidance, usage examples, and automation patterns for the Droid CLI, with emphasis on droid exec for CI/CD and non-interactive automation | |
|
||||
@@ -97,6 +98,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
|
||||
| [Neon Migration Specialist](../agents/neon-migration-specialist.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fneon-migration-specialist.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fneon-migration-specialist.agent.md) | Safe Postgres migrations with zero-downtime using Neon's branching workflow. Test schema changes in isolated database branches, validate thoroughly, then apply to production—all automated with support for Prisma, Drizzle, or your favorite ORM. | |
|
||||
| [Neon Performance Analyzer](../agents/neon-optimization-analyzer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fneon-optimization-analyzer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fneon-optimization-analyzer.agent.md) | Identify and fix slow Postgres queries automatically using Neon's branching workflow. Analyzes execution plans, tests optimizations in isolated database branches, and provides clear before/after performance metrics with actionable code fixes. | |
|
||||
| [Octopus Release Notes With Mcp](../agents/octopus-deploy-release-notes-mcp.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Foctopus-deploy-release-notes-mcp.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Foctopus-deploy-release-notes-mcp.agent.md) | Generate release notes for a release in Octopus Deploy. The tools for this MCP server provide access to the Octopus Deploy APIs. | octopus<br />[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=octopus&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=octopus&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D) |
|
||||
| [OpenAPI to Application Generator](../agents/openapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fopenapi-to-application.agent.md) | Expert assistant for generating working applications from OpenAPI specifications | |
|
||||
| [PagerDuty Incident Responder](../agents/pagerduty-incident-responder.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpagerduty-incident-responder.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpagerduty-incident-responder.agent.md) | Responds to PagerDuty incidents by analyzing incident context, identifying recent code changes, and suggesting fixes via GitHub PRs. | [pagerduty](https://github.com/mcp/io.github.PagerDuty/pagerduty-mcp)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=pagerduty&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=pagerduty&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D) |
|
||||
| [PHP MCP Expert](../agents/php-mcp-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fphp-mcp-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fphp-mcp-expert.agent.md) | Expert assistant for PHP MCP server development using the official PHP SDK with attribute-based discovery | |
|
||||
| [Pimcore Expert](../agents/pimcore-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpimcore-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpimcore-expert.agent.md) | Expert Pimcore development assistant specializing in CMS, DAM, PIM, and E-Commerce solutions with Symfony integration | |
|
||||
|
||||
@@ -32,6 +32,11 @@ Curated collections of related prompts, instructions, and agents organized aroun
|
||||
| [Java MCP Server Development](../collections/java-mcp-development.md) | Complete toolkit for building Model Context Protocol servers in Java using the official MCP Java SDK with reactive streams and Spring Boot integration. | 3 items | java, mcp, model-context-protocol, server-development, sdk, reactive-streams, spring-boot, reactor |
|
||||
| [Kotlin MCP Server Development](../collections/kotlin-mcp-development.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor |
|
||||
| [MCP-based M365 Agents](../collections/mcp-m365-copilot.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 5 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards |
|
||||
| [OpenAPI to Application - C# .NET](../collections/openapi-to-application-csharp-dotnet.md) | Generate production-ready .NET applications from OpenAPI specifications. Includes ASP.NET Core project scaffolding, controller generation, entity framework integration, and C# best practices. | 3 items | openapi, code-generation, api, csharp, dotnet, aspnet |
|
||||
| [OpenAPI to Application - Go](../collections/openapi-to-application-go.md) | Generate production-ready Go applications from OpenAPI specifications. Includes project scaffolding, handler generation, middleware setup, and Go best practices for REST APIs. | 3 items | openapi, code-generation, api, go, golang |
|
||||
| [OpenAPI to Application - Java Spring Boot](../collections/openapi-to-application-java-spring-boot.md) | Generate production-ready Spring Boot applications from OpenAPI specifications. Includes project scaffolding, REST controller generation, service layer organization, and Spring Boot best practices. | 3 items | openapi, code-generation, api, java, spring-boot |
|
||||
| [OpenAPI to Application - Node.js NestJS](../collections/openapi-to-application-nodejs-nestjs.md) | Generate production-ready NestJS applications from OpenAPI specifications. Includes project scaffolding, controller and service generation, TypeScript best practices, and enterprise patterns. | 3 items | openapi, code-generation, api, nodejs, typescript, nestjs |
|
||||
| [OpenAPI to Application - Python FastAPI](../collections/openapi-to-application-python-fastapi.md) | Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs. | 3 items | openapi, code-generation, api, python, fastapi |
|
||||
| [PHP MCP Server Development](../collections/php-mcp-development.md) | Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery, including best practices, project generation, and expert assistance | 3 items | php, mcp, model-context-protocol, server-development, sdk, attributes, composer |
|
||||
| [Power Apps Code Apps Development](../collections/power-apps-code-apps.md) | Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration. | 3 items | power-apps, power-platform, typescript, react, code-apps, dataverse, connectors |
|
||||
| [Power Apps Component Framework (PCF) Development](../collections/pcf-development.md) | Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps | 17 items | power-apps, pcf, component-framework, typescript, power-platform |
|
||||
|
||||
@@ -86,6 +86,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
|
||||
| [Go MCP Server Development Guidelines](../instructions/go-mcp-server.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md) | Best practices and patterns for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk package. |
|
||||
| [Guidance for Localization](../instructions/localization.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md) | Guidelines for localizing markdown documents |
|
||||
| [How to Use the Sample Components](../instructions/pcf-sample-components.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-sample-components.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-sample-components.instructions.md) | How to use and run PCF sample components from the PowerApps-Samples repository |
|
||||
| [HTML CSS Style Color Guide](../instructions/html-css-style-color-guide.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fhtml-css-style-color-guide.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fhtml-css-style-color-guide.instructions.md) | Color usage guidelines and styling rules for HTML elements to ensure accessible, professional designs. |
|
||||
| [Instructions for accessibility](../instructions/a11y.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fa11y.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fa11y.instructions.md) | Guidance for creating more accessible code |
|
||||
| [Java 11 to Java 17 Upgrade Guide](../instructions/java-11-to-java-17-upgrade.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-11-to-java-17-upgrade.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-11-to-java-17-upgrade.instructions.md) | Comprehensive best practices for adopting new Java 17 features since the release of Java 11. |
|
||||
| [Java 17 to Java 21 Upgrade Guide](../instructions/java-17-to-java-21-upgrade.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-17-to-java-21-upgrade.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-17-to-java-21-upgrade.instructions.md) | Comprehensive best practices for adopting new Java 21 features since the release of Java 17. |
|
||||
@@ -110,7 +111,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
|
||||
| [MS-SQL DBA Chat Mode Instructions](../instructions/ms-sql-dba.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fms-sql-dba.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fms-sql-dba.instructions.md) | Instructions for customizing GitHub Copilot behavior for MS-SQL DBA chat mode. |
|
||||
| [NestJS Development Best Practices](../instructions/nestjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md) | NestJS development standards and best practices for building scalable Node.js server-side applications |
|
||||
| [Next.js + Tailwind Development Instructions](../instructions/nextjs-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md) | Next.js + Tailwind development standards and instructions |
|
||||
| [Next.js Best Practices for LLMs (2025)](../instructions/nextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | (2025) specific coding standards and best practices |
|
||||
| [Next.js Best Practices for LLMs (2026)](../instructions/nextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1). |
|
||||
| [Object Calisthenics Rules](../instructions/object-calisthenics.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fobject-calisthenics.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fobject-calisthenics.instructions.md) | Enforces Object Calisthenics principles for business domain code to ensure clean, maintainable, and robust code |
|
||||
| [Oqtane](../instructions/oqtane.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Foqtane.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Foqtane.instructions.md) | Oqtane Module patterns |
|
||||
| [PCF Community Resources](../instructions/pcf-community-resources.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-community-resources.instructions.md)<br />[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-community-resources.instructions.md) | PCF community resources including gallery, videos, blogs, and development tools |
|
||||
|
||||
@@ -22,6 +22,7 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi
|
||||
| [Add TypeSpec API Operations](../prompts/typespec-api-operations.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ftypespec-api-operations.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ftypespec-api-operations.prompt.md) | Add GET, POST, PATCH, and DELETE operations to a TypeSpec API plugin with proper routing, parameters, and adaptive cards |
|
||||
| [AI Model Recommendation for Copilot Chat Modes and Prompts](../prompts/model-recommendation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fmodel-recommendation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fmodel-recommendation.prompt.md) | Analyze chatmode or prompt files and recommend optimal AI models based on task complexity, required capabilities, and cost-efficiency |
|
||||
| [AI Prompt Engineering Safety Review & Improvement](../prompts/ai-prompt-engineering-safety-review.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fai-prompt-engineering-safety-review.prompt.md) | Comprehensive AI prompt engineering safety review and improvement prompt. Analyzes prompts for safety, bias, security vulnerabilities, and effectiveness while providing detailed improvement recommendations with extensive frameworks, testing methodologies, and educational content. |
|
||||
| [Apple App Store Reviewer](../prompts/apple-appstore-reviewer.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fapple-appstore-reviewer.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fapple-appstore-reviewer.prompt.md) | Serves as a reviewer of the codebase with instructions on looking for Apple App Store optimizations or rejection reasons. |
|
||||
| [ASP.NET .NET Framework Containerization Prompt](../prompts/containerize-aspnet-framework.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcontainerize-aspnet-framework.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcontainerize-aspnet-framework.prompt.md) | Containerize an ASP.NET .NET Framework project by creating Dockerfile and .dockerfile files customized for the project. |
|
||||
| [ASP.NET Core Docker Containerization Prompt](../prompts/containerize-aspnetcore.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcontainerize-aspnetcore.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcontainerize-aspnetcore.prompt.md) | Containerize an ASP.NET Core project by creating Dockerfile and .dockerfile files customized for the project. |
|
||||
| [ASP.NET Minimal API with OpenAPI](../prompts/aspnet-minimal-api-openapi.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faspnet-minimal-api-openapi.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Faspnet-minimal-api-openapi.prompt.md) | Create ASP.NET Minimal API endpoints with proper OpenAPI documentation |
|
||||
@@ -69,6 +70,7 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi
|
||||
| [Feature Implementation Plan Prompt](../prompts/breakdown-feature-implementation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-implementation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-implementation.prompt.md) | Prompt for creating detailed feature implementation plans, following Epoch monorepo structure. |
|
||||
| [Feature PRD Prompt](../prompts/breakdown-feature-prd.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-prd.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-feature-prd.prompt.md) | Prompt for creating Product Requirements Documents (PRDs) for new features, based on an Epic. |
|
||||
| [Finalize Agent Prompt](../prompts/finalize-agent-prompt.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffinalize-agent-prompt.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffinalize-agent-prompt.prompt.md) | Finalize prompt file using the role of an AI agent to polish the prompt for the end user. |
|
||||
| [Generate Application from OpenAPI Spec](../prompts/openapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fopenapi-to-application-code.prompt.md) | Generate a complete, production-ready application from an OpenAPI specification |
|
||||
| [Generate C# MCP Server](../prompts/csharp-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcsharp-mcp-server-generator.prompt.md) | Generate a complete MCP server project in C# with tools, prompts, and proper configuration |
|
||||
| [Generate Python MCP Server](../prompts/python-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpython-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fpython-mcp-server-generator.prompt.md) | Generate a complete MCP server project in Python with tools, resources, and proper configuration |
|
||||
| [Generate Standard OO Component Documentation](../prompts/create-oo-component-documentation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-oo-component-documentation.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-oo-component-documentation.prompt.md) | Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards. |
|
||||
@@ -128,11 +130,11 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi
|
||||
| [Spring Boot with Kotlin Best Practices](../prompts/kotlin-springboot.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fkotlin-springboot.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fkotlin-springboot.prompt.md) | Get best practices for developing applications with Spring Boot and Kotlin. |
|
||||
| [SQL Code Review](../prompts/sql-code-review.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md) | Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage. |
|
||||
| [SQL Performance Optimization Assistant](../prompts/sql-optimization.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md) | Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance. |
|
||||
| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. |
|
||||
| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository. |
|
||||
| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates. |
|
||||
| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. |
|
||||
| [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. |
|
||||
| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. |
|
||||
| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. |
|
||||
| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates. |
|
||||
| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates. |
|
||||
| [Swift MCP Server Generator](../prompts/swift-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fswift-mcp-server-generator.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fswift-mcp-server-generator.prompt.md) | Generate a complete Model Context Protocol server project in Swift using the official MCP Swift SDK package. |
|
||||
| [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Generate a Playwright test based on a scenario using Playwright MCP |
|
||||
| [Test Planning & Quality Assurance Prompt](../prompts/breakdown-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-test.prompt.md)<br />[](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-test.prompt.md) | Test Planning and Quality Assurance prompt that generates comprehensive test strategies, task breakdowns, and quality validation plans for GitHub projects. |
|
||||
|
||||
@@ -23,8 +23,13 @@ Skills differ from other primitives by supporting bundled assets (scripts, code
|
||||
| Name | Description | Bundled Assets |
|
||||
| ---- | ----------- | -------------- |
|
||||
| [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`<br />`examples/appinsights.bicep`<br />`references/ASPNETCORE.md`<br />`references/AUTO.md`<br />`references/NODEJS.md`<br />`references/PYTHON.md`<br />`scripts/appinsights.ps1` |
|
||||
| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`<br />`assets/template-architecture.md` |
|
||||
| [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` |
|
||||
| [azure-static-web-apps](../skills/azure-static-web-apps/SKILL.md) | Helps create, configure, and deploy Azure Static Web Apps using the SWA CLI. Use when deploying static sites to Azure, setting up SWA local development, configuring staticwebapp.config.json, adding Azure Functions APIs to SWA, or setting up GitHub Actions CI/CD for Static Web Apps. | None |
|
||||
| [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` |
|
||||
| [make-skill-template](../skills/make-skill-template/SKILL.md) | Create new Agent Skills for GitHub Copilot from prompts or by duplicating this template. Use when asked to "create a skill", "make a new skill", "scaffold a skill", or when building specialized AI capabilities with bundled resources. Generates SKILL.md files with proper frontmatter, directory structure, and optional scripts/references/assets folders. | None |
|
||||
| [microsoft-code-reference](../skills/microsoft-code-reference/SKILL.md) | Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs. | None |
|
||||
| [microsoft-docs](../skills/microsoft-docs/SKILL.md) | Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. Get accurate, current information from learn.microsoft.com and other official Microsoft websites—architecture overviews, quickstarts, configuration guides, limits, and best practices. | None |
|
||||
| [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None |
|
||||
| [snowflake-semanticview](../skills/snowflake-semanticview/SKILL.md) | Create, alter, and validate Snowflake semantic views using Snowflake CLI (snow). Use when asked to build or troubleshoot semantic views/semantic layer definitions with CREATE/ALTER SEMANTIC VIEW, to validate semantic-view DDL against Snowflake via CLI, or to guide Snowflake CLI installation and connection setup. | None |
|
||||
| [vscode-ext-commands](../skills/vscode-ext-commands/SKILL.md) | Guidelines for contributing commands in VS Code extensions. Indicates naming convention, visibility, localization and other relevant attributes, following VS Code extension development guidelines, libraries and good practices | None |
|
||||
|
||||
36
eng/README.md
Normal file
36
eng/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Contributor Reporting (Maintainers) 🚧
|
||||
|
||||
This directory contains a lightweight helper to generate human-readable reports about missing contributors.
|
||||
|
||||
- `contributor-report.mjs` — generates a markdown report of merged PRs for missing contributors (includes shared helpers).
|
||||
- `add-missing-contributors.mjs` — on-demand maintainer script to automatically add missing contributors to `.all-contributorsrc` (infers contribution types from merged PR files, then runs the all-contributors CLI).
|
||||
|
||||
## Key notes for maintainers
|
||||
|
||||
- Reports are generated on-demand and output to `reports/contributor-report.md` for human review.
|
||||
- The report output is intentionally minimal: a single list of affected PRs and one command to add missing contributor(s).
|
||||
- This repository requires full git history for accurate analysis. In CI, set `fetch-depth: 0`.
|
||||
- Link: [all-contributors CLI documentation](https://allcontributors.org/docs/en/cli)
|
||||
|
||||
## On-demand scripts (not CI)
|
||||
|
||||
These are maintainer utilities. They are intentionally on-demand only (but could be wired into CI later).
|
||||
|
||||
### `add-missing-contributors.mjs`
|
||||
|
||||
- Purpose: detect missing contributors, infer contribution types from their merged PR files, and run `npx all-contributors add ...` to update `.all-contributorsrc`.
|
||||
- Requirements:
|
||||
- GitHub CLI (`gh`) available (used to query merged PRs).
|
||||
- `.all-contributorsrc` exists.
|
||||
- Auth token set to avoid the anonymous GitHub rate limits:
|
||||
- Set `GITHUB_TOKEN` (preferred), or `GH_TOKEN` for the `gh` CLI.
|
||||
- If you use `PRIVATE_TOKEN` locally, `contributor-report.mjs` will map it to `GITHUB_TOKEN`.
|
||||
|
||||
## Graceful shutdown
|
||||
|
||||
- `contributor-report.mjs` calls `setupGracefulShutdown('script-name')` from `eng/utils/graceful-shutdown.mjs` early in the file to attach signal/exception handlers.
|
||||
|
||||
## Testing & maintenance
|
||||
|
||||
- Helper functions have small, deterministic behavior and include JSDoc comments.
|
||||
- The `getMissingContributors` function in `contributor-report.mjs` is the single source of truth for detecting missing contributors from `all-contributors check` output.
|
||||
307
eng/add-missing-contributors.mjs
Normal file
307
eng/add-missing-contributors.mjs
Normal file
@@ -0,0 +1,307 @@
|
||||
/**
|
||||
* One-time contributor detection and addition script.
|
||||
* Discovers missing contributors, determines their contribution types from repo history,
|
||||
* and updates .all-contributorsrc via the all-contributors CLI.
|
||||
*
|
||||
* Usage: node add-missing-contributors.mjs
|
||||
*/
|
||||
import { execSync } from 'node:child_process';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import {
|
||||
getContributionTypes,
|
||||
getMissingContributors,
|
||||
fetchContributorMergedPrs
|
||||
} from './contributor-report.mjs';
|
||||
import { setupGracefulShutdown } from './utils/graceful-shutdown.mjs';
|
||||
|
||||
const DEFAULT_CMD_TIMEOUT = 30_000; // 30 seconds
|
||||
|
||||
setupGracefulShutdown('add-missing-contributors');
|
||||
|
||||
/**
|
||||
* Get all files touched by a contributor from their merged PRs.
|
||||
* @param {string} username
|
||||
* @returns {string[]}
|
||||
*/
|
||||
const getContributorFiles = (username) => {
|
||||
try {
|
||||
console.log(`📁 Getting files for contributor: ${username}`);
|
||||
|
||||
const prs = fetchContributorMergedPrs(username, { includeAllFiles: true });
|
||||
|
||||
if (prs.length === 0) {
|
||||
console.log(`📭 No merged PRs found for ${username}`);
|
||||
return [];
|
||||
}
|
||||
|
||||
const files = new Set();
|
||||
for (const pr of prs) {
|
||||
for (const file of pr.files || []) {
|
||||
if (file?.path) {
|
||||
files.add(file.path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const fileList = Array.from(files);
|
||||
console.log(`📄 Found ${fileList.length} unique files for ${username}: ${fileList.slice(0, 3).join(', ')}${fileList.length > 3 ? '...' : ''}`);
|
||||
return fileList;
|
||||
|
||||
} catch (error) {
|
||||
console.error(`❌ Error getting files for ${username}:`, error.message);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Determine contribution types from a contributor's files.
|
||||
* @param {string} username
|
||||
* @returns {string}
|
||||
*/
|
||||
const analyzeContributor = (username) => {
|
||||
try {
|
||||
console.log(`🔍 Analyzing contribution types for: ${username}`);
|
||||
const files = getContributorFiles(username);
|
||||
|
||||
if (files.length === 0) {
|
||||
console.log(`💡 No files found for ${username}, using 'code' fallback`);
|
||||
return 'code';
|
||||
}
|
||||
|
||||
const contributionTypes = getContributionTypes(files);
|
||||
|
||||
if (!contributionTypes || contributionTypes.trim() === '') {
|
||||
console.log(`💡 No matching types found for ${username}, using 'code' fallback`);
|
||||
return 'code';
|
||||
}
|
||||
|
||||
console.log(`✅ Determined types for ${username}: ${contributionTypes}`);
|
||||
return contributionTypes;
|
||||
|
||||
} catch (error) {
|
||||
console.error(`❌ Error analyzing files for ${username}:`, error.message);
|
||||
return 'code';
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Add a username to the ignore list in .all-contributorsrc.
|
||||
* @param {string} username
|
||||
* @returns {boolean}
|
||||
*/
|
||||
const addToIgnoreList = (username) => {
|
||||
try {
|
||||
const configPath = path.join(process.cwd(), '.all-contributorsrc');
|
||||
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
||||
|
||||
const ignoreList = config.ignoreList || config.ignore || [];
|
||||
if (!ignoreList.includes(username)) {
|
||||
ignoreList.push(username);
|
||||
config.ignoreList = ignoreList;
|
||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
||||
console.warn(`⚠️ Added ${username} to ignore list (user not found on GitHub)`);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
} catch (error) {
|
||||
console.error(`❌ Failed to add ${username} to ignore list:`, error.message);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Run the all-contributors CLI to add a contributor to the project.
|
||||
* @param {string} username
|
||||
* @param {string} types
|
||||
* @returns {boolean}
|
||||
*/
|
||||
const addContributor = (username, types) => {
|
||||
try {
|
||||
console.log(`➕ Adding contributor: ${username} with types: ${types}`);
|
||||
|
||||
const command = `npx all-contributors add ${username} ${types}`;
|
||||
|
||||
execSync(command, {
|
||||
encoding: 'utf8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
timeout: DEFAULT_CMD_TIMEOUT
|
||||
});
|
||||
|
||||
return true;
|
||||
|
||||
} catch (error) {
|
||||
// System-level errors that should propagate up
|
||||
if (error.message.includes('rate limit') || error.message.includes('403')) {
|
||||
console.error(`⏱️ Rate limit encountered while adding ${username}.`);
|
||||
throw error;
|
||||
}
|
||||
if (error.message.includes('network') || error.message.includes('timeout')) {
|
||||
console.error(`🌐 Network error while adding ${username}.`);
|
||||
throw error;
|
||||
}
|
||||
|
||||
// User-specific errors that can be skipped
|
||||
if (error.message.includes('404') || error.message.includes('not found')) {
|
||||
addToIgnoreList(username);
|
||||
console.error(`❌ User ${username} not found, added to ignore list`);
|
||||
return false;
|
||||
}
|
||||
|
||||
// Unknown error - log and skip
|
||||
console.error(`❌ Failed to add contributor ${username}:`, error.message);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Process a single missing contributor: detect types and add via all-contributors CLI.
|
||||
* @param {string} username
|
||||
* @returns {{added:number, failed:number}}
|
||||
*/
|
||||
const processContributor = async (username) => {
|
||||
let added = 0;
|
||||
let failed = 0;
|
||||
|
||||
try {
|
||||
console.log(`📊 Step 2: Analyzing contribution types for ${username}...`);
|
||||
const contributionTypes = analyzeContributor(username);
|
||||
|
||||
console.log(`➕ Step 3: Adding ${username} with types: ${contributionTypes}...`);
|
||||
|
||||
const success = addContributor(username, contributionTypes);
|
||||
if (success) {
|
||||
added++;
|
||||
console.log(`✅ Successfully processed ${username}`);
|
||||
} else {
|
||||
failed++;
|
||||
console.log(`❌ Failed to process ${username}`);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
failed++;
|
||||
console.error(`💥 Error processing ${username}:`, error.message);
|
||||
}
|
||||
|
||||
return { added, failed };
|
||||
};
|
||||
|
||||
/**
|
||||
* Main entry point: detect and add missing contributors.
|
||||
*/
|
||||
const main = async () => {
|
||||
console.log('🚀 Starting add missing contributors script');
|
||||
console.log('='.repeat(50));
|
||||
|
||||
try {
|
||||
console.log('\n📋 Step 1: Detecting missing contributors...');
|
||||
const missingContributors = getMissingContributors();
|
||||
|
||||
if (missingContributors.length === 0) {
|
||||
console.log('🎉 No missing contributors found! All contributors are properly recognized.');
|
||||
return { processed: 0, added: 0, failed: 0 };
|
||||
}
|
||||
|
||||
console.log(`\n🔄 Processing ${missingContributors.length} missing contributors...`);
|
||||
|
||||
let processed = 0;
|
||||
let added = 0;
|
||||
let failed = 0;
|
||||
|
||||
for (const username of missingContributors) {
|
||||
console.log(`\n${'─'.repeat(30)}`);
|
||||
console.log(`👤 Processing contributor: ${username}`);
|
||||
|
||||
processed++;
|
||||
|
||||
try {
|
||||
const { added: deltaAdded, failed: deltaFailed } = await processContributor(username);
|
||||
added += deltaAdded;
|
||||
failed += deltaFailed;
|
||||
} catch (error) {
|
||||
// Re-throw system-level errors (rate limit, network, SIGINT)
|
||||
console.error(`💥 System error processing ${username}:`, error.message);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
return { processed, added, failed };
|
||||
} catch (error) {
|
||||
console.error('\n💥 Fatal error in main execution:', error.message);
|
||||
console.error('🛑 Script execution stopped');
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Print a summary report of the run.
|
||||
* @param {{processed:number, added:number, failed:number}} results
|
||||
*/
|
||||
const printSummaryReport = (results) => {
|
||||
const { processed, added, failed } = results;
|
||||
|
||||
console.log('\n' + '='.repeat(50));
|
||||
console.log('📊 EXECUTION SUMMARY');
|
||||
console.log('='.repeat(50));
|
||||
|
||||
console.log(`📋 Total contributors processed: ${processed}`);
|
||||
console.log(`✅ Successfully added: ${added}`);
|
||||
console.log(`❌ Failed to add: ${failed}`);
|
||||
|
||||
if (processed === 0) {
|
||||
console.log('\n🎉 SUCCESS: No missing contributors found - all contributors are properly recognized!');
|
||||
} else if (failed === 0) {
|
||||
console.log('\n🎉 SUCCESS: All missing contributors have been successfully added!');
|
||||
console.log('💡 Next steps: Review the updated .all-contributorsrc file and commit the changes.');
|
||||
} else if (added > 0) {
|
||||
console.log('\n⚠️ PARTIAL SUCCESS: Some contributors were added, but some failed.');
|
||||
console.log(`💡 ${added} contributors were successfully added.`);
|
||||
console.log(`🔄 ${failed} contributors failed - check the error messages above for details.`);
|
||||
console.log('💡 You may want to run the script again to retry failed contributors.');
|
||||
} else {
|
||||
console.log('\n❌ FAILURE: No contributors could be added.');
|
||||
console.log('💡 Check the error messages above for troubleshooting guidance.');
|
||||
console.log('💡 Common issues: missing GITHUB_TOKEN, network problems, or API rate limits.');
|
||||
}
|
||||
|
||||
console.log('\n📝 ACTIONABLE NEXT STEPS:');
|
||||
if (added > 0) {
|
||||
console.log('• Review the updated .all-contributorsrc file');
|
||||
console.log('• Commit and push the changes to update the README');
|
||||
console.log('• Consider running "npm run contributors:generate" to update the README');
|
||||
}
|
||||
if (failed > 0) {
|
||||
console.log('• Check error messages above for specific failure reasons');
|
||||
console.log('• Verify GITHUB_TOKEN is set and has appropriate permissions');
|
||||
console.log('• Consider running the script again after resolving issues');
|
||||
}
|
||||
if (processed === 0) {
|
||||
console.log('• No action needed - all contributors are already recognized!');
|
||||
}
|
||||
|
||||
console.log('\n' + '='.repeat(50));
|
||||
};
|
||||
|
||||
if (process.argv[1] && fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) {
|
||||
try {
|
||||
const results = await main();
|
||||
printSummaryReport(results);
|
||||
|
||||
if (results.failed > 0 && results.added === 0) {
|
||||
process.exit(1);
|
||||
} else if (results.failed > 0) {
|
||||
process.exit(2);
|
||||
} else {
|
||||
process.exit(0);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('\n💥 Script execution failed:', error.message);
|
||||
console.log('\n📝 TROUBLESHOOTING TIPS:');
|
||||
console.log('• Ensure you are in a git repository');
|
||||
console.log('• Verify all-contributors-cli is installed');
|
||||
console.log('• Check that .all-contributorsrc file exists');
|
||||
console.log('• Ensure GITHUB_TOKEN environment variable is set');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
596
eng/contributor-report.mjs
Normal file
596
eng/contributor-report.mjs
Normal file
@@ -0,0 +1,596 @@
|
||||
/**
|
||||
* Generate human-readable reports about missing contributors.
|
||||
* This module queries merged PRs via 'gh' and produces a markdown report.
|
||||
*/
|
||||
import { execSync } from 'node:child_process';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { setupGracefulShutdown } from './utils/graceful-shutdown.mjs';
|
||||
|
||||
const DEFAULT_CMD_TIMEOUT = 30_000; // 30s
|
||||
|
||||
setupGracefulShutdown('contributor-report');
|
||||
|
||||
/**
|
||||
* Patterns that represent generated files; contributors should not be credited
|
||||
* for these files because they are not substantive authored content.
|
||||
*/
|
||||
export const AUTO_GENERATED_PATTERNS = [
|
||||
'README.md',
|
||||
'README.*.md',
|
||||
'collections/*.md',
|
||||
'collections/*.collection.md',
|
||||
'docs/README.*.md',
|
||||
'docs/*.generated.md'
|
||||
];
|
||||
|
||||
/**
|
||||
* File globs used to infer contribution types from file paths.
|
||||
*/
|
||||
export const TYPE_PATTERNS = {
|
||||
instructions: [
|
||||
'instructions/*.instructions.md'
|
||||
],
|
||||
prompts: [
|
||||
'prompts/*.prompt.md'
|
||||
],
|
||||
agents: [
|
||||
'chatmodes/*.chatmode.md',
|
||||
'agents/*.agent.md'
|
||||
],
|
||||
skills: [
|
||||
'skills/'
|
||||
],
|
||||
collections: [
|
||||
'collections/*.collection.yml'
|
||||
],
|
||||
doc: [
|
||||
'docs/**/*.md',
|
||||
'.github/**/*.md',
|
||||
'CONTRIBUTING.md',
|
||||
'SECURITY.md',
|
||||
'SUPPORT.md',
|
||||
'LICENSE.md',
|
||||
'CHANGELOG.md',
|
||||
'*.md'
|
||||
],
|
||||
infra: [
|
||||
'.github/workflows/**/*.yml',
|
||||
'.github/workflows/**/*.yaml',
|
||||
'**/*.yml',
|
||||
'**/*.yaml'
|
||||
],
|
||||
maintenance: [
|
||||
'package*.json',
|
||||
'*config*',
|
||||
'tsconfig*.json'
|
||||
],
|
||||
code: [
|
||||
'**/*.js',
|
||||
'**/*.ts',
|
||||
'**/*.mjs',
|
||||
'**/*.cjs',
|
||||
'**/*.py'
|
||||
]
|
||||
};
|
||||
|
||||
const globCache = new Map();
|
||||
|
||||
/**
|
||||
* Convert a simple glob (with *, **) to a RegExp.
|
||||
* This is intentionally small and deterministic for our repo patterns.
|
||||
* @param {string} pattern
|
||||
* @returns {RegExp}
|
||||
*/
|
||||
export const globToRegExp = (pattern) => {
|
||||
const DOUBLE_WILDCARD_PLACEHOLDER = '§§DOUBLE§§';
|
||||
|
||||
// Escape all regex-special characters except glob wildcards (*, ?, /),
|
||||
// then translate glob syntax to regex.
|
||||
// Note: This function intentionally supports only a small subset of glob syntax.
|
||||
const regexSpecials = /[.+^${}()|[\]\\]/g;
|
||||
|
||||
let normalized = String(pattern);
|
||||
|
||||
// Normalize Windows-style separators to POSIX-style for matching.
|
||||
normalized = normalized.replaceAll('\\', '/');
|
||||
|
||||
// Escape regex metacharacters so they are treated literally.
|
||||
normalized = normalized.replaceAll(regexSpecials, (match) => `\\${match}`);
|
||||
|
||||
// Handle glob wildcards.
|
||||
normalized = normalized.replaceAll('**', DOUBLE_WILDCARD_PLACEHOLDER);
|
||||
normalized = normalized.replaceAll('*', '[^/]*');
|
||||
normalized = normalized.replaceAll(DOUBLE_WILDCARD_PLACEHOLDER, '.*');
|
||||
normalized = normalized.replaceAll('?', '.');
|
||||
|
||||
return new RegExp(`^${normalized}$`);
|
||||
};
|
||||
|
||||
/**
|
||||
* Test whether a file path matches a glob pattern.
|
||||
* @param {string} filePath
|
||||
* @param {string} pattern
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export const matchGlob = (filePath, pattern) => {
|
||||
if (!globCache.has(pattern)) {
|
||||
try {
|
||||
globCache.set(pattern, globToRegExp(pattern));
|
||||
} catch {
|
||||
globCache.set(pattern, null);
|
||||
}
|
||||
}
|
||||
|
||||
const regexp = globCache.get(pattern);
|
||||
if (!regexp) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const normalized = filePath.replaceAll('\\', '/');
|
||||
return regexp.test(normalized);
|
||||
};
|
||||
|
||||
/**
|
||||
* Return true if the given path matches one of the known auto-generated patterns.
|
||||
* @param {string} filePath
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export const isAutoGeneratedFile = (filePath) => {
|
||||
return AUTO_GENERATED_PATTERNS.some((pattern) => matchGlob(filePath, pattern));
|
||||
};
|
||||
|
||||
/**
|
||||
* Infer a contribution type string (e.g. 'prompts', 'agents', 'doc') for a file path.
|
||||
* Returns null if no specific type matched.
|
||||
* @param {string} filePath
|
||||
* @returns {string|null}
|
||||
*/
|
||||
export const getFileContributionType = (filePath) => {
|
||||
const normalized = filePath.replaceAll('\\', '/');
|
||||
|
||||
for (const [type, patterns] of Object.entries(TYPE_PATTERNS)) {
|
||||
if (patterns.some((pattern) => matchGlob(normalized, pattern))) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Derive a comma-separated list of contribution type identifiers from a list of files.
|
||||
* Auto-generated files are ignored. Returns '' when no files to process.
|
||||
* @param {string[]} files
|
||||
* @returns {string}
|
||||
*/
|
||||
export const getContributionTypes = (files) => {
|
||||
const types = new Set();
|
||||
let processed = 0;
|
||||
|
||||
for (const file of files) {
|
||||
if (isAutoGeneratedFile(file)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
processed += 1;
|
||||
const type = getFileContributionType(file);
|
||||
if (type) {
|
||||
types.add(type);
|
||||
}
|
||||
}
|
||||
|
||||
if (processed === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (types.size === 0) {
|
||||
types.add('code');
|
||||
}
|
||||
|
||||
return Array.from(types).sort((a, b) => a.localeCompare(b)).join(',');
|
||||
};
|
||||
|
||||
/**
|
||||
* Check .all-contributors output to discover missing contributors.
|
||||
* This is the canonical implementation used by contributor tooling.
|
||||
* @returns {string[]}
|
||||
*/
|
||||
export const getMissingContributors = () => {
|
||||
try {
|
||||
console.log('🔍 Checking for missing contributors...');
|
||||
|
||||
const configPath = path.join(process.cwd(), '.all-contributorsrc');
|
||||
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
||||
const ignoreEntries = config.ignoreList || config.ignore || [];
|
||||
const ignoreSet = new Set(ignoreEntries.map((entry) => entry.toLowerCase()));
|
||||
|
||||
if (ignoreSet.size > 0) {
|
||||
console.log(`📋 Loaded ignore list: ${Array.from(ignoreSet).join(', ')}`);
|
||||
}
|
||||
|
||||
const output = execSync('npx all-contributors check', {
|
||||
encoding: 'utf8',
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
timeout: DEFAULT_CMD_TIMEOUT
|
||||
});
|
||||
|
||||
const lines = output.split('\n');
|
||||
|
||||
const headerLineIndex = lines.findIndex(line =>
|
||||
line.includes('Missing contributors in .all-contributorsrc:')
|
||||
);
|
||||
|
||||
if (headerLineIndex === -1) {
|
||||
console.log('✅ No missing contributors found');
|
||||
return [];
|
||||
}
|
||||
|
||||
let contributorsLine = '';
|
||||
for (let i = headerLineIndex + 1; i < lines.length; i++) {
|
||||
const line = lines[i].trim();
|
||||
|
||||
if (line.includes('Unknown contributors') || line.includes('✨')) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (line && !line.startsWith('⠙') && !line.startsWith('✨')) {
|
||||
contributorsLine = line;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!contributorsLine) {
|
||||
console.log('✅ No missing contributors found');
|
||||
return [];
|
||||
}
|
||||
|
||||
const allUsernames = contributorsLine
|
||||
.split(',')
|
||||
.map(username => username.trim())
|
||||
.filter(username => username.length > 0);
|
||||
|
||||
const filteredUsernames = allUsernames.filter(username => {
|
||||
const lowerUsername = username.toLowerCase();
|
||||
|
||||
if (ignoreSet.has(lowerUsername)) {
|
||||
console.log(`⏭️ FILTERED: ${username} is in ignore list`);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
console.log(`📋 Found ${filteredUsernames.length} missing contributors after filtering: ${filteredUsernames.join(', ')}`);
|
||||
return filteredUsernames;
|
||||
|
||||
} catch (error) {
|
||||
const stderr = String(error?.stderr ?? '');
|
||||
const stdout = String(error?.stdout ?? '');
|
||||
const details = [stderr, stdout, String(error?.message ?? '')].join('\n');
|
||||
|
||||
// Never print token values. Just print actionable guidance.
|
||||
if (details.toLowerCase().includes('bad credentials') || details.includes('401')) {
|
||||
console.error('❌ all-contributors authentication failed (Bad credentials / 401).');
|
||||
console.error('💡 Set a valid token in PRIVATE_TOKEN (all-contributors-cli) and/or GH_TOKEN (gh CLI).');
|
||||
console.error('💡 In GitHub Actions, you can usually use: secrets.GITHUB_TOKEN');
|
||||
throw new Error('contributors:check failed due to invalid credentials');
|
||||
}
|
||||
|
||||
console.error('❌ Error checking for missing contributors:', String(error?.message ?? error));
|
||||
if (details.trim()) {
|
||||
console.error('--- all-contributors output (truncated) ---');
|
||||
console.error(details.slice(0, 2000));
|
||||
console.error('--- end output ---');
|
||||
}
|
||||
|
||||
if (String(error?.message ?? '').includes('command not found') || String(error?.message ?? '').includes('not recognized')) {
|
||||
console.error('💡 Make sure all-contributors-cli is installed: npm install all-contributors-cli');
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// --- REPORT GENERATION LOGIC ---
|
||||
|
||||
/**
|
||||
* Get the current GitHub repository in owner/repo format.
|
||||
* Tries upstream first, then origin.
|
||||
* @returns {string}
|
||||
*/
|
||||
const getGitHubRepo = () => {
|
||||
const parseRepoFromRemoteUrl = (remoteUrl) => {
|
||||
const url = String(remoteUrl || '').trim();
|
||||
if (!url) return null;
|
||||
|
||||
// Supports:
|
||||
// - git@github.com:owner/repo.git
|
||||
// - ssh://git@github.com/owner/repo.git
|
||||
// - https://github.com/owner/repo.git
|
||||
// - https://github.com/owner/repo
|
||||
const regex = /github\.com[/:]([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#]|$)/;
|
||||
const match = regex.exec(url);
|
||||
if (!match) return null;
|
||||
|
||||
return `${match[1]}/${match[2]}`;
|
||||
};
|
||||
|
||||
try {
|
||||
const upstreamUrl = execSync('git config --get remote.upstream.url', {
|
||||
encoding: 'utf8',
|
||||
stdio: ['pipe', 'pipe', 'pipe']
|
||||
}).trim();
|
||||
if (upstreamUrl) {
|
||||
const repo = parseRepoFromRemoteUrl(upstreamUrl);
|
||||
if (repo) return repo;
|
||||
}
|
||||
} catch (e) {
|
||||
console.debug('upstream not found, trying origin', e?.message || e);
|
||||
}
|
||||
|
||||
try {
|
||||
const originUrl = execSync('git config --get remote.origin.url', {
|
||||
encoding: 'utf8',
|
||||
stdio: ['pipe', 'pipe', 'pipe']
|
||||
}).trim();
|
||||
const repo = parseRepoFromRemoteUrl(originUrl);
|
||||
if (repo) return repo;
|
||||
} catch (e) {
|
||||
console.debug('origin not found, using default', e?.message || e);
|
||||
}
|
||||
|
||||
return 'github/awesome-copilot';
|
||||
};
|
||||
|
||||
/**
|
||||
* Fetch merged PRs for a GitHub username using the GH CLI and filter files.
|
||||
* @param {string} username
|
||||
* @param {{includeAllFiles?:boolean}} [opts]
|
||||
* @returns {Array<object>} Array of PR objects
|
||||
*/
|
||||
export const fetchContributorMergedPrs = (username, { includeAllFiles = false } = {}) => {
|
||||
try {
|
||||
const repo = getGitHubRepo();
|
||||
const result = execSync(
|
||||
`gh pr list --repo ${repo} --state merged --author ${username} --json number,title,mergedAt,files,url --limit 100`,
|
||||
{ encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'], timeout: DEFAULT_CMD_TIMEOUT }
|
||||
);
|
||||
const prs = JSON.parse(result);
|
||||
|
||||
if (includeAllFiles) {
|
||||
return prs;
|
||||
}
|
||||
|
||||
return prs.filter(pr => {
|
||||
const hasNonConfigFiles = pr.files.some(file =>
|
||||
!isAutoGeneratedFile(file.path)
|
||||
);
|
||||
return hasNonConfigFiles;
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(`Failed to fetch PRs for ${username}:`, error.message);
|
||||
return [];
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Convert a PR object into a normalized report entry with types and file details.
|
||||
* @param {{login:string}} contributor
|
||||
* @param {object} pr
|
||||
* @param {{includeAllFiles?:boolean}} [opts]
|
||||
* @returns {object|null}
|
||||
*/
|
||||
const generatePRReport = (contributor, pr, { includeAllFiles = false } = {}) => {
|
||||
const types = new Set();
|
||||
const fileDetails = [];
|
||||
|
||||
for (const file of pr.files) {
|
||||
if (!file?.path) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Include generated files only if includeAllFiles is true
|
||||
if (!includeAllFiles && isAutoGeneratedFile(file.path)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const type = getFileContributionType(file.path) || 'ideas';
|
||||
if (type) {
|
||||
types.add(type);
|
||||
}
|
||||
|
||||
fileDetails.push({
|
||||
path: file.path,
|
||||
type: type || 'unknown',
|
||||
additions: file.additions,
|
||||
deletions: file.deletions
|
||||
});
|
||||
}
|
||||
|
||||
// If no non-filtered files contributed to types, and we're not asked for all files, skip this PR
|
||||
if (types.size === 0 && !includeAllFiles) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Fallback to 'code' if no types detected
|
||||
if (types.size === 0) {
|
||||
types.add('code');
|
||||
}
|
||||
|
||||
const typeList = Array.from(types);
|
||||
|
||||
return {
|
||||
prNumber: pr.number,
|
||||
prTitle: pr.title,
|
||||
prUrl: pr.url,
|
||||
mergedAt: pr.mergedAt,
|
||||
contributionTypes: typeList,
|
||||
files: fileDetails,
|
||||
commentSnippet: `@all-contributors please add @${contributor.login} for ${typeList.join(', ')}`
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Build a contributor report by inspecting merged PRs and mapping files to types.
|
||||
* Returns null when no relevant PRs were found (unless includeAllFiles is true).
|
||||
* @param {string} username
|
||||
* @param {{includeAllFiles?:boolean}} [opts]
|
||||
* @returns {object|null}
|
||||
*/
|
||||
export const generateContributorReport = (username, { includeAllFiles = false } = {}) => {
|
||||
console.log(`Inspecting ${username}...`);
|
||||
|
||||
const prs = fetchContributorMergedPrs(username, { includeAllFiles });
|
||||
const prReports = prs
|
||||
.map(pr => generatePRReport({ login: username }, pr, { includeAllFiles }))
|
||||
.filter(report => report !== null);
|
||||
|
||||
// If no relevant PR reports and not explicitly including all files, skip the contributor entirely
|
||||
if (prReports.length === 0 && !includeAllFiles) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
username,
|
||||
totalPRs: prs.length,
|
||||
prs: prReports
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Render a set of contributor reports as markdown for human review.
|
||||
* @param {Array<object>} reports
|
||||
* @param {number} missingCount - number of missing contributors detected
|
||||
* @returns {string}
|
||||
*/
|
||||
export const generateMarkdownReport = (reports, missingCount = 0) => {
|
||||
if (!missingCount) {
|
||||
return 'No missing contributors detected.\n';
|
||||
}
|
||||
|
||||
const nowIso = new Date().toISOString();
|
||||
|
||||
const computeTypesArg = (report) => {
|
||||
const typeSet = new Set();
|
||||
for (const pr of report.prs || []) {
|
||||
for (const type of pr.contributionTypes || []) {
|
||||
if (type) {
|
||||
typeSet.add(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const types = Array.from(typeSet).sort((a, b) => a.localeCompare(b));
|
||||
return types.length > 0 ? types.join(',') : 'code';
|
||||
};
|
||||
|
||||
const lines = [];
|
||||
|
||||
lines.push(
|
||||
'# Missing Contributors Report',
|
||||
'',
|
||||
`Generated (ISO): ${nowIso}`,
|
||||
'',
|
||||
`Missing contributors: ${missingCount}`,
|
||||
''
|
||||
);
|
||||
|
||||
for (const report of reports) {
|
||||
lines.push(`## @${report.username}`);
|
||||
|
||||
const prs = Array.from(report.prs || []).sort((a, b) => {
|
||||
// Prefer most recent PRs first.
|
||||
const aTime = a.mergedAt ? Date.parse(a.mergedAt) : 0;
|
||||
const bTime = b.mergedAt ? Date.parse(b.mergedAt) : 0;
|
||||
if (aTime !== bTime) return bTime - aTime;
|
||||
return (b.prNumber ?? 0) - (a.prNumber ?? 0);
|
||||
});
|
||||
|
||||
if (prs.length === 0) {
|
||||
lines.push(
|
||||
'',
|
||||
'_No eligible PRs found._',
|
||||
'',
|
||||
`Alternate CLI: \`npx all-contributors add ${report.username} ${computeTypesArg(report)}\``,
|
||||
'',
|
||||
'---',
|
||||
''
|
||||
);
|
||||
continue;
|
||||
}
|
||||
|
||||
lines.push('');
|
||||
|
||||
for (const pr of prs) {
|
||||
const prTypes = (pr.contributionTypes || []).filter(Boolean);
|
||||
const prTypesArg = prTypes.length > 0 ? prTypes.join(', ') : 'code';
|
||||
const title = String(pr.prTitle ?? '');
|
||||
const url = String(pr.prUrl ?? '');
|
||||
const comment = `@all-contributors please add @${report.username} for ${prTypesArg}`;
|
||||
|
||||
lines.push(
|
||||
`[#${pr.prNumber}](${url}) ${title}`,
|
||||
'```plaintext',
|
||||
comment,
|
||||
'```'
|
||||
);
|
||||
}
|
||||
|
||||
lines.push(
|
||||
'',
|
||||
'### Alternate CLI Command',
|
||||
'',
|
||||
'```bash',
|
||||
`npx all-contributors add ${report.username} ${computeTypesArg(report)}`,
|
||||
'```',
|
||||
'',
|
||||
'---',
|
||||
''
|
||||
);
|
||||
}
|
||||
|
||||
return `${lines.join('\n')}\n`;
|
||||
};
|
||||
|
||||
const main = () => {
|
||||
try {
|
||||
// gh CLI can use either its own authenticated session or token env vars.
|
||||
// In CI, we commonly receive a token via PRIVATE_TOKEN.
|
||||
if (process.env.PRIVATE_TOKEN && !process.env.GITHUB_TOKEN && !process.env.GH_TOKEN) {
|
||||
process.env.GITHUB_TOKEN = process.env.PRIVATE_TOKEN;
|
||||
}
|
||||
|
||||
// gh prefers GH_TOKEN; if we only have GITHUB_TOKEN, make GH_TOKEN explicit.
|
||||
if (process.env.GITHUB_TOKEN && !process.env.GH_TOKEN) {
|
||||
process.env.GH_TOKEN = process.env.GITHUB_TOKEN;
|
||||
}
|
||||
|
||||
const args = new Set(process.argv.slice(2));
|
||||
const includeAllFiles = args.has('--include-all-pr-files');
|
||||
|
||||
const contributors = getMissingContributors();
|
||||
console.log(`Inspecting ${contributors.length} missing contributors...\n`);
|
||||
|
||||
const reports = [];
|
||||
for (const contributor of contributors) {
|
||||
const report = generateContributorReport(contributor, { includeAllFiles });
|
||||
reports.push(report || { username: contributor, totalPRs: 0, prs: [] });
|
||||
}
|
||||
|
||||
const markdown = generateMarkdownReport(reports, contributors.length);
|
||||
const outputPath = path.join(process.cwd(), 'reports', 'contributor-report.md');
|
||||
fs.writeFileSync(outputPath, markdown);
|
||||
|
||||
console.log(`Report saved to: ${outputPath}`);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error generating report:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
if (process.argv[1] && fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) {
|
||||
main();
|
||||
}
|
||||
61
eng/utils/graceful-shutdown.mjs
Normal file
61
eng/utils/graceful-shutdown.mjs
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* Lightweight graceful shutdown helper for one-off scripts.
|
||||
*
|
||||
* Call setupGracefulShutdown('script-name') early in your script to attach
|
||||
* signal and exception handlers that exit the process cleanly.
|
||||
*
|
||||
* @param {string} name - Human readable name for log messages
|
||||
* @param {{exitCode?:number}} [opts]
|
||||
* @returns {() => void} teardown function to remove handlers (useful in tests)
|
||||
*/
|
||||
export const setupGracefulShutdown = (name, { exitCode = 1 } = {}) => {
|
||||
let _shuttingDown = false;
|
||||
|
||||
const cleanup = (signal) => {
|
||||
if (_shuttingDown) return;
|
||||
_shuttingDown = true;
|
||||
console.log(`\n🛑 ${name}: received ${signal}, shutting down gracefully...`);
|
||||
// Best-effort cleanup: keep this short and synchronous
|
||||
try {
|
||||
// Place for lightweight cleanup tasks if needed in future
|
||||
} catch (e) {
|
||||
console.error(`${name}: error during shutdown cleanup:`, e);
|
||||
}
|
||||
|
||||
// Exit with a non-zero code to indicate abnormal termination
|
||||
try {
|
||||
process.exit(exitCode);
|
||||
} catch (e) {
|
||||
// If process.exit is stubbed or overridden (e.g. in tests), surface the failure.
|
||||
console.error(`${name}: process.exit failed:`, e?.message || e);
|
||||
throw e;
|
||||
}
|
||||
};
|
||||
|
||||
const onSigInt = () => cleanup('SIGINT');
|
||||
const onSigTerm = () => cleanup('SIGTERM');
|
||||
const onSigHup = () => cleanup('SIGHUP');
|
||||
const onUncaught = (err) => {
|
||||
console.error(`${name}: Uncaught exception:`, err);
|
||||
cleanup('uncaughtException');
|
||||
};
|
||||
const onUnhandledRejection = (reason) => {
|
||||
console.error(`${name}: Unhandled promise rejection:`, reason);
|
||||
cleanup('unhandledRejection');
|
||||
};
|
||||
|
||||
process.on('SIGINT', onSigInt);
|
||||
process.on('SIGTERM', onSigTerm);
|
||||
process.on('SIGHUP', onSigHup);
|
||||
process.on('uncaughtException', onUncaught);
|
||||
process.on('unhandledRejection', onUnhandledRejection);
|
||||
|
||||
// Return a teardown function useful for tests or if a caller wants to remove handlers
|
||||
return () => {
|
||||
process.removeListener('SIGINT', onSigInt);
|
||||
process.removeListener('SIGTERM', onSigTerm);
|
||||
process.removeListener('SIGHUP', onSigHup);
|
||||
process.removeListener('uncaughtException', onUncaught);
|
||||
process.removeListener('unhandledRejection', onUnhandledRejection);
|
||||
};
|
||||
};
|
||||
@@ -76,6 +76,176 @@ infer: true
|
||||
- Only supported for organization/enterprise level agents
|
||||
- See "MCP Server Configuration" section below
|
||||
|
||||
#### **handoffs** (OPTIONAL, VS Code only)
|
||||
- Enable guided sequential workflows that transition between agents with suggested next steps
|
||||
- List of handoff configurations, each specifying a target agent and optional prompt
|
||||
- After a chat response completes, handoff buttons appear allowing users to move to the next agent
|
||||
- Only supported in VS Code (version 1.106+)
|
||||
- See "Handoffs Configuration" section below for details
|
||||
|
||||
## Handoffs Configuration
|
||||
|
||||
Handoffs enable you to create guided sequential workflows that transition seamlessly between custom agents. This is useful for orchestrating multi-step development workflows where users can review and approve each step before moving to the next one.
|
||||
|
||||
### Common Handoff Patterns
|
||||
|
||||
- **Planning → Implementation**: Generate a plan in a planning agent, then hand off to an implementation agent to start coding
|
||||
- **Implementation → Review**: Complete implementation, then switch to a code review agent to check for quality and security issues
|
||||
- **Write Failing Tests → Write Passing Tests**: Generate failing tests, then hand off to implement the code that makes those tests pass
|
||||
- **Research → Documentation**: Research a topic, then transition to a documentation agent to write guides
|
||||
|
||||
### Handoff Frontmatter Structure
|
||||
|
||||
Define handoffs in the agent file's YAML frontmatter using the `handoffs` field:
|
||||
|
||||
```yaml
|
||||
---
|
||||
description: 'Brief description of the agent'
|
||||
name: 'Agent Name'
|
||||
tools: ['search', 'read']
|
||||
handoffs:
|
||||
- label: Start Implementation
|
||||
agent: implementation
|
||||
prompt: 'Now implement the plan outlined above.'
|
||||
send: false
|
||||
- label: Code Review
|
||||
agent: code-review
|
||||
prompt: 'Please review the implementation for quality and security issues.'
|
||||
send: false
|
||||
---
|
||||
```
|
||||
|
||||
### Handoff Properties
|
||||
|
||||
Each handoff in the list must include the following properties:
|
||||
|
||||
| Property | Type | Required | Description |
|
||||
|----------|------|----------|-------------|
|
||||
| `label` | string | Yes | The display text shown on the handoff button in the chat interface |
|
||||
| `agent` | string | Yes | The target agent identifier to switch to (name or filename without `.agent.md`) |
|
||||
| `prompt` | string | No | The prompt text to pre-fill in the target agent's chat input |
|
||||
| `send` | boolean | No | If `true`, automatically submits the prompt to the target agent (default: `false`) |
|
||||
|
||||
### Handoff Behavior
|
||||
|
||||
- **Button Display**: Handoff buttons appear as interactive suggestions after a chat response completes
|
||||
- **Context Preservation**: When users select a handoff button, they switch to the target agent with conversation context maintained
|
||||
- **Pre-filled Prompt**: If a `prompt` is specified, it appears pre-filled in the target agent's chat input
|
||||
- **Manual vs Auto**: When `send: false`, users must review and manually send the pre-filled prompt; when `send: true`, the prompt is automatically submitted
|
||||
|
||||
### Handoff Configuration Guidelines
|
||||
|
||||
#### When to Use Handoffs
|
||||
|
||||
- **Multi-step workflows**: Breaking down complex tasks across specialized agents
|
||||
- **Quality gates**: Ensuring review steps between implementation phases
|
||||
- **Guided processes**: Directing users through a structured development process
|
||||
- **Skill transitions**: Moving from planning/design to implementation/testing specialists
|
||||
|
||||
#### Best Practices
|
||||
|
||||
- **Clear Labels**: Use action-oriented labels that clearly indicate the next step
|
||||
- ✅ Good: "Start Implementation", "Review for Security", "Write Tests"
|
||||
- ❌ Avoid: "Next", "Go to agent", "Do something"
|
||||
|
||||
- **Relevant Prompts**: Provide context-aware prompts that reference the completed work
|
||||
- ✅ Good: `'Now implement the plan outlined above.'`
|
||||
- ❌ Avoid: Generic prompts without context
|
||||
|
||||
- **Selective Use**: Don't create handoffs to every possible agent; focus on logical workflow transitions
|
||||
- Limit to 2-3 most relevant next steps per agent
|
||||
- Only add handoffs for agents that naturally follow in the workflow
|
||||
|
||||
- **Agent Dependencies**: Ensure target agents exist before creating handoffs
|
||||
- Handoffs to non-existent agents will be silently ignored
|
||||
- Test handoffs to verify they work as expected
|
||||
|
||||
- **Prompt Content**: Keep prompts concise and actionable
|
||||
- Refer to work from the current agent without duplicating content
|
||||
- Provide any necessary context the target agent might need
|
||||
|
||||
### Example: Complete Workflow
|
||||
|
||||
Here's an example of three agents with handoffs creating a complete workflow:
|
||||
|
||||
**Planning Agent** (`planner.agent.md`):
|
||||
```yaml
|
||||
---
|
||||
description: 'Generate an implementation plan for new features or refactoring'
|
||||
name: 'Planner'
|
||||
tools: ['search', 'read']
|
||||
handoffs:
|
||||
- label: Implement Plan
|
||||
agent: implementer
|
||||
prompt: 'Implement the plan outlined above.'
|
||||
send: false
|
||||
---
|
||||
# Planner Agent
|
||||
You are a planning specialist. Your task is to:
|
||||
1. Analyze the requirements
|
||||
2. Break down the work into logical steps
|
||||
3. Generate a detailed implementation plan
|
||||
4. Identify testing requirements
|
||||
|
||||
Do not write any code - focus only on planning.
|
||||
```
|
||||
|
||||
**Implementation Agent** (`implementer.agent.md`):
|
||||
```yaml
|
||||
---
|
||||
description: 'Implement code based on a plan or specification'
|
||||
name: 'Implementer'
|
||||
tools: ['read', 'edit', 'search', 'execute']
|
||||
handoffs:
|
||||
- label: Review Implementation
|
||||
agent: reviewer
|
||||
prompt: 'Please review this implementation for code quality, security, and adherence to best practices.'
|
||||
send: false
|
||||
---
|
||||
# Implementer Agent
|
||||
You are an implementation specialist. Your task is to:
|
||||
1. Follow the provided plan or specification
|
||||
2. Write clean, maintainable code
|
||||
3. Include appropriate comments and documentation
|
||||
4. Follow project coding standards
|
||||
|
||||
Implement the solution completely and thoroughly.
|
||||
```
|
||||
|
||||
**Review Agent** (`reviewer.agent.md`):
|
||||
```yaml
|
||||
---
|
||||
description: 'Review code for quality, security, and best practices'
|
||||
name: 'Reviewer'
|
||||
tools: ['read', 'search']
|
||||
handoffs:
|
||||
- label: Back to Planning
|
||||
agent: planner
|
||||
prompt: 'Review the feedback above and determine if a new plan is needed.'
|
||||
send: false
|
||||
---
|
||||
# Code Review Agent
|
||||
You are a code review specialist. Your task is to:
|
||||
1. Check code quality and maintainability
|
||||
2. Identify security issues and vulnerabilities
|
||||
3. Verify adherence to project standards
|
||||
4. Suggest improvements
|
||||
|
||||
Provide constructive feedback on the implementation.
|
||||
```
|
||||
|
||||
This workflow allows a developer to:
|
||||
1. Start with the Planner agent to create a detailed plan
|
||||
2. Hand off to the Implementer agent to write code based on the plan
|
||||
3. Hand off to the Reviewer agent to check the implementation
|
||||
4. Optionally hand off back to planning if significant issues are found
|
||||
|
||||
### Version Compatibility
|
||||
|
||||
- **VS Code**: Handoffs are supported in VS Code 1.106 and later
|
||||
- **GitHub.com**: Not currently supported; agent transition workflows use different mechanisms
|
||||
- **Other IDEs**: Limited or no support; focus on VS Code implementations for maximum compatibility
|
||||
|
||||
## Tool Configuration
|
||||
|
||||
### Tool Specification Strategies
|
||||
@@ -142,86 +312,91 @@ tools: ['playwright/navigate', 'playwright/screenshot'] # Specific tools
|
||||
|
||||
## Sub-Agent Invocation (Agent Orchestration)
|
||||
|
||||
Agents can invoke other agents using `runSubagent` to orchestrate multi-step workflows.
|
||||
Agents can invoke other agents using the **agent invocation tool** (the `agent` tool) to orchestrate multi-step workflows.
|
||||
|
||||
The recommended approach is **prompt-based orchestration**:
|
||||
- The orchestrator defines a step-by-step workflow in natural language.
|
||||
- Each step is delegated to a specialized agent.
|
||||
- The orchestrator passes only the essential context (e.g., base path, identifiers) and requires each sub-agent to read its own `.agent.md` spec for tools/constraints.
|
||||
|
||||
### How It Works
|
||||
|
||||
Include `agent` in tools list to enable sub-agent invocation:
|
||||
1) Enable agent invocation by including `agent` in the orchestrator's tools list:
|
||||
|
||||
```yaml
|
||||
tools: ['read', 'edit', 'search', 'agent']
|
||||
```
|
||||
|
||||
Then invoke other agents with `runSubagent`:
|
||||
2) For each step, invoke a sub-agent by providing:
|
||||
- **Agent name** (the identifier users select/invoke)
|
||||
- **Agent spec path** (the `.agent.md` file to read and follow)
|
||||
- **Minimal shared context** (e.g., `basePath`, `projectName`, `logFile`)
|
||||
|
||||
```javascript
|
||||
const result = await runSubagent({
|
||||
description: 'What this step does',
|
||||
prompt: `You are the [Specialist] specialist.
|
||||
### Prompt Pattern (Recommended)
|
||||
|
||||
Context:
|
||||
- Parameter: ${parameterValue}
|
||||
- Input: ${inputPath}
|
||||
- Output: ${outputPath}
|
||||
Use a consistent “wrapper prompt” for every step so sub-agents behave predictably:
|
||||
|
||||
Task:
|
||||
1. Do the specific work
|
||||
2. Write results to output location
|
||||
3. Return summary of completion`
|
||||
});
|
||||
```text
|
||||
This phase must be performed as the agent "<AGENT_NAME>" defined in "<AGENT_SPEC_PATH>".
|
||||
|
||||
IMPORTANT:
|
||||
- Read and apply the entire .agent.md spec (tools, constraints, quality standards).
|
||||
- Work on "<WORK_UNIT_NAME>" with base path: "<BASE_PATH>".
|
||||
- Perform the necessary reads/writes under this base path.
|
||||
- Return a clear summary (actions taken + files produced/modified + issues).
|
||||
```
|
||||
|
||||
Optional: if you need a lightweight, structured wrapper for traceability, embed a small JSON block in the prompt (still human-readable and tool-agnostic):
|
||||
|
||||
```text
|
||||
{
|
||||
"step": "<STEP_ID>",
|
||||
"agent": "<AGENT_NAME>",
|
||||
"spec": "<AGENT_SPEC_PATH>",
|
||||
"basePath": "<BASE_PATH>"
|
||||
}
|
||||
```
|
||||
|
||||
### Orchestrator Structure (Keep It Generic)
|
||||
|
||||
For maintainable orchestrators, document these structural elements:
|
||||
|
||||
- **Dynamic parameters**: what values are extracted from the user (e.g., `projectName`, `fileName`, `basePath`).
|
||||
- **Sub-agent registry**: a list/table mapping each step to `agentName` + `agentSpecPath`.
|
||||
- **Step ordering**: explicit sequence (Step 1 → Step N).
|
||||
- **Trigger conditions** (optional but recommended): define when a step runs vs is skipped.
|
||||
- **Logging strategy** (optional but recommended): a single log/report file updated after each step.
|
||||
|
||||
Avoid embedding orchestration “code” (JavaScript, Python, etc.) inside the orchestrator prompt; prefer deterministic, tool-driven coordination.
|
||||
|
||||
### Basic Pattern
|
||||
|
||||
Structure each sub-agent call with:
|
||||
Structure each step invocation with:
|
||||
|
||||
1. **description**: Clear one-line purpose of the sub-agent invocation
|
||||
2. **prompt**: Detailed instructions with substituted variables
|
||||
|
||||
The prompt should include:
|
||||
- Who the sub-agent is (specialist role)
|
||||
- What context it needs (parameters, paths)
|
||||
- What to do (concrete tasks)
|
||||
- Where to write output
|
||||
- What to return (summary)
|
||||
1. **Step description**: Clear one-line purpose (used for logs and traceability)
|
||||
2. **Agent identity**: `agentName` + `agentSpecPath`
|
||||
3. **Context**: A small, explicit set of variables (paths, IDs, environment name)
|
||||
4. **Expected outputs**: Files to create/update and where they should be written
|
||||
5. **Return summary**: Ask the sub-agent to return a short, structured summary
|
||||
|
||||
### Example: Multi-Step Processing
|
||||
|
||||
```javascript
|
||||
// Step 1: Process data
|
||||
const processing = await runSubagent({
|
||||
description: 'Transform raw input data',
|
||||
prompt: `You are the Data Processor specialist.
|
||||
|
||||
Project: ${projectName}
|
||||
```text
|
||||
Step 1: Transform raw input data
|
||||
Agent: data-processor
|
||||
Spec: .github/agents/data-processor.agent.md
|
||||
Context: projectName=${projectName}, basePath=${basePath}
|
||||
Input: ${basePath}/raw/
|
||||
Output: ${basePath}/processed/
|
||||
Expected: write ${basePath}/processed/summary.md
|
||||
|
||||
Task:
|
||||
1. Read all files from input directory
|
||||
2. Apply transformations
|
||||
3. Write processed files to output
|
||||
4. Create summary: ${basePath}/processed/summary.md
|
||||
|
||||
Return: Number of files processed and any issues found`
|
||||
});
|
||||
|
||||
// Step 2: Analyze (depends on Step 1)
|
||||
const analysis = await runSubagent({
|
||||
description: 'Analyze processed data',
|
||||
prompt: `You are the Data Analyst specialist.
|
||||
|
||||
Project: ${projectName}
|
||||
Step 2: Analyze processed data (depends on Step 1 output)
|
||||
Agent: data-analyst
|
||||
Spec: .github/agents/data-analyst.agent.md
|
||||
Context: projectName=${projectName}, basePath=${basePath}
|
||||
Input: ${basePath}/processed/
|
||||
Output: ${basePath}/analysis/
|
||||
|
||||
Task:
|
||||
1. Read processed files from input
|
||||
2. Generate analysis report
|
||||
3. Write to: ${basePath}/analysis/report.md
|
||||
|
||||
Return: Key findings and identified patterns`
|
||||
});
|
||||
Expected: write ${basePath}/analysis/report.md
|
||||
```
|
||||
|
||||
### Key Points
|
||||
@@ -229,7 +404,7 @@ Return: Key findings and identified patterns`
|
||||
- **Pass variables in prompts**: Use `${variableName}` for all dynamic values
|
||||
- **Keep prompts focused**: Clear, specific tasks for each sub-agent
|
||||
- **Return summaries**: Each sub-agent should report what it accomplished
|
||||
- **Sequential execution**: Use `await` to maintain order when steps depend on each other
|
||||
- **Sequential execution**: Run steps in order when dependencies exist between outputs/inputs
|
||||
- **Error handling**: Check results before proceeding to dependent steps
|
||||
|
||||
### ⚠️ Tool Availability Requirement
|
||||
@@ -246,13 +421,13 @@ The orchestrator's tool permissions act as a ceiling for all invoked sub-agents.
|
||||
|
||||
### ⚠️ Important Limitation
|
||||
|
||||
**Sub-agent orchestration is NOT suitable for large-scale data processing.** Avoid using `runSubagent` when:
|
||||
**Sub-agent orchestration is NOT suitable for large-scale data processing.** Avoid using multi-step sub-agent pipelines when:
|
||||
- Processing hundreds or thousands of files
|
||||
- Handling large datasets
|
||||
- Performing bulk transformations on big codebases
|
||||
- Orchestrating more than 5-10 sequential steps
|
||||
|
||||
Each sub-agent call adds latency and context overhead. For high-volume processing, implement logic directly in a single agent instead. Use orchestration only for coordinating specialized tasks on focused, manageable datasets.
|
||||
Each sub-agent invocation adds latency and context overhead. For high-volume processing, implement logic directly in a single agent instead. Use orchestration only for coordinating specialized tasks on focused, manageable datasets.
|
||||
|
||||
## Agent Prompt Structure
|
||||
|
||||
@@ -389,31 +564,25 @@ Process the **${projectName}** project located at `${basePath}`.
|
||||
|
||||
#### Passing Variables to Sub-Agents
|
||||
|
||||
When invoking a sub-agent, pass all context through template variables in the prompt:
|
||||
When invoking a sub-agent, pass all context through substituted variables in the prompt. Prefer passing **paths and identifiers**, not entire file contents.
|
||||
|
||||
```javascript
|
||||
// Extract and prepare variables
|
||||
const basePath = `projects/${projectName}`;
|
||||
const inputPath = `${basePath}/src/`;
|
||||
const outputPath = `${basePath}/docs/`;
|
||||
Example (prompt template):
|
||||
|
||||
// Pass to sub-agent with all variables substituted
|
||||
const result = await runSubagent({
|
||||
description: 'Generate project documentation',
|
||||
prompt: `You are the Documentation specialist.
|
||||
```text
|
||||
This phase must be performed as the agent "documentation-writer" defined in ".github/agents/documentation-writer.agent.md".
|
||||
|
||||
Project: ${projectName}
|
||||
Input: ${inputPath}
|
||||
Output: ${outputPath}
|
||||
IMPORTANT:
|
||||
- Read and apply the entire .agent.md spec.
|
||||
- Project: "${projectName}"
|
||||
- Base path: "projects/${projectName}"
|
||||
- Input: "projects/${projectName}/src/"
|
||||
- Output: "projects/${projectName}/docs/"
|
||||
|
||||
Task:
|
||||
1. Read source files from ${inputPath}
|
||||
2. Generate comprehensive documentation
|
||||
3. Write to ${outputPath}/index.md
|
||||
4. Include code examples and usage guides
|
||||
|
||||
Return: Summary of documentation generated (file count, word count)`
|
||||
});
|
||||
1. Read source files under the input path.
|
||||
2. Generate documentation.
|
||||
3. Write outputs under the output path.
|
||||
4. Return a concise summary (files created/updated, key decisions, issues).
|
||||
```
|
||||
|
||||
The sub-agent receives all necessary context embedded in the prompt. Variables are resolved before sending the prompt, so the sub-agent works with concrete paths and values, not variable placeholders.
|
||||
@@ -422,63 +591,94 @@ The sub-agent receives all necessary context embedded in the prompt. Variables a
|
||||
|
||||
Example of a simple orchestrator that validates code through multiple specialized agents:
|
||||
|
||||
```javascript
|
||||
async function reviewCodePipeline(repositoryName, prNumber) {
|
||||
const basePath = `projects/${repositoryName}/pr-${prNumber}`;
|
||||
1) Determine shared context:
|
||||
- `repositoryName`, `prNumber`
|
||||
- `basePath` (e.g., `projects/${repositoryName}/pr-${prNumber}`)
|
||||
|
||||
// Step 1: Security Review
|
||||
const security = await runSubagent({
|
||||
description: 'Scan for security vulnerabilities',
|
||||
prompt: `You are the Security Reviewer specialist.
|
||||
2) Invoke specialized agents sequentially (each agent reads its own `.agent.md` spec):
|
||||
|
||||
Repository: ${repositoryName}
|
||||
PR: ${prNumber}
|
||||
Code: ${basePath}/changes/
|
||||
```text
|
||||
Step 1: Security Review
|
||||
Agent: security-reviewer
|
||||
Spec: .github/agents/security-reviewer.agent.md
|
||||
Context: repositoryName=${repositoryName}, prNumber=${prNumber}, basePath=projects/${repositoryName}/pr-${prNumber}
|
||||
Output: projects/${repositoryName}/pr-${prNumber}/security-review.md
|
||||
|
||||
Step 2: Test Coverage
|
||||
Agent: test-coverage
|
||||
Spec: .github/agents/test-coverage.agent.md
|
||||
Context: repositoryName=${repositoryName}, prNumber=${prNumber}, basePath=projects/${repositoryName}/pr-${prNumber}
|
||||
Output: projects/${repositoryName}/pr-${prNumber}/coverage-report.md
|
||||
|
||||
Step 3: Aggregate
|
||||
Agent: review-aggregator
|
||||
Spec: .github/agents/review-aggregator.agent.md
|
||||
Context: repositoryName=${repositoryName}, prNumber=${prNumber}, basePath=projects/${repositoryName}/pr-${prNumber}
|
||||
Output: projects/${repositoryName}/pr-${prNumber}/final-review.md
|
||||
```
|
||||
|
||||
#### Example: Conditional Step Orchestration (Code Review)
|
||||
|
||||
This example shows a more complete orchestration with **pre-flight checks**, **conditional steps**, and **required vs optional** behavior.
|
||||
|
||||
**Dynamic parameters (inputs):**
|
||||
- `repositoryName`, `prNumber`
|
||||
- `basePath` (e.g., `projects/${repositoryName}/pr-${prNumber}`)
|
||||
- `logFile` (e.g., `${basePath}/.review-log.md`)
|
||||
|
||||
**Pre-flight checks (recommended):**
|
||||
- Verify expected folders/files exist (e.g., `${basePath}/changes/`, `${basePath}/reports/`).
|
||||
- Detect high-level characteristics that influence step triggers (e.g., repo language, presence of `package.json`, `pom.xml`, `requirements.txt`, test folders).
|
||||
- Log the findings once at the start.
|
||||
|
||||
**Step trigger conditions:**
|
||||
|
||||
| Step | Status | Trigger Condition | On Failure |
|
||||
|------|--------|-------------------|-----------|
|
||||
| 1: Security Review | **Required** | Always run | Stop pipeline |
|
||||
| 2: Dependency Audit | Optional | If a dependency manifest exists (`package.json`, `pom.xml`, etc.) | Continue |
|
||||
| 3: Test Coverage Check | Optional | If test projects/files are present | Continue |
|
||||
| 4: Performance Checks | Optional | If perf-sensitive code changed OR a perf config exists | Continue |
|
||||
| 5: Aggregate & Verdict | **Required** | Always run if Step 1 completed | Stop pipeline |
|
||||
|
||||
**Execution flow (natural language):**
|
||||
1. Initialize `basePath` and create/update `logFile`.
|
||||
2. Run pre-flight checks and record them.
|
||||
3. Execute Step 1 → N sequentially.
|
||||
4. For each step:
|
||||
- If trigger condition is false: mark as **SKIPPED** and continue.
|
||||
- Otherwise: invoke the sub-agent using the wrapper prompt and capture its summary.
|
||||
- Mark as **SUCCESS** or **FAILED**.
|
||||
- If the step is **Required** and failed: stop the pipeline and write a failure summary.
|
||||
5. End with a final summary section (overall status, artifacts, next actions).
|
||||
|
||||
**Sub-agent invocation prompt (example):**
|
||||
|
||||
```text
|
||||
This phase must be performed as the agent "security-reviewer" defined in ".github/agents/security-reviewer.agent.md".
|
||||
|
||||
IMPORTANT:
|
||||
- Read and apply the entire .agent.md spec.
|
||||
- Work on repository "${repositoryName}" PR "${prNumber}".
|
||||
- Base path: "${basePath}".
|
||||
|
||||
Task:
|
||||
1. Scan code for OWASP Top 10 vulnerabilities
|
||||
2. Check for injection attacks, auth flaws
|
||||
3. Write findings to ${basePath}/security-review.md
|
||||
1. Review the changes under "${basePath}/changes/".
|
||||
2. Write findings to "${basePath}/reports/security-review.md".
|
||||
3. Return a short summary with: critical findings, recommended fixes, files created/modified.
|
||||
```
|
||||
|
||||
Return: List of critical, high, and medium issues found`
|
||||
});
|
||||
**Logging format (example):**
|
||||
|
||||
// Step 2: Test Coverage Check
|
||||
const coverage = await runSubagent({
|
||||
description: 'Verify test coverage for changes',
|
||||
prompt: `You are the Test Coverage specialist.
|
||||
|
||||
Repository: ${repositoryName}
|
||||
PR: ${prNumber}
|
||||
Changes: ${basePath}/changes/
|
||||
|
||||
Task:
|
||||
1. Analyze code coverage for modified files
|
||||
2. Identify untested critical paths
|
||||
3. Write report to ${basePath}/coverage-report.md
|
||||
|
||||
Return: Current coverage percentage and gaps`
|
||||
});
|
||||
|
||||
// Step 3: Aggregate Results
|
||||
const finalReport = await runSubagent({
|
||||
description: 'Compile all review findings',
|
||||
prompt: `You are the Review Aggregator specialist.
|
||||
|
||||
Repository: ${repositoryName}
|
||||
Reports: ${basePath}/*.md
|
||||
|
||||
Task:
|
||||
1. Read all review reports from ${basePath}/
|
||||
2. Synthesize findings into single report
|
||||
3. Determine overall verdict (APPROVE/NEEDS_FIXES/BLOCK)
|
||||
4. Write to ${basePath}/final-review.md
|
||||
|
||||
Return: Final verdict and executive summary`
|
||||
});
|
||||
|
||||
return finalReport;
|
||||
}
|
||||
```markdown
|
||||
## Step 2: Dependency Audit
|
||||
**Status:** ✅ SUCCESS / ⚠️ SKIPPED / ❌ FAILED
|
||||
**Trigger:** package.json present
|
||||
**Started:** 2026-01-16T10:30:15Z
|
||||
**Completed:** 2026-01-16T10:31:05Z
|
||||
**Duration:** 00:00:50
|
||||
**Artifacts:** reports/dependency-audit.md
|
||||
**Summary:** [brief agent summary]
|
||||
```
|
||||
|
||||
This pattern applies to any orchestration scenario: extract variables, call sub-agents with clear context, await results.
|
||||
|
||||
104
instructions/html-css-style-color-guide.instructions.md
Normal file
104
instructions/html-css-style-color-guide.instructions.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
description: 'Color usage guidelines and styling rules for HTML elements to ensure accessible, professional designs.'
|
||||
applyTo: '**/*.html, **/*.css, **/*.js'
|
||||
---
|
||||
|
||||
# HTML CSS Style Color Guide
|
||||
|
||||
Follow these guidelines when updating or creating HTML/CSS styles for browser rendering. Color names
|
||||
represent the full spectrum of their respective hue ranges (e.g., "blue" includes navy, sky blue, etc.).
|
||||
|
||||
## Color Definitions
|
||||
|
||||
- **Hot Colors**: Oranges, reds, and yellows
|
||||
- **Cool Colors**: Blues, greens, and purples
|
||||
- **Neutral Colors**: Grays and grayscale variations
|
||||
- **Binary Colors**: Black and white
|
||||
- **60-30-10 Rule**
|
||||
- **Primary Color**: Use 60% of the time (*cool or light color*)
|
||||
- **Secondary Color**: Use 30% of the time (*cool or light color*)
|
||||
- **Accent**: Use 10% of the time (*complementary hot color*)
|
||||
|
||||
## Color Usage Guidelines
|
||||
|
||||
Balance the colors used by applying the **60-30-10 rule** to graphic design elements like backgrounds,
|
||||
buttons, cards, etc...
|
||||
|
||||
### Background Colors
|
||||
|
||||
**Never Use:**
|
||||
|
||||
- Purple or magenta
|
||||
- Red, orange, or yellow
|
||||
- Pink
|
||||
- Any hot color
|
||||
|
||||
**Recommended:**
|
||||
|
||||
- White or off-white
|
||||
- Light cool colors (e.g., light blues, light greens)
|
||||
- Subtle neutral tones
|
||||
- Light gradients with minimal color shift
|
||||
|
||||
### Text Colors
|
||||
|
||||
**Never Use:**
|
||||
|
||||
- Yellow (poor contrast and readability)
|
||||
- Pink
|
||||
- Pure white or light text on light backgrounds
|
||||
- Pure black or dark text on dark backgrounds
|
||||
|
||||
**Recommended:**
|
||||
|
||||
- Dark neutral colors (e.g., #1f2328, #24292f)
|
||||
- Near-black variations (#000000 to #333333)
|
||||
- Ensure background is a light color
|
||||
- Dark grays (#4d4d4d, #6c757d)
|
||||
- High-contrast combinations for accessibility
|
||||
- Near-white variations (#ffffff to #f0f2f3)
|
||||
- Ensure background is a dark color
|
||||
|
||||
### Colors to Avoid
|
||||
|
||||
Unless explicitly required by design specifications or user request, avoid:
|
||||
|
||||
- Bright purples and magentas
|
||||
- Bright pinks and neon colors
|
||||
- Highly saturated hot colors
|
||||
- Colors with low contrast ratios (fails WCAG accessibility standards)
|
||||
|
||||
### Colors to Use Sparingly
|
||||
|
||||
**Hot Colors** (red, orange, yellow):
|
||||
|
||||
- Reserve for critical alerts, warnings, or error messages
|
||||
- Use only when conveying urgency or importance
|
||||
- Limit to small accent areas rather than large sections
|
||||
- Consider alternatives like icons or bold text before using hot colors
|
||||
|
||||
## Gradients
|
||||
|
||||
Apply gradients with subtle color transitions to maintain professional aesthetics.
|
||||
|
||||
### Best Practices
|
||||
|
||||
- Keep color shifts minimal (e.g., #E6F2FF to #F5F7FA)
|
||||
- Use gradients within the same color family
|
||||
- Avoid combining hot and cool colors in a single gradient
|
||||
- Prefer linear gradients over radial for backgrounds
|
||||
|
||||
### Appropriate Use Cases
|
||||
|
||||
- Background containers and sections
|
||||
- Button hover states and interactive elements
|
||||
- Drop shadows and depth effects
|
||||
- Header and navigation bars
|
||||
- Card components and panels
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Color Tool](https://civicactions.github.io/uswds-color-tool/)
|
||||
- [Government or Professional Color Standards](https://designsystem.digital.gov/design-tokens/color/overview/)
|
||||
- [UI Color Palette Best Practices](https://www.interaction-design.org/literature/article/ui-color-palette)
|
||||
- [Color Combination Resource](https://www.figma.com/resource-library/color-combinations/)
|
||||
@@ -1,10 +1,11 @@
|
||||
---
|
||||
applyTo: '**'
|
||||
description: "Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1)."
|
||||
applyTo: '**/*.tsx, **/*.ts, **/*.jsx, **/*.js, **/*.css'
|
||||
---
|
||||
|
||||
# Next.js Best Practices for LLMs (2025)
|
||||
# Next.js Best Practices for LLMs (2026)
|
||||
|
||||
_Last updated: July 2025_
|
||||
_Last updated: January 2026 (aligned to Next.js 16.1.1)_
|
||||
|
||||
This document summarizes the latest, authoritative best practices for building, structuring, and maintaining Next.js applications. It is intended for use by LLMs and developers to ensure code quality, maintainability, and scalability.
|
||||
|
||||
@@ -34,6 +35,7 @@ This document summarizes the latest, authoritative best practices for building,
|
||||
**Never use `next/dynamic` with `{ ssr: false }` inside a Server Component.** This is not supported and will cause a build/runtime error.
|
||||
|
||||
**Correct Approach:**
|
||||
|
||||
- If you need to use a Client Component (e.g., a component that uses hooks, browser APIs, or client-only libraries) inside a Server Component, you must:
|
||||
1. Move all client-only logic/UI into a dedicated Client Component (with `'use client'` at the top).
|
||||
2. Import and use that Client Component directly in the Server Component (no need for `next/dynamic`).
|
||||
@@ -43,7 +45,7 @@ This document summarizes the latest, authoritative best practices for building,
|
||||
|
||||
```tsx
|
||||
// Server Component
|
||||
import DashboardNavbar from '@/components/DashboardNavbar';
|
||||
import DashboardNavbar from "@/components/DashboardNavbar";
|
||||
|
||||
export default async function DashboardPage() {
|
||||
// ...server logic...
|
||||
@@ -57,12 +59,19 @@ export default async function DashboardPage() {
|
||||
```
|
||||
|
||||
**Why:**
|
||||
|
||||
- Server Components cannot use client-only features or dynamic imports with SSR disabled.
|
||||
- Client Components can be rendered inside Server Components, but not the other way around.
|
||||
|
||||
**Summary:**
|
||||
Always move client-only UI into a Client Component and import it directly in your Server Component. Never use `next/dynamic` with `{ ssr: false }` in a Server Component.
|
||||
|
||||
## 2.2. Next.js 16+ async request APIs (App Router)
|
||||
|
||||
- **Assume request-bound data is async in Server Components and Route Handlers.** In Next.js 16, APIs like `cookies()`, `headers()`, and `draftMode()` are async in the App Router.
|
||||
- **Be careful with route props:** `params` / `searchParams` may be Promises in Server Components. Prefer `await`ing them instead of treating them as plain objects.
|
||||
- **Avoid dynamic rendering by accident:** Accessing request data (cookies/headers/searchParams) opts the route into dynamic behavior. Read them intentionally and isolate dynamic parts behind `Suspense` boundaries when appropriate.
|
||||
|
||||
---
|
||||
|
||||
## 2. Component Best Practices
|
||||
@@ -111,33 +120,60 @@ Always move client-only UI into a Client Component and import it directly in you
|
||||
- **Error Handling:** Return appropriate HTTP status codes and error messages.
|
||||
- **Authentication:** Protect sensitive routes using middleware or server-side session checks.
|
||||
|
||||
### Route Handler usage note (performance)
|
||||
|
||||
- **Do not call your own Route Handlers from Server Components** (e.g., `fetch('/api/...')`) just to reuse logic. Prefer extracting shared logic into modules (e.g., `lib/`) and calling it directly to avoid extra server hops.
|
||||
|
||||
## 5. General Best Practices
|
||||
|
||||
- **TypeScript:** Use TypeScript for all code. Enable `strict` mode in `tsconfig.json`.
|
||||
- **ESLint & Prettier:** Enforce code style and linting. Use the official Next.js ESLint config.
|
||||
- **ESLint & Prettier:** Enforce code style and linting. Use the official Next.js ESLint config. In Next.js 16, prefer running ESLint via the ESLint CLI (not `next lint`).
|
||||
- **Environment Variables:** Store secrets in `.env.local`. Never commit secrets to version control.
|
||||
- In Next.js 16, `serverRuntimeConfig` / `publicRuntimeConfig` are removed. Use environment variables instead.
|
||||
- `NEXT_PUBLIC_` variables are **inlined at build time** (changing them after build won’t affect a deployed build).
|
||||
- If you truly need runtime evaluation of env in a dynamic context, follow Next.js guidance (e.g., call `connection()` before reading `process.env`).
|
||||
- **Testing:** Use Jest, React Testing Library, or Playwright. Write tests for all critical logic and components.
|
||||
- **Accessibility:** Use semantic HTML and ARIA attributes. Test with screen readers.
|
||||
- **Performance:**
|
||||
- Use built-in Image and Font optimization.
|
||||
- Prefer **Cache Components** (`cacheComponents` + `use cache`) over legacy caching patterns.
|
||||
- Use Suspense and loading states for async data.
|
||||
- Avoid large client bundles; keep most logic in Server Components.
|
||||
- **Security:**
|
||||
- Sanitize all user input.
|
||||
- Use HTTPS in production.
|
||||
- Set secure HTTP headers.
|
||||
- Prefer server-side authorization for Server Actions and Route Handlers; never trust client input.
|
||||
- **Documentation:**
|
||||
- Write clear README and code comments.
|
||||
- Document public APIs and components.
|
||||
|
||||
## 6. Caching & Revalidation (Next.js 16 Cache Components)
|
||||
|
||||
- **Prefer Cache Components for memoization/caching** in the App Router.
|
||||
- Enable in `next.config.*` via `cacheComponents: true`.
|
||||
- Use the **`use cache` directive** to opt a component/function into caching.
|
||||
- **Use cache tagging and lifetimes intentionally:**
|
||||
- Use `cacheTag(...)` to associate cached results with tags.
|
||||
- Use `cacheLife(...)` to control cache lifetime (presets or configured profiles).
|
||||
- **Revalidation guidance:**
|
||||
- Prefer `revalidateTag(tag, 'max')` (stale-while-revalidate) for most cases.
|
||||
- The single-argument form `revalidateTag(tag)` is legacy/deprecated.
|
||||
- Use `updateTag(...)` inside **Server Actions** when you need “read-your-writes” / immediate consistency.
|
||||
- **Avoid `unstable_cache`** for new code; treat it as legacy and migrate toward Cache Components.
|
||||
|
||||
## 7. Tooling updates (Next.js 16)
|
||||
|
||||
- **Turbopack is the default dev bundler.** Configure via the top-level `turbopack` field in `next.config.*` (do not use the removed `experimental.turbo`).
|
||||
- **Typed routes are stable** via `typedRoutes` (TypeScript required).
|
||||
|
||||
# Avoid Unnecessary Example Files
|
||||
|
||||
Do not create example/demo files (like ModalExample.tsx) in the main codebase unless the user specifically requests a live example, Storybook story, or explicit documentation component. Keep the repository clean and production-focused by default.
|
||||
|
||||
# Always use the latest documentation and guides
|
||||
|
||||
- For every nextjs related request, begin by searching for the most current nextjs documentation, guides, and examples.
|
||||
- Use the following tools to fetch and search documentation if they are available:
|
||||
- `resolve_library_id` to resolve the package/library name in the docs.
|
||||
- `get_library_docs` for up to date documentation.
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
- Progressive enhancement and performance-first approach
|
||||
- Modern build tooling (Vite) with optimizations
|
||||
|
||||
## Development Standards
|
||||
## Core Concepts
|
||||
|
||||
### Architecture
|
||||
- Use Svelte 5 runes system for all reactivity instead of legacy stores
|
||||
@@ -25,45 +25,76 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
- Implement proper component composition with slots and snippets
|
||||
- Use SvelteKit's file-based routing with proper load functions
|
||||
|
||||
### TypeScript Integration
|
||||
- Enable strict mode in `tsconfig.json` for maximum type safety
|
||||
- Define interfaces for component props using `$props()` syntax
|
||||
- Type event handlers, refs, and SvelteKit's generated types
|
||||
- Use generic types for reusable components
|
||||
- Leverage `$types.ts` files generated by SvelteKit
|
||||
- Implement proper type checking with `svelte-check`
|
||||
|
||||
### Component Design
|
||||
- Follow single responsibility principle for components
|
||||
- Use `<script lang="ts">` with runes syntax as default
|
||||
- Keep components small and focused on one concern
|
||||
- Implement proper prop validation with TypeScript
|
||||
- Use slots and snippets for flexible composition
|
||||
- Implement proper prop validation with TypeScript annotations
|
||||
- Use `{#snippet}` blocks for reusable template logic within components
|
||||
- Use slots for component composition and content projection
|
||||
- Pass `children` snippet for flexible parent-child composition
|
||||
- Design components to be testable and reusable
|
||||
|
||||
## Reactivity and State
|
||||
|
||||
### Svelte 5 Runes System
|
||||
- Use `$state()` for reactive local state management
|
||||
- Implement `$derived()` for computed values and expensive calculations
|
||||
- Use `$effect()` for side effects with proper cleanup
|
||||
- Define component props with `$props()` and destructuring
|
||||
- Use `$derived.by()` for complex computations beyond simple expressions
|
||||
- Use `$effect()` sparingly - prefer `$derived` or function bindings for state sync
|
||||
- Implement `$effect.pre()` for running code before DOM updates
|
||||
- Use `untrack()` to prevent infinite loops when reading/writing same state in effects
|
||||
- Define component props with `$props()` and destructuring with TypeScript annotations
|
||||
- Use `$bindable()` for two-way data binding between components
|
||||
- Migrate from legacy stores to runes for better performance
|
||||
- Override derived values directly for optimistic UI patterns (Svelte 5.25+)
|
||||
|
||||
### State Management
|
||||
- Use `$state()` for local component state
|
||||
- Implement context API with `setContext`/`getContext` for shared state
|
||||
- Implement type-safe context with `createContext()` helper over raw `setContext`/`getContext`
|
||||
- Use context API for sharing reactive state down component trees
|
||||
- Avoid global `$state` modules for SSR - use context to prevent cross-request data leaks
|
||||
- Use SvelteKit stores for global application state when needed
|
||||
- Keep state normalized for complex data structures
|
||||
- Use derived state for computed values
|
||||
- Prefer `$derived()` over `$effect()` for computed values
|
||||
- Implement proper state persistence for client-side data
|
||||
|
||||
### SvelteKit Patterns
|
||||
### Effect Best Practices
|
||||
- **Avoid** using `$effect()` to synchronize state - use `$derived()` instead
|
||||
- **Do** use `$effect()` for side effects: analytics, logging, DOM manipulation
|
||||
- **Do** return cleanup functions from effects for proper teardown
|
||||
- Use `$effect.pre()` when code must run before DOM updates (e.g., scroll position)
|
||||
- Use `$effect.root()` for manually controlled effects outside component lifecycle
|
||||
- Use `untrack()` to read state without creating dependencies in effects
|
||||
- Remember: async code in effects doesn't track dependencies after `await`
|
||||
|
||||
## SvelteKit Patterns
|
||||
|
||||
### Routing and Layouts
|
||||
- Use `+page.svelte` for page components with proper SEO
|
||||
- Implement `+layout.svelte` for shared layouts and navigation
|
||||
- Handle routing with SvelteKit's file-based system
|
||||
|
||||
### Data Loading and Mutations
|
||||
- Use `+page.server.ts` for server-side data loading and API calls
|
||||
- Implement form actions in `+page.server.ts` for data mutations
|
||||
- Use `+server.ts` for API endpoints and server-side logic
|
||||
- Handle routing with SvelteKit's file-based system
|
||||
- Use SvelteKit's load functions for server-side and universal data fetching
|
||||
- Implement proper loading, error, and success states
|
||||
- Handle streaming data with promises in server load functions
|
||||
- Use `invalidate()` and `invalidateAll()` for cache management
|
||||
- Implement optimistic updates for better user experience
|
||||
- Handle offline scenarios and network errors gracefully
|
||||
|
||||
### Forms and Validation
|
||||
- Use SvelteKit's form actions for server-side form handling
|
||||
- Implement progressive enhancement with `use:enhance`
|
||||
- Use `bind:value` for controlled form inputs
|
||||
- Validate data both client-side and server-side
|
||||
- Handle file uploads and complex form scenarios
|
||||
- Implement proper accessibility with labels and ARIA attributes
|
||||
|
||||
## UI and Styling
|
||||
|
||||
### Styling
|
||||
- Use component-scoped styles with `<style>` blocks
|
||||
@@ -73,21 +104,44 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
- Implement responsive design with mobile-first approach
|
||||
- Use `:global()` sparingly for truly global styles
|
||||
|
||||
### Transitions and Animations
|
||||
- Use `transition:` directive for enter/exit animations (fade, slide, scale, fly)
|
||||
- Use `in:` and `out:` for separate enter/exit transitions
|
||||
- Implement `animate:` directive with `flip` for smooth list reordering
|
||||
- Create custom transitions for branded motion design
|
||||
- Use `|local` modifier to trigger transitions only on direct changes
|
||||
- Combine transitions with keyed `{#each}` blocks for list animations
|
||||
|
||||
## TypeScript and Tooling
|
||||
|
||||
### TypeScript Integration
|
||||
- Enable strict mode in `tsconfig.json` for maximum type safety
|
||||
- Annotate props with TypeScript: `let { name }: { name: string } = $props()`
|
||||
- Type event handlers, refs, and SvelteKit's generated types
|
||||
- Use generic types for reusable components
|
||||
- Leverage `$types.ts` files generated by SvelteKit
|
||||
- Implement proper type checking with `svelte-check`
|
||||
- Use type inference where possible to reduce boilerplate
|
||||
|
||||
### Development Tools
|
||||
- Use ESLint with eslint-plugin-svelte and Prettier for code consistency
|
||||
- Use Svelte DevTools for debugging and performance analysis
|
||||
- Keep dependencies up to date and audit for security vulnerabilities
|
||||
- Document complex components and logic with JSDoc
|
||||
- Follow Svelte's naming conventions (PascalCase for components, camelCase for functions)
|
||||
|
||||
## Production Readiness
|
||||
|
||||
### Performance Optimization
|
||||
- Use keyed `{#each}` blocks for efficient list rendering
|
||||
- Implement lazy loading with dynamic imports and `svelte:component`
|
||||
- Implement lazy loading with dynamic imports and `<svelte:component>`
|
||||
- Use `$derived()` for expensive computations to avoid unnecessary recalculations
|
||||
- Use `$derived.by()` for complex derived values that require multiple statements
|
||||
- Avoid `$effect()` for derived state - it's less efficient than `$derived()`
|
||||
- Leverage SvelteKit's automatic code splitting and preloading
|
||||
- Optimize bundle size with tree shaking and proper imports
|
||||
- Profile with Svelte DevTools to identify performance bottlenecks
|
||||
|
||||
### Data Fetching
|
||||
- Use SvelteKit's load functions for server-side and universal data fetching
|
||||
- Implement proper loading, error, and success states
|
||||
- Handle streaming data with promises in server load functions
|
||||
- Use `invalidate()` and `invalidateAll()` for cache management
|
||||
- Implement optimistic updates for better user experience
|
||||
- Handle offline scenarios and network errors gracefully
|
||||
- Use `$effect.tracking()` in abstractions to conditionally create reactive listeners
|
||||
|
||||
### Error Handling
|
||||
- Implement `+error.svelte` pages for route-level error boundaries
|
||||
@@ -95,15 +149,8 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
- Provide meaningful error messages and fallback UI
|
||||
- Log errors appropriately for debugging and monitoring
|
||||
- Handle validation errors in forms with proper user feedback
|
||||
- Use SvelteKit's error and redirect helpers
|
||||
|
||||
### Forms and Validation
|
||||
- Use SvelteKit's form actions for server-side form handling
|
||||
- Implement progressive enhancement with `use:enhance`
|
||||
- Use `bind:value` for controlled form inputs
|
||||
- Validate data both client-side and server-side
|
||||
- Handle file uploads and complex form scenarios
|
||||
- Implement proper accessibility with labels and ARIA attributes
|
||||
- Use SvelteKit's `error()` and `redirect()` helpers for proper responses
|
||||
- Track pending promises with `$effect.pending()` for loading states
|
||||
|
||||
### Testing
|
||||
- Write unit tests for components using Vitest and Testing Library
|
||||
@@ -129,6 +176,11 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
- Test with screen readers and accessibility tools
|
||||
- Implement focus management for dynamic content
|
||||
|
||||
### Deployment
|
||||
- Use environment variables for configuration across different deployment stages
|
||||
- Implement proper SEO with SvelteKit's meta tags and structured data
|
||||
- Deploy with appropriate SvelteKit adapter based on hosting platform
|
||||
|
||||
## Implementation Process
|
||||
1. Initialize SvelteKit project with TypeScript and desired adapters
|
||||
2. Set up project structure with proper folder organization
|
||||
@@ -143,19 +195,12 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with
|
||||
11. Ensure accessibility compliance
|
||||
12. Deploy with appropriate SvelteKit adapter
|
||||
|
||||
## Additional Guidelines
|
||||
- Follow Svelte's naming conventions (PascalCase for components, camelCase for functions)
|
||||
- Use ESLint with eslint-plugin-svelte and Prettier for code consistency
|
||||
- Keep dependencies up to date and audit for security vulnerabilities
|
||||
- Document complex components and logic with JSDoc
|
||||
- Use Svelte DevTools for debugging and performance analysis
|
||||
- Implement proper SEO with SvelteKit's meta tags and structured data
|
||||
- Use environment variables for configuration across different deployment stages
|
||||
|
||||
## Common Patterns
|
||||
- Renderless components with slots for flexible UI composition
|
||||
- Custom directives for cross-cutting concerns and DOM manipulation
|
||||
- Snippet-based composition for reusable template logic
|
||||
- Context providers for application-wide state management
|
||||
- Progressive enhancement for forms and interactive features
|
||||
- Custom actions (`use:` directives) for cross-cutting concerns and DOM manipulation
|
||||
- `{#snippet}` blocks for reusable template logic within components
|
||||
- Type-safe context with `createContext()` for component tree state sharing
|
||||
- Progressive enhancement for forms and interactive features with `use:enhance`
|
||||
- Server-side rendering with client-side hydration for optimal performance
|
||||
- Function bindings (`bind:value={() => value, setValue}`) for two-way binding
|
||||
- Avoid `$effect()` for state synchronization - use `$derived()` or callbacks instead
|
||||
|
||||
@@ -23,6 +23,47 @@ Verify the project uses the toolkit by checking for:
|
||||
- Ensure all UI respects Visual Studio themes
|
||||
- Follow VSSDK and VSTHRD analyzer rules
|
||||
- Produce testable, maintainable extension code
|
||||
- **Adhere to `.editorconfig` settings** when present in the repository
|
||||
|
||||
## Code Style (.editorconfig)
|
||||
|
||||
**If an `.editorconfig` file exists in the repository, all generated and modified code MUST follow its rules.**
|
||||
|
||||
This includes but is not limited to:
|
||||
- Indentation style (tabs vs spaces) and size
|
||||
- Line endings and final newline requirements
|
||||
- Naming conventions (fields, properties, methods, etc.)
|
||||
- Code style preferences (`var` usage, expression bodies, braces, etc.)
|
||||
- Analyzer severity levels and suppressions
|
||||
|
||||
Before generating code, check for `.editorconfig` in the repository root and apply its settings. When in doubt, match the style of surrounding code in the file being edited.
|
||||
|
||||
## .NET Framework and C# Language Constraints
|
||||
|
||||
**Visual Studio extensions target .NET Framework 4.8** but can use modern C# syntax (up to C# 14) with constraints imposed by the .NET Framework runtime.
|
||||
|
||||
### ✅ Supported Modern C# Features
|
||||
- Primary constructors
|
||||
- File-scoped namespaces
|
||||
- Global usings
|
||||
- Pattern matching (all forms)
|
||||
- Records (with limitations)
|
||||
- `init` accessors
|
||||
- Target-typed `new`
|
||||
- Nullable reference types (annotations only)
|
||||
- Raw string literals
|
||||
- Collection expressions
|
||||
|
||||
### ❌ Not Supported (.NET Framework Limitations)
|
||||
- `Span<T>`, `ReadOnlySpan<T>`, `Memory<T>` (no runtime support)
|
||||
- `IAsyncEnumerable<T>` (without polyfill packages)
|
||||
- Default interface implementations
|
||||
- `Index` and `Range` types (no runtime support for `^` and `..` operators)
|
||||
- `init`-only setters on structs (runtime limitation)
|
||||
- Some `System.Text.Json` features
|
||||
|
||||
### Best Practice
|
||||
When writing code, prefer APIs available in .NET Framework 4.8. If a modern API is needed, check if a polyfill NuGet package exists (e.g., `Microsoft.Bcl.AsyncInterfaces` for `IAsyncEnumerable<T>`).
|
||||
|
||||
## Example Prompt Behaviors
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"start": "npm run build",
|
||||
"build": "node ./eng/update-readme.mjs",
|
||||
"contributors:add": "all-contributors add",
|
||||
"contributors:report": "node ./eng/contributor-report.mjs",
|
||||
"contributors:generate": "all-contributors generate",
|
||||
"contributors:check": "all-contributors check",
|
||||
"collection:validate": "node ./eng/validate-collections.mjs",
|
||||
@@ -24,7 +25,9 @@
|
||||
"copilot",
|
||||
"ai",
|
||||
"prompts",
|
||||
"instructions"
|
||||
"instructions",
|
||||
"chat modes",
|
||||
"agents"
|
||||
],
|
||||
"author": "GitHub",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.'
|
||||
tools: ['edit/editFiles', 'fetch', 'todos']
|
||||
tools: ['edit/editFiles', 'web/fetch', 'todos']
|
||||
---
|
||||
|
||||
# Add Educational Comments
|
||||
|
||||
307
prompts/apple-appstore-reviewer.prompt.md
Normal file
307
prompts/apple-appstore-reviewer.prompt.md
Normal file
@@ -0,0 +1,307 @@
|
||||
---
|
||||
agent: "agent"
|
||||
name: "Apple App Store Reviewer"
|
||||
tools: ["vscode", "execute", "read", "search", "web", "upstash/context7/*", "agent", "todo"]
|
||||
description: "Serves as a reviewer of the codebase with instructions on looking for Apple App Store optimizations or rejection reasons."
|
||||
---
|
||||
|
||||
# Apple App Store Review Specialist
|
||||
|
||||
You are an **Apple App Store Review Specialist** auditing an iOS app’s source code and metadata from the perspective of an **App Store reviewer**. Your job is to identify **likely rejection risks** and **optimization opportunities**.
|
||||
|
||||
## Specific Instructions
|
||||
|
||||
You must:
|
||||
|
||||
- **Change no code initially.**
|
||||
- **Review the codebase and relevant project files** (e.g., Info.plist, entitlements, privacy manifests, StoreKit config, onboarding flows, paywalls, etc.).
|
||||
- Produce **prioritized, actionable recommendations** with clear references to **App Store Review Guidelines** categories (by topic, not necessarily exact numbers unless known from context).
|
||||
- Assume the developer wants **fast approval** and **minimal re-review risk**.
|
||||
|
||||
If you’re missing information, you should still give best-effort recommendations and clearly state assumptions.
|
||||
|
||||
---
|
||||
|
||||
## Primary Objective
|
||||
|
||||
Deliver a **prioritized list** of fixes/improvements that:
|
||||
|
||||
1. Reduce rejection probability.
|
||||
2. Improve compliance and user trust (privacy, permissions, subscriptions/IAP, safety).
|
||||
3. Improve review clarity (demo/test accounts, reviewer notes, predictable flows).
|
||||
4. Improve product quality signals (crash risk, edge cases, UX pitfalls).
|
||||
|
||||
---
|
||||
|
||||
## Constraints
|
||||
|
||||
- **Do not edit code** or propose PRs in the first pass.
|
||||
- Do not invent features that aren’t present in the repo.
|
||||
- Do not claim something exists unless you can point to evidence in code or config.
|
||||
- Avoid “maybe” advice unless you explain exactly what to verify.
|
||||
|
||||
---
|
||||
|
||||
## Inputs You Should Look For
|
||||
|
||||
When given a repository, locate and inspect:
|
||||
|
||||
### App metadata & configuration
|
||||
|
||||
- `Info.plist`, `*.entitlements`, signing capabilities
|
||||
- `PrivacyInfo.xcprivacy` (privacy manifest), if present
|
||||
- Permissions usage strings (e.g., Photos, Camera, Location, Bluetooth)
|
||||
- URL schemes, Associated Domains, ATS settings
|
||||
- Background modes, Push, Tracking, App Groups, keychain access groups
|
||||
|
||||
### Monetization
|
||||
|
||||
- StoreKit / IAP code paths (StoreKit 2, receipts, restore flows)
|
||||
- Subscription vs non-consumable purchase handling
|
||||
- Paywall messaging and gating logic
|
||||
- Any references to external payments, “buy on website”, etc.
|
||||
|
||||
### Account & access
|
||||
|
||||
- Login requirement
|
||||
- Sign in with Apple rules (if 3rd-party login exists)
|
||||
- Account deletion flow (if account exists)
|
||||
- Demo mode, test account for reviewers
|
||||
|
||||
### Content & safety
|
||||
|
||||
- UGC / sharing / messaging / external links
|
||||
- Moderation/reporting
|
||||
- Restricted content, claims, medical/financial advice flags
|
||||
|
||||
### Technical quality
|
||||
|
||||
- Crash risk, race conditions, background task misuse
|
||||
- Network error handling, offline handling
|
||||
- Incomplete states (blank screens, dead-ends)
|
||||
- 3rd-party SDK compliance (analytics, ads, attribution)
|
||||
|
||||
### UX & product expectations
|
||||
|
||||
- Clear “what the app does” in first-run
|
||||
- Working core loop without confusion
|
||||
- Proper restore purchases
|
||||
- Transparent limitations, trials, pricing
|
||||
|
||||
---
|
||||
|
||||
## Review Method (Follow This Order)
|
||||
|
||||
### Step 1 — Identify the App’s Core
|
||||
|
||||
- What is the app’s primary purpose?
|
||||
- What are the top 3 user flows?
|
||||
- What is required to use the app (account, permissions, purchase)?
|
||||
|
||||
### Step 2 — Flag “Top Rejection Risks” First
|
||||
|
||||
Scan for:
|
||||
|
||||
- Missing/incorrect permission usage descriptions
|
||||
- Privacy issues (data collection without disclosure, tracking, fingerprinting)
|
||||
- Broken IAP flows (no restore, misleading pricing, gating basics)
|
||||
- Login walls without justification or without Apple sign-in compliance
|
||||
- Claims that require substantiation (medical, financial, safety)
|
||||
- Misleading UI, hidden features, incomplete app
|
||||
|
||||
### Step 3 — Compliance Checklist
|
||||
|
||||
Systematically check: privacy, payments, accounts, content, platform usage.
|
||||
|
||||
### Step 4 — Optimization Suggestions
|
||||
|
||||
Once compliance risks are handled, suggest improvements that reduce reviewer friction:
|
||||
|
||||
- Better onboarding explanations
|
||||
- Reviewer notes suggestions
|
||||
- Test instructions / demo data
|
||||
- UX improvements that prevent confusion or “app seems broken”
|
||||
|
||||
---
|
||||
|
||||
## Output Requirements (Your Report Must Use This Structure)
|
||||
|
||||
### 1) Executive Summary (5–10 bullets)
|
||||
|
||||
- One-line on app purpose
|
||||
- Top 3 approval risks
|
||||
- Top 3 fast wins
|
||||
|
||||
### 2) Risk Register (Prioritized Table)
|
||||
|
||||
Include columns:
|
||||
|
||||
- **Priority** (P0 blocker / P1 high / P2 medium / P3 low)
|
||||
- **Area** (Privacy / IAP / Account / Permissions / Content / Technical / UX)
|
||||
- **Finding**
|
||||
- **Why Review Might Reject**
|
||||
- **Evidence** (file names, symbols, specific behaviors)
|
||||
- **Recommendation**
|
||||
- **Effort** (S/M/L)
|
||||
- **Confidence** (High/Med/Low)
|
||||
|
||||
### 3) Detailed Findings
|
||||
|
||||
Group by:
|
||||
|
||||
- Privacy & Data Handling
|
||||
- Permissions & Entitlements
|
||||
- Monetization (IAP/Subscriptions)
|
||||
- Account & Authentication
|
||||
- Content / UGC / External Links
|
||||
- Technical Stability & Performance
|
||||
- UX & Reviewability (onboarding, demo, reviewer notes)
|
||||
|
||||
Each finding must include:
|
||||
|
||||
- What you saw
|
||||
- Why it’s an issue
|
||||
- What to change (concrete)
|
||||
- How to test/verify
|
||||
|
||||
### 4) “Reviewer Experience” Checklist
|
||||
|
||||
A short list of what an App Reviewer will do, and whether it succeeds:
|
||||
|
||||
- Install & launch
|
||||
- First-run clarity
|
||||
- Required permissions
|
||||
- Core feature access
|
||||
- Purchase/restore path
|
||||
- Links, support, legal pages
|
||||
- Edge cases (offline, empty state)
|
||||
|
||||
### 5) Suggested Reviewer Notes (Draft)
|
||||
|
||||
Provide a draft “App Review Notes” section the developer can paste into App Store Connect, including:
|
||||
|
||||
- Steps to reach key features
|
||||
- Any required accounts + credentials (placeholders)
|
||||
- Explaining any unusual permissions
|
||||
- Explaining any gated content and how to test IAP
|
||||
- Mentioning demo mode, if available
|
||||
|
||||
### 6) “Next Pass” Option (Only After Report)
|
||||
|
||||
After delivering recommendations, offer an optional second pass:
|
||||
|
||||
- Propose code changes or a patch plan
|
||||
- Provide sample wording for permission prompts, paywalls, privacy copy
|
||||
- Create a pre-submission checklist
|
||||
|
||||
---
|
||||
|
||||
## Severity Definitions
|
||||
|
||||
- **P0 (Blocker):** Very likely to cause rejection or app is non-functional for review.
|
||||
- **P1 (High):** Common rejection reason or serious reviewer friction.
|
||||
- **P2 (Medium):** Risky pattern, unclear compliance, or quality concern.
|
||||
- **P3 (Low):** Nice-to-have improvements and polish.
|
||||
|
||||
---
|
||||
|
||||
## Common Rejection Hotspots (Use as Heuristics)
|
||||
|
||||
### Privacy & tracking
|
||||
|
||||
- Collecting analytics/identifiers without disclosure
|
||||
- Using device identifiers improperly
|
||||
- Not providing privacy policy where required
|
||||
- Missing privacy manifests for relevant SDKs (if applicable in project context)
|
||||
- Over-requesting permissions without clear benefit
|
||||
|
||||
### Permissions
|
||||
|
||||
- Missing `NS*UsageDescription` strings for any permission actually requested
|
||||
- Usage strings too vague (“need camera”) instead of meaningful context
|
||||
- Requesting permissions at launch without justification
|
||||
|
||||
### Payments / IAP
|
||||
|
||||
- Digital goods/features must use IAP
|
||||
- Paywall messaging must be clear (price, recurring, trial, restore)
|
||||
- Restore purchases must work and be visible
|
||||
- Don’t mislead about “free” if core requires payment
|
||||
- No external purchase prompts/links for digital features
|
||||
|
||||
### Accounts
|
||||
|
||||
- If account is required, the app must clearly explain why
|
||||
- If account creation exists, account deletion must be accessible in-app (when applicable)
|
||||
- “Sign in with Apple” requirement when using other third-party social logins
|
||||
|
||||
### Minimum functionality / completeness
|
||||
|
||||
- Empty app, placeholder screens, dead ends
|
||||
- Broken network flows without error handling
|
||||
- Confusing onboarding; reviewer can’t find the “point” of the app
|
||||
|
||||
### Misleading claims / regulated areas
|
||||
|
||||
- Health/medical claims without proper framing
|
||||
- Financial advice without disclaimers (especially if personalized)
|
||||
- Safety/emergency claims
|
||||
|
||||
---
|
||||
|
||||
## Evidence Standard
|
||||
|
||||
When you cite an issue, include **at least one**:
|
||||
|
||||
- File path + line range (if available)
|
||||
- Class/function name
|
||||
- UI screen name / route
|
||||
- Specific setting in Info.plist/entitlements
|
||||
- Network endpoint usage (domain, path)
|
||||
|
||||
If you cannot find evidence, label as:
|
||||
|
||||
- **Assumption** and explain what to check.
|
||||
|
||||
---
|
||||
|
||||
## Tone & Style
|
||||
|
||||
- Be direct and practical.
|
||||
- Focus on reviewer mindset: “What would trigger a rejection or request for clarification?”
|
||||
- Prefer short, clear recommendations with test steps.
|
||||
|
||||
---
|
||||
|
||||
## Example Priority Patterns (Guidance)
|
||||
|
||||
Typical P0/P1 examples:
|
||||
|
||||
- App crashes on launch
|
||||
- Missing camera/photos/location usage description while requesting it
|
||||
- Subscription paywall without restore
|
||||
- External payment for digital features
|
||||
- Login wall with no explanation + no demo/testing path
|
||||
- Reviewer can’t access core value without special setup and no notes
|
||||
|
||||
Typical P2/P3 examples:
|
||||
|
||||
- Better empty states
|
||||
- Clearer onboarding copy
|
||||
- More robust offline handling
|
||||
- More transparent “why we ask” permission screens
|
||||
|
||||
---
|
||||
|
||||
## What You Should Do First When Run
|
||||
|
||||
1. Identify build system: SwiftUI/UIKit, iOS min version, dependencies.
|
||||
2. Find app entry and core flows.
|
||||
3. Inspect: permissions, privacy, purchases, login, external links.
|
||||
4. Produce the report (no code changes).
|
||||
|
||||
---
|
||||
|
||||
## Final Reminder
|
||||
|
||||
You are **not** the developer. You are the **review gatekeeper**. Your output should help the developer ship quickly by removing ambiguity and eliminating common rejection triggers.
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: agent
|
||||
description: 'Convert a text-based document to markdown following instructions from prompt, or if a documented option is passed, follow the instructions for that option.'
|
||||
tools: ['edit', 'edit/editFiles', 'fetch', 'runCommands', 'search', 'search/readFile', 'search/textSearch']
|
||||
tools: ['edit', 'edit/editFiles', 'web/fetch', 'runCommands', 'search', 'search/readFile', 'search/textSearch']
|
||||
---
|
||||
|
||||
# Convert Plaintext Documentation to Markdown
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create an Architectural Decision Record (ADR) document for AI-optimized decision documentation.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Create Architectural Decision Record
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runInTerminal2', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'Microsoft Docs']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runInTerminal2', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'Microsoft Docs']
|
||||
---
|
||||
# Create GitHub Actions Workflow Specification
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Create Implementation Plan
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Create LLMs.txt File from Repository Structure
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Generate Standard OO Component Documentation
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create a new specification file for the solution, optimized for Generative AI consumption.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Create Specification
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.'
|
||||
tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search']
|
||||
tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search']
|
||||
---
|
||||
|
||||
# Create Technical Spike Document
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create a tldr page from documentation URLs and command examples, requiring both URL and command name.'
|
||||
tools: ['edit/createFile', 'fetch']
|
||||
tools: ['edit/createFile', 'web/fetch']
|
||||
---
|
||||
|
||||
# Create TLDR Page
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
tools: ['edit/editFiles', 'search', 'fetch']
|
||||
tools: ['edit/editFiles', 'search', 'web/fetch']
|
||||
description: 'Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.'
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
model: Claude Sonnet 4
|
||||
tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'fetch']
|
||||
tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'web/fetch']
|
||||
description: 'Set up complete GitHub Copilot configuration for a new project based on technology stack'
|
||||
---
|
||||
|
||||
@@ -237,7 +237,7 @@ Requirements for the form:
|
||||
```yaml
|
||||
---
|
||||
description: Generate an implementation plan for new features or refactoring existing code.
|
||||
tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages']
|
||||
model: Claude Sonnet 4
|
||||
---
|
||||
# Planning mode instructions
|
||||
|
||||
114
prompts/openapi-to-application-code.prompt.md
Normal file
114
prompts/openapi-to-application-code.prompt.md
Normal file
@@ -0,0 +1,114 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Generate a complete, production-ready application from an OpenAPI specification'
|
||||
model: 'GPT-4.1'
|
||||
tools: ['codebase', 'edit/editFiles', 'search/codebase']
|
||||
---
|
||||
|
||||
# Generate Application from OpenAPI Spec
|
||||
|
||||
Your goal is to generate a complete, working application from an OpenAPI specification using the active framework's conventions and best practices.
|
||||
|
||||
## Input Requirements
|
||||
|
||||
1. **OpenAPI Specification**: Provide either:
|
||||
- A URL to the OpenAPI spec (e.g., `https://api.example.com/openapi.json`)
|
||||
- A local file path to the OpenAPI spec
|
||||
- The full OpenAPI specification content pasted directly
|
||||
|
||||
2. **Project Details** (if not in spec):
|
||||
- Project name and description
|
||||
- Target framework and version
|
||||
- Package/namespace naming conventions
|
||||
- Authentication method (if not specified in OpenAPI)
|
||||
|
||||
## Generation Process
|
||||
|
||||
### Step 1: Analyze the OpenAPI Specification
|
||||
- Validate the OpenAPI spec for completeness and correctness
|
||||
- Identify all endpoints, HTTP methods, request/response schemas
|
||||
- Extract authentication requirements and security schemes
|
||||
- Note data model relationships and constraints
|
||||
- Flag any ambiguities or incomplete definitions
|
||||
|
||||
### Step 2: Design Application Architecture
|
||||
- Plan directory structure appropriate for the framework
|
||||
- Identify controller/handler grouping by resource or domain
|
||||
- Design service layer organization for business logic
|
||||
- Plan data models and entity relationships
|
||||
- Design configuration and initialization strategy
|
||||
|
||||
### Step 3: Generate Application Code
|
||||
- Create project structure with build/package configuration files
|
||||
- Generate models/DTOs from OpenAPI schemas
|
||||
- Generate controllers/handlers with route mappings
|
||||
- Generate service layer with business logic
|
||||
- Generate repository/data access layer if applicable
|
||||
- Add error handling, validation, and logging
|
||||
- Generate configuration and startup code
|
||||
|
||||
### Step 4: Add Supporting Files
|
||||
- Generate appropriate unit tests for services and controllers
|
||||
- Create README with setup and running instructions
|
||||
- Add .gitignore and environment configuration templates
|
||||
- Generate API documentation files
|
||||
- Create example requests/integration tests
|
||||
|
||||
## Output Structure
|
||||
|
||||
The generated application will include:
|
||||
|
||||
```
|
||||
project-name/
|
||||
├── README.md # Setup and usage instructions
|
||||
├── [build-config] # Framework-specific build files (pom.xml, build.gradle, package.json, etc.)
|
||||
├── src/
|
||||
│ ├── main/
|
||||
│ │ ├── [language]/
|
||||
│ │ │ ├── controllers/ # HTTP endpoint handlers
|
||||
│ │ │ ├── services/ # Business logic
|
||||
│ │ │ ├── models/ # Data models and DTOs
|
||||
│ │ │ ├── repositories/ # Data access (if applicable)
|
||||
│ │ │ └── config/ # Application configuration
|
||||
│ │ └── resources/ # Configuration files
|
||||
│ └── test/
|
||||
│ ├── [language]/
|
||||
│ │ ├── controllers/ # Controller tests
|
||||
│ │ └── services/ # Service tests
|
||||
│ └── resources/ # Test configuration
|
||||
├── .gitignore
|
||||
├── .env.example # Environment variables template
|
||||
└── docker-compose.yml # Optional: Docker setup (if applicable)
|
||||
```
|
||||
|
||||
## Best Practices Applied
|
||||
|
||||
- **Framework Conventions**: Follows framework-specific naming, structure, and patterns
|
||||
- **Separation of Concerns**: Clear layers with controllers, services, and repositories
|
||||
- **Error Handling**: Comprehensive error handling with meaningful responses
|
||||
- **Validation**: Input validation and schema validation throughout
|
||||
- **Logging**: Structured logging for debugging and monitoring
|
||||
- **Testing**: Unit tests for services and controllers
|
||||
- **Documentation**: Inline code documentation and setup instructions
|
||||
- **Security**: Implements authentication/authorization from OpenAPI spec
|
||||
- **Scalability**: Design patterns support growth and maintenance
|
||||
|
||||
## Next Steps
|
||||
|
||||
After generation:
|
||||
|
||||
1. Review the generated code structure and make customizations as needed
|
||||
2. Install dependencies according to framework requirements
|
||||
3. Configure environment variables and database connections
|
||||
4. Run tests to verify generated code
|
||||
5. Start the development server
|
||||
6. Test endpoints using the provided examples
|
||||
|
||||
## Questions to Ask if Needed
|
||||
|
||||
- Should the application include database/ORM setup, or just in-memory/mock data?
|
||||
- Do you want Docker configuration for containerization?
|
||||
- Should authentication be JWT, OAuth2, API keys, or basic auth?
|
||||
- Do you need integration tests or just unit tests?
|
||||
- Any specific database technology preferences?
|
||||
- Should the API include pagination, filtering, and sorting examples?
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: agent
|
||||
description: 'Website exploration for testing using Playwright MCP'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright']
|
||||
model: 'Claude Sonnet 4'
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: agent
|
||||
description: 'Generate a Playwright test based on a scenario using Playwright MCP'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*']
|
||||
model: 'Claude Sonnet 4.5'
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
agent: "agent"
|
||||
description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository."
|
||||
description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates."
|
||||
tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "fetch", "githubRepo", "todos"]
|
||||
---
|
||||
|
||||
@@ -13,14 +13,23 @@ Analyze current repository context and suggest relevant Custom Agents files from
|
||||
1. **Fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `fetch` tool.
|
||||
2. **Scan Local Custom Agents**: Discover existing custom agent files in `.github/agents/` folder
|
||||
3. **Extract Descriptions**: Read front matter from local custom agent files to get descriptions
|
||||
4. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
5. **Compare Existing**: Check against custom agents already available in this repository
|
||||
6. **Match Relevance**: Compare available custom agents against identified patterns and requirements
|
||||
7. **Present Options**: Display relevant custom agents with descriptions, rationale, and availability status
|
||||
8. **Validate**: Ensure suggested agents would add value not already covered by existing agents
|
||||
9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents
|
||||
**AWAIT** user request to proceed with installation of specific custom agents. DO NOT INSTALL UNLESS DIRECTED TO DO SO.
|
||||
10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved.
|
||||
4. **Fetch Remote Versions**: For each local agent, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/<filename>`)
|
||||
5. **Compare Versions**: Compare local agent content with remote versions to identify:
|
||||
- Agents that are up-to-date (exact match)
|
||||
- Agents that are outdated (content differs)
|
||||
- Key differences in outdated agents (tools, description, content)
|
||||
6. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
7. **Match Relevance**: Compare available custom agents against identified patterns and requirements
|
||||
8. **Present Options**: Display relevant custom agents with descriptions, rationale, and availability status including outdated agents
|
||||
9. **Validate**: Ensure suggested agents would add value not already covered by existing agents
|
||||
10. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents
|
||||
**AWAIT** user request to proceed with installation or updates of specific custom agents. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO.
|
||||
11. **Download/Update Assets**: For requested agents, automatically:
|
||||
- Download new agents to `.github/agents/` folder
|
||||
- Update outdated agents by replacing with latest version from awesome-copilot
|
||||
- Do NOT adjust content of the files
|
||||
- Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved
|
||||
- Use `#todos` tool to track progress
|
||||
|
||||
## Context Analysis Criteria
|
||||
|
||||
@@ -46,6 +55,7 @@ Display analysis results in structured table comparing awesome-copilot custom ag
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ---------------------------------- | ------------------------------------------------------------- |
|
||||
| [amplitude-experiment-implementation.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/amplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features | ❌ No | None | Would enhance experimentation capabilities within the product |
|
||||
| [launchdarkly-flag-cleanup.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/launchdarkly-flag-cleanup.agent.md) | Feature flag cleanup agent for LaunchDarkly | ✅ Yes | launchdarkly-flag-cleanup.agent.md | Already covered by existing LaunchDarkly custom agents |
|
||||
| [principal-software-engineer.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/principal-software-engineer.agent.md) | Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation. | ⚠️ Outdated | principal-software-engineer.agent.md | Tools configuration differs: remote uses `'web/fetch'` vs local `'fetch'` - Update recommended |
|
||||
|
||||
## Local Agent Discovery Process
|
||||
|
||||
@@ -54,19 +64,44 @@ Display analysis results in structured table comparing awesome-copilot custom ag
|
||||
3. Build comprehensive inventory of existing agents
|
||||
4. Use this inventory to avoid suggesting duplicates
|
||||
|
||||
## Version Comparison Process
|
||||
|
||||
1. For each local agent file, construct the raw GitHub URL to fetch the remote version:
|
||||
- Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/<filename>`
|
||||
2. Fetch the remote version using the `fetch` tool
|
||||
3. Compare entire file content (including front matter, tools array, and body)
|
||||
4. Identify specific differences:
|
||||
- **Front matter changes** (description, tools)
|
||||
- **Tools array modifications** (added, removed, or renamed tools)
|
||||
- **Content updates** (instructions, examples, guidelines)
|
||||
5. Document key differences for outdated agents
|
||||
6. Calculate similarity to determine if update is needed
|
||||
|
||||
## Requirements
|
||||
|
||||
- Use `githubRepo` tool to get content from awesome-copilot repository agents folder
|
||||
- Scan local file system for existing agents in `.github/agents/` directory
|
||||
- Read YAML front matter from local agent files to extract descriptions
|
||||
- Compare local agents with remote versions to detect outdated agents
|
||||
- Compare against existing agents in this repository to avoid duplicates
|
||||
- Focus on gaps in current agent library coverage
|
||||
- Validate that suggested agents align with repository's purpose and standards
|
||||
- Provide clear rationale for each suggestion
|
||||
- Include links to both awesome-copilot agents and similar local agents
|
||||
- Clearly identify outdated agents with specific differences noted
|
||||
- Don't provide any additional information or context beyond the table and the analysis
|
||||
|
||||
## Icons Reference
|
||||
|
||||
- ✅ Already installed in repo
|
||||
- ✅ Already installed and up-to-date
|
||||
- ⚠️ Installed but outdated (update available)
|
||||
- ❌ Not installed in repo
|
||||
|
||||
## Update Handling
|
||||
|
||||
When outdated agents are identified:
|
||||
1. Include them in the output table with ⚠️ status
|
||||
2. Document specific differences in the "Suggestion Rationale" column
|
||||
3. Provide recommendation to update with key changes noted
|
||||
4. When user requests update, replace entire local file with remote version
|
||||
5. Preserve file location in `.github/agents/` directory
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search']
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search']
|
||||
---
|
||||
|
||||
# Suggest Awesome GitHub Copilot Custom Chat Modes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search']
|
||||
description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search']
|
||||
---
|
||||
# Suggest Awesome GitHub Copilot Collections
|
||||
|
||||
@@ -12,13 +12,22 @@ Analyze current repository context and suggest relevant collections from the [Gi
|
||||
1. **Fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#fetch` tool.
|
||||
2. **Scan Local Assets**: Discover existing prompt files in `prompts/`, instruction files in `instructions/`, and chat modes in `agents/` folders
|
||||
3. **Extract Local Descriptions**: Read front matter from local asset files to understand existing capabilities
|
||||
4. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs
|
||||
5. **Match Collection Relevance**: Compare available collections against identified patterns and requirements
|
||||
6. **Check Asset Overlap**: For relevant collections, analyze individual items to avoid duplicates with existing repository assets
|
||||
7. **Present Collection Options**: Display relevant collections with descriptions, item counts, and rationale for suggestion
|
||||
8. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow
|
||||
**AWAIT** user request to proceed with installation of specific collections. DO NOT INSTALL UNLESS DIRECTED TO DO SO.
|
||||
9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved.
|
||||
4. **Fetch Remote Versions**: For each local asset that matches a collection item, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/<type>/<filename>`)
|
||||
5. **Compare Versions**: Compare local asset content with remote versions to identify:
|
||||
- Assets that are up-to-date (exact match)
|
||||
- Assets that are outdated (content differs)
|
||||
- Key differences in outdated assets (tools, description, content)
|
||||
6. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs
|
||||
7. **Match Collection Relevance**: Compare available collections against identified patterns and requirements
|
||||
8. **Check Asset Overlap**: For relevant collections, analyze individual items to avoid duplicates with existing repository assets
|
||||
9. **Present Collection Options**: Display relevant collections with descriptions, item counts, outdated asset counts, and rationale for suggestion
|
||||
10. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow
|
||||
**AWAIT** user request to proceed with installation or updates of specific collections. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO.
|
||||
11. **Download/Update Assets**: For requested collections, automatically:
|
||||
- Download new assets to appropriate directories
|
||||
- Update outdated assets by replacing with latest version from awesome-copilot
|
||||
- Do NOT adjust content of the files
|
||||
- Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved
|
||||
|
||||
## Context Analysis Criteria
|
||||
|
||||
@@ -55,6 +64,7 @@ For each suggested collection, break down individual assets:
|
||||
**Azure & Cloud Development Collection Analysis:**
|
||||
- ✅ **New Assets (12)**: Azure cost optimization prompts, Bicep planning mode, AVM modules, Logic Apps expert mode
|
||||
- ⚠️ **Similar Assets (3)**: Azure DevOps pipelines (similar to existing CI/CD), Terraform (basic overlap), Containerization (Docker basics covered)
|
||||
- 🔄 **Outdated Assets (2)**: azure-iac-generator.agent.md (tools updated), bicep-implement.agent.md (description changed)
|
||||
- 🎯 **High Value**: Cost optimization tools, Infrastructure as Code expertise, Azure-specific architectural guidance
|
||||
|
||||
**Installation Preview:**
|
||||
@@ -86,6 +96,21 @@ For each suggested collection, break down individual assets:
|
||||
- Industry best practices for identified project types
|
||||
- Missing expertise areas (security, performance, architecture, etc.)
|
||||
|
||||
## Version Comparison Process
|
||||
|
||||
1. For each local asset file that corresponds to a collection item, construct the raw GitHub URL:
|
||||
- Agents: `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/<filename>`
|
||||
- Prompts: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/<filename>`
|
||||
- Instructions: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>`
|
||||
2. Fetch the remote version using the `#fetch` tool
|
||||
3. Compare entire file content (including front matter and body)
|
||||
4. Identify specific differences:
|
||||
- **Front matter changes** (description, tools, applyTo patterns)
|
||||
- **Tools array modifications** (added, removed, or renamed tools)
|
||||
- **Content updates** (instructions, examples, guidelines)
|
||||
5. Document key differences for outdated assets
|
||||
6. Calculate similarity to determine if update is needed
|
||||
|
||||
## Collection Asset Download Process
|
||||
|
||||
When user confirms a collection installation:
|
||||
@@ -141,9 +166,18 @@ After installing a collection, provide:
|
||||
|
||||
## Icons Reference
|
||||
|
||||
- ✅ Collection recommended for installation
|
||||
- ✅ Collection recommended for installation / Asset up-to-date
|
||||
- ⚠️ Collection has some asset overlap but still valuable
|
||||
- ❌ Collection not recommended (significant overlap or not relevant)
|
||||
- 🎯 High-value collection that fills major capability gaps
|
||||
- 📁 Collection partially installed (some assets skipped due to duplicates)
|
||||
- 🔄 Collection needs customization for repository-specific needs
|
||||
- 🔄 Asset outdated (update available from awesome-copilot)
|
||||
|
||||
## Update Handling
|
||||
|
||||
When outdated collection assets are identified:
|
||||
1. Include them in the asset analysis with 🔄 status
|
||||
2. Document specific differences for each outdated asset
|
||||
3. Provide recommendation to update with key changes noted
|
||||
4. When user requests update, replace entire local file with remote version
|
||||
5. Preserve file location in appropriate directory (`agents/`, `prompts/`, or `instructions/`)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search']
|
||||
description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search']
|
||||
---
|
||||
# Suggest Awesome GitHub Copilot Instructions
|
||||
|
||||
@@ -12,14 +12,24 @@ Analyze current repository context and suggest relevant copilot-instruction file
|
||||
1. **Fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#fetch` tool.
|
||||
2. **Scan Local Instructions**: Discover existing instruction files in `.github/instructions/` folder
|
||||
3. **Extract Descriptions**: Read front matter from local instruction files to get descriptions and `applyTo` patterns
|
||||
4. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
5. **Compare Existing**: Check against instructions already available in this repository
|
||||
6. **Match Relevance**: Compare available instructions against identified patterns and requirements
|
||||
7. **Present Options**: Display relevant instructions with descriptions, rationale, and availability status
|
||||
8. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions
|
||||
9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions
|
||||
**AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO.
|
||||
10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved.
|
||||
4. **Fetch Remote Versions**: For each local instruction, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>`)
|
||||
5. **Compare Versions**: Compare local instruction content with remote versions to identify:
|
||||
- Instructions that are up-to-date (exact match)
|
||||
- Instructions that are outdated (content differs)
|
||||
- Key differences in outdated instructions (description, applyTo patterns, content)
|
||||
6. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
7. **Compare Existing**: Check against instructions already available in this repository
|
||||
8. **Match Relevance**: Compare available instructions against identified patterns and requirements
|
||||
9. **Present Options**: Display relevant instructions with descriptions, rationale, and availability status including outdated instructions
|
||||
10. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions
|
||||
11. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions
|
||||
**AWAIT** user request to proceed with installation or updates of specific instructions. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO.
|
||||
12. **Download/Update Assets**: For requested instructions, automatically:
|
||||
- Download new instructions to `.github/instructions/` folder
|
||||
- Update outdated instructions by replacing with latest version from awesome-copilot
|
||||
- Do NOT adjust content of the files
|
||||
- Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved
|
||||
- Use `#todos` tool to track progress
|
||||
|
||||
## Context Analysis Criteria
|
||||
|
||||
@@ -41,9 +51,9 @@ Display analysis results in structured table comparing awesome-copilot instructi
|
||||
|
||||
| Awesome-Copilot Instruction | Description | Already Installed | Similar Local Instruction | Suggestion Rationale |
|
||||
|------------------------------|-------------|-------------------|---------------------------|---------------------|
|
||||
| [blazor.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/blazor.instructions.md) | Blazor development guidelines | ❌ No | blazor.instructions.md | Already covered by existing Blazor instructions |
|
||||
| [blazor.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/blazor.instructions.md) | Blazor development guidelines | ✅ Yes | blazor.instructions.md | Already covered by existing Blazor instructions |
|
||||
| [reactjs.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/reactjs.instructions.md) | ReactJS development standards | ❌ No | None | Would enhance React development with established patterns |
|
||||
| [java.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md) | Java development best practices | ❌ No | None | Could improve Java code quality and consistency |
|
||||
| [java.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md) | Java development best practices | ⚠️ Outdated | java.instructions.md | applyTo pattern differs: remote uses `'**/*.java'` vs local `'*.java'` - Update recommended |
|
||||
|
||||
## Local Instructions Discovery Process
|
||||
|
||||
@@ -52,6 +62,18 @@ Display analysis results in structured table comparing awesome-copilot instructi
|
||||
3. Build comprehensive inventory of existing instructions with their applicable file patterns
|
||||
4. Use this inventory to avoid suggesting duplicates
|
||||
|
||||
## Version Comparison Process
|
||||
|
||||
1. For each local instruction file, construct the raw GitHub URL to fetch the remote version:
|
||||
- Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>`
|
||||
2. Fetch the remote version using the `#fetch` tool
|
||||
3. Compare entire file content (including front matter and body)
|
||||
4. Identify specific differences:
|
||||
- **Front matter changes** (description, applyTo patterns)
|
||||
- **Content updates** (guidelines, examples, best practices)
|
||||
5. Document key differences for outdated instructions
|
||||
6. Calculate similarity to determine if update is needed
|
||||
|
||||
## File Structure Requirements
|
||||
|
||||
Based on GitHub documentation, copilot-instructions files should be:
|
||||
@@ -71,18 +93,30 @@ applyTo: '**/*.js,**/*.ts' # Optional: glob patterns for file matching
|
||||
|
||||
## Requirements
|
||||
|
||||
- Use `githubRepo` tool to get content from awesome-copilot repository
|
||||
- Scan local file system for existing instructions in `instructions/` directory
|
||||
- Use `githubRepo` tool to get content from awesome-copilot repository instructions folder
|
||||
- Scan local file system for existing instructions in `.github/instructions/` directory
|
||||
- Read YAML front matter from local instruction files to extract descriptions and `applyTo` patterns
|
||||
- Compare local instructions with remote versions to detect outdated instructions
|
||||
- Compare against existing instructions in this repository to avoid duplicates
|
||||
- Focus on gaps in current instruction library coverage
|
||||
- Validate that suggested instructions align with repository's purpose and standards
|
||||
- Provide clear rationale for each suggestion
|
||||
- Include links to both awesome-copilot instructions and similar local instructions
|
||||
- Clearly identify outdated instructions with specific differences noted
|
||||
- Consider technology stack compatibility and project-specific needs
|
||||
- Don't provide any additional information or context beyond the table and the analysis
|
||||
|
||||
## Icons Reference
|
||||
|
||||
- ✅ Already installed in repo
|
||||
- ✅ Already installed and up-to-date
|
||||
- ⚠️ Installed but outdated (update available)
|
||||
- ❌ Not installed in repo
|
||||
|
||||
## Update Handling
|
||||
|
||||
When outdated instructions are identified:
|
||||
1. Include them in the output table with ⚠️ status
|
||||
2. Document specific differences in the "Suggestion Rationale" column
|
||||
3. Provide recommendation to update with key changes noted
|
||||
4. When user requests update, replace entire local file with remote version
|
||||
5. Preserve file location in `.github/instructions/` directory
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search']
|
||||
description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates.'
|
||||
tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search']
|
||||
---
|
||||
# Suggest Awesome GitHub Copilot Prompts
|
||||
|
||||
@@ -12,14 +12,24 @@ Analyze current repository context and suggest relevant prompt files from the [G
|
||||
1. **Fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#fetch` tool.
|
||||
2. **Scan Local Prompts**: Discover existing prompt files in `.github/prompts/` folder
|
||||
3. **Extract Descriptions**: Read front matter from local prompt files to get descriptions
|
||||
4. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
5. **Compare Existing**: Check against prompts already available in this repository
|
||||
6. **Match Relevance**: Compare available prompts against identified patterns and requirements
|
||||
7. **Present Options**: Display relevant prompts with descriptions, rationale, and availability status
|
||||
8. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts
|
||||
9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts
|
||||
**AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO.
|
||||
10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved.
|
||||
4. **Fetch Remote Versions**: For each local prompt, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/<filename>`)
|
||||
5. **Compare Versions**: Compare local prompt content with remote versions to identify:
|
||||
- Prompts that are up-to-date (exact match)
|
||||
- Prompts that are outdated (content differs)
|
||||
- Key differences in outdated prompts (tools, description, content)
|
||||
6. **Analyze Context**: Review chat history, repository files, and current project needs
|
||||
7. **Compare Existing**: Check against prompts already available in this repository
|
||||
8. **Match Relevance**: Compare available prompts against identified patterns and requirements
|
||||
9. **Present Options**: Display relevant prompts with descriptions, rationale, and availability status including outdated prompts
|
||||
10. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts
|
||||
11. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts
|
||||
**AWAIT** user request to proceed with installation or updates of specific prompts. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO.
|
||||
12. **Download/Update Assets**: For requested prompts, automatically:
|
||||
- Download new prompts to `.github/prompts/` folder
|
||||
- Update outdated prompts by replacing with latest version from awesome-copilot
|
||||
- Do NOT adjust content of the files
|
||||
- Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved
|
||||
- Use `#todos` tool to track progress
|
||||
|
||||
## Context Analysis Criteria
|
||||
|
||||
@@ -41,31 +51,56 @@ Display analysis results in structured table comparing awesome-copilot prompts w
|
||||
|
||||
| Awesome-Copilot Prompt | Description | Already Installed | Similar Local Prompt | Suggestion Rationale |
|
||||
|-------------------------|-------------|-------------------|---------------------|---------------------|
|
||||
| [code-review.md](https://github.com/github/awesome-copilot/blob/main/prompts/code-review.md) | Automated code review prompts | ❌ No | None | Would enhance development workflow with standardized code review processes |
|
||||
| [documentation.md](https://github.com/github/awesome-copilot/blob/main/prompts/documentation.md) | Generate project documentation | ✅ Yes | create_oo_component_documentation.prompt.md | Already covered by existing documentation prompts |
|
||||
| [debugging.md](https://github.com/github/awesome-copilot/blob/main/prompts/debugging.md) | Debug assistance prompts | ❌ No | None | Could improve troubleshooting efficiency for development team |
|
||||
| [code-review.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/code-review.prompt.md) | Automated code review prompts | ❌ No | None | Would enhance development workflow with standardized code review processes |
|
||||
| [documentation.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/documentation.prompt.md) | Generate project documentation | ✅ Yes | create_oo_component_documentation.prompt.md | Already covered by existing documentation prompts |
|
||||
| [debugging.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/debugging.prompt.md) | Debug assistance prompts | ⚠️ Outdated | debugging.prompt.md | Tools configuration differs: remote uses `'codebase'` vs local missing - Update recommended |
|
||||
|
||||
## Local Prompts Discovery Process
|
||||
|
||||
1. List all `*.prompt.md` files directory `.github/prompts/`.
|
||||
1. List all `*.prompt.md` files in `.github/prompts/` directory
|
||||
2. For each discovered file, read front matter to extract `description`
|
||||
3. Build comprehensive inventory of existing prompts
|
||||
4. Use this inventory to avoid suggesting duplicates
|
||||
|
||||
## Version Comparison Process
|
||||
|
||||
1. For each local prompt file, construct the raw GitHub URL to fetch the remote version:
|
||||
- Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/<filename>`
|
||||
2. Fetch the remote version using the `#fetch` tool
|
||||
3. Compare entire file content (including front matter and body)
|
||||
4. Identify specific differences:
|
||||
- **Front matter changes** (description, tools, mode)
|
||||
- **Tools array modifications** (added, removed, or renamed tools)
|
||||
- **Content updates** (instructions, examples, guidelines)
|
||||
5. Document key differences for outdated prompts
|
||||
6. Calculate similarity to determine if update is needed
|
||||
|
||||
## Requirements
|
||||
|
||||
- Use `githubRepo` tool to get content from awesome-copilot repository
|
||||
- Use `githubRepo` tool to get content from awesome-copilot repository prompts folder
|
||||
- Scan local file system for existing prompts in `.github/prompts/` directory
|
||||
- Read YAML front matter from local prompt files to extract descriptions
|
||||
- Compare local prompts with remote versions to detect outdated prompts
|
||||
- Compare against existing prompts in this repository to avoid duplicates
|
||||
- Focus on gaps in current prompt library coverage
|
||||
- Validate that suggested prompts align with repository's purpose and standards
|
||||
- Provide clear rationale for each suggestion
|
||||
- Include links to both awesome-copilot prompts and similar local prompts
|
||||
- Clearly identify outdated prompts with specific differences noted
|
||||
- Don't provide any additional information or context beyond the table and the analysis
|
||||
|
||||
|
||||
## Icons Reference
|
||||
|
||||
- ✅ Already installed in repo
|
||||
- ✅ Already installed and up-to-date
|
||||
- ⚠️ Installed but outdated (update available)
|
||||
- ❌ Not installed in repo
|
||||
|
||||
## Update Handling
|
||||
|
||||
When outdated prompts are identified:
|
||||
1. Include them in the output table with ⚠️ status
|
||||
2. Document specific differences in the "Suggestion Rationale" column
|
||||
3. Provide recommendation to update with key changes noted
|
||||
4. When user requests update, replace entire local file with remote version
|
||||
5. Preserve file location in `.github/prompts/` directory
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Create tldr summaries for GitHub Copilot files (prompts, agents, instructions, collections), MCP servers, or documentation from URLs and queries.'
|
||||
tools: ['fetch', 'search/readFile', 'search', 'search/textSearch']
|
||||
tools: ['web/fetch', 'search/readFile', 'search', 'search/textSearch']
|
||||
model: 'claude-sonnet-4'
|
||||
---
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update Azure Verified Modules (AVM) to latest versions in Bicep files.'
|
||||
tools: ['search/codebase', 'think', 'changes', 'fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep']
|
||||
tools: ['search/codebase', 'think', 'changes', 'web/fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep']
|
||||
---
|
||||
# Update Azure Verified Modules in Bicep Files
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Update Implementation Plan
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Update LLMs.txt File
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update a markdown file section with an index/table of files from a specified folder.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Update Markdown File Index
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update existing object-oriented component documentation following industry best practices and architectural documentation standards.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Update Standard OO Component Documentation
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: 'agent'
|
||||
description: 'Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.'
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI']
|
||||
---
|
||||
# Update Specification
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
agent: "agent"
|
||||
description: "Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt."
|
||||
tools: ['createFile', 'editFiles', 'fetch', 'githubRepo', 'search', 'testFailure']
|
||||
tools: ['createFile', 'editFiles', 'web/fetch', 'githubRepo', 'search', 'testFailure']
|
||||
---
|
||||
|
||||
# Write Coding Standards From File
|
||||
|
||||
21
skills/azure-resource-visualizer/LICENSE.txt
Normal file
21
skills/azure-resource-visualizer/LICENSE.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright 2025 (c) Microsoft Corporation.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE
|
||||
233
skills/azure-resource-visualizer/SKILL.md
Normal file
233
skills/azure-resource-visualizer/SKILL.md
Normal file
@@ -0,0 +1,233 @@
|
||||
---
|
||||
name: azure-resource-visualizer
|
||||
description: Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other.
|
||||
license: Complete terms in LICENSE.txt
|
||||
metadata:
|
||||
author: Tom Meschter (tom.meschter@microsoft.com)
|
||||
---
|
||||
|
||||
# Azure Resource Visualizer - Architecture Diagram Generator
|
||||
|
||||
A user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture.
|
||||
|
||||
## Core Responsibilities
|
||||
|
||||
1. **Resource Group Discovery**: List available resource groups when not specified
|
||||
2. **Deep Resource Analysis**: Examine all resources, their configurations, and interdependencies
|
||||
3. **Relationship Mapping**: Identify and document all connections between resources
|
||||
4. **Diagram Generation**: Create detailed, accurate Mermaid diagrams
|
||||
5. **Documentation Creation**: Produce clear markdown files with embedded diagrams
|
||||
|
||||
## Workflow Process
|
||||
|
||||
### Step 1: Resource Group Selection
|
||||
|
||||
If the user hasn't specified a resource group:
|
||||
|
||||
1. Use your tools to query available resource groups. If you do not have a tool for this, use `az`.
|
||||
2. Present a numbered list of resource groups with their locations
|
||||
3. Ask the user to select one by number or name
|
||||
4. Wait for user response before proceeding
|
||||
|
||||
If a resource group is specified, validate it exists and proceed.
|
||||
|
||||
### Step 2: Resource Discovery & Analysis
|
||||
|
||||
Once you have the resource group:
|
||||
|
||||
1. **Query all resources** in the resource group using Azure MCP tools or `az`.
|
||||
2. **Analyze each resource** type and capture:
|
||||
- Resource name and type
|
||||
- SKU/tier information
|
||||
- Location/region
|
||||
- Key configuration properties
|
||||
- Network settings (VNets, subnets, private endpoints)
|
||||
- Identity and access (Managed Identity, RBAC)
|
||||
- Dependencies and connections
|
||||
|
||||
3. **Map relationships** by identifying:
|
||||
- **Network connections**: VNet peering, subnet assignments, NSG rules, private endpoints
|
||||
- **Data flow**: Apps → Databases, Functions → Storage, API Management → Backends
|
||||
- **Identity**: Managed identities connecting to resources
|
||||
- **Configuration**: App Settings pointing to Key Vaults, connection strings
|
||||
- **Dependencies**: Parent-child relationships, required resources
|
||||
|
||||
### Step 3: Diagram Construction
|
||||
|
||||
Create a **detailed Mermaid diagram** using the `graph TB` (top-to-bottom) or `graph LR` (left-to-right) format:
|
||||
|
||||
**Diagram Structure Guidelines:**
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
%% Use subgraphs to group related resources
|
||||
subgraph "Resource Group: [name]"
|
||||
subgraph "Network Layer"
|
||||
VNET[Virtual Network<br/>10.0.0.0/16]
|
||||
SUBNET1[Subnet: web<br/>10.0.1.0/24]
|
||||
SUBNET2[Subnet: data<br/>10.0.2.0/24]
|
||||
NSG[Network Security Group]
|
||||
end
|
||||
|
||||
subgraph "Compute Layer"
|
||||
APP[App Service<br/>Plan: P1v2]
|
||||
FUNC[Function App<br/>Runtime: .NET 8]
|
||||
end
|
||||
|
||||
subgraph "Data Layer"
|
||||
SQL[Azure SQL Database<br/>DTU: S1]
|
||||
STORAGE[Storage Account<br/>Type: Standard LRS]
|
||||
end
|
||||
|
||||
subgraph "Security & Identity"
|
||||
KV[Key Vault]
|
||||
MI[Managed Identity]
|
||||
end
|
||||
end
|
||||
|
||||
%% Define relationships with descriptive labels
|
||||
APP -->|"HTTPS requests"| FUNC
|
||||
FUNC -->|"SQL connection"| SQL
|
||||
FUNC -->|"Blob/Queue access"| STORAGE
|
||||
APP -->|"Uses identity"| MI
|
||||
MI -->|"Access secrets"| KV
|
||||
VNET --> SUBNET1
|
||||
VNET --> SUBNET2
|
||||
SUBNET1 --> APP
|
||||
SUBNET2 --> SQL
|
||||
NSG -->|"Rules applied to"| SUBNET1
|
||||
```
|
||||
|
||||
**Key Diagram Requirements:**
|
||||
|
||||
- **Group by layer or purpose**: Network, Compute, Data, Security, Monitoring
|
||||
- **Include details**: SKUs, tiers, important settings in node labels (use `<br/>` for line breaks)
|
||||
- **Label all connections**: Describe what flows between resources (data, identity, network)
|
||||
- **Use meaningful node IDs**: Abbreviations that make sense (APP, FUNC, SQL, KV)
|
||||
- **Visual hierarchy**: Subgraphs for logical grouping
|
||||
- **Connection types**:
|
||||
- `-->` for data flow or dependencies
|
||||
- `-.->` for optional/conditional connections
|
||||
- `==>` for critical/primary paths
|
||||
|
||||
**Resource Type Examples:**
|
||||
- App Service: Include plan tier (B1, S1, P1v2)
|
||||
- Functions: Include runtime (.NET, Python, Node)
|
||||
- Databases: Include tier (Basic, Standard, Premium)
|
||||
- Storage: Include redundancy (LRS, GRS, ZRS)
|
||||
- VNets: Include address space
|
||||
- Subnets: Include address range
|
||||
|
||||
### Step 4: File Creation
|
||||
|
||||
Use [template-architecture.md](./assets/template-architecture.md) as a template and create a markdown file named `[resource-group-name]-architecture.md` with:
|
||||
|
||||
1. **Header**: Resource group name, subscription, region
|
||||
2. **Summary**: Brief overview of the architecture (2-3 paragraphs)
|
||||
3. **Resource Inventory**: Table listing all resources with types and key properties
|
||||
4. **Architecture Diagram**: The complete Mermaid diagram
|
||||
5. **Relationship Details**: Explanation of key connections and data flows
|
||||
6. **Notes**: Any important observations, potential issues, or recommendations
|
||||
|
||||
## Operating Guidelines
|
||||
|
||||
### Quality Standards
|
||||
|
||||
- **Accuracy**: Verify all resource details before including in diagram
|
||||
- **Completeness**: Don't omit resources; include everything in the resource group
|
||||
- **Clarity**: Use clear, descriptive labels and logical grouping
|
||||
- **Detail Level**: Include configuration details that matter for architecture understanding
|
||||
- **Relationships**: Show ALL significant connections, not just obvious ones
|
||||
|
||||
### Tool Usage Patterns
|
||||
|
||||
1. **Azure MCP Search**:
|
||||
- Use `intent="list resource groups"` to discover resource groups
|
||||
- Use `intent="list resources in group"` with group name to get all resources
|
||||
- Use `intent="get resource details"` for individual resource analysis
|
||||
- Use `command` parameter when you need specific Azure operations
|
||||
|
||||
2. **File Creation**:
|
||||
- Always create in workspace root or a `docs/` folder if it exists
|
||||
- Use clear, descriptive filenames: `[rg-name]-architecture.md`
|
||||
- Ensure Mermaid syntax is valid (test syntax mentally before output)
|
||||
|
||||
3. **Terminal (when needed)**:
|
||||
- Use Azure CLI for complex queries not available via MCP
|
||||
- Example: `az resource list --resource-group <name> --output json`
|
||||
- Example: `az network vnet show --resource-group <name> --name <vnet-name>`
|
||||
|
||||
### Constraints & Boundaries
|
||||
|
||||
**Always Do:**
|
||||
- ✅ List resource groups if not specified
|
||||
- ✅ Wait for user selection before proceeding
|
||||
- ✅ Analyze ALL resources in the group
|
||||
- ✅ Create detailed, accurate diagrams
|
||||
- ✅ Include configuration details in node labels
|
||||
- ✅ Group resources logically with subgraphs
|
||||
- ✅ Label all connections descriptively
|
||||
- ✅ Create a complete markdown file with diagram
|
||||
|
||||
**Never Do:**
|
||||
- ❌ Skip resources because they seem unimportant
|
||||
- ❌ Make assumptions about resource relationships without verification
|
||||
- ❌ Create incomplete or placeholder diagrams
|
||||
- ❌ Omit configuration details that affect architecture
|
||||
- ❌ Proceed without confirming resource group selection
|
||||
- ❌ Generate invalid Mermaid syntax
|
||||
- ❌ Modify or delete Azure resources (read-only analysis)
|
||||
|
||||
### Edge Cases & Error Handling
|
||||
|
||||
- **No resources found**: Inform user and verify resource group name
|
||||
- **Permission issues**: Explain what's missing and suggest checking RBAC
|
||||
- **Complex architectures (50+ resources)**: Consider creating multiple diagrams by layer
|
||||
- **Cross-resource-group dependencies**: Note external dependencies in diagram notes
|
||||
- **Resources without clear relationships**: Group in "Other Resources" section
|
||||
|
||||
## Output Format Specifications
|
||||
|
||||
### Mermaid Diagram Syntax
|
||||
- Use `graph TB` (top-to-bottom) for vertical layouts
|
||||
- Use `graph LR` (left-to-right) for horizontal layouts (better for wide architectures)
|
||||
- Subgraph syntax: `subgraph "Descriptive Name"`
|
||||
- Node syntax: `ID["Display Name<br/>Details"]`
|
||||
- Connection syntax: `SOURCE -->|"Label"| TARGET`
|
||||
|
||||
### Markdown Structure
|
||||
- Use H1 for main title
|
||||
- Use H2 for major sections
|
||||
- Use H3 for subsections
|
||||
- Use tables for resource inventories
|
||||
- Use bullet lists for notes and recommendations
|
||||
- Use code blocks with `mermaid` language tag for diagrams
|
||||
|
||||
## Example Interaction
|
||||
|
||||
**User**: "Analyze my production resource group"
|
||||
|
||||
**Agent**:
|
||||
1. Lists all resource groups in subscription
|
||||
2. Asks user to select: "Which resource group? 1) rg-prod-app, 2) rg-dev-app, 3) rg-shared"
|
||||
3. User selects: "1"
|
||||
4. Queries all resources in rg-prod-app
|
||||
5. Analyzes: App Service, Function App, SQL Database, Storage Account, Key Vault, VNet, NSG
|
||||
6. Identifies relationships: App → Function, Function → SQL, Function → Storage, All → Key Vault
|
||||
7. Creates detailed Mermaid diagram with subgraphs
|
||||
8. Generates `rg-prod-app-architecture.md` with complete documentation
|
||||
9. Displays: "Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships."
|
||||
|
||||
## Success Criteria
|
||||
|
||||
A successful analysis includes:
|
||||
- ✅ Valid resource group identified
|
||||
- ✅ All resources discovered and analyzed
|
||||
- ✅ All significant relationships mapped
|
||||
- ✅ Detailed Mermaid diagram with proper grouping
|
||||
- ✅ Complete markdown file created
|
||||
- ✅ Clear, actionable documentation
|
||||
- ✅ Valid Mermaid syntax that renders correctly
|
||||
- ✅ Professional, architect-level output
|
||||
|
||||
Your goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user