mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-12 20:25:11 +00:00
Merge branch 'main' into main
This commit is contained in:
1939
.all-contributorsrc
1939
.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
.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
|
||||
|
||||
|
||||
324
README.md
324
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,246 @@ 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>
|
||||
</tr>
|
||||
</tbody>
|
||||
<tfoot>
|
||||
|
||||
@@ -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**.*
|
||||
@@ -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. |
|
||||
|
||||
@@ -128,11 +128,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. |
|
||||
|
||||
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);
|
||||
};
|
||||
};
|
||||
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/)
|
||||
@@ -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
|
||||
|
||||
@@ -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,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,6 +1,6 @@
|
||||
---
|
||||
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.'
|
||||
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,6 +1,6 @@
|
||||
---
|
||||
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.'
|
||||
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,6 +1,6 @@
|
||||
---
|
||||
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.'
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user