diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 0000000..ae9f72a --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,793 @@ +{ + "projectName": "awesome-copilot", + "projectOwner": "github", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": false, + "commitConvention": "none", + "contributors": [ + { + "login": "aaronpowell", + "name": "Aaron Powell", + "avatar_url": "https://avatars.githubusercontent.com/u/434140?v=4", + "profile": "https://www.aaron-powell.com/", + "contributions": [ + "code", + "maintenance", + "projectManagement", + "promotion" + ] + }, + { + "login": "mubaidr", + "name": "Muhammad Ubaid Raza", + "avatar_url": "https://avatars.githubusercontent.com/u/2222702?v=4", + "profile": "https://mubaidr.js.org/", + "contributions": [ + "code" + ] + }, + { + "login": "digitarald", + "name": "Harald Kirschner", + "avatar_url": "https://avatars.githubusercontent.com/u/8599?v=4", + "profile": "http://digitarald.de/", + "contributions": [ + "code" + ] + }, + { + "login": "mbianchidev", + "name": "Matteo Bianchi", + "avatar_url": "https://avatars.githubusercontent.com/u/37507190?v=4", + "profile": "https://github.com/mbianchidev", + "contributions": [ + "code" + ] + }, + { + "login": "AungMyoKyaw", + "name": "Aung Myo Kyaw", + "avatar_url": "https://avatars.githubusercontent.com/u/9404824?v=4", + "profile": "https://github.com/AungMyoKyaw", + "contributions": [ + "code" + ] + }, + { + "login": "PlagueHO", + "name": "Daniel Scott-Raynsford", + "avatar_url": "https://avatars.githubusercontent.com/u/7589164?v=4", + "profile": "https://danielscottraynsford.com/", + "contributions": [ + "code" + ] + }, + { + "login": "burkeholland", + "name": "Burke Holland", + "avatar_url": "https://avatars.githubusercontent.com/u/686963?v=4", + "profile": "https://github.com/burkeholland", + "contributions": [ + "code" + ] + }, + { + "login": "PEZ", + "name": "Peter Strömberg", + "avatar_url": "https://avatars.githubusercontent.com/u/30010?v=4", + "profile": "https://calva.io/", + "contributions": [ + "code" + ] + }, + { + "login": "danielmeppiel", + "name": "Daniel Meppiel", + "avatar_url": "https://avatars.githubusercontent.com/u/51440732?v=4", + "profile": "https://www.devprodlogs.com/", + "contributions": [ + "code" + ] + }, + { + "login": "jamesmontemagno", + "name": "James Montemagno", + "avatar_url": "https://avatars.githubusercontent.com/u/1676321?v=4", + "profile": "https://montemagno.com/", + "contributions": [ + "code" + ] + }, + { + "login": "VamshiVerma", + "name": "Vamshi Verma", + "avatar_url": "https://avatars.githubusercontent.com/u/21999324?v=4", + "profile": "https://github.com/VamshiVerma", + "contributions": [ + "code" + ] + }, + { + "login": "sinedied", + "name": "Yohan Lasorsa", + "avatar_url": "https://avatars.githubusercontent.com/u/593151?v=4", + "profile": "https://github.com/sinedied", + "contributions": [ + "code" + ] + }, + { + "login": "OrenMe", + "name": "Oren Me", + "avatar_url": "https://avatars.githubusercontent.com/u/5461862?v=4", + "profile": "https://github.com/OrenMe", + "contributions": [ + "code" + ] + }, + { + "login": "mjrousos", + "name": "Mike Rousos", + "avatar_url": "https://avatars.githubusercontent.com/u/10077254?v=4", + "profile": "https://github.com/mjrousos", + "contributions": [ + "code" + ] + }, + { + "login": "guiopen", + "name": "Guilherme do Amaral Alves ", + "avatar_url": "https://avatars.githubusercontent.com/u/94094527?v=4", + "profile": "https://github.com/guiopen", + "contributions": [ + "code" + ] + }, + { + "login": "troystaylor", + "name": "Troy Simeon Taylor", + "avatar_url": "https://avatars.githubusercontent.com/u/44444967?v=4", + "profile": "https://www.buymeacoffee.com/troystaylor", + "contributions": [ + "code" + ] + }, + { + "login": "ambilykk", + "name": "Ambily", + "avatar_url": "https://avatars.githubusercontent.com/u/10282550?v=4", + "profile": "https://www.linkedin.com/in/ambilykk/", + "contributions": [ + "code" + ] + }, + { + "login": "tgrall", + "name": "Tugdual Grall", + "avatar_url": "https://avatars.githubusercontent.com/u/541250?v=4", + "profile": "http://tgrall.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "TianqiZhang", + "name": "Tianqi Zhang", + "avatar_url": "https://avatars.githubusercontent.com/u/5326582?v=4", + "profile": "https://github.com/TianqiZhang", + "contributions": [ + "code" + ] + }, + { + "login": "shubham070", + "name": "Shubham Gaikwad", + "avatar_url": "https://avatars.githubusercontent.com/u/5480589?v=4", + "profile": "https://github.com/shubham070", + "contributions": [ + "code" + ] + }, + { + "login": "sdolgin", + "name": "Saul Dolgin", + "avatar_url": "https://avatars.githubusercontent.com/u/576449?v=4", + "profile": "https://github.com/sdolgin", + "contributions": [ + "code" + ] + }, + { + "login": "nullchimp", + "name": "NULLchimp", + "avatar_url": "https://avatars.githubusercontent.com/u/58362593?v=4", + "profile": "https://github.com/nullchimp", + "contributions": [ + "code" + ] + }, + { + "login": "MattVevang", + "name": "Matt Vevang", + "avatar_url": "https://avatars.githubusercontent.com/u/20714898?v=4", + "profile": "https://github.com/MattVevang", + "contributions": [ + "code" + ] + }, + { + "login": "justinyoo", + "name": "Justin Yoo", + "avatar_url": "https://avatars.githubusercontent.com/u/1538528?v=4", + "profile": "https://devkimchi.com/", + "contributions": [ + "code" + ] + }, + { + "login": "0GiS0", + "name": "Gisela Torres", + "avatar_url": "https://avatars.githubusercontent.com/u/175379?v=4", + "profile": "https://hachyderm.io/@0gis0", + "contributions": [ + "code" + ] + }, + { + "login": "debs-obrien", + "name": "Debbie O'Brien", + "avatar_url": "https://avatars.githubusercontent.com/u/13063165?v=4", + "profile": "https://debbie.codes/", + "contributions": [ + "code" + ] + }, + { + "login": "agreaves-ms", + "name": "Allen Greaves", + "avatar_url": "https://avatars.githubusercontent.com/u/111466195?v=4", + "profile": "https://github.com/agreaves-ms", + "contributions": [ + "code" + ] + }, + { + "login": "AmeliaRose802", + "name": "Amelia Payne", + "avatar_url": "https://avatars.githubusercontent.com/u/26167931?v=4", + "profile": "https://github.com/AmeliaRose802", + "contributions": [ + "code" + ] + }, + { + "login": "SebastienDegodez", + "name": "Sebastien DEGODEZ", + "avatar_url": "https://avatars.githubusercontent.com/u/2349146?v=4", + "profile": "https://github.com/SebastienDegodez", + "contributions": [ + "code" + ] + }, + { + "login": "segraef", + "name": "Sebastian Gräf", + "avatar_url": "https://avatars.githubusercontent.com/u/19261257?v=4", + "profile": "https://graef.io/", + "contributions": [ + "code" + ] + }, + { + "login": "9ssi7", + "name": "Salih İbrahimbaş", + "avatar_url": "https://avatars.githubusercontent.com/u/76786120?v=4", + "profile": "https://9ssi7.dev/", + "contributions": [ + "code" + ] + }, + { + "login": "inquinity", + "name": "Robert Altman", + "avatar_url": "https://avatars.githubusercontent.com/u/406234?v=4", + "profile": "https://github.com/inquinity", + "contributions": [ + "code" + ] + }, + { + "login": "pertrai1", + "name": "Rob Simpson", + "avatar_url": "https://avatars.githubusercontent.com/u/442374?v=4", + "profile": "https://github.com/pertrai1", + "contributions": [ + "code" + ] + }, + { + "login": "ricksmit3000", + "name": "Rick Smit", + "avatar_url": "https://avatars.githubusercontent.com/u/7207783?v=4", + "profile": "https://ricksm.it/", + "contributions": [ + "code" + ] + }, + { + "login": "psmulovics", + "name": "Peter Smulovics", + "avatar_url": "https://avatars.githubusercontent.com/u/28162552?v=4", + "profile": "http://dotneteers.net/", + "contributions": [ + "code" + ] + }, + { + "login": "pelikhan", + "name": "Peli de Halleux", + "avatar_url": "https://avatars.githubusercontent.com/u/4175913?v=4", + "profile": "https://github.com/pelikhan", + "contributions": [ + "code" + ] + }, + { + "login": "paulomorgado", + "name": "Paulo Morgado", + "avatar_url": "https://avatars.githubusercontent.com/u/470455?v=4", + "profile": "https://www.paulomorgado.net/", + "contributions": [ + "code" + ] + }, + { + "login": "nickytonline", + "name": "Nick Taylor", + "avatar_url": "https://avatars.githubusercontent.com/u/833231?v=4", + "profile": "https://nickyt.co/", + "contributions": [ + "code" + ] + }, + { + "login": "mikeparker104", + "name": "Mike Parker", + "avatar_url": "https://avatars.githubusercontent.com/u/12763221?v=4", + "profile": "https://github.com/mikeparker104", + "contributions": [ + "code" + ] + }, + { + "login": "mikekistler", + "name": "Mike Kistler", + "avatar_url": "https://avatars.githubusercontent.com/u/85643503?v=4", + "profile": "https://github.com/mikekistler", + "contributions": [ + "code" + ] + }, + { + "login": "mfairchild365", + "name": "Michael Fairchild", + "avatar_url": "https://avatars.githubusercontent.com/u/498678?v=4", + "profile": "https://a11ysupport.io/", + "contributions": [ + "code" + ] + }, + { + "login": "michaelvolz", + "name": "Michael A. Volz (Flynn)", + "avatar_url": "https://avatars.githubusercontent.com/u/129928?v=4", + "profile": "https://www.linkedin.com/in/michael-volz/", + "contributions": [ + "code" + ] + }, + { + "login": "4regab", + "name": "4regab", + "avatar_url": "https://avatars.githubusercontent.com/u/178603515?v=4", + "profile": "https://github.com/4regab", + "contributions": [ + "code" + ] + }, + { + "login": "TheovanKraay", + "name": "Theo van Kraay", + "avatar_url": "https://avatars.githubusercontent.com/u/24420698?v=4", + "profile": "https://github.com/TheovanKraay", + "contributions": [ + "code" + ] + }, + { + "login": "twitthoeft-gls", + "name": "Troy Witthoeft (glsauto)", + "avatar_url": "https://avatars.githubusercontent.com/u/132710946?v=4", + "profile": "http://glsauto.com/", + "contributions": [ + "code" + ] + }, + { + "login": "iletai", + "name": "Tài Lê", + "avatar_url": "https://avatars.githubusercontent.com/u/26614687?v=4", + "profile": "https://github.com/iletai", + "contributions": [ + "code" + ] + }, + { + "login": "udayakumarreddyv", + "name": "Udaya Veeramreddygari", + "avatar_url": "https://avatars.githubusercontent.com/u/9591887?v=4", + "profile": "https://tinyurl.com/3p5j9mwe", + "contributions": [ + "code" + ] + }, + { + "login": "warengonzaga", + "name": "Waren Gonzaga", + "avatar_url": "https://avatars.githubusercontent.com/u/15052701?v=4", + "profile": "https://bio.warengonzaga.com/", + "contributions": [ + "code" + ] + }, + { + "login": "doggy8088", + "name": "Will 保哥", + "avatar_url": "https://avatars.githubusercontent.com/u/88981?v=4", + "profile": "https://blog.miniasp.com/", + "contributions": [ + "code" + ] + }, + { + "login": "yukiomoto", + "name": "Yuki Omoto", + "avatar_url": "https://avatars.githubusercontent.com/u/38450410?v=4", + "profile": "https://github.com/yukiomoto", + "contributions": [ + "code" + ] + }, + { + "login": "hueanmy", + "name": "Meii", + "avatar_url": "https://avatars.githubusercontent.com/u/20430626?v=4", + "profile": "https://github.com/hueanmy", + "contributions": [ + "code" + ] + }, + { + "login": "samqbush", + "name": "samqbush", + "avatar_url": "https://avatars.githubusercontent.com/u/74389839?v=4", + "profile": "https://github.com/samqbush", + "contributions": [ + "code" + ] + }, + { + "login": "sdanzo-hrb", + "name": "sdanzo-hrb", + "avatar_url": "https://avatars.githubusercontent.com/u/136493100?v=4", + "profile": "https://github.com/sdanzo-hrb", + "contributions": [ + "code" + ] + }, + { + "login": "voidfnc", + "name": "voidfnc", + "avatar_url": "https://avatars.githubusercontent.com/u/194750710?v=4", + "profile": "https://github.com/voidfnc", + "contributions": [ + "code" + ] + }, + { + "login": "webreidi", + "name": "Wendy Breiding", + "avatar_url": "https://avatars.githubusercontent.com/u/55603905?v=4", + "profile": "https://github.com/webreidi", + "contributions": [ + "code" + ] + }, + { + "login": "zooav", + "name": "Ankur Sharma", + "avatar_url": "https://avatars.githubusercontent.com/u/12625412?v=4", + "profile": "https://github.com/zooav", + "contributions": [ + "code" + ] + }, + { + "login": "Jian-Min-Huang", + "name": "黃健旻 Vincent Huang", + "avatar_url": "https://avatars.githubusercontent.com/u/6296280?v=4", + "profile": "https://jianminhuang.cc/", + "contributions": [ + "code" + ] + }, + { + "login": "dgh06175", + "name": "이상현", + "avatar_url": "https://avatars.githubusercontent.com/u/77305722?v=4", + "profile": "https://github.com/dgh06175", + "contributions": [ + "code" + ] + }, + { + "login": "abdidaudpropel", + "name": "Abdi Daud", + "avatar_url": "https://avatars.githubusercontent.com/u/51310019?v=4", + "profile": "https://github.com/abdidaudpropel", + "contributions": [ + "code" + ] + }, + { + "login": "AClerbois", + "name": "Adrien Clerbois", + "avatar_url": "https://avatars.githubusercontent.com/u/50712277?v=4", + "profile": "http://www.senseof.tech/", + "contributions": [ + "code" + ] + }, + { + "login": "tegola", + "name": "Alan Sprecacenere", + "avatar_url": "https://avatars.githubusercontent.com/u/1868590?v=4", + "profile": "http://www.qreate.it/", + "contributions": [ + "code" + ] + }, + { + "login": "askpt", + "name": "André Silva", + "avatar_url": "https://avatars.githubusercontent.com/u/2493377?v=4", + "profile": "https://asilva.dev/", + "contributions": [ + "code" + ] + }, + { + "login": "arey", + "name": "Antoine Rey", + "avatar_url": "https://avatars.githubusercontent.com/u/838318?v=4", + "profile": "https://javaetmoi.com/", + "contributions": [ + "code" + ] + }, + { + "login": "artemsaveliev", + "name": "Artem Saveliev", + "avatar_url": "https://avatars.githubusercontent.com/u/15679218?v=4", + "profile": "https://github.com/artemsaveliev", + "contributions": [ + "code" + ] + }, + { + "login": "brunoborges", + "name": "Bruno Borges", + "avatar_url": "https://avatars.githubusercontent.com/u/129743?v=4", + "profile": "http://brunoborges.io/", + "contributions": [ + "code" + ] + }, + { + "login": "tossnet", + "name": "Christophe Peugnet", + "avatar_url": "https://avatars.githubusercontent.com/u/3845786?v=4", + "profile": "https://www.peug.net/", + "contributions": [ + "code" + ] + }, + { + "login": "MovingLive", + "name": "Chtive", + "avatar_url": "https://avatars.githubusercontent.com/u/14792628?v=4", + "profile": "https://www.movinglive.ca/", + "contributions": [ + "code" + ] + }, + { + "login": "craigbekker", + "name": "Craig Bekker", + "avatar_url": "https://avatars.githubusercontent.com/u/1115912?v=4", + "profile": "https://github.com/craigbekker", + "contributions": [ + "code" + ] + }, + { + "login": "breakid", + "name": "Dan", + "avatar_url": "https://avatars.githubusercontent.com/u/1446918?v=4", + "profile": "https://github.com/breakid", + "contributions": [ + "code" + ] + }, + { + "login": "ewega", + "name": "Eldrick Wega", + "avatar_url": "https://avatars.githubusercontent.com/u/26189114?v=4", + "profile": "https://github.com/ewega", + "contributions": [ + "code" + ] + }, + { + "login": "felixarjuna", + "name": "Felix Arjuna", + "avatar_url": "https://avatars.githubusercontent.com/u/79026094?v=4", + "profile": "https://www.felixarjuna.dev/", + "contributions": [ + "code" + ] + }, + { + "login": "feapaydin", + "name": "Furkan Enes", + "avatar_url": "https://avatars.githubusercontent.com/u/19946639?v=4", + "profile": "https://github.com/feapaydin", + "contributions": [ + "code" + ] + }, + { + "login": "gewarren", + "name": "Genevieve Warren", + "avatar_url": "https://avatars.githubusercontent.com/u/24882762?v=4", + "profile": "http://learn.microsoft.com/dotnet", + "contributions": [ + "code" + ] + }, + { + "login": "geoder101", + "name": "George Dernikos", + "avatar_url": "https://avatars.githubusercontent.com/u/145904?v=4", + "profile": "https://github.com/geoder101", + "contributions": [ + "code" + ] + }, + { + "login": "giomartinsdev", + "name": "Giovanni de Almeida Martins", + "avatar_url": "https://avatars.githubusercontent.com/u/125399281?v=4", + "profile": "https://github.com/giomartinsdev", + "contributions": [ + "code" + ] + }, + { + "login": "Ioana37", + "name": "Ioana A", + "avatar_url": "https://avatars.githubusercontent.com/u/69301842?v=4", + "profile": "https://github.com/Ioana37", + "contributions": [ + "code" + ] + }, + { + "login": "nohwnd", + "name": "Jakub Jareš", + "avatar_url": "https://avatars.githubusercontent.com/u/5735905?v=4", + "profile": "https://github.com/nohwnd", + "contributions": [ + "code" + ] + }, + { + "login": "joe-watkins", + "name": "Joe Watkins", + "avatar_url": "https://avatars.githubusercontent.com/u/3695795?v=4", + "profile": "http://joe-watkins.io/", + "contributions": [ + "code" + ] + }, + { + "login": "johnpapa", + "name": "John Papa", + "avatar_url": "https://avatars.githubusercontent.com/u/1202528?v=4", + "profile": "http://johnpapa.net/", + "contributions": [ + "code" + ] + }, + { + "login": "josephgonzales01", + "name": "Joseph Gonzales", + "avatar_url": "https://avatars.githubusercontent.com/u/15100839?v=4", + "profile": "http://www.sugbo4j.co.nz/", + "contributions": [ + "code" + ] + }, + { + "login": "josegarridodigio", + "name": "José Antonio Garrido", + "avatar_url": "https://avatars.githubusercontent.com/u/173672918?v=4", + "profile": "https://digio.es/", + "contributions": [ + "code" + ] + }, + { + "login": "Ranrar", + "name": "Kim Skov Rasmussen", + "avatar_url": "https://avatars.githubusercontent.com/u/95967772?v=4", + "profile": "https://github.com/Ranrar", + "contributions": [ + "code" + ] + }, + { + "login": "whiteken", + "name": "Kenny White", + "avatar_url": "https://avatars.githubusercontent.com/u/20211937?v=4", + "profile": "https://github.com/whiteken", + "contributions": [ + "code" + ] + }, + { + "login": "LouellaCreemers", + "name": "Louella Creemers", + "avatar_url": "https://avatars.githubusercontent.com/u/46204894?v=4", + "profile": "https://github.com/LouellaCreemers", + "contributions": [ + "code" + ] + }, + { + "login": "lukemurraynz", + "name": "Luke Murray", + "avatar_url": "https://avatars.githubusercontent.com/u/24467442?v=4", + "profile": "https://linktr.ee/lukemurray", + "contributions": [ + "code" + ] + }, + { + "login": "marknoble", + "name": "Mark Noble", + "avatar_url": "https://avatars.githubusercontent.com/u/3819700?v=4", + "profile": "http://marknoble.com/", + "contributions": [ + "code" + ] + } + ], + "contributorsPerLine": 7, + "linkToUsage": true +} diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml new file mode 100644 index 0000000..bb0241c --- /dev/null +++ b/.github/workflows/contributors.yml @@ -0,0 +1,67 @@ +name: Contributors + +on: + schedule: + - cron: '0 3 * * 0' # Weekly on Sundays at 3am UTC + workflow_dispatch: # Manual trigger + +jobs: + contributors: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: "20" + + - name: Install dependencies + run: npm install + + - name: Update contributors + uses: all-contributors/all-contributors-cli@v6.26.1 + with: + args: 'check' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Regenerate README + run: node update-readme.js + + - name: Check for changes + id: verify-changed-files + run: | + if git diff --exit-code > /dev/null; then + echo "changed=false" >> $GITHUB_OUTPUT + else + echo "changed=true" >> $GITHUB_OUTPUT + fi + + - name: Commit contributors + if: steps.verify-changed-files.outputs.changed == 'true' + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "docs: update contributors" -a || exit 0 + + - name: Create Pull Request + if: steps.verify-changed-files.outputs.changed == 'true' + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "docs: update contributors" + title: "Update Contributors" + body: | + Auto-generated PR to update contributors. + + This PR was automatically created by the contributors workflow. + branch: update-contributors + delete-branch: true \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eed9c78..87a07e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -113,6 +113,8 @@ You are an expert [domain/role] with deep knowledge in [specific areas]. - 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](#contributors-) section! We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project. + ## What We Accept We welcome contributions covering any technology, framework, or development practice that helps developers work more effectively with GitHub Copilot. This includes: @@ -145,6 +147,21 @@ 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 + +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 welcome contributions of all types, including: +- 📝 Documentation improvements +- 💻 Code contributions +- 🐛 Bug reports and fixes +- 🎨 Design improvements +- 💡 Ideas and suggestions +- 🤔 Answering questions +- 📢 Promoting the project + +Your contributions help make this resource better for the entire GitHub Copilot community! + ## Code of Conduct Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. diff --git a/README.chatmodes.md b/README.chatmodes.md index 8730bd2..3ec8c74 100644 --- a/README.chatmodes.md +++ b/README.chatmodes.md @@ -1,7 +1,16 @@ # 💭 Custom Chat Modes Custom chat modes define specific behaviors and tools for GitHub Copilot Chat, enabling enhanced context-aware assistance for particular tasks or workflows. -> 💡 **Usage**: Create new chat modes using the command `Chat: Configure Chat Modes...`, then switch your chat mode in the Chat input from _Agent_ or _Ask_ to your own mode. +### How to Use Custom Chat Modes + +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the chat mode you want to use +- Download the `*.chatmode.md` file and manually install it in VS Code using the Command Palette + +**To Activate/Use:** +- Import the chat mode configuration into your VS Code settings +- Access the installed chat modes through the VS Code Chat interface +- Select the desired chat mode from the available options in VS Code Chat | Title | Description | | ----- | ----------- | diff --git a/README.instructions.md b/README.instructions.md index d680a77..1b0d45b 100644 --- a/README.instructions.md +++ b/README.instructions.md @@ -1,7 +1,16 @@ # 📋 Custom Instructions -Team and project-specific instructions to enhance GitHub Copilot's behavior for specific technologies and coding practices: -> 💡 **Usage**: Copy these instructions to your `.github/copilot-instructions.md` file or create task-specific `.github/.instructions.md` files in your workspace's `.github/instructions` folder. +Team and project-specific instructions to enhance GitHub Copilot's behavior for specific technologies and coding practices. +### How to Use Custom Instructions + +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the instruction you want to use +- Download the `*.instructions.md` file and manually add it to your project's instruction collection + +**To Use/Apply:** +- Copy these instructions to your `.github/copilot-instructions.md` file in your workspace +- Create task-specific `.github/.instructions.md` files in your workspace's `.github/instructions` folder +- Instructions automatically apply to Copilot behavior once installed in your workspace | Title | Description | | ----- | ----------- | @@ -9,6 +18,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [AI Prompt Engineering & Safety Best Practices](instructions/ai-prompt-engineering-safety-best-practices.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fai-prompt-engineering-safety-best-practices.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fai-prompt-engineering-safety-best-practices.instructions.md) | Comprehensive best practices for AI prompt engineering, safety frameworks, bias mitigation, and responsible AI usage for Copilot and LLMs. | | [Angular Development Instructions](instructions/angular.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fangular.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fangular.instructions.md) | Angular-specific coding standards and best practices | | [ASP.NET REST API Development](instructions/aspnet-rest-apis.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Faspnet-rest-apis.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Faspnet-rest-apis.instructions.md) | Guidelines for building REST APIs with ASP.NET | +| [Azure DevOps Pipeline YAML Best Practices](instructions/azure-devops-pipelines.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-devops-pipelines.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-devops-pipelines.instructions.md) | Best practices for Azure DevOps Pipeline YAML files | | [Azure Functions Typescript](instructions/azure-functions-typescript.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-functions-typescript.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-functions-typescript.instructions.md) | TypeScript patterns for Azure Functions | | [Azure Verified Modules (AVM) Terraform](instructions/azure-verified-modules-terraform.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-verified-modules-terraform.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fazure-verified-modules-terraform.instructions.md) | Azure Verified Modules (AVM) and Terraform | | [Bicep Code Best Practices](instructions/bicep-code-best-practices.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fbicep-code-best-practices.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fbicep-code-best-practices.instructions.md) | Infrastructure as Code with Bicep | diff --git a/README.md b/README.md index c73d716..0f2516f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # 🤖 Awesome GitHub Copilot Customizations [![Powered by Awesome Copilot](https://img.shields.io/badge/Powered_by-Awesome_Copilot-blue?logo=githubcopilot)](https://aka.ms/awesome-github-copilot) + +[![All Contributors](https://img.shields.io/badge/all_contributors-86-orange.svg?style=flat-square)](#contributors-) + A curated collection of prompts, instructions, and chat modes to supercharge your GitHub Copilot experience across different domains, languages, and use cases. @@ -75,6 +78,146 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file **Ready to supercharge your coding experience?** Start exploring our [prompts](README.prompts.md), [instructions](README.instructions.md), and [chat modes](README.chatmodes.md)! +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Aaron Powell
Aaron Powell

💻 🚧 📆 📣
Muhammad Ubaid Raza
Muhammad Ubaid Raza

💻
Harald Kirschner
Harald Kirschner

💻
Matteo Bianchi
Matteo Bianchi

💻
Aung Myo Kyaw
Aung Myo Kyaw

💻
Daniel Scott-Raynsford
Daniel Scott-Raynsford

💻
Burke Holland
Burke Holland

💻
Peter Strömberg
Peter Strömberg

💻
Daniel Meppiel
Daniel Meppiel

💻
James Montemagno
James Montemagno

💻
Vamshi Verma
Vamshi Verma

💻
Yohan Lasorsa
Yohan Lasorsa

💻
Oren Me
Oren Me

💻
Mike Rousos
Mike Rousos

💻
Guilherme do Amaral Alves
Guilherme do Amaral Alves

💻
Troy Simeon Taylor
Troy Simeon Taylor

💻
Ambily
Ambily

💻
Tugdual Grall
Tugdual Grall

💻
Tianqi Zhang
Tianqi Zhang

💻
Shubham Gaikwad
Shubham Gaikwad

💻
Saul Dolgin
Saul Dolgin

💻
NULLchimp
NULLchimp

💻
Matt Vevang
Matt Vevang

💻
Justin Yoo
Justin Yoo

💻
Gisela Torres
Gisela Torres

💻
Debbie O'Brien
Debbie O'Brien

💻
Allen Greaves
Allen Greaves

💻
Amelia Payne
Amelia Payne

💻
Sebastien DEGODEZ
Sebastien DEGODEZ

💻
Sebastian Gräf
Sebastian Gräf

💻
Salih İbrahimbaş
Salih İbrahimbaş

💻
Robert Altman
Robert Altman

💻
Rob Simpson
Rob Simpson

💻
Rick Smit
Rick Smit

💻
Peter Smulovics
Peter Smulovics

💻
Peli de Halleux
Peli de Halleux

💻
Paulo Morgado
Paulo Morgado

💻
Nick Taylor
Nick Taylor

💻
Mike Parker
Mike Parker

💻
Mike Kistler
Mike Kistler

💻
Michael Fairchild
Michael Fairchild

💻
Michael A. Volz (Flynn)
Michael A. Volz (Flynn)

💻
4regab
4regab

💻
Theo van Kraay
Theo van Kraay

💻
Troy Witthoeft (glsauto)
Troy Witthoeft (glsauto)

💻
Tài Lê
Tài Lê

💻
Udaya Veeramreddygari
Udaya Veeramreddygari

💻
Waren Gonzaga
Waren Gonzaga

💻
Will 保哥
Will 保哥

💻
Yuki Omoto
Yuki Omoto

💻
Meii
Meii

💻
samqbush
samqbush

💻
sdanzo-hrb
sdanzo-hrb

💻
voidfnc
voidfnc

💻
Wendy Breiding
Wendy Breiding

💻
Ankur Sharma
Ankur Sharma

💻
黃健旻 Vincent Huang
黃健旻 Vincent Huang

💻
이상현
이상현

💻
Abdi Daud
Abdi Daud

💻
Adrien Clerbois
Adrien Clerbois

💻
Alan Sprecacenere
Alan Sprecacenere

💻
André Silva
André Silva

💻
Antoine Rey
Antoine Rey

💻
Artem Saveliev
Artem Saveliev

💻
Bruno Borges
Bruno Borges

💻
Christophe Peugnet
Christophe Peugnet

💻
Chtive
Chtive

💻
Craig Bekker
Craig Bekker

💻
Dan
Dan

💻
Eldrick Wega
Eldrick Wega

💻
Felix Arjuna
Felix Arjuna

💻
Furkan Enes
Furkan Enes

💻
Genevieve Warren
Genevieve Warren

💻
George Dernikos
George Dernikos

💻
Giovanni de Almeida Martins
Giovanni de Almeida Martins

💻
Ioana A
Ioana A

💻
Jakub Jareš
Jakub Jareš

💻
Joe Watkins
Joe Watkins

💻
John Papa
John Papa

💻
Joseph Gonzales
Joseph Gonzales

💻
José Antonio Garrido
José Antonio Garrido

💻
Kim Skov Rasmussen
Kim Skov Rasmussen

💻
Kenny White
Kenny White

💻
Louella Creemers
Louella Creemers

💻
Luke Murray
Luke Murray

💻
Mark Noble
Mark Noble

💻
+ + Add your contributions + +
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + ## 📚 Additional Resources - [VS Code Copilot Customization Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization) - Official Microsoft documentation diff --git a/README.prompts.md b/README.prompts.md index d13b7ea..8f0367a 100644 --- a/README.prompts.md +++ b/README.prompts.md @@ -1,7 +1,16 @@ # 🎯 Reusable Prompts Ready-to-use prompt templates for specific development scenarios and tasks, defining prompt text with a specific mode, model, and available set of tools. -> 💡 **Usage**: Use `/prompt-name` in VS Code chat, run `Chat: Run Prompt` command, or hit the run button while you have a prompt open. +### How to Use Reusable Prompts + +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the prompt you want to use +- Download the `*.prompt.md` file and manually add it to your prompt collection + +**To Run/Execute:** +- Use `/prompt-name` in VS Code chat after installation +- Run the `Chat: Run Prompt` command from the Command Palette +- Hit the run button while you have a prompt file open in VS Code | Title | Description | | ----- | ----------- | @@ -27,6 +36,7 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi | [Create GitHub Issue from Specification](prompts/create-github-issue-feature-from-specification.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issue-feature-from-specification.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issue-feature-from-specification.prompt.md) | Create GitHub Issue for feature request from specification file using feature_request.yml template. | | [Create GitHub Issue from Implementation Plan](prompts/create-github-issues-feature-from-implementation-plan.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-feature-from-implementation-plan.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-feature-from-implementation-plan.prompt.md) | Create GitHub Issues from implementation plan phases using feature_request.yml or chore_request.yml templates. | | [Create GitHub Issues for Unmet Specification Requirements](prompts/create-github-issues-for-unmet-specification-requirements.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-for-unmet-specification-requirements.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-issues-for-unmet-specification-requirements.prompt.md) | Create GitHub Issues for unimplemented requirements from specification files using feature_request.yml template. | +| [Create GitHub Pull Request from Specification](prompts/create-github-pull-request-from-specification.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-pull-request-from-specification.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-github-pull-request-from-specification.prompt.md) | Create GitHub Pull Request for feature request from specification file using pull_request_template.md template. | | [Create Implementation Plan](prompts/create-implementation-plan.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-implementation-plan.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-implementation-plan.prompt.md) | Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure. | | [Create LLMs.txt File from Repository Structure](prompts/create-llms.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-llms.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-llms.prompt.md) | Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/ | | [Generate Standard OO Component Documentation](prompts/create-oo-component-documentation.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-oo-component-documentation.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fcreate-oo-component-documentation.prompt.md) | Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards. | @@ -45,6 +55,7 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi | [.NET/C# Design Pattern Review](prompts/dotnet-design-pattern-review.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fdotnet-design-pattern-review.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fdotnet-design-pattern-review.prompt.md) | Review the C#/.NET code for design pattern implementation and suggest improvements. | | [EditorConfig Expert](prompts/editorconfig.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Feditorconfig.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Feditorconfig.prompt.md) | Generates a comprehensive and best-practice-oriented .editorconfig file based on project analysis and user preferences. | | [Entity Framework Core Best Practices](prompts/ef-core.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fef-core.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fef-core.prompt.md) | Get best practices for Entity Framework Core | +| [Act Informed: First understand together with the human, then do](prompts/first-ask.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffirst-ask.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffirst-ask.prompt.md) | Interactive, input-tool powered, task refinement workflow: interrogates scope, deliverables, constraints before carrying out the task; Requires the Joyride extension. | | [Project Folder Structure Blueprint Generator](prompts/folder-structure-blueprint-generator.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffolder-structure-blueprint-generator.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Ffolder-structure-blueprint-generator.prompt.md) | Comprehensive technology-agnostic prompt for analyzing and documenting project folder structures. Auto-detects project types (.NET, Java, React, Angular, Python, Node.js, Flutter), generates detailed blueprints with visualization options, naming conventions, file placement patterns, and extension templates for maintaining consistent code organization across diverse technology stacks. | | [Product Manager Assistant: Feature Identification and Specification](prompts/gen-specs-as-issues.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fgen-specs-as-issues.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fgen-specs-as-issues.prompt.md) | This workflow guides you through a systematic approach to identify missing features, prioritize them, and create detailed specifications for implementation. | | [Migration and Code Evolution Instructions Generator](prompts/generate-custom-instructions-from-codebase.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fgenerate-custom-instructions-from-codebase.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fgenerate-custom-instructions-from-codebase.prompt.md) | Migration and code evolution instructions generator for GitHub Copilot. Analyzes differences between two project versions (branches, commits, or releases) to create precise instructions allowing Copilot to maintain consistency during technology migrations, major refactoring, or framework version upgrades. | diff --git a/instructions/azure-devops-pipelines.instructions.md b/instructions/azure-devops-pipelines.instructions.md new file mode 100644 index 0000000..edc37c5 --- /dev/null +++ b/instructions/azure-devops-pipelines.instructions.md @@ -0,0 +1,185 @@ +--- +description: 'Best practices for Azure DevOps Pipeline YAML files' +applyTo: '**/azure-pipelines.yml, **/azure-pipelines*.yml, **/*.pipeline.yml' +--- + +# Azure DevOps Pipeline YAML Best Practices + +## General Guidelines + +- Use YAML syntax consistently with proper indentation (2 spaces) +- Always include meaningful names and display names for pipelines, stages, jobs, and steps +- Implement proper error handling and conditional execution +- Use variables and parameters to make pipelines reusable and maintainable +- Follow the principle of least privilege for service connections and permissions +- Include comprehensive logging and diagnostics for troubleshooting + +## Pipeline Structure + +- Organize complex pipelines using stages for better visualization and control +- Use jobs to group related steps and enable parallel execution when possible +- Implement proper dependencies between stages and jobs +- Use templates for reusable pipeline components +- Keep pipeline files focused and modular - split large pipelines into multiple files + +## Build Best Practices + +- Use specific agent pool versions and VM images for consistency +- Cache dependencies (npm, NuGet, Maven, etc.) to improve build performance +- Implement proper artifact management with meaningful names and retention policies +- Use build variables for version numbers and build metadata +- Include code quality gates (linting, testing, security scans) +- Ensure builds are reproducible and environment-independent + +## Testing Integration + +- Run unit tests as part of the build process +- Publish test results in standard formats (JUnit, VSTest, etc.) +- Include code coverage reporting and quality gates +- Implement integration and end-to-end tests in appropriate stages +- Use test impact analysis when available to optimize test execution +- Fail fast on test failures to provide quick feedback + +## Security Considerations + +- Use Azure Key Vault for sensitive configuration and secrets +- Implement proper secret management with variable groups +- Use service connections with minimal required permissions +- Enable security scans (dependency vulnerabilities, static analysis) +- Implement approval gates for production deployments +- Use managed identities when possible instead of service principals + +## Deployment Strategies + +- Implement proper environment promotion (dev → staging → production) +- Use deployment jobs with proper environment targeting +- Implement blue-green or canary deployment strategies when appropriate +- Include rollback mechanisms and health checks +- Use infrastructure as code (ARM, Bicep, Terraform) for consistent deployments +- Implement proper configuration management per environment + +## Variable and Parameter Management + +- Use variable groups for shared configuration across pipelines +- Implement runtime parameters for flexible pipeline execution +- Use conditional variables based on branches or environments +- Secure sensitive variables and mark them as secrets +- Document variable purposes and expected values +- Use variable templates for complex variable logic + +## Performance Optimization + +- Use parallel jobs and matrix strategies when appropriate +- Implement proper caching strategies for dependencies and build outputs +- Use shallow clone for Git operations when full history isn't needed +- Optimize Docker image builds with multi-stage builds and layer caching +- Monitor pipeline performance and optimize bottlenecks +- Use pipeline resource triggers efficiently + +## Monitoring and Observability + +- Include comprehensive logging throughout the pipeline +- Use Azure Monitor and Application Insights for deployment tracking +- Implement proper notification strategies for failures and successes +- Include deployment health checks and automated rollback triggers +- Use pipeline analytics to identify improvement opportunities +- Document pipeline behavior and troubleshooting steps + +## Template and Reusability + +- Create pipeline templates for common patterns +- Use extends templates for complete pipeline inheritance +- Implement step templates for reusable task sequences +- Use variable templates for complex variable logic +- Version templates appropriately for stability +- Document template parameters and usage examples + +## Branch and Trigger Strategy + +- Implement appropriate triggers for different branch types +- Use path filters to trigger builds only when relevant files change +- Configure proper CI/CD triggers for main/master branches +- Use pull request triggers for code validation +- Implement scheduled triggers for maintenance tasks +- Consider resource triggers for multi-repository scenarios + +## Example Structure + +```yaml +# azure-pipelines.yml +trigger: + branches: + include: + - main + - develop + paths: + exclude: + - docs/* + - README.md + +variables: + - group: shared-variables + - name: buildConfiguration + value: 'Release' + +stages: + - stage: Build + displayName: 'Build and Test' + jobs: + - job: Build + displayName: 'Build Application' + pool: + vmImage: 'ubuntu-latest' + steps: + - task: UseDotNet@2 + displayName: 'Use .NET SDK' + inputs: + version: '8.x' + + - task: DotNetCoreCLI@2 + displayName: 'Restore dependencies' + inputs: + command: 'restore' + projects: '**/*.csproj' + + - task: DotNetCoreCLI@2 + displayName: 'Build application' + inputs: + command: 'build' + projects: '**/*.csproj' + arguments: '--configuration $(buildConfiguration) --no-restore' + + - stage: Deploy + displayName: 'Deploy to Staging' + dependsOn: Build + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + jobs: + - deployment: DeployToStaging + displayName: 'Deploy to Staging Environment' + environment: 'staging' + strategy: + runOnce: + deploy: + steps: + - download: current + displayName: 'Download drop artifact' + artifact: drop + - task: AzureWebApp@1 + displayName: 'Deploy to Azure Web App' + inputs: + azureSubscription: 'staging-service-connection' + appType: 'webApp' + appName: 'myapp-staging' + package: '$(Pipeline.Workspace)/drop/**/*.zip' +``` + +## Common Anti-Patterns to Avoid + +- Hardcoding sensitive values directly in YAML files +- Using overly broad triggers that cause unnecessary builds +- Mixing build and deployment logic in a single stage +- Not implementing proper error handling and cleanup +- Using deprecated task versions without upgrade plans +- Creating monolithic pipelines that are difficult to maintain +- Not using proper naming conventions for clarity +- Ignoring pipeline security best practices diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..8a1c6d4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,777 @@ +{ + "name": "awesome-copilot", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "awesome-copilot", + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "all-contributors-cli": "^6.26.1" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/all-contributors-cli": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.26.1.tgz", + "integrity": "sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.6", + "async": "^3.1.0", + "chalk": "^4.0.0", + "didyoumean": "^1.2.1", + "inquirer": "^7.3.3", + "json-fixer": "^1.6.8", + "lodash": "^4.11.2", + "node-fetch": "^2.6.0", + "pify": "^5.0.0", + "yargs": "^15.0.1" + }, + "bin": { + "all-contributors": "dist/cli.js" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "prettier": "^2" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/json-fixer": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.6.15.tgz", + "integrity": "sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.9", + "chalk": "^4.1.2", + "pegjs": "^0.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", + "dev": true, + "license": "MIT", + "bin": { + "pegjs": "bin/pegjs" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e37dca1 --- /dev/null +++ b/package.json @@ -0,0 +1,28 @@ +{ + "name": "awesome-copilot", + "version": "1.0.0", + "description": "Enhance your GitHub Copilot experience with community-contributed instructions, prompts, and chat modes", + "main": "update-readme.js", + "scripts": { + "build": "node update-readme.js", + "contributors:add": "all-contributors add", + "contributors:generate": "all-contributors generate", + "contributors:check": "all-contributors check" + }, + "repository": { + "type": "git", + "url": "https://github.com/github/awesome-copilot.git" + }, + "keywords": [ + "github", + "copilot", + "ai", + "prompts", + "instructions" + ], + "author": "GitHub", + "license": "MIT", + "devDependencies": { + "all-contributors-cli": "^6.26.1" + } +} diff --git a/prompts/create-github-pull-request-from-specification.prompt.md b/prompts/create-github-pull-request-from-specification.prompt.md new file mode 100644 index 0000000..2aa475c --- /dev/null +++ b/prompts/create-github-pull-request-from-specification.prompt.md @@ -0,0 +1,24 @@ +--- +mode: 'agent' +description: 'Create GitHub Pull Request for feature request from specification file using pull_request_template.md template.' +tools: ['codebase', 'search', 'github', 'create_pull_request', 'update_pull_request', 'get_pull_request_diff'] +--- +# Create GitHub Pull Request from Specification + +Create GitHub Pull Request for the specification at `${workspaceFolder}/.github/pull_request_template.md` . + +## Process + +1. Analyze specification file template from '${workspaceFolder}/.github/pull_request_template.md' to extract requirements by 'search' tool. +2. Create pull request draft template by using 'create_pull_request' tool on to `${input:targetBranch}`. and make sure don't have any pull request of current branch was exist `get_pull_request`. If has continue to step 4, and skip step 3. +3. Get changes in pull request by using 'get_pull_request_diff' tool to analyze information that was changed in pull Request. +4. Update the pull request body and title created in the previous step using the 'update_pull_request' tool. Incorporate the information from the template obtained in the first step to update the body and title as needed. +5. Switch from draft to ready for review by using 'update_pull_request' tool. To update state of pull request. +6. Using 'get_me' to get username of person was created pull request and assign to `update_issue` tool. To assign pull request +7. Response URL Pull request was create to user. + +## Requirements +- Single pull request for the complete specification +- Clear title/pull_request_template.md identifying the specification +- Fill enough information into pull_request_template.md +- Verify against existing pull requests before creation diff --git a/prompts/csharp-docs.prompt.md b/prompts/csharp-docs.prompt.md index 43bffa2..2ede7b3 100644 --- a/prompts/csharp-docs.prompt.md +++ b/prompts/csharp-docs.prompt.md @@ -10,15 +10,17 @@ description: 'Ensure that C# types are documented with XML comments and follow b - It is encouraged to document internal members as well, especially if they are complex or not self-explanatory. - Use `` for method descriptions. This should be a brief overview of what the method does. - Use `` for method parameters. +- Use `` to reference parameters in documentation. - Use `` for method return values. - Use `` for additional information, which can include implementation details, usage notes, or any other relevant context. - Use `` for usage examples on how to use the member. - Use `` to document exceptions thrown by methods. -- Use `` and `` for references to other types or members. +- Use `` for language-specific keywords like `null`, `true`, `false`, `int`, `bool`, etc. +- Use `` to reference other types or members inline (in a sentence). +- Use `` for standalone (not in a sentence) references to other types or members in the "See also" section of the online docs. - Use `` to inherit documentation from base classes or interfaces. - Unless there is major behavior change, in which case you should document the differences. - Use `` for type parameters in generic types or methods. - Use `` to reference type parameters in documentation. - Use `` for inline code snippets. -- Use `` for code blocks. -- Use `` for language specific keywords like `null`, `true`, `false`, `int`, `bool`, etc. +- Use `` for code blocks. `` tags should be placed within an `` tag. Add the language of the code example using the `language` attribute, for example, ``. diff --git a/prompts/first-ask.prompt.md b/prompts/first-ask.prompt.md new file mode 100644 index 0000000..fb80699 --- /dev/null +++ b/prompts/first-ask.prompt.md @@ -0,0 +1,29 @@ +--- +description: 'Interactive, input-tool powered, task refinement workflow: interrogates scope, deliverables, constraints before carrying out the task; Requires the Joyride extension.' +--- + +# Act Informed: First understand together with the human, then do + +You are a curious and thorough AI assistant designed to help carry out tasks with high-quality, by being properly informed. You are powered by the `joyride_request_human_input` tool and you use it as a key part of your process in gathering information about the task. + + +Your goal is to iteratively refine your understanding of the task by: + +- Understanding the task scope and objectives +- At all times when you need clarification on details, ask specific questions to the user using the `joyride_request_human_input` tool. +- Defining expected deliverables and success criteria +- Perform project explorations, using available tools, to further your understanding of the task + - If something needs web research, do that +- Clarifying technical and procedural requirements +- Organizing the task into clear sections or steps +- Ensuring your understanding of the task is as simple as it can be + + +After refining and before carrying out the task: +- Use the `joyride_request_human_input` tool to ask if the human developer has any further input. +- Keep refining until the human has no further input. + +After gathering sufficient information, and having a clear understanding of the task: +1. Show your plan to the user with redundancy kept to a minimum +2. Create a todo list +3. Get to work! diff --git a/update-readme.js b/update-readme.js index 91180ff..8ff453f 100755 --- a/update-readme.js +++ b/update-readme.js @@ -5,83 +5,50 @@ const path = require("path"); // Template sections for the README const TEMPLATES = { - header: `# 🤖 Awesome GitHub Copilot Customizations - -[![Powered by Awesome Copilot](https://img.shields.io/badge/Powered_by-Awesome_Copilot-blue?logo=githubcopilot)](https://aka.ms/awesome-github-copilot) - -Enhance your GitHub Copilot experience with community-contributed [instructions](#-custom-instructions), [prompts](#-reusable-prompts), and [chat modes](#-custom-chat-modes). Get consistent AI assistance that follows your team's coding standards and project requirements. - -
-🎯 GitHub Copilot Customization Features - -GitHub Copilot provides three main ways to customize AI responses and tailor assistance to your specific workflows, team guidelines, and project requirements: - -| **🧩 [Custom Chat Modes](#-custom-chat-modes)** | **🎯 [Reusable Prompts](#-reusable-prompts)** | **📋 [Custom Instructions](#-custom-instructions)** | -| --- | --- | --- | -| Define chat behavior, available tools, and codebase interaction patterns within specific boundaries for each request

**Benefits:**
• Context-aware assistance
• Tool configuration
• Role-specific workflows | Create reusable, standalone prompts for specific tasks. Describe *what* should be done with optional task-specific guidelines

**Benefits:**
• Eliminate repetitive prompt writing
• Shareable across teams
• Support for variables and dependencies | Define common guidelines for tasks like code generation, reviews, and commit messages. Describe *how* tasks should be performed

**Benefits:**
• Automatic inclusion in every chat request
• Repository-wide consistency
• Multiple implementation options | - -> **💡 Pro Tip:** Custom instructions only affect Copilot Chat (not inline code completions). You can combine all three customization types - use custom instructions for general guidelines, prompt files for specific tasks, and chat modes to control the interaction context. - -
- -
-📝 Contributing - -We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details on how to submit new instructions and prompts. - -
`, - instructionsSection: `## 📋 Custom Instructions -Team and project-specific instructions to enhance GitHub Copilot's behavior for specific technologies and coding practices:`, +Team and project-specific instructions to enhance GitHub Copilot's behavior for specific technologies and coding practices.`, - instructionsUsage: `> 💡 **Usage**: Copy these instructions to your \`.github/copilot-instructions.md\` file or create task-specific \`.github/.instructions.md\` files in your workspace's \`.github/instructions\` folder.`, + instructionsUsage: `### How to Use Custom Instructions + +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the instruction you want to use +- Download the \`*.instructions.md\` file and manually add it to your project's instruction collection + +**To Use/Apply:** +- Copy these instructions to your \`.github/copilot-instructions.md\` file in your workspace +- Create task-specific \`.github/.instructions.md\` files in your workspace's \`.github/instructions\` folder +- Instructions automatically apply to Copilot behavior once installed in your workspace`, promptsSection: `## 🎯 Reusable Prompts Ready-to-use prompt templates for specific development scenarios and tasks, defining prompt text with a specific mode, model, and available set of tools.`, - promptsUsage: `> 💡 **Usage**: Use \`/prompt-name\` in VS Code chat, run \`Chat: Run Prompt\` command, or hit the run button while you have a prompt open.`, + promptsUsage: `### How to Use Reusable Prompts + +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the prompt you want to use +- Download the \`*.prompt.md\` file and manually add it to your prompt collection + +**To Run/Execute:** +- Use \`/prompt-name\` in VS Code chat after installation +- Run the \`Chat: Run Prompt\` command from the Command Palette +- Hit the run button while you have a prompt file open in VS Code`, chatmodesSection: `## 💭 Custom Chat Modes Custom chat modes define specific behaviors and tools for GitHub Copilot Chat, enabling enhanced context-aware assistance for particular tasks or workflows.`, - chatmodesUsage: `> 💡 **Usage**: Create new chat modes using the command \`Chat: Configure Chat Modes...\`, then switch your chat mode in the Chat input from _Agent_ or _Ask_ to your own mode.`, + chatmodesUsage: `### How to Use Custom Chat Modes - footer: `## 📚 Additional Resources +**To Install:** +- Click the **VS Code** or **VS Code Insiders** install button for the chat mode you want to use +- Download the \`*.chatmode.md\` file and manually install it in VS Code using the Command Palette -- [VS Code Copilot Customization Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization) - Official Microsoft documentation -- [GitHub Copilot Chat Documentation](https://code.visualstudio.com/docs/copilot/chat/copilot-chat) - Complete chat feature guide -- [Custom Chat Modes](https://code.visualstudio.com/docs/copilot/chat/chat-modes) - Advanced chat configuration -- [VS Code Settings](https://code.visualstudio.com/docs/getstarted/settings) - General VS Code configuration guide - -## 🛠️ Development Configuration - -This repository uses various configuration files to ensure consistent code style and avoid issues with line endings: - -- [\`.editorconfig\`](.editorconfig) - Defines coding styles across different editors and IDEs -- [\`.gitattributes\`](.gitattributes) - Ensures consistent line endings in text files -- [\`.vscode/settings.json\`](.vscode/settings.json) - VS Code-specific settings for this repository -- [\`.vscode/extensions.json\`](.vscode/extensions.json) - Recommended VS Code extensions - -> 💡 **Note**: All markdown files in this repository use LF line endings (Unix-style) to avoid mixed line endings issues. The repository is configured to automatically handle line endings conversion. - -## 📄 License - -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. - -## 🤝 Code of Conduct - -Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms. - -## ™️ Trademarks - -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft -trademarks or logos is subject to and must follow -[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). -Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies.`, +**To Activate/Use:** +- Import the chat mode configuration into your VS Code settings +- Access the installed chat modes through the VS Code Chat interface +- Select the desired chat mode from the available options in VS Code Chat`, }; // Add error handling utility @@ -433,32 +400,6 @@ function generateChatModesSection(chatmodesDir) { return `${TEMPLATES.chatmodesSection}\n${TEMPLATES.chatmodesUsage}\n\n${chatmodesContent}`; } -/** - * Generate the complete README.md content from scratch - */ -function generateReadme() { - const instructionsDir = path.join(__dirname, "instructions"); - const promptsDir = path.join(__dirname, "prompts"); - const chatmodesDir = path.join(__dirname, "chatmodes"); - - // Generate each section - const instructionsSection = generateInstructionsSection(instructionsDir); - const promptsSection = generatePromptsSection(promptsDir); - const chatmodesSection = generateChatModesSection(chatmodesDir); - - // Build the complete README content with template sections - const sections = [TEMPLATES.header]; - - // Only include sections that have content - if (instructionsSection.trim()) sections.push(instructionsSection); - if (promptsSection.trim()) sections.push(promptsSection); - if (chatmodesSection.trim()) sections.push(chatmodesSection); - - sections.push(TEMPLATES.footer); - - return sections.join("\n\n"); -} - // Utility: write file only if content changed function writeFileIfChanged(filePath, content) { const exists = fs.existsSync(filePath);