From 1322aa2dde39898083ba0a71fa9626922c6f3472 Mon Sep 17 00:00:00 2001 From: Ashley Childress <6563688+anchildress1@users.noreply.github.com> Date: Fri, 19 Dec 2025 20:43:27 -0500 Subject: [PATCH 01/57] feat(eng): add contributor reporting and management scripts - Add eng/README.md documenting maintainer utilities - Add eng/contributor-report.mjs for generating contributor reports - Add eng/add-missing-contributors.mjs for automating contributor additions - Add eng/utils/graceful-shutdown.mjs for script lifecycle management - Update eng/update-readme.mjs with minor fixes - Update package.json with new contributor scripts Generated-by: GitHub Copilot Signed-off-by: Ashley Childress <6563688+anchildress1@users.noreply.github.com> --- .all-contributorsrc | 2050 +++++++++++++++++++--------- .github/workflows/contributors.yml | 40 +- .gitignore | 1 + CONTRIBUTING.md | 37 +- README.md | 301 ++-- eng/README.md | 36 + eng/add-missing-contributors.mjs | 306 +++++ eng/contributor-report.mjs | 597 ++++++++ eng/utils/graceful-shutdown.mjs | 60 + package.json | 5 +- 10 files changed, 2634 insertions(+), 799 deletions(-) create mode 100644 eng/README.md create mode 100644 eng/add-missing-contributors.mjs create mode 100644 eng/contributor-report.mjs create mode 100644 eng/utils/graceful-shutdown.mjs diff --git a/.all-contributorsrc b/.all-contributorsrc index 8372d6ac..bd9775d3 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -9,6 +9,35 @@ "imageSize": 100, "commit": false, "commitConvention": "none", + "contributorsPerLine": 7, + "linkToUsage": true, + "commitType": "docs", + "types": { + "instructions": { + "symbol": "🧭", + "description": "Custom instructions for GitHub Copilot" + }, + "prompts": { + "symbol": "⌨️", + "description": "Reusable prompts for GitHub Copilot" + }, + "agents": { + "symbol": "🎭", + "description": "Specialized agents for GitHub Copilot" + }, + "collections": { + "symbol": "🎁", + "description": "Curated collections of related content" + } + }, + "ignoreList": [ + "dependabot[bot]", + "github-actions[bot]", + "allcontributors[bot]", + "Copilot", + "Claude" + ], + "contributorsSortAlphabetically": false, "contributors": [ { "login": "aaronpowell", @@ -16,136 +45,13 @@ "avatar_url": "https://avatars.githubusercontent.com/u/434140?v=4", "profile": "https://www.aaron-powell.com/", "contributions": [ - "code", + "agents", + "collections", + "doc", + "infra", + "instructions", "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" + "prompts" ] }, { @@ -154,7 +60,137 @@ "avatar_url": "https://avatars.githubusercontent.com/u/44444967?v=4", "profile": "https://www.buymeacoffee.com/troystaylor", "contributions": [ - "code" + "agents", + "collections", + "instructions", + "prompts" + ] + }, + { + "login": "PEZ", + "name": "Peter Strömberg", + "avatar_url": "https://avatars.githubusercontent.com/u/30010?v=4", + "profile": "https://calva.io/", + "contributions": [ + "agents", + "collections", + "instructions", + "prompts" + ] + }, + { + "login": "PlagueHO", + "name": "Daniel Scott-Raynsford", + "avatar_url": "https://avatars.githubusercontent.com/u/7589164?v=4", + "profile": "https://danielscottraynsford.com/", + "contributions": [ + "agents", + "collections", + "instructions", + "prompts" + ] + }, + { + "login": "jhauga", + "name": "John Haugabook", + "avatar_url": "https://avatars.githubusercontent.com/u/10998676?v=4", + "profile": "https://github.com/jhauga", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "mubaidr", + "name": "Muhammad Ubaid Raza", + "avatar_url": "https://avatars.githubusercontent.com/u/2222702?v=4", + "profile": "https://mubaidr.js.org/", + "contributions": [ + "agents", + "instructions" + ] + }, + { + "login": "AungMyoKyaw", + "name": "Aung Myo Kyaw", + "avatar_url": "https://avatars.githubusercontent.com/u/9404824?v=4", + "profile": "https://www.aungmyokyaw.com/", + "contributions": [ + "agents", + "prompts" + ] + }, + { + "login": "digitarald", + "name": "Harald Kirschner", + "avatar_url": "https://avatars.githubusercontent.com/u/8599?v=4", + "profile": "http://digitarald.de/", + "contributions": [ + "doc", + "maintenance" + ] + }, + { + "login": "burkeholland", + "name": "Burke Holland", + "avatar_url": "https://avatars.githubusercontent.com/u/686963?v=4", + "profile": "https://github.com/burkeholland", + "contributions": [ + "agents", + "infra", + "instructions", + "prompts" + ] + }, + { + "login": "danielmeppiel", + "name": "Daniel Meppiel", + "avatar_url": "https://avatars.githubusercontent.com/u/51440732?v=4", + "profile": "https://www.devprodlogs.com/", + "contributions": [ + "prompts" + ] + }, + { + "login": "jamesmontemagno", + "name": "James Montemagno", + "avatar_url": "https://avatars.githubusercontent.com/u/1676321?v=4", + "profile": "https://montemagno.com/", + "contributions": [ + "agents", + "doc", + "instructions", + "prompts" + ] + }, + { + "login": "VamshiVerma", + "name": "Vamshi Verma", + "avatar_url": "https://avatars.githubusercontent.com/u/21999324?v=4", + "profile": "https://github.com/VamshiVerma", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "sinedied", + "name": "Yohan Lasorsa", + "avatar_url": "https://avatars.githubusercontent.com/u/593151?v=4", + "profile": "https://github.com/sinedied", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "spectatora", + "name": "spectatora", + "avatar_url": "https://avatars.githubusercontent.com/u/1385755?v=4", + "profile": "https://github.com/spectatora", + "contributions": [ + "agents", + "maintenance" ] }, { @@ -163,61 +199,28 @@ "avatar_url": "https://avatars.githubusercontent.com/u/10282550?v=4", "profile": "https://www.linkedin.com/in/ambilykk/", "contributions": [ - "code" + "agents", + "instructions" ] }, { - "login": "tgrall", - "name": "Tugdual Grall", - "avatar_url": "https://avatars.githubusercontent.com/u/541250?v=4", - "profile": "http://tgrall.github.io/", + "login": "OrenMe", + "name": "Oren Me", + "avatar_url": "https://avatars.githubusercontent.com/u/5461862?v=4", + "profile": "https://www.promptboost.dev/", "contributions": [ - "code" + "agents", + "instructions" ] }, { - "login": "TianqiZhang", - "name": "Tianqi Zhang", - "avatar_url": "https://avatars.githubusercontent.com/u/5326582?v=4", - "profile": "https://github.com/TianqiZhang", + "login": "mjrousos", + "name": "Mike Rousos", + "avatar_url": "https://avatars.githubusercontent.com/u/10077254?v=4", + "profile": "https://github.com/mjrousos", "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" + "instructions", + "prompts" ] }, { @@ -226,322 +229,37 @@ "avatar_url": "https://avatars.githubusercontent.com/u/1538528?v=4", "profile": "https://devkimchi.com/", "contributions": [ - "code" + "instructions" ] }, { - "login": "0GiS0", - "name": "Gisela Torres", - "avatar_url": "https://avatars.githubusercontent.com/u/175379?v=4", - "profile": "https://hachyderm.io/@0gis0", + "login": "guiopen", + "name": "Guilherme do Amaral Alves ", + "avatar_url": "https://avatars.githubusercontent.com/u/94094527?v=4", + "profile": "https://github.com/guiopen", "contributions": [ - "code" + "instructions" ] }, { - "login": "debs-obrien", - "name": "Debbie O'Brien", - "avatar_url": "https://avatars.githubusercontent.com/u/13063165?v=4", - "profile": "https://debbie.codes/", + "login": "griffinashe", + "name": "Griffin Ashe", + "avatar_url": "https://avatars.githubusercontent.com/u/6391612?v=4", + "profile": "https://www.linkedin.com/in/griffinashe/", "contributions": [ - "code" + "agents", + "collections" ] }, { - "login": "agreaves-ms", - "name": "Allen Greaves", - "avatar_url": "https://avatars.githubusercontent.com/u/111466195?v=4", - "profile": "https://github.com/agreaves-ms", + "login": "anchildress1", + "name": "Ashley Childress", + "avatar_url": "https://avatars.githubusercontent.com/u/6563688?v=4", + "profile": "https://github.com/anchildress1", "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" + "agents", + "doc", + "instructions" ] }, { @@ -550,16 +268,18 @@ "avatar_url": "https://avatars.githubusercontent.com/u/50712277?v=4", "profile": "http://www.senseof.tech/", "contributions": [ - "code" + "agents", + "doc", + "prompts" ] }, { - "login": "tegola", - "name": "Alan Sprecacenere", - "avatar_url": "https://avatars.githubusercontent.com/u/1868590?v=4", - "profile": "http://www.qreate.it/", + "login": "Vhivi", + "name": "ANGELELLI David", + "avatar_url": "https://avatars.githubusercontent.com/u/38220028?v=4", + "profile": "https://github.com/Vhivi", "contributions": [ - "code" + "agents" ] }, { @@ -568,25 +288,122 @@ "avatar_url": "https://avatars.githubusercontent.com/u/2493377?v=4", "profile": "https://asilva.dev/", "contributions": [ - "code" + "agents", + "instructions" ] }, { - "login": "arey", - "name": "Antoine Rey", - "avatar_url": "https://avatars.githubusercontent.com/u/838318?v=4", - "profile": "https://javaetmoi.com/", + "login": "MattVevang", + "name": "Matt Vevang", + "avatar_url": "https://avatars.githubusercontent.com/u/20714898?v=4", + "profile": "https://github.com/MattVevang", "contributions": [ - "code" + "instructions" ] }, { - "login": "artemsaveliev", - "name": "Artem Saveliev", - "avatar_url": "https://avatars.githubusercontent.com/u/15679218?v=4", - "profile": "https://github.com/artemsaveliev", + "login": "mpgirro", + "name": "Maximilian Irro", + "avatar_url": "https://avatars.githubusercontent.com/u/589073?v=4", + "profile": "https://max.irro.at/", "contributions": [ - "code" + "instructions" + ] + }, + { + "login": "nullchimp", + "name": "NULLchimp", + "avatar_url": "https://avatars.githubusercontent.com/u/58362593?v=4", + "profile": "https://github.com/nullchimp", + "contributions": [ + "agents" + ] + }, + { + "login": "sdolgin", + "name": "Saul Dolgin", + "avatar_url": "https://avatars.githubusercontent.com/u/576449?v=4", + "profile": "https://github.com/sdolgin", + "contributions": [ + "agents", + "instructions", + "prompts" + ] + }, + { + "login": "shubham070", + "name": "Shubham Gaikwad", + "avatar_url": "https://avatars.githubusercontent.com/u/5480589?v=4", + "profile": "https://github.com/shubham070", + "contributions": [ + "agents", + "instructions", + "prompts" + ] + }, + { + "login": "TheovanKraay", + "name": "Theo van Kraay", + "avatar_url": "https://avatars.githubusercontent.com/u/24420698?v=4", + "profile": "https://github.com/TheovanKraay", + "contributions": [ + "instructions" + ] + }, + { + "login": "TianqiZhang", + "name": "Tianqi Zhang", + "avatar_url": "https://avatars.githubusercontent.com/u/5326582?v=4", + "profile": "https://github.com/TianqiZhang", + "contributions": [ + "agents" + ] + }, + { + "login": "tgrall", + "name": "Tugdual Grall", + "avatar_url": "https://avatars.githubusercontent.com/u/541250?v=4", + "profile": "http://tgrall.github.io/", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "doggy8088", + "name": "Will 保哥", + "avatar_url": "https://avatars.githubusercontent.com/u/88981?v=4", + "profile": "https://blog.miniasp.com/", + "contributions": [ + "agents", + "prompts" + ] + }, + { + "login": "tsubakimoto", + "name": "Yuta Matsumura", + "avatar_url": "https://avatars.githubusercontent.com/u/1592808?v=4", + "profile": "https://tsubalog.hatenablog.com/", + "contributions": [ + "instructions" + ] + }, + { + "login": "hizahizi-hizumi", + "name": "hizahizi-hizumi", + "avatar_url": "https://avatars.githubusercontent.com/u/163728895?v=4", + "profile": "https://github.com/hizahizi-hizumi", + "contributions": [ + "instructions" + ] + }, + { + "login": "Jian-Min-Huang", + "name": "黃健旻 Vincent Huang", + "avatar_url": "https://avatars.githubusercontent.com/u/6296280?v=4", + "profile": "https://jianminhuang.cc/", + "contributions": [ + "prompts" ] }, { @@ -595,34 +412,65 @@ "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" + "collections", + "instructions" ] }, { "login": "MovingLive", - "name": "Chtive", + "name": "Steve Magne", "avatar_url": "https://avatars.githubusercontent.com/u/14792628?v=4", "profile": "https://www.movinglive.ca/", "contributions": [ - "code" + "doc", + "instructions" ] }, { - "login": "craigbekker", - "name": "Craig Bekker", - "avatar_url": "https://avatars.githubusercontent.com/u/1115912?v=4", - "profile": "https://github.com/craigbekker", + "login": "PureWeen", + "name": "Shane Neuville", + "avatar_url": "https://avatars.githubusercontent.com/u/5375137?v=4", + "profile": "http://shaneneuville.com/", "contributions": [ - "code" + "agents", + "instructions" + ] + }, + { + "login": "agreaves-ms", + "name": "Allen Greaves", + "avatar_url": "https://avatars.githubusercontent.com/u/111466195?v=4", + "profile": "https://github.com/agreaves-ms", + "contributions": [ + "agents", + "instructions" + ] + }, + { + "login": "AmeliaRose802", + "name": "Amelia Payne", + "avatar_url": "https://avatars.githubusercontent.com/u/26167931?v=4", + "profile": "https://github.com/AmeliaRose802", + "contributions": [ + "agents" + ] + }, + { + "login": "brooke-hamilton", + "name": "Brooke Hamilton", + "avatar_url": "https://avatars.githubusercontent.com/u/45323234?v=4", + "profile": "https://azureincubations.io/", + "contributions": [ + "instructions" + ] + }, + { + "login": "GeekTrainer", + "name": "Christopher Harrison", + "avatar_url": "https://avatars.githubusercontent.com/u/6109729?v=4", + "profile": "https://github.com/GeekTrainer", + "contributions": [ + "instructions" ] }, { @@ -631,34 +479,36 @@ "avatar_url": "https://avatars.githubusercontent.com/u/1446918?v=4", "profile": "https://github.com/breakid", "contributions": [ - "code" + "instructions" ] }, { - "login": "ewega", - "name": "Eldrick Wega", - "avatar_url": "https://avatars.githubusercontent.com/u/26189114?v=4", - "profile": "https://github.com/ewega", + "login": "DanWahlin", + "name": "Dan Wahlin", + "avatar_url": "https://avatars.githubusercontent.com/u/1767249?v=4", + "profile": "https://blog.codewithdan.com/", "contributions": [ - "code" + "agents" ] }, { - "login": "felixarjuna", - "name": "Felix Arjuna", - "avatar_url": "https://avatars.githubusercontent.com/u/79026094?v=4", - "profile": "https://www.felixarjuna.dev/", + "login": "debs-obrien", + "name": "Debbie O'Brien", + "avatar_url": "https://avatars.githubusercontent.com/u/13063165?v=4", + "profile": "https://debbie.codes/", "contributions": [ - "code" + "agents", + "instructions", + "prompts" ] }, { - "login": "feapaydin", - "name": "Furkan Enes", - "avatar_url": "https://avatars.githubusercontent.com/u/19946639?v=4", - "profile": "https://github.com/feapaydin", + "login": "echarrod", + "name": "Ed Harrod", + "avatar_url": "https://avatars.githubusercontent.com/u/1381991?v=4", + "profile": "https://github.com/echarrod", "contributions": [ - "code" + "prompts" ] }, { @@ -667,133 +517,17 @@ "avatar_url": "https://avatars.githubusercontent.com/u/24882762?v=4", "profile": "http://learn.microsoft.com/dotnet", "contributions": [ - "code" + "prompts" ] }, { - "login": "geoder101", - "name": "George Dernikos", - "avatar_url": "https://avatars.githubusercontent.com/u/145904?v=4", - "profile": "https://github.com/geoder101", + "login": "guigui42", + "name": "Guillaume", + "avatar_url": "https://avatars.githubusercontent.com/u/2376010?v=4", + "profile": "https://github.com/guigui42", "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" - ] - }, - { - "login": "soderlind", - "name": "Per Søderlind", - "avatar_url": "https://avatars.githubusercontent.com/u/1649452?v=4", - "profile": "https://soderlind.no", - "contributions": [ - "code" + "agents", + "prompts" ] }, { @@ -802,7 +536,7 @@ "avatar_url": "https://avatars.githubusercontent.com/u/108551585?v=4", "profile": "https://github.com/riqueufmg", "contributions": [ - "code" + "prompts" ] }, { @@ -815,43 +549,1021 @@ ] }, { - "login": "spectatora", - "name": "spectatora", - "avatar_url": "https://avatars.githubusercontent.com/u/1385755?v=4", - "profile": "https://github.com/spectatora", + "login": "kartikdhiman", + "name": "Kartik Dhiman", + "avatar_url": "https://avatars.githubusercontent.com/u/59189590?v=4", + "profile": "https://github.com/kartikdhiman", + "contributions": [ + "instructions" + ] + }, + { + "login": "kristiyan-velkov", + "name": "Kristiyan Velkov", + "avatar_url": "https://avatars.githubusercontent.com/u/40764277?v=4", + "profile": "https://kristiyanvelkov.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "markdav-is", + "name": "Mark Davis", + "avatar_url": "https://avatars.githubusercontent.com/u/311063?v=4", + "profile": "http://markdav.is/", + "contributions": [ + "instructions" + ] + }, + { + "login": "pelikhan", + "name": "Peli de Halleux", + "avatar_url": "https://avatars.githubusercontent.com/u/4175913?v=4", + "profile": "https://github.com/pelikhan", "contributions": [ "code" ] }, { - "login": "Mike-Hanna", - "name": "Michael", - "avatar_url": "https://avatars.githubusercontent.com/u/50142889?v=4", - "profile": "https://github.com/Mike-Hanna", + "login": "soderlind", + "name": "Per Søderlind", + "avatar_url": "https://avatars.githubusercontent.com/u/1649452?v=4", + "profile": "https://soderlind.no/", + "contributions": [ + "instructions" + ] + }, + { + "login": "psmulovics", + "name": "Peter Smulovics", + "avatar_url": "https://avatars.githubusercontent.com/u/28162552?v=4", + "profile": "http://dotneteers.net/", + "contributions": [ + "instructions" + ] + }, + { + "login": "madvimer", + "name": "Ravish Rathod", + "avatar_url": "https://avatars.githubusercontent.com/u/3188898?v=4", + "profile": "https://github.com/madvimer", + "contributions": [ + "instructions" + ] + }, + { + "login": "ricksmit3000", + "name": "Rick Smit", + "avatar_url": "https://avatars.githubusercontent.com/u/7207783?v=4", + "profile": "https://ricksm.it/", + "contributions": [ + "agents" + ] + }, + { + "login": "pertrai1", + "name": "Rob Simpson", + "avatar_url": "https://avatars.githubusercontent.com/u/442374?v=4", + "profile": "https://github.com/pertrai1", + "contributions": [ + "instructions" + ] + }, + { + "login": "inquinity", + "name": "Robert Altman", + "avatar_url": "https://avatars.githubusercontent.com/u/406234?v=4", + "profile": "https://github.com/inquinity", + "contributions": [ + "instructions" + ] + }, + { + "login": "salihguru", + "name": "Salih", + "avatar_url": "https://avatars.githubusercontent.com/u/76786120?v=4", + "profile": "https://salih.guru/", + "contributions": [ + "instructions" + ] + }, + { + "login": "segraef", + "name": "Sebastian Gräf", + "avatar_url": "https://avatars.githubusercontent.com/u/19261257?v=4", + "profile": "https://graef.io/", + "contributions": [ + "agents", + "instructions" + ] + }, + { + "login": "SebastienDegodez", + "name": "Sebastien DEGODEZ", + "avatar_url": "https://avatars.githubusercontent.com/u/2349146?v=4", + "profile": "https://github.com/SebastienDegodez", + "contributions": [ + "instructions" + ] + }, + { + "login": "sesmyrnov", + "name": "Sergiy Smyrnov", + "avatar_url": "https://avatars.githubusercontent.com/u/59627981?v=4", + "profile": "https://github.com/sesmyrnov", + "contributions": [ + "prompts" + ] + }, + { + "login": "SomeSolutionsArchitect", + "name": "SomeSolutionsArchitect", + "avatar_url": "https://avatars.githubusercontent.com/u/139817767?v=4", + "profile": "https://github.com/SomeSolutionsArchitect", + "contributions": [ + "agents" + ] + }, + { + "login": "kewalaka", + "name": "Stu Mace", + "avatar_url": "https://avatars.githubusercontent.com/u/3146590?v=4", + "profile": "https://github.com/kewalaka", + "contributions": [ + "agents", + "collections", + "instructions" + ] + }, + { + "login": "dgh06175", + "name": "이상현", + "avatar_url": "https://avatars.githubusercontent.com/u/77305722?v=4", + "profile": "https://github.com/dgh06175", + "contributions": [ + "instructions" + ] + }, + { + "login": "paulomorgado", + "name": "Paulo Morgado", + "avatar_url": "https://avatars.githubusercontent.com/u/470455?v=4", + "profile": "https://www.paulomorgado.net/", + "contributions": [ + "prompts" + ] + }, + { + "login": "pcrane", + "name": "Paul Crane", + "avatar_url": "https://avatars.githubusercontent.com/u/808676?v=4", + "profile": "https://paul.crane.net.nz/", + "contributions": [ + "agents" + ] + }, + { + "login": "pamelafox", + "name": "Pamela Fox", + "avatar_url": "https://avatars.githubusercontent.com/u/297042?v=4", + "profile": "https://www.pamelafox.org/", + "contributions": [ + "prompts" + ] + }, + { + "login": "prewk", + "name": "Oskar Thornblad", + "avatar_url": "https://avatars.githubusercontent.com/u/640102?v=4", + "profile": "https://oskarthornblad.se/", + "contributions": [ + "instructions" + ] + }, + { + "login": "nischays", + "name": "Nischay Sharma", + "avatar_url": "https://avatars.githubusercontent.com/u/54121853?v=4", + "profile": "https://github.com/nischays", + "contributions": [ + "agents" + ] + }, + { + "login": "Naikabg", + "name": "Nikolay Marinov", + "avatar_url": "https://avatars.githubusercontent.com/u/19915620?v=4", + "profile": "https://github.com/Naikabg", + "contributions": [ + "agents" + ] + }, + { + "login": "niksacdev", + "name": "Nik Sachdeva", + "avatar_url": "https://avatars.githubusercontent.com/u/20246918?v=4", + "profile": "https://www.linkedin.com/in/niksac", + "contributions": [ + "agents", + "collections" + ] + }, + { + "login": "nickytonline", + "name": "Nick Taylor", + "avatar_url": "https://avatars.githubusercontent.com/u/833231?v=4", + "profile": "https://onetipaweek.com/", "contributions": [ "code" ] }, + { + "login": "nicholasdbrady", + "name": "Nick Brady", + "avatar_url": "https://avatars.githubusercontent.com/u/18353756?v=4", + "profile": "https://nicholasdbrady.github.io/cookbook/", + "contributions": [ + "agents" + ] + }, + { + "login": "nastanford", + "name": "Nathan Stanford Sr", + "avatar_url": "https://avatars.githubusercontent.com/u/1755947?v=4", + "profile": "https://github.com/nastanford", + "contributions": [ + "instructions" + ] + }, + { + "login": "matebarabas", + "name": "Máté Barabás", + "avatar_url": "https://avatars.githubusercontent.com/u/22733424?v=4", + "profile": "https://github.com/matebarabas", + "contributions": [ + "instructions" + ] + }, + { + "login": "mikeparker104", + "name": "Mike Parker", + "avatar_url": "https://avatars.githubusercontent.com/u/12763221?v=4", + "profile": "https://github.com/mikeparker104", + "contributions": [ + "instructions" + ] + }, + { + "login": "mikekistler", + "name": "Mike Kistler", + "avatar_url": "https://avatars.githubusercontent.com/u/85643503?v=4", + "profile": "https://github.com/mikekistler", + "contributions": [ + "prompts" + ] + }, + { + "login": "mfairchild365", + "name": "Michael Fairchild", + "avatar_url": "https://avatars.githubusercontent.com/u/498678?v=4", + "profile": "https://a11ysupport.io/", + "contributions": [ + "instructions" + ] + }, + { + "login": "zooav", + "name": "Ankur Sharma", + "avatar_url": "https://avatars.githubusercontent.com/u/12625412?v=4", + "profile": "https://github.com/zooav", + "contributions": [ + "prompts" + ] + }, + { + "login": "webreidi", + "name": "Wendy Breiding", + "avatar_url": "https://avatars.githubusercontent.com/u/55603905?v=4", + "profile": "https://github.com/webreidi", + "contributions": [ + "code" + ] + }, + { + "login": "voidfnc", + "name": "voidfnc", + "avatar_url": "https://avatars.githubusercontent.com/u/194750710?v=4", + "profile": "https://github.com/voidfnc", + "contributions": [ + "agents" + ] + }, + { + "login": "shavo007", + "name": "shane lee", + "avatar_url": "https://avatars.githubusercontent.com/u/5466825?v=4", + "profile": "https://about.me/shane-lee", + "contributions": [ + "instructions" + ] + }, + { + "login": "sdanzo-hrb", + "name": "sdanzo-hrb", + "avatar_url": "https://avatars.githubusercontent.com/u/136493100?v=4", + "profile": "https://github.com/sdanzo-hrb", + "contributions": [ + "agents" + ] + }, + { + "login": "isauran", + "name": "sauran", + "avatar_url": "https://avatars.githubusercontent.com/u/33398121?v=4", + "profile": "https://github.com/nativebpm", + "contributions": [ + "instructions" + ] + }, + { + "login": "samqbush", + "name": "samqbush", + "avatar_url": "https://avatars.githubusercontent.com/u/74389839?v=4", + "profile": "https://github.com/samqbush", + "contributions": [ + "prompts" + ] + }, + { + "login": "pareenaverma", + "name": "pareenaverma", + "avatar_url": "https://avatars.githubusercontent.com/u/59843121?v=4", + "profile": "https://github.com/pareenaverma", + "contributions": [ + "agents" + ] + }, + { + "login": "oleksiyyurchyna", + "name": "oleksiyyurchyna", + "avatar_url": "https://avatars.githubusercontent.com/u/10256765?v=4", + "profile": "https://github.com/oleksiyyurchyna", + "contributions": [ + "collections", + "prompts" + ] + }, + { + "login": "time-by-waves", + "name": "oceans-of-time", + "avatar_url": "https://avatars.githubusercontent.com/u/34587654?v=4", + "profile": "https://github.com/time-by-waves", + "contributions": [ + "instructions" + ] + }, + { + "login": "kshashank57", + "name": "kshashank57", + "avatar_url": "https://avatars.githubusercontent.com/u/57212456?v=4", + "profile": "https://github.com/kshashank57", + "contributions": [ + "agents", + "instructions" + ] + }, + { + "login": "hueanmy", + "name": "Meii", + "avatar_url": "https://avatars.githubusercontent.com/u/20430626?v=4", + "profile": "https://github.com/hueanmy", + "contributions": [ + "agents" + ] + }, + { + "login": "factory-davidgu", + "name": "factory-davidgu", + "avatar_url": "https://avatars.githubusercontent.com/u/229352262?v=4", + "profile": "https://github.com/factory-davidgu", + "contributions": [ + "code" + ] + }, + { + "login": "dangelov-qa", + "name": "dangelov-qa", + "avatar_url": "https://avatars.githubusercontent.com/u/92313553?v=4", + "profile": "https://github.com/dangelov-qa", + "contributions": [ + "agents" + ] + }, + { + "login": "yukiomoto", + "name": "Yuki Omoto", + "avatar_url": "https://avatars.githubusercontent.com/u/38450410?v=4", + "profile": "https://github.com/yukiomoto", + "contributions": [ + "instructions" + ] + }, + { + "login": "wschultz-boxboat", + "name": "Will Schultz", + "avatar_url": "https://avatars.githubusercontent.com/u/110492948?v=4", + "profile": "https://github.com/wschultz-boxboat", + "contributions": [ + "agents" + ] + }, + { + "login": "warengonzaga", + "name": "Waren Gonzaga", + "avatar_url": "https://avatars.githubusercontent.com/u/15052701?v=4", + "profile": "https://bio.warengonzaga.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "vincentkoc", + "name": "Vincent Koc", + "avatar_url": "https://avatars.githubusercontent.com/u/25068?v=4", + "profile": "https://linktr.ee/vincentkoc", + "contributions": [ + "agents" + ] + }, + { + "login": "Vaporjawn", + "name": "Victor Williams", + "avatar_url": "https://avatars.githubusercontent.com/u/15694665?v=4", + "profile": "https://github.com/Vaporjawn", + "contributions": [ + "agents" + ] + }, + { + "login": "VeVarunSharma", + "name": "Ve Sharma", + "avatar_url": "https://avatars.githubusercontent.com/u/62218708?v=4", + "profile": "https://vesharma.dev/", + "contributions": [ + "agents" + ] + }, + { + "login": "udayakumarreddyv", + "name": "Udaya Veeramreddygari", + "avatar_url": "https://avatars.githubusercontent.com/u/9591887?v=4", + "profile": "https://tinyurl.com/3p5j9mwe", + "contributions": [ + "instructions" + ] + }, + { + "login": "iletai", + "name": "Tài Lê", + "avatar_url": "https://avatars.githubusercontent.com/u/26614687?v=4", + "profile": "https://github.com/iletai", + "contributions": [ + "prompts" + ] + }, + { + "login": "twitthoeft-gls", + "name": "Troy Witthoeft (glsauto)", + "avatar_url": "https://avatars.githubusercontent.com/u/132710946?v=4", + "profile": "http://glsauto.com/", + "contributions": [ + "instructions" + ] + }, + { + "login": "tmeschter", + "name": "Tom Meschter", + "avatar_url": "https://avatars.githubusercontent.com/u/10506730?v=4", + "profile": "https://github.com/tmeschter", + "contributions": [ + "code" + ] + }, + { + "login": "semperteneo", + "name": "Tj Vita", + "avatar_url": "https://avatars.githubusercontent.com/u/14024037?v=4", + "profile": "http://enakdesign.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "STRUDSO", + "name": "Søren Trudsø Mahon", + "avatar_url": "https://avatars.githubusercontent.com/u/1543732?v=4", + "profile": "https://github.com/STRUDSO", + "contributions": [ + "instructions" + ] + }, + { + "login": "geoder101", + "name": "George Dernikos", + "avatar_url": "https://avatars.githubusercontent.com/u/145904?v=4", + "profile": "https://github.com/geoder101", + "contributions": [ + "code" + ] + }, + { + "login": "gautambaghel", + "name": "Gautam", + "avatar_url": "https://avatars.githubusercontent.com/u/22324290?v=4", + "profile": "https://github.com/gautambaghel", + "contributions": [ + "agents" + ] + }, + { + "login": "feapaydin", + "name": "Furkan Enes", + "avatar_url": "https://avatars.githubusercontent.com/u/19946639?v=4", + "profile": "https://github.com/feapaydin", + "contributions": [ + "instructions" + ] + }, + { + "login": "fmuecke", + "name": "Florian Mücke", + "avatar_url": "https://avatars.githubusercontent.com/u/7921024?v=4", + "profile": "https://github.com/fmuecke", + "contributions": [ + "agents" + ] + }, + { + "login": "felixarjuna", + "name": "Felix Arjuna", + "avatar_url": "https://avatars.githubusercontent.com/u/79026094?v=4", + "profile": "https://www.felixarjuna.dev/", + "contributions": [ + "instructions" + ] + }, + { + "login": "ewega", + "name": "Eldrick Wega", + "avatar_url": "https://avatars.githubusercontent.com/u/26189114?v=4", + "profile": "https://github.com/ewega", + "contributions": [ + "prompts" + ] + }, + { + "login": "danchev", + "name": "Dobri Danchev", + "avatar_url": "https://avatars.githubusercontent.com/u/12420863?v=4", + "profile": "https://github.com/danchev", + "contributions": [ + "prompts" + ] + }, + { + "login": "difegam", + "name": "Diego Gamboa", + "avatar_url": "https://avatars.githubusercontent.com/u/7052267?v=4", + "profile": "https://dgamboa.com/", + "contributions": [ + "prompts" + ] + }, + { + "login": "derekclair", + "name": "Derek Clair", + "avatar_url": "https://avatars.githubusercontent.com/u/5247629?v=4", + "profile": "https://github.com/derekclair", + "contributions": [ + "agents", + "prompts" + ] + }, + { + "login": "davidortinau", + "name": "David Ortinau", + "avatar_url": "https://avatars.githubusercontent.com/u/41873?v=4", + "profile": "https://dev.to/davidortinau", + "contributions": [ + "code" + ] + }, + { + "login": "danielabbatt", + "name": "Daniel Abbatt", + "avatar_url": "https://avatars.githubusercontent.com/u/8926756?v=4", + "profile": "https://github.com/danielabbatt", + "contributions": [ + "instructions" + ] + }, + { + "login": "CypherHK", + "name": "CypherHK", + "avatar_url": "https://avatars.githubusercontent.com/u/230935834?v=4", + "profile": "https://github.com/CypherHK", + "contributions": [ + "agents", + "prompts" + ] + }, + { + "login": "craigbekker", + "name": "Craig Bekker", + "avatar_url": "https://avatars.githubusercontent.com/u/1115912?v=4", + "profile": "https://github.com/craigbekker", + "contributions": [ + "code" + ] + }, + { + "login": "tossnet", + "name": "Christophe Peugnet", + "avatar_url": "https://avatars.githubusercontent.com/u/3845786?v=4", + "profile": "https://www.peug.net/", + "contributions": [ + "instructions" + ] + }, { "login": "lechnerc77", "name": "Christian Lechner", "avatar_url": "https://avatars.githubusercontent.com/u/22294087?v=4", "profile": "https://github.com/lechnerc77", + "contributions": [ + "instructions" + ] + }, + { + "login": "charris-msft", + "name": "Chris Harris", + "avatar_url": "https://avatars.githubusercontent.com/u/74415662?v=4", + "profile": "https://github.com/charris-msft", + "contributions": [ + "agents" + ] + }, + { + "login": "BBoyBen", + "name": "BBoyBen", + "avatar_url": "https://avatars.githubusercontent.com/u/34445365?v=4", + "profile": "https://github.com/BBoyBen", + "contributions": [ + "instructions" + ] + }, + { + "login": "artemsaveliev", + "name": "Artem Saveliev", + "avatar_url": "https://avatars.githubusercontent.com/u/15679218?v=4", + "profile": "https://github.com/artemsaveliev", + "contributions": [ + "instructions" + ] + }, + { + "login": "arey", + "name": "Antoine Rey", + "avatar_url": "https://avatars.githubusercontent.com/u/838318?v=4", + "profile": "https://javaetmoi.com/", + "contributions": [ + "prompts" + ] + }, + { + "login": "PiKa919", + "name": "Ankit Das", + "avatar_url": "https://avatars.githubusercontent.com/u/96786190?v=4", + "profile": "https://github.com/PiKa919", + "contributions": [ + "instructions" + ] + }, + { + "login": "alineavila", + "name": "Aline Ávila", + "avatar_url": "https://avatars.githubusercontent.com/u/24813256?v=4", + "profile": "https://github.com/alineavila", + "contributions": [ + "instructions" + ] + }, + { + "login": "martin-cod", + "name": "Alexander Martinkevich", + "avatar_url": "https://avatars.githubusercontent.com/u/33550246?v=4", + "profile": "https://github.com/martin-cod", + "contributions": [ + "agents" + ] + }, + { + "login": "aldunchev", + "name": "Aleksandar Dunchev", + "avatar_url": "https://avatars.githubusercontent.com/u/4631021?v=4", + "profile": "https://github.com/aldunchev", + "contributions": [ + "agents" + ] + }, + { + "login": "tegola", + "name": "Alan Sprecacenere", + "avatar_url": "https://avatars.githubusercontent.com/u/1868590?v=4", + "profile": "http://www.qreate.it/", + "contributions": [ + "instructions" + ] + }, + { + "login": "akashxlr8", + "name": "Akash Kumar Shaw", + "avatar_url": "https://avatars.githubusercontent.com/u/58072860?v=4", + "profile": "https://github.com/akashxlr8", + "contributions": [ + "instructions" + ] + }, + { + "login": "abdidaudpropel", + "name": "Abdi Daud", + "avatar_url": "https://avatars.githubusercontent.com/u/51310019?v=4", + "profile": "https://github.com/abdidaudpropel", + "contributions": [ + "agents" + ] + }, + { + "login": "4regab", + "name": "4regab", + "avatar_url": "https://avatars.githubusercontent.com/u/178603515?v=4", + "profile": "https://github.com/4regab", + "contributions": [ + "instructions" + ] + }, + { + "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": [ + "prompts" + ] + }, + { + "login": "Mike-Hanna", + "name": "Michael", + "avatar_url": "https://avatars.githubusercontent.com/u/50142889?v=4", + "profile": "https://github.com/Mike-Hanna", + "contributions": [ + "instructions" + ] + }, + { + "login": "mehmetalierol", + "name": "Mehmet Ali EROL", + "avatar_url": "https://avatars.githubusercontent.com/u/16721723?v=4", + "profile": "http://www.mehmetalierol.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "maxprilutskiy", + "name": "Max Prilutskiy", + "avatar_url": "https://avatars.githubusercontent.com/u/5614659?v=4", + "profile": "https://maxprilutskiy.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "mbianchidev", + "name": "Matteo Bianchi", + "avatar_url": "https://avatars.githubusercontent.com/u/37507190?v=4", + "profile": "https://github.com/mbianchidev", + "contributions": [ + "agents" + ] + }, + { + "login": "codemillmatt", + "name": "Matt Soucoup", + "avatar_url": "https://avatars.githubusercontent.com/u/2053639?v=4", + "profile": "https://codemilltech.com/", + "contributions": [ + "infra" + ] + }, + { + "login": "marknoble", + "name": "Mark Noble", + "avatar_url": "https://avatars.githubusercontent.com/u/3819700?v=4", + "profile": "http://marknoble.com/", + "contributions": [ + "agents" + ] + }, + { + "login": "ManishJayaswal", + "name": "Manish Jayaswal", + "avatar_url": "https://avatars.githubusercontent.com/u/9527491?v=4", + "profile": "https://github.com/ManishJayaswal", + "contributions": [ + "agents" + ] + }, + { + "login": "lukemurraynz", + "name": "Luke Murray", + "avatar_url": "https://avatars.githubusercontent.com/u/24467442?v=4", + "profile": "https://linktr.ee/lukemurray", + "contributions": [ + "agents" + ] + }, + { + "login": "LouellaCreemers", + "name": "Louella Creemers", + "avatar_url": "https://avatars.githubusercontent.com/u/46204894?v=4", + "profile": "https://github.com/LouellaCreemers", + "contributions": [ + "instructions" + ] + }, + { + "login": "whiteken", + "name": "Kenny White", + "avatar_url": "https://avatars.githubusercontent.com/u/20211937?v=4", + "profile": "https://github.com/whiteken", + "contributions": [ + "instructions" + ] + }, + { + "login": "KaloyanGenev", + "name": "KaloyanGenev", + "avatar_url": "https://avatars.githubusercontent.com/u/42644424?v=4", + "profile": "https://github.com/KaloyanGenev", + "contributions": [ + "agents" + ] + }, + { + "login": "Ranrar", + "name": "Kim Skov Rasmussen", + "avatar_url": "https://avatars.githubusercontent.com/u/95967772?v=4", + "profile": "https://github.com/Ranrar", "contributions": [ "code" ] }, + { + "login": "jdubois", + "name": "Julien Dubois", + "avatar_url": "https://avatars.githubusercontent.com/u/316835?v=4", + "profile": "https://www.julien-dubois.com/", + "contributions": [ + "prompts" + ] + }, + { + "login": "josegarridodigio", + "name": "José Antonio Garrido", + "avatar_url": "https://avatars.githubusercontent.com/u/173672918?v=4", + "profile": "https://digio.es/", + "contributions": [ + "instructions" + ] + }, + { + "login": "josephgonzales01", + "name": "Joseph Gonzales", + "avatar_url": "https://avatars.githubusercontent.com/u/15100839?v=4", + "profile": "http://www.sugbo4j.co.nz/", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "yortch", + "name": "Jorge Balderas", + "avatar_url": "https://avatars.githubusercontent.com/u/4576246?v=4", + "profile": "https://github.com/yortch", + "contributions": [ + "instructions" + ] + }, + { + "login": "johnpapa", + "name": "John Papa", + "avatar_url": "https://avatars.githubusercontent.com/u/1202528?v=4", + "profile": "http://johnpapa.net/", + "contributions": [ + "code" + ] + }, + { + "login": "johnlokerse", + "name": "John", + "avatar_url": "https://avatars.githubusercontent.com/u/3514513?v=4", + "profile": "https://www.johnlokerse.dev/", + "contributions": [ + "agents" + ] + }, + { + "login": "joe-watkins", + "name": "Joe Watkins", + "avatar_url": "https://avatars.githubusercontent.com/u/3695795?v=4", + "profile": "http://joe-watkins.io/", + "contributions": [ + "instructions" + ] + }, { "login": "Jandev", "name": "Jan de Vries", "avatar_url": "https://avatars.githubusercontent.com/u/462356?v=4", - "profile": "https://jan-v.nl", + "profile": "https://jan-v.nl/", "contributions": [ - "code" + "agents" + ] + }, + { + "login": "nohwnd", + "name": "Jakub Jareš", + "avatar_url": "https://avatars.githubusercontent.com/u/5735905?v=4", + "profile": "https://github.com/nohwnd", + "contributions": [ + "prompts" + ] + }, + { + "login": "jaxn", + "name": "Jackson Miller", + "avatar_url": "https://avatars.githubusercontent.com/u/29095?v=4", + "profile": "https://github.com/jaxn", + "contributions": [ + "instructions" + ] + }, + { + "login": "Ioana37", + "name": "Ioana A", + "avatar_url": "https://avatars.githubusercontent.com/u/69301842?v=4", + "profile": "https://github.com/Ioana37", + "contributions": [ + "instructions" + ] + }, + { + "login": "hashimwarren", + "name": "Hashim Warren", + "avatar_url": "https://avatars.githubusercontent.com/u/6027587?v=4", + "profile": "https://github.com/hashimwarren", + "contributions": [ + "agents" + ] + }, + { + "login": "0GiS0", + "name": "Gisela Torres", + "avatar_url": "https://avatars.githubusercontent.com/u/175379?v=4", + "profile": "https://hachyderm.io/@0gis0", + "contributions": [ + "agents" + ] + }, + { + "login": "giomartinsdev", + "name": "Giovanni de Almeida Martins", + "avatar_url": "https://avatars.githubusercontent.com/u/125399281?v=4", + "profile": "https://github.com/giomartinsdev", + "contributions": [ + "instructions" + ] + }, + { + "login": "jfversluis", + "name": "Gerald Versluis", + "avatar_url": "https://avatars.githubusercontent.com/u/939291?v=4", + "profile": "https://jfversluis.dev/", + "contributions": [ + "instructions" ] } - ], - "contributorsPerLine": 7, - "linkToUsage": true, - "commitType": "docs" + ] } diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml index 13adbaa3..159910ee 100644 --- a/.github/workflows/contributors.yml +++ b/.github/workflows/contributors.yml @@ -8,32 +8,52 @@ on: jobs: contributors: runs-on: ubuntu-latest + timeout-minutes: 12 permissions: contents: write pull-requests: write steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: - fetch-depth: 0 + fetch-depth: 0 # Required: add-missing-contributors.js needs full git history + + - name: Extract Node version from package.json + id: node-version + run: | + NODE_VERSION=$(jq -r '.engines.node // "22.x"' package.json) + echo "version=${NODE_VERSION}" >> "$GITHUB_OUTPUT" - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: "20" + node-version: ${{ steps.node-version.outputs.version }} - name: Install dependencies - run: npm install + run: npm ci - - name: Update contributors - run: npm run contributors:check + - name: Check and report contributors + run: | + CHECK_OUTPUT=$(npm run contributors:check 2>&1) + echo "$CHECK_OUTPUT" + + if echo "$CHECK_OUTPUT" | grep -q "Missing contributors"; then + echo "Missing contributors detected, generating report..." + mkdir -p reports + npm run contributors:report + + if [ -f reports/contributor-report.md ]; then + cat reports/contributor-report.md >> $GITHUB_STEP_SUMMARY + fi + else + echo "No missing contributors found" + fi env: PRIVATE_TOKEN: ${{ secrets.GITHUB_TOKEN }} + continue-on-error: true - name: Regenerate README - run: | - npm install - npm start + run: npm start - name: Check for changes id: verify-changed-files diff --git a/.gitignore b/.gitignore index 8ff4ff51..893a921b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules *.orig Copilot-Processing.md +reports/ # macOS system files .DS_Store diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 524a647f..2f9bb65f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -191,7 +191,8 @@ For full example of usage checkout edge-ai tasks collection: - A brief description of what your instruction/prompt does - Any relevant context or usage notes -**Note**: Once your contribution is merged, you'll automatically be added to our [Contributors](./README.md#contributors-) section! We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project. +> [!NOTE] +> We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize all types of contributions to the project. Jump to [Contributors Recognition](#contributor-recognition) to learn more! ## What We Accept @@ -225,21 +226,33 @@ To maintain a safe, responsible, and constructive community, we will **not accep - **Write clearly**: Use simple, direct language - **Promote best practices**: Encourage secure, maintainable, and ethical development practices -## Contributors Recognition +## Contributor Recognition -This project uses [all-contributors](https://github.com/all-contributors/all-contributors) to recognize contributors. When you make a contribution, you'll automatically be recognized in our contributors list! +We use [all-contributors](https://github.com/all-contributors/all-contributors) to recognize **all types of contributions** to this project. -We welcome contributions of all types, including: +To add yourself, leave a comment on a relevant issue or pull request using your GitHub username and the appropriate contribution type(s): -- 📝 Documentation improvements -- 💻 Code contributions -- 🐛 Bug reports and fixes -- 🎨 Design improvements -- 💡 Ideas and suggestions -- 🤔 Answering questions -- 📢 Promoting the project +```markdown +@all-contributors add @username for contributionType1, contributionType2 +``` + +The contributors list is updated automatically every Sunday at **3:00 AM UTC**. When the next run completes, your name will appear in the [README Contributors](./README.md#contributors-) section. + +### Contribution Types + +We welcome many kinds of contributions, including the custom categories below: + +| Category | Description | Emoji | +| --- | --- | :---: | +| **Instructions** | Custom instruction sets that guide GitHub Copilot behavior | 🧭 | +| **Prompts** | Reusable or one-off prompts for GitHub Copilot | ⌨️ | +| **Agents (Chat Modes)** | Defined Copilot roles or personalities | 🎭 | +| **Collections** | Curated bundles of related prompts, agents, or instructions | 🎁 | + +In addition, all standard contribution types supported by [All Contributors](https://allcontributors.org/emoji-key/) are recognized. + +> Every contribution matters. Thanks for helping improve this resource for the GitHub Copilot community. -Your contributions help make this resource better for the entire GitHub Copilot community! ## Code of Conduct diff --git a/README.md b/README.md index 58881bc9..d22fa5cf 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ # 🤖 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?style=flat-square) [![GitHub contributors from allcontributors.org](https://img.shields.io/github/all-contributors/github/awesome-copilot?style=flat-square&color=ee8449)](#contributors-) -[![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-93-orange.svg?style=flat-square)](#contributors-) - A community created collection of custom agents, prompts, and instructions to supercharge your GitHub Copilot experience across different domains, languages, and use cases. @@ -127,7 +124,7 @@ The customizations in this repository are sourced from and created by third-part ## Contributors ✨ -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): +Thanks goes to these wonderful people ([emoji key](./CONTRIBUTING.md#contributors-recognition)): @@ -135,125 +132,215 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eng/README.md b/eng/README.md new file mode 100644 index 00000000..ff95c85d --- /dev/null +++ b/eng/README.md @@ -0,0 +1,36 @@ +# Contributor Reporting (Maintainers) 🚧 + +This directory contains a lightweight helper to generate human-readable reports about missing contributors. + +- `contributor-report.mjs` — generates a markdown report of merged PRs for missing contributors (includes shared helpers). +- `add-missing-contributors.mjs` — on-demand maintainer script to automatically add missing contributors to `.all-contributorsrc` (infers contribution types from merged PR files, then runs the all-contributors CLI). + +## Key notes for maintainers + +- Reports are generated on-demand and output to `reports/contributor-report.md` for human review. +- The report output is intentionally minimal: a single list of affected PRs and one command to add missing contributor(s). +- This repository requires full git history for accurate analysis. In CI, set `fetch-depth: 0`. +- Link: [all-contributors CLI documentation](https://allcontributors.org/docs/en/cli) + +## On-demand scripts (not CI) + +These are maintainer utilities. They are intentionally on-demand only (but could be wired into CI later). + +### `add-missing-contributors.mjs` + +- Purpose: detect missing contributors, infer contribution types from their merged PR files, and run `npx all-contributors add ...` to update `.all-contributorsrc`. +- Requirements: + - GitHub CLI (`gh`) available (used to query merged PRs). + - `.all-contributorsrc` exists. + - Auth token set to avoid the anonymous GitHub rate limits: + - Set `GITHUB_TOKEN` (preferred), or `GH_TOKEN` for the `gh` CLI. + - If you use `PRIVATE_TOKEN` locally, `contributor-report.mjs` will map it to `GITHUB_TOKEN`. + +## Graceful shutdown + +- `contributor-report.mjs` calls `setupGracefulShutdown('script-name')` from `eng/utils/graceful-shutdown.mjs` early in the file to attach signal/exception handlers. + +## Testing & maintenance + +- Helper functions have small, deterministic behavior and include JSDoc comments. +- The `getMissingContributors` function in `contributor-report.mjs` is the single source of truth for detecting missing contributors from `all-contributors check` output. diff --git a/eng/add-missing-contributors.mjs b/eng/add-missing-contributors.mjs new file mode 100644 index 00000000..dc8911c5 --- /dev/null +++ b/eng/add-missing-contributors.mjs @@ -0,0 +1,306 @@ +/** + * One-time contributor detection and addition script. + * Discovers missing contributors, determines their contribution types from repo history, + * and updates .all-contributorsrc via the all-contributors CLI. + * + * Usage: node add-missing-contributors.mjs + */ +import { execSync } from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import { + getContributionTypes, + getMissingContributors, + fetchContributorMergedPrs +} from './contributor-report.mjs'; +import { setupGracefulShutdown } from './utils/graceful-shutdown.mjs'; + +const DEFAULT_CMD_TIMEOUT = 30_000; // 30 seconds + +setupGracefulShutdown('add-missing-contributors'); + +/** + * Get all files touched by a contributor from their merged PRs. + * @param {string} username + * @returns {string[]} + */ +const getContributorFiles = (username) => { + try { + console.log(`📁 Getting files for contributor: ${username}`); + + const prs = fetchContributorMergedPrs(username, { includeAllFiles: true }); + + if (prs.length === 0) { + console.log(`📭 No merged PRs found for ${username}`); + return []; + } + + const files = new Set(); + for (const pr of prs) { + for (const file of pr.files || []) { + if (file?.path) { + files.add(file.path); + } + } + } + + const fileList = Array.from(files); + console.log(`📄 Found ${fileList.length} unique files for ${username}: ${fileList.slice(0, 3).join(', ')}${fileList.length > 3 ? '...' : ''}`); + return fileList; + + } catch (error) { + console.error(`❌ Error getting files for ${username}:`, error.message); + return []; + } +}; + +/** + * Determine contribution types from a contributor's files. + * @param {string} username + * @returns {string} + */ +const analyzeContributor = (username) => { + try { + console.log(`🔍 Analyzing contribution types for: ${username}`); + const files = getContributorFiles(username); + + if (files.length === 0) { + console.log(`💡 No files found for ${username}, using 'code' fallback`); + return 'code'; + } + + const contributionTypes = getContributionTypes(files); + + if (!contributionTypes || contributionTypes.trim() === '') { + console.log(`💡 No matching types found for ${username}, using 'code' fallback`); + return 'code'; + } + + console.log(`✅ Determined types for ${username}: ${contributionTypes}`); + return contributionTypes; + + } catch (error) { + console.error(`❌ Error analyzing files for ${username}:`, error.message); + return 'code'; + } +}; + +/** + * Add a username to the ignore list in .all-contributorsrc. + * @param {string} username + * @returns {boolean} + */ +const addToIgnoreList = (username) => { + try { + const configPath = path.join(process.cwd(), '.all-contributorsrc'); + const config = JSON.parse(fs.readFileSync(configPath, 'utf-8')); + + const ignoreList = config.ignoreList || config.ignore || []; + if (!ignoreList.includes(username)) { + ignoreList.push(username); + config.ignoreList = ignoreList; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + console.warn(`⚠️ Added ${username} to ignore list (user not found on GitHub)`); + return true; + } + return false; + } catch (error) { + console.error(`❌ Failed to add ${username} to ignore list:`, error.message); + return false; + } +}; + +/** + * Run the all-contributors CLI to add a contributor to the project. + * @param {string} username + * @param {string} types + * @returns {boolean} + */ +const addContributor = (username, types) => { + try { + console.log(`➕ Adding contributor: ${username} with types: ${types}`); + + const command = `npx all-contributors add ${username} ${types}`; + + execSync(command, { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'pipe'], + timeout: DEFAULT_CMD_TIMEOUT + }); + + return true; + + } catch (error) { + // System-level errors that should propagate up + if (error.message.includes('rate limit') || error.message.includes('403')) { + console.error(`⏱️ Rate limit encountered while adding ${username}.`); + throw error; + } + if (error.message.includes('network') || error.message.includes('timeout')) { + console.error(`🌐 Network error while adding ${username}.`); + throw error; + } + + // User-specific errors that can be skipped + if (error.message.includes('404') || error.message.includes('not found')) { + addToIgnoreList(username); + console.error(`❌ User ${username} not found, added to ignore list`); + return false; + } + + // Unknown error - log and skip + console.error(`❌ Failed to add contributor ${username}:`, error.message); + return false; + } +}; + +/** + * Process a single missing contributor: detect types and add via all-contributors CLI. + * @param {string} username + * @returns {{added:number, failed:number}} + */ +const processContributor = async (username) => { + let added = 0; + let failed = 0; + + try { + console.log(`📊 Step 2: Analyzing contribution types for ${username}...`); + const contributionTypes = analyzeContributor(username); + + console.log(`➕ Step 3: Adding ${username} with types: ${contributionTypes}...`); + + const success = addContributor(username, contributionTypes); + if (success) { + added++; + console.log(`✅ Successfully processed ${username}`); + } else { + failed++; + console.log(`❌ Failed to process ${username}`); + } + + } catch (error) { + failed++; + console.error(`💥 Error processing ${username}:`, error.message); + } + + return { added, failed }; +}; + +/** + * Main entry point: detect and add missing contributors. + */ +const main = async () => { + console.log('🚀 Starting add missing contributors script'); + console.log('='.repeat(50)); + + try { + console.log('\n📋 Step 1: Detecting missing contributors...'); + const missingContributors = getMissingContributors(); + + if (missingContributors.length === 0) { + console.log('🎉 No missing contributors found! All contributors are properly recognized.'); + return { processed: 0, added: 0, failed: 0 }; + } + + console.log(`\n🔄 Processing ${missingContributors.length} missing contributors...`); + + let processed = 0; + let added = 0; + let failed = 0; + + for (const username of missingContributors) { + console.log(`\n${'─'.repeat(30)}`); + console.log(`👤 Processing contributor: ${username}`); + + processed++; + + try { + const { added: deltaAdded, failed: deltaFailed } = await processContributor(username); + added += deltaAdded; + failed += deltaFailed; + } catch (error) { + // Re-throw system-level errors (rate limit, network, SIGINT) + console.error(`💥 System error processing ${username}:`, error.message); + throw error; + } + } + + return { processed, added, failed }; + } catch (error) { + console.error('\n💥 Fatal error in main execution:', error.message); + console.error('🛑 Script execution stopped'); + throw error; + } +}; + +/** + * Print a summary report of the run. + * @param {{processed:number, added:number, failed:number}} results + */ +const printSummaryReport = (results) => { + const { processed, added, failed } = results; + + console.log('\n' + '='.repeat(50)); + console.log('📊 EXECUTION SUMMARY'); + console.log('='.repeat(50)); + + console.log(`📋 Total contributors processed: ${processed}`); + console.log(`✅ Successfully added: ${added}`); + console.log(`❌ Failed to add: ${failed}`); + + if (processed === 0) { + console.log('\n🎉 SUCCESS: No missing contributors found - all contributors are properly recognized!'); + } else if (failed === 0) { + console.log('\n🎉 SUCCESS: All missing contributors have been successfully added!'); + console.log('💡 Next steps: Review the updated .all-contributorsrc file and commit the changes.'); + } else if (added > 0) { + console.log('\n⚠️ PARTIAL SUCCESS: Some contributors were added, but some failed.'); + console.log(`💡 ${added} contributors were successfully added.`); + console.log(`🔄 ${failed} contributors failed - check the error messages above for details.`); + console.log('💡 You may want to run the script again to retry failed contributors.'); + } else { + console.log('\n❌ FAILURE: No contributors could be added.'); + console.log('💡 Check the error messages above for troubleshooting guidance.'); + console.log('💡 Common issues: missing GITHUB_TOKEN, network problems, or API rate limits.'); + } + + console.log('\n📝 ACTIONABLE NEXT STEPS:'); + if (added > 0) { + console.log('• Review the updated .all-contributorsrc file'); + console.log('• Commit and push the changes to update the README'); + console.log('• Consider running "npm run contributors:generate" to update the README'); + } + if (failed > 0) { + console.log('• Check error messages above for specific failure reasons'); + console.log('• Verify GITHUB_TOKEN is set and has appropriate permissions'); + console.log('• Consider running the script again after resolving issues'); + } + if (processed === 0) { + console.log('• No action needed - all contributors are already recognized!'); + } + + console.log('\n' + '='.repeat(50)); +}; + +if (process.argv[1] === (new URL(import.meta.url)).pathname) { + try { + const results = await main(); + printSummaryReport(results); + + if (results.failed > 0 && results.added === 0) { + process.exit(1); + } else if (results.failed > 0) { + process.exit(2); + } else { + process.exit(0); + } + } catch (error) { + console.error('\n💥 Script execution failed:', error.message); + console.log('\n📝 TROUBLESHOOTING TIPS:'); + console.log('• Ensure you are in a git repository'); + console.log('• Verify all-contributors-cli is installed'); + console.log('• Check that .all-contributorsrc file exists'); + console.log('• Ensure GITHUB_TOKEN environment variable is set'); + process.exit(1); + } +} diff --git a/eng/contributor-report.mjs b/eng/contributor-report.mjs new file mode 100644 index 00000000..e67d4805 --- /dev/null +++ b/eng/contributor-report.mjs @@ -0,0 +1,597 @@ +/** + * Generate human-readable reports about missing contributors. + * This module queries merged PRs via 'gh' and produces a markdown report. + */ +import { execSync } from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import { setupGracefulShutdown } from './utils/graceful-shutdown.mjs'; + +const DEFAULT_CMD_TIMEOUT = 30_000; // 30s + +setupGracefulShutdown('contributor-report'); + +/** + * Patterns that represent generated files; contributors should not be credited + * for these files because they are not substantive authored content. + */ +export const AUTO_GENERATED_PATTERNS = [ + 'README.md', + 'README.*.md', + 'collections/*.md', + 'collections/*.collection.md', + 'docs/README.*.md', + 'docs/*.generated.md' +]; + +/** + * File globs used to infer contribution types from file paths. + */ +export const TYPE_PATTERNS = { + instructions: [ + 'instructions/*.instructions.md' + ], + prompts: [ + 'prompts/*.prompt.md' + ], + agents: [ + 'chatmodes/*.chatmode.md', + 'agents/*.agent.md' + ], + collections: [ + 'collections/*.collection.yml' + ], + doc: [ + 'docs/**/*.md', + '.github/**/*.md', + 'CONTRIBUTING.md', + 'SECURITY.md', + 'SUPPORT.md', + 'LICENSE.md', + 'CHANGELOG.md', + '*.md' + ], + infra: [ + '.github/workflows/**/*.yml', + '.github/workflows/**/*.yaml', + '**/*.yml', + '**/*.yaml' + ], + maintenance: [ + 'package*.json', + '*.config.js', + 'tsconfig*.json' + ], + code: [ + '**/*.{js,ts,mjs,cjs}', + '**/*.py' + ] +}; + +const globCache = new Map(); + +/** + * Convert a simple glob (with *, **) to a RegExp. + * This is intentionally small and deterministic for our repo patterns. + * @param {string} pattern + * @returns {RegExp} + */ +export const globToRegExp = (pattern) => { + const DOUBLE_WILDCARD_PLACEHOLDER = '§§DOUBLE§§'; + const replacements = [ + { pattern: /\\/g, replacement: '/' }, + { pattern: /\./g, replacement: String.raw`\.` }, + { pattern: /\*\*/g, replacement: DOUBLE_WILDCARD_PLACEHOLDER }, + { pattern: /\*/g, replacement: '[^/]*' }, + { pattern: new RegExp(DOUBLE_WILDCARD_PLACEHOLDER, 'g'), replacement: '.*' }, + { pattern: /\?/g, replacement: '.' }, + { pattern: /\//g, replacement: String.raw`\/` } + ]; + + const normalized = replacements.reduce((acc, { pattern, replacement }) => acc.replace(pattern, replacement), String(pattern)); + + return new RegExp(`^${normalized}$`); +}; + +/** + * Test whether a file path matches a glob pattern. + * @param {string} filePath + * @param {string} pattern + * @returns {boolean} + */ +export const matchGlob = (filePath, pattern) => { + if (!globCache.has(pattern)) { + try { + globCache.set(pattern, globToRegExp(pattern)); + } catch { + globCache.set(pattern, null); + } + } + + const regexp = globCache.get(pattern); + if (!regexp) { + return false; + } + + const normalized = filePath.replace(/\\/g, '/'); + return regexp.test(normalized); +}; + +/** + * Return true if the given path matches one of the known auto-generated patterns. + * @param {string} filePath + * @returns {boolean} + */ +export const isAutoGeneratedFile = (filePath) => { + return AUTO_GENERATED_PATTERNS.some((pattern) => matchGlob(filePath, pattern)); +}; + +/** + * Infer a contribution type string (e.g. 'prompts', 'agents', 'doc') for a file path. + * Returns null if no specific type matched. + * @param {string} filePath + * @returns {string|null} + */ +export const getFileContributionType = (filePath) => { + const normalized = filePath.replace(/\\/g, '/'); + + for (const [type, patterns] of Object.entries(TYPE_PATTERNS)) { + if (patterns.some((pattern) => matchGlob(normalized, pattern))) { + return type; + } + } + + return null; +}; + +/** + * Derive a comma-separated list of contribution type identifiers from a list of files. + * Auto-generated files are ignored. Returns '' when no files to process. + * @param {string[]} files + * @returns {string} + */ +export const getContributionTypes = (files) => { + const types = new Set(); + let processed = 0; + + for (const file of files) { + if (isAutoGeneratedFile(file)) { + continue; + } + + processed += 1; + const type = getFileContributionType(file); + if (type) { + types.add(type); + } + } + + if (processed === 0) { + return ''; + } + + if (types.size === 0) { + types.add('code'); + } + + return Array.from(types).sort((a, b) => a.localeCompare(b)).join(','); +}; + +/** + * Check .all-contributors output to discover missing contributors. + * This is the canonical implementation used by contributor tooling. + * @returns {string[]} + */ +export const getMissingContributors = () => { + try { + console.log('🔍 Checking for missing contributors...'); + + const configPath = path.join(process.cwd(), '.all-contributorsrc'); + const config = JSON.parse(fs.readFileSync(configPath, 'utf-8')); + const ignoreEntries = config.ignoreList || config.ignore || []; + const ignoreSet = new Set(ignoreEntries.map((entry) => entry.toLowerCase())); + + if (ignoreSet.size > 0) { + console.log(`📋 Loaded ignore list: ${Array.from(ignoreSet).join(', ')}`); + } + + const output = execSync('npx all-contributors check', { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'pipe'], + timeout: DEFAULT_CMD_TIMEOUT + }); + + const lines = output.split('\n'); + + const headerLineIndex = lines.findIndex(line => + line.includes('Missing contributors in .all-contributorsrc:') + ); + + if (headerLineIndex === -1) { + console.log('✅ No missing contributors found'); + return []; + } + + let contributorsLine = ''; + for (let i = headerLineIndex + 1; i < lines.length; i++) { + const line = lines[i].trim(); + + if (line.includes('Unknown contributors') || line.includes('✨')) { + break; + } + + if (line && !line.startsWith('⠙') && !line.startsWith('✨')) { + contributorsLine = line; + break; + } + } + + if (!contributorsLine) { + console.log('✅ No missing contributors found'); + return []; + } + + const allUsernames = contributorsLine + .split(',') + .map(username => username.trim()) + .filter(username => username.length > 0); + + const filteredUsernames = allUsernames.filter(username => { + const lowerUsername = username.toLowerCase(); + + if (ignoreSet.has(lowerUsername)) { + console.log(`⏭️ FILTERED: ${username} is in ignore list`); + return false; + } + + return true; + }); + + console.log(`📋 Found ${filteredUsernames.length} missing contributors after filtering: ${filteredUsernames.join(', ')}`); + return filteredUsernames; + + } catch (error) { + console.error('❌ Error checking for missing contributors:', error.message); + if (error.message.includes('command not found') || error.message.includes('not recognized')) { + console.error('💡 Make sure all-contributors-cli is installed: npm install all-contributors-cli'); + } + return []; + } +}; + +// --- REPORT GENERATION LOGIC --- + +/** + * Get the current GitHub repository in owner/repo format. + * Tries upstream first, then origin. + * @returns {string} + */ +const getGitHubRepo = () => { + try { + const upstreamUrl = execSync('git config --get remote.upstream.url', { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'pipe'] + }).trim(); + if (upstreamUrl) { + const match = upstreamUrl.match(/github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/); + if (match) return `${match[1]}/${match[2]}`; + } + } catch (e) { + console.debug('upstream not found, trying origin'); + } + + try { + const originUrl = execSync('git config --get remote.origin.url', { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'pipe'] + }).trim(); + const match = originUrl.match(/github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/); + if (match) return `${match[1]}/${match[2]}`; + } catch (e) { + console.debug('origin not found, using default'); + } + + return 'github/awesome-copilot'; +}; + +const CONTRIBUTION_TYPE_MAP = { + 'instructions': { symbol: '🧭', description: 'The big AI prompt recipes (Copilot instruction sets)' }, + 'prompts': { symbol: '⌨️', description: 'One-shot or reusable user-level prompts' }, + 'agents': { symbol: '🎭', description: 'Defined Copilot personalities / roles' }, + 'collections': { symbol: '🎁', description: 'Bundled thematic sets (e.g., "Copilot for Docs")' } +}; + +/** + * Fetch merged PRs for a GitHub username using the GH CLI and filter files. + * @param {string} username + * @param {{includeAllFiles?:boolean}} [opts] + * @returns {Array} Array of PR objects + */ +export const fetchContributorMergedPrs = (username, { includeAllFiles = false } = {}) => { + try { + const repo = getGitHubRepo(); + const result = execSync( + `gh pr list --repo ${repo} --state merged --author ${username} --json number,title,mergedAt,files,url --limit 100`, + { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'], timeout: DEFAULT_CMD_TIMEOUT } + ); + const prs = JSON.parse(result); + + if (includeAllFiles) { + return prs; + } + + return prs.filter(pr => { + const hasNonConfigFiles = pr.files.some(file => + !isAutoGeneratedFile(file.path) + ); + return hasNonConfigFiles; + }); + } catch (error) { + console.error(`Failed to fetch PRs for ${username}:`, error.message); + return []; + } +}; + +/** + * Convert a PR object into a normalized report entry with types and file details. + * @param {{login:string}} contributor + * @param {object} pr + * @param {{includeAllFiles?:boolean}} [opts] + * @returns {object|null} + */ +const generatePRReport = (contributor, pr, { includeAllFiles = false } = {}) => { + const types = new Set(); + const fileDetails = []; + + for (const file of pr.files) { + if (!file?.path) { + continue; + } + + // Include generated files only if includeAllFiles is true + if (!includeAllFiles && isAutoGeneratedFile(file.path)) { + continue; + } + + const type = getFileContributionType(file.path) || 'ideas'; + if (type) { + types.add(type); + } + + fileDetails.push({ + path: file.path, + type: type || 'unknown', + additions: file.additions, + deletions: file.deletions + }); + } + + // If no non-filtered files contributed to types, and we're not asked for all files, skip this PR + if (types.size === 0 && !includeAllFiles) { + return null; + } + + // Fallback to 'code' if no types detected + if (types.size === 0) { + types.add('code'); + } + + const typeList = Array.from(types); + + return { + prNumber: pr.number, + prTitle: pr.title, + prUrl: pr.url, + mergedAt: pr.mergedAt, + contributionTypes: typeList, + files: fileDetails, + commentSnippet: `@all-contributors please add @${contributor.login} for ${typeList.join(', ')}` + }; +}; + +/** + * Build a contributor report by inspecting merged PRs and mapping files to types. + * Returns null when no relevant PRs were found (unless includeAllFiles is true). + * @param {string} username + * @param {{includeAllFiles?:boolean}} [opts] + * @returns {object|null} + */ +export const generateContributorReport = (username, { includeAllFiles = false } = {}) => { + console.log(`Inspecting ${username}...`); + + const prs = fetchContributorMergedPrs(username, { includeAllFiles }); + const prReports = prs + .map(pr => generatePRReport({ login: username }, pr, { includeAllFiles })) + .filter(report => report !== null); + + // If no relevant PR reports and not explicitly including all files, skip the contributor entirely + if (prReports.length === 0 && !includeAllFiles) { + return null; + } + + return { + username, + totalPRs: prs.length, + prs: prReports + }; +}; + +/** + * Render a set of contributor reports as markdown for human review. + * @param {Array} reports + * @param {number} missingCount - number of missing contributors detected + * @returns {string} + */ +export const generateMarkdownReport = (reports, missingCount = 0) => { + // The report is intentionally minimal: a single list of affected PRs and + // a single copy/paste command maintainers can run locally. + // No timestamps, per-file breakdowns, or duplicated metadata. + + if (!missingCount) { + return 'No missing contributors detected.\n'; + } + + // 1) Single list of affected PRs (deduped). + const prEntries = new Map(); // key=prNumber or url, value={number,url,mergedAt} + for (const report of reports) { + for (const pr of report.prs) { + const key = pr.prUrl || String(pr.prNumber); + if (!prEntries.has(key)) { + prEntries.set(key, { + number: pr.prNumber, + url: pr.prUrl, + mergedAt: pr.mergedAt + }); + } + } + } + + const prList = Array.from(prEntries.values()).sort((a, b) => { + // Prefer chronological sort for stable “what happened” review. + const aTime = a.mergedAt ? Date.parse(a.mergedAt) : 0; + const bTime = b.mergedAt ? Date.parse(b.mergedAt) : 0; + if (aTime !== bTime) return aTime - bTime; + return (a.number ?? 0) - (b.number ?? 0); + }); + + // 2) One command (one line). If multiple users are missing, chain them. + const commandParts = []; + for (const report of reports) { + const typeSet = new Set(); + for (const pr of report.prs) { + for (const type of pr.contributionTypes || []) { + typeSet.add(type); + } + } + + const types = Array.from(typeSet).filter(Boolean).sort((a, b) => a.localeCompare(b)); + const typesArg = types.length > 0 ? types.join(',') : 'code'; + commandParts.push(`npx all-contributors add ${report.username} ${typesArg}`); + } + + let markdown = ''; + markdown += prList.map((pr) => `- #${pr.number} ${pr.url}`).join('\n'); + markdown += '\n\n'; + markdown += commandParts.join(' && '); + markdown += '\n'; + return markdown; +}; + +/** + * Check whether a PR already contains an all-contributors bot comment. + * @param {number} prNumber + * @returns {boolean} + */ +export const hasExistingAllContributorsComment = (prNumber) => { + try { + const repo = getGitHubRepo(); + const json = execSync(`gh pr view ${prNumber} --repo ${repo} --json comments`, { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'pipe'], + timeout: DEFAULT_CMD_TIMEOUT + }); + + const data = JSON.parse(json); + const comments = data?.comments?.nodes || data?.comments || []; + return comments.some((comment) => comment?.body?.includes(`@all-contributors`)); + } catch (error) { + console.warn(`⚠️ Unable to inspect comments for PR #${prNumber}: ${error.message}`); + return false; + } +}; + +/** + * Post a comment to a PR using the GH CLI. + * @param {number} prNumber + * @param {string} body + * @returns {boolean} + */ +export const postCommentOnPr = (prNumber, body) => { + try { + const repo = getGitHubRepo(); + execSync(`gh pr comment ${prNumber} --repo ${repo} --body "${body.replace(/"/g, '\\"')}"`, { + encoding: 'utf8', + stdio: ['pipe', 'inherit', 'inherit'], + timeout: DEFAULT_CMD_TIMEOUT + }); + + console.log(`💬 Posted recommendation comment on PR #${prNumber}`); + return true; + } catch (error) { + console.warn(`⚠️ Failed to post comment on PR #${prNumber}: ${error.message}`); + return false; + } +}; + +/** + * Post suggested all-contributors comments to PRs for a collection of reports. + * @param {Array} reports + */ +export const autoAddCommentsToReports = (reports) => { + for (const report of reports) { + for (const pr of report.prs) { + if (hasExistingAllContributorsComment(pr.prNumber)) { + console.log(`💬 Skipping PR #${pr.prNumber} for @${report.username} — comment already present`); + continue; + } + + const types = pr.contributionTypes.map(t => '`' + t + '`').join(', '); + const commentLines = [ + `Thanks for the contribution @${report.username}!`, + '', + `We detected contribution categories for this PR: ${types || '`code`'}.`, + '', + `@all-contributors please add @${report.username} for ${pr.contributionTypes.join(', ')}` + ]; + + const body = commentLines.join('\n'); + postCommentOnPr(pr.prNumber, body); + } + } +}; + +const main = () => { + try { + const ghToken = process.env.GITHUB_TOKEN || process.env.PRIVATE_TOKEN; + if (!ghToken) { + console.error('❌ GITHUB_TOKEN or PRIVATE_TOKEN environment variable is required for GitHub CLI operations'); + process.exit(1); + } + + // gh CLI only reads GITHUB_TOKEN or GH_TOKEN, so ensure it's set + if (process.env.PRIVATE_TOKEN && !process.env.GITHUB_TOKEN) { + process.env.GITHUB_TOKEN = process.env.PRIVATE_TOKEN; + } + + const args = new Set(process.argv.slice(2)); + const autoAdd = args.has('--auto-add-pr-comments'); + const includeAllFiles = args.has('--include-all-pr-files'); + + const contributors = getMissingContributors(); + console.log(`Inspecting ${contributors.length} missing contributors...\n`); + + const reports = []; + for (const contributor of contributors) { + const report = generateContributorReport(contributor, { includeAllFiles }); + reports.push(report || { username: contributor, totalPRs: 0, prs: [] }); + } + + const markdown = generateMarkdownReport(reports, contributors.length); + const outputPath = path.join(process.cwd(), 'reports', 'contributor-report.md'); + fs.writeFileSync(outputPath, markdown); + + console.log(`Report saved to: ${outputPath}`); + + if (autoAdd) { + autoAddCommentsToReports(reports); + } + + } catch (error) { + console.error('Error generating report:', error); + process.exit(1); + } +}; + +if (process.argv[1] === (new URL(import.meta.url)).pathname) { + main(); +} diff --git a/eng/utils/graceful-shutdown.mjs b/eng/utils/graceful-shutdown.mjs new file mode 100644 index 00000000..036f33f2 --- /dev/null +++ b/eng/utils/graceful-shutdown.mjs @@ -0,0 +1,60 @@ +/** + * Lightweight graceful shutdown helper for one-off scripts. + * + * Call setupGracefulShutdown('script-name') early in your script to attach + * signal and exception handlers that exit the process cleanly. + * + * @param {string} name - Human readable name for log messages + * @param {{exitCode?:number}} [opts] + * @returns {() => void} teardown function to remove handlers (useful in tests) + */ +export const setupGracefulShutdown = (name, { exitCode = 1 } = {}) => { + let _shuttingDown = false; + + const cleanup = (signal) => { + if (_shuttingDown) return; + _shuttingDown = true; + console.log(`\n🛑 ${name}: received ${signal}, shutting down gracefully...`); + // Best-effort cleanup: keep this short and synchronous + try { + // Place for lightweight cleanup tasks if needed in future + } catch (e) { + console.error(`${name}: error during shutdown cleanup:`, e); + } + + // Exit with a non-zero code to indicate abnormal termination + try { + process.exit(exitCode); + } catch (e) { + // process.exit may not be desirable in some test harnesses; swallow errors + console.warn(`${name}: process.exit failed:`, e?.message); + } + }; + + const onSigInt = () => cleanup('SIGINT'); + const onSigTerm = () => cleanup('SIGTERM'); + const onSigHup = () => cleanup('SIGHUP'); + const onUncaught = (err) => { + console.error(`${name}: Uncaught exception:`, err); + cleanup('uncaughtException'); + }; + const onUnhandledRejection = (reason) => { + console.error(`${name}: Unhandled promise rejection:`, reason); + cleanup('unhandledRejection'); + }; + + process.on('SIGINT', onSigInt); + process.on('SIGTERM', onSigTerm); + process.on('SIGHUP', onSigHup); + process.on('uncaughtException', onUncaught); + process.on('unhandledRejection', onUnhandledRejection); + + // Return a teardown function useful for tests or if a caller wants to remove handlers + return () => { + process.removeListener('SIGINT', onSigInt); + process.removeListener('SIGTERM', onSigTerm); + process.removeListener('SIGHUP', onSigHup); + process.removeListener('uncaughtException', onUncaught); + process.removeListener('unhandledRejection', onUnhandledRejection); + }; +}; diff --git a/package.json b/package.json index 5f25ae57..bf367d1a 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "npm run build", "build": "node ./eng/update-readme.mjs", "contributors:add": "all-contributors add", + "contributors:report": "node ./eng/contributor-report.mjs", "contributors:generate": "all-contributors generate", "contributors:check": "all-contributors check", "collection:validate": "node ./eng/validate-collections.mjs", @@ -24,7 +25,9 @@ "copilot", "ai", "prompts", - "instructions" + "instructions", + "chat modes", + "agents" ], "author": "GitHub", "license": "MIT", From d9d99cf3aadad8ff50bb29ef341ba263367c641e Mon Sep 17 00:00:00 2001 From: Ashley Childress <6563688+anchildress1@users.noreply.github.com> Date: Fri, 19 Dec 2025 23:12:56 -0500 Subject: [PATCH 02/57] refactor(eng): update contributor report generator output - Modify generateMarkdownReport to include per-user sections with PR details - Remove total PR count and simplify PR link format Commit-generated-by: GitHub Copilot Signed-off-by: Ashley Childress <6563688+anchildress1@users.noreply.github.com> --- eng/contributor-report.mjs | 105 ++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/eng/contributor-report.mjs b/eng/contributor-report.mjs index e67d4805..56005170 100644 --- a/eng/contributor-report.mjs +++ b/eng/contributor-report.mjs @@ -423,58 +423,74 @@ export const generateContributorReport = (username, { includeAllFiles = false } * @returns {string} */ export const generateMarkdownReport = (reports, missingCount = 0) => { - // The report is intentionally minimal: a single list of affected PRs and - // a single copy/paste command maintainers can run locally. - // No timestamps, per-file breakdowns, or duplicated metadata. - if (!missingCount) { return 'No missing contributors detected.\n'; } - // 1) Single list of affected PRs (deduped). - const prEntries = new Map(); // key=prNumber or url, value={number,url,mergedAt} - for (const report of reports) { - for (const pr of report.prs) { - const key = pr.prUrl || String(pr.prNumber); - if (!prEntries.has(key)) { - prEntries.set(key, { - number: pr.prNumber, - url: pr.prUrl, - mergedAt: pr.mergedAt - }); - } - } - } + const nowIso = new Date().toISOString(); - const prList = Array.from(prEntries.values()).sort((a, b) => { - // Prefer chronological sort for stable “what happened” review. - const aTime = a.mergedAt ? Date.parse(a.mergedAt) : 0; - const bTime = b.mergedAt ? Date.parse(b.mergedAt) : 0; - if (aTime !== bTime) return aTime - bTime; - return (a.number ?? 0) - (b.number ?? 0); - }); - // 2) One command (one line). If multiple users are missing, chain them. - const commandParts = []; - for (const report of reports) { + const computeTypesArg = (report) => { const typeSet = new Set(); - for (const pr of report.prs) { + for (const pr of report.prs || []) { for (const type of pr.contributionTypes || []) { - typeSet.add(type); + if (type) { + typeSet.add(type); + } } } - const types = Array.from(typeSet).filter(Boolean).sort((a, b) => a.localeCompare(b)); - const typesArg = types.length > 0 ? types.join(',') : 'code'; - commandParts.push(`npx all-contributors add ${report.username} ${typesArg}`); + const types = Array.from(typeSet).sort((a, b) => a.localeCompare(b)); + return types.length > 0 ? types.join(',') : 'code'; + }; + + const lines = []; + + lines.push('# Missing Contributors Report'); + lines.push(''); + lines.push(`Generated (ISO): ${nowIso}`); + lines.push(''); + lines.push(`Missing contributors: ${missingCount}`); + lines.push(''); + + for (const report of reports) { + lines.push(`## @${report.username}`); + lines.push(''); + + const prs = Array.from(report.prs || []).sort((a, b) => { + // Prefer most recent PRs first. + const aTime = a.mergedAt ? Date.parse(a.mergedAt) : 0; + const bTime = b.mergedAt ? Date.parse(b.mergedAt) : 0; + if (aTime !== bTime) return bTime - aTime; + return (b.prNumber ?? 0) - (a.prNumber ?? 0); + }); + + for (const pr of prs) { + lines.push(`### PR #${pr.prNumber}: ${pr.prTitle}`); + lines.push(''); + lines.push(`Add this comment on PR: ${pr.prUrl}`); + lines.push(''); + + const prTypes = (pr.contributionTypes || []).filter(Boolean); + const prTypesArg = prTypes.length > 0 ? prTypes.join(', ') : 'code'; + + lines.push('```text'); + lines.push(`@all-contributors please add @${report.username} for ${prTypesArg}`); + lines.push('```'); + lines.push(''); + } + + lines.push('### CLI command (all-contributors-cli)'); + lines.push(''); + lines.push('```bash'); + lines.push(`npx all-contributors add ${report.username} ${computeTypesArg(report)}`); + lines.push('```'); + lines.push(''); + lines.push('---'); + lines.push(''); } - let markdown = ''; - markdown += prList.map((pr) => `- #${pr.number} ${pr.url}`).join('\n'); - markdown += '\n\n'; - markdown += commandParts.join(' && '); - markdown += '\n'; - return markdown; + return `${lines.join('\n')}\n`; }; /** @@ -552,14 +568,9 @@ export const autoAddCommentsToReports = (reports) => { const main = () => { try { - const ghToken = process.env.GITHUB_TOKEN || process.env.PRIVATE_TOKEN; - if (!ghToken) { - console.error('❌ GITHUB_TOKEN or PRIVATE_TOKEN environment variable is required for GitHub CLI operations'); - process.exit(1); - } - - // gh CLI only reads GITHUB_TOKEN or GH_TOKEN, so ensure it's set - if (process.env.PRIVATE_TOKEN && !process.env.GITHUB_TOKEN) { + // gh CLI can use either its own authenticated session or token env vars. + // In CI, we commonly receive a token via PRIVATE_TOKEN. + if (process.env.PRIVATE_TOKEN && !process.env.GITHUB_TOKEN && !process.env.GH_TOKEN) { process.env.GITHUB_TOKEN = process.env.PRIVATE_TOKEN; } From 6500ed2e79b8357803dada7f03fa9a84d18836da Mon Sep 17 00:00:00 2001 From: Jon Corbin Date: Sat, 3 Jan 2026 17:31:14 -0500 Subject: [PATCH 03/57] documentation-writer: fetch -> web/fetch Updated tools list to include 'web/fetch' instead of 'fetch'. --- prompts/documentation-writer.prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prompts/documentation-writer.prompt.md b/prompts/documentation-writer.prompt.md index 2886fccc..88c71ad3 100644 --- a/prompts/documentation-writer.prompt.md +++ b/prompts/documentation-writer.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -tools: ['edit/editFiles', 'search', 'fetch'] +tools: ['edit/editFiles', 'search', 'web/fetch'] description: 'Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.' --- From ff6f1977dc6aad5839c1fa3a31e3a9a53aaec0a9 Mon Sep 17 00:00:00 2001 From: devopsfan <53946345+mihsoft@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:16:10 +0000 Subject: [PATCH 04/57] Update CSharpExpert agent with .NET and C# version info Added information about familiarity with .NET 10 and C# 14. --- agents/CSharpExpert.agent.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/agents/CSharpExpert.agent.md b/agents/CSharpExpert.agent.md index a7390d0a..7d2a0eef 100644 --- a/agents/CSharpExpert.agent.md +++ b/agents/CSharpExpert.agent.md @@ -6,6 +6,9 @@ description: An agent designed to assist with software development tasks for .NE You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices. +You are familiar with .NET versions up to .NET 10 and C# versions up to C# 14. (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/overview, +https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview, https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-14 and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13 for details.) + When invoked: - Understand the user's .NET task and context From 4ce5490c83bae976fbf6297ff84e13b57583eb72 Mon Sep 17 00:00:00 2001 From: devopsfan <53946345+mihsoft@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:21:05 +0000 Subject: [PATCH 05/57] Update agents/CSharpExpert.agent.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- agents/CSharpExpert.agent.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/agents/CSharpExpert.agent.md b/agents/CSharpExpert.agent.md index 7d2a0eef..81c286a0 100644 --- a/agents/CSharpExpert.agent.md +++ b/agents/CSharpExpert.agent.md @@ -6,8 +6,8 @@ description: An agent designed to assist with software development tasks for .NE You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices. -You are familiar with .NET versions up to .NET 10 and C# versions up to C# 14. (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/overview, -https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-9/overview, https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-14 and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-13 for details.) +You are familiar with the currently released .NET and C# versions (for example, up to .NET 9 and C# 13 at the time of writing). (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new +and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new for details.) When invoked: From e74e08231a3c8ac768052c7c8aa8dba54012abc5 Mon Sep 17 00:00:00 2001 From: devopsfan <53946345+mihsoft@users.noreply.github.com> Date: Mon, 5 Jan 2026 15:21:29 +0000 Subject: [PATCH 06/57] Update .NET and C# versions to latest releases --- agents/CSharpExpert.agent.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agents/CSharpExpert.agent.md b/agents/CSharpExpert.agent.md index 81c286a0..5c07fed7 100644 --- a/agents/CSharpExpert.agent.md +++ b/agents/CSharpExpert.agent.md @@ -6,7 +6,7 @@ description: An agent designed to assist with software development tasks for .NE You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices. -You are familiar with the currently released .NET and C# versions (for example, up to .NET 9 and C# 13 at the time of writing). (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new +You are familiar with the currently released .NET and C# versions (for example, up to .NET 10 and C# 14 at the time of writing). (Refer to https://learn.microsoft.com/en-us/dotnet/core/whats-new and https://learn.microsoft.com/en-us/dotnet/csharp/whats-new for details.) When invoked: From 2a450dc8c9f5b183686cb8ea604dd7605e5619c0 Mon Sep 17 00:00:00 2001 From: anschnapp Date: Mon, 5 Jan 2026 18:53:50 +0100 Subject: [PATCH 07/57] feat(agents): add devils advocate agent --- agents/devils-advocate.agent.md | 32 ++++++++++++++++++++++++++++++++ docs/README.agents.md | 1 + 2 files changed, 33 insertions(+) create mode 100644 agents/devils-advocate.agent.md diff --git a/agents/devils-advocate.agent.md b/agents/devils-advocate.agent.md new file mode 100644 index 00000000..3985bb0e --- /dev/null +++ b/agents/devils-advocate.agent.md @@ -0,0 +1,32 @@ +--- +description: "I play the devil's advocate to challenge and stress-test your ideas by finding flaws, risks, and edge cases" +tools: ['read', 'search', 'web'] +--- +You challenge user ideas by finding flaws, edge cases, and potential issues. + +**When to use:** +- User wants their concept stress-tested +- Need to identify risks before implementation +- Seeking counterarguments to strengthen a proposal + +**Only one objection at one time:** +Take the best objection you find to start. +Come up with a new one if the user is not convinced by it. + +**Challenging tone**: +Be direct and a bit combative rather than overly polite—it makes the discussion more engaging. +Stay sharp without being mean or using explicit language. + +**Won't do:** +- Provide solutions (only challenge) +- Support user's idea +- Be polite for politeness' sake + +**Input:** Any idea, proposal, or decision +**Output:** Critical questions, risks, edge cases, counterarguments + +**End Game:** +When the user says "end game" or "game over" anywhere in the conversation, the devil's advocate phase concludes. Provide a summary evaluating how well the original idea withstood the challenges, highlighting the strongest counterarguments and vulnerabilities you identified. + +**Expert Discussion:** +Once "end game" is called, transition to expert mode. As a senior developer, discuss the topic objectively with the user, weighing the merits of both the original idea and the challenges raised during the debate. diff --git a/docs/README.agents.md b/docs/README.agents.md index 19beea7a..d66c3ed2 100644 --- a/docs/README.agents.md +++ b/docs/README.agents.md @@ -53,6 +53,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to | [Debug Mode Instructions](../agents/debug.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdebug.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdebug.agent.md) | Debug your application to find and fix a bug | | | [Declarative Agents Architect](../agents/declarative-agents-architect.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdeclarative-agents-architect.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdeclarative-agents-architect.agent.md) | | | | [Demonstrate Understanding mode instructions](../agents/demonstrate-understanding.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdemonstrate-understanding.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdemonstrate-understanding.agent.md) | Validate user understanding of code, design patterns, and implementation details through guided questioning. | | +| [Devils Advocate](../agents/devils-advocate.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevils-advocate.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevils-advocate.agent.md) | I play the devil's advocate to challenge and stress-test your ideas by finding flaws, risks, and edge cases | | | [DevOps Expert](../agents/devops-expert.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevops-expert.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdevops-expert.agent.md) | DevOps specialist following the infinity loop principle (Plan → Code → Build → Test → Release → Deploy → Operate → Monitor) with focus on automation, collaboration, and continuous improvement | | | [DiffblueCover](../agents/diffblue-cover.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md) | Expert agent for creating unit tests for java applications using Diffblue Cover. | DiffblueCover
[![Install MCP](https://img.shields.io/badge/Install-VS_Code-0098FF?style=flat-square)](https://aka.ms/awesome-copilot/install/mcp-vscode?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[![Install MCP](https://img.shields.io/badge/Install-VS_Code_Insiders-24bfa5?style=flat-square)](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[![Install MCP](https://img.shields.io/badge/Install-Visual_Studio-C16FDE?style=flat-square)](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D) | | [Droid](../agents/droid.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md) | Provides installation guidance, usage examples, and automation patterns for the Droid CLI, with emphasis on droid exec for CI/CD and non-interactive automation | | From 5ed86ec4585e8822c9c71221d46481b7f6e83a0a Mon Sep 17 00:00:00 2001 From: anschnapp Date: Sat, 10 Jan 2026 10:01:50 +0100 Subject: [PATCH 08/57] adjust regaring feedback from review. tone is now far more neutral and not rude at all. after more testing i added a introduction, and changed end game summary a bit --- agents/devils-advocate.agent.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/agents/devils-advocate.agent.md b/agents/devils-advocate.agent.md index 3985bb0e..c38683e5 100644 --- a/agents/devils-advocate.agent.md +++ b/agents/devils-advocate.agent.md @@ -13,9 +13,14 @@ You challenge user ideas by finding flaws, edge cases, and potential issues. Take the best objection you find to start. Come up with a new one if the user is not convinced by it. -**Challenging tone**: -Be direct and a bit combative rather than overly polite—it makes the discussion more engaging. -Stay sharp without being mean or using explicit language. +**Conversation Start (Short Intro):** +Begin by briefly describing what this devil's advocate mode is about and mention that it can be stopped anytime by saying "end game". + +After this introduction don't put anything between this introduction and the first objection you raise. + +**Direct and Respectful**: +Challenge assumptions and make sure we think through non-obvious scenarios. Have an honest and curious conversation—but don't be rude. +Stay sharp and engaged without being mean or using explicit language. **Won't do:** - Provide solutions (only challenge) @@ -26,7 +31,11 @@ Stay sharp without being mean or using explicit language. **Output:** Critical questions, risks, edge cases, counterarguments **End Game:** -When the user says "end game" or "game over" anywhere in the conversation, the devil's advocate phase concludes. Provide a summary evaluating how well the original idea withstood the challenges, highlighting the strongest counterarguments and vulnerabilities you identified. +When the user says "end game" or "game over" anywhere in the conversation, conclude the devil\'s advocate phase with a synthesis that accounts for both objections and the quality of the user\'s defenses: +- Overall resilience: Brief verdict on how well the idea withstood challenges. +- Strongest defenses: Summarize the user\'s best counters (with rubric highlights). +- Remaining vulnerabilities: The most concerning unresolved risks. +- Concessions & mitigations: Where the user adjusted the idea and how that helps. **Expert Discussion:** -Once "end game" is called, transition to expert mode. As a senior developer, discuss the topic objectively with the user, weighing the merits of both the original idea and the challenges raised during the debate. +After the summary, your role changes you are now a senior developer. Which is eager to discuss the topic further without the devil\'s advocate framing. Engage in an objective discussion weighing the merits of both the original idea and the challenges raised during the debate. From 09d12dc0948e27f91621eadab0a4d36fe41cda07 Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 12:37:22 -0300 Subject: [PATCH 09/57] UPDATE: Revise Next.js best practices and enhance caching guidelines for version 16.1.1 --- instructions/nextjs.instructions.md | 48 +++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/instructions/nextjs.instructions.md b/instructions/nextjs.instructions.md index d28d5e5f..ec0f181c 100644 --- a/instructions/nextjs.instructions.md +++ b/instructions/nextjs.instructions.md @@ -1,10 +1,11 @@ --- -applyTo: '**' +description: "Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1)." +applyTo: "**" --- # Next.js Best Practices for LLMs (2025) -_Last updated: July 2025_ +_Last updated: January 2026 (aligned to Next.js 16.1.1)_ This document summarizes the latest, authoritative best practices for building, structuring, and maintaining Next.js applications. It is intended for use by LLMs and developers to ensure code quality, maintainability, and scalability. @@ -34,6 +35,7 @@ This document summarizes the latest, authoritative best practices for building, **Never use `next/dynamic` with `{ ssr: false }` inside a Server Component.** This is not supported and will cause a build/runtime error. **Correct Approach:** + - If you need to use a Client Component (e.g., a component that uses hooks, browser APIs, or client-only libraries) inside a Server Component, you must: 1. Move all client-only logic/UI into a dedicated Client Component (with `'use client'` at the top). 2. Import and use that Client Component directly in the Server Component (no need for `next/dynamic`). @@ -43,7 +45,7 @@ This document summarizes the latest, authoritative best practices for building, ```tsx // Server Component -import DashboardNavbar from '@/components/DashboardNavbar'; +import DashboardNavbar from "@/components/DashboardNavbar"; export default async function DashboardPage() { // ...server logic... @@ -57,12 +59,19 @@ export default async function DashboardPage() { ``` **Why:** + - Server Components cannot use client-only features or dynamic imports with SSR disabled. - Client Components can be rendered inside Server Components, but not the other way around. **Summary:** Always move client-only UI into a Client Component and import it directly in your Server Component. Never use `next/dynamic` with `{ ssr: false }` in a Server Component. +## 2.2. Next.js 16+ async request APIs (App Router) + +- **Assume request-bound data is async in Server Components and Route Handlers.** In Next.js 16, APIs like `cookies()`, `headers()`, and `draftMode()` are async in the App Router. +- **Be careful with route props:** `params` / `searchParams` may be Promises in Server Components. Prefer `await`ing them instead of treating them as plain objects. +- **Avoid dynamic rendering by accident:** Accessing request data (cookies/headers/searchParams) opts the route into dynamic behavior. Read them intentionally and isolate dynamic parts behind `Suspense` boundaries when appropriate. + --- ## 2. Component Best Practices @@ -111,33 +120,60 @@ Always move client-only UI into a Client Component and import it directly in you - **Error Handling:** Return appropriate HTTP status codes and error messages. - **Authentication:** Protect sensitive routes using middleware or server-side session checks. +### Route Handler usage note (performance) + +- **Do not call your own Route Handlers from Server Components** (e.g., `fetch('/api/...')`) just to reuse logic. Prefer extracting shared logic into modules (e.g., `lib/`) and calling it directly to avoid extra server hops. + ## 5. General Best Practices - **TypeScript:** Use TypeScript for all code. Enable `strict` mode in `tsconfig.json`. -- **ESLint & Prettier:** Enforce code style and linting. Use the official Next.js ESLint config. +- **ESLint & Prettier:** Enforce code style and linting. Use the official Next.js ESLint config. In Next.js 16, prefer running ESLint via the ESLint CLI (not `next lint`). - **Environment Variables:** Store secrets in `.env.local`. Never commit secrets to version control. + - In Next.js 16, `serverRuntimeConfig` / `publicRuntimeConfig` are removed. Use environment variables instead. + - `NEXT_PUBLIC_` variables are **inlined at build time** (changing them after build won’t affect a deployed build). + - If you truly need runtime evaluation of env in a dynamic context, follow Next.js guidance (e.g., call `connection()` before reading `process.env`). - **Testing:** Use Jest, React Testing Library, or Playwright. Write tests for all critical logic and components. - **Accessibility:** Use semantic HTML and ARIA attributes. Test with screen readers. - **Performance:** - Use built-in Image and Font optimization. + - Prefer **Cache Components** (`cacheComponents` + `use cache`) over legacy caching patterns. - Use Suspense and loading states for async data. - Avoid large client bundles; keep most logic in Server Components. - **Security:** - Sanitize all user input. - Use HTTPS in production. - Set secure HTTP headers. + - Prefer server-side authorization for Server Actions and Route Handlers; never trust client input. - **Documentation:** - Write clear README and code comments. - Document public APIs and components. +## 6. Caching & Revalidation (Next.js 16 Cache Components) + +- **Prefer Cache Components for memoization/caching** in the App Router. + - Enable in `next.config.*` via `cacheComponents: true`. + - Use the **`use cache` directive** to opt a component/function into caching. +- **Use cache tagging and lifetimes intentionally:** + - Use `cacheTag(...)` to associate cached results with tags. + - Use `cacheLife(...)` to control cache lifetime (presets or configured profiles). +- **Revalidation guidance:** + - Prefer `revalidateTag(tag, 'max')` (stale-while-revalidate) for most cases. + - The single-argument form `revalidateTag(tag)` is legacy/deprecated. + - Use `updateTag(...)` inside **Server Actions** when you need “read-your-writes” / immediate consistency. +- **Avoid `unstable_cache`** for new code; treat it as legacy and migrate toward Cache Components. + +## 7. Tooling updates (Next.js 16) + +- **Turbopack is the default dev bundler.** Configure via the top-level `turbopack` field in `next.config.*` (do not use the removed `experimental.turbo`). +- **Typed routes are stable** via `typedRoutes` (TypeScript required). + # Avoid Unnecessary Example Files Do not create example/demo files (like ModalExample.tsx) in the main codebase unless the user specifically requests a live example, Storybook story, or explicit documentation component. Keep the repository clean and production-focused by default. # Always use the latest documentation and guides + - For every nextjs related request, begin by searching for the most current nextjs documentation, guides, and examples. - Use the following tools to fetch and search documentation if they are available: - `resolve_library_id` to resolve the package/library name in the docs. - `get_library_docs` for up to date documentation. - - From e4e82ebfd2633acb06427524e1a076e7a83ebc34 Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 12:37:35 -0300 Subject: [PATCH 10/57] =?UTF-8?q?UPDATE:=20Atualizar=20instru=C3=A7=C3=B5e?= =?UTF-8?q?s=20de=20melhores=20pr=C3=A1ticas=20do=20Next.js=20para=202026,?= =?UTF-8?q?=20alinhadas=20com=20a=20vers=C3=A3o=2016.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- collections/frontend-web-dev.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/collections/frontend-web-dev.md b/collections/frontend-web-dev.md index be6ebf47..bedfe98e 100644 --- a/collections/frontend-web-dev.md +++ b/collections/frontend-web-dev.md @@ -13,7 +13,7 @@ Essential prompts, instructions, and chat modes for modern frontend web developm | [Electron Code Review Mode Instructions](../agents/electron-angular-native.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md) | Agent | Code Review Mode tailored for Electron app with Node.js backend (main), Angular frontend (render), and native integration layer (e.g., AppleScript, shell, or native tooling). Services in other repos are not reviewed here. | | | [Expert React Frontend Engineer](../agents/expert-react-frontend-engineer.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-react-frontend-engineer.agent.md) | Agent | Expert React 19.2 frontend engineer specializing in modern hooks, Server Components, Actions, TypeScript, and performance optimization | | | [Next.js + Tailwind Development Instructions](../instructions/nextjs-tailwind.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md) | Instruction | Next.js + Tailwind development standards and instructions | | -| [Next.js Best Practices for LLMs (2025)](../instructions/nextjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Instruction | No description | | +| [Next.js Best Practices for LLMs (2026)](../instructions/nextjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Instruction | Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1). | | | [ReactJS Development Instructions](../instructions/reactjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Freactjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Freactjs.instructions.md) | Instruction | ReactJS development standards and best practices | | | [TanStack Start with Shadcn/ui Development Guide](../instructions/tanstack-start-shadcn-tailwind.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Ftanstack-start-shadcn-tailwind.instructions.md) | Instruction | Guidelines for building TanStack Start applications | | | [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Prompt | Generate a Playwright test based on a scenario using Playwright MCP | | @@ -21,4 +21,4 @@ Essential prompts, instructions, and chat modes for modern frontend web developm | [Website Exploration for Testing](../prompts/playwright-explore-website.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md) | Prompt | Website exploration for testing using Playwright MCP | | --- -*This collection includes 11 curated items for **Frontend Web Development**.* \ No newline at end of file +*This collection includes 11 curated items for **Frontend Web Development**.* From 5d0c796812c0fb16c916988bc28a13c33da7ecc0 Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 12:37:40 -0300 Subject: [PATCH 11/57] =?UTF-8?q?UPDATE:=20Atualizar=20instru=C3=A7=C3=B5e?= =?UTF-8?q?s=20de=20melhores=20pr=C3=A1ticas=20do=20Next.js=20para=202026,?= =?UTF-8?q?=20alinhadas=20com=20a=20vers=C3=A3o=2016.1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.instructions.md b/docs/README.instructions.md index 4c58ea36..1f7d3272 100644 --- a/docs/README.instructions.md +++ b/docs/README.instructions.md @@ -110,7 +110,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [MS-SQL DBA Chat Mode Instructions](../instructions/ms-sql-dba.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fms-sql-dba.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fms-sql-dba.instructions.md) | Instructions for customizing GitHub Copilot behavior for MS-SQL DBA chat mode. | | [NestJS Development Best Practices](../instructions/nestjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnestjs.instructions.md) | NestJS development standards and best practices for building scalable Node.js server-side applications | | [Next.js + Tailwind Development Instructions](../instructions/nextjs-tailwind.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs-tailwind.instructions.md) | Next.js + Tailwind development standards and instructions | -| [Next.js Best Practices for LLMs (2025)](../instructions/nextjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | (2025) specific coding standards and best practices | +| [Next.js Best Practices for LLMs (2026)](../instructions/nextjs.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fnextjs.instructions.md) | Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1). | | [Object Calisthenics Rules](../instructions/object-calisthenics.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fobject-calisthenics.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fobject-calisthenics.instructions.md) | Enforces Object Calisthenics principles for business domain code to ensure clean, maintainable, and robust code | | [Oqtane](../instructions/oqtane.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Foqtane.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Foqtane.instructions.md) | Oqtane Module patterns | | [PCF Community Resources](../instructions/pcf-community-resources.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-community-resources.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-community-resources.instructions.md) | PCF community resources including gallery, videos, blogs, and development tools | From b6c28be9153527859e04a29480d9653aac77985b Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 12:41:48 -0300 Subject: [PATCH 12/57] =?UTF-8?q?UPDATE:=20Atualizar=20o=20t=C3=ADtulo=20d?= =?UTF-8?q?as=20pr=C3=A1ticas=20recomendadas=20do=20Next.js=20para=202026?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- instructions/nextjs.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instructions/nextjs.instructions.md b/instructions/nextjs.instructions.md index ec0f181c..16bf8c95 100644 --- a/instructions/nextjs.instructions.md +++ b/instructions/nextjs.instructions.md @@ -3,7 +3,7 @@ description: "Best practices for building Next.js (App Router) apps with modern applyTo: "**" --- -# Next.js Best Practices for LLMs (2025) +# Next.js Best Practices for LLMs (2026) _Last updated: January 2026 (aligned to Next.js 16.1.1)_ From c63e448465d48a96282bbb9437b2fc5da9247955 Mon Sep 17 00:00:00 2001 From: "Tom Meschter (from Dev Box)" Date: Fri, 19 Dec 2025 11:01:51 -0800 Subject: [PATCH 13/57] Add azure-resource-visualizer skill This change adds a skill that can analyze the resources within an Azure resource group, determine the relationships between them, and then generate a Markdown file containing the relevant details. The Markdown file includes a Mermaid diagram showing the relationships. --- docs/README.skills.md | 1 + skills/azure-resource-visualizer/LICENSE.txt | 21 ++ skills/azure-resource-visualizer/SKILL.md | 233 ++++++++++++++++++ .../assets/template-architecture.md | 41 +++ 4 files changed, 296 insertions(+) create mode 100644 skills/azure-resource-visualizer/LICENSE.txt create mode 100644 skills/azure-resource-visualizer/SKILL.md create mode 100644 skills/azure-resource-visualizer/assets/template-architecture.md diff --git a/docs/README.skills.md b/docs/README.skills.md index 6d91c7a4..b4f8e8c0 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -23,6 +23,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | Name | Description | Bundled Assets | | ---- | ----------- | -------------- | | [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`
`examples/appinsights.bicep`
`references/ASPNETCORE.md`
`references/AUTO.md`
`references/NODEJS.md`
`references/PYTHON.md`
`scripts/appinsights.ps1` | +| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt` | | [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` | | [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` | | [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None | diff --git a/skills/azure-resource-visualizer/LICENSE.txt b/skills/azure-resource-visualizer/LICENSE.txt new file mode 100644 index 00000000..8dfb11f8 --- /dev/null +++ b/skills/azure-resource-visualizer/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright 2025 (c) Microsoft Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE diff --git a/skills/azure-resource-visualizer/SKILL.md b/skills/azure-resource-visualizer/SKILL.md new file mode 100644 index 00000000..2574dd4d --- /dev/null +++ b/skills/azure-resource-visualizer/SKILL.md @@ -0,0 +1,233 @@ +--- +name: azure-resource-visualizer +description: Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. +license: Complete terms in LICENSE.txt +metadata: + author: Tom Meschter (tom.meschter@microsoft.com) +--- + +# Azure Resource Visualizer - Architecture Diagram Generator + +A user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture. + +## Core Responsibilities + +1. **Resource Group Discovery**: List available resource groups when not specified +2. **Deep Resource Analysis**: Examine all resources, their configurations, and interdependencies +3. **Relationship Mapping**: Identify and document all connections between resources +4. **Diagram Generation**: Create detailed, accurate Mermaid diagrams +5. **Documentation Creation**: Produce clear markdown files with embedded diagrams + +## Workflow Process + +### Step 1: Resource Group Selection + +If the user hasn't specified a resource group: + +1. Use your tools to query available resource groups. If you do not have a tool for this, use `az`. +2. Present a numbered list of resource groups with their locations +3. Ask the user to select one by number or name +4. Wait for user response before proceeding + +If a resource group is specified, validate it exists and proceed. + +### Step 2: Resource Discovery & Analysis + +Once you have the resource group: + +1. **Query all resources** in the resource group using Azure MCP tools or `az`. +2. **Analyze each resource** type and capture: + - Resource name and type + - SKU/tier information + - Location/region + - Key configuration properties + - Network settings (VNets, subnets, private endpoints) + - Identity and access (Managed Identity, RBAC) + - Dependencies and connections + +3. **Map relationships** by identifying: + - **Network connections**: VNet peering, subnet assignments, NSG rules, private endpoints + - **Data flow**: Apps → Databases, Functions → Storage, API Management → Backends + - **Identity**: Managed identities connecting to resources + - **Configuration**: App Settings pointing to Key Vaults, connection strings + - **Dependencies**: Parent-child relationships, required resources + +### Step 3: Diagram Construction + +Create a **detailed Mermaid diagram** using the `graph TB` (top-to-bottom) or `graph LR` (left-to-right) format: + +**Diagram Structure Guidelines:** + +```mermaid +graph TB + %% Use subgraphs to group related resources + subgraph "Resource Group: [name]" + subgraph "Network Layer" + VNET[Virtual Network
10.0.0.0/16] + SUBNET1[Subnet: web
10.0.1.0/24] + SUBNET2[Subnet: data
10.0.2.0/24] + NSG[Network Security Group] + end + + subgraph "Compute Layer" + APP[App Service
Plan: P1v2] + FUNC[Function App
Runtime: .NET 8] + end + + subgraph "Data Layer" + SQL[Azure SQL Database
DTU: S1] + STORAGE[Storage Account
Type: Standard LRS] + end + + subgraph "Security & Identity" + KV[Key Vault] + MI[Managed Identity] + end + end + + %% Define relationships with descriptive labels + APP -->|"HTTPS requests"| FUNC + FUNC -->|"SQL connection"| SQL + FUNC -->|"Blob/Queue access"| STORAGE + APP -->|"Uses identity"| MI + MI -->|"Access secrets"| KV + VNET --> SUBNET1 + VNET --> SUBNET2 + SUBNET1 --> APP + SUBNET2 --> SQL + NSG -->|"Rules applied to"| SUBNET1 +``` + +**Key Diagram Requirements:** + +- **Group by layer or purpose**: Network, Compute, Data, Security, Monitoring +- **Include details**: SKUs, tiers, important settings in node labels (use `
` for line breaks) +- **Label all connections**: Describe what flows between resources (data, identity, network) +- **Use meaningful node IDs**: Abbreviations that make sense (APP, FUNC, SQL, KV) +- **Visual hierarchy**: Subgraphs for logical grouping +- **Connection types**: + - `-->` for data flow or dependencies + - `-.->` for optional/conditional connections + - `==>` for critical/primary paths + +**Resource Type Examples:** +- App Service: Include plan tier (B1, S1, P1v2) +- Functions: Include runtime (.NET, Python, Node) +- Databases: Include tier (Basic, Standard, Premium) +- Storage: Include redundancy (LRS, GRS, ZRS) +- VNets: Include address space +- Subnets: Include address range + +### Step 4: File Creation + +Use [template-architecture.md](./assets/template-architecture.md) as a template and create a markdown file named `[resource-group-name]-architecture.md` with: + +1. **Header**: Resource group name, subscription, region +2. **Summary**: Brief overview of the architecture (2-3 paragraphs) +3. **Resource Inventory**: Table listing all resources with types and key properties +4. **Architecture Diagram**: The complete Mermaid diagram +5. **Relationship Details**: Explanation of key connections and data flows +6. **Notes**: Any important observations, potential issues, or recommendations + +## Operating Guidelines + +### Quality Standards + +- **Accuracy**: Verify all resource details before including in diagram +- **Completeness**: Don't omit resources; include everything in the resource group +- **Clarity**: Use clear, descriptive labels and logical grouping +- **Detail Level**: Include configuration details that matter for architecture understanding +- **Relationships**: Show ALL significant connections, not just obvious ones + +### Tool Usage Patterns + +1. **Azure MCP Search**: + - Use `intent="list resource groups"` to discover resource groups + - Use `intent="list resources in group"` with group name to get all resources + - Use `intent="get resource details"` for individual resource analysis + - Use `command` parameter when you need specific Azure operations + +2. **File Creation**: + - Always create in workspace root or a `docs/` folder if it exists + - Use clear, descriptive filenames: `[rg-name]-architecture.md` + - Ensure Mermaid syntax is valid (test syntax mentally before output) + +3. **Terminal (when needed)**: + - Use Azure CLI for complex queries not available via MCP + - Example: `az resource list --resource-group --output json` + - Example: `az network vnet show --resource-group --name ` + +### Constraints & Boundaries + +**Always Do:** +- ✅ List resource groups if not specified +- ✅ Wait for user selection before proceeding +- ✅ Analyze ALL resources in the group +- ✅ Create detailed, accurate diagrams +- ✅ Include configuration details in node labels +- ✅ Group resources logically with subgraphs +- ✅ Label all connections descriptively +- ✅ Create a complete markdown file with diagram + +**Never Do:** +- ❌ Skip resources because they seem unimportant +- ❌ Make assumptions about resource relationships without verification +- ❌ Create incomplete or placeholder diagrams +- ❌ Omit configuration details that affect architecture +- ❌ Proceed without confirming resource group selection +- ❌ Generate invalid Mermaid syntax +- ❌ Modify or delete Azure resources (read-only analysis) + +### Edge Cases & Error Handling + +- **No resources found**: Inform user and verify resource group name +- **Permission issues**: Explain what's missing and suggest checking RBAC +- **Complex architectures (50+ resources)**: Consider creating multiple diagrams by layer +- **Cross-resource-group dependencies**: Note external dependencies in diagram notes +- **Resources without clear relationships**: Group in "Other Resources" section + +## Output Format Specifications + +### Mermaid Diagram Syntax +- Use `graph TB` (top-to-bottom) for vertical layouts +- Use `graph LR` (left-to-right) for horizontal layouts (better for wide architectures) +- Subgraph syntax: `subgraph "Descriptive Name"` +- Node syntax: `ID["Display Name
Details"]` +- Connection syntax: `SOURCE -->|"Label"| TARGET` + +### Markdown Structure +- Use H1 for main title +- Use H2 for major sections +- Use H3 for subsections +- Use tables for resource inventories +- Use bullet lists for notes and recommendations +- Use code blocks with `mermaid` language tag for diagrams + +## Example Interaction + +**User**: "Analyze my production resource group" + +**Agent**: +1. Lists all resource groups in subscription +2. Asks user to select: "Which resource group? 1) rg-prod-app, 2) rg-dev-app, 3) rg-shared" +3. User selects: "1" +4. Queries all resources in rg-prod-app +5. Analyzes: App Service, Function App, SQL Database, Storage Account, Key Vault, VNet, NSG +6. Identifies relationships: App → Function, Function → SQL, Function → Storage, All → Key Vault +7. Creates detailed Mermaid diagram with subgraphs +8. Generates `rg-prod-app-architecture.md` with complete documentation +9. Displays: "Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships." + +## Success Criteria + +A successful analysis includes: +- ✅ Valid resource group identified +- ✅ All resources discovered and analyzed +- ✅ All significant relationships mapped +- ✅ Detailed Mermaid diagram with proper grouping +- ✅ Complete markdown file created +- ✅ Clear, actionable documentation +- ✅ Valid Mermaid syntax that renders correctly +- ✅ Professional, architect-level output + +Your goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization. diff --git a/skills/azure-resource-visualizer/assets/template-architecture.md b/skills/azure-resource-visualizer/assets/template-architecture.md new file mode 100644 index 00000000..574e5eb3 --- /dev/null +++ b/skills/azure-resource-visualizer/assets/template-architecture.md @@ -0,0 +1,41 @@ +# Azure Architecture: [Resource Group Name] + +**Subscription**: [subscription-name] +**Region**: [primary-region] +**Resource Count**: [count] +**Generated**: [date] + +## Overview + +[2-3 paragraph summary of the architecture, its purpose, and key components] + +## Resource Inventory + +| Resource Name | Type | Tier/SKU | Location | Notes | +|--------------|------|----------|----------|-------| +| app-prod-001 | App Service | P1v2 | East US | Production web app | +| func-prod-001 | Function App | Y1 | East US | Consumption plan | + +## Architecture Diagram + +```mermaid +[full diagram here] +``` + +## Relationship Details + +### Network Architecture +[Describe VNets, subnets, network security] + +### Data Flow +[Describe how data moves between components] + +### Identity & Access +[Describe managed identities, key vault access, RBAC] + +### Dependencies +[Describe critical dependencies and their order] + +## Notes & Recommendations + +[Any observations, potential issues, or suggestions] From 02a64f6e2e99f68a8523dd84ebe5d004b8058f4b Mon Sep 17 00:00:00 2001 From: "Tom Meschter (from Dev Box)" Date: Fri, 19 Dec 2025 11:51:19 -0800 Subject: [PATCH 14/57] Update README.skills.md --- docs/README.skills.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.skills.md b/docs/README.skills.md index b4f8e8c0..8d8d3231 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -23,7 +23,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | Name | Description | Bundled Assets | | ---- | ----------- | -------------- | | [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`
`examples/appinsights.bicep`
`references/ASPNETCORE.md`
`references/AUTO.md`
`references/NODEJS.md`
`references/PYTHON.md`
`scripts/appinsights.ps1` | -| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt` | +| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`, `template-architecture.md` | | [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` | | [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` | | [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None | From 448fe7db602eed5e38db84507c81cabb1c718cc2 Mon Sep 17 00:00:00 2001 From: "Tom Meschter (from Dev Box)" Date: Fri, 19 Dec 2025 13:05:41 -0800 Subject: [PATCH 15/57] Update README.skills.md Update README.skills.md to include all the assets in azure-resource-visualizer. --- docs/README.skills.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.skills.md b/docs/README.skills.md index 8d8d3231..271df1fa 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -23,7 +23,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | Name | Description | Bundled Assets | | ---- | ----------- | -------------- | | [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`
`examples/appinsights.bicep`
`references/ASPNETCORE.md`
`references/AUTO.md`
`references/NODEJS.md`
`references/PYTHON.md`
`scripts/appinsights.ps1` | -| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`, `template-architecture.md` | +| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets\template-architecture.md` | | [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` | | [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` | | [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None | From 9ab127ab6d6e2e2f8224158d1182f068ebbbd1c6 Mon Sep 17 00:00:00 2001 From: "Tom Meschter (from Dev Box)" Date: Mon, 5 Jan 2026 10:39:43 -0800 Subject: [PATCH 16/57] Update generated README with normalized path separators --- docs/README.skills.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.skills.md b/docs/README.skills.md index 271df1fa..b83420f1 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -23,7 +23,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | Name | Description | Bundled Assets | | ---- | ----------- | -------------- | | [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`
`examples/appinsights.bicep`
`references/ASPNETCORE.md`
`references/AUTO.md`
`references/NODEJS.md`
`references/PYTHON.md`
`scripts/appinsights.ps1` | -| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets\template-architecture.md` | +| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets/template-architecture.md` | | [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` | | [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` | | [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None | From a1dbed1492cd8a3cf5561d70336d39d9810cd4ba Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 15:16:12 -0300 Subject: [PATCH 17/57] =?UTF-8?q?UPDATE:=20Corrigir=20formata=C3=A7=C3=A3o?= =?UTF-8?q?=20no=20arquivo=20de=20desenvolvimento=20frontend?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- collections/frontend-web-dev.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/collections/frontend-web-dev.md b/collections/frontend-web-dev.md index bedfe98e..849391de 100644 --- a/collections/frontend-web-dev.md +++ b/collections/frontend-web-dev.md @@ -21,4 +21,4 @@ Essential prompts, instructions, and chat modes for modern frontend web developm | [Website Exploration for Testing](../prompts/playwright-explore-website.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-explore-website.prompt.md) | Prompt | Website exploration for testing using Playwright MCP | | --- -*This collection includes 11 curated items for **Frontend Web Development**.* +*This collection includes 11 curated items for **Frontend Web Development**.* \ No newline at end of file From 98511445401bb21cd0fbc6186a0ea28908d24ec7 Mon Sep 17 00:00:00 2001 From: Emerson Delatorre <38289677+fazedordecodigo@users.noreply.github.com> Date: Mon, 12 Jan 2026 15:20:36 -0300 Subject: [PATCH 18/57] =?UTF-8?q?UPDATE:=20Corrigir=20a=20aplica=C3=A7?= =?UTF-8?q?=C3=A3o=20das=20melhores=20pr=C3=A1ticas=20do=20Next.js=20para?= =?UTF-8?q?=20incluir=20extens=C3=B5es=20espec=C3=ADficas=20de=20arquivos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- instructions/nextjs.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instructions/nextjs.instructions.md b/instructions/nextjs.instructions.md index 16bf8c95..300dd58d 100644 --- a/instructions/nextjs.instructions.md +++ b/instructions/nextjs.instructions.md @@ -1,6 +1,6 @@ --- description: "Best practices for building Next.js (App Router) apps with modern caching, tooling, and server/client boundaries (aligned with Next.js 16.1.1)." -applyTo: "**" +applyTo: '**/*.tsx, **/*.ts, **/*.jsx, **/*.js, **/*.css' --- # Next.js Best Practices for LLMs (2026) From b703c76d09b8deeac51b7f632e6179f3832ec9fa Mon Sep 17 00:00:00 2001 From: Mads Kristensen Date: Mon, 12 Jan 2026 10:30:32 -0800 Subject: [PATCH 19/57] Update instructions with .editorconfig and .NET constraints Added guidelines for adhering to .editorconfig and .NET Framework constraints. --- instructions/vsixtoolkit.instructions.md | 45 ++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/instructions/vsixtoolkit.instructions.md b/instructions/vsixtoolkit.instructions.md index 4db23c02..c445b242 100644 --- a/instructions/vsixtoolkit.instructions.md +++ b/instructions/vsixtoolkit.instructions.md @@ -23,6 +23,47 @@ Verify the project uses the toolkit by checking for: - Ensure all UI respects Visual Studio themes - Follow VSSDK and VSTHRD analyzer rules - Produce testable, maintainable extension code +- **Adhere to `.editorconfig` settings** when present in the repository + +## Code Style (.editorconfig) + +**If an `.editorconfig` file exists in the repository, all generated and modified code MUST follow its rules.** + +This includes but is not limited to: +- Indentation style (tabs vs spaces) and size +- Line endings and final newline requirements +- Naming conventions (fields, properties, methods, etc.) +- Code style preferences (`var` usage, expression bodies, braces, etc.) +- Analyzer severity levels and suppressions + +Before generating code, check for `.editorconfig` in the repository root and apply its settings. When in doubt, match the style of surrounding code in the file being edited. + +## .NET Framework and C# Language Constraints + +**Visual Studio extensions target .NET Framework 4.8** but can use modern C# syntax (up to C# 14) with constraints imposed by the .NET Framework runtime. + +### ✅ Supported Modern C# Features +- Primary constructors +- File-scoped namespaces +- Global usings +- Pattern matching (all forms) +- Records (with limitations) +- `init` accessors +- Target-typed `new` +- Nullable reference types (annotations only) +- Raw string literals +- Collection expressions + +### ❌ Not Supported (.NET Framework Limitations) +- `Span`, `ReadOnlySpan`, `Memory` (no runtime support) +- `IAsyncEnumerable` (without polyfill packages) +- Default interface implementations +- `Index` and `Range` types (no runtime support for `^` and `..` operators) +- `init`-only setters on structs (runtime limitation) +- Some `System.Text.Json` features + +### Best Practice +When writing code, prefer APIs available in .NET Framework 4.8. If a modern API is needed, check if a polyfill NuGet package exists (e.g., `Microsoft.Bcl.AsyncInterfaces` for `IAsyncEnumerable`). ## Example Prompt Behaviors @@ -269,7 +310,7 @@ The toolkit provides automatic theming for WPF UserControls: For dialog windows, use `DialogWindow`: ```xml - Date: Mon, 12 Jan 2026 10:39:17 -0800 Subject: [PATCH 20/57] Update instructions/vsixtoolkit.instructions.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- instructions/vsixtoolkit.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instructions/vsixtoolkit.instructions.md b/instructions/vsixtoolkit.instructions.md index c445b242..1ede16d8 100644 --- a/instructions/vsixtoolkit.instructions.md +++ b/instructions/vsixtoolkit.instructions.md @@ -382,7 +382,7 @@ VS.Events.DocumentEvents.Saved += OnDocumentSaved; // Read settings synchronously var value = General.Instance.MyOption; -// Read settings asynchronously +// Read settings asynchronously var general = await General.GetLiveInstanceAsync(); var value = general.MyOption; From a0cf303bda9fba46109550eb6ef6b8dd0469404d Mon Sep 17 00:00:00 2001 From: Mads Kristensen Date: Mon, 12 Jan 2026 10:40:15 -0800 Subject: [PATCH 21/57] Update instructions/vsixtoolkit.instructions.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- instructions/vsixtoolkit.instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instructions/vsixtoolkit.instructions.md b/instructions/vsixtoolkit.instructions.md index 1ede16d8..3837d95e 100644 --- a/instructions/vsixtoolkit.instructions.md +++ b/instructions/vsixtoolkit.instructions.md @@ -310,7 +310,7 @@ The toolkit provides automatic theming for WPF UserControls: For dialog windows, use `DialogWindow`: ```xml - Date: Mon, 12 Jan 2026 14:00:22 -0500 Subject: [PATCH 22/57] fetch -> web/fetch for everything --- agents/accessibility.agent.md | 2 +- agents/aem-frontend-specialist.agent.md | 2 +- agents/bicep-implement.agent.md | 2 +- agents/bicep-plan.agent.md | 2 +- agents/critical-thinking.agent.md | 2 +- agents/csharp-dotnet-janitor.agent.md | 2 +- agents/custom-agent-foundry.agent.md | 2 +- agents/demonstrate-understanding.agent.md | 2 +- agents/dotnet-upgrade.agent.md | 4 +- agents/drupal-expert.agent.md | 74 +++++------ agents/expert-cpp-software-engineer.agent.md | 2 +- agents/gilfoyle.agent.md | 2 +- agents/hlbpa.agent.md | 2 +- agents/laravel-expert-agent.agent.md | 2 +- agents/mentor.agent.md | 2 +- agents/pimcore-expert.agent.md | 46 +++---- agents/principal-software-engineer.agent.md | 2 +- agents/prompt-builder.agent.md | 2 +- .../se-system-architecture-reviewer.agent.md | 2 +- agents/se-technical-writer.agent.md | 2 +- agents/se-ux-ui-designer.agent.md | 2 +- agents/search-ai-optimization-expert.agent.md | 2 +- agents/semantic-kernel-dotnet.agent.md | 2 +- agents/semantic-kernel-python.agent.md | 2 +- agents/shopify-expert.agent.md | 20 +-- agents/simple-app-idea-generator.agent.md | 2 +- agents/software-engineer-agent-v1.agent.md | 2 +- agents/specification.agent.md | 2 +- agents/tech-debt-remediation-plan.agent.md | 2 +- agents/technical-content-evaluator.agent.md | 2 +- agents/voidbeast-gpt41enhanced.agent.md | 8 +- agents/wg-code-alchemist.agent.md | 2 +- agents/wg-code-sentinel.agent.md | 2 +- prompts/add-educational-comments.prompt.md | 6 +- ...architecture-blueprint-generator.prompt.md | 22 ++-- prompts/convert-plaintext-to-md.prompt.md | 10 +- prompts/cosmosdb-datamodeling.prompt.md | 72 +++++------ ...te-architectural-decision-record.prompt.md | 2 +- ...ub-action-workflow-specification.prompt.md | 8 +- prompts/create-implementation-plan.prompt.md | 2 +- prompts/create-llms.prompt.md | 2 +- ...reate-oo-component-documentation.prompt.md | 2 +- prompts/create-specification.prompt.md | 2 +- prompts/create-technical-spike.prompt.md | 6 +- prompts/create-tldr-page.prompt.md | 14 +- prompts/documentation-writer.prompt.md | 2 +- ...er-structure-blueprint-generator.prompt.md | 120 +++++++++--------- prompts/github-copilot-starter.prompt.md | 20 +-- prompts/java-springboot.prompt.md | 2 +- .../mcp-create-declarative-agent.prompt.md | 6 +- prompts/model-recommendation.prompt.md | 10 +- prompts/playwright-explore-website.prompt.md | 2 +- prompts/playwright-generate-test.prompt.md | 2 +- prompts/postgresql-optimization.prompt.md | 76 +++++------ prompts/prompt-builder.prompt.md | 10 +- .../structured-autonomy-generate.prompt.md | 2 +- ...st-awesome-github-copilot-agents.prompt.md | 6 +- ...awesome-github-copilot-chatmodes.prompt.md | 6 +- ...esome-github-copilot-collections.prompt.md | 12 +- ...some-github-copilot-instructions.prompt.md | 6 +- ...t-awesome-github-copilot-prompts.prompt.md | 6 +- prompts/tldr-prompt.prompt.md | 34 ++--- prompts/update-avm-modules-in-bicep.prompt.md | 8 +- prompts/update-implementation-plan.prompt.md | 2 +- prompts/update-llms.prompt.md | 2 +- prompts/update-markdown-file-index.prompt.md | 2 +- ...pdate-oo-component-documentation.prompt.md | 2 +- prompts/update-specification.prompt.md | 2 +- ...write-coding-standards-from-file.prompt.md | 24 ++-- 69 files changed, 360 insertions(+), 360 deletions(-) diff --git a/agents/accessibility.agent.md b/agents/accessibility.agent.md index f2bf6d1c..69cd49fd 100644 --- a/agents/accessibility.agent.md +++ b/agents/accessibility.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing' model: GPT-4.1 -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Accessibility Expert diff --git a/agents/aem-frontend-specialist.agent.md b/agents/aem-frontend-specialist.agent.md index c0964644..7f172aeb 100644 --- a/agents/aem-frontend-specialist.agent.md +++ b/agents/aem-frontend-specialist.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration' model: 'GPT-4.1' -tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] +tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] --- # AEM Front-End Specialist diff --git a/agents/bicep-implement.agent.md b/agents/bicep-implement.agent.md index 56c7b350..62c7659f 100644 --- a/agents/bicep-implement.agent.md +++ b/agents/bicep-implement.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as an Azure Bicep Infrastructure as Code coding specialist that creates Bicep templates.' tools: - [ 'edit/editFiles', 'fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'web/fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure as Code coding Specialist diff --git a/agents/bicep-plan.agent.md b/agents/bicep-plan.agent.md index 26e7c885..23c83a05 100644 --- a/agents/bicep-plan.agent.md +++ b/agents/bicep-plan.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as implementation planner for your Azure Bicep Infrastructure as Code task.' tools: - [ 'edit/editFiles', 'fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'web/fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure Planning diff --git a/agents/critical-thinking.agent.md b/agents/critical-thinking.agent.md index 4fa9da1e..0d056889 100644 --- a/agents/critical-thinking.agent.md +++ b/agents/critical-thinking.agent.md @@ -1,6 +1,6 @@ --- description: 'Challenge assumptions and encourage critical thinking to ensure the best possible solution and outcomes.' -tools: ['codebase', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] +tools: ['codebase', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] --- # Critical thinking mode instructions diff --git a/agents/csharp-dotnet-janitor.agent.md b/agents/csharp-dotnet-janitor.agent.md index a7fd15f3..3273fc35 100644 --- a/agents/csharp-dotnet-janitor.agent.md +++ b/agents/csharp-dotnet-janitor.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # C#/.NET Janitor diff --git a/agents/custom-agent-foundry.agent.md b/agents/custom-agent-foundry.agent.md index 576d421c..58ebec9a 100644 --- a/agents/custom-agent-foundry.agent.md +++ b/agents/custom-agent-foundry.agent.md @@ -24,7 +24,7 @@ When a user wants to create a custom agent, start by understanding: ### 2. Custom Agent Design Principles **Tool Selection Strategy:** -- **Read-only agents** (planning, research, review): Use `['search', 'fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` +- **Read-only agents** (planning, research, review): Use `['search', 'web/fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` - **Implementation agents** (coding, refactoring): Add `['replace_string_in_file', 'multi_replace_string_in_file', 'create_file', 'run_in_terminal']` - **Testing agents**: Include `['run_notebook_cell', 'test_failure', 'run_in_terminal']` - **Deployment agents**: Include `['run_in_terminal', 'create_and_run_task', 'get_errors']` diff --git a/agents/demonstrate-understanding.agent.md b/agents/demonstrate-understanding.agent.md index 63dc7644..49731de4 100644 --- a/agents/demonstrate-understanding.agent.md +++ b/agents/demonstrate-understanding.agent.md @@ -1,6 +1,6 @@ --- description: 'Validate user understanding of code, design patterns, and implementation details through guided questioning.' -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Demonstrate Understanding mode instructions diff --git a/agents/dotnet-upgrade.agent.md b/agents/dotnet-upgrade.agent.md index fe6472c3..c92f8fde 100644 --- a/agents/dotnet-upgrade.agent.md +++ b/agents/dotnet-upgrade.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'fetch', 'microsoft.docs.mcp'] +tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'web/fetch', 'microsoft.docs.mcp'] --- # .NET Upgrade Collection @@ -20,7 +20,7 @@ Discover and plan your .NET upgrade journey! mode: dotnet-upgrade title: Analyze current .NET framework versions and create upgrade plan --- -Analyze the repository and list each project's current TargetFramework +Analyze the repository and list each project's current TargetFramework along with the latest available LTS version from Microsoft's release schedule. Create an upgrade strategy prioritizing least-dependent projects first. ``` diff --git a/agents/drupal-expert.agent.md b/agents/drupal-expert.agent.md index 2555266f..7f9d5554 100644 --- a/agents/drupal-expert.agent.md +++ b/agents/drupal-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for Drupal development, architecture, and best practices using PHP 8.3+ and modern Drupal patterns' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Drupal Expert @@ -157,11 +157,11 @@ use Drupal\Core\Entity\EntityTypeManagerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; class DecoratedEntityTypeManager implements EntityTypeManagerInterface { - + public function __construct( protected EntityTypeManagerInterface $entityTypeManager ) {} - + // Implement all interface methods, delegating to wrapped service // Add custom logic where needed } @@ -190,17 +190,17 @@ use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\KernelEvents; class MyModuleSubscriber implements EventSubscriberInterface { - + public function __construct( protected RouteMatchInterface $routeMatch ) {} - + public static function getSubscribedEvents(): array { return [ KernelEvents::REQUEST => ['onRequest', 100], ]; } - + public function onRequest(RequestEvent $event): void { // Custom logic on every request } @@ -222,7 +222,7 @@ use Drupal\Component\Annotation\Plugin; * @Annotation */ class CustomProcessor extends Plugin { - + public string $id; public string $label; public string $description = ''; @@ -263,7 +263,7 @@ use Drupal\Core\Queue\QueueWorkerBase; * ) */ class MyModuleProcessor extends QueueWorkerBase { - + public function processItem($data): void { // Process queue item } @@ -322,10 +322,10 @@ use Drupal\Core\Field\BaseFieldDefinition; * ) */ class Product extends ContentEntityBase { - + public static function baseFieldDefinitions(EntityTypeInterface $entity_type): array { $fields = parent::baseFieldDefinitions($entity_type); - + $fields['name'] = BaseFieldDefinition::create('string') ->setLabel(t('Name')) ->setRequired(TRUE) @@ -335,7 +335,7 @@ class Product extends ContentEntityBase { ]) ->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('view', TRUE); - + $fields['price'] = BaseFieldDefinition::create('decimal') ->setLabel(t('Price')) ->setSetting('precision', 10) @@ -346,15 +346,15 @@ class Product extends ContentEntityBase { ]) ->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('view', TRUE); - + $fields['created'] = BaseFieldDefinition::create('created') ->setLabel(t('Created')) ->setDescription(t('The time that the entity was created.')); - + $fields['changed'] = BaseFieldDefinition::create('changed') ->setLabel(t('Changed')) ->setDescription(t('The time that the entity was last edited.')); - + return $fields; } } @@ -383,7 +383,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * ) */ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInterface { - + public function __construct( array $configuration, $plugin_id, @@ -392,7 +392,7 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt ) { parent::__construct($configuration, $plugin_id, $plugin_definition); } - + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition): self { return new self( $configuration, @@ -401,13 +401,13 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt $container->get('entity_type.manager') ); } - + public function defaultConfiguration(): array { return [ 'count' => 5, ] + parent::defaultConfiguration(); } - + public function blockForm($form, FormStateInterface $form_state): array { $form['count'] = [ '#type' => 'number', @@ -418,23 +418,23 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt ]; return $form; } - + public function blockSubmit($form, FormStateInterface $form_state): void { $this->configuration['count'] = $form_state->getValue('count'); } - + public function build(): array { $count = $this->configuration['count']; - + $storage = $this->entityTypeManager->getStorage('product'); $query = $storage->getQuery() ->accessCheck(TRUE) ->sort('created', 'DESC') ->range(0, $count); - + $ids = $query->execute(); $products = $storage->loadMultiple($ids); - + return [ '#theme' => 'item_list', '#items' => array_map( @@ -467,9 +467,9 @@ use Psr\Log\LoggerInterface; * Service for managing products. */ class ProductManager { - + protected LoggerInterface $logger; - + public function __construct( protected EntityTypeManagerInterface $entityTypeManager, protected ConfigFactoryInterface $configFactory, @@ -477,7 +477,7 @@ class ProductManager { ) { $this->logger = $loggerFactory->get('mymodule'); } - + /** * Creates a new product. * @@ -492,13 +492,13 @@ class ProductManager { $product = $this->entityTypeManager ->getStorage('product') ->create($values); - + $product->save(); - + $this->logger->info('Product created: @name', [ '@name' => $product->label(), ]); - + return $product; } catch (\Exception $e) { @@ -537,23 +537,23 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * Returns responses for My Module routes. */ class ProductController extends ControllerBase { - + public function __construct( protected ProductManager $productManager ) {} - + public static function create(ContainerInterface $container): self { return new self( $container->get('mymodule.product_manager') ); } - + /** * Displays a list of products. */ public function list(): array { $products = $this->productManager->getRecentProducts(10); - + return [ '#theme' => 'mymodule_product_list', '#products' => $products, @@ -594,15 +594,15 @@ use Drupal\mymodule\Entity\Product; * @group mymodule */ class ProductTest extends KernelTestBase { - + protected static $modules = ['mymodule', 'user', 'system']; - + protected function setUp(): void { parent::setUp(); $this->installEntitySchema('product'); $this->installEntitySchema('user'); } - + /** * Tests product creation. */ @@ -612,7 +612,7 @@ class ProductTest extends KernelTestBase { 'price' => 99.99, ]); $product->save(); - + $this->assertNotEmpty($product->id()); $this->assertEquals('Test Product', $product->label()); $this->assertEquals(99.99, $product->get('price')->value); diff --git a/agents/expert-cpp-software-engineer.agent.md b/agents/expert-cpp-software-engineer.agent.md index cbb1596f..7050cde3 100644 --- a/agents/expert-cpp-software-engineer.agent.md +++ b/agents/expert-cpp-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide expert C++ software engineering guidance using modern C++ and industry best practices.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] --- # Expert C++ software engineer mode instructions diff --git a/agents/gilfoyle.agent.md b/agents/gilfoyle.agent.md index 2ffd7fff..269614c0 100644 --- a/agents/gilfoyle.agent.md +++ b/agents/gilfoyle.agent.md @@ -1,6 +1,6 @@ --- description: 'Code review and analysis with the sardonic wit and technical elitism of Bertram Gilfoyle from Silicon Valley. Prepare for brutal honesty about your code.' -tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] --- # Gilfoyle Code Review Mode diff --git a/agents/hlbpa.agent.md b/agents/hlbpa.agent.md index decdfe6c..cdedf3c9 100644 --- a/agents/hlbpa.agent.md +++ b/agents/hlbpa.agent.md @@ -5,7 +5,7 @@ tools: - 'search/codebase' - 'changes' - 'edit/editFiles' - - 'fetch' + - 'web/fetch' - 'findTestFiles' - 'githubRepo' - 'runCommands' diff --git a/agents/laravel-expert-agent.agent.md b/agents/laravel-expert-agent.agent.md index c066d7c1..8badba2e 100644 --- a/agents/laravel-expert-agent.agent.md +++ b/agents/laravel-expert-agent.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Laravel development assistant specializing in modern Laravel 12+ applications with Eloquent, Artisan, testing, and best practices' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems', 'search'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems', 'search'] --- # Laravel Expert Agent diff --git a/agents/mentor.agent.md b/agents/mentor.agent.md index 69cb457d..c6531ad6 100644 --- a/agents/mentor.agent.md +++ b/agents/mentor.agent.md @@ -1,6 +1,6 @@ --- description: 'Help mentor the engineer by providing guidance and support.' -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Mentor mode instructions diff --git a/agents/pimcore-expert.agent.md b/agents/pimcore-expert.agent.md index 8e915e3b..3d941dea 100644 --- a/agents/pimcore-expert.agent.md +++ b/agents/pimcore-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Pimcore development assistant specializing in CMS, DAM, PIM, and E-Commerce solutions with Symfony integration' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Pimcore Expert @@ -252,7 +252,7 @@ class Car extends CarGenerated */ public function getOSName(): ?string { - return ($this->getManufacturer() ? ($this->getManufacturer()->getName() . ' ') : null) + return ($this->getManufacturer() ? ($this->getManufacturer()->getName() . ' ') : null) . $this->getName(); } @@ -271,7 +271,7 @@ class Car extends CarGenerated /** * Get all additional product images - * + * * @return Hotspotimage[] */ public function getAdditionalImages(): array @@ -306,7 +306,7 @@ class Car extends CarGenerated /** * Get color variants for this product - * + * * @return self[] */ public function getColorVariants(): array @@ -319,7 +319,7 @@ class Car extends CarGenerated $variants = []; foreach ($parent->getChildren() as $sibling) { - if ($sibling instanceof self && + if ($sibling instanceof self && $sibling->getObjectType() === self::OBJECT_TYPE_ACTUAL_CAR) { $variants[] = $sibling; } @@ -411,7 +411,7 @@ class ProductController extends FrontendController ProductLinkGenerator $productLinkGenerator ): Response { $term = trim(strip_tags($request->query->get('term', ''))); - + if (empty($term)) { return $this->json([]); } @@ -491,19 +491,19 @@ class ProductGrid extends AbstractTemplateAreabrick public function action(Info $info): ?Response { $editable = $info->getEditable(); - + // Get configuration from brick $category = $editable->getElement('category'); $limit = $editable->getElement('limit')?->getData() ?? 12; - + // Load products (simplified - use proper service in production) $products = []; if ($category) { // Load products from category } - + $info->setParam('products', $products); - + return null; } } @@ -527,13 +527,13 @@ class ProductGrid extends AbstractTemplateAreabrick ], 'width': 200 }) }} - + {{ pimcore_numeric('limit', { 'width': 100, 'minValue': 1, 'maxValue': 24 }) }} - + {{ pimcore_manyToManyObjectRelation('category', { 'types': ['object'], 'classes': ['Category'], @@ -549,17 +549,17 @@ class ProductGrid extends AbstractTemplateAreabrick
{% if product.mainImage %} - {{ product.OSName }} {% endif %} - +

{{ product.OSName }}

- +
{{ product.OSPrice|number_format(2, '.', ',') }} EUR
@@ -699,16 +699,16 @@ pimcore_ecommerce_framework: enabled: true config_id: default_mysql worker_id: default - + # Pricing configuration pricing_manager: enabled: true pricing_manager_id: default - + # Cart configuration cart: factory_type: Pimcore\Bundle\EcommerceFrameworkBundle\CartManager\CartFactory - + # Checkout configuration checkout_manager: factory_type: Pimcore\Bundle\EcommerceFrameworkBundle\CheckoutManager\CheckoutManagerFactory @@ -716,17 +716,17 @@ pimcore_ecommerce_framework: default: payment: provider: Datatrans - + # Order manager order_manager: enabled: true - + # Price systems price_systems: default: price_system: id: Pimcore\Bundle\EcommerceFrameworkBundle\PriceSystem\AttributePriceSystem - + # Availability systems availability_systems: default: @@ -765,7 +765,7 @@ class ImportProductsCommand extends AbstractCommand // Load data from source $products = $this->loadProductData(); - + $progressBar = $io->createProgressBar(count($products)); $progressBar->start(); @@ -794,7 +794,7 @@ class ImportProductsCommand extends AbstractCommand private function importProduct(array $data): void { $product = Car::getByPath('/products/' . $data['sku']); - + if (!$product) { $product = new Car(); $product->setParent(Car::getByPath('/products')); diff --git a/agents/principal-software-engineer.agent.md b/agents/principal-software-engineer.agent.md index 82056fc4..68875d4c 100644 --- a/agents/principal-software-engineer.agent.md +++ b/agents/principal-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Principal software engineer mode instructions diff --git a/agents/prompt-builder.agent.md b/agents/prompt-builder.agent.md index cb34c06e..5e1a76ef 100644 --- a/agents/prompt-builder.agent.md +++ b/agents/prompt-builder.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert prompt engineering and validation system for creating high-quality prompts - Brought to you by microsoft/edge-ai' -tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] +tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] --- # Prompt Builder Instructions diff --git a/agents/se-system-architecture-reviewer.agent.md b/agents/se-system-architecture-reviewer.agent.md index 3942b3e8..7ac77dec 100644 --- a/agents/se-system-architecture-reviewer.agent.md +++ b/agents/se-system-architecture-reviewer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Architect' description: 'System architecture review specialist with Well-Architected frameworks, design validation, and scalability analysis for AI and distributed systems' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # System Architecture Reviewer diff --git a/agents/se-technical-writer.agent.md b/agents/se-technical-writer.agent.md index 4fcda734..5b4e8ed7 100644 --- a/agents/se-technical-writer.agent.md +++ b/agents/se-technical-writer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Tech Writer' description: 'Technical writing specialist for creating developer documentation, technical blogs, tutorials, and educational content' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # Technical Writer diff --git a/agents/se-ux-ui-designer.agent.md b/agents/se-ux-ui-designer.agent.md index 6b144a95..d1ee41aa 100644 --- a/agents/se-ux-ui-designer.agent.md +++ b/agents/se-ux-ui-designer.agent.md @@ -2,7 +2,7 @@ name: 'SE: UX Designer' description: 'Jobs-to-be-Done analysis, user journey mapping, and UX research artifacts for Figma and design workflows' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # UX/UI Designer diff --git a/agents/search-ai-optimization-expert.agent.md b/agents/search-ai-optimization-expert.agent.md index 50dd32f1..123fb7a8 100644 --- a/agents/search-ai-optimization-expert.agent.md +++ b/agents/search-ai-optimization-expert.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert guidance for modern search optimization: SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) with AI-ready content strategies' -tools: ['codebase', 'fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] +tools: ['codebase', 'web/fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] --- # Search & AI Optimization Expert diff --git a/agents/semantic-kernel-dotnet.agent.md b/agents/semantic-kernel-dotnet.agent.md index 02efb99f..a93dfc71 100644 --- a/agents/semantic-kernel-dotnet.agent.md +++ b/agents/semantic-kernel-dotnet.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the .NET version of Semantic Kernel.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Semantic Kernel .NET mode instructions diff --git a/agents/semantic-kernel-python.agent.md b/agents/semantic-kernel-python.agent.md index 39fb04b7..eb680ddc 100644 --- a/agents/semantic-kernel-python.agent.md +++ b/agents/semantic-kernel-python.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the Python version of Semantic Kernel.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] --- # Semantic Kernel Python mode instructions diff --git a/agents/shopify-expert.agent.md b/agents/shopify-expert.agent.md index 8b5cb4f3..1ef3e7b9 100644 --- a/agents/shopify-expert.agent.md +++ b/agents/shopify-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Shopify development assistant specializing in theme development, Liquid templating, app development, and Shopify APIs' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Shopify Expert @@ -452,10 +452,10 @@ class CartManager {

${item.product_title}

${item.variant_title}

${this.formatMoney(item.final_line_price)}

- @@ -561,23 +561,23 @@ import { json } from "@remix-run/node"; export async function loader({ request }) { const url = new URL(request.url); const shop = url.searchParams.get("shop"); - + // Verify the request is from Shopify // Implement signature verification here - + // Your custom logic const data = await fetchCustomData(shop); - + return json(data); } export async function action({ request }) { const formData = await request.formData(); const shop = formData.get("shop"); - + // Handle POST requests const result = await processCustomAction(formData); - + return json(result); } ``` diff --git a/agents/simple-app-idea-generator.agent.md b/agents/simple-app-idea-generator.agent.md index 970703a3..91332d41 100644 --- a/agents/simple-app-idea-generator.agent.md +++ b/agents/simple-app-idea-generator.agent.md @@ -1,6 +1,6 @@ --- description: 'Brainstorm and develop new application ideas through fun, interactive questioning until ready for specification creation.' -tools: ['changes', 'codebase', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] +tools: ['changes', 'codebase', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] --- # Idea Generator mode instructions diff --git a/agents/software-engineer-agent-v1.agent.md b/agents/software-engineer-agent-v1.agent.md index 39cfe17b..b4b7bafc 100644 --- a/agents/software-engineer-agent-v1.agent.md +++ b/agents/software-engineer-agent-v1.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert-level software engineering agent. Deliver production-ready, maintainable code. Execute systematically and specification-driven. Document comprehensively. Operate autonomously and adaptively.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Software Engineer Agent v1 diff --git a/agents/specification.agent.md b/agents/specification.agent.md index 8ae88d58..b120dfe5 100644 --- a/agents/specification.agent.md +++ b/agents/specification.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate or update specification documents for new or existing functionality.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Specification mode instructions diff --git a/agents/tech-debt-remediation-plan.agent.md b/agents/tech-debt-remediation-plan.agent.md index 5e96c3c2..6941896c 100644 --- a/agents/tech-debt-remediation-plan.agent.md +++ b/agents/tech-debt-remediation-plan.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate technical debt remediation plans for code, tests, and documentation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Technical Debt Remediation Plan diff --git a/agents/technical-content-evaluator.agent.md b/agents/technical-content-evaluator.agent.md index a3bad60f..63237549 100644 --- a/agents/technical-content-evaluator.agent.md +++ b/agents/technical-content-evaluator.agent.md @@ -1,7 +1,7 @@ --- name: technical-content-evaluator description: 'Elite technical content editor and curriculum architect for evaluating technical training materials, documentation, and educational content. Reviews for technical accuracy, pedagogical excellence, content flow, code validation, and ensures A-grade quality standards.' -tools: ['edit', 'search', 'shell', 'fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] +tools: ['edit', 'search', 'shell', 'web/fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] model: Claude Sonnet 4.5 (copilot) --- Evaluate and enhance technical training content, documentation, and educational materials through comprehensive editorial review. Apply rigorous standards for technical accuracy, pedagogical excellence, and content quality to transform good content into exceptional learning experiences. diff --git a/agents/voidbeast-gpt41enhanced.agent.md b/agents/voidbeast-gpt41enhanced.agent.md index 0a633efc..f9cae472 100644 --- a/agents/voidbeast-gpt41enhanced.agent.md +++ b/agents/voidbeast-gpt41enhanced.agent.md @@ -1,6 +1,6 @@ --- description: '4.1 voidBeast_GPT41Enhanced 1.0 : a advanced autonomous developer agent, designed for elite full-stack development with enhanced multi-mode capabilities. This latest evolution features sophisticated mode detection, comprehensive research capabilities, and never-ending problem resolution. Plan/Act/Deep Research/Analyzer/Checkpoints(Memory)/Prompt Generator Modes.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] --- # voidBeast_GPT41Enhanced 1.0 - Elite Developer AI Assistant @@ -48,7 +48,7 @@ After **every** file modification, you MUST: **Output**: Comprehensive plan via `plan_mode_response` **Rule**: NO code writing in this mode -### ⚡ ACT MODE +### ⚡ ACT MODE **Purpose**: Execute approved plans and implement solutions **Tools**: All tools available for coding, testing, and deployment **Output**: Working solution via `attempt_completion` @@ -91,7 +91,7 @@ After **every** file modification, you MUST: ### 🤖 PROMPT GENERATOR MODE **Triggers**: "generate", "create", "develop", "build" (when requesting content creation) -**Critical Rules**: +**Critical Rules**: - Your knowledge is outdated - MUST verify everything with current web sources - **DO NOT CODE DIRECTLY** - Generate research-backed prompts first - **MANDATORY RESEARCH PHASE** before any implementation @@ -124,7 +124,7 @@ After **every** file modification, you MUST: ### 🔍 Investigation & Analysis `codebase` `search` `searchResults` `usages` `findTestFiles` -### 📝 File Operations +### 📝 File Operations `editFiles` `new` `readCellOutput` ### 🧪 Development & Testing diff --git a/agents/wg-code-alchemist.agent.md b/agents/wg-code-alchemist.agent.md index a41eeb0a..000cd749 100644 --- a/agents/wg-code-alchemist.agent.md +++ b/agents/wg-code-alchemist.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Alchemist to transform your code with Clean Code principles and SOLID design' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Alchemist, an expert software engineer specializing in Clean Code practices and SOLID principles. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/agents/wg-code-sentinel.agent.md b/agents/wg-code-sentinel.agent.md index adafd2af..bd59a600 100644 --- a/agents/wg-code-sentinel.agent.md +++ b/agents/wg-code-sentinel.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Sentinel to review your code for security issues.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Sentinel, an expert security reviewer specializing in identifying and mitigating code vulnerabilities. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/prompts/add-educational-comments.prompt.md b/prompts/add-educational-comments.prompt.md index 2469d180..be749106 100644 --- a/prompts/add-educational-comments.prompt.md +++ b/prompts/add-educational-comments.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.' -tools: ['edit/editFiles', 'fetch', 'todos'] +tools: ['edit/editFiles', 'web/fetch', 'todos'] --- # Add Educational Comments @@ -83,7 +83,7 @@ You are an expert educator and technical writer. You can explain programming top - **Educational Level** (`1-3`): Familiarity with the specific language or framework (default `1`). - **Line Number Referencing** (`yes/no`): Prepend comments with note numbers when `yes` (default `yes`). - **Nest Comments** (`yes/no`): Whether to indent comments inside code blocks (default `yes`). -- **Fetch List**: Optional URLs for authoritative references. +- **web/fetch List**: Optional URLs for authoritative references. If a configurable element is missing, use the default value. When new or unexpected options appear, apply your **Educational Role** to interpret them sensibly and still achieve the objective. @@ -97,7 +97,7 @@ If a configurable element is missing, use the default value. When new or unexpec - Educational Level = 1 - Line Number Referencing = yes - Nest Comments = yes -- Fetch List: +- web/fetch List: - ## Examples diff --git a/prompts/architecture-blueprint-generator.prompt.md b/prompts/architecture-blueprint-generator.prompt.md index 038852f1..1b60ad3e 100644 --- a/prompts/architecture-blueprint-generator.prompt.md +++ b/prompts/architecture-blueprint-generator.prompt.md @@ -25,7 +25,7 @@ ${FOCUS_ON_EXTENSIBILITY=true|false} C[Job 2] C --> D[Job 3] D --> E[End] - + B --> F[Parallel Job] F --> D - + style A fill:#e1f5fe style E fill:#e8f5e8 ``` @@ -259,7 +259,7 @@ graph TD subgraph "Build Phase" A[Lint] --> B[Test] --> C[Build] end - subgraph "Deploy Phase" + subgraph "Deploy Phase" D[Staging] --> E[Production] end C --> D diff --git a/prompts/create-implementation-plan.prompt.md b/prompts/create-implementation-plan.prompt.md index e6ed3b11..ffc0bc0f 100644 --- a/prompts/create-implementation-plan.prompt.md +++ b/prompts/create-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Implementation Plan diff --git a/prompts/create-llms.prompt.md b/prompts/create-llms.prompt.md index 95f661c6..c9e5e58f 100644 --- a/prompts/create-llms.prompt.md +++ b/prompts/create-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create LLMs.txt File from Repository Structure diff --git a/prompts/create-oo-component-documentation.prompt.md b/prompts/create-oo-component-documentation.prompt.md index 1042534d..33bb0cf9 100644 --- a/prompts/create-oo-component-documentation.prompt.md +++ b/prompts/create-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Generate Standard OO Component Documentation diff --git a/prompts/create-specification.prompt.md b/prompts/create-specification.prompt.md index 664e695e..08093e04 100644 --- a/prompts/create-specification.prompt.md +++ b/prompts/create-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new specification file for the solution, optimized for Generative AI consumption.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Specification diff --git a/prompts/create-technical-spike.prompt.md b/prompts/create-technical-spike.prompt.md index aa7162ec..bd9f63c7 100644 --- a/prompts/create-technical-spike.prompt.md +++ b/prompts/create-technical-spike.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.' -tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] +tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] --- # Create Technical Spike Document @@ -203,7 +203,7 @@ Use descriptive, kebab-case names that indicate the category and specific unknow ### Phase 1: Information Gathering -1. **Search existing documentation** using search/fetch tools +1. **Search existing documentation** using search/web/fetch tools 2. **Analyze codebase** for existing patterns and constraints 3. **Research external resources** (APIs, libraries, examples) @@ -222,7 +222,7 @@ Use descriptive, kebab-case names that indicate the category and specific unknow ## Tools Usage - **search/searchResults:** Research existing solutions and documentation -- **fetch/githubRepo:** Analyze external APIs, libraries, and examples +- **web/fetch/githubRepo:** Analyze external APIs, libraries, and examples - **codebase:** Understand existing system constraints and patterns - **runTasks:** Execute prototypes and validation tests - **editFiles:** Update research progress and findings diff --git a/prompts/create-tldr-page.prompt.md b/prompts/create-tldr-page.prompt.md index 03a0f93f..6fea9f27 100644 --- a/prompts/create-tldr-page.prompt.md +++ b/prompts/create-tldr-page.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a tldr page from documentation URLs and command examples, requiring both URL and command name.' -tools: ['edit/createFile', 'fetch'] +tools: ['edit/createFile', 'web/fetch'] --- # Create TLDR Page @@ -25,9 +25,9 @@ clear, example-driven command references. * **Command** - The name of the command or tool (e.g., `git`, `nmcli`, `distrobox-create`) * **URL** - Link to authoritative upstream documentation - - If one or more URLs are passed without a preceding `#fetch`, apply #tool:fetch to the first URL + - If one or more URLs are passed without a preceding `#web/fetch`, apply #tool:web/fetch to the first URL - If ${file} is provided in lieu of a URL, and ${file} has a relevant URL to **command**, then use - the data from the file as if fetched from the URL; use the URL extracted from the file when + the data from the file as if web/fetched from the URL; use the URL extracted from the file when creating the `tldr` page - If more than one URL is in the file, prompt for which URL should be used for the `tldr` page @@ -48,7 +48,7 @@ the command. ### Syntax ```bash -/create-tldr-page #fetch [text data] [context file] +/create-tldr-page #web/fetch [text data] [context file] ``` ### Error Handling @@ -64,7 +64,7 @@ the command. **Agent** ```text -I'll fetch the URL and analyze the documentation. +I'll web/fetch the URL and analyze the documentation. From the data extracted, I assume the command is `some-command`. Is this correct? (yes/no) ``` @@ -123,7 +123,7 @@ Use this template structure when creating tldr pages: ### Reference Examples -You MAY fetch these example tldr pages to understand the proper format and style: +You MAY web/fetch these example tldr pages to understand the proper format and style: * [git](https://raw.githubusercontent.com/jhauga/tldr/refs/heads/main/pages/common/git.md) * [distrobox-create](https://raw.githubusercontent.com/jhauga/tldr/refs/heads/main/pages/linux/distrobox-create.md) @@ -134,7 +134,7 @@ You MAY fetch these example tldr pages to understand the proper format and style **User** ```bash -/create-tldr-page #fetch https://git-scm.com/docs/git git +/create-tldr-page #web/fetch https://git-scm.com/docs/git git ``` **Agent** diff --git a/prompts/documentation-writer.prompt.md b/prompts/documentation-writer.prompt.md index 88c71ad3..7b97cc99 100644 --- a/prompts/documentation-writer.prompt.md +++ b/prompts/documentation-writer.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -tools: ['edit/editFiles', 'search', 'web/fetch'] +tools: ['edit/editFiles', 'search', 'web/web/fetch'] description: 'Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.' --- diff --git a/prompts/folder-structure-blueprint-generator.prompt.md b/prompts/folder-structure-blueprint-generator.prompt.md index 3afce155..4910eba5 100644 --- a/prompts/folder-structure-blueprint-generator.prompt.md +++ b/prompts/folder-structure-blueprint-generator.prompt.md @@ -7,34 +7,34 @@ agent: 'agent' ## Configuration Variables -${PROJECT_TYPE="Auto-detect|.NET|Java|React|Angular|Python|Node.js|Flutter|Other"} +${PROJECT_TYPE="Auto-detect|.NET|Java|React|Angular|Python|Node.js|Flutter|Other"} -${INCLUDES_MICROSERVICES="Auto-detect|true|false"} +${INCLUDES_MICROSERVICES="Auto-detect|true|false"} -${INCLUDES_FRONTEND="Auto-detect|true|false"} +${INCLUDES_FRONTEND="Auto-detect|true|false"} -${IS_MONOREPO="Auto-detect|true|false"} +${IS_MONOREPO="Auto-detect|true|false"} -${VISUALIZATION_STYLE="ASCII|Markdown List|Table"} +${VISUALIZATION_STYLE="ASCII|Markdown List|Table"} -${DEPTH_LEVEL=1-5} +${DEPTH_LEVEL=1-5} -${INCLUDE_FILE_COUNTS=true|false} +${INCLUDE_FILE_COUNTS=true|false} -${INCLUDE_GENERATED_FOLDERS=true|false} +${INCLUDE_GENERATED_FOLDERS=true|false} -${INCLUDE_FILE_PATTERNS=true|false} +${INCLUDE_FILE_PATTERNS=true|false} -${INCLUDE_TEMPLATES=true|false} +${INCLUDE_TEMPLATES=true|false} ## Generated Prompt @@ -43,7 +43,7 @@ ${INCLUDE_TEMPLATES=true|false} ### Initial Auto-detection Phase -${PROJECT_TYPE == "Auto-detect" ? +${PROJECT_TYPE == "Auto-detect" ? "Begin by scanning the folder structure for key files that identify the project type: - Look for solution/project files (.sln, .csproj, .fsproj, .vbproj) to identify .NET projects - Check for build files (pom.xml, build.gradle, settings.gradle) for Java projects @@ -51,17 +51,17 @@ ${PROJECT_TYPE == "Auto-detect" ? - Look for specific framework files (angular.json, react-scripts entries, next.config.js) - Check for Python project identifiers (requirements.txt, setup.py, pyproject.toml) - Examine mobile app identifiers (pubspec.yaml, android/ios folders) -- Note all technology signatures found and their versions" : +- Note all technology signatures found and their versions" : "Focus analysis on ${PROJECT_TYPE} project structure"} -${IS_MONOREPO == "Auto-detect" ? +${IS_MONOREPO == "Auto-detect" ? "Determine if this is a monorepo by looking for: - Multiple distinct projects with their own configuration files - Workspace configuration files (lerna.json, nx.json, turborepo.json, etc.) - Cross-project references and shared dependency patterns - Root-level orchestration scripts and configuration" : ""} -${INCLUDES_MICROSERVICES == "Auto-detect" ? +${INCLUDES_MICROSERVICES == "Auto-detect" ? "Check for microservices architecture indicators: - Multiple service directories with similar/repeated structures - Service-specific Dockerfiles or deployment configurations @@ -70,7 +70,7 @@ ${INCLUDES_MICROSERVICES == "Auto-detect" ? - API gateway configuration files - Shared libraries or utilities across services" : ""} -${INCLUDES_FRONTEND == "Auto-detect" ? +${INCLUDES_FRONTEND == "Auto-detect" ? "Identify frontend components by looking for: - Web asset directories (wwwroot, public, dist, static) - UI framework files (components, modules, pages) @@ -87,40 +87,40 @@ Provide a high-level overview of the ${PROJECT_TYPE == "Auto-detect" ? "detected - Note any structural patterns that repeat throughout the codebase - Document the rationale behind the structure where it can be inferred -${IS_MONOREPO == "Auto-detect" ? -"If detected as a monorepo, explain how the monorepo is organized and the relationship between projects." : +${IS_MONOREPO == "Auto-detect" ? +"If detected as a monorepo, explain how the monorepo is organized and the relationship between projects." : IS_MONOREPO ? "Explain how the monorepo is organized and the relationship between projects." : ""} -${INCLUDES_MICROSERVICES == "Auto-detect" ? -"If microservices are detected, describe how they are structured and organized." : +${INCLUDES_MICROSERVICES == "Auto-detect" ? +"If microservices are detected, describe how they are structured and organized." : INCLUDES_MICROSERVICES ? "Describe how the microservices are structured and organized." : ""} ### 2. Directory Visualization -${VISUALIZATION_STYLE == "ASCII" ? +${VISUALIZATION_STYLE == "ASCII" ? "Create an ASCII tree representation of the folder hierarchy to depth level ${DEPTH_LEVEL}." : ""} -${VISUALIZATION_STYLE == "Markdown List" ? +${VISUALIZATION_STYLE == "Markdown List" ? "Use nested markdown lists to represent the folder hierarchy to depth level ${DEPTH_LEVEL}." : ""} -${VISUALIZATION_STYLE == "Table" ? +${VISUALIZATION_STYLE == "Table" ? "Create a table with columns for Path, Purpose, Content Types, and Conventions." : ""} -${INCLUDE_GENERATED_FOLDERS ? -"Include all folders including generated ones." : +${INCLUDE_GENERATED_FOLDERS ? +"Include all folders including generated ones." : "Exclude auto-generated folders like bin/, obj/, node_modules/, etc."} ### 3. Key Directory Analysis Document each significant directory's purpose, contents, and patterns: -${PROJECT_TYPE == "Auto-detect" ? +${PROJECT_TYPE == "Auto-detect" ? "For each detected technology, analyze directory structures based on observed usage patterns:" : ""} -${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? "#### .NET Project Structure (if detected) -- **Solution Organization**: +- **Solution Organization**: - How projects are grouped and related - Solution folder organization patterns - Multi-targeting project patterns @@ -149,7 +149,7 @@ ${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? - Test categories and organization - Test data and mock locations" : ""} -${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto-detect") ? "#### UI Project Structure (if detected) - **Component Organization**: @@ -170,13 +170,13 @@ ${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto - **API Integration**: - API client organization - Service layer structure - - Data fetching patterns + - Data web/fetching patterns - **Asset Management**: - Static resource organization - Image/media file structure - Font and icon organization - + - **Style Organization**: - CSS/SCSS file structure - Theme organization @@ -184,36 +184,36 @@ ${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto ### 4. File Placement Patterns -${INCLUDE_FILE_PATTERNS ? +${INCLUDE_FILE_PATTERNS ? "Document the patterns that determine where different types of files should be placed: - **Configuration Files**: - Locations for different types of configuration - Environment-specific configuration patterns - + - **Model/Entity Definitions**: - Where domain models are defined - Data transfer object (DTO) locations - Schema definition locations - + - **Business Logic**: - Service implementation locations - Business rule organization - Utility and helper function placement - + - **Interface Definitions**: - Where interfaces and abstractions are defined - How interfaces are grouped and organized - + - **Test Files**: - Unit test location patterns - Integration test placement - Test utility and mock locations - + - **Documentation Files**: - API documentation placement - Internal documentation organization - - README file distribution" : + - README file distribution" : "Document where key file types are located in the project."} ### 5. Naming and Organization Conventions @@ -223,12 +223,12 @@ Document the naming and organizational conventions observed across the project: - Case conventions (PascalCase, camelCase, kebab-case) - Prefix and suffix patterns - Type indicators in filenames - + - **Folder Naming Patterns**: - Naming conventions for different folder types - Hierarchical naming patterns - Grouping and categorization conventions - + - **Namespace/Module Patterns**: - How namespaces/modules map to folder structure - Import/using statement organization @@ -252,13 +252,13 @@ Provide guidance for navigating and working with the codebase structure: - How to extend existing functionality - Where to place new tests - Configuration modification locations - + - **Dependency Patterns**: - How dependencies flow between folders - Import/reference patterns - Dependency injection registration locations -${INCLUDE_FILE_COUNTS ? +${INCLUDE_FILE_COUNTS ? "- **Content Statistics**: - Files per directory analysis - Code distribution metrics @@ -271,12 +271,12 @@ Document the build process and output organization: - Build script locations and purposes - Build pipeline organization - Build task definitions - + - **Output Structure**: - Compiled/built output locations - Output organization patterns - Distribution package structure - + - **Environment-Specific Builds**: - Development vs. production differences - Environment configuration strategies @@ -284,7 +284,7 @@ Document the build process and output organization: ### 8. Technology-Specific Organization -${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? "#### .NET-Specific Structure Patterns (if detected) - **Project File Organization**: @@ -292,53 +292,53 @@ ${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? - Target framework configuration - Property group organization - Item group patterns - + - **Assembly Organization**: - Assembly naming patterns - Multi-assembly architecture - Assembly reference patterns - + - **Resource Organization**: - Embedded resource patterns - Localization file structure - Static web asset organization - + - **Package Management**: - NuGet configuration locations - Package reference organization - Package version management" : ""} -${(PROJECT_TYPE == "Java" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "Java" || PROJECT_TYPE == "Auto-detect") ? "#### Java-Specific Structure Patterns (if detected) - **Package Hierarchy**: - Package naming and nesting conventions - Domain vs. technical packages - Visibility and access patterns - + - **Build Tool Organization**: - Maven/Gradle structure patterns - Module organization - Plugin configuration patterns - + - **Resource Organization**: - Resource folder structures - Environment-specific resources - Properties file organization" : ""} -${(PROJECT_TYPE == "Node.js" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "Node.js" || PROJECT_TYPE == "Auto-detect") ? "#### Node.js-Specific Structure Patterns (if detected) - **Module Organization**: - CommonJS vs. ESM organization - Internal module patterns - Third-party dependency management - + - **Script Organization**: - npm/yarn script definition patterns - Utility script locations - Development tool scripts - + - **Configuration Management**: - Configuration file locations - Environment variable management @@ -351,18 +351,18 @@ Document how the project structure is designed to be extended: - How to add new modules/features while maintaining conventions - Plugin/extension folder patterns - Customization directory structures - + - **Scalability Patterns**: - How the structure scales for larger features - Approach for breaking down large modules - Code splitting strategies - + - **Refactoring Patterns**: - Common refactoring approaches observed - How structural changes are managed - Incremental reorganization patterns -${INCLUDE_TEMPLATES ? +${INCLUDE_TEMPLATES ? "### 10. Structure Templates Provide templates for creating new components that follow project conventions: @@ -371,17 +371,17 @@ Provide templates for creating new components that follow project conventions: - Folder structure for adding a complete feature - Required file types and their locations - Naming patterns to follow - + - **New Component Template**: - Directory structure for a typical component - Essential files to include - Integration points with existing structure - + - **New Service Template**: - Structure for adding a new service - Interface and implementation placement - Configuration and registration patterns - + - **New Test Structure**: - Folder structure for test projects/files - Test file organization templates @@ -395,7 +395,7 @@ Document how the project structure is maintained and enforced: - Tools/scripts that enforce structure - Build checks for structural compliance - Linting rules related to structure - + - **Documentation Practices**: - How structural changes are documented - Where architectural decisions are recorded diff --git a/prompts/github-copilot-starter.prompt.md b/prompts/github-copilot-starter.prompt.md index f1fddc3f..eaf2c398 100644 --- a/prompts/github-copilot-starter.prompt.md +++ b/prompts/github-copilot-starter.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' model: Claude Sonnet 4 -tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'fetch'] +tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'web/fetch'] description: 'Set up complete GitHub Copilot configuration for a new project based on technology stack' --- @@ -58,7 +58,7 @@ Create Coding Agent workflow file: - `copilot-setup-steps.yml` - GitHub Actions workflow for Coding Agent environment setup **CRITICAL**: The workflow MUST follow this exact structure: -- Job name MUST be `copilot-setup-steps` +- Job name MUST be `copilot-setup-steps` - Include proper triggers (workflow_dispatch, push, pull_request on the workflow file) - Set appropriate permissions (minimum required) - Customize steps based on the technology stack provided @@ -67,9 +67,9 @@ Create Coding Agent workflow file: For each file, follow these principles: -**MANDATORY FIRST STEP**: Always use the fetch tool to research existing patterns before creating any content: -1. **Fetch from awesome-copilot collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md -2. **Fetch specific instruction files**: https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/[relevant-file].instructions.md +**MANDATORY FIRST STEP**: Always use the web/fetch tool to research existing patterns before creating any content: +1. **web/fetch from awesome-copilot collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md +2. **web/fetch specific instruction files**: https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/[relevant-file].instructions.md 3. **Check for existing patterns** that match the technology stack **Primary Approach**: Reference and adapt existing instructions from awesome-copilot repository: @@ -127,7 +127,7 @@ description: "Java Spring Boot development standards" - ✅ **"Use TypeScript strict mode for better type safety"** - ✅ **"Follow the repository's established error handling patterns"** -**Research Strategy with fetch tool:** +**Research Strategy with web/fetch tool:** 1. **Check awesome-copilot first** - Always start here for ALL file types 2. **Look for exact tech stack matches** (e.g., React, Node.js, Spring Boot) 3. **Look for general matches** (e.g., frontend chatmodes, testing prompts, review modes) @@ -135,15 +135,15 @@ description: "Java Spring Boot development standards" 5. **Adapt community examples** to project needs 6. **Only create custom content** if nothing relevant exists -**Fetch these awesome-copilot directories:** +**web/fetch these awesome-copilot directories:** - **Instructions**: https://github.com/github/awesome-copilot/tree/main/instructions -- **Prompts**: https://github.com/github/awesome-copilot/tree/main/prompts +- **Prompts**: https://github.com/github/awesome-copilot/tree/main/prompts - **Chat Modes**: https://github.com/github/awesome-copilot/tree/main/chatmodes - **Collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md **Awesome-Copilot Collections to Check:** - **Frontend Web Development**: React, Angular, Vue, TypeScript, CSS frameworks -- **C# .NET Development**: Testing, documentation, and best practices +- **C# .NET Development**: Testing, documentation, and best practices - **Java Development**: Spring Boot, Quarkus, testing, documentation - **Database Development**: PostgreSQL, SQL Server, and general database best practices - **Azure Development**: Infrastructure as Code, serverless functions @@ -237,7 +237,7 @@ Requirements for the form: ```yaml --- description: Generate an implementation plan for new features or refactoring existing code. -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] model: Claude Sonnet 4 --- # Planning mode instructions diff --git a/prompts/java-springboot.prompt.md b/prompts/java-springboot.prompt.md index e558feb0..df178ac7 100644 --- a/prompts/java-springboot.prompt.md +++ b/prompts/java-springboot.prompt.md @@ -44,7 +44,7 @@ Your goal is to help me write high-quality Spring Boot applications by following - **Spring Data JPA:** Use Spring Data JPA repositories by extending `JpaRepository` or `CrudRepository` for standard database operations. - **Custom Queries:** For complex queries, use `@Query` or the JPA Criteria API. -- **Projections:** Use DTO projections to fetch only the necessary data from the database. +- **Projections:** Use DTO projections to web/fetch only the necessary data from the database. ## Logging diff --git a/prompts/mcp-create-declarative-agent.prompt.md b/prompts/mcp-create-declarative-agent.prompt.md index 7602a05d..302a7240 100644 --- a/prompts/mcp-create-declarative-agent.prompt.md +++ b/prompts/mcp-create-declarative-agent.prompt.md @@ -146,7 +146,7 @@ The MCP server must provide: ### Tool Selection When importing from MCP: -1. Fetch available tools from server +1. web/fetch available tools from server 2. Select specific tools to include (for security/simplicity) 3. Tool definitions are auto-generated in ai-plugin.json @@ -299,7 +299,7 @@ Then generate: - Ensure mcp.json points to correct server - Verify tools were selected during import - Check ai-plugin.json has correct function definitions -- Re-fetch actions from MCP if server changed +- Re-web/fetch actions from MCP if server changed ### Agent Not Understanding Queries - Review instructions in declarativeAgent.json @@ -307,4 +307,4 @@ Then generate: - Verify response_semantics extract correct data - Test with more specific queries -```` \ No newline at end of file +```` diff --git a/prompts/model-recommendation.prompt.md b/prompts/model-recommendation.prompt.md index bacf0606..b73c8d7a 100644 --- a/prompts/model-recommendation.prompt.md +++ b/prompts/model-recommendation.prompt.md @@ -3,7 +3,7 @@ description: "Analyze chatmode or prompt files and recommend optimal AI models b agent: "agent" tools: - "search/codebase" - - "fetch" + - "web/fetch" - "context7/*" model: Auto (copilot) --- @@ -103,7 +103,7 @@ Identify the primary task category based on content analysis: Based on `tools` in frontmatter and body instructions: -- **Read-only tools** (search, fetch, usages, githubRepo): Lower complexity, faster models suitable +- **Read-only tools** (search, web/fetch, usages, githubRepo): Lower complexity, faster models suitable - **Write operations** (edit/editFiles, new): Moderate complexity, accuracy important - **Execution tools** (runCommands, runTests, runTasks): Validation needs, iterative approach - **Advanced tools** (context7/\*, sequential-thinking/\*): Complex reasoning, premium models beneficial @@ -262,13 +262,13 @@ Verify model capabilities align with specified tools: - If tools include `context7/*` or `sequential-thinking/*`: Recommend advanced reasoning models (Claude Sonnet 4.5, GPT-5, Claude Opus 4.1) - If tools include vision-related references: Ensure model supports images (flag if GPT-5 Codex, Claude Sonnet 4, or mini models selected) -- If tools are read-only (search, fetch): Suggest cost-effective models (GPT-5 mini, Grok Code Fast 1) +- If tools are read-only (search, web/fetch): Suggest cost-effective models (GPT-5 mini, Grok Code Fast 1) ### 5. Context7 Integration for Up-to-Date Information **Leverage Context7 for Model Documentation**: -When uncertainty exists about current model capabilities, use Context7 to fetch latest information: +When uncertainty exists about current model capabilities, use Context7 to web/fetch latest information: ```markdown **Verification with Context7**: @@ -568,7 +568,7 @@ If file specifies a deprecated model: ### Example 4: Free Tier User with Planning Mode **File**: `plan.agent.md` -**Content**: "Research and planning mode with read-only tools (search, fetch, githubRepo)" +**Content**: "Research and planning mode with read-only tools (search, web/fetch, githubRepo)" **Subscription**: Free (2K completions + 50 chat requests/month, 0x models only) **Recommendation**: GPT-4.1 (0x, balanced, included in Free tier) **Alternative**: GPT-5 mini (0x, faster but less context) diff --git a/prompts/playwright-explore-website.prompt.md b/prompts/playwright-explore-website.prompt.md index ad2917f4..e8cc123f 100644 --- a/prompts/playwright-explore-website.prompt.md +++ b/prompts/playwright-explore-website.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Website exploration for testing using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] model: 'Claude Sonnet 4' --- diff --git a/prompts/playwright-generate-test.prompt.md b/prompts/playwright-generate-test.prompt.md index 103195db..1e683caf 100644 --- a/prompts/playwright-generate-test.prompt.md +++ b/prompts/playwright-generate-test.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Generate a Playwright test based on a scenario using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] model: 'Claude Sonnet 4.5' --- diff --git a/prompts/postgresql-optimization.prompt.md b/prompts/postgresql-optimization.prompt.md index 2cc5014a..abde254d 100644 --- a/prompts/postgresql-optimization.prompt.md +++ b/prompts/postgresql-optimization.prompt.md @@ -24,7 +24,7 @@ CREATE TABLE events ( CREATE INDEX idx_events_data_gin ON events USING gin(data); -- JSONB containment and path queries -SELECT * FROM events +SELECT * FROM events WHERE data @> '{"type": "login"}' AND data #>> '{user,role}' = 'admin'; @@ -53,7 +53,7 @@ SELECT array_agg(DISTINCT category) FROM posts, unnest(categories) as category; ### Window Functions & Analytics ```sql -- Advanced window functions -SELECT +SELECT product_id, sale_date, amount, @@ -79,19 +79,19 @@ CREATE TABLE documents ( ); -- Update search vector -UPDATE documents +UPDATE documents SET search_vector = to_tsvector('english', title || ' ' || content); -- GIN index for search performance CREATE INDEX idx_documents_search ON documents USING gin(search_vector); -- Search queries -SELECT * FROM documents +SELECT * FROM documents WHERE search_vector @@ plainto_tsquery('english', 'postgresql database'); -- Ranking results SELECT *, ts_rank(search_vector, plainto_tsquery('postgresql')) as rank -FROM documents +FROM documents WHERE search_vector @@ plainto_tsquery('postgresql') ORDER BY rank DESC; ``` @@ -101,7 +101,7 @@ ORDER BY rank DESC; ### Query Optimization ```sql -- EXPLAIN ANALYZE for performance analysis -EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) +EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id @@ -111,8 +111,8 @@ GROUP BY u.id, u.name; -- Identify slow queries from pg_stat_statements SELECT query, calls, total_time, mean_time, rows, 100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent -FROM pg_stat_statements -ORDER BY total_time DESC +FROM pg_stat_statements +ORDER BY total_time DESC LIMIT 10; ``` @@ -134,13 +134,13 @@ CREATE INDEX idx_orders_covering ON orders(user_id, status) INCLUDE (total, crea ### Connection & Memory Management ```sql -- Check connection usage -SELECT count(*) as connections, state -FROM pg_stat_activity +SELECT count(*) as connections, state +FROM pg_stat_activity GROUP BY state; -- Monitor memory usage -SELECT name, setting, unit -FROM pg_settings +SELECT name, setting, unit +FROM pg_settings WHERE name IN ('shared_buffers', 'work_mem', 'maintenance_work_mem'); ``` @@ -159,7 +159,7 @@ CREATE TYPE address_type AS ( CREATE TYPE order_status AS ENUM ('pending', 'processing', 'shipped', 'delivered', 'cancelled'); -- Use domains for data validation -CREATE DOMAIN email_address AS TEXT +CREATE DOMAIN email_address AS TEXT CHECK (VALUE ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'); -- Table using custom types @@ -182,12 +182,12 @@ CREATE TABLE reservations ( ); -- Range queries -SELECT * FROM reservations +SELECT * FROM reservations WHERE reservation_period && tstzrange('2024-07-20', '2024-07-25'); -- Exclude overlapping ranges -ALTER TABLE reservations -ADD CONSTRAINT no_overlap +ALTER TABLE reservations +ADD CONSTRAINT no_overlap EXCLUDE USING gist (room_id WITH =, reservation_period WITH &&); ``` @@ -203,7 +203,7 @@ CREATE TABLE locations ( ); -- Geometric queries -SELECT name FROM locations +SELECT name FROM locations WHERE coordinates <-> point(40.7128, -74.0060) < 10; -- Within 10 units -- GiST index for geometric data @@ -235,12 +235,12 @@ SELECT pg_size_pretty(pg_database_size(current_database())) as db_size; -- Table and index sizes SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as size -FROM pg_tables +FROM pg_tables ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC; -- Index usage statistics -SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch -FROM pg_stat_user_indexes +SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_web/fetch +FROM pg_stat_user_indexes WHERE idx_scan = 0; -- Unused indexes ``` @@ -258,13 +258,13 @@ WHERE idx_scan = 0; -- Unused indexes ```sql -- Identify slow queries SELECT query, calls, total_time, mean_time, rows -FROM pg_stat_statements -ORDER BY total_time DESC +FROM pg_stat_statements +ORDER BY total_time DESC LIMIT 10; -- Check index usage -SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch -FROM pg_stat_user_indexes +SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_web/fetch +FROM pg_stat_user_indexes WHERE idx_scan = 0; ``` @@ -282,27 +282,27 @@ WHERE idx_scan = 0; SELECT * FROM products ORDER BY id OFFSET 10000 LIMIT 20; -- ✅ GOOD: Cursor-based pagination -SELECT * FROM products -WHERE id > $last_id -ORDER BY id +SELECT * FROM products +WHERE id > $last_id +ORDER BY id LIMIT 20; ``` ### Aggregation ```sql -- ❌ BAD: Inefficient grouping -SELECT user_id, COUNT(*) -FROM orders -WHERE order_date >= '2024-01-01' +SELECT user_id, COUNT(*) +FROM orders +WHERE order_date >= '2024-01-01' GROUP BY user_id; -- ✅ GOOD: Optimized with partial index -CREATE INDEX idx_orders_recent ON orders(user_id) +CREATE INDEX idx_orders_recent ON orders(user_id) WHERE order_date >= '2024-01-01'; -SELECT user_id, COUNT(*) -FROM orders -WHERE order_date >= '2024-01-01' +SELECT user_id, COUNT(*) +FROM orders +WHERE order_date >= '2024-01-01' GROUP BY user_id; ``` @@ -377,7 +377,7 @@ CREATE INDEX idx_table_column ON table(column); ### Window Functions ```sql -- Running totals and rankings -SELECT +SELECT product_id, order_date, amount, @@ -391,11 +391,11 @@ FROM sales; -- Recursive queries for hierarchical data WITH RECURSIVE category_tree AS ( SELECT id, name, parent_id, 1 as level - FROM categories + FROM categories WHERE parent_id IS NULL - + UNION ALL - + SELECT c.id, c.name, c.parent_id, ct.level + 1 FROM categories c JOIN category_tree ct ON c.parent_id = ct.id diff --git a/prompts/prompt-builder.prompt.md b/prompts/prompt-builder.prompt.md index f7e19961..068ac6df 100644 --- a/prompts/prompt-builder.prompt.md +++ b/prompts/prompt-builder.prompt.md @@ -8,7 +8,7 @@ description: 'Guide users through creating high-quality GitHub Copilot prompts w You are an expert prompt engineer specializing in GitHub Copilot prompt development with deep knowledge of: - Prompt engineering best practices and patterns -- VS Code Copilot customization capabilities +- VS Code Copilot customization capabilities - Effective persona design and task specification - Tool integration and front matter configuration - Output format optimization for AI consumption @@ -62,7 +62,7 @@ I will ask you targeted questions to gather all necessary information. After col Which tools does this prompt need? Common options include: - **File Operations**: `codebase`, `editFiles`, `search`, `problems` - **Execution**: `runCommands`, `runTasks`, `runTests`, `terminalLastCommand` -- **External**: `fetch`, `githubRepo`, `openSimpleBrowser` +- **External**: `web/fetch`, `githubRepo`, `openSimpleBrowser` - **Specialized**: `playwright`, `usages`, `vscodeAPI`, `extensions` - **Analysis**: `changes`, `findTestFiles`, `testFailure`, `searchResults` @@ -82,7 +82,7 @@ Which tools does this prompt need? Common options include: Based on analysis of existing prompts, I will ensure your prompt includes: ✅ **Clear Structure**: Well-organized sections with logical flow -✅ **Specific Instructions**: Actionable, unambiguous directions +✅ **Specific Instructions**: Actionable, unambiguous directions ✅ **Proper Context**: All necessary information for task completion ✅ **Tool Integration**: Appropriate tool selection for the task ✅ **Error Handling**: Guidance for edge cases and failures @@ -116,7 +116,7 @@ model: "[only if specific model required]" ## [Instructions Section] [Step-by-step instructions following established patterns] -## [Context/Input Section] +## [Context/Input Section] [Variable usage and context requirements] ## [Output Section] @@ -128,7 +128,7 @@ model: "[only if specific model required]" The generated prompt will follow patterns observed in high-quality prompts like: - **Comprehensive blueprints** (architecture-blueprint-generator) -- **Structured specifications** (create-github-action-workflow-specification) +- **Structured specifications** (create-github-action-workflow-specification) - **Best practice guides** (dotnet-best-practices, csharp-xunit) - **Implementation plans** (create-implementation-plan) - **Code generation** (playwright-generate-test) diff --git a/prompts/structured-autonomy-generate.prompt.md b/prompts/structured-autonomy-generate.prompt.md index e77616df..18d514fc 100644 --- a/prompts/structured-autonomy-generate.prompt.md +++ b/prompts/structured-autonomy-generate.prompt.md @@ -67,7 +67,7 @@ For the entire project described in the master plan, research and gather: - Testing strategies 4. **Official Documentation:** - - Fetch official docs for all major libraries/frameworks + - web/fetch official docs for all major libraries/frameworks - Document APIs, syntax, parameters - Note version-specific details - Record known limitations and gotchas diff --git a/prompts/suggest-awesome-github-copilot-agents.prompt.md b/prompts/suggest-awesome-github-copilot-agents.prompt.md index dc4a14d5..13ed277c 100644 --- a/prompts/suggest-awesome-github-copilot-agents.prompt.md +++ b/prompts/suggest-awesome-github-copilot-agents.prompt.md @@ -1,7 +1,7 @@ --- agent: "agent" description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository." -tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "fetch", "githubRepo", "todos"] +tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "web/fetch", "githubRepo", "todos"] --- # Suggest Awesome GitHub Copilot Custom Agents @@ -10,7 +10,7 @@ Analyze current repository context and suggest relevant Custom Agents files from ## Process -1. **Fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `fetch` tool. +1. **web/fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `web/fetch` tool. 2. **Scan Local Custom Agents**: Discover existing custom agent files in `.github/agents/` folder 3. **Extract Descriptions**: Read front matter from local custom agent files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -20,7 +20,7 @@ Analyze current repository context and suggest relevant Custom Agents files from 8. **Validate**: Ensure suggested agents would add value not already covered by existing agents 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents **AWAIT** user request to proceed with installation of specific custom agents. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md index a3203896..95a59db2 100644 --- a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +++ b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Custom Chat Modes @@ -10,7 +10,7 @@ Analyze current repository context and suggest relevant Custom Chat Modes files ## Process -1. **Fetch Available Custom Chat Modes**: Extract Custom Chat Modes list and descriptions from [awesome-copilot README.chatmodes.md](https://github.com/github/awesome-copilot/blob/main/docs/README.chatmodes.md). Must use `#fetch` tool. +1. **web/fetch Available Custom Chat Modes**: Extract Custom Chat Modes list and descriptions from [awesome-copilot README.chatmodes.md](https://github.com/github/awesome-copilot/blob/main/docs/README.chatmodes.md). Must use `#web/fetch` tool. 2. **Scan Local Custom Chat Modes**: Discover existing custom chat mode files in `.github/agents/` folder 3. **Extract Descriptions**: Read front matter from local custom chat mode files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -20,7 +20,7 @@ Analyze current repository context and suggest relevant Custom Chat Modes files 8. **Validate**: Ensure suggested chatmodes would add value not already covered by existing chatmodes 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom chat modes and similar local custom chat modes **AWAIT** user request to proceed with installation of specific custom chat modes. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested chat modes, automatically download and install individual chat modes to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested chat modes, automatically download and install individual chat modes to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-collections.prompt.md b/prompts/suggest-awesome-github-copilot-collections.prompt.md index 40472aa7..0f82410e 100644 --- a/prompts/suggest-awesome-github-copilot-collections.prompt.md +++ b/prompts/suggest-awesome-github-copilot-collections.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Collections @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant collections from the [Gi ## Process -1. **Fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#fetch` tool. +1. **web/fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#web/fetch` tool. 2. **Scan Local Assets**: Discover existing prompt files in `prompts/`, instruction files in `instructions/`, and chat modes in `agents/` folders 3. **Extract Local Descriptions**: Read front matter from local asset files to understand existing capabilities 4. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs @@ -18,7 +18,7 @@ Analyze current repository context and suggest relevant collections from the [Gi 7. **Present Collection Options**: Display relevant collections with descriptions, item counts, and rationale for suggestion 8. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow **AWAIT** user request to proceed with installation of specific collections. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria @@ -90,7 +90,7 @@ For each suggested collection, break down individual assets: When user confirms a collection installation: -1. **Fetch Collection Manifest**: Get collection YAML from awesome-copilot repository +1. **web/fetch Collection Manifest**: Get collection YAML from awesome-copilot repository 2. **Download Individual Assets**: For each item in collection: - Download raw file content from GitHub - Validate file format and front matter structure @@ -104,7 +104,7 @@ When user confirms a collection installation: ## Requirements -- Use `fetch` tool to get collections data from awesome-copilot repository +- Use `web/fetch` tool to get collections data from awesome-copilot repository - Use `githubRepo` tool to get individual asset content for download - Scan local file system for existing assets in `prompts/`, `instructions/`, and `agents/` directories - Read YAML front matter from local asset files to extract descriptions and capabilities @@ -120,7 +120,7 @@ When user confirms a collection installation: ## Collection Installation Workflow 1. **User Confirms Collection**: User selects specific collection(s) for installation -2. **Fetch Collection Manifest**: Download YAML manifest from awesome-copilot repository +2. **web/fetch Collection Manifest**: Download YAML manifest from awesome-copilot repository 3. **Asset Download Loop**: For each asset in collection: - Download raw content from GitHub repository - Validate file format and structure diff --git a/prompts/suggest-awesome-github-copilot-instructions.prompt.md b/prompts/suggest-awesome-github-copilot-instructions.prompt.md index be06e76e..bcb999a0 100644 --- a/prompts/suggest-awesome-github-copilot-instructions.prompt.md +++ b/prompts/suggest-awesome-github-copilot-instructions.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Instructions @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant copilot-instruction file ## Process -1. **Fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#fetch` tool. +1. **web/fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#web/fetch` tool. 2. **Scan Local Instructions**: Discover existing instruction files in `.github/instructions/` folder 3. **Extract Descriptions**: Read front matter from local instruction files to get descriptions and `applyTo` patterns 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -19,7 +19,7 @@ Analyze current repository context and suggest relevant copilot-instruction file 8. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-prompts.prompt.md b/prompts/suggest-awesome-github-copilot-prompts.prompt.md index ab3a6b11..c17e6b5d 100644 --- a/prompts/suggest-awesome-github-copilot-prompts.prompt.md +++ b/prompts/suggest-awesome-github-copilot-prompts.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Prompts @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant prompt files from the [G ## Process -1. **Fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#fetch` tool. +1. **web/fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#web/fetch` tool. 2. **Scan Local Prompts**: Discover existing prompt files in `.github/prompts/` folder 3. **Extract Descriptions**: Read front matter from local prompt files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -19,7 +19,7 @@ Analyze current repository context and suggest relevant prompt files from the [G 8. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/tldr-prompt.prompt.md b/prompts/tldr-prompt.prompt.md index 479661de..834283f8 100644 --- a/prompts/tldr-prompt.prompt.md +++ b/prompts/tldr-prompt.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create tldr summaries for GitHub Copilot files (prompts, agents, instructions, collections), MCP servers, or documentation from URLs and queries.' -tools: ['fetch', 'search/readFile', 'search', 'search/textSearch'] +tools: ['web/fetch', 'search/readFile', 'search', 'search/textSearch'] model: 'claude-sonnet-4' --- @@ -50,7 +50,7 @@ message specified in the Error Handling section. create tldr summaries for the first 5 and list the remaining files - Recognize file type by extension and use appropriate invocation syntax in examples * **URL** - Link to Copilot file, MCP server documentation, or Copilot documentation - - If one or more URLs are passed without `#fetch`, you MUST apply the fetch tool to all URLs + - If one or more URLs are passed without `#web/fetch`, you MUST apply the web/fetch tool to all URLs - If more than one URL (up to 5), you MUST create a `tldr` for each. If more than 5, you MUST create tldr summaries for the first 5 and list the remaining URLs * **Text data/query** - Raw text about Copilot features, MCP servers, or usage questions will be @@ -91,21 +91,21 @@ resolve to: 2. **Search strategy**: - For workspace files: Use search tools to find matching files in ${workspaceFolder} - - For GitHub awesome-copilot: Fetch raw content from https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/ - - For documentation: Use fetch tool with the most relevant URL from above + - For GitHub awesome-copilot: web/fetch raw content from https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/ + - For documentation: Use web/fetch tool with the most relevant URL from above -3. **Fetch content**: +3. **web/fetch content**: - Workspace files: Read using file tools - - GitHub awesome-copilot files: Fetch using raw.githubusercontent.com URLs - - Documentation URLs: Fetch using fetch tool + - GitHub awesome-copilot files: web/fetch using raw.githubusercontent.com URLs + - Documentation URLs: web/fetch using web/fetch tool 4. **Evaluate and respond**: - - Use the fetched content as the reference for completing the request + - Use the web/fetched content as the reference for completing the request - Adapt response verbosity based on chat context ### Unambiguous Queries -If the user **DOES** provide a specific URL or file, skip searching and fetch/read that directly. +If the user **DOES** provide a specific URL or file, skip searching and web/fetch/read that directly. ### Optional @@ -124,7 +124,7 @@ If the user **DOES** provide a specific URL or file, skip searching and fetch/re /tldr-prompt #file:{{name.collections.md}} # With URLs -/tldr-prompt #fetch {{https://example.com/docs}} +/tldr-prompt #web/fetch {{https://example.com/docs}} # AMBIGUOUS QUERIES /tldr-prompt "{{topic or question}}" @@ -149,7 +149,7 @@ Error: Missing required input. You MUST provide one of the following: 1. A Copilot file: /tldr-prompt #file:{{name.prompt.md | name.agent.md | name.instructions.md | name.collections.md}} -2. A URL: /tldr-prompt #fetch {{https://example.com/docs}} +2. A URL: /tldr-prompt #web/fetch {{https://example.com/docs}} 3. A search query: /tldr-prompt "{{topic}}" (e.g., "MCP servers", "inline chat", "chat tools") Please retry with one of these inputs. @@ -184,7 +184,7 @@ Found: - https://github.com/github/awesome-copilot/blob/main/prompts/java-docs.prompt.md - https://github.com/github/awesome-copilot/blob/main/prompts/java-junit.prompt.md -Now let me fetch the raw content: +Now let me web/fetch the raw content: - https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/prompts/java-docs.prompt.md - https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/prompts/java-junit.prompt.md @@ -212,13 +212,13 @@ I'll read the file typescript-mcp-server-generator.prompt.md and create a tldr s **User** ```bash -/tldr-prompt "How do MCP servers work?" #fetch https://code.visualstudio.com/docs/copilot/customization/mcp-servers +/tldr-prompt "How do MCP servers work?" #web/fetch https://code.visualstudio.com/docs/copilot/customization/mcp-servers ``` **Agent** ```text -I'll fetch the MCP server documentation from https://code.visualstudio.com/docs/copilot/customization/mcp-servers +I'll web/fetch the MCP server documentation from https://code.visualstudio.com/docs/copilot/customization/mcp-servers and create a tldr summary of how MCP servers work. ``` @@ -232,10 +232,10 @@ message from Error Handling section - Determine file type (.prompt.md, .agent.md, .instructions.md, .collections.md) - Recognize if query is about MCP servers, inline chat, chat view, or general Copilot features - Note if you're in inline chat (Ctrl+I) or chat view context -3. **Fetch Content**: +3. **web/fetch Content**: - For files: Read the file(s) using available file tools - - For URLs: Fetch content using `#tool:fetch` - - For queries: Apply URL Resolver strategy to find and fetch relevant content + - For URLs: web/fetch content using `#tool:web/fetch` + - For queries: Apply URL Resolver strategy to find and web/fetch relevant content 4. **Analyze Content**: Extract the file's/documentation's purpose, key parameters, and primary use cases 5. **Generate tldr**: Create summary using the template format below with correct invocation syntax diff --git a/prompts/update-avm-modules-in-bicep.prompt.md b/prompts/update-avm-modules-in-bicep.prompt.md index b603a880..23e67508 100644 --- a/prompts/update-avm-modules-in-bicep.prompt.md +++ b/prompts/update-avm-modules-in-bicep.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update Azure Verified Modules (AVM) to latest versions in Bicep files.' -tools: ['search/codebase', 'think', 'changes', 'fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] +tools: ['search/codebase', 'think', 'changes', 'web/fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] --- # Update Azure Verified Modules in Bicep Files @@ -11,16 +11,16 @@ Update Bicep file `${file}` to use latest Azure Verified Module (AVM) versions. 1. **Scan**: Extract AVM modules and current versions from `${file}` 1. **Identify**: List all unique AVM modules used by matching `avm/res/{service}/{resource}` using `#search` tool -1. **Check**: Use `#fetch` tool to get latest version of each AVM module from MCR: `https://mcr.microsoft.com/v2/bicep/avm/res/{service}/{resource}/tags/list` +1. **Check**: Use `#web/fetch` tool to get latest version of each AVM module from MCR: `https://mcr.microsoft.com/v2/bicep/avm/res/{service}/{resource}/tags/list` 1. **Compare**: Parse semantic versions to identify AVM modules needing update -1. **Review**: For breaking changes, use `#fetch` tool to get docs from: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}` +1. **Review**: For breaking changes, use `#web/fetch` tool to get docs from: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}` 1. **Update**: Apply version updates and parameter changes using `#editFiles` tool 1. **Validate**: Run `bicep lint` and `bicep build` using `#runCommands` tool to ensure compliance. 1. **Output**: Summarize changes in a table format with summary of updates below. ## Tool Usage -Always use tools `#search`, `#searchResults`,`#fetch`, `#editFiles`, `#runCommands`, `#todos` if available. Avoid writing code to perform tasks. +Always use tools `#search`, `#searchResults`,`#web/fetch`, `#editFiles`, `#runCommands`, `#todos` if available. Avoid writing code to perform tasks. ## Breaking Change Policy diff --git a/prompts/update-implementation-plan.prompt.md b/prompts/update-implementation-plan.prompt.md index 3ff01b07..8de4eab8 100644 --- a/prompts/update-implementation-plan.prompt.md +++ b/prompts/update-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Implementation Plan diff --git a/prompts/update-llms.prompt.md b/prompts/update-llms.prompt.md index 0e3f4e21..bbeab69d 100644 --- a/prompts/update-llms.prompt.md +++ b/prompts/update-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update LLMs.txt File diff --git a/prompts/update-markdown-file-index.prompt.md b/prompts/update-markdown-file-index.prompt.md index 8078097a..08f98a67 100644 --- a/prompts/update-markdown-file-index.prompt.md +++ b/prompts/update-markdown-file-index.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update a markdown file section with an index/table of files from a specified folder.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Markdown File Index diff --git a/prompts/update-oo-component-documentation.prompt.md b/prompts/update-oo-component-documentation.prompt.md index c3857e4a..5300f0f7 100644 --- a/prompts/update-oo-component-documentation.prompt.md +++ b/prompts/update-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update existing object-oriented component documentation following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Standard OO Component Documentation diff --git a/prompts/update-specification.prompt.md b/prompts/update-specification.prompt.md index 0f031ae1..15c9f392 100644 --- a/prompts/update-specification.prompt.md +++ b/prompts/update-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Specification diff --git a/prompts/write-coding-standards-from-file.prompt.md b/prompts/write-coding-standards-from-file.prompt.md index 041f5e5e..fba39112 100644 --- a/prompts/write-coding-standards-from-file.prompt.md +++ b/prompts/write-coding-standards-from-file.prompt.md @@ -1,7 +1,7 @@ --- agent: "agent" description: "Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt." -tools: ['createFile', 'editFiles', 'fetch', 'githubRepo', 'search', 'testFailure'] +tools: ['createFile', 'editFiles', 'web/fetch', 'githubRepo', 'search', 'testFailure'] --- # Write Coding Standards From File @@ -10,7 +10,7 @@ Use the existing syntax of the file(s) to establish the standards and style guid ## Rules and Configuration -Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. +Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. Parameters for the prompt have a text definition. There is one required parameter **`${fileName}`**, and several optional parameters **`${folderName}`**, **`${instructions}`**, and any **`[configVariableAsParameter]`**. @@ -21,7 +21,7 @@ Parameters for the prompt have a text definition. There is one required paramete * addToREADMEInsertions = ["atBegin", "middle", "beforeEnd", "bestFitUsingContext"]; - Default to **beforeEnd**. * createNewFile = true; -* fetchStyleURL = true; +* web/fetchStyleURL = true; * findInconsistencies = true; * fixInconsistencies = true; * newFileName = ["CONTRIBUTING.md", "STYLE.md", "CODE_OF_CONDUCT.md", "CODING_STANDARDS.md", "DEVELOPING.md", "CONTRIBUTION_GUIDE.md", "GUIDELINES.md", "PROJECT_STANDARDS.md", "BEST_PRACTICES.md", "HACKING.md"]; @@ -87,10 +87,10 @@ If any of the variable names are passed to prompt as-is, or as a similar but cle * Create a new file using the value, or one of the possible values, from `${newFileName}`. * If true, toggle both `${outputSpecToPrompt}` and `${addToREADME}` to false. -### `${fetchStyleURL} == true` +### `${web/fetchStyleURL} == true` -* Additionally use the data fetched from the links nested under level three heading `### Fetch Links` as context for creating standards, specifications, and styling data for the new file, prompt, or `README.md`. -* For each relevant item in `### Fetch Links`, run `#fetch ${item}`. +* Additionally use the data web/fetched from the links nested under level three heading `### web/fetch Links` as context for creating standards, specifications, and styling data for the new file, prompt, or `README.md`. +* For each relevant item in `### web/fetch Links`, run `#web/fetch ${item}`. ### `${findInconsistencies} == true` @@ -132,11 +132,11 @@ If any of the variable names are passed to prompt as-is, or as a similar but cle * Use the custom prompt, instructions, template, or other data passed as guiding template when composing the data for coding standards. -## **if** `${fetchStyleURL} == true` +## **if** `${web/fetchStyleURL} == true` -Depending on the programming language, for each link in list below, run `#fetch (URL)`, if programming language is `${fileName} == [ Style Guide]`. +Depending on the programming language, for each link in list below, run `#web/fetch (URL)`, if programming language is `${fileName} == [ Style Guide]`. -### Fetch Links +### web/fetch Links - [C Style Guide](https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html) - [C# Style Guide](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions) @@ -222,7 +222,7 @@ Depending on the programming language, for each link in list below, run `#fetch # Style Guide - This document defines the style and conventions used in this project. + This document defines the style and conventions used in this project. All contributions should follow these rules unless otherwise noted. ## 1. General Code Style @@ -310,7 +310,7 @@ Depending on the programming language, for each link in list below, run `#fetch ## 8. Changes to This Guide - Style evolves. + Style evolves. Propose improvements by opening an issue or sending a patch updating this document. ``` -``` \ No newline at end of file +``` From 5afc90e633da52f255abe1fa45da5d2797c8f896 Mon Sep 17 00:00:00 2001 From: Jon Corbin Date: Mon, 12 Jan 2026 14:03:48 -0500 Subject: [PATCH 23/57] Revert "fetch -> web/fetch for everything" This reverts commit ca790b171619f827da54e647dab9a2c4a8a5a1bb. --- agents/accessibility.agent.md | 2 +- agents/aem-frontend-specialist.agent.md | 2 +- agents/bicep-implement.agent.md | 2 +- agents/bicep-plan.agent.md | 2 +- agents/critical-thinking.agent.md | 2 +- agents/csharp-dotnet-janitor.agent.md | 2 +- agents/custom-agent-foundry.agent.md | 2 +- agents/demonstrate-understanding.agent.md | 2 +- agents/dotnet-upgrade.agent.md | 4 +- agents/drupal-expert.agent.md | 74 +++++------ agents/expert-cpp-software-engineer.agent.md | 2 +- agents/gilfoyle.agent.md | 2 +- agents/hlbpa.agent.md | 2 +- agents/laravel-expert-agent.agent.md | 2 +- agents/mentor.agent.md | 2 +- agents/pimcore-expert.agent.md | 46 +++---- agents/principal-software-engineer.agent.md | 2 +- agents/prompt-builder.agent.md | 2 +- .../se-system-architecture-reviewer.agent.md | 2 +- agents/se-technical-writer.agent.md | 2 +- agents/se-ux-ui-designer.agent.md | 2 +- agents/search-ai-optimization-expert.agent.md | 2 +- agents/semantic-kernel-dotnet.agent.md | 2 +- agents/semantic-kernel-python.agent.md | 2 +- agents/shopify-expert.agent.md | 20 +-- agents/simple-app-idea-generator.agent.md | 2 +- agents/software-engineer-agent-v1.agent.md | 2 +- agents/specification.agent.md | 2 +- agents/tech-debt-remediation-plan.agent.md | 2 +- agents/technical-content-evaluator.agent.md | 2 +- agents/voidbeast-gpt41enhanced.agent.md | 8 +- agents/wg-code-alchemist.agent.md | 2 +- agents/wg-code-sentinel.agent.md | 2 +- prompts/add-educational-comments.prompt.md | 6 +- ...architecture-blueprint-generator.prompt.md | 22 ++-- prompts/convert-plaintext-to-md.prompt.md | 10 +- prompts/cosmosdb-datamodeling.prompt.md | 72 +++++------ ...te-architectural-decision-record.prompt.md | 2 +- ...ub-action-workflow-specification.prompt.md | 8 +- prompts/create-implementation-plan.prompt.md | 2 +- prompts/create-llms.prompt.md | 2 +- ...reate-oo-component-documentation.prompt.md | 2 +- prompts/create-specification.prompt.md | 2 +- prompts/create-technical-spike.prompt.md | 6 +- prompts/create-tldr-page.prompt.md | 14 +- prompts/documentation-writer.prompt.md | 2 +- ...er-structure-blueprint-generator.prompt.md | 120 +++++++++--------- prompts/github-copilot-starter.prompt.md | 20 +-- prompts/java-springboot.prompt.md | 2 +- .../mcp-create-declarative-agent.prompt.md | 6 +- prompts/model-recommendation.prompt.md | 10 +- prompts/playwright-explore-website.prompt.md | 2 +- prompts/playwright-generate-test.prompt.md | 2 +- prompts/postgresql-optimization.prompt.md | 76 +++++------ prompts/prompt-builder.prompt.md | 10 +- .../structured-autonomy-generate.prompt.md | 2 +- ...st-awesome-github-copilot-agents.prompt.md | 6 +- ...awesome-github-copilot-chatmodes.prompt.md | 6 +- ...esome-github-copilot-collections.prompt.md | 12 +- ...some-github-copilot-instructions.prompt.md | 6 +- ...t-awesome-github-copilot-prompts.prompt.md | 6 +- prompts/tldr-prompt.prompt.md | 34 ++--- prompts/update-avm-modules-in-bicep.prompt.md | 8 +- prompts/update-implementation-plan.prompt.md | 2 +- prompts/update-llms.prompt.md | 2 +- prompts/update-markdown-file-index.prompt.md | 2 +- ...pdate-oo-component-documentation.prompt.md | 2 +- prompts/update-specification.prompt.md | 2 +- ...write-coding-standards-from-file.prompt.md | 24 ++-- 69 files changed, 360 insertions(+), 360 deletions(-) diff --git a/agents/accessibility.agent.md b/agents/accessibility.agent.md index 69cd49fd..f2bf6d1c 100644 --- a/agents/accessibility.agent.md +++ b/agents/accessibility.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing' model: GPT-4.1 -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Accessibility Expert diff --git a/agents/aem-frontend-specialist.agent.md b/agents/aem-frontend-specialist.agent.md index 7f172aeb..c0964644 100644 --- a/agents/aem-frontend-specialist.agent.md +++ b/agents/aem-frontend-specialist.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration' model: 'GPT-4.1' -tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] +tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] --- # AEM Front-End Specialist diff --git a/agents/bicep-implement.agent.md b/agents/bicep-implement.agent.md index 62c7659f..56c7b350 100644 --- a/agents/bicep-implement.agent.md +++ b/agents/bicep-implement.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as an Azure Bicep Infrastructure as Code coding specialist that creates Bicep templates.' tools: - [ 'edit/editFiles', 'web/fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure as Code coding Specialist diff --git a/agents/bicep-plan.agent.md b/agents/bicep-plan.agent.md index 23c83a05..26e7c885 100644 --- a/agents/bicep-plan.agent.md +++ b/agents/bicep-plan.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as implementation planner for your Azure Bicep Infrastructure as Code task.' tools: - [ 'edit/editFiles', 'web/fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure Planning diff --git a/agents/critical-thinking.agent.md b/agents/critical-thinking.agent.md index 0d056889..4fa9da1e 100644 --- a/agents/critical-thinking.agent.md +++ b/agents/critical-thinking.agent.md @@ -1,6 +1,6 @@ --- description: 'Challenge assumptions and encourage critical thinking to ensure the best possible solution and outcomes.' -tools: ['codebase', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] +tools: ['codebase', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] --- # Critical thinking mode instructions diff --git a/agents/csharp-dotnet-janitor.agent.md b/agents/csharp-dotnet-janitor.agent.md index 3273fc35..a7fd15f3 100644 --- a/agents/csharp-dotnet-janitor.agent.md +++ b/agents/csharp-dotnet-janitor.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # C#/.NET Janitor diff --git a/agents/custom-agent-foundry.agent.md b/agents/custom-agent-foundry.agent.md index 58ebec9a..576d421c 100644 --- a/agents/custom-agent-foundry.agent.md +++ b/agents/custom-agent-foundry.agent.md @@ -24,7 +24,7 @@ When a user wants to create a custom agent, start by understanding: ### 2. Custom Agent Design Principles **Tool Selection Strategy:** -- **Read-only agents** (planning, research, review): Use `['search', 'web/fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` +- **Read-only agents** (planning, research, review): Use `['search', 'fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` - **Implementation agents** (coding, refactoring): Add `['replace_string_in_file', 'multi_replace_string_in_file', 'create_file', 'run_in_terminal']` - **Testing agents**: Include `['run_notebook_cell', 'test_failure', 'run_in_terminal']` - **Deployment agents**: Include `['run_in_terminal', 'create_and_run_task', 'get_errors']` diff --git a/agents/demonstrate-understanding.agent.md b/agents/demonstrate-understanding.agent.md index 49731de4..63dc7644 100644 --- a/agents/demonstrate-understanding.agent.md +++ b/agents/demonstrate-understanding.agent.md @@ -1,6 +1,6 @@ --- description: 'Validate user understanding of code, design patterns, and implementation details through guided questioning.' -tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Demonstrate Understanding mode instructions diff --git a/agents/dotnet-upgrade.agent.md b/agents/dotnet-upgrade.agent.md index c92f8fde..fe6472c3 100644 --- a/agents/dotnet-upgrade.agent.md +++ b/agents/dotnet-upgrade.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'web/fetch', 'microsoft.docs.mcp'] +tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'fetch', 'microsoft.docs.mcp'] --- # .NET Upgrade Collection @@ -20,7 +20,7 @@ Discover and plan your .NET upgrade journey! mode: dotnet-upgrade title: Analyze current .NET framework versions and create upgrade plan --- -Analyze the repository and list each project's current TargetFramework +Analyze the repository and list each project's current TargetFramework along with the latest available LTS version from Microsoft's release schedule. Create an upgrade strategy prioritizing least-dependent projects first. ``` diff --git a/agents/drupal-expert.agent.md b/agents/drupal-expert.agent.md index 7f9d5554..2555266f 100644 --- a/agents/drupal-expert.agent.md +++ b/agents/drupal-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for Drupal development, architecture, and best practices using PHP 8.3+ and modern Drupal patterns' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] --- # Drupal Expert @@ -157,11 +157,11 @@ use Drupal\Core\Entity\EntityTypeManagerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; class DecoratedEntityTypeManager implements EntityTypeManagerInterface { - + public function __construct( protected EntityTypeManagerInterface $entityTypeManager ) {} - + // Implement all interface methods, delegating to wrapped service // Add custom logic where needed } @@ -190,17 +190,17 @@ use Symfony\Component\HttpKernel\Event\RequestEvent; use Symfony\Component\HttpKernel\KernelEvents; class MyModuleSubscriber implements EventSubscriberInterface { - + public function __construct( protected RouteMatchInterface $routeMatch ) {} - + public static function getSubscribedEvents(): array { return [ KernelEvents::REQUEST => ['onRequest', 100], ]; } - + public function onRequest(RequestEvent $event): void { // Custom logic on every request } @@ -222,7 +222,7 @@ use Drupal\Component\Annotation\Plugin; * @Annotation */ class CustomProcessor extends Plugin { - + public string $id; public string $label; public string $description = ''; @@ -263,7 +263,7 @@ use Drupal\Core\Queue\QueueWorkerBase; * ) */ class MyModuleProcessor extends QueueWorkerBase { - + public function processItem($data): void { // Process queue item } @@ -322,10 +322,10 @@ use Drupal\Core\Field\BaseFieldDefinition; * ) */ class Product extends ContentEntityBase { - + public static function baseFieldDefinitions(EntityTypeInterface $entity_type): array { $fields = parent::baseFieldDefinitions($entity_type); - + $fields['name'] = BaseFieldDefinition::create('string') ->setLabel(t('Name')) ->setRequired(TRUE) @@ -335,7 +335,7 @@ class Product extends ContentEntityBase { ]) ->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('view', TRUE); - + $fields['price'] = BaseFieldDefinition::create('decimal') ->setLabel(t('Price')) ->setSetting('precision', 10) @@ -346,15 +346,15 @@ class Product extends ContentEntityBase { ]) ->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('view', TRUE); - + $fields['created'] = BaseFieldDefinition::create('created') ->setLabel(t('Created')) ->setDescription(t('The time that the entity was created.')); - + $fields['changed'] = BaseFieldDefinition::create('changed') ->setLabel(t('Changed')) ->setDescription(t('The time that the entity was last edited.')); - + return $fields; } } @@ -383,7 +383,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * ) */ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInterface { - + public function __construct( array $configuration, $plugin_id, @@ -392,7 +392,7 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt ) { parent::__construct($configuration, $plugin_id, $plugin_definition); } - + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition): self { return new self( $configuration, @@ -401,13 +401,13 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt $container->get('entity_type.manager') ); } - + public function defaultConfiguration(): array { return [ 'count' => 5, ] + parent::defaultConfiguration(); } - + public function blockForm($form, FormStateInterface $form_state): array { $form['count'] = [ '#type' => 'number', @@ -418,23 +418,23 @@ class RecentProductsBlock extends BlockBase implements ContainerFactoryPluginInt ]; return $form; } - + public function blockSubmit($form, FormStateInterface $form_state): void { $this->configuration['count'] = $form_state->getValue('count'); } - + public function build(): array { $count = $this->configuration['count']; - + $storage = $this->entityTypeManager->getStorage('product'); $query = $storage->getQuery() ->accessCheck(TRUE) ->sort('created', 'DESC') ->range(0, $count); - + $ids = $query->execute(); $products = $storage->loadMultiple($ids); - + return [ '#theme' => 'item_list', '#items' => array_map( @@ -467,9 +467,9 @@ use Psr\Log\LoggerInterface; * Service for managing products. */ class ProductManager { - + protected LoggerInterface $logger; - + public function __construct( protected EntityTypeManagerInterface $entityTypeManager, protected ConfigFactoryInterface $configFactory, @@ -477,7 +477,7 @@ class ProductManager { ) { $this->logger = $loggerFactory->get('mymodule'); } - + /** * Creates a new product. * @@ -492,13 +492,13 @@ class ProductManager { $product = $this->entityTypeManager ->getStorage('product') ->create($values); - + $product->save(); - + $this->logger->info('Product created: @name', [ '@name' => $product->label(), ]); - + return $product; } catch (\Exception $e) { @@ -537,23 +537,23 @@ use Symfony\Component\DependencyInjection\ContainerInterface; * Returns responses for My Module routes. */ class ProductController extends ControllerBase { - + public function __construct( protected ProductManager $productManager ) {} - + public static function create(ContainerInterface $container): self { return new self( $container->get('mymodule.product_manager') ); } - + /** * Displays a list of products. */ public function list(): array { $products = $this->productManager->getRecentProducts(10); - + return [ '#theme' => 'mymodule_product_list', '#products' => $products, @@ -594,15 +594,15 @@ use Drupal\mymodule\Entity\Product; * @group mymodule */ class ProductTest extends KernelTestBase { - + protected static $modules = ['mymodule', 'user', 'system']; - + protected function setUp(): void { parent::setUp(); $this->installEntitySchema('product'); $this->installEntitySchema('user'); } - + /** * Tests product creation. */ @@ -612,7 +612,7 @@ class ProductTest extends KernelTestBase { 'price' => 99.99, ]); $product->save(); - + $this->assertNotEmpty($product->id()); $this->assertEquals('Test Product', $product->label()); $this->assertEquals(99.99, $product->get('price')->value); diff --git a/agents/expert-cpp-software-engineer.agent.md b/agents/expert-cpp-software-engineer.agent.md index 7050cde3..cbb1596f 100644 --- a/agents/expert-cpp-software-engineer.agent.md +++ b/agents/expert-cpp-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide expert C++ software engineering guidance using modern C++ and industry best practices.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] --- # Expert C++ software engineer mode instructions diff --git a/agents/gilfoyle.agent.md b/agents/gilfoyle.agent.md index 269614c0..2ffd7fff 100644 --- a/agents/gilfoyle.agent.md +++ b/agents/gilfoyle.agent.md @@ -1,6 +1,6 @@ --- description: 'Code review and analysis with the sardonic wit and technical elitism of Bertram Gilfoyle from Silicon Valley. Prepare for brutal honesty about your code.' -tools: ['changes', 'codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] --- # Gilfoyle Code Review Mode diff --git a/agents/hlbpa.agent.md b/agents/hlbpa.agent.md index cdedf3c9..decdfe6c 100644 --- a/agents/hlbpa.agent.md +++ b/agents/hlbpa.agent.md @@ -5,7 +5,7 @@ tools: - 'search/codebase' - 'changes' - 'edit/editFiles' - - 'web/fetch' + - 'fetch' - 'findTestFiles' - 'githubRepo' - 'runCommands' diff --git a/agents/laravel-expert-agent.agent.md b/agents/laravel-expert-agent.agent.md index 8badba2e..c066d7c1 100644 --- a/agents/laravel-expert-agent.agent.md +++ b/agents/laravel-expert-agent.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Laravel development assistant specializing in modern Laravel 12+ applications with Eloquent, Artisan, testing, and best practices' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems', 'search'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems', 'search'] --- # Laravel Expert Agent diff --git a/agents/mentor.agent.md b/agents/mentor.agent.md index c6531ad6..69cb457d 100644 --- a/agents/mentor.agent.md +++ b/agents/mentor.agent.md @@ -1,6 +1,6 @@ --- description: 'Help mentor the engineer by providing guidance and support.' -tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Mentor mode instructions diff --git a/agents/pimcore-expert.agent.md b/agents/pimcore-expert.agent.md index 3d941dea..8e915e3b 100644 --- a/agents/pimcore-expert.agent.md +++ b/agents/pimcore-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Pimcore development assistant specializing in CMS, DAM, PIM, and E-Commerce solutions with Symfony integration' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] --- # Pimcore Expert @@ -252,7 +252,7 @@ class Car extends CarGenerated */ public function getOSName(): ?string { - return ($this->getManufacturer() ? ($this->getManufacturer()->getName() . ' ') : null) + return ($this->getManufacturer() ? ($this->getManufacturer()->getName() . ' ') : null) . $this->getName(); } @@ -271,7 +271,7 @@ class Car extends CarGenerated /** * Get all additional product images - * + * * @return Hotspotimage[] */ public function getAdditionalImages(): array @@ -306,7 +306,7 @@ class Car extends CarGenerated /** * Get color variants for this product - * + * * @return self[] */ public function getColorVariants(): array @@ -319,7 +319,7 @@ class Car extends CarGenerated $variants = []; foreach ($parent->getChildren() as $sibling) { - if ($sibling instanceof self && + if ($sibling instanceof self && $sibling->getObjectType() === self::OBJECT_TYPE_ACTUAL_CAR) { $variants[] = $sibling; } @@ -411,7 +411,7 @@ class ProductController extends FrontendController ProductLinkGenerator $productLinkGenerator ): Response { $term = trim(strip_tags($request->query->get('term', ''))); - + if (empty($term)) { return $this->json([]); } @@ -491,19 +491,19 @@ class ProductGrid extends AbstractTemplateAreabrick public function action(Info $info): ?Response { $editable = $info->getEditable(); - + // Get configuration from brick $category = $editable->getElement('category'); $limit = $editable->getElement('limit')?->getData() ?? 12; - + // Load products (simplified - use proper service in production) $products = []; if ($category) { // Load products from category } - + $info->setParam('products', $products); - + return null; } } @@ -527,13 +527,13 @@ class ProductGrid extends AbstractTemplateAreabrick ], 'width': 200 }) }} - + {{ pimcore_numeric('limit', { 'width': 100, 'minValue': 1, 'maxValue': 24 }) }} - + {{ pimcore_manyToManyObjectRelation('category', { 'types': ['object'], 'classes': ['Category'], @@ -549,17 +549,17 @@ class ProductGrid extends AbstractTemplateAreabrick
{% if product.mainImage %} - {{ product.OSName }} {% endif %} - +

{{ product.OSName }}

- +
{{ product.OSPrice|number_format(2, '.', ',') }} EUR
@@ -699,16 +699,16 @@ pimcore_ecommerce_framework: enabled: true config_id: default_mysql worker_id: default - + # Pricing configuration pricing_manager: enabled: true pricing_manager_id: default - + # Cart configuration cart: factory_type: Pimcore\Bundle\EcommerceFrameworkBundle\CartManager\CartFactory - + # Checkout configuration checkout_manager: factory_type: Pimcore\Bundle\EcommerceFrameworkBundle\CheckoutManager\CheckoutManagerFactory @@ -716,17 +716,17 @@ pimcore_ecommerce_framework: default: payment: provider: Datatrans - + # Order manager order_manager: enabled: true - + # Price systems price_systems: default: price_system: id: Pimcore\Bundle\EcommerceFrameworkBundle\PriceSystem\AttributePriceSystem - + # Availability systems availability_systems: default: @@ -765,7 +765,7 @@ class ImportProductsCommand extends AbstractCommand // Load data from source $products = $this->loadProductData(); - + $progressBar = $io->createProgressBar(count($products)); $progressBar->start(); @@ -794,7 +794,7 @@ class ImportProductsCommand extends AbstractCommand private function importProduct(array $data): void { $product = Car::getByPath('/products/' . $data['sku']); - + if (!$product) { $product = new Car(); $product->setParent(Car::getByPath('/products')); diff --git a/agents/principal-software-engineer.agent.md b/agents/principal-software-engineer.agent.md index 68875d4c..82056fc4 100644 --- a/agents/principal-software-engineer.agent.md +++ b/agents/principal-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Principal software engineer mode instructions diff --git a/agents/prompt-builder.agent.md b/agents/prompt-builder.agent.md index 5e1a76ef..cb34c06e 100644 --- a/agents/prompt-builder.agent.md +++ b/agents/prompt-builder.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert prompt engineering and validation system for creating high-quality prompts - Brought to you by microsoft/edge-ai' -tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] +tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] --- # Prompt Builder Instructions diff --git a/agents/se-system-architecture-reviewer.agent.md b/agents/se-system-architecture-reviewer.agent.md index 7ac77dec..3942b3e8 100644 --- a/agents/se-system-architecture-reviewer.agent.md +++ b/agents/se-system-architecture-reviewer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Architect' description: 'System architecture review specialist with Well-Architected frameworks, design validation, and scalability analysis for AI and distributed systems' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] --- # System Architecture Reviewer diff --git a/agents/se-technical-writer.agent.md b/agents/se-technical-writer.agent.md index 5b4e8ed7..4fcda734 100644 --- a/agents/se-technical-writer.agent.md +++ b/agents/se-technical-writer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Tech Writer' description: 'Technical writing specialist for creating developer documentation, technical blogs, tutorials, and educational content' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] --- # Technical Writer diff --git a/agents/se-ux-ui-designer.agent.md b/agents/se-ux-ui-designer.agent.md index d1ee41aa..6b144a95 100644 --- a/agents/se-ux-ui-designer.agent.md +++ b/agents/se-ux-ui-designer.agent.md @@ -2,7 +2,7 @@ name: 'SE: UX Designer' description: 'Jobs-to-be-Done analysis, user journey mapping, and UX research artifacts for Figma and design workflows' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] --- # UX/UI Designer diff --git a/agents/search-ai-optimization-expert.agent.md b/agents/search-ai-optimization-expert.agent.md index 123fb7a8..50dd32f1 100644 --- a/agents/search-ai-optimization-expert.agent.md +++ b/agents/search-ai-optimization-expert.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert guidance for modern search optimization: SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) with AI-ready content strategies' -tools: ['codebase', 'web/fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] +tools: ['codebase', 'fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] --- # Search & AI Optimization Expert diff --git a/agents/semantic-kernel-dotnet.agent.md b/agents/semantic-kernel-dotnet.agent.md index a93dfc71..02efb99f 100644 --- a/agents/semantic-kernel-dotnet.agent.md +++ b/agents/semantic-kernel-dotnet.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the .NET version of Semantic Kernel.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Semantic Kernel .NET mode instructions diff --git a/agents/semantic-kernel-python.agent.md b/agents/semantic-kernel-python.agent.md index eb680ddc..39fb04b7 100644 --- a/agents/semantic-kernel-python.agent.md +++ b/agents/semantic-kernel-python.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the Python version of Semantic Kernel.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] --- # Semantic Kernel Python mode instructions diff --git a/agents/shopify-expert.agent.md b/agents/shopify-expert.agent.md index 1ef3e7b9..8b5cb4f3 100644 --- a/agents/shopify-expert.agent.md +++ b/agents/shopify-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Shopify development assistant specializing in theme development, Liquid templating, app development, and Shopify APIs' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] --- # Shopify Expert @@ -452,10 +452,10 @@ class CartManager {

${item.product_title}

${item.variant_title}

${this.formatMoney(item.final_line_price)}

- @@ -561,23 +561,23 @@ import { json } from "@remix-run/node"; export async function loader({ request }) { const url = new URL(request.url); const shop = url.searchParams.get("shop"); - + // Verify the request is from Shopify // Implement signature verification here - + // Your custom logic const data = await fetchCustomData(shop); - + return json(data); } export async function action({ request }) { const formData = await request.formData(); const shop = formData.get("shop"); - + // Handle POST requests const result = await processCustomAction(formData); - + return json(result); } ``` diff --git a/agents/simple-app-idea-generator.agent.md b/agents/simple-app-idea-generator.agent.md index 91332d41..970703a3 100644 --- a/agents/simple-app-idea-generator.agent.md +++ b/agents/simple-app-idea-generator.agent.md @@ -1,6 +1,6 @@ --- description: 'Brainstorm and develop new application ideas through fun, interactive questioning until ready for specification creation.' -tools: ['changes', 'codebase', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] +tools: ['changes', 'codebase', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] --- # Idea Generator mode instructions diff --git a/agents/software-engineer-agent-v1.agent.md b/agents/software-engineer-agent-v1.agent.md index b4b7bafc..39cfe17b 100644 --- a/agents/software-engineer-agent-v1.agent.md +++ b/agents/software-engineer-agent-v1.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert-level software engineering agent. Deliver production-ready, maintainable code. Execute systematically and specification-driven. Document comprehensively. Operate autonomously and adaptively.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Software Engineer Agent v1 diff --git a/agents/specification.agent.md b/agents/specification.agent.md index b120dfe5..8ae88d58 100644 --- a/agents/specification.agent.md +++ b/agents/specification.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate or update specification documents for new or existing functionality.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Specification mode instructions diff --git a/agents/tech-debt-remediation-plan.agent.md b/agents/tech-debt-remediation-plan.agent.md index 6941896c..5e96c3c2 100644 --- a/agents/tech-debt-remediation-plan.agent.md +++ b/agents/tech-debt-remediation-plan.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate technical debt remediation plans for code, tests, and documentation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Technical Debt Remediation Plan diff --git a/agents/technical-content-evaluator.agent.md b/agents/technical-content-evaluator.agent.md index 63237549..a3bad60f 100644 --- a/agents/technical-content-evaluator.agent.md +++ b/agents/technical-content-evaluator.agent.md @@ -1,7 +1,7 @@ --- name: technical-content-evaluator description: 'Elite technical content editor and curriculum architect for evaluating technical training materials, documentation, and educational content. Reviews for technical accuracy, pedagogical excellence, content flow, code validation, and ensures A-grade quality standards.' -tools: ['edit', 'search', 'shell', 'web/fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] +tools: ['edit', 'search', 'shell', 'fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] model: Claude Sonnet 4.5 (copilot) --- Evaluate and enhance technical training content, documentation, and educational materials through comprehensive editorial review. Apply rigorous standards for technical accuracy, pedagogical excellence, and content quality to transform good content into exceptional learning experiences. diff --git a/agents/voidbeast-gpt41enhanced.agent.md b/agents/voidbeast-gpt41enhanced.agent.md index f9cae472..0a633efc 100644 --- a/agents/voidbeast-gpt41enhanced.agent.md +++ b/agents/voidbeast-gpt41enhanced.agent.md @@ -1,6 +1,6 @@ --- description: '4.1 voidBeast_GPT41Enhanced 1.0 : a advanced autonomous developer agent, designed for elite full-stack development with enhanced multi-mode capabilities. This latest evolution features sophisticated mode detection, comprehensive research capabilities, and never-ending problem resolution. Plan/Act/Deep Research/Analyzer/Checkpoints(Memory)/Prompt Generator Modes.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] --- # voidBeast_GPT41Enhanced 1.0 - Elite Developer AI Assistant @@ -48,7 +48,7 @@ After **every** file modification, you MUST: **Output**: Comprehensive plan via `plan_mode_response` **Rule**: NO code writing in this mode -### ⚡ ACT MODE +### ⚡ ACT MODE **Purpose**: Execute approved plans and implement solutions **Tools**: All tools available for coding, testing, and deployment **Output**: Working solution via `attempt_completion` @@ -91,7 +91,7 @@ After **every** file modification, you MUST: ### 🤖 PROMPT GENERATOR MODE **Triggers**: "generate", "create", "develop", "build" (when requesting content creation) -**Critical Rules**: +**Critical Rules**: - Your knowledge is outdated - MUST verify everything with current web sources - **DO NOT CODE DIRECTLY** - Generate research-backed prompts first - **MANDATORY RESEARCH PHASE** before any implementation @@ -124,7 +124,7 @@ After **every** file modification, you MUST: ### 🔍 Investigation & Analysis `codebase` `search` `searchResults` `usages` `findTestFiles` -### 📝 File Operations +### 📝 File Operations `editFiles` `new` `readCellOutput` ### 🧪 Development & Testing diff --git a/agents/wg-code-alchemist.agent.md b/agents/wg-code-alchemist.agent.md index 000cd749..a41eeb0a 100644 --- a/agents/wg-code-alchemist.agent.md +++ b/agents/wg-code-alchemist.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Alchemist to transform your code with Clean Code principles and SOLID design' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Alchemist, an expert software engineer specializing in Clean Code practices and SOLID principles. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/agents/wg-code-sentinel.agent.md b/agents/wg-code-sentinel.agent.md index bd59a600..adafd2af 100644 --- a/agents/wg-code-sentinel.agent.md +++ b/agents/wg-code-sentinel.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Sentinel to review your code for security issues.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Sentinel, an expert security reviewer specializing in identifying and mitigating code vulnerabilities. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/prompts/add-educational-comments.prompt.md b/prompts/add-educational-comments.prompt.md index be749106..2469d180 100644 --- a/prompts/add-educational-comments.prompt.md +++ b/prompts/add-educational-comments.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.' -tools: ['edit/editFiles', 'web/fetch', 'todos'] +tools: ['edit/editFiles', 'fetch', 'todos'] --- # Add Educational Comments @@ -83,7 +83,7 @@ You are an expert educator and technical writer. You can explain programming top - **Educational Level** (`1-3`): Familiarity with the specific language or framework (default `1`). - **Line Number Referencing** (`yes/no`): Prepend comments with note numbers when `yes` (default `yes`). - **Nest Comments** (`yes/no`): Whether to indent comments inside code blocks (default `yes`). -- **web/fetch List**: Optional URLs for authoritative references. +- **Fetch List**: Optional URLs for authoritative references. If a configurable element is missing, use the default value. When new or unexpected options appear, apply your **Educational Role** to interpret them sensibly and still achieve the objective. @@ -97,7 +97,7 @@ If a configurable element is missing, use the default value. When new or unexpec - Educational Level = 1 - Line Number Referencing = yes - Nest Comments = yes -- web/fetch List: +- Fetch List: - ## Examples diff --git a/prompts/architecture-blueprint-generator.prompt.md b/prompts/architecture-blueprint-generator.prompt.md index 1b60ad3e..038852f1 100644 --- a/prompts/architecture-blueprint-generator.prompt.md +++ b/prompts/architecture-blueprint-generator.prompt.md @@ -25,7 +25,7 @@ ${FOCUS_ON_EXTENSIBILITY=true|false} C[Job 2] C --> D[Job 3] D --> E[End] - + B --> F[Parallel Job] F --> D - + style A fill:#e1f5fe style E fill:#e8f5e8 ``` @@ -259,7 +259,7 @@ graph TD subgraph "Build Phase" A[Lint] --> B[Test] --> C[Build] end - subgraph "Deploy Phase" + subgraph "Deploy Phase" D[Staging] --> E[Production] end C --> D diff --git a/prompts/create-implementation-plan.prompt.md b/prompts/create-implementation-plan.prompt.md index ffc0bc0f..e6ed3b11 100644 --- a/prompts/create-implementation-plan.prompt.md +++ b/prompts/create-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Implementation Plan diff --git a/prompts/create-llms.prompt.md b/prompts/create-llms.prompt.md index c9e5e58f..95f661c6 100644 --- a/prompts/create-llms.prompt.md +++ b/prompts/create-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create LLMs.txt File from Repository Structure diff --git a/prompts/create-oo-component-documentation.prompt.md b/prompts/create-oo-component-documentation.prompt.md index 33bb0cf9..1042534d 100644 --- a/prompts/create-oo-component-documentation.prompt.md +++ b/prompts/create-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Generate Standard OO Component Documentation diff --git a/prompts/create-specification.prompt.md b/prompts/create-specification.prompt.md index 08093e04..664e695e 100644 --- a/prompts/create-specification.prompt.md +++ b/prompts/create-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new specification file for the solution, optimized for Generative AI consumption.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Specification diff --git a/prompts/create-technical-spike.prompt.md b/prompts/create-technical-spike.prompt.md index bd9f63c7..aa7162ec 100644 --- a/prompts/create-technical-spike.prompt.md +++ b/prompts/create-technical-spike.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.' -tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] +tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] --- # Create Technical Spike Document @@ -203,7 +203,7 @@ Use descriptive, kebab-case names that indicate the category and specific unknow ### Phase 1: Information Gathering -1. **Search existing documentation** using search/web/fetch tools +1. **Search existing documentation** using search/fetch tools 2. **Analyze codebase** for existing patterns and constraints 3. **Research external resources** (APIs, libraries, examples) @@ -222,7 +222,7 @@ Use descriptive, kebab-case names that indicate the category and specific unknow ## Tools Usage - **search/searchResults:** Research existing solutions and documentation -- **web/fetch/githubRepo:** Analyze external APIs, libraries, and examples +- **fetch/githubRepo:** Analyze external APIs, libraries, and examples - **codebase:** Understand existing system constraints and patterns - **runTasks:** Execute prototypes and validation tests - **editFiles:** Update research progress and findings diff --git a/prompts/create-tldr-page.prompt.md b/prompts/create-tldr-page.prompt.md index 6fea9f27..03a0f93f 100644 --- a/prompts/create-tldr-page.prompt.md +++ b/prompts/create-tldr-page.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a tldr page from documentation URLs and command examples, requiring both URL and command name.' -tools: ['edit/createFile', 'web/fetch'] +tools: ['edit/createFile', 'fetch'] --- # Create TLDR Page @@ -25,9 +25,9 @@ clear, example-driven command references. * **Command** - The name of the command or tool (e.g., `git`, `nmcli`, `distrobox-create`) * **URL** - Link to authoritative upstream documentation - - If one or more URLs are passed without a preceding `#web/fetch`, apply #tool:web/fetch to the first URL + - If one or more URLs are passed without a preceding `#fetch`, apply #tool:fetch to the first URL - If ${file} is provided in lieu of a URL, and ${file} has a relevant URL to **command**, then use - the data from the file as if web/fetched from the URL; use the URL extracted from the file when + the data from the file as if fetched from the URL; use the URL extracted from the file when creating the `tldr` page - If more than one URL is in the file, prompt for which URL should be used for the `tldr` page @@ -48,7 +48,7 @@ the command. ### Syntax ```bash -/create-tldr-page #web/fetch [text data] [context file] +/create-tldr-page #fetch [text data] [context file] ``` ### Error Handling @@ -64,7 +64,7 @@ the command. **Agent** ```text -I'll web/fetch the URL and analyze the documentation. +I'll fetch the URL and analyze the documentation. From the data extracted, I assume the command is `some-command`. Is this correct? (yes/no) ``` @@ -123,7 +123,7 @@ Use this template structure when creating tldr pages: ### Reference Examples -You MAY web/fetch these example tldr pages to understand the proper format and style: +You MAY fetch these example tldr pages to understand the proper format and style: * [git](https://raw.githubusercontent.com/jhauga/tldr/refs/heads/main/pages/common/git.md) * [distrobox-create](https://raw.githubusercontent.com/jhauga/tldr/refs/heads/main/pages/linux/distrobox-create.md) @@ -134,7 +134,7 @@ You MAY web/fetch these example tldr pages to understand the proper format and s **User** ```bash -/create-tldr-page #web/fetch https://git-scm.com/docs/git git +/create-tldr-page #fetch https://git-scm.com/docs/git git ``` **Agent** diff --git a/prompts/documentation-writer.prompt.md b/prompts/documentation-writer.prompt.md index 7b97cc99..88c71ad3 100644 --- a/prompts/documentation-writer.prompt.md +++ b/prompts/documentation-writer.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -tools: ['edit/editFiles', 'search', 'web/web/fetch'] +tools: ['edit/editFiles', 'search', 'web/fetch'] description: 'Diátaxis Documentation Expert. An expert technical writer specializing in creating high-quality software documentation, guided by the principles and structure of the Diátaxis technical documentation authoring framework.' --- diff --git a/prompts/folder-structure-blueprint-generator.prompt.md b/prompts/folder-structure-blueprint-generator.prompt.md index 4910eba5..3afce155 100644 --- a/prompts/folder-structure-blueprint-generator.prompt.md +++ b/prompts/folder-structure-blueprint-generator.prompt.md @@ -7,34 +7,34 @@ agent: 'agent' ## Configuration Variables -${PROJECT_TYPE="Auto-detect|.NET|Java|React|Angular|Python|Node.js|Flutter|Other"} +${PROJECT_TYPE="Auto-detect|.NET|Java|React|Angular|Python|Node.js|Flutter|Other"} -${INCLUDES_MICROSERVICES="Auto-detect|true|false"} +${INCLUDES_MICROSERVICES="Auto-detect|true|false"} -${INCLUDES_FRONTEND="Auto-detect|true|false"} +${INCLUDES_FRONTEND="Auto-detect|true|false"} -${IS_MONOREPO="Auto-detect|true|false"} +${IS_MONOREPO="Auto-detect|true|false"} -${VISUALIZATION_STYLE="ASCII|Markdown List|Table"} +${VISUALIZATION_STYLE="ASCII|Markdown List|Table"} -${DEPTH_LEVEL=1-5} +${DEPTH_LEVEL=1-5} -${INCLUDE_FILE_COUNTS=true|false} +${INCLUDE_FILE_COUNTS=true|false} -${INCLUDE_GENERATED_FOLDERS=true|false} +${INCLUDE_GENERATED_FOLDERS=true|false} -${INCLUDE_FILE_PATTERNS=true|false} +${INCLUDE_FILE_PATTERNS=true|false} -${INCLUDE_TEMPLATES=true|false} +${INCLUDE_TEMPLATES=true|false} ## Generated Prompt @@ -43,7 +43,7 @@ ${INCLUDE_TEMPLATES=true|false} ### Initial Auto-detection Phase -${PROJECT_TYPE == "Auto-detect" ? +${PROJECT_TYPE == "Auto-detect" ? "Begin by scanning the folder structure for key files that identify the project type: - Look for solution/project files (.sln, .csproj, .fsproj, .vbproj) to identify .NET projects - Check for build files (pom.xml, build.gradle, settings.gradle) for Java projects @@ -51,17 +51,17 @@ ${PROJECT_TYPE == "Auto-detect" ? - Look for specific framework files (angular.json, react-scripts entries, next.config.js) - Check for Python project identifiers (requirements.txt, setup.py, pyproject.toml) - Examine mobile app identifiers (pubspec.yaml, android/ios folders) -- Note all technology signatures found and their versions" : +- Note all technology signatures found and their versions" : "Focus analysis on ${PROJECT_TYPE} project structure"} -${IS_MONOREPO == "Auto-detect" ? +${IS_MONOREPO == "Auto-detect" ? "Determine if this is a monorepo by looking for: - Multiple distinct projects with their own configuration files - Workspace configuration files (lerna.json, nx.json, turborepo.json, etc.) - Cross-project references and shared dependency patterns - Root-level orchestration scripts and configuration" : ""} -${INCLUDES_MICROSERVICES == "Auto-detect" ? +${INCLUDES_MICROSERVICES == "Auto-detect" ? "Check for microservices architecture indicators: - Multiple service directories with similar/repeated structures - Service-specific Dockerfiles or deployment configurations @@ -70,7 +70,7 @@ ${INCLUDES_MICROSERVICES == "Auto-detect" ? - API gateway configuration files - Shared libraries or utilities across services" : ""} -${INCLUDES_FRONTEND == "Auto-detect" ? +${INCLUDES_FRONTEND == "Auto-detect" ? "Identify frontend components by looking for: - Web asset directories (wwwroot, public, dist, static) - UI framework files (components, modules, pages) @@ -87,40 +87,40 @@ Provide a high-level overview of the ${PROJECT_TYPE == "Auto-detect" ? "detected - Note any structural patterns that repeat throughout the codebase - Document the rationale behind the structure where it can be inferred -${IS_MONOREPO == "Auto-detect" ? -"If detected as a monorepo, explain how the monorepo is organized and the relationship between projects." : +${IS_MONOREPO == "Auto-detect" ? +"If detected as a monorepo, explain how the monorepo is organized and the relationship between projects." : IS_MONOREPO ? "Explain how the monorepo is organized and the relationship between projects." : ""} -${INCLUDES_MICROSERVICES == "Auto-detect" ? -"If microservices are detected, describe how they are structured and organized." : +${INCLUDES_MICROSERVICES == "Auto-detect" ? +"If microservices are detected, describe how they are structured and organized." : INCLUDES_MICROSERVICES ? "Describe how the microservices are structured and organized." : ""} ### 2. Directory Visualization -${VISUALIZATION_STYLE == "ASCII" ? +${VISUALIZATION_STYLE == "ASCII" ? "Create an ASCII tree representation of the folder hierarchy to depth level ${DEPTH_LEVEL}." : ""} -${VISUALIZATION_STYLE == "Markdown List" ? +${VISUALIZATION_STYLE == "Markdown List" ? "Use nested markdown lists to represent the folder hierarchy to depth level ${DEPTH_LEVEL}." : ""} -${VISUALIZATION_STYLE == "Table" ? +${VISUALIZATION_STYLE == "Table" ? "Create a table with columns for Path, Purpose, Content Types, and Conventions." : ""} -${INCLUDE_GENERATED_FOLDERS ? -"Include all folders including generated ones." : +${INCLUDE_GENERATED_FOLDERS ? +"Include all folders including generated ones." : "Exclude auto-generated folders like bin/, obj/, node_modules/, etc."} ### 3. Key Directory Analysis Document each significant directory's purpose, contents, and patterns: -${PROJECT_TYPE == "Auto-detect" ? +${PROJECT_TYPE == "Auto-detect" ? "For each detected technology, analyze directory structures based on observed usage patterns:" : ""} -${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? "#### .NET Project Structure (if detected) -- **Solution Organization**: +- **Solution Organization**: - How projects are grouped and related - Solution folder organization patterns - Multi-targeting project patterns @@ -149,7 +149,7 @@ ${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? - Test categories and organization - Test data and mock locations" : ""} -${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto-detect") ? "#### UI Project Structure (if detected) - **Component Organization**: @@ -170,13 +170,13 @@ ${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto - **API Integration**: - API client organization - Service layer structure - - Data web/fetching patterns + - Data fetching patterns - **Asset Management**: - Static resource organization - Image/media file structure - Font and icon organization - + - **Style Organization**: - CSS/SCSS file structure - Theme organization @@ -184,36 +184,36 @@ ${(PROJECT_TYPE == "React" || PROJECT_TYPE == "Angular" || PROJECT_TYPE == "Auto ### 4. File Placement Patterns -${INCLUDE_FILE_PATTERNS ? +${INCLUDE_FILE_PATTERNS ? "Document the patterns that determine where different types of files should be placed: - **Configuration Files**: - Locations for different types of configuration - Environment-specific configuration patterns - + - **Model/Entity Definitions**: - Where domain models are defined - Data transfer object (DTO) locations - Schema definition locations - + - **Business Logic**: - Service implementation locations - Business rule organization - Utility and helper function placement - + - **Interface Definitions**: - Where interfaces and abstractions are defined - How interfaces are grouped and organized - + - **Test Files**: - Unit test location patterns - Integration test placement - Test utility and mock locations - + - **Documentation Files**: - API documentation placement - Internal documentation organization - - README file distribution" : + - README file distribution" : "Document where key file types are located in the project."} ### 5. Naming and Organization Conventions @@ -223,12 +223,12 @@ Document the naming and organizational conventions observed across the project: - Case conventions (PascalCase, camelCase, kebab-case) - Prefix and suffix patterns - Type indicators in filenames - + - **Folder Naming Patterns**: - Naming conventions for different folder types - Hierarchical naming patterns - Grouping and categorization conventions - + - **Namespace/Module Patterns**: - How namespaces/modules map to folder structure - Import/using statement organization @@ -252,13 +252,13 @@ Provide guidance for navigating and working with the codebase structure: - How to extend existing functionality - Where to place new tests - Configuration modification locations - + - **Dependency Patterns**: - How dependencies flow between folders - Import/reference patterns - Dependency injection registration locations -${INCLUDE_FILE_COUNTS ? +${INCLUDE_FILE_COUNTS ? "- **Content Statistics**: - Files per directory analysis - Code distribution metrics @@ -271,12 +271,12 @@ Document the build process and output organization: - Build script locations and purposes - Build pipeline organization - Build task definitions - + - **Output Structure**: - Compiled/built output locations - Output organization patterns - Distribution package structure - + - **Environment-Specific Builds**: - Development vs. production differences - Environment configuration strategies @@ -284,7 +284,7 @@ Document the build process and output organization: ### 8. Technology-Specific Organization -${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? "#### .NET-Specific Structure Patterns (if detected) - **Project File Organization**: @@ -292,53 +292,53 @@ ${(PROJECT_TYPE == ".NET" || PROJECT_TYPE == "Auto-detect") ? - Target framework configuration - Property group organization - Item group patterns - + - **Assembly Organization**: - Assembly naming patterns - Multi-assembly architecture - Assembly reference patterns - + - **Resource Organization**: - Embedded resource patterns - Localization file structure - Static web asset organization - + - **Package Management**: - NuGet configuration locations - Package reference organization - Package version management" : ""} -${(PROJECT_TYPE == "Java" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "Java" || PROJECT_TYPE == "Auto-detect") ? "#### Java-Specific Structure Patterns (if detected) - **Package Hierarchy**: - Package naming and nesting conventions - Domain vs. technical packages - Visibility and access patterns - + - **Build Tool Organization**: - Maven/Gradle structure patterns - Module organization - Plugin configuration patterns - + - **Resource Organization**: - Resource folder structures - Environment-specific resources - Properties file organization" : ""} -${(PROJECT_TYPE == "Node.js" || PROJECT_TYPE == "Auto-detect") ? +${(PROJECT_TYPE == "Node.js" || PROJECT_TYPE == "Auto-detect") ? "#### Node.js-Specific Structure Patterns (if detected) - **Module Organization**: - CommonJS vs. ESM organization - Internal module patterns - Third-party dependency management - + - **Script Organization**: - npm/yarn script definition patterns - Utility script locations - Development tool scripts - + - **Configuration Management**: - Configuration file locations - Environment variable management @@ -351,18 +351,18 @@ Document how the project structure is designed to be extended: - How to add new modules/features while maintaining conventions - Plugin/extension folder patterns - Customization directory structures - + - **Scalability Patterns**: - How the structure scales for larger features - Approach for breaking down large modules - Code splitting strategies - + - **Refactoring Patterns**: - Common refactoring approaches observed - How structural changes are managed - Incremental reorganization patterns -${INCLUDE_TEMPLATES ? +${INCLUDE_TEMPLATES ? "### 10. Structure Templates Provide templates for creating new components that follow project conventions: @@ -371,17 +371,17 @@ Provide templates for creating new components that follow project conventions: - Folder structure for adding a complete feature - Required file types and their locations - Naming patterns to follow - + - **New Component Template**: - Directory structure for a typical component - Essential files to include - Integration points with existing structure - + - **New Service Template**: - Structure for adding a new service - Interface and implementation placement - Configuration and registration patterns - + - **New Test Structure**: - Folder structure for test projects/files - Test file organization templates @@ -395,7 +395,7 @@ Document how the project structure is maintained and enforced: - Tools/scripts that enforce structure - Build checks for structural compliance - Linting rules related to structure - + - **Documentation Practices**: - How structural changes are documented - Where architectural decisions are recorded diff --git a/prompts/github-copilot-starter.prompt.md b/prompts/github-copilot-starter.prompt.md index eaf2c398..f1fddc3f 100644 --- a/prompts/github-copilot-starter.prompt.md +++ b/prompts/github-copilot-starter.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' model: Claude Sonnet 4 -tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'web/fetch'] +tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'fetch'] description: 'Set up complete GitHub Copilot configuration for a new project based on technology stack' --- @@ -58,7 +58,7 @@ Create Coding Agent workflow file: - `copilot-setup-steps.yml` - GitHub Actions workflow for Coding Agent environment setup **CRITICAL**: The workflow MUST follow this exact structure: -- Job name MUST be `copilot-setup-steps` +- Job name MUST be `copilot-setup-steps` - Include proper triggers (workflow_dispatch, push, pull_request on the workflow file) - Set appropriate permissions (minimum required) - Customize steps based on the technology stack provided @@ -67,9 +67,9 @@ Create Coding Agent workflow file: For each file, follow these principles: -**MANDATORY FIRST STEP**: Always use the web/fetch tool to research existing patterns before creating any content: -1. **web/fetch from awesome-copilot collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md -2. **web/fetch specific instruction files**: https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/[relevant-file].instructions.md +**MANDATORY FIRST STEP**: Always use the fetch tool to research existing patterns before creating any content: +1. **Fetch from awesome-copilot collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md +2. **Fetch specific instruction files**: https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/[relevant-file].instructions.md 3. **Check for existing patterns** that match the technology stack **Primary Approach**: Reference and adapt existing instructions from awesome-copilot repository: @@ -127,7 +127,7 @@ description: "Java Spring Boot development standards" - ✅ **"Use TypeScript strict mode for better type safety"** - ✅ **"Follow the repository's established error handling patterns"** -**Research Strategy with web/fetch tool:** +**Research Strategy with fetch tool:** 1. **Check awesome-copilot first** - Always start here for ALL file types 2. **Look for exact tech stack matches** (e.g., React, Node.js, Spring Boot) 3. **Look for general matches** (e.g., frontend chatmodes, testing prompts, review modes) @@ -135,15 +135,15 @@ description: "Java Spring Boot development standards" 5. **Adapt community examples** to project needs 6. **Only create custom content** if nothing relevant exists -**web/fetch these awesome-copilot directories:** +**Fetch these awesome-copilot directories:** - **Instructions**: https://github.com/github/awesome-copilot/tree/main/instructions -- **Prompts**: https://github.com/github/awesome-copilot/tree/main/prompts +- **Prompts**: https://github.com/github/awesome-copilot/tree/main/prompts - **Chat Modes**: https://github.com/github/awesome-copilot/tree/main/chatmodes - **Collections**: https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md **Awesome-Copilot Collections to Check:** - **Frontend Web Development**: React, Angular, Vue, TypeScript, CSS frameworks -- **C# .NET Development**: Testing, documentation, and best practices +- **C# .NET Development**: Testing, documentation, and best practices - **Java Development**: Spring Boot, Quarkus, testing, documentation - **Database Development**: PostgreSQL, SQL Server, and general database best practices - **Azure Development**: Infrastructure as Code, serverless functions @@ -237,7 +237,7 @@ Requirements for the form: ```yaml --- description: Generate an implementation plan for new features or refactoring existing code. -tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] model: Claude Sonnet 4 --- # Planning mode instructions diff --git a/prompts/java-springboot.prompt.md b/prompts/java-springboot.prompt.md index df178ac7..e558feb0 100644 --- a/prompts/java-springboot.prompt.md +++ b/prompts/java-springboot.prompt.md @@ -44,7 +44,7 @@ Your goal is to help me write high-quality Spring Boot applications by following - **Spring Data JPA:** Use Spring Data JPA repositories by extending `JpaRepository` or `CrudRepository` for standard database operations. - **Custom Queries:** For complex queries, use `@Query` or the JPA Criteria API. -- **Projections:** Use DTO projections to web/fetch only the necessary data from the database. +- **Projections:** Use DTO projections to fetch only the necessary data from the database. ## Logging diff --git a/prompts/mcp-create-declarative-agent.prompt.md b/prompts/mcp-create-declarative-agent.prompt.md index 302a7240..7602a05d 100644 --- a/prompts/mcp-create-declarative-agent.prompt.md +++ b/prompts/mcp-create-declarative-agent.prompt.md @@ -146,7 +146,7 @@ The MCP server must provide: ### Tool Selection When importing from MCP: -1. web/fetch available tools from server +1. Fetch available tools from server 2. Select specific tools to include (for security/simplicity) 3. Tool definitions are auto-generated in ai-plugin.json @@ -299,7 +299,7 @@ Then generate: - Ensure mcp.json points to correct server - Verify tools were selected during import - Check ai-plugin.json has correct function definitions -- Re-web/fetch actions from MCP if server changed +- Re-fetch actions from MCP if server changed ### Agent Not Understanding Queries - Review instructions in declarativeAgent.json @@ -307,4 +307,4 @@ Then generate: - Verify response_semantics extract correct data - Test with more specific queries -```` +```` \ No newline at end of file diff --git a/prompts/model-recommendation.prompt.md b/prompts/model-recommendation.prompt.md index b73c8d7a..bacf0606 100644 --- a/prompts/model-recommendation.prompt.md +++ b/prompts/model-recommendation.prompt.md @@ -3,7 +3,7 @@ description: "Analyze chatmode or prompt files and recommend optimal AI models b agent: "agent" tools: - "search/codebase" - - "web/fetch" + - "fetch" - "context7/*" model: Auto (copilot) --- @@ -103,7 +103,7 @@ Identify the primary task category based on content analysis: Based on `tools` in frontmatter and body instructions: -- **Read-only tools** (search, web/fetch, usages, githubRepo): Lower complexity, faster models suitable +- **Read-only tools** (search, fetch, usages, githubRepo): Lower complexity, faster models suitable - **Write operations** (edit/editFiles, new): Moderate complexity, accuracy important - **Execution tools** (runCommands, runTests, runTasks): Validation needs, iterative approach - **Advanced tools** (context7/\*, sequential-thinking/\*): Complex reasoning, premium models beneficial @@ -262,13 +262,13 @@ Verify model capabilities align with specified tools: - If tools include `context7/*` or `sequential-thinking/*`: Recommend advanced reasoning models (Claude Sonnet 4.5, GPT-5, Claude Opus 4.1) - If tools include vision-related references: Ensure model supports images (flag if GPT-5 Codex, Claude Sonnet 4, or mini models selected) -- If tools are read-only (search, web/fetch): Suggest cost-effective models (GPT-5 mini, Grok Code Fast 1) +- If tools are read-only (search, fetch): Suggest cost-effective models (GPT-5 mini, Grok Code Fast 1) ### 5. Context7 Integration for Up-to-Date Information **Leverage Context7 for Model Documentation**: -When uncertainty exists about current model capabilities, use Context7 to web/fetch latest information: +When uncertainty exists about current model capabilities, use Context7 to fetch latest information: ```markdown **Verification with Context7**: @@ -568,7 +568,7 @@ If file specifies a deprecated model: ### Example 4: Free Tier User with Planning Mode **File**: `plan.agent.md` -**Content**: "Research and planning mode with read-only tools (search, web/fetch, githubRepo)" +**Content**: "Research and planning mode with read-only tools (search, fetch, githubRepo)" **Subscription**: Free (2K completions + 50 chat requests/month, 0x models only) **Recommendation**: GPT-4.1 (0x, balanced, included in Free tier) **Alternative**: GPT-5 mini (0x, faster but less context) diff --git a/prompts/playwright-explore-website.prompt.md b/prompts/playwright-explore-website.prompt.md index e8cc123f..ad2917f4 100644 --- a/prompts/playwright-explore-website.prompt.md +++ b/prompts/playwright-explore-website.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Website exploration for testing using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] model: 'Claude Sonnet 4' --- diff --git a/prompts/playwright-generate-test.prompt.md b/prompts/playwright-generate-test.prompt.md index 1e683caf..103195db 100644 --- a/prompts/playwright-generate-test.prompt.md +++ b/prompts/playwright-generate-test.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Generate a Playwright test based on a scenario using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] model: 'Claude Sonnet 4.5' --- diff --git a/prompts/postgresql-optimization.prompt.md b/prompts/postgresql-optimization.prompt.md index abde254d..2cc5014a 100644 --- a/prompts/postgresql-optimization.prompt.md +++ b/prompts/postgresql-optimization.prompt.md @@ -24,7 +24,7 @@ CREATE TABLE events ( CREATE INDEX idx_events_data_gin ON events USING gin(data); -- JSONB containment and path queries -SELECT * FROM events +SELECT * FROM events WHERE data @> '{"type": "login"}' AND data #>> '{user,role}' = 'admin'; @@ -53,7 +53,7 @@ SELECT array_agg(DISTINCT category) FROM posts, unnest(categories) as category; ### Window Functions & Analytics ```sql -- Advanced window functions -SELECT +SELECT product_id, sale_date, amount, @@ -79,19 +79,19 @@ CREATE TABLE documents ( ); -- Update search vector -UPDATE documents +UPDATE documents SET search_vector = to_tsvector('english', title || ' ' || content); -- GIN index for search performance CREATE INDEX idx_documents_search ON documents USING gin(search_vector); -- Search queries -SELECT * FROM documents +SELECT * FROM documents WHERE search_vector @@ plainto_tsquery('english', 'postgresql database'); -- Ranking results SELECT *, ts_rank(search_vector, plainto_tsquery('postgresql')) as rank -FROM documents +FROM documents WHERE search_vector @@ plainto_tsquery('postgresql') ORDER BY rank DESC; ``` @@ -101,7 +101,7 @@ ORDER BY rank DESC; ### Query Optimization ```sql -- EXPLAIN ANALYZE for performance analysis -EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) +EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT) SELECT u.name, COUNT(o.id) as order_count FROM users u LEFT JOIN orders o ON u.id = o.user_id @@ -111,8 +111,8 @@ GROUP BY u.id, u.name; -- Identify slow queries from pg_stat_statements SELECT query, calls, total_time, mean_time, rows, 100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent -FROM pg_stat_statements -ORDER BY total_time DESC +FROM pg_stat_statements +ORDER BY total_time DESC LIMIT 10; ``` @@ -134,13 +134,13 @@ CREATE INDEX idx_orders_covering ON orders(user_id, status) INCLUDE (total, crea ### Connection & Memory Management ```sql -- Check connection usage -SELECT count(*) as connections, state -FROM pg_stat_activity +SELECT count(*) as connections, state +FROM pg_stat_activity GROUP BY state; -- Monitor memory usage -SELECT name, setting, unit -FROM pg_settings +SELECT name, setting, unit +FROM pg_settings WHERE name IN ('shared_buffers', 'work_mem', 'maintenance_work_mem'); ``` @@ -159,7 +159,7 @@ CREATE TYPE address_type AS ( CREATE TYPE order_status AS ENUM ('pending', 'processing', 'shipped', 'delivered', 'cancelled'); -- Use domains for data validation -CREATE DOMAIN email_address AS TEXT +CREATE DOMAIN email_address AS TEXT CHECK (VALUE ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'); -- Table using custom types @@ -182,12 +182,12 @@ CREATE TABLE reservations ( ); -- Range queries -SELECT * FROM reservations +SELECT * FROM reservations WHERE reservation_period && tstzrange('2024-07-20', '2024-07-25'); -- Exclude overlapping ranges -ALTER TABLE reservations -ADD CONSTRAINT no_overlap +ALTER TABLE reservations +ADD CONSTRAINT no_overlap EXCLUDE USING gist (room_id WITH =, reservation_period WITH &&); ``` @@ -203,7 +203,7 @@ CREATE TABLE locations ( ); -- Geometric queries -SELECT name FROM locations +SELECT name FROM locations WHERE coordinates <-> point(40.7128, -74.0060) < 10; -- Within 10 units -- GiST index for geometric data @@ -235,12 +235,12 @@ SELECT pg_size_pretty(pg_database_size(current_database())) as db_size; -- Table and index sizes SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as size -FROM pg_tables +FROM pg_tables ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC; -- Index usage statistics -SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_web/fetch -FROM pg_stat_user_indexes +SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch +FROM pg_stat_user_indexes WHERE idx_scan = 0; -- Unused indexes ``` @@ -258,13 +258,13 @@ WHERE idx_scan = 0; -- Unused indexes ```sql -- Identify slow queries SELECT query, calls, total_time, mean_time, rows -FROM pg_stat_statements -ORDER BY total_time DESC +FROM pg_stat_statements +ORDER BY total_time DESC LIMIT 10; -- Check index usage -SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_web/fetch -FROM pg_stat_user_indexes +SELECT schemaname, tablename, indexname, idx_scan, idx_tup_read, idx_tup_fetch +FROM pg_stat_user_indexes WHERE idx_scan = 0; ``` @@ -282,27 +282,27 @@ WHERE idx_scan = 0; SELECT * FROM products ORDER BY id OFFSET 10000 LIMIT 20; -- ✅ GOOD: Cursor-based pagination -SELECT * FROM products -WHERE id > $last_id -ORDER BY id +SELECT * FROM products +WHERE id > $last_id +ORDER BY id LIMIT 20; ``` ### Aggregation ```sql -- ❌ BAD: Inefficient grouping -SELECT user_id, COUNT(*) -FROM orders -WHERE order_date >= '2024-01-01' +SELECT user_id, COUNT(*) +FROM orders +WHERE order_date >= '2024-01-01' GROUP BY user_id; -- ✅ GOOD: Optimized with partial index -CREATE INDEX idx_orders_recent ON orders(user_id) +CREATE INDEX idx_orders_recent ON orders(user_id) WHERE order_date >= '2024-01-01'; -SELECT user_id, COUNT(*) -FROM orders -WHERE order_date >= '2024-01-01' +SELECT user_id, COUNT(*) +FROM orders +WHERE order_date >= '2024-01-01' GROUP BY user_id; ``` @@ -377,7 +377,7 @@ CREATE INDEX idx_table_column ON table(column); ### Window Functions ```sql -- Running totals and rankings -SELECT +SELECT product_id, order_date, amount, @@ -391,11 +391,11 @@ FROM sales; -- Recursive queries for hierarchical data WITH RECURSIVE category_tree AS ( SELECT id, name, parent_id, 1 as level - FROM categories + FROM categories WHERE parent_id IS NULL - + UNION ALL - + SELECT c.id, c.name, c.parent_id, ct.level + 1 FROM categories c JOIN category_tree ct ON c.parent_id = ct.id diff --git a/prompts/prompt-builder.prompt.md b/prompts/prompt-builder.prompt.md index 068ac6df..f7e19961 100644 --- a/prompts/prompt-builder.prompt.md +++ b/prompts/prompt-builder.prompt.md @@ -8,7 +8,7 @@ description: 'Guide users through creating high-quality GitHub Copilot prompts w You are an expert prompt engineer specializing in GitHub Copilot prompt development with deep knowledge of: - Prompt engineering best practices and patterns -- VS Code Copilot customization capabilities +- VS Code Copilot customization capabilities - Effective persona design and task specification - Tool integration and front matter configuration - Output format optimization for AI consumption @@ -62,7 +62,7 @@ I will ask you targeted questions to gather all necessary information. After col Which tools does this prompt need? Common options include: - **File Operations**: `codebase`, `editFiles`, `search`, `problems` - **Execution**: `runCommands`, `runTasks`, `runTests`, `terminalLastCommand` -- **External**: `web/fetch`, `githubRepo`, `openSimpleBrowser` +- **External**: `fetch`, `githubRepo`, `openSimpleBrowser` - **Specialized**: `playwright`, `usages`, `vscodeAPI`, `extensions` - **Analysis**: `changes`, `findTestFiles`, `testFailure`, `searchResults` @@ -82,7 +82,7 @@ Which tools does this prompt need? Common options include: Based on analysis of existing prompts, I will ensure your prompt includes: ✅ **Clear Structure**: Well-organized sections with logical flow -✅ **Specific Instructions**: Actionable, unambiguous directions +✅ **Specific Instructions**: Actionable, unambiguous directions ✅ **Proper Context**: All necessary information for task completion ✅ **Tool Integration**: Appropriate tool selection for the task ✅ **Error Handling**: Guidance for edge cases and failures @@ -116,7 +116,7 @@ model: "[only if specific model required]" ## [Instructions Section] [Step-by-step instructions following established patterns] -## [Context/Input Section] +## [Context/Input Section] [Variable usage and context requirements] ## [Output Section] @@ -128,7 +128,7 @@ model: "[only if specific model required]" The generated prompt will follow patterns observed in high-quality prompts like: - **Comprehensive blueprints** (architecture-blueprint-generator) -- **Structured specifications** (create-github-action-workflow-specification) +- **Structured specifications** (create-github-action-workflow-specification) - **Best practice guides** (dotnet-best-practices, csharp-xunit) - **Implementation plans** (create-implementation-plan) - **Code generation** (playwright-generate-test) diff --git a/prompts/structured-autonomy-generate.prompt.md b/prompts/structured-autonomy-generate.prompt.md index 18d514fc..e77616df 100644 --- a/prompts/structured-autonomy-generate.prompt.md +++ b/prompts/structured-autonomy-generate.prompt.md @@ -67,7 +67,7 @@ For the entire project described in the master plan, research and gather: - Testing strategies 4. **Official Documentation:** - - web/fetch official docs for all major libraries/frameworks + - Fetch official docs for all major libraries/frameworks - Document APIs, syntax, parameters - Note version-specific details - Record known limitations and gotchas diff --git a/prompts/suggest-awesome-github-copilot-agents.prompt.md b/prompts/suggest-awesome-github-copilot-agents.prompt.md index 13ed277c..dc4a14d5 100644 --- a/prompts/suggest-awesome-github-copilot-agents.prompt.md +++ b/prompts/suggest-awesome-github-copilot-agents.prompt.md @@ -1,7 +1,7 @@ --- agent: "agent" description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository." -tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "web/fetch", "githubRepo", "todos"] +tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "fetch", "githubRepo", "todos"] --- # Suggest Awesome GitHub Copilot Custom Agents @@ -10,7 +10,7 @@ Analyze current repository context and suggest relevant Custom Agents files from ## Process -1. **web/fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `web/fetch` tool. +1. **Fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `fetch` tool. 2. **Scan Local Custom Agents**: Discover existing custom agent files in `.github/agents/` folder 3. **Extract Descriptions**: Read front matter from local custom agent files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -20,7 +20,7 @@ Analyze current repository context and suggest relevant Custom Agents files from 8. **Validate**: Ensure suggested agents would add value not already covered by existing agents 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents **AWAIT** user request to proceed with installation of specific custom agents. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md index 95a59db2..a3203896 100644 --- a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +++ b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Custom Chat Modes @@ -10,7 +10,7 @@ Analyze current repository context and suggest relevant Custom Chat Modes files ## Process -1. **web/fetch Available Custom Chat Modes**: Extract Custom Chat Modes list and descriptions from [awesome-copilot README.chatmodes.md](https://github.com/github/awesome-copilot/blob/main/docs/README.chatmodes.md). Must use `#web/fetch` tool. +1. **Fetch Available Custom Chat Modes**: Extract Custom Chat Modes list and descriptions from [awesome-copilot README.chatmodes.md](https://github.com/github/awesome-copilot/blob/main/docs/README.chatmodes.md). Must use `#fetch` tool. 2. **Scan Local Custom Chat Modes**: Discover existing custom chat mode files in `.github/agents/` folder 3. **Extract Descriptions**: Read front matter from local custom chat mode files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -20,7 +20,7 @@ Analyze current repository context and suggest relevant Custom Chat Modes files 8. **Validate**: Ensure suggested chatmodes would add value not already covered by existing chatmodes 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom chat modes and similar local custom chat modes **AWAIT** user request to proceed with installation of specific custom chat modes. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested chat modes, automatically download and install individual chat modes to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested chat modes, automatically download and install individual chat modes to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-collections.prompt.md b/prompts/suggest-awesome-github-copilot-collections.prompt.md index 0f82410e..40472aa7 100644 --- a/prompts/suggest-awesome-github-copilot-collections.prompt.md +++ b/prompts/suggest-awesome-github-copilot-collections.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Collections @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant collections from the [Gi ## Process -1. **web/fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#web/fetch` tool. +1. **Fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#fetch` tool. 2. **Scan Local Assets**: Discover existing prompt files in `prompts/`, instruction files in `instructions/`, and chat modes in `agents/` folders 3. **Extract Local Descriptions**: Read front matter from local asset files to understand existing capabilities 4. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs @@ -18,7 +18,7 @@ Analyze current repository context and suggest relevant collections from the [Gi 7. **Present Collection Options**: Display relevant collections with descriptions, item counts, and rationale for suggestion 8. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow **AWAIT** user request to proceed with installation of specific collections. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria @@ -90,7 +90,7 @@ For each suggested collection, break down individual assets: When user confirms a collection installation: -1. **web/fetch Collection Manifest**: Get collection YAML from awesome-copilot repository +1. **Fetch Collection Manifest**: Get collection YAML from awesome-copilot repository 2. **Download Individual Assets**: For each item in collection: - Download raw file content from GitHub - Validate file format and front matter structure @@ -104,7 +104,7 @@ When user confirms a collection installation: ## Requirements -- Use `web/fetch` tool to get collections data from awesome-copilot repository +- Use `fetch` tool to get collections data from awesome-copilot repository - Use `githubRepo` tool to get individual asset content for download - Scan local file system for existing assets in `prompts/`, `instructions/`, and `agents/` directories - Read YAML front matter from local asset files to extract descriptions and capabilities @@ -120,7 +120,7 @@ When user confirms a collection installation: ## Collection Installation Workflow 1. **User Confirms Collection**: User selects specific collection(s) for installation -2. **web/fetch Collection Manifest**: Download YAML manifest from awesome-copilot repository +2. **Fetch Collection Manifest**: Download YAML manifest from awesome-copilot repository 3. **Asset Download Loop**: For each asset in collection: - Download raw content from GitHub repository - Validate file format and structure diff --git a/prompts/suggest-awesome-github-copilot-instructions.prompt.md b/prompts/suggest-awesome-github-copilot-instructions.prompt.md index bcb999a0..be06e76e 100644 --- a/prompts/suggest-awesome-github-copilot-instructions.prompt.md +++ b/prompts/suggest-awesome-github-copilot-instructions.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Instructions @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant copilot-instruction file ## Process -1. **web/fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#web/fetch` tool. +1. **Fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#fetch` tool. 2. **Scan Local Instructions**: Discover existing instruction files in `.github/instructions/` folder 3. **Extract Descriptions**: Read front matter from local instruction files to get descriptions and `applyTo` patterns 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -19,7 +19,7 @@ Analyze current repository context and suggest relevant copilot-instruction file 8. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/suggest-awesome-github-copilot-prompts.prompt.md b/prompts/suggest-awesome-github-copilot-prompts.prompt.md index c17e6b5d..ab3a6b11 100644 --- a/prompts/suggest-awesome-github-copilot-prompts.prompt.md +++ b/prompts/suggest-awesome-github-copilot-prompts.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Prompts @@ -9,7 +9,7 @@ Analyze current repository context and suggest relevant prompt files from the [G ## Process -1. **web/fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#web/fetch` tool. +1. **Fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#fetch` tool. 2. **Scan Local Prompts**: Discover existing prompt files in `.github/prompts/` folder 3. **Extract Descriptions**: Read front matter from local prompt files to get descriptions 4. **Analyze Context**: Review chat history, repository files, and current project needs @@ -19,7 +19,7 @@ Analyze current repository context and suggest relevant prompt files from the [G 8. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts 9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#web/fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. ## Context Analysis Criteria diff --git a/prompts/tldr-prompt.prompt.md b/prompts/tldr-prompt.prompt.md index 834283f8..479661de 100644 --- a/prompts/tldr-prompt.prompt.md +++ b/prompts/tldr-prompt.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create tldr summaries for GitHub Copilot files (prompts, agents, instructions, collections), MCP servers, or documentation from URLs and queries.' -tools: ['web/fetch', 'search/readFile', 'search', 'search/textSearch'] +tools: ['fetch', 'search/readFile', 'search', 'search/textSearch'] model: 'claude-sonnet-4' --- @@ -50,7 +50,7 @@ message specified in the Error Handling section. create tldr summaries for the first 5 and list the remaining files - Recognize file type by extension and use appropriate invocation syntax in examples * **URL** - Link to Copilot file, MCP server documentation, or Copilot documentation - - If one or more URLs are passed without `#web/fetch`, you MUST apply the web/fetch tool to all URLs + - If one or more URLs are passed without `#fetch`, you MUST apply the fetch tool to all URLs - If more than one URL (up to 5), you MUST create a `tldr` for each. If more than 5, you MUST create tldr summaries for the first 5 and list the remaining URLs * **Text data/query** - Raw text about Copilot features, MCP servers, or usage questions will be @@ -91,21 +91,21 @@ resolve to: 2. **Search strategy**: - For workspace files: Use search tools to find matching files in ${workspaceFolder} - - For GitHub awesome-copilot: web/fetch raw content from https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/ - - For documentation: Use web/fetch tool with the most relevant URL from above + - For GitHub awesome-copilot: Fetch raw content from https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/ + - For documentation: Use fetch tool with the most relevant URL from above -3. **web/fetch content**: +3. **Fetch content**: - Workspace files: Read using file tools - - GitHub awesome-copilot files: web/fetch using raw.githubusercontent.com URLs - - Documentation URLs: web/fetch using web/fetch tool + - GitHub awesome-copilot files: Fetch using raw.githubusercontent.com URLs + - Documentation URLs: Fetch using fetch tool 4. **Evaluate and respond**: - - Use the web/fetched content as the reference for completing the request + - Use the fetched content as the reference for completing the request - Adapt response verbosity based on chat context ### Unambiguous Queries -If the user **DOES** provide a specific URL or file, skip searching and web/fetch/read that directly. +If the user **DOES** provide a specific URL or file, skip searching and fetch/read that directly. ### Optional @@ -124,7 +124,7 @@ If the user **DOES** provide a specific URL or file, skip searching and web/fetc /tldr-prompt #file:{{name.collections.md}} # With URLs -/tldr-prompt #web/fetch {{https://example.com/docs}} +/tldr-prompt #fetch {{https://example.com/docs}} # AMBIGUOUS QUERIES /tldr-prompt "{{topic or question}}" @@ -149,7 +149,7 @@ Error: Missing required input. You MUST provide one of the following: 1. A Copilot file: /tldr-prompt #file:{{name.prompt.md | name.agent.md | name.instructions.md | name.collections.md}} -2. A URL: /tldr-prompt #web/fetch {{https://example.com/docs}} +2. A URL: /tldr-prompt #fetch {{https://example.com/docs}} 3. A search query: /tldr-prompt "{{topic}}" (e.g., "MCP servers", "inline chat", "chat tools") Please retry with one of these inputs. @@ -184,7 +184,7 @@ Found: - https://github.com/github/awesome-copilot/blob/main/prompts/java-docs.prompt.md - https://github.com/github/awesome-copilot/blob/main/prompts/java-junit.prompt.md -Now let me web/fetch the raw content: +Now let me fetch the raw content: - https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/prompts/java-docs.prompt.md - https://raw.githubusercontent.com/github/awesome-copilot/refs/heads/main/prompts/java-junit.prompt.md @@ -212,13 +212,13 @@ I'll read the file typescript-mcp-server-generator.prompt.md and create a tldr s **User** ```bash -/tldr-prompt "How do MCP servers work?" #web/fetch https://code.visualstudio.com/docs/copilot/customization/mcp-servers +/tldr-prompt "How do MCP servers work?" #fetch https://code.visualstudio.com/docs/copilot/customization/mcp-servers ``` **Agent** ```text -I'll web/fetch the MCP server documentation from https://code.visualstudio.com/docs/copilot/customization/mcp-servers +I'll fetch the MCP server documentation from https://code.visualstudio.com/docs/copilot/customization/mcp-servers and create a tldr summary of how MCP servers work. ``` @@ -232,10 +232,10 @@ message from Error Handling section - Determine file type (.prompt.md, .agent.md, .instructions.md, .collections.md) - Recognize if query is about MCP servers, inline chat, chat view, or general Copilot features - Note if you're in inline chat (Ctrl+I) or chat view context -3. **web/fetch Content**: +3. **Fetch Content**: - For files: Read the file(s) using available file tools - - For URLs: web/fetch content using `#tool:web/fetch` - - For queries: Apply URL Resolver strategy to find and web/fetch relevant content + - For URLs: Fetch content using `#tool:fetch` + - For queries: Apply URL Resolver strategy to find and fetch relevant content 4. **Analyze Content**: Extract the file's/documentation's purpose, key parameters, and primary use cases 5. **Generate tldr**: Create summary using the template format below with correct invocation syntax diff --git a/prompts/update-avm-modules-in-bicep.prompt.md b/prompts/update-avm-modules-in-bicep.prompt.md index 23e67508..b603a880 100644 --- a/prompts/update-avm-modules-in-bicep.prompt.md +++ b/prompts/update-avm-modules-in-bicep.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update Azure Verified Modules (AVM) to latest versions in Bicep files.' -tools: ['search/codebase', 'think', 'changes', 'web/fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] +tools: ['search/codebase', 'think', 'changes', 'fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] --- # Update Azure Verified Modules in Bicep Files @@ -11,16 +11,16 @@ Update Bicep file `${file}` to use latest Azure Verified Module (AVM) versions. 1. **Scan**: Extract AVM modules and current versions from `${file}` 1. **Identify**: List all unique AVM modules used by matching `avm/res/{service}/{resource}` using `#search` tool -1. **Check**: Use `#web/fetch` tool to get latest version of each AVM module from MCR: `https://mcr.microsoft.com/v2/bicep/avm/res/{service}/{resource}/tags/list` +1. **Check**: Use `#fetch` tool to get latest version of each AVM module from MCR: `https://mcr.microsoft.com/v2/bicep/avm/res/{service}/{resource}/tags/list` 1. **Compare**: Parse semantic versions to identify AVM modules needing update -1. **Review**: For breaking changes, use `#web/fetch` tool to get docs from: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}` +1. **Review**: For breaking changes, use `#fetch` tool to get docs from: `https://github.com/Azure/bicep-registry-modules/tree/main/avm/res/{service}/{resource}` 1. **Update**: Apply version updates and parameter changes using `#editFiles` tool 1. **Validate**: Run `bicep lint` and `bicep build` using `#runCommands` tool to ensure compliance. 1. **Output**: Summarize changes in a table format with summary of updates below. ## Tool Usage -Always use tools `#search`, `#searchResults`,`#web/fetch`, `#editFiles`, `#runCommands`, `#todos` if available. Avoid writing code to perform tasks. +Always use tools `#search`, `#searchResults`,`#fetch`, `#editFiles`, `#runCommands`, `#todos` if available. Avoid writing code to perform tasks. ## Breaking Change Policy diff --git a/prompts/update-implementation-plan.prompt.md b/prompts/update-implementation-plan.prompt.md index 8de4eab8..3ff01b07 100644 --- a/prompts/update-implementation-plan.prompt.md +++ b/prompts/update-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Implementation Plan diff --git a/prompts/update-llms.prompt.md b/prompts/update-llms.prompt.md index bbeab69d..0e3f4e21 100644 --- a/prompts/update-llms.prompt.md +++ b/prompts/update-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update LLMs.txt File diff --git a/prompts/update-markdown-file-index.prompt.md b/prompts/update-markdown-file-index.prompt.md index 08f98a67..8078097a 100644 --- a/prompts/update-markdown-file-index.prompt.md +++ b/prompts/update-markdown-file-index.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update a markdown file section with an index/table of files from a specified folder.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Markdown File Index diff --git a/prompts/update-oo-component-documentation.prompt.md b/prompts/update-oo-component-documentation.prompt.md index 5300f0f7..c3857e4a 100644 --- a/prompts/update-oo-component-documentation.prompt.md +++ b/prompts/update-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update existing object-oriented component documentation following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Standard OO Component Documentation diff --git a/prompts/update-specification.prompt.md b/prompts/update-specification.prompt.md index 15c9f392..0f031ae1 100644 --- a/prompts/update-specification.prompt.md +++ b/prompts/update-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Specification diff --git a/prompts/write-coding-standards-from-file.prompt.md b/prompts/write-coding-standards-from-file.prompt.md index fd4294d7..1ea77958 100644 --- a/prompts/write-coding-standards-from-file.prompt.md +++ b/prompts/write-coding-standards-from-file.prompt.md @@ -1,7 +1,7 @@ --- agent: "agent" description: "Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt." -tools: ['createFile', 'editFiles', 'web/fetch', 'githubRepo', 'search', 'testFailure'] +tools: ['createFile', 'editFiles', 'fetch', 'githubRepo', 'search', 'testFailure'] --- # Write Coding Standards From File @@ -10,7 +10,7 @@ Use the existing syntax of the file(s) to establish the standards and style guid ## Rules and Configuration -Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. +Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. Parameters for the prompt have a text definition. There is one required parameter **`${fileName}`**, and several optional parameters **`${folderName}`**, **`${instructions}`**, and any **`[configVariableAsParameter]`**. @@ -21,7 +21,7 @@ Parameters for the prompt have a text definition. There is one required paramete * addToREADMEInsertions = ["atBegin", "middle", "beforeEnd", "bestFitUsingContext"]; - Default to **beforeEnd**. * createNewFile = true; -* web/fetchStyleURL = true; +* fetchStyleURL = true; * findInconsistencies = true; * fixInconsistencies = true; * newFileName = ["CONTRIBUTING.md", "STYLE.md", "CODE_OF_CONDUCT.md", "CODING_STANDARDS.md", "DEVELOPING.md", "CONTRIBUTION_GUIDE.md", "GUIDELINES.md", "PROJECT_STANDARDS.md", "BEST_PRACTICES.md", "HACKING.md"]; @@ -87,10 +87,10 @@ If any of the variable names are passed to prompt as-is, or as a similar but cle * Create a new file using the value, or one of the possible values, from `${newFileName}`. * If true, toggle both `${outputSpecToPrompt}` and `${addToREADME}` to false. -### `${web/fetchStyleURL} == true` +### `${fetchStyleURL} == true` -* Additionally use the data web/fetched from the links nested under level three heading `### web/fetch Links` as context for creating standards, specifications, and styling data for the new file, prompt, or `README.md`. -* For each relevant item in `### web/fetch Links`, run `#web/fetch ${item}`. +* Additionally use the data fetched from the links nested under level three heading `### Fetch Links` as context for creating standards, specifications, and styling data for the new file, prompt, or `README.md`. +* For each relevant item in `### Fetch Links`, run `#fetch ${item}`. ### `${findInconsistencies} == true` @@ -132,11 +132,11 @@ If any of the variable names are passed to prompt as-is, or as a similar but cle * Use the custom prompt, instructions, template, or other data passed as guiding template when composing the data for coding standards. -## **if** `${web/fetchStyleURL} == true` +## **if** `${fetchStyleURL} == true` -Depending on the programming language, for each link in list below, run `#web/fetch (URL)`, if programming language is `${fileName} == [ Style Guide]`. +Depending on the programming language, for each link in list below, run `#fetch (URL)`, if programming language is `${fileName} == [ Style Guide]`. -### web/fetch Links +### Fetch Links - [C Style Guide](https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html) - [C# Style Guide](https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions) @@ -223,7 +223,7 @@ Depending on the programming language, for each link in list below, run `#web/fe # Style Guide - This document defines the style and conventions used in this project. + This document defines the style and conventions used in this project. All contributions should follow these rules unless otherwise noted. ## 1. General Code Style @@ -311,7 +311,7 @@ Depending on the programming language, for each link in list below, run `#web/fe ## 8. Changes to This Guide - Style evolves. + Style evolves. Propose improvements by opening an issue or sending a patch updating this document. ``` -``` +``` \ No newline at end of file From 531b5118864d33e848863e415cb326ab532f8c77 Mon Sep 17 00:00:00 2001 From: Jon Corbin Date: Mon, 12 Jan 2026 14:07:00 -0500 Subject: [PATCH 24/57] fetch -> web/fetch everywhere --- agents/accessibility.agent.md | 2 +- agents/aem-frontend-specialist.agent.md | 2 +- agents/bicep-implement.agent.md | 2 +- agents/bicep-plan.agent.md | 2 +- agents/critical-thinking.agent.md | 2 +- agents/csharp-dotnet-janitor.agent.md | 2 +- agents/custom-agent-foundry.agent.md | 2 +- agents/demonstrate-understanding.agent.md | 2 +- agents/dotnet-upgrade.agent.md | 2 +- agents/drupal-expert.agent.md | 2 +- agents/expert-cpp-software-engineer.agent.md | 2 +- agents/gilfoyle.agent.md | 2 +- agents/hlbpa.agent.md | 2 +- agents/laravel-expert-agent.agent.md | 2 +- agents/mentor.agent.md | 2 +- agents/pimcore-expert.agent.md | 2 +- agents/principal-software-engineer.agent.md | 2 +- agents/prompt-builder.agent.md | 2 +- agents/se-system-architecture-reviewer.agent.md | 2 +- agents/se-technical-writer.agent.md | 2 +- agents/se-ux-ui-designer.agent.md | 2 +- agents/search-ai-optimization-expert.agent.md | 2 +- agents/semantic-kernel-dotnet.agent.md | 2 +- agents/semantic-kernel-python.agent.md | 2 +- agents/shopify-expert.agent.md | 2 +- agents/simple-app-idea-generator.agent.md | 2 +- agents/software-engineer-agent-v1.agent.md | 2 +- agents/specification.agent.md | 2 +- agents/tech-debt-remediation-plan.agent.md | 2 +- agents/technical-content-evaluator.agent.md | 2 +- agents/voidbeast-gpt41enhanced.agent.md | 2 +- agents/wg-code-alchemist.agent.md | 2 +- agents/wg-code-sentinel.agent.md | 2 +- prompts/add-educational-comments.prompt.md | 2 +- prompts/convert-plaintext-to-md.prompt.md | 2 +- prompts/create-architectural-decision-record.prompt.md | 2 +- prompts/create-github-action-workflow-specification.prompt.md | 2 +- prompts/create-implementation-plan.prompt.md | 2 +- prompts/create-llms.prompt.md | 2 +- prompts/create-oo-component-documentation.prompt.md | 2 +- prompts/create-specification.prompt.md | 2 +- prompts/create-technical-spike.prompt.md | 2 +- prompts/create-tldr-page.prompt.md | 2 +- prompts/github-copilot-starter.prompt.md | 4 ++-- prompts/playwright-explore-website.prompt.md | 2 +- prompts/playwright-generate-test.prompt.md | 2 +- prompts/suggest-awesome-github-copilot-chatmodes.prompt.md | 2 +- prompts/suggest-awesome-github-copilot-collections.prompt.md | 2 +- prompts/suggest-awesome-github-copilot-instructions.prompt.md | 2 +- prompts/suggest-awesome-github-copilot-prompts.prompt.md | 2 +- prompts/tldr-prompt.prompt.md | 2 +- prompts/update-avm-modules-in-bicep.prompt.md | 2 +- prompts/update-implementation-plan.prompt.md | 2 +- prompts/update-llms.prompt.md | 2 +- prompts/update-markdown-file-index.prompt.md | 2 +- prompts/update-oo-component-documentation.prompt.md | 2 +- prompts/update-specification.prompt.md | 2 +- prompts/write-coding-standards-from-file.prompt.md | 2 +- 58 files changed, 59 insertions(+), 59 deletions(-) diff --git a/agents/accessibility.agent.md b/agents/accessibility.agent.md index f2bf6d1c..69cd49fd 100644 --- a/agents/accessibility.agent.md +++ b/agents/accessibility.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing' model: GPT-4.1 -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Accessibility Expert diff --git a/agents/aem-frontend-specialist.agent.md b/agents/aem-frontend-specialist.agent.md index c0964644..7f172aeb 100644 --- a/agents/aem-frontend-specialist.agent.md +++ b/agents/aem-frontend-specialist.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration' model: 'GPT-4.1' -tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] +tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'figma-dev-mode-mcp-server'] --- # AEM Front-End Specialist diff --git a/agents/bicep-implement.agent.md b/agents/bicep-implement.agent.md index 56c7b350..62c7659f 100644 --- a/agents/bicep-implement.agent.md +++ b/agents/bicep-implement.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as an Azure Bicep Infrastructure as Code coding specialist that creates Bicep templates.' tools: - [ 'edit/editFiles', 'fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'web/fetch', 'runCommands', 'terminalLastCommand', 'get_bicep_best_practices', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure as Code coding Specialist diff --git a/agents/bicep-plan.agent.md b/agents/bicep-plan.agent.md index 26e7c885..23c83a05 100644 --- a/agents/bicep-plan.agent.md +++ b/agents/bicep-plan.agent.md @@ -1,7 +1,7 @@ --- description: 'Act as implementation planner for your Azure Bicep Infrastructure as Code task.' tools: - [ 'edit/editFiles', 'fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] + [ 'edit/editFiles', 'web/fetch', 'microsoft-docs', 'azure_design_architecture', 'get_bicep_best_practices', 'bestpractices', 'bicepschema', 'azure_get_azure_verified_module', 'todos' ] --- # Azure Bicep Infrastructure Planning diff --git a/agents/critical-thinking.agent.md b/agents/critical-thinking.agent.md index 4fa9da1e..0d056889 100644 --- a/agents/critical-thinking.agent.md +++ b/agents/critical-thinking.agent.md @@ -1,6 +1,6 @@ --- description: 'Challenge assumptions and encourage critical thinking to ensure the best possible solution and outcomes.' -tools: ['codebase', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] +tools: ['codebase', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'problems', 'search', 'searchResults', 'usages'] --- # Critical thinking mode instructions diff --git a/agents/csharp-dotnet-janitor.agent.md b/agents/csharp-dotnet-janitor.agent.md index a7fd15f3..3273fc35 100644 --- a/agents/csharp-dotnet-janitor.agent.md +++ b/agents/csharp-dotnet-janitor.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # C#/.NET Janitor diff --git a/agents/custom-agent-foundry.agent.md b/agents/custom-agent-foundry.agent.md index 576d421c..58ebec9a 100644 --- a/agents/custom-agent-foundry.agent.md +++ b/agents/custom-agent-foundry.agent.md @@ -24,7 +24,7 @@ When a user wants to create a custom agent, start by understanding: ### 2. Custom Agent Design Principles **Tool Selection Strategy:** -- **Read-only agents** (planning, research, review): Use `['search', 'fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` +- **Read-only agents** (planning, research, review): Use `['search', 'web/fetch', 'githubRepo', 'usages', 'grep_search', 'read_file', 'semantic_search']` - **Implementation agents** (coding, refactoring): Add `['replace_string_in_file', 'multi_replace_string_in_file', 'create_file', 'run_in_terminal']` - **Testing agents**: Include `['run_notebook_cell', 'test_failure', 'run_in_terminal']` - **Deployment agents**: Include `['run_in_terminal', 'create_and_run_task', 'get_errors']` diff --git a/agents/demonstrate-understanding.agent.md b/agents/demonstrate-understanding.agent.md index 63dc7644..49731de4 100644 --- a/agents/demonstrate-understanding.agent.md +++ b/agents/demonstrate-understanding.agent.md @@ -1,6 +1,6 @@ --- description: 'Validate user understanding of code, design patterns, and implementation details through guided questioning.' -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Demonstrate Understanding mode instructions diff --git a/agents/dotnet-upgrade.agent.md b/agents/dotnet-upgrade.agent.md index fe6472c3..effc8c75 100644 --- a/agents/dotnet-upgrade.agent.md +++ b/agents/dotnet-upgrade.agent.md @@ -1,6 +1,6 @@ --- description: 'Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation.' -tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'fetch', 'microsoft.docs.mcp'] +tools: ['codebase', 'edit/editFiles', 'search', 'runCommands', 'runTasks', 'runTests', 'problems', 'changes', 'usages', 'findTestFiles', 'testFailure', 'terminalLastCommand', 'terminalSelection', 'web/fetch', 'microsoft.docs.mcp'] --- # .NET Upgrade Collection diff --git a/agents/drupal-expert.agent.md b/agents/drupal-expert.agent.md index 2555266f..1db3015d 100644 --- a/agents/drupal-expert.agent.md +++ b/agents/drupal-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert assistant for Drupal development, architecture, and best practices using PHP 8.3+ and modern Drupal patterns' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Drupal Expert diff --git a/agents/expert-cpp-software-engineer.agent.md b/agents/expert-cpp-software-engineer.agent.md index cbb1596f..7050cde3 100644 --- a/agents/expert-cpp-software-engineer.agent.md +++ b/agents/expert-cpp-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide expert C++ software engineering guidance using modern C++ and industry best practices.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp'] --- # Expert C++ software engineer mode instructions diff --git a/agents/gilfoyle.agent.md b/agents/gilfoyle.agent.md index 2ffd7fff..269614c0 100644 --- a/agents/gilfoyle.agent.md +++ b/agents/gilfoyle.agent.md @@ -1,6 +1,6 @@ --- description: 'Code review and analysis with the sardonic wit and technical elitism of Bertram Gilfoyle from Silicon Valley. Prepare for brutal honesty about your code.' -tools: ['changes', 'codebase', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'vscodeAPI'] --- # Gilfoyle Code Review Mode diff --git a/agents/hlbpa.agent.md b/agents/hlbpa.agent.md index decdfe6c..cdedf3c9 100644 --- a/agents/hlbpa.agent.md +++ b/agents/hlbpa.agent.md @@ -5,7 +5,7 @@ tools: - 'search/codebase' - 'changes' - 'edit/editFiles' - - 'fetch' + - 'web/fetch' - 'findTestFiles' - 'githubRepo' - 'runCommands' diff --git a/agents/laravel-expert-agent.agent.md b/agents/laravel-expert-agent.agent.md index c066d7c1..8badba2e 100644 --- a/agents/laravel-expert-agent.agent.md +++ b/agents/laravel-expert-agent.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Laravel development assistant specializing in modern Laravel 12+ applications with Eloquent, Artisan, testing, and best practices' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems', 'search'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems', 'search'] --- # Laravel Expert Agent diff --git a/agents/mentor.agent.md b/agents/mentor.agent.md index 69cb457d..c6531ad6 100644 --- a/agents/mentor.agent.md +++ b/agents/mentor.agent.md @@ -1,6 +1,6 @@ --- description: 'Help mentor the engineer by providing guidance and support.' -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] --- # Mentor mode instructions diff --git a/agents/pimcore-expert.agent.md b/agents/pimcore-expert.agent.md index 8e915e3b..d841a44e 100644 --- a/agents/pimcore-expert.agent.md +++ b/agents/pimcore-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Pimcore development assistant specializing in CMS, DAM, PIM, and E-Commerce solutions with Symfony integration' model: GPT-4.1 | 'gpt-5' | 'Claude Sonnet 4.5' -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Pimcore Expert diff --git a/agents/principal-software-engineer.agent.md b/agents/principal-software-engineer.agent.md index 82056fc4..68875d4c 100644 --- a/agents/principal-software-engineer.agent.md +++ b/agents/principal-software-engineer.agent.md @@ -1,6 +1,6 @@ --- description: 'Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Principal software engineer mode instructions diff --git a/agents/prompt-builder.agent.md b/agents/prompt-builder.agent.md index cb34c06e..5e1a76ef 100644 --- a/agents/prompt-builder.agent.md +++ b/agents/prompt-builder.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert prompt engineering and validation system for creating high-quality prompts - Brought to you by microsoft/edge-ai' -tools: ['codebase', 'edit/editFiles', 'fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] +tools: ['codebase', 'edit/editFiles', 'web/fetch', 'githubRepo', 'problems', 'runCommands', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'usages', 'terraform', 'Microsoft Docs', 'context7'] --- # Prompt Builder Instructions diff --git a/agents/se-system-architecture-reviewer.agent.md b/agents/se-system-architecture-reviewer.agent.md index 3942b3e8..7ac77dec 100644 --- a/agents/se-system-architecture-reviewer.agent.md +++ b/agents/se-system-architecture-reviewer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Architect' description: 'System architecture review specialist with Well-Architected frameworks, design validation, and scalability analysis for AI and distributed systems' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # System Architecture Reviewer diff --git a/agents/se-technical-writer.agent.md b/agents/se-technical-writer.agent.md index 4fcda734..5b4e8ed7 100644 --- a/agents/se-technical-writer.agent.md +++ b/agents/se-technical-writer.agent.md @@ -2,7 +2,7 @@ name: 'SE: Tech Writer' description: 'Technical writing specialist for creating developer documentation, technical blogs, tutorials, and educational content' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # Technical Writer diff --git a/agents/se-ux-ui-designer.agent.md b/agents/se-ux-ui-designer.agent.md index 6b144a95..d1ee41aa 100644 --- a/agents/se-ux-ui-designer.agent.md +++ b/agents/se-ux-ui-designer.agent.md @@ -2,7 +2,7 @@ name: 'SE: UX Designer' description: 'Jobs-to-be-Done analysis, user journey mapping, and UX research artifacts for Figma and design workflows' model: GPT-5 -tools: ['codebase', 'edit/editFiles', 'search', 'fetch'] +tools: ['codebase', 'edit/editFiles', 'search', 'web/fetch'] --- # UX/UI Designer diff --git a/agents/search-ai-optimization-expert.agent.md b/agents/search-ai-optimization-expert.agent.md index 50dd32f1..123fb7a8 100644 --- a/agents/search-ai-optimization-expert.agent.md +++ b/agents/search-ai-optimization-expert.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert guidance for modern search optimization: SEO, Answer Engine Optimization (AEO), and Generative Engine Optimization (GEO) with AI-ready content strategies' -tools: ['codebase', 'fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] +tools: ['codebase', 'web/fetch', 'githubRepo', 'terminalCommand', 'edit/editFiles', 'problems'] --- # Search & AI Optimization Expert diff --git a/agents/semantic-kernel-dotnet.agent.md b/agents/semantic-kernel-dotnet.agent.md index 02efb99f..a93dfc71 100644 --- a/agents/semantic-kernel-dotnet.agent.md +++ b/agents/semantic-kernel-dotnet.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the .NET version of Semantic Kernel.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Semantic Kernel .NET mode instructions diff --git a/agents/semantic-kernel-python.agent.md b/agents/semantic-kernel-python.agent.md index 39fb04b7..eb680ddc 100644 --- a/agents/semantic-kernel-python.agent.md +++ b/agents/semantic-kernel-python.agent.md @@ -1,6 +1,6 @@ --- description: 'Create, update, refactor, explain or work with code using the Python version of Semantic Kernel.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'configurePythonEnvironment', 'getPythonEnvironmentInfo', 'getPythonExecutableCommand', 'installPythonPackage'] --- # Semantic Kernel Python mode instructions diff --git a/agents/shopify-expert.agent.md b/agents/shopify-expert.agent.md index 8b5cb4f3..66d89060 100644 --- a/agents/shopify-expert.agent.md +++ b/agents/shopify-expert.agent.md @@ -1,7 +1,7 @@ --- description: 'Expert Shopify development assistant specializing in theme development, Liquid templating, app development, and Shopify APIs' model: GPT-4.1 -tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'fetch', 'githubRepo', 'runTests', 'problems'] +tools: ['codebase', 'terminalCommand', 'edit/editFiles', 'web/fetch', 'githubRepo', 'runTests', 'problems'] --- # Shopify Expert diff --git a/agents/simple-app-idea-generator.agent.md b/agents/simple-app-idea-generator.agent.md index 970703a3..91332d41 100644 --- a/agents/simple-app-idea-generator.agent.md +++ b/agents/simple-app-idea-generator.agent.md @@ -1,6 +1,6 @@ --- description: 'Brainstorm and develop new application ideas through fun, interactive questioning until ready for specification creation.' -tools: ['changes', 'codebase', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] +tools: ['changes', 'codebase', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'search', 'searchResults', 'usages', 'microsoft.docs.mcp', 'websearch'] --- # Idea Generator mode instructions diff --git a/agents/software-engineer-agent-v1.agent.md b/agents/software-engineer-agent-v1.agent.md index 39cfe17b..b4b7bafc 100644 --- a/agents/software-engineer-agent-v1.agent.md +++ b/agents/software-engineer-agent-v1.agent.md @@ -1,6 +1,6 @@ --- description: 'Expert-level software engineering agent. Deliver production-ready, maintainable code. Execute systematically and specification-driven. Document comprehensively. Operate autonomously and adaptively.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Software Engineer Agent v1 diff --git a/agents/specification.agent.md b/agents/specification.agent.md index 8ae88d58..b120dfe5 100644 --- a/agents/specification.agent.md +++ b/agents/specification.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate or update specification documents for new or existing functionality.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github'] --- # Specification mode instructions diff --git a/agents/tech-debt-remediation-plan.agent.md b/agents/tech-debt-remediation-plan.agent.md index 5e96c3c2..6941896c 100644 --- a/agents/tech-debt-remediation-plan.agent.md +++ b/agents/tech-debt-remediation-plan.agent.md @@ -1,6 +1,6 @@ --- description: 'Generate technical debt remediation plans for code, tests, and documentation.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'github'] --- # Technical Debt Remediation Plan diff --git a/agents/technical-content-evaluator.agent.md b/agents/technical-content-evaluator.agent.md index a3bad60f..63237549 100644 --- a/agents/technical-content-evaluator.agent.md +++ b/agents/technical-content-evaluator.agent.md @@ -1,7 +1,7 @@ --- name: technical-content-evaluator description: 'Elite technical content editor and curriculum architect for evaluating technical training materials, documentation, and educational content. Reviews for technical accuracy, pedagogical excellence, content flow, code validation, and ensures A-grade quality standards.' -tools: ['edit', 'search', 'shell', 'fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] +tools: ['edit', 'search', 'shell', 'web/fetch', 'runTasks', 'githubRepo', 'todos', 'runSubagent'] model: Claude Sonnet 4.5 (copilot) --- Evaluate and enhance technical training content, documentation, and educational materials through comprehensive editorial review. Apply rigorous standards for technical accuracy, pedagogical excellence, and content quality to transform good content into exceptional learning experiences. diff --git a/agents/voidbeast-gpt41enhanced.agent.md b/agents/voidbeast-gpt41enhanced.agent.md index 0a633efc..e7782f65 100644 --- a/agents/voidbeast-gpt41enhanced.agent.md +++ b/agents/voidbeast-gpt41enhanced.agent.md @@ -1,6 +1,6 @@ --- description: '4.1 voidBeast_GPT41Enhanced 1.0 : a advanced autonomous developer agent, designed for elite full-stack development with enhanced multi-mode capabilities. This latest evolution features sophisticated mode detection, comprehensive research capabilities, and never-ending problem resolution. Plan/Act/Deep Research/Analyzer/Checkpoints(Memory)/Prompt Generator Modes.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'readCellOutput', 'runCommands', 'runNotebooks', 'runTasks', 'runTests', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'updateUserPreferences', 'usages', 'vscodeAPI'] --- # voidBeast_GPT41Enhanced 1.0 - Elite Developer AI Assistant diff --git a/agents/wg-code-alchemist.agent.md b/agents/wg-code-alchemist.agent.md index a41eeb0a..000cd749 100644 --- a/agents/wg-code-alchemist.agent.md +++ b/agents/wg-code-alchemist.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Alchemist to transform your code with Clean Code principles and SOLID design' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Alchemist, an expert software engineer specializing in Clean Code practices and SOLID principles. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/agents/wg-code-sentinel.agent.md b/agents/wg-code-sentinel.agent.md index adafd2af..bd59a600 100644 --- a/agents/wg-code-sentinel.agent.md +++ b/agents/wg-code-sentinel.agent.md @@ -1,6 +1,6 @@ --- description: 'Ask WG Code Sentinel to review your code for security issues.' -tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runNotebooks', 'runTasks', 'search', 'searchResults', 'terminalLastCommand', 'terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- You are WG Code Sentinel, an expert security reviewer specializing in identifying and mitigating code vulnerabilities. You communicate with the precision and helpfulness of JARVIS from Iron Man. diff --git a/prompts/add-educational-comments.prompt.md b/prompts/add-educational-comments.prompt.md index 2469d180..3aff544d 100644 --- a/prompts/add-educational-comments.prompt.md +++ b/prompts/add-educational-comments.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Add educational comments to the file specified, or prompt asking for file to comment if one is not provided.' -tools: ['edit/editFiles', 'fetch', 'todos'] +tools: ['edit/editFiles', 'web/fetch', 'todos'] --- # Add Educational Comments diff --git a/prompts/convert-plaintext-to-md.prompt.md b/prompts/convert-plaintext-to-md.prompt.md index 6029e5f2..4af122da 100644 --- a/prompts/convert-plaintext-to-md.prompt.md +++ b/prompts/convert-plaintext-to-md.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Convert a text-based document to markdown following instructions from prompt, or if a documented option is passed, follow the instructions for that option.' -tools: ['edit', 'edit/editFiles', 'fetch', 'runCommands', 'search', 'search/readFile', 'search/textSearch'] +tools: ['edit', 'edit/editFiles', 'web/fetch', 'runCommands', 'search', 'search/readFile', 'search/textSearch'] --- # Convert Plaintext Documentation to Markdown diff --git a/prompts/create-architectural-decision-record.prompt.md b/prompts/create-architectural-decision-record.prompt.md index 077b6afe..5b1840b8 100644 --- a/prompts/create-architectural-decision-record.prompt.md +++ b/prompts/create-architectural-decision-record.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create an Architectural Decision Record (ADR) document for AI-optimized decision documentation.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Architectural Decision Record diff --git a/prompts/create-github-action-workflow-specification.prompt.md b/prompts/create-github-action-workflow-specification.prompt.md index cec08185..9979f4e5 100644 --- a/prompts/create-github-action-workflow-specification.prompt.md +++ b/prompts/create-github-action-workflow-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runInTerminal2', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'Microsoft Docs'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'new', 'openSimpleBrowser', 'problems', 'runCommands', 'runInTerminal2', 'runNotebooks', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI', 'microsoft.docs.mcp', 'github', 'Microsoft Docs'] --- # Create GitHub Actions Workflow Specification diff --git a/prompts/create-implementation-plan.prompt.md b/prompts/create-implementation-plan.prompt.md index e6ed3b11..ffc0bc0f 100644 --- a/prompts/create-implementation-plan.prompt.md +++ b/prompts/create-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new implementation plan file for new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Implementation Plan diff --git a/prompts/create-llms.prompt.md b/prompts/create-llms.prompt.md index 95f661c6..c9e5e58f 100644 --- a/prompts/create-llms.prompt.md +++ b/prompts/create-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create LLMs.txt File from Repository Structure diff --git a/prompts/create-oo-component-documentation.prompt.md b/prompts/create-oo-component-documentation.prompt.md index 1042534d..33bb0cf9 100644 --- a/prompts/create-oo-component-documentation.prompt.md +++ b/prompts/create-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create comprehensive, standardized documentation for object-oriented components following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Generate Standard OO Component Documentation diff --git a/prompts/create-specification.prompt.md b/prompts/create-specification.prompt.md index 664e695e..08093e04 100644 --- a/prompts/create-specification.prompt.md +++ b/prompts/create-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a new specification file for the solution, optimized for Generative AI consumption.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Create Specification diff --git a/prompts/create-technical-spike.prompt.md b/prompts/create-technical-spike.prompt.md index aa7162ec..678b89e3 100644 --- a/prompts/create-technical-spike.prompt.md +++ b/prompts/create-technical-spike.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.' -tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] +tools: ['runCommands', 'runTasks', 'edit', 'search', 'extensions', 'usages', 'vscodeAPI', 'think', 'problems', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'Microsoft Docs', 'search'] --- # Create Technical Spike Document diff --git a/prompts/create-tldr-page.prompt.md b/prompts/create-tldr-page.prompt.md index 03a0f93f..fa5f6751 100644 --- a/prompts/create-tldr-page.prompt.md +++ b/prompts/create-tldr-page.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create a tldr page from documentation URLs and command examples, requiring both URL and command name.' -tools: ['edit/createFile', 'fetch'] +tools: ['edit/createFile', 'web/fetch'] --- # Create TLDR Page diff --git a/prompts/github-copilot-starter.prompt.md b/prompts/github-copilot-starter.prompt.md index f1fddc3f..dee90a1b 100644 --- a/prompts/github-copilot-starter.prompt.md +++ b/prompts/github-copilot-starter.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' model: Claude Sonnet 4 -tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'fetch'] +tools: ['edit', 'githubRepo', 'changes', 'problems', 'search', 'runCommands', 'web/fetch'] description: 'Set up complete GitHub Copilot configuration for a new project based on technology stack' --- @@ -237,7 +237,7 @@ Requirements for the form: ```yaml --- description: Generate an implementation plan for new features or refactoring existing code. -tools: ['codebase', 'fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] +tools: ['codebase', 'web/fetch', 'findTestFiles', 'githubRepo', 'search', 'usages'] model: Claude Sonnet 4 --- # Planning mode instructions diff --git a/prompts/playwright-explore-website.prompt.md b/prompts/playwright-explore-website.prompt.md index ad2917f4..e8cc123f 100644 --- a/prompts/playwright-explore-website.prompt.md +++ b/prompts/playwright-explore-website.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Website exploration for testing using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'findTestFiles', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright'] model: 'Claude Sonnet 4' --- diff --git a/prompts/playwright-generate-test.prompt.md b/prompts/playwright-generate-test.prompt.md index 103195db..1e683caf 100644 --- a/prompts/playwright-generate-test.prompt.md +++ b/prompts/playwright-generate-test.prompt.md @@ -1,7 +1,7 @@ --- agent: agent description: 'Generate a Playwright test based on a scenario using Playwright MCP' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'web/fetch', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'playwright/*'] model: 'Claude Sonnet 4.5' --- diff --git a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md index a3203896..054d3b26 100644 --- a/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +++ b/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Custom Chat Modes diff --git a/prompts/suggest-awesome-github-copilot-collections.prompt.md b/prompts/suggest-awesome-github-copilot-collections.prompt.md index 40472aa7..efde6643 100644 --- a/prompts/suggest-awesome-github-copilot-collections.prompt.md +++ b/prompts/suggest-awesome-github-copilot-collections.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Collections diff --git a/prompts/suggest-awesome-github-copilot-instructions.prompt.md b/prompts/suggest-awesome-github-copilot-instructions.prompt.md index be06e76e..08d3fa0c 100644 --- a/prompts/suggest-awesome-github-copilot-instructions.prompt.md +++ b/prompts/suggest-awesome-github-copilot-instructions.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Instructions diff --git a/prompts/suggest-awesome-github-copilot-prompts.prompt.md b/prompts/suggest-awesome-github-copilot-prompts.prompt.md index ab3a6b11..904f12a3 100644 --- a/prompts/suggest-awesome-github-copilot-prompts.prompt.md +++ b/prompts/suggest-awesome-github-copilot-prompts.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository.' -tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'fetch', 'githubRepo', 'todos', 'search'] +tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Prompts diff --git a/prompts/tldr-prompt.prompt.md b/prompts/tldr-prompt.prompt.md index 479661de..4369d10f 100644 --- a/prompts/tldr-prompt.prompt.md +++ b/prompts/tldr-prompt.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Create tldr summaries for GitHub Copilot files (prompts, agents, instructions, collections), MCP servers, or documentation from URLs and queries.' -tools: ['fetch', 'search/readFile', 'search', 'search/textSearch'] +tools: ['web/fetch', 'search/readFile', 'search', 'search/textSearch'] model: 'claude-sonnet-4' --- diff --git a/prompts/update-avm-modules-in-bicep.prompt.md b/prompts/update-avm-modules-in-bicep.prompt.md index b603a880..49fcda94 100644 --- a/prompts/update-avm-modules-in-bicep.prompt.md +++ b/prompts/update-avm-modules-in-bicep.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update Azure Verified Modules (AVM) to latest versions in Bicep files.' -tools: ['search/codebase', 'think', 'changes', 'fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] +tools: ['search/codebase', 'think', 'changes', 'web/fetch', 'search/searchResults', 'todos', 'edit/editFiles', 'search', 'runCommands', 'bicepschema', 'azure_get_schema_for_Bicep'] --- # Update Azure Verified Modules in Bicep Files diff --git a/prompts/update-implementation-plan.prompt.md b/prompts/update-implementation-plan.prompt.md index 3ff01b07..8de4eab8 100644 --- a/prompts/update-implementation-plan.prompt.md +++ b/prompts/update-implementation-plan.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing implementation plan file with new or update requirements to provide new features, refactoring existing code or upgrading packages, design, architecture or infrastructure.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Implementation Plan diff --git a/prompts/update-llms.prompt.md b/prompts/update-llms.prompt.md index 0e3f4e21..bbeab69d 100644 --- a/prompts/update-llms.prompt.md +++ b/prompts/update-llms.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update LLMs.txt File diff --git a/prompts/update-markdown-file-index.prompt.md b/prompts/update-markdown-file-index.prompt.md index 8078097a..08f98a67 100644 --- a/prompts/update-markdown-file-index.prompt.md +++ b/prompts/update-markdown-file-index.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update a markdown file section with an index/table of files from a specified folder.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'findTestFiles', 'githubRepo', 'openSimpleBrowser', 'problems', 'runCommands', 'runTasks', 'runTests', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Markdown File Index diff --git a/prompts/update-oo-component-documentation.prompt.md b/prompts/update-oo-component-documentation.prompt.md index c3857e4a..5300f0f7 100644 --- a/prompts/update-oo-component-documentation.prompt.md +++ b/prompts/update-oo-component-documentation.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update existing object-oriented component documentation following industry best practices and architectural documentation standards.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Standard OO Component Documentation diff --git a/prompts/update-specification.prompt.md b/prompts/update-specification.prompt.md index 0f031ae1..15c9f392 100644 --- a/prompts/update-specification.prompt.md +++ b/prompts/update-specification.prompt.md @@ -1,7 +1,7 @@ --- agent: 'agent' description: 'Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code.' -tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] +tools: ['changes', 'search/codebase', 'edit/editFiles', 'extensions', 'web/fetch', 'githubRepo', 'openSimpleBrowser', 'problems', 'runTasks', 'search', 'search/searchResults', 'runCommands/terminalLastCommand', 'runCommands/terminalSelection', 'testFailure', 'usages', 'vscodeAPI'] --- # Update Specification diff --git a/prompts/write-coding-standards-from-file.prompt.md b/prompts/write-coding-standards-from-file.prompt.md index 1ea77958..45af53ba 100644 --- a/prompts/write-coding-standards-from-file.prompt.md +++ b/prompts/write-coding-standards-from-file.prompt.md @@ -1,7 +1,7 @@ --- agent: "agent" description: "Write a coding standards document for a project using the coding styles from the file(s) and/or folder(s) passed as arguments in the prompt." -tools: ['createFile', 'editFiles', 'fetch', 'githubRepo', 'search', 'testFailure'] +tools: ['createFile', 'editFiles', 'web/fetch', 'githubRepo', 'search', 'testFailure'] --- # Write Coding Standards From File From c7178c31c6b9f0e6251c28831c754fb00386927e Mon Sep 17 00:00:00 2001 From: Jon Corbin Date: Mon, 12 Jan 2026 14:09:49 -0500 Subject: [PATCH 25/57] Apply suggestions from code review --- prompts/write-coding-standards-from-file.prompt.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prompts/write-coding-standards-from-file.prompt.md b/prompts/write-coding-standards-from-file.prompt.md index 45af53ba..d075c574 100644 --- a/prompts/write-coding-standards-from-file.prompt.md +++ b/prompts/write-coding-standards-from-file.prompt.md @@ -10,7 +10,7 @@ Use the existing syntax of the file(s) to establish the standards and style guid ## Rules and Configuration -Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. +Below is a set of quasi-configuration `boolean` and `string[]` variables. Conditions for handling `true`, or other values for each variable are under the level two heading `## Variable and Parameter Configuration Conditions`. Parameters for the prompt have a text definition. There is one required parameter **`${fileName}`**, and several optional parameters **`${folderName}`**, **`${instructions}`**, and any **`[configVariableAsParameter]`**. @@ -223,7 +223,7 @@ Depending on the programming language, for each link in list below, run `#fetch # Style Guide - This document defines the style and conventions used in this project. + This document defines the style and conventions used in this project. All contributions should follow these rules unless otherwise noted. ## 1. General Code Style @@ -311,7 +311,7 @@ Depending on the programming language, for each link in list below, run `#fetch ## 8. Changes to This Guide - Style evolves. + Style evolves. Propose improvements by opening an issue or sending a patch updating this document. ``` ``` \ No newline at end of file From 9587bdef20103d1d2cf1fa37178cee2318872aca Mon Sep 17 00:00:00 2001 From: bmaucote Date: Tue, 13 Jan 2026 11:50:50 +0100 Subject: [PATCH 26/57] Add handoffs --- instructions/agents.instructions.md | 170 ++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) diff --git a/instructions/agents.instructions.md b/instructions/agents.instructions.md index 8d602c88..ba037976 100644 --- a/instructions/agents.instructions.md +++ b/instructions/agents.instructions.md @@ -76,6 +76,176 @@ infer: true - Only supported for organization/enterprise level agents - See "MCP Server Configuration" section below +#### **handoffs** (OPTIONAL, VS Code only) +- Enable guided sequential workflows that transition between agents with suggested next steps +- List of handoff configurations, each specifying a target agent and optional prompt +- After a chat response completes, handoff buttons appear allowing users to move to the next agent +- Only supported in VS Code (version 1.106+) +- See "Handoffs Configuration" section below for details + +## Handoffs Configuration + +Handoffs enable you to create guided sequential workflows that transition seamlessly between custom agents. This is useful for orchestrating multi-step development workflows where users can review and approve each step before moving to the next one. + +### Common Handoff Patterns + +- **Planning → Implementation**: Generate a plan in a planning agent, then hand off to an implementation agent to start coding +- **Implementation → Review**: Complete implementation, then switch to a code review agent to check for quality and security issues +- **Write Failing Tests → Write Passing Tests**: Generate failing tests, then hand off to implement the code that makes those tests pass +- **Research → Documentation**: Research a topic, then transition to a documentation agent to write guides + +### Handoff Frontmatter Structure + +Define handoffs in the agent file's YAML frontmatter using the `handoffs` field: + +```yaml +--- +description: 'Brief description of the agent' +name: 'Agent Name' +tools: ['search', 'read'] +handoffs: + - label: Start Implementation + agent: implementation + prompt: 'Now implement the plan outlined above.' + send: false + - label: Code Review + agent: code-review + prompt: 'Please review the implementation for quality and security issues.' + send: false +--- +``` + +### Handoff Properties + +Each handoff in the list must include the following properties: + +| Property | Type | Required | Description | +|----------|------|----------|-------------| +| `label` | string | Yes | The display text shown on the handoff button in the chat interface | +| `agent` | string | Yes | The target agent identifier to switch to (name or filename without `.agent.md`) | +| `prompt` | string | No | The prompt text to pre-fill in the target agent's chat input | +| `send` | boolean | No | If `true`, automatically submits the prompt to the target agent (default: `false`) | + +### Handoff Behavior + +- **Button Display**: Handoff buttons appear as interactive suggestions after a chat response completes +- **Context Preservation**: When users select a handoff button, they switch to the target agent with conversation context maintained +- **Pre-filled Prompt**: If a `prompt` is specified, it appears pre-filled in the target agent's chat input +- **Manual vs Auto**: When `send: false`, users must review and manually send the pre-filled prompt; when `send: true`, the prompt is automatically submitted + +### Handoff Configuration Guidelines + +#### When to Use Handoffs + +- **Multi-step workflows**: Breaking down complex tasks across specialized agents +- **Quality gates**: Ensuring review steps between implementation phases +- **Guided processes**: Directing users through a structured development process +- **Skill transitions**: Moving from planning/design to implementation/testing specialists + +#### Best Practices + +- **Clear Labels**: Use action-oriented labels that clearly indicate the next step + - ✅ Good: "Start Implementation", "Review for Security", "Write Tests" + - ❌ Avoid: "Next", "Go to agent", "Do something" + +- **Relevant Prompts**: Provide context-aware prompts that reference the completed work + - ✅ Good: `'Now implement the plan outlined above.'` + - ❌ Avoid: Generic prompts without context + +- **Selective Use**: Don't create handoffs to every possible agent; focus on logical workflow transitions + - Limit to 2-3 most relevant next steps per agent + - Only add handoffs for agents that naturally follow in the workflow + +- **Agent Dependencies**: Ensure target agents exist before creating handoffs + - Handoffs to non-existent agents will be silently ignored + - Test handoffs to verify they work as expected + +- **Prompt Content**: Keep prompts concise and actionable + - Refer to work from the current agent without duplicating content + - Provide any necessary context the target agent might need + +### Example: Complete Workflow + +Here's an example of three agents with handoffs creating a complete workflow: + +**Planning Agent** (`planner.agent.md`): +```yaml +--- +description: 'Generate an implementation plan for new features or refactoring' +name: 'Planner' +tools: ['search', 'read'] +handoffs: + - label: Implement Plan + agent: implementer + prompt: 'Implement the plan outlined above.' + send: false +--- +# Planner Agent +You are a planning specialist. Your task is to: +1. Analyze the requirements +2. Break down the work into logical steps +3. Generate a detailed implementation plan +4. Identify testing requirements + +Do not write any code - focus only on planning. +``` + +**Implementation Agent** (`implementer.agent.md`): +```yaml +--- +description: 'Implement code based on a plan or specification' +name: 'Implementer' +tools: ['read', 'edit', 'search', 'execute'] +handoffs: + - label: Review Implementation + agent: reviewer + prompt: 'Please review this implementation for code quality, security, and adherence to best practices.' + send: false +--- +# Implementer Agent +You are an implementation specialist. Your task is to: +1. Follow the provided plan or specification +2. Write clean, maintainable code +3. Include appropriate comments and documentation +4. Follow project coding standards + +Implement the solution completely and thoroughly. +``` + +**Review Agent** (`reviewer.agent.md`): +```yaml +--- +description: 'Review code for quality, security, and best practices' +name: 'Reviewer' +tools: ['read', 'search'] +handoffs: + - label: Back to Planning + agent: planner + prompt: 'Review the feedback above and determine if a new plan is needed.' + send: false +--- +# Code Review Agent +You are a code review specialist. Your task is to: +1. Check code quality and maintainability +2. Identify security issues and vulnerabilities +3. Verify adherence to project standards +4. Suggest improvements + +Provide constructive feedback on the implementation. +``` + +This workflow allows a developer to: +1. Start with the Planner agent to create a detailed plan +2. Hand off to the Implementer agent to write code based on the plan +3. Hand off to the Reviewer agent to check the implementation +4. Optionally hand off back to planning if significant issues are found + +### Version Compatibility + +- **VS Code**: Handoffs are supported in VS Code 1.106 and later +- **GitHub.com**: Not currently supported; agent transition workflows use different mechanisms +- **Other IDEs**: Limited or no support; focus on VS Code implementations for maximum compatibility + ## Tool Configuration ### Tool Specification Strategies From a3035a6e7cad53ef68ca321d5f5365c0043af519 Mon Sep 17 00:00:00 2001 From: Tianqi Zhang Date: Mon, 22 Dec 2025 12:46:23 +0800 Subject: [PATCH 27/57] Add Microsoft Code Reference and Microsoft Docs skills with detailed usage instructions --- docs/README.skills.md | 2 + skills/microsoft-code-reference/SKILL.md | 75 ++++++++++++++++++++++++ skills/microsoft-docs/SKILL.md | 56 ++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 skills/microsoft-code-reference/SKILL.md create mode 100644 skills/microsoft-docs/SKILL.md diff --git a/docs/README.skills.md b/docs/README.skills.md index b83420f1..355d1242 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -31,4 +31,6 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | [vscode-ext-commands](../skills/vscode-ext-commands/SKILL.md) | Guidelines for contributing commands in VS Code extensions. Indicates naming convention, visibility, localization and other relevant attributes, following VS Code extension development guidelines, libraries and good practices | None | | [vscode-ext-localization](../skills/vscode-ext-localization/SKILL.md) | Guidelines for proper localization of VS Code extensions, following VS Code extension development guidelines, libraries and good practices | None | | [web-design-reviewer](../skills/web-design-reviewer/SKILL.md) | This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level. | `references/framework-fixes.md`
`references/visual-checklist.md` | +| [microsoft-code-reference](../skills/microsoft-code-reference/SKILL.md) | Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs. | - | +| [microsoft-docs](../skills/microsoft-docs/SKILL.md) | Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. | - | | [webapp-testing](../skills/webapp-testing/SKILL.md) | Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs. | `test-helper.js` | diff --git a/skills/microsoft-code-reference/SKILL.md b/skills/microsoft-code-reference/SKILL.md new file mode 100644 index 00000000..c25af661 --- /dev/null +++ b/skills/microsoft-code-reference/SKILL.md @@ -0,0 +1,75 @@ +--- +name: microsoft-code-reference +description: Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs. +compatibility: Requires Microsoft Learn MCP Server (https://learn.microsoft.com/api/mcp) +--- + +# Microsoft Code Reference + +## Tools + +| Need | Tool | Example | +|------|------|---------| +| API method/class lookup | `microsoft_docs_search` | `"BlobClient UploadAsync Azure.Storage.Blobs"` | +| Working code sample | `microsoft_code_sample_search` | `query: "upload blob managed identity", language: "python"` | +| Full API reference | `microsoft_docs_fetch` | Fetch URL from search (for overloads, full signatures) | + +## Finding Code Samples + +Use `microsoft_code_sample_search` to get official, working examples: + +``` +microsoft_code_sample_search(query: "upload file to blob storage", language: "csharp") +microsoft_code_sample_search(query: "authenticate with managed identity", language: "python") +microsoft_code_sample_search(query: "send message service bus", language: "javascript") +``` + +Languages: `python`, `csharp`, `javascript`, `typescript`, `java`, `go`, `powershell`, `cli` + +**When to use:** +- Before writing code—find a working pattern to follow +- After errors—compare your code against a known-good sample +- Unsure of initialization/setup—samples show complete context + +## API Lookups + +``` +# Verify method exists (include namespace for precision) +"BlobClient UploadAsync Azure.Storage.Blobs" +"GraphServiceClient Users Microsoft.Graph" + +# Find class/interface +"DefaultAzureCredential class Azure.Identity" + +# Find correct package +"Azure Blob Storage NuGet package" +"azure-storage-blob pip package" +``` + +Fetch full page when method has multiple overloads or you need complete parameter details. + +## Error Troubleshooting + +| Error Type | Query | +|------------|-------| +| Method not found | `"[ClassName] methods [Namespace]"` | +| Type not found | `"[TypeName] NuGet package namespace"` | +| Wrong signature | `"[ClassName] [MethodName] overloads"` → fetch full page | +| Deprecated warning | `"[OldType] migration v12"` | +| Auth failure | `"DefaultAzureCredential troubleshooting"` | +| 403 Forbidden | `"[ServiceName] RBAC permissions"` | + +## When to Verify + +Check before using when: +- Method name seems "too convenient" (`UploadFile` vs actual `Upload`) +- Mixing SDK versions (v11 `CloudBlobClient` vs v12 `BlobServiceClient`) +- Package name doesn't follow conventions (`Azure.*` for .NET, `azure-*` for Python) +- First time using this API + +## Quick Validation + +Before generating Microsoft SDK code: +1. **Package exists** — `microsoft_docs_search(query: "[PackageName] NuGet")` +2. **Method is real** — `microsoft_docs_search(query: "[ClassName] [MethodName] [Namespace]")` +3. **Get working sample** — `microsoft_code_sample_search(query: "[what you're doing]", language: "[lang]")` diff --git a/skills/microsoft-docs/SKILL.md b/skills/microsoft-docs/SKILL.md new file mode 100644 index 00000000..92f523b7 --- /dev/null +++ b/skills/microsoft-docs/SKILL.md @@ -0,0 +1,56 @@ +--- +name: microsoft-docs +description: Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. Get accurate, current information from learn.microsoft.com and other official Microsoft websites—architecture overviews, quickstarts, configuration guides, limits, and best practices. +compatibility: Requires Microsoft Learn MCP Server (https://learn.microsoft.com/api/mcp) +--- + +# Microsoft Docs + +## Tools + +| Tool | Use For | +|------|---------| +| `microsoft_docs_search` | Find documentation—concepts, guides, tutorials, configuration | +| `microsoft_docs_fetch` | Get full page content (when search excerpts aren't enough) | + +## When to Use + +- **Understanding concepts** — "How does Cosmos DB partitioning work?" +- **Learning a service** — "Azure Functions overview", "Container Apps architecture" +- **Finding tutorials** — "quickstart", "getting started", "step-by-step" +- **Configuration options** — "App Service configuration settings" +- **Limits & quotas** — "Azure OpenAI rate limits", "Service Bus quotas" +- **Best practices** — "Azure security best practices" + +## Query Effectiveness + +Good queries are specific: + +``` +# ❌ Too broad +"Azure Functions" + +# ✅ Specific +"Azure Functions Python v2 programming model" +"Cosmos DB partition key design best practices" +"Container Apps scaling rules KEDA" +``` + +Include context: +- **Version** when relevant (`.NET 8`, `EF Core 8`) +- **Task intent** (`quickstart`, `tutorial`, `overview`, `limits`) +- **Platform** for multi-platform docs (`Linux`, `Windows`) + +## When to Fetch Full Page + +Fetch after search when: +- **Tutorials** — need complete step-by-step instructions +- **Configuration guides** — need all options listed +- **Deep dives** — user wants comprehensive coverage +- **Search excerpt is cut off** — full context needed + +## Why Use This + +- **Accuracy** — live docs, not training data that may be outdated +- **Completeness** — tutorials have all steps, not fragments +- **Authority** — official Microsoft documentation From 34c5f4d51a253414fab4f58549c0331596861e1f Mon Sep 17 00:00:00 2001 From: Tianqi Zhang Date: Wed, 14 Jan 2026 16:02:39 +0800 Subject: [PATCH 28/57] run npm start --- docs/README.skills.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.skills.md b/docs/README.skills.md index 355d1242..18c26caa 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -26,11 +26,11 @@ Skills differ from other primitives by supporting bundled assets (scripts, code | [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets/template-architecture.md` | | [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` | | [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` | +| [microsoft-code-reference](../skills/microsoft-code-reference/SKILL.md) | Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs. | None | +| [microsoft-docs](../skills/microsoft-docs/SKILL.md) | Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. Get accurate, current information from learn.microsoft.com and other official Microsoft websites—architecture overviews, quickstarts, configuration guides, limits, and best practices. | None | | [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None | | [snowflake-semanticview](../skills/snowflake-semanticview/SKILL.md) | Create, alter, and validate Snowflake semantic views using Snowflake CLI (snow). Use when asked to build or troubleshoot semantic views/semantic layer definitions with CREATE/ALTER SEMANTIC VIEW, to validate semantic-view DDL against Snowflake via CLI, or to guide Snowflake CLI installation and connection setup. | None | | [vscode-ext-commands](../skills/vscode-ext-commands/SKILL.md) | Guidelines for contributing commands in VS Code extensions. Indicates naming convention, visibility, localization and other relevant attributes, following VS Code extension development guidelines, libraries and good practices | None | | [vscode-ext-localization](../skills/vscode-ext-localization/SKILL.md) | Guidelines for proper localization of VS Code extensions, following VS Code extension development guidelines, libraries and good practices | None | | [web-design-reviewer](../skills/web-design-reviewer/SKILL.md) | This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level. | `references/framework-fixes.md`
`references/visual-checklist.md` | -| [microsoft-code-reference](../skills/microsoft-code-reference/SKILL.md) | Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs. | - | -| [microsoft-docs](../skills/microsoft-docs/SKILL.md) | Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. | - | | [webapp-testing](../skills/webapp-testing/SKILL.md) | Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs. | `test-helper.js` | From 1918e6f868fdce88ad5d848406fe472fa3948b7a Mon Sep 17 00:00:00 2001 From: Tianqi Zhang Date: Wed, 14 Jan 2026 16:07:31 +0800 Subject: [PATCH 29/57] add latest skill --- skills/microsoft-code-reference/SKILL.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/skills/microsoft-code-reference/SKILL.md b/skills/microsoft-code-reference/SKILL.md index c25af661..41c4685d 100644 --- a/skills/microsoft-code-reference/SKILL.md +++ b/skills/microsoft-code-reference/SKILL.md @@ -12,7 +12,7 @@ compatibility: Requires Microsoft Learn MCP Server (https://learn.microsoft.com/ |------|------|---------| | API method/class lookup | `microsoft_docs_search` | `"BlobClient UploadAsync Azure.Storage.Blobs"` | | Working code sample | `microsoft_code_sample_search` | `query: "upload blob managed identity", language: "python"` | -| Full API reference | `microsoft_docs_fetch` | Fetch URL from search (for overloads, full signatures) | +| Full API reference | `microsoft_docs_fetch` | Fetch URL from `microsoft_docs_search` (for overloads, full signatures) | ## Finding Code Samples @@ -24,8 +24,6 @@ microsoft_code_sample_search(query: "authenticate with managed identity", langua microsoft_code_sample_search(query: "send message service bus", language: "javascript") ``` -Languages: `python`, `csharp`, `javascript`, `typescript`, `java`, `go`, `powershell`, `cli` - **When to use:** - Before writing code—find a working pattern to follow - After errors—compare your code against a known-good sample @@ -50,6 +48,8 @@ Fetch full page when method has multiple overloads or you need complete paramete ## Error Troubleshooting +Use `microsoft_code_sample_search` to find working code samples and compare with your implementation. For specific errors, use `microsoft_docs_search` and `microsoft_docs_fetch`: + | Error Type | Query | |------------|-------| | Method not found | `"[ClassName] methods [Namespace]"` | @@ -61,15 +61,18 @@ Fetch full page when method has multiple overloads or you need complete paramete ## When to Verify -Check before using when: +Always verify when: - Method name seems "too convenient" (`UploadFile` vs actual `Upload`) - Mixing SDK versions (v11 `CloudBlobClient` vs v12 `BlobServiceClient`) - Package name doesn't follow conventions (`Azure.*` for .NET, `azure-*` for Python) -- First time using this API +- Using an API for the first time -## Quick Validation +## Validation Workflow -Before generating Microsoft SDK code: -1. **Package exists** — `microsoft_docs_search(query: "[PackageName] NuGet")` -2. **Method is real** — `microsoft_docs_search(query: "[ClassName] [MethodName] [Namespace]")` -3. **Get working sample** — `microsoft_code_sample_search(query: "[what you're doing]", language: "[lang]")` +Before generating code using Microsoft SDKs, verify it's correct: + +1. **Confirm method or package exists** — `microsoft_docs_search(query: "[ClassName] [MethodName] [Namespace]")` +2. **Fetch full details** (for overloads/complex params) — `microsoft_docs_fetch(url: "...")` +3. **Find working sample** — `microsoft_code_sample_search(query: "[task]", language: "[lang]")` + +For simple lookups, step 1 alone may suffice. For complex API usage, complete all three steps. From 455267364123ec3c71930a3f4bd7d2d38d4ec4b6 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Wed, 14 Jan 2026 19:57:02 +0800 Subject: [PATCH 30/57] feat: enhance agent suggestion prompt to detect and update outdated agents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add version comparison process to identify outdated local agents - Introduce ⚠️ status icon for installed but outdated agents - Add detailed comparison of remote vs local agent content - Include update handling instructions for outdated agents - Enhance process to fetch and compare remote versions - Update output format to show outdated agents with specific differences --- ...st-awesome-github-copilot-agents.prompt.md | 55 +++++++++++++++---- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/prompts/suggest-awesome-github-copilot-agents.prompt.md b/prompts/suggest-awesome-github-copilot-agents.prompt.md index dc4a14d5..c5aed01c 100644 --- a/prompts/suggest-awesome-github-copilot-agents.prompt.md +++ b/prompts/suggest-awesome-github-copilot-agents.prompt.md @@ -1,6 +1,6 @@ --- agent: "agent" -description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository." +description: "Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates." tools: ["edit", "search", "runCommands", "runTasks", "changes", "testFailure", "openSimpleBrowser", "fetch", "githubRepo", "todos"] --- @@ -13,14 +13,23 @@ Analyze current repository context and suggest relevant Custom Agents files from 1. **Fetch Available Custom Agents**: Extract Custom Agents list and descriptions from [awesome-copilot README.agents.md](https://github.com/github/awesome-copilot/blob/main/docs/README.agents.md). Must use `fetch` tool. 2. **Scan Local Custom Agents**: Discover existing custom agent files in `.github/agents/` folder 3. **Extract Descriptions**: Read front matter from local custom agent files to get descriptions -4. **Analyze Context**: Review chat history, repository files, and current project needs -5. **Compare Existing**: Check against custom agents already available in this repository -6. **Match Relevance**: Compare available custom agents against identified patterns and requirements -7. **Present Options**: Display relevant custom agents with descriptions, rationale, and availability status -8. **Validate**: Ensure suggested agents would add value not already covered by existing agents -9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents - **AWAIT** user request to proceed with installation of specific custom agents. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested agents, automatically download and install individual agents to `.github/agents/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +4. **Fetch Remote Versions**: For each local agent, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/`) +5. **Compare Versions**: Compare local agent content with remote versions to identify: + - Agents that are up-to-date (exact match) + - Agents that are outdated (content differs) + - Key differences in outdated agents (tools, description, content) +6. **Analyze Context**: Review chat history, repository files, and current project needs +7. **Match Relevance**: Compare available custom agents against identified patterns and requirements +8. **Present Options**: Display relevant custom agents with descriptions, rationale, and availability status including outdated agents +9. **Validate**: Ensure suggested agents would add value not already covered by existing agents +10. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot custom agents and similar local custom agents + **AWAIT** user request to proceed with installation or updates of specific custom agents. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO. +11. **Download/Update Assets**: For requested agents, automatically: + - Download new agents to `.github/agents/` folder + - Update outdated agents by replacing with latest version from awesome-copilot + - Do NOT adjust content of the files + - Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved + - Use `#todos` tool to track progress ## Context Analysis Criteria @@ -46,6 +55,7 @@ Display analysis results in structured table comparing awesome-copilot custom ag | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ---------------------------------- | ------------------------------------------------------------- | | [amplitude-experiment-implementation.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/amplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features | ❌ No | None | Would enhance experimentation capabilities within the product | | [launchdarkly-flag-cleanup.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/launchdarkly-flag-cleanup.agent.md) | Feature flag cleanup agent for LaunchDarkly | ✅ Yes | launchdarkly-flag-cleanup.agent.md | Already covered by existing LaunchDarkly custom agents | +| [principal-software-engineer.agent.md](https://github.com/github/awesome-copilot/blob/main/agents/principal-software-engineer.agent.md) | Provide principal-level software engineering guidance with focus on engineering excellence, technical leadership, and pragmatic implementation. | ⚠️ Outdated | principal-software-engineer.agent.md | Tools configuration differs: remote uses `'web/fetch'` vs local `'fetch'` - Update recommended | ## Local Agent Discovery Process @@ -54,19 +64,44 @@ Display analysis results in structured table comparing awesome-copilot custom ag 3. Build comprehensive inventory of existing agents 4. Use this inventory to avoid suggesting duplicates +## Version Comparison Process + +1. For each local agent file, construct the raw GitHub URL to fetch the remote version: + - Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/` +2. Fetch the remote version using the `fetch` tool +3. Compare entire file content (including front matter, tools array, and body) +4. Identify specific differences: + - **Front matter changes** (description, tools) + - **Tools array modifications** (added, removed, or renamed tools) + - **Content updates** (instructions, examples, guidelines) +5. Document key differences for outdated agents +6. Calculate similarity to determine if update is needed + ## Requirements - Use `githubRepo` tool to get content from awesome-copilot repository agents folder - Scan local file system for existing agents in `.github/agents/` directory - Read YAML front matter from local agent files to extract descriptions +- Compare local agents with remote versions to detect outdated agents - Compare against existing agents in this repository to avoid duplicates - Focus on gaps in current agent library coverage - Validate that suggested agents align with repository's purpose and standards - Provide clear rationale for each suggestion - Include links to both awesome-copilot agents and similar local agents +- Clearly identify outdated agents with specific differences noted - Don't provide any additional information or context beyond the table and the analysis ## Icons Reference -- ✅ Already installed in repo +- ✅ Already installed and up-to-date +- ⚠️ Installed but outdated (update available) - ❌ Not installed in repo + +## Update Handling + +When outdated agents are identified: +1. Include them in the output table with ⚠️ status +2. Document specific differences in the "Suggestion Rationale" column +3. Provide recommendation to update with key changes noted +4. When user requests update, replace entire local file with remote version +5. Preserve file location in `.github/agents/` directory From 46c07753c05e292756e3dafa6ad5a8c31432c206 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Wed, 14 Jan 2026 20:01:21 +0800 Subject: [PATCH 31/57] README --- collections/awesome-copilot.md | 2 +- docs/README.prompts.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/collections/awesome-copilot.md b/collections/awesome-copilot.md index 1f85ce6c..3c45c431 100644 --- a/collections/awesome-copilot.md +++ b/collections/awesome-copilot.md @@ -10,7 +10,7 @@ Meta prompts that help you discover and generate curated GitHub Copilot chat mod | ----- | ---- | ----------- | ----------- | | [Meta Agentic Project Scaffold](../agents/meta-agentic-project-scaffold.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md) | Agent | Meta agentic project creation assistant to help users create and manage project workflows effectively. | | | [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Prompt | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. | | -| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository. | | +| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. | | | [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. | | | [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Prompt | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. | | | [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Prompt | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. | | diff --git a/docs/README.prompts.md b/docs/README.prompts.md index 55f4e215..1a0b6747 100644 --- a/docs/README.prompts.md +++ b/docs/README.prompts.md @@ -129,7 +129,7 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi | [SQL Code Review](../prompts/sql-code-review.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md) | Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage. | | [SQL Performance Optimization Assistant](../prompts/sql-optimization.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md) | Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance. | | [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. | -| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository. | +| [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. | | [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. | | [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. | | [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. | From e57e0f481695a4038b028041bd7a294f5e93ec3a Mon Sep 17 00:00:00 2001 From: jhauga Date: Wed, 14 Jan 2026 16:01:01 -0500 Subject: [PATCH 32/57] Instructions for best color practices --- docs/README.instructions.md | 1 + ...html-css-style-color-guide.instructions.md | 104 ++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 instructions/html-css-style-color-guide.instructions.md diff --git a/docs/README.instructions.md b/docs/README.instructions.md index 1f7d3272..4574b3d5 100644 --- a/docs/README.instructions.md +++ b/docs/README.instructions.md @@ -86,6 +86,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [Go MCP Server Development Guidelines](../instructions/go-mcp-server.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md) | Best practices and patterns for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk package. | | [Guidance for Localization](../instructions/localization.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md) | Guidelines for localizing markdown documents | | [How to Use the Sample Components](../instructions/pcf-sample-components.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-sample-components.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-sample-components.instructions.md) | How to use and run PCF sample components from the PowerApps-Samples repository | +| [HTML CSS Style Color Guide](../instructions/html-css-style-color-guide.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fhtml-css-style-color-guide.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fhtml-css-style-color-guide.instructions.md) | Color usage guidelines and styling rules for HTML elements to ensure accessible, professional designs. | | [Instructions for accessibility](../instructions/a11y.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fa11y.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fa11y.instructions.md) | Guidance for creating more accessible code | | [Java 11 to Java 17 Upgrade Guide](../instructions/java-11-to-java-17-upgrade.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-11-to-java-17-upgrade.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-11-to-java-17-upgrade.instructions.md) | Comprehensive best practices for adopting new Java 17 features since the release of Java 11. | | [Java 17 to Java 21 Upgrade Guide](../instructions/java-17-to-java-21-upgrade.instructions.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-17-to-java-21-upgrade.instructions.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fjava-17-to-java-21-upgrade.instructions.md) | Comprehensive best practices for adopting new Java 21 features since the release of Java 17. | diff --git a/instructions/html-css-style-color-guide.instructions.md b/instructions/html-css-style-color-guide.instructions.md new file mode 100644 index 00000000..6a017d9b --- /dev/null +++ b/instructions/html-css-style-color-guide.instructions.md @@ -0,0 +1,104 @@ +--- +description: 'Color usage guidelines and styling rules for HTML elements to ensure accessible, professional designs.' +applyTo: '**/*.html, **/*.css, **/*.js' +--- + +# HTML CSS Style Color Guide + +Follow these guidelines when updating or creating HTML/CSS styles for browser rendering. Color names +represent the full spectrum of their respective hue ranges (e.g., "blue" includes navy, sky blue, etc.). + +## Color Definitions + +- **Hot Colors**: Oranges, reds, and yellows +- **Cool Colors**: Blues, greens, and purples +- **Neutral Colors**: Grays and grayscale variations +- **Binary Colors**: Black and white +- **60-30-10 Rule** + - **Primary Color**: Use 60% of the time (*cool or light color*) + - **Secondary Color**: Use 30% of the time (*cool or light color*) + - **Accent**: Use 10% of the time (*complimentary hot color*) + +## Color Usage Guidelines + +Balance the colors used by applying the **60-30-10 rule** to graphic desing elements like backgrounds, +buttons, cards, etc... + +### Background Colors + +**Never Use:** + +- Purple or magenta +- Red, orange, or yellow +- Pink +- Any hot color + +**Recommended:** + +- White or off-white +- Light cool colors (e.g., light blues, light greens) +- Subtle neutral tones +- Light gradients with minimal color shift + +### Text Colors + +**Never Use:** + +- Yellow (poor contrast and readability) +- Pink +- Pure white or light text on light backgrounds +- Pure black or dark text on dark backgrounds + +**Recommended:** + +- Dark neutral colors (e.g., #1f2328, #24292f) +- Near-black variations (#000000 to #333333) + - Ensure background is a light color +- Dark grays (#4d4d4d, #6c757d) +- High-contrast combinations for accessibility +- Near-white variations (#ffffff to #f0f2f3) + - Ensure background is a dark color + +### Colors to Avoid + +Unless explicitly required by design specifications or user request, avoid: + +- Bright purples and magentas +- Bright pinks and neon colors +- Highly saturated hot colors +- Colors with low contrast ratios (fails WCAG accessibility standards) + +### Colors to Use Sparingly + +**Hot Colors** (red, orange, yellow): + +- Reserve for critical alerts, warnings, or error messages +- Use only when conveying urgency or importance +- Limit to small accent areas rather than large sections +- Consider alternatives like icons or bold text before using hot colors + +## Gradients + +Apply gradients with subtle color transitions to maintain professional aesthetics. + +### Best Practices + +- Keep color shifts minimal (e.g., #E6F2FF to #F5F7FA) +- Use gradients within the same color family +- Avoid combining hot and cool colors in a single gradient +- Prefer linear gradients over radial for backgrounds + +### Appropriate Use Cases + +- Background containers and sections +- Button hover states and interactive elements +- Drop shadows and depth effects +- Header and navigation bars +- Card components and panels + +## Additional Resources + +- [Color Tool](https://civicactions.github.io/uswds-color-tool/) +- [Government or Professional Color Standards](https://designsystem.digital.gov/design-tokens/color/overview/) +- [UI Color Palette Best Practices](https://www.interaction-design.org/literature/article/ui-color-palette) +- [Color Combination Resource](https://www.figma.com/resource-library/color-combinations/) From 0b9fb232657524894f5eec9bd97d0d3eab2020fb Mon Sep 17 00:00:00 2001 From: John Haugabook Date: Wed, 14 Jan 2026 16:39:55 -0500 Subject: [PATCH 33/57] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- instructions/html-css-style-color-guide.instructions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instructions/html-css-style-color-guide.instructions.md b/instructions/html-css-style-color-guide.instructions.md index 6a017d9b..828a2027 100644 --- a/instructions/html-css-style-color-guide.instructions.md +++ b/instructions/html-css-style-color-guide.instructions.md @@ -17,11 +17,11 @@ represent the full spectrum of their respective hue ranges (e.g., "blue" include - **60-30-10 Rule** - **Primary Color**: Use 60% of the time (*cool or light color*) - **Secondary Color**: Use 30% of the time (*cool or light color*) - - **Accent**: Use 10% of the time (*complimentary hot color*) + - **Accent**: Use 10% of the time (*complementary hot color*) ## Color Usage Guidelines -Balance the colors used by applying the **60-30-10 rule** to graphic desing elements like backgrounds, +Balance the colors used by applying the **60-30-10 rule** to graphic design elements like backgrounds, buttons, cards, etc... ### Background Colors From c4f2978a51df694122c8e1a7d266776b08a6c19f Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Thu, 15 Jan 2026 16:15:00 +0800 Subject: [PATCH 34/57] Add outdated detection to collections, instructions, and prompts suggestion files Similar to c12041b which added outdated agent detection, this commit adds: - Version comparison process for detecting outdated local assets - Fetch remote versions step in the process workflow - Updated icons reference with outdated status indicators - Update handling sections for managing outdated assets - Updated output table examples to show outdated status --- collections/awesome-copilot.md | 6 +- docs/README.prompts.md | 6 +- ...esome-github-copilot-collections.prompt.md | 54 ++++++++++++--- ...some-github-copilot-instructions.prompt.md | 62 ++++++++++++++---- ...t-awesome-github-copilot-prompts.prompt.md | 65 ++++++++++++++----- 5 files changed, 148 insertions(+), 45 deletions(-) diff --git a/collections/awesome-copilot.md b/collections/awesome-copilot.md index 3c45c431..371283ef 100644 --- a/collections/awesome-copilot.md +++ b/collections/awesome-copilot.md @@ -9,11 +9,11 @@ Meta prompts that help you discover and generate curated GitHub Copilot chat mod | Title | Type | Description | MCP Servers | | ----- | ---- | ----------- | ----------- | | [Meta Agentic Project Scaffold](../agents/meta-agentic-project-scaffold.agent.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fmeta-agentic-project-scaffold.agent.md) | Agent | Meta agentic project creation assistant to help users create and manage project workflows effectively. | | -| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Prompt | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. | | +| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Prompt | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates. | | | [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. | | | [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Prompt | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. | | -| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Prompt | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. | | -| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Prompt | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. | | +| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Prompt | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates. | | +| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Prompt | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates. | | --- *This collection includes 6 curated items for **Awesome Copilot**.* \ No newline at end of file diff --git a/docs/README.prompts.md b/docs/README.prompts.md index 1a0b6747..4c078bb5 100644 --- a/docs/README.prompts.md +++ b/docs/README.prompts.md @@ -128,11 +128,11 @@ Ready-to-use prompt templates for specific development scenarios and tasks, defi | [Spring Boot with Kotlin Best Practices](../prompts/kotlin-springboot.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fkotlin-springboot.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fkotlin-springboot.prompt.md) | Get best practices for developing applications with Spring Boot and Kotlin. | | [SQL Code Review](../prompts/sql-code-review.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-code-review.prompt.md) | Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage. | | [SQL Performance Optimization Assistant](../prompts/sql-optimization.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsql-optimization.prompt.md) | Universal SQL performance optimization assistant for comprehensive query tuning, indexing strategies, and database performance analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Provides execution plan analysis, pagination optimization, batch operations, and performance monitoring guidance. | -| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets. | +| [Suggest Awesome GitHub Copilot Collections](../prompts/suggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-collections.prompt.md) | Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates. | | [Suggest Awesome GitHub Copilot Custom Agents](../prompts/suggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-agents.prompt.md) | Suggest relevant GitHub Copilot Custom Agents files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom agents in this repository, and identifying outdated agents that need updates. | | [Suggest Awesome GitHub Copilot Custom Chat Modes](../prompts/suggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-chatmodes.prompt.md) | Suggest relevant GitHub Copilot Custom Chat Modes files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing custom chat modes in this repository. | -| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository. | -| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository. | +| [Suggest Awesome GitHub Copilot Instructions](../prompts/suggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-instructions.prompt.md) | Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates. | +| [Suggest Awesome GitHub Copilot Prompts](../prompts/suggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fsuggest-awesome-github-copilot-prompts.prompt.md) | Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates. | | [Swift MCP Server Generator](../prompts/swift-mcp-server-generator.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fswift-mcp-server-generator.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fswift-mcp-server-generator.prompt.md) | Generate a complete Model Context Protocol server project in Swift using the official MCP Swift SDK package. | | [Test Generation with Playwright MCP](../prompts/playwright-generate-test.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fplaywright-generate-test.prompt.md) | Generate a Playwright test based on a scenario using Playwright MCP | | [Test Planning & Quality Assurance Prompt](../prompts/breakdown-test.prompt.md)
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-test.prompt.md)
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://aka.ms/awesome-copilot/install/prompt?url=vscode-insiders%3Achat-prompt%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fprompts%2Fbreakdown-test.prompt.md) | Test Planning and Quality Assurance prompt that generates comprehensive test strategies, task breakdowns, and quality validation plans for GitHub projects. | diff --git a/prompts/suggest-awesome-github-copilot-collections.prompt.md b/prompts/suggest-awesome-github-copilot-collections.prompt.md index efde6643..aa8434c5 100644 --- a/prompts/suggest-awesome-github-copilot-collections.prompt.md +++ b/prompts/suggest-awesome-github-copilot-collections.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets.' +description: 'Suggest relevant GitHub Copilot collections from the awesome-copilot repository based on current repository context and chat history, providing automatic download and installation of collection assets, and identifying outdated collection assets that need updates.' tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Collections @@ -12,13 +12,22 @@ Analyze current repository context and suggest relevant collections from the [Gi 1. **Fetch Available Collections**: Extract collection list and descriptions from [awesome-copilot README.collections.md](https://github.com/github/awesome-copilot/blob/main/docs/README.collections.md). Must use `#fetch` tool. 2. **Scan Local Assets**: Discover existing prompt files in `prompts/`, instruction files in `instructions/`, and chat modes in `agents/` folders 3. **Extract Local Descriptions**: Read front matter from local asset files to understand existing capabilities -4. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs -5. **Match Collection Relevance**: Compare available collections against identified patterns and requirements -6. **Check Asset Overlap**: For relevant collections, analyze individual items to avoid duplicates with existing repository assets -7. **Present Collection Options**: Display relevant collections with descriptions, item counts, and rationale for suggestion -8. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow - **AWAIT** user request to proceed with installation of specific collections. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -9. **Download Assets**: For requested collections, automatically download and install each individual asset (prompts, instructions, chat modes) to appropriate directories. Do NOT adjust content of the files. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +4. **Fetch Remote Versions**: For each local asset that matches a collection item, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main//`) +5. **Compare Versions**: Compare local asset content with remote versions to identify: + - Assets that are up-to-date (exact match) + - Assets that are outdated (content differs) + - Key differences in outdated assets (tools, description, content) +6. **Analyze Repository Context**: Review chat history, repository files, programming languages, frameworks, and current project needs +7. **Match Collection Relevance**: Compare available collections against identified patterns and requirements +8. **Check Asset Overlap**: For relevant collections, analyze individual items to avoid duplicates with existing repository assets +9. **Present Collection Options**: Display relevant collections with descriptions, item counts, outdated asset counts, and rationale for suggestion +10. **Provide Usage Guidance**: Explain how the installed collection enhances the development workflow + **AWAIT** user request to proceed with installation or updates of specific collections. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO. +11. **Download/Update Assets**: For requested collections, automatically: + - Download new assets to appropriate directories + - Update outdated assets by replacing with latest version from awesome-copilot + - Do NOT adjust content of the files + - Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved ## Context Analysis Criteria @@ -55,6 +64,7 @@ For each suggested collection, break down individual assets: **Azure & Cloud Development Collection Analysis:** - ✅ **New Assets (12)**: Azure cost optimization prompts, Bicep planning mode, AVM modules, Logic Apps expert mode - ⚠️ **Similar Assets (3)**: Azure DevOps pipelines (similar to existing CI/CD), Terraform (basic overlap), Containerization (Docker basics covered) +- 🔄 **Outdated Assets (2)**: azure-iac-generator.agent.md (tools updated), bicep-implement.agent.md (description changed) - 🎯 **High Value**: Cost optimization tools, Infrastructure as Code expertise, Azure-specific architectural guidance **Installation Preview:** @@ -86,6 +96,21 @@ For each suggested collection, break down individual assets: - Industry best practices for identified project types - Missing expertise areas (security, performance, architecture, etc.) +## Version Comparison Process + +1. For each local asset file that corresponds to a collection item, construct the raw GitHub URL: + - Agents: `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/` + - Prompts: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/` + - Instructions: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/` +2. Fetch the remote version using the `fetch` tool +3. Compare entire file content (including front matter and body) +4. Identify specific differences: + - **Front matter changes** (description, tools, applyTo patterns) + - **Tools array modifications** (added, removed, or renamed tools) + - **Content updates** (instructions, examples, guidelines) +5. Document key differences for outdated assets +6. Calculate similarity to determine if update is needed + ## Collection Asset Download Process When user confirms a collection installation: @@ -141,9 +166,18 @@ After installing a collection, provide: ## Icons Reference -- ✅ Collection recommended for installation +- ✅ Collection recommended for installation / Asset up-to-date - ⚠️ Collection has some asset overlap but still valuable - ❌ Collection not recommended (significant overlap or not relevant) - 🎯 High-value collection that fills major capability gaps - 📁 Collection partially installed (some assets skipped due to duplicates) -- 🔄 Collection needs customization for repository-specific needs +- 🔄 Asset outdated (update available from awesome-copilot) + +## Update Handling + +When outdated collection assets are identified: +1. Include them in the asset analysis with 🔄 status +2. Document specific differences for each outdated asset +3. Provide recommendation to update with key changes noted +4. When user requests update, replace entire local file with remote version +5. Preserve file location in appropriate directory (`agents/`, `prompts/`, or `instructions/`) diff --git a/prompts/suggest-awesome-github-copilot-instructions.prompt.md b/prompts/suggest-awesome-github-copilot-instructions.prompt.md index 08d3fa0c..961d12d8 100644 --- a/prompts/suggest-awesome-github-copilot-instructions.prompt.md +++ b/prompts/suggest-awesome-github-copilot-instructions.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository.' +description: 'Suggest relevant GitHub Copilot instruction files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing instructions in this repository, and identifying outdated instructions that need updates.' tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Instructions @@ -12,14 +12,24 @@ Analyze current repository context and suggest relevant copilot-instruction file 1. **Fetch Available Instructions**: Extract instruction list and descriptions from [awesome-copilot README.instructions.md](https://github.com/github/awesome-copilot/blob/main/docs/README.instructions.md). Must use `#fetch` tool. 2. **Scan Local Instructions**: Discover existing instruction files in `.github/instructions/` folder 3. **Extract Descriptions**: Read front matter from local instruction files to get descriptions and `applyTo` patterns -4. **Analyze Context**: Review chat history, repository files, and current project needs -5. **Compare Existing**: Check against instructions already available in this repository -6. **Match Relevance**: Compare available instructions against identified patterns and requirements -7. **Present Options**: Display relevant instructions with descriptions, rationale, and availability status -8. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions -9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions - **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/instructions/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +4. **Fetch Remote Versions**: For each local instruction, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/`) +5. **Compare Versions**: Compare local instruction content with remote versions to identify: + - Instructions that are up-to-date (exact match) + - Instructions that are outdated (content differs) + - Key differences in outdated instructions (description, applyTo patterns, content) +6. **Analyze Context**: Review chat history, repository files, and current project needs +7. **Compare Existing**: Check against instructions already available in this repository +8. **Match Relevance**: Compare available instructions against identified patterns and requirements +9. **Present Options**: Display relevant instructions with descriptions, rationale, and availability status including outdated instructions +10. **Validate**: Ensure suggested instructions would add value not already covered by existing instructions +11. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions + **AWAIT** user request to proceed with installation or updates of specific instructions. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO. +12. **Download/Update Assets**: For requested instructions, automatically: + - Download new instructions to `.github/instructions/` folder + - Update outdated instructions by replacing with latest version from awesome-copilot + - Do NOT adjust content of the files + - Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved + - Use `#todos` tool to track progress ## Context Analysis Criteria @@ -41,9 +51,9 @@ Display analysis results in structured table comparing awesome-copilot instructi | Awesome-Copilot Instruction | Description | Already Installed | Similar Local Instruction | Suggestion Rationale | |------------------------------|-------------|-------------------|---------------------------|---------------------| -| [blazor.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/blazor.instructions.md) | Blazor development guidelines | ❌ No | blazor.instructions.md | Already covered by existing Blazor instructions | +| [blazor.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/blazor.instructions.md) | Blazor development guidelines | ✅ Yes | blazor.instructions.md | Already covered by existing Blazor instructions | | [reactjs.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/reactjs.instructions.md) | ReactJS development standards | ❌ No | None | Would enhance React development with established patterns | -| [java.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md) | Java development best practices | ❌ No | None | Could improve Java code quality and consistency | +| [java.instructions.md](https://github.com/github/awesome-copilot/blob/main/instructions/java.instructions.md) | Java development best practices | ⚠️ Outdated | java.instructions.md | applyTo pattern differs: remote uses `'**/*.java'` vs local `'*.java'` - Update recommended | ## Local Instructions Discovery Process @@ -52,6 +62,18 @@ Display analysis results in structured table comparing awesome-copilot instructi 3. Build comprehensive inventory of existing instructions with their applicable file patterns 4. Use this inventory to avoid suggesting duplicates +## Version Comparison Process + +1. For each local instruction file, construct the raw GitHub URL to fetch the remote version: + - Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/` +2. Fetch the remote version using the `fetch` tool +3. Compare entire file content (including front matter and body) +4. Identify specific differences: + - **Front matter changes** (description, applyTo patterns) + - **Content updates** (guidelines, examples, best practices) +5. Document key differences for outdated instructions +6. Calculate similarity to determine if update is needed + ## File Structure Requirements Based on GitHub documentation, copilot-instructions files should be: @@ -71,18 +93,30 @@ applyTo: '**/*.js,**/*.ts' # Optional: glob patterns for file matching ## Requirements -- Use `githubRepo` tool to get content from awesome-copilot repository -- Scan local file system for existing instructions in `instructions/` directory +- Use `githubRepo` tool to get content from awesome-copilot repository instructions folder +- Scan local file system for existing instructions in `.github/instructions/` directory - Read YAML front matter from local instruction files to extract descriptions and `applyTo` patterns +- Compare local instructions with remote versions to detect outdated instructions - Compare against existing instructions in this repository to avoid duplicates - Focus on gaps in current instruction library coverage - Validate that suggested instructions align with repository's purpose and standards - Provide clear rationale for each suggestion - Include links to both awesome-copilot instructions and similar local instructions +- Clearly identify outdated instructions with specific differences noted - Consider technology stack compatibility and project-specific needs - Don't provide any additional information or context beyond the table and the analysis ## Icons Reference -- ✅ Already installed in repo +- ✅ Already installed and up-to-date +- ⚠️ Installed but outdated (update available) - ❌ Not installed in repo + +## Update Handling + +When outdated instructions are identified: +1. Include them in the output table with ⚠️ status +2. Document specific differences in the "Suggestion Rationale" column +3. Provide recommendation to update with key changes noted +4. When user requests update, replace entire local file with remote version +5. Preserve file location in `.github/instructions/` directory diff --git a/prompts/suggest-awesome-github-copilot-prompts.prompt.md b/prompts/suggest-awesome-github-copilot-prompts.prompt.md index 904f12a3..ecb7a54b 100644 --- a/prompts/suggest-awesome-github-copilot-prompts.prompt.md +++ b/prompts/suggest-awesome-github-copilot-prompts.prompt.md @@ -1,6 +1,6 @@ --- agent: 'agent' -description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository.' +description: 'Suggest relevant GitHub Copilot prompt files from the awesome-copilot repository based on current repository context and chat history, avoiding duplicates with existing prompts in this repository, and identifying outdated prompts that need updates.' tools: ['edit', 'search', 'runCommands', 'runTasks', 'think', 'changes', 'testFailure', 'openSimpleBrowser', 'web/fetch', 'githubRepo', 'todos', 'search'] --- # Suggest Awesome GitHub Copilot Prompts @@ -12,14 +12,24 @@ Analyze current repository context and suggest relevant prompt files from the [G 1. **Fetch Available Prompts**: Extract prompt list and descriptions from [awesome-copilot README.prompts.md](https://github.com/github/awesome-copilot/blob/main/docs/README.prompts.md). Must use `#fetch` tool. 2. **Scan Local Prompts**: Discover existing prompt files in `.github/prompts/` folder 3. **Extract Descriptions**: Read front matter from local prompt files to get descriptions -4. **Analyze Context**: Review chat history, repository files, and current project needs -5. **Compare Existing**: Check against prompts already available in this repository -6. **Match Relevance**: Compare available prompts against identified patterns and requirements -7. **Present Options**: Display relevant prompts with descriptions, rationale, and availability status -8. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts -9. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts - **AWAIT** user request to proceed with installation of specific instructions. DO NOT INSTALL UNLESS DIRECTED TO DO SO. -10. **Download Assets**: For requested instructions, automatically download and install individual instructions to `.github/prompts/` folder. Do NOT adjust content of the files. Use `#todos` tool to track progress. Prioritize use of `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved. +4. **Fetch Remote Versions**: For each local prompt, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g., `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/`) +5. **Compare Versions**: Compare local prompt content with remote versions to identify: + - Prompts that are up-to-date (exact match) + - Prompts that are outdated (content differs) + - Key differences in outdated prompts (tools, description, content) +6. **Analyze Context**: Review chat history, repository files, and current project needs +7. **Compare Existing**: Check against prompts already available in this repository +8. **Match Relevance**: Compare available prompts against identified patterns and requirements +9. **Present Options**: Display relevant prompts with descriptions, rationale, and availability status including outdated prompts +10. **Validate**: Ensure suggested prompts would add value not already covered by existing prompts +11. **Output**: Provide structured table with suggestions, descriptions, and links to both awesome-copilot prompts and similar local prompts + **AWAIT** user request to proceed with installation or updates of specific prompts. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO. +12. **Download/Update Assets**: For requested prompts, automatically: + - Download new prompts to `.github/prompts/` folder + - Update outdated prompts by replacing with latest version from awesome-copilot + - Do NOT adjust content of the files + - Use `#fetch` tool to download assets, but may use `curl` using `#runInTerminal` tool to ensure all content is retrieved + - Use `#todos` tool to track progress ## Context Analysis Criteria @@ -41,31 +51,56 @@ Display analysis results in structured table comparing awesome-copilot prompts w | Awesome-Copilot Prompt | Description | Already Installed | Similar Local Prompt | Suggestion Rationale | |-------------------------|-------------|-------------------|---------------------|---------------------| -| [code-review.md](https://github.com/github/awesome-copilot/blob/main/prompts/code-review.md) | Automated code review prompts | ❌ No | None | Would enhance development workflow with standardized code review processes | -| [documentation.md](https://github.com/github/awesome-copilot/blob/main/prompts/documentation.md) | Generate project documentation | ✅ Yes | create_oo_component_documentation.prompt.md | Already covered by existing documentation prompts | -| [debugging.md](https://github.com/github/awesome-copilot/blob/main/prompts/debugging.md) | Debug assistance prompts | ❌ No | None | Could improve troubleshooting efficiency for development team | +| [code-review.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/code-review.prompt.md) | Automated code review prompts | ❌ No | None | Would enhance development workflow with standardized code review processes | +| [documentation.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/documentation.prompt.md) | Generate project documentation | ✅ Yes | create_oo_component_documentation.prompt.md | Already covered by existing documentation prompts | +| [debugging.prompt.md](https://github.com/github/awesome-copilot/blob/main/prompts/debugging.prompt.md) | Debug assistance prompts | ⚠️ Outdated | debugging.prompt.md | Tools configuration differs: remote uses `'codebase'` vs local missing - Update recommended | ## Local Prompts Discovery Process -1. List all `*.prompt.md` files directory `.github/prompts/`. +1. List all `*.prompt.md` files in `.github/prompts/` directory 2. For each discovered file, read front matter to extract `description` 3. Build comprehensive inventory of existing prompts 4. Use this inventory to avoid suggesting duplicates +## Version Comparison Process + +1. For each local prompt file, construct the raw GitHub URL to fetch the remote version: + - Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/` +2. Fetch the remote version using the `fetch` tool +3. Compare entire file content (including front matter and body) +4. Identify specific differences: + - **Front matter changes** (description, tools, mode) + - **Tools array modifications** (added, removed, or renamed tools) + - **Content updates** (instructions, examples, guidelines) +5. Document key differences for outdated prompts +6. Calculate similarity to determine if update is needed + ## Requirements -- Use `githubRepo` tool to get content from awesome-copilot repository +- Use `githubRepo` tool to get content from awesome-copilot repository prompts folder - Scan local file system for existing prompts in `.github/prompts/` directory - Read YAML front matter from local prompt files to extract descriptions +- Compare local prompts with remote versions to detect outdated prompts - Compare against existing prompts in this repository to avoid duplicates - Focus on gaps in current prompt library coverage - Validate that suggested prompts align with repository's purpose and standards - Provide clear rationale for each suggestion - Include links to both awesome-copilot prompts and similar local prompts +- Clearly identify outdated prompts with specific differences noted - Don't provide any additional information or context beyond the table and the analysis ## Icons Reference -- ✅ Already installed in repo +- ✅ Already installed and up-to-date +- ⚠️ Installed but outdated (update available) - ❌ Not installed in repo + +## Update Handling + +When outdated prompts are identified: +1. Include them in the output table with ⚠️ status +2. Document specific differences in the "Suggestion Rationale" column +3. Provide recommendation to update with key changes noted +4. When user requests update, replace entire local file with remote version +5. Preserve file location in `.github/prompts/` directory From 41b694123769949db61a9bd9bed6145776fc09a2 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Thu, 15 Jan 2026 16:25:11 +0800 Subject: [PATCH 35/57] Update prompts/suggest-awesome-github-copilot-collections.prompt.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- prompts/suggest-awesome-github-copilot-collections.prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prompts/suggest-awesome-github-copilot-collections.prompt.md b/prompts/suggest-awesome-github-copilot-collections.prompt.md index aa8434c5..97c3563e 100644 --- a/prompts/suggest-awesome-github-copilot-collections.prompt.md +++ b/prompts/suggest-awesome-github-copilot-collections.prompt.md @@ -102,7 +102,7 @@ For each suggested collection, break down individual assets: - Agents: `https://raw.githubusercontent.com/github/awesome-copilot/main/agents/` - Prompts: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/` - Instructions: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/` -2. Fetch the remote version using the `fetch` tool +2. Fetch the remote version using the `#fetch` tool 3. Compare entire file content (including front matter and body) 4. Identify specific differences: - **Front matter changes** (description, tools, applyTo patterns) From 0d48c3fb55ccadd4ec9252c2b42c7fdcc1d78193 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Thu, 15 Jan 2026 16:25:21 +0800 Subject: [PATCH 36/57] Update prompts/suggest-awesome-github-copilot-prompts.prompt.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- prompts/suggest-awesome-github-copilot-prompts.prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prompts/suggest-awesome-github-copilot-prompts.prompt.md b/prompts/suggest-awesome-github-copilot-prompts.prompt.md index ecb7a54b..04b0c40d 100644 --- a/prompts/suggest-awesome-github-copilot-prompts.prompt.md +++ b/prompts/suggest-awesome-github-copilot-prompts.prompt.md @@ -66,7 +66,7 @@ Display analysis results in structured table comparing awesome-copilot prompts w 1. For each local prompt file, construct the raw GitHub URL to fetch the remote version: - Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/prompts/` -2. Fetch the remote version using the `fetch` tool +2. Fetch the remote version using the `#fetch` tool 3. Compare entire file content (including front matter and body) 4. Identify specific differences: - **Front matter changes** (description, tools, mode) From 1176cc4ffa2cb615da326e88ec69f10ad4e61807 Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Thu, 15 Jan 2026 16:25:30 +0800 Subject: [PATCH 37/57] Update prompts/suggest-awesome-github-copilot-instructions.prompt.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- prompts/suggest-awesome-github-copilot-instructions.prompt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prompts/suggest-awesome-github-copilot-instructions.prompt.md b/prompts/suggest-awesome-github-copilot-instructions.prompt.md index 961d12d8..283dfacd 100644 --- a/prompts/suggest-awesome-github-copilot-instructions.prompt.md +++ b/prompts/suggest-awesome-github-copilot-instructions.prompt.md @@ -66,7 +66,7 @@ Display analysis results in structured table comparing awesome-copilot instructi 1. For each local instruction file, construct the raw GitHub URL to fetch the remote version: - Pattern: `https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/` -2. Fetch the remote version using the `fetch` tool +2. Fetch the remote version using the `#fetch` tool 3. Compare entire file content (including front matter and body) 4. Identify specific differences: - **Front matter changes** (description, applyTo patterns) From dcaff75b1ad586291911989e238496fd7fbe4eee Mon Sep 17 00:00:00 2001 From: Ashley Childress <6563688+anchildress1@users.noreply.github.com> Date: Fri, 19 Dec 2025 23:55:03 -0500 Subject: [PATCH 38/57] feat(contributors): condense contributor report and per-PR snippets - eng/contributor-report.mjs: condensed per-user layout; emit per-PR fenced plaintext snippets; removed normalizeOneLine() Generated-by: GitHub Copilot Signed-off-by: Ashley Childress <6563688+anchildress1@users.noreply.github.com> --- eng/contributor-report.mjs | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/eng/contributor-report.mjs b/eng/contributor-report.mjs index 56005170..9b4cdc5f 100644 --- a/eng/contributor-report.mjs +++ b/eng/contributor-report.mjs @@ -429,7 +429,6 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { const nowIso = new Date().toISOString(); - const computeTypesArg = (report) => { const typeSet = new Set(); for (const pr of report.prs || []) { @@ -455,7 +454,6 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { for (const report of reports) { lines.push(`## @${report.username}`); - lines.push(''); const prs = Array.from(report.prs || []).sort((a, b) => { // Prefer most recent PRs first. @@ -465,22 +463,36 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { return (b.prNumber ?? 0) - (a.prNumber ?? 0); }); - for (const pr of prs) { - lines.push(`### PR #${pr.prNumber}: ${pr.prTitle}`); + if (prs.length === 0) { lines.push(''); - lines.push(`Add this comment on PR: ${pr.prUrl}`); + lines.push('_No eligible PRs found._'); lines.push(''); - - const prTypes = (pr.contributionTypes || []).filter(Boolean); - const prTypesArg = prTypes.length > 0 ? prTypes.join(', ') : 'code'; - - lines.push('```text'); - lines.push(`@all-contributors please add @${report.username} for ${prTypesArg}`); - lines.push('```'); + lines.push(`Alternate CLI: \`npx all-contributors add ${report.username} ${computeTypesArg(report)}\``); lines.push(''); + lines.push('---'); + lines.push(''); + continue; } - lines.push('### CLI command (all-contributors-cli)'); + lines.push(''); + + for (const pr of prs) { + const prTypes = (pr.contributionTypes || []).filter(Boolean); + const prTypesArg = prTypes.length > 0 ? prTypes.join(', ') : 'code'; + const title = String(pr.prTitle ?? ''); + const url = String(pr.prUrl ?? ''); + const comment = `@all-contributors please add @${report.username} for ${prTypesArg}`; + + // PR line + lines.push(`[#${pr.prNumber}](${url}) ${title}`); + // fenced single-line comment snippet for this PR (plaintext as requested) + lines.push('```plaintext'); + lines.push(comment); + lines.push('```'); + } + + lines.push(''); + lines.push('### Alternate CLI Command'); lines.push(''); lines.push('```bash'); lines.push(`npx all-contributors add ${report.username} ${computeTypesArg(report)}`); From f9e981e4cded26b8def4113f41272d79ad4a53de Mon Sep 17 00:00:00 2001 From: Ashley Childress <6563688+anchildress1@users.noreply.github.com> Date: Wed, 14 Jan 2026 23:47:04 -0500 Subject: [PATCH 39/57] fix(contributors): address Copilot review comments and code quality issues - Improve contributor-report.mjs based on Copilot comments and sonar - Use fileURLToPath for Windows-safe main checks in contributor scripts - Fix README badge URLs by removing duplicate style parameters - Update graceful-shutdown.mjs to throw on process.exit failure for better error visibility Generated-by: GitHub Copilot Signed-off-by: Ashley Childress <6563688+anchildress1@users.noreply.github.com> --- .github/workflows/contributors.yml | 6 +- README.md | 2 +- eng/add-missing-contributors.mjs | 3 +- eng/contributor-report.mjs | 217 +++++++++++------------------ eng/utils/graceful-shutdown.mjs | 5 +- 5 files changed, 92 insertions(+), 141 deletions(-) diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml index 159910ee..e8310bf5 100644 --- a/.github/workflows/contributors.yml +++ b/.github/workflows/contributors.yml @@ -8,7 +8,7 @@ on: jobs: contributors: runs-on: ubuntu-latest - timeout-minutes: 12 + timeout-minutes: 5 permissions: contents: write pull-requests: write @@ -36,12 +36,12 @@ jobs: run: | CHECK_OUTPUT=$(npm run contributors:check 2>&1) echo "$CHECK_OUTPUT" - + if echo "$CHECK_OUTPUT" | grep -q "Missing contributors"; then echo "Missing contributors detected, generating report..." mkdir -p reports npm run contributors:report - + if [ -f reports/contributor-report.md ]; then cat reports/contributor-report.md >> $GITHUB_STEP_SUMMARY fi diff --git a/README.md b/README.md index d22fa5cf..bb87f895 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # 🤖 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?style=flat-square) [![GitHub contributors from allcontributors.org](https://img.shields.io/github/all-contributors/github/awesome-copilot?style=flat-square&color=ee8449)](#contributors-) +[![Powered by Awesome Copilot](https://img.shields.io/badge/Powered_by-Awesome_Copilot-blue?logo=githubcopilot)](https://aka.ms/awesome-github-copilot) [![GitHub contributors from allcontributors.org](https://img.shields.io/github/all-contributors/github/awesome-copilot?color=ee8449)](#contributors-) A community created collection of custom agents, prompts, and instructions to supercharge your GitHub Copilot experience across different domains, languages, and use cases. diff --git a/eng/add-missing-contributors.mjs b/eng/add-missing-contributors.mjs index dc8911c5..c9b03321 100644 --- a/eng/add-missing-contributors.mjs +++ b/eng/add-missing-contributors.mjs @@ -8,6 +8,7 @@ import { execSync } from 'node:child_process'; import fs from 'node:fs'; import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { getContributionTypes, getMissingContributors, @@ -282,7 +283,7 @@ const printSummaryReport = (results) => { console.log('\n' + '='.repeat(50)); }; -if (process.argv[1] === (new URL(import.meta.url)).pathname) { +if (process.argv[1] && fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) { try { const results = await main(); printSummaryReport(results); diff --git a/eng/contributor-report.mjs b/eng/contributor-report.mjs index 9b4cdc5f..7f44f8a2 100644 --- a/eng/contributor-report.mjs +++ b/eng/contributor-report.mjs @@ -5,6 +5,7 @@ import { execSync } from 'node:child_process'; import fs from 'node:fs'; import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { setupGracefulShutdown } from './utils/graceful-shutdown.mjs'; const DEFAULT_CMD_TIMEOUT = 30_000; // 30s @@ -59,11 +60,14 @@ export const TYPE_PATTERNS = { ], maintenance: [ 'package*.json', - '*.config.js', + '*config*', 'tsconfig*.json' ], code: [ - '**/*.{js,ts,mjs,cjs}', + '**/*.js', + '**/*.ts', + '**/*.mjs', + '**/*.cjs', '**/*.py' ] }; @@ -78,17 +82,25 @@ const globCache = new Map(); */ export const globToRegExp = (pattern) => { const DOUBLE_WILDCARD_PLACEHOLDER = '§§DOUBLE§§'; - const replacements = [ - { pattern: /\\/g, replacement: '/' }, - { pattern: /\./g, replacement: String.raw`\.` }, - { pattern: /\*\*/g, replacement: DOUBLE_WILDCARD_PLACEHOLDER }, - { pattern: /\*/g, replacement: '[^/]*' }, - { pattern: new RegExp(DOUBLE_WILDCARD_PLACEHOLDER, 'g'), replacement: '.*' }, - { pattern: /\?/g, replacement: '.' }, - { pattern: /\//g, replacement: String.raw`\/` } - ]; - const normalized = replacements.reduce((acc, { pattern, replacement }) => acc.replace(pattern, replacement), String(pattern)); + // Escape all regex-special characters except glob wildcards (*, ?, /), + // then translate glob syntax to regex. + // Note: This function intentionally supports only a small subset of glob syntax. + const regexSpecials = /[.+^${}()|[\]\\]/g; + + let normalized = String(pattern); + + // Normalize Windows-style separators to POSIX-style for matching. + normalized = normalized.replaceAll('\\', '/'); + + // Escape regex metacharacters so they are treated literally. + normalized = normalized.replaceAll(regexSpecials, (match) => `\\${match}`); + + // Handle glob wildcards. + normalized = normalized.replaceAll('**', DOUBLE_WILDCARD_PLACEHOLDER); + normalized = normalized.replaceAll('*', '[^/]*'); + normalized = normalized.replaceAll(DOUBLE_WILDCARD_PLACEHOLDER, '.*'); + normalized = normalized.replaceAll('?', '.'); return new RegExp(`^${normalized}$`); }; @@ -113,7 +125,7 @@ export const matchGlob = (filePath, pattern) => { return false; } - const normalized = filePath.replace(/\\/g, '/'); + const normalized = filePath.replaceAll('\\', '/'); return regexp.test(normalized); }; @@ -133,7 +145,7 @@ export const isAutoGeneratedFile = (filePath) => { * @returns {string|null} */ export const getFileContributionType = (filePath) => { - const normalized = filePath.replace(/\\/g, '/'); + const normalized = filePath.replaceAll('\\', '/'); for (const [type, patterns] of Object.entries(TYPE_PATTERNS)) { if (patterns.some((pattern) => matchGlob(normalized, pattern))) { @@ -267,17 +279,33 @@ export const getMissingContributors = () => { * @returns {string} */ const getGitHubRepo = () => { + const parseRepoFromRemoteUrl = (remoteUrl) => { + const url = String(remoteUrl || '').trim(); + if (!url) return null; + + // Supports: + // - git@github.com:owner/repo.git + // - ssh://git@github.com/owner/repo.git + // - https://github.com/owner/repo.git + // - https://github.com/owner/repo + const regex = /github\.com[/:]([^/]+)\/([^/?#]+?)(?:\.git)?(?:[/?#]|$)/; + const match = regex.exec(url); + if (!match) return null; + + return `${match[1]}/${match[2]}`; + }; + try { const upstreamUrl = execSync('git config --get remote.upstream.url', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim(); if (upstreamUrl) { - const match = upstreamUrl.match(/github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/); - if (match) return `${match[1]}/${match[2]}`; + const repo = parseRepoFromRemoteUrl(upstreamUrl); + if (repo) return repo; } } catch (e) { - console.debug('upstream not found, trying origin'); + console.debug('upstream not found, trying origin', e?.message || e); } try { @@ -285,22 +313,15 @@ const getGitHubRepo = () => { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim(); - const match = originUrl.match(/github\.com:([^/]+)\/([^/]+?)(?:\.git)?$/); - if (match) return `${match[1]}/${match[2]}`; + const repo = parseRepoFromRemoteUrl(originUrl); + if (repo) return repo; } catch (e) { - console.debug('origin not found, using default'); + console.debug('origin not found, using default', e?.message || e); } return 'github/awesome-copilot'; }; -const CONTRIBUTION_TYPE_MAP = { - 'instructions': { symbol: '🧭', description: 'The big AI prompt recipes (Copilot instruction sets)' }, - 'prompts': { symbol: '⌨️', description: 'One-shot or reusable user-level prompts' }, - 'agents': { symbol: '🎭', description: 'Defined Copilot personalities / roles' }, - 'collections': { symbol: '🎁', description: 'Bundled thematic sets (e.g., "Copilot for Docs")' } -}; - /** * Fetch merged PRs for a GitHub username using the GH CLI and filter files. * @param {string} username @@ -445,12 +466,14 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { const lines = []; - lines.push('# Missing Contributors Report'); - lines.push(''); - lines.push(`Generated (ISO): ${nowIso}`); - lines.push(''); - lines.push(`Missing contributors: ${missingCount}`); - lines.push(''); + lines.push( + '# Missing Contributors Report', + '', + `Generated (ISO): ${nowIso}`, + '', + `Missing contributors: ${missingCount}`, + '' + ); for (const report of reports) { lines.push(`## @${report.username}`); @@ -464,13 +487,15 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { }); if (prs.length === 0) { - lines.push(''); - lines.push('_No eligible PRs found._'); - lines.push(''); - lines.push(`Alternate CLI: \`npx all-contributors add ${report.username} ${computeTypesArg(report)}\``); - lines.push(''); - lines.push('---'); - lines.push(''); + lines.push( + '', + '_No eligible PRs found._', + '', + `Alternate CLI: \`npx all-contributors add ${report.username} ${computeTypesArg(report)}\``, + '', + '---', + '' + ); continue; } @@ -483,101 +508,30 @@ export const generateMarkdownReport = (reports, missingCount = 0) => { const url = String(pr.prUrl ?? ''); const comment = `@all-contributors please add @${report.username} for ${prTypesArg}`; - // PR line - lines.push(`[#${pr.prNumber}](${url}) ${title}`); - // fenced single-line comment snippet for this PR (plaintext as requested) - lines.push('```plaintext'); - lines.push(comment); - lines.push('```'); + lines.push( + `[#${pr.prNumber}](${url}) ${title}`, + '```plaintext', + comment, + '```' + ); } - lines.push(''); - lines.push('### Alternate CLI Command'); - lines.push(''); - lines.push('```bash'); - lines.push(`npx all-contributors add ${report.username} ${computeTypesArg(report)}`); - lines.push('```'); - lines.push(''); - lines.push('---'); - lines.push(''); + lines.push( + '', + '### Alternate CLI Command', + '', + '```bash', + `npx all-contributors add ${report.username} ${computeTypesArg(report)}`, + '```', + '', + '---', + '' + ); } return `${lines.join('\n')}\n`; }; -/** - * Check whether a PR already contains an all-contributors bot comment. - * @param {number} prNumber - * @returns {boolean} - */ -export const hasExistingAllContributorsComment = (prNumber) => { - try { - const repo = getGitHubRepo(); - const json = execSync(`gh pr view ${prNumber} --repo ${repo} --json comments`, { - encoding: 'utf8', - stdio: ['pipe', 'pipe', 'pipe'], - timeout: DEFAULT_CMD_TIMEOUT - }); - - const data = JSON.parse(json); - const comments = data?.comments?.nodes || data?.comments || []; - return comments.some((comment) => comment?.body?.includes(`@all-contributors`)); - } catch (error) { - console.warn(`⚠️ Unable to inspect comments for PR #${prNumber}: ${error.message}`); - return false; - } -}; - -/** - * Post a comment to a PR using the GH CLI. - * @param {number} prNumber - * @param {string} body - * @returns {boolean} - */ -export const postCommentOnPr = (prNumber, body) => { - try { - const repo = getGitHubRepo(); - execSync(`gh pr comment ${prNumber} --repo ${repo} --body "${body.replace(/"/g, '\\"')}"`, { - encoding: 'utf8', - stdio: ['pipe', 'inherit', 'inherit'], - timeout: DEFAULT_CMD_TIMEOUT - }); - - console.log(`💬 Posted recommendation comment on PR #${prNumber}`); - return true; - } catch (error) { - console.warn(`⚠️ Failed to post comment on PR #${prNumber}: ${error.message}`); - return false; - } -}; - -/** - * Post suggested all-contributors comments to PRs for a collection of reports. - * @param {Array} reports - */ -export const autoAddCommentsToReports = (reports) => { - for (const report of reports) { - for (const pr of report.prs) { - if (hasExistingAllContributorsComment(pr.prNumber)) { - console.log(`💬 Skipping PR #${pr.prNumber} for @${report.username} — comment already present`); - continue; - } - - const types = pr.contributionTypes.map(t => '`' + t + '`').join(', '); - const commentLines = [ - `Thanks for the contribution @${report.username}!`, - '', - `We detected contribution categories for this PR: ${types || '`code`'}.`, - '', - `@all-contributors please add @${report.username} for ${pr.contributionTypes.join(', ')}` - ]; - - const body = commentLines.join('\n'); - postCommentOnPr(pr.prNumber, body); - } - } -}; - const main = () => { try { // gh CLI can use either its own authenticated session or token env vars. @@ -587,7 +541,6 @@ const main = () => { } const args = new Set(process.argv.slice(2)); - const autoAdd = args.has('--auto-add-pr-comments'); const includeAllFiles = args.has('--include-all-pr-files'); const contributors = getMissingContributors(); @@ -605,16 +558,12 @@ const main = () => { console.log(`Report saved to: ${outputPath}`); - if (autoAdd) { - autoAddCommentsToReports(reports); - } - } catch (error) { console.error('Error generating report:', error); process.exit(1); } }; -if (process.argv[1] === (new URL(import.meta.url)).pathname) { +if (process.argv[1] && fileURLToPath(import.meta.url) === path.resolve(process.argv[1])) { main(); } diff --git a/eng/utils/graceful-shutdown.mjs b/eng/utils/graceful-shutdown.mjs index 036f33f2..6ebeece4 100644 --- a/eng/utils/graceful-shutdown.mjs +++ b/eng/utils/graceful-shutdown.mjs @@ -26,8 +26,9 @@ export const setupGracefulShutdown = (name, { exitCode = 1 } = {}) => { try { process.exit(exitCode); } catch (e) { - // process.exit may not be desirable in some test harnesses; swallow errors - console.warn(`${name}: process.exit failed:`, e?.message); + // If process.exit is stubbed or overridden (e.g. in tests), surface the failure. + console.error(`${name}: process.exit failed:`, e?.message || e); + throw e; } }; From 80886dd7ccaa9da23fede432222e87dde2f3e713 Mon Sep 17 00:00:00 2001 From: Ashley Childress <6563688+anchildress1@users.noreply.github.com> Date: Thu, 15 Jan 2026 08:54:31 -0500 Subject: [PATCH 40/57] fix(contributors): add skills to custom contributor types - Improve errors in contributor-report.mjs - Add missing `skills` to custom contribution types list and docs - Refresh existing contributors Assisted-by: GitHub Copilot Signed-off-by: Ashley Childress <6563688+anchildress1@users.noreply.github.com> --- .all-contributorsrc | 491 +++++++++++++++++++++-------- .github/workflows/contributors.yml | 2 +- CONTRIBUTING.md | 3 +- README.md | 151 +++++---- eng/contributor-report.mjs | 33 +- 5 files changed, 488 insertions(+), 192 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index bd9775d3..8cd9655f 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -25,6 +25,10 @@ "symbol": "🎭", "description": "Specialized agents for GitHub Copilot" }, + "skills": { + "symbol": "🧰", + "description": "Specialized skills for GitHub Copilot" + }, "collections": { "symbol": "🎁", "description": "Curated collections of related content" @@ -46,6 +50,7 @@ "profile": "https://www.aaron-powell.com/", "contributions": [ "agents", + "code", "collections", "doc", "infra", @@ -54,6 +59,15 @@ "prompts" ] }, + { + "login": "codemillmatt", + "name": "Matt Soucoup", + "avatar_url": "https://avatars.githubusercontent.com/u/2053639?v=4", + "profile": "https://codemilltech.com/", + "contributions": [ + "infra" + ] + }, { "login": "troystaylor", "name": "Troy Simeon Taylor", @@ -66,6 +80,16 @@ "prompts" ] }, + { + "login": "abbas133", + "name": "Abbas", + "avatar_url": "https://avatars.githubusercontent.com/u/7757139?v=4", + "profile": "https://github.com/abbas133", + "contributions": [ + "agents", + "instructions" + ] + }, { "login": "PEZ", "name": "Peter Strömberg", @@ -100,6 +124,26 @@ "prompts" ] }, + { + "login": "psimsa", + "name": "Pavel Simsa", + "avatar_url": "https://avatars.githubusercontent.com/u/7853836?v=4", + "profile": "https://witter.cz/@pavel", + "contributions": [ + "code" + ] + }, + { + "login": "digitarald", + "name": "Harald Kirschner", + "avatar_url": "https://avatars.githubusercontent.com/u/8599?v=4", + "profile": "http://digitarald.de/", + "contributions": [ + "code", + "doc", + "maintenance" + ] + }, { "login": "mubaidr", "name": "Muhammad Ubaid Raza", @@ -110,6 +154,15 @@ "instructions" ] }, + { + "login": "tmeschter", + "name": "Tom Meschter", + "avatar_url": "https://avatars.githubusercontent.com/u/10506730?v=4", + "profile": "https://github.com/tmeschter", + "contributions": [ + "code" + ] + }, { "login": "AungMyoKyaw", "name": "Aung Myo Kyaw", @@ -121,13 +174,40 @@ ] }, { - "login": "digitarald", - "name": "Harald Kirschner", - "avatar_url": "https://avatars.githubusercontent.com/u/8599?v=4", - "profile": "http://digitarald.de/", + "login": "JasonYeMSFT", + "name": "JasonYeMSFT", + "avatar_url": "https://avatars.githubusercontent.com/u/39359541?v=4", + "profile": "https://github.com/JasonYeMSFT", "contributions": [ - "doc", - "maintenance" + "code" + ] + }, + { + "login": "Jrc356", + "name": "Jon Corbin", + "avatar_url": "https://avatars.githubusercontent.com/u/37387479?v=4", + "profile": "https://www.linkedin.com/in/jrc356/", + "contributions": [ + "agents", + "prompts" + ] + }, + { + "login": "troytaylor-msft", + "name": "troytaylor-msft", + "avatar_url": "https://avatars.githubusercontent.com/u/248058374?v=4", + "profile": "https://github.com/troytaylor-msft", + "contributions": [ + "code" + ] + }, + { + "login": "fazedordecodigo", + "name": "Emerson Delatorre", + "avatar_url": "https://avatars.githubusercontent.com/u/38289677?v=4", + "profile": "https://delatorre.dev/", + "contributions": [ + "instructions" ] }, { @@ -142,6 +222,16 @@ "prompts" ] }, + { + "login": "yaooqinn", + "name": "Kent Yao", + "avatar_url": "https://avatars.githubusercontent.com/u/8326978?v=4", + "profile": "https://yaooqinn.github.io/", + "contributions": [ + "instructions", + "prompts" + ] + }, { "login": "danielmeppiel", "name": "Daniel Meppiel", @@ -151,6 +241,64 @@ "prompts" ] }, + { + "login": "yeelam-gordon", + "name": "Gordon Lam", + "avatar_url": "https://avatars.githubusercontent.com/u/73506701?v=4", + "profile": "https://github.com/yeelam-gordon", + "contributions": [ + "instructions" + ] + }, + { + "login": "madskristensen", + "name": "Mads Kristensen", + "avatar_url": "https://avatars.githubusercontent.com/u/1258877?v=4", + "profile": "https://www.madskristensen.net/", + "contributions": [ + "instructions" + ] + }, + { + "login": "ks6088ts", + "name": "Shinji Takenaka", + "avatar_url": "https://avatars.githubusercontent.com/u/1254960?v=4", + "profile": "https://ks6088ts.github.io/", + "contributions": [ + "code" + ] + }, + { + "login": "spectatora", + "name": "spectatora", + "avatar_url": "https://avatars.githubusercontent.com/u/1385755?v=4", + "profile": "https://github.com/spectatora", + "contributions": [ + "agents", + "code", + "maintenance" + ] + }, + { + "login": "sinedied", + "name": "Yohan Lasorsa", + "avatar_url": "https://avatars.githubusercontent.com/u/593151?v=4", + "profile": "https://github.com/sinedied", + "contributions": [ + "instructions", + "prompts" + ] + }, + { + "login": "VamshiVerma", + "name": "Vamshi Verma", + "avatar_url": "https://avatars.githubusercontent.com/u/21999324?v=4", + "profile": "https://github.com/VamshiVerma", + "contributions": [ + "instructions", + "prompts" + ] + }, { "login": "jamesmontemagno", "name": "James Montemagno", @@ -164,33 +312,12 @@ ] }, { - "login": "VamshiVerma", - "name": "Vamshi Verma", - "avatar_url": "https://avatars.githubusercontent.com/u/21999324?v=4", - "profile": "https://github.com/VamshiVerma", + "login": "alefragnani", + "name": "Alessandro Fragnani", + "avatar_url": "https://avatars.githubusercontent.com/u/3781424?v=4", + "profile": "https://twitter.com/alefragnani", "contributions": [ - "instructions", - "prompts" - ] - }, - { - "login": "sinedied", - "name": "Yohan Lasorsa", - "avatar_url": "https://avatars.githubusercontent.com/u/593151?v=4", - "profile": "https://github.com/sinedied", - "contributions": [ - "instructions", - "prompts" - ] - }, - { - "login": "spectatora", - "name": "spectatora", - "avatar_url": "https://avatars.githubusercontent.com/u/1385755?v=4", - "profile": "https://github.com/spectatora", - "contributions": [ - "agents", - "maintenance" + "code" ] }, { @@ -203,6 +330,34 @@ "instructions" ] }, + { + "login": "krushideep", + "name": "krushideep", + "avatar_url": "https://avatars.githubusercontent.com/u/174652083?v=4", + "profile": "https://github.com/krushideep", + "contributions": [ + "prompts" + ] + }, + { + "login": "mihsoft", + "name": "devopsfan", + "avatar_url": "https://avatars.githubusercontent.com/u/53946345?v=4", + "profile": "https://github.com/mihsoft", + "contributions": [ + "agents" + ] + }, + { + "login": "tgrall", + "name": "Tugdual Grall", + "avatar_url": "https://avatars.githubusercontent.com/u/541250?v=4", + "profile": "http://tgrall.github.io/", + "contributions": [ + "instructions", + "prompts" + ] + }, { "login": "OrenMe", "name": "Oren Me", @@ -283,12 +438,11 @@ ] }, { - "login": "askpt", - "name": "André Silva", - "avatar_url": "https://avatars.githubusercontent.com/u/2493377?v=4", - "profile": "https://asilva.dev/", + "login": "markdav-is", + "name": "Mark Davis", + "avatar_url": "https://avatars.githubusercontent.com/u/311063?v=4", + "profile": "http://markdav.is/", "contributions": [ - "agents", "instructions" ] }, @@ -319,6 +473,15 @@ "agents" ] }, + { + "login": "pkarda", + "name": "Peter Karda", + "avatar_url": "https://avatars.githubusercontent.com/u/12649718?v=4", + "profile": "https://github.com/pkarda", + "contributions": [ + "prompts" + ] + }, { "login": "sdolgin", "name": "Saul Dolgin", @@ -359,16 +522,6 @@ "agents" ] }, - { - "login": "tgrall", - "name": "Tugdual Grall", - "avatar_url": "https://avatars.githubusercontent.com/u/541250?v=4", - "profile": "http://tgrall.github.io/", - "contributions": [ - "instructions", - "prompts" - ] - }, { "login": "doggy8088", "name": "Will 保哥", @@ -388,6 +541,15 @@ "instructions" ] }, + { + "login": "anschnapp", + "name": "anschnapp", + "avatar_url": "https://avatars.githubusercontent.com/u/17565996?v=4", + "profile": "https://github.com/anschnapp", + "contributions": [ + "agents" + ] + }, { "login": "hizahizi-hizumi", "name": "hizahizi-hizumi", @@ -436,6 +598,16 @@ "instructions" ] }, + { + "login": "askpt", + "name": "André Silva", + "avatar_url": "https://avatars.githubusercontent.com/u/2493377?v=4", + "profile": "https://asilva.dev/", + "contributions": [ + "agents", + "instructions" + ] + }, { "login": "agreaves-ms", "name": "Allen Greaves", @@ -455,6 +627,15 @@ "agents" ] }, + { + "login": "BBoyBen", + "name": "BBoyBen", + "avatar_url": "https://avatars.githubusercontent.com/u/34445365?v=4", + "profile": "https://github.com/BBoyBen", + "contributions": [ + "instructions" + ] + }, { "login": "brooke-hamilton", "name": "Brooke Hamilton", @@ -567,19 +748,10 @@ ] }, { - "login": "markdav-is", - "name": "Mark Davis", - "avatar_url": "https://avatars.githubusercontent.com/u/311063?v=4", - "profile": "http://markdav.is/", - "contributions": [ - "instructions" - ] - }, - { - "login": "pelikhan", - "name": "Peli de Halleux", - "avatar_url": "https://avatars.githubusercontent.com/u/4175913?v=4", - "profile": "https://github.com/pelikhan", + "login": "msalaman", + "name": "msalaman", + "avatar_url": "https://avatars.githubusercontent.com/u/28122166?v=4", + "profile": "https://github.com/msalaman", "contributions": [ "code" ] @@ -696,14 +868,32 @@ ] }, { - "login": "dgh06175", - "name": "이상현", - "avatar_url": "https://avatars.githubusercontent.com/u/77305722?v=4", - "profile": "https://github.com/dgh06175", + "login": "STRUDSO", + "name": "Søren Trudsø Mahon", + "avatar_url": "https://avatars.githubusercontent.com/u/1543732?v=4", + "profile": "https://github.com/STRUDSO", "contributions": [ "instructions" ] }, + { + "login": "semperteneo", + "name": "Tj Vita", + "avatar_url": "https://avatars.githubusercontent.com/u/14024037?v=4", + "profile": "http://enakdesign.com/", + "contributions": [ + "agents" + ] + }, + { + "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", @@ -823,10 +1013,19 @@ ] }, { - "login": "mfairchild365", - "name": "Michael Fairchild", - "avatar_url": "https://avatars.githubusercontent.com/u/498678?v=4", - "profile": "https://a11ysupport.io/", + "login": "giomartinsdev", + "name": "Giovanni de Almeida Martins", + "avatar_url": "https://avatars.githubusercontent.com/u/125399281?v=4", + "profile": "https://github.com/giomartinsdev", + "contributions": [ + "instructions" + ] + }, + { + "login": "dgh06175", + "name": "이상현", + "avatar_url": "https://avatars.githubusercontent.com/u/77305722?v=4", + "profile": "https://github.com/dgh06175", "contributions": [ "instructions" ] @@ -959,6 +1158,26 @@ "agents" ] }, + { + "login": "BenoitMaucotel", + "name": "BenoitMaucotel", + "avatar_url": "https://avatars.githubusercontent.com/u/54392431?v=4", + "profile": "https://github.com/BenoitMaucotel", + "contributions": [ + "code" + ] + }, + { + "login": "benjisho-aidome", + "name": "benjisho-aidome", + "avatar_url": "https://avatars.githubusercontent.com/u/218995725?v=4", + "profile": "https://github.com/benjisho-aidome", + "contributions": [ + "agents", + "instructions", + "prompts" + ] + }, { "login": "yukiomoto", "name": "Yuki Omoto", @@ -1013,6 +1232,15 @@ "agents" ] }, + { + "login": "vlahanas", + "name": "Vasileios Lahanas", + "avatar_url": "https://avatars.githubusercontent.com/u/19361558?v=4", + "profile": "https://www.ferryhopper.com/", + "contributions": [ + "instructions" + ] + }, { "login": "udayakumarreddyv", "name": "Udaya Veeramreddygari", @@ -1031,6 +1259,15 @@ "prompts" ] }, + { + "login": "tsubasaogawa", + "name": "Tsubasa Ogawa", + "avatar_url": "https://avatars.githubusercontent.com/u/7788821?v=4", + "profile": "https://tsubasaogawa.me/", + "contributions": [ + "code" + ] + }, { "login": "twitthoeft-gls", "name": "Troy Witthoeft (glsauto)", @@ -1041,28 +1278,10 @@ ] }, { - "login": "tmeschter", - "name": "Tom Meschter", - "avatar_url": "https://avatars.githubusercontent.com/u/10506730?v=4", - "profile": "https://github.com/tmeschter", - "contributions": [ - "code" - ] - }, - { - "login": "semperteneo", - "name": "Tj Vita", - "avatar_url": "https://avatars.githubusercontent.com/u/14024037?v=4", - "profile": "http://enakdesign.com/", - "contributions": [ - "agents" - ] - }, - { - "login": "STRUDSO", - "name": "Søren Trudsø Mahon", - "avatar_url": "https://avatars.githubusercontent.com/u/1543732?v=4", - "profile": "https://github.com/STRUDSO", + "login": "jfversluis", + "name": "Gerald Versluis", + "avatar_url": "https://avatars.githubusercontent.com/u/939291?v=4", + "profile": "https://jfversluis.dev/", "contributions": [ "instructions" ] @@ -1073,7 +1292,7 @@ "avatar_url": "https://avatars.githubusercontent.com/u/145904?v=4", "profile": "https://github.com/geoder101", "contributions": [ - "code" + "prompts" ] }, { @@ -1213,15 +1432,6 @@ "agents" ] }, - { - "login": "BBoyBen", - "name": "BBoyBen", - "avatar_url": "https://avatars.githubusercontent.com/u/34445365?v=4", - "profile": "https://github.com/BBoyBen", - "contributions": [ - "instructions" - ] - }, { "login": "artemsaveliev", "name": "Artem Saveliev", @@ -1303,6 +1513,15 @@ "agents" ] }, + { + "login": "AIAlchemyForge", + "name": "AIAlchemyForge", + "avatar_url": "https://avatars.githubusercontent.com/u/253636689?v=4", + "profile": "https://github.com/AIAlchemyForge", + "contributions": [ + "instructions" + ] + }, { "login": "4regab", "name": "4regab", @@ -1312,6 +1531,24 @@ "instructions" ] }, + { + "login": "MiguelElGallo", + "name": "Miguel P Z", + "avatar_url": "https://avatars.githubusercontent.com/u/60221874?v=4", + "profile": "https://github.com/MiguelElGallo", + "contributions": [ + "doc" + ] + }, + { + "login": "mfairchild365", + "name": "Michael Fairchild", + "avatar_url": "https://avatars.githubusercontent.com/u/498678?v=4", + "profile": "https://a11ysupport.io/", + "contributions": [ + "instructions" + ] + }, { "login": "michaelvolz", "name": "Michael A. Volz (Flynn)", @@ -1357,15 +1594,6 @@ "agents" ] }, - { - "login": "codemillmatt", - "name": "Matt Soucoup", - "avatar_url": "https://avatars.githubusercontent.com/u/2053639?v=4", - "profile": "https://codemilltech.com/", - "contributions": [ - "infra" - ] - }, { "login": "marknoble", "name": "Mark Noble", @@ -1402,6 +1630,15 @@ "instructions" ] }, + { + "login": "saikoumudi", + "name": "Sai Koumudi Kaluvakolanu", + "avatar_url": "https://avatars.githubusercontent.com/u/22682497?v=4", + "profile": "https://github.com/saikoumudi", + "contributions": [ + "agents" + ] + }, { "login": "whiteken", "name": "Kenny White", @@ -1529,6 +1766,15 @@ "instructions" ] }, + { + "login": "hunterhogan", + "name": "Hunter Hogan", + "avatar_url": "https://avatars.githubusercontent.com/u/2958419?v=4", + "profile": "https://github.com/hunterhogan", + "contributions": [ + "agents" + ] + }, { "login": "hashimwarren", "name": "Hashim Warren", @@ -1538,6 +1784,15 @@ "agents" ] }, + { + "login": "Arggon", + "name": "Gonzalo", + "avatar_url": "https://avatars.githubusercontent.com/u/20962238?v=4", + "profile": "https://github.com/Arggon", + "contributions": [ + "prompts" + ] + }, { "login": "0GiS0", "name": "Gisela Torres", @@ -1546,24 +1801,6 @@ "contributions": [ "agents" ] - }, - { - "login": "giomartinsdev", - "name": "Giovanni de Almeida Martins", - "avatar_url": "https://avatars.githubusercontent.com/u/125399281?v=4", - "profile": "https://github.com/giomartinsdev", - "contributions": [ - "instructions" - ] - }, - { - "login": "jfversluis", - "name": "Gerald Versluis", - "avatar_url": "https://avatars.githubusercontent.com/u/939291?v=4", - "profile": "https://jfversluis.dev/", - "contributions": [ - "instructions" - ] } ] } diff --git a/.github/workflows/contributors.yml b/.github/workflows/contributors.yml index e8310bf5..6f2dc6eb 100644 --- a/.github/workflows/contributors.yml +++ b/.github/workflows/contributors.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@v6 with: - fetch-depth: 0 # Required: add-missing-contributors.js needs full git history + fetch-depth: 0 - name: Extract Node version from package.json id: node-version diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 40af0d50..2a11bd47 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -255,7 +255,8 @@ We welcome many kinds of contributions, including the custom categories below: | --- | --- | :---: | | **Instructions** | Custom instruction sets that guide GitHub Copilot behavior | 🧭 | | **Prompts** | Reusable or one-off prompts for GitHub Copilot | ⌨️ | -| **Agents (Chat Modes)** | Defined Copilot roles or personalities | 🎭 | +| **Agents (Chat Modes)** | Defined GitHub Copilot roles or personalities | 🎭 | +| **Skills** | Specialized knowledge of a task for GitHub Copilot | 🧰 | | **Collections** | Curated bundles of related prompts, agents, or instructions | 🎁 | In addition, all standard contribution types supported by [All Contributors](https://allcontributors.org/emoji-key/) are recognized. diff --git a/README.md b/README.md index bb87f895..a79c465a 100644 --- a/README.md +++ b/README.md @@ -132,110 +132,137 @@ Thanks goes to these wonderful people ([emoji key](./CONTRIBUTING.md#contributor
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

💻
Aaron Powell
Aaron Powell

🎭 🎁 📖 🚇 🧭 🚧 ⌨️
Troy Simeon Taylor
Troy Simeon Taylor

🎭 🎁 🧭 ⌨️
Peter Strömberg
Peter Strömberg

🎭 🎁 🧭 ⌨️
Daniel Scott-Raynsford
Daniel Scott-Raynsford

🎭 🎁 🧭 ⌨️
John Haugabook
John Haugabook

🧭 ⌨️
Muhammad Ubaid Raza
Muhammad Ubaid Raza

🎭 🧭
Aung Myo Kyaw
Aung Myo Kyaw

🎭 ⌨️
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

💻
Harald Kirschner
Harald Kirschner

📖 🚧
Burke Holland
Burke Holland

🎭 🚇 🧭 ⌨️
Daniel Meppiel
Daniel Meppiel

⌨️
James Montemagno
James Montemagno

🎭 📖 🧭 ⌨️
Vamshi Verma
Vamshi Verma

🧭 ⌨️
Yohan Lasorsa
Yohan Lasorsa

🧭 ⌨️
spectatora
spectatora

🎭 🚧
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

💻
Ambily
Ambily

🎭 🧭
Oren Me
Oren Me

🎭 🧭
Mike Rousos
Mike Rousos

🧭 ⌨️
Justin Yoo
Justin Yoo

🧭
Guilherme do Amaral Alves
Guilherme do Amaral Alves

🧭
Griffin Ashe
Griffin Ashe

🎭 🎁
Ashley Childress
Ashley Childress

🎭 📖 🧭
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

💻
Adrien Clerbois
Adrien Clerbois

🎭 📖 ⌨️
ANGELELLI David
ANGELELLI David

🎭
André Silva
André Silva

🎭 🧭
Matt Vevang
Matt Vevang

🧭
Maximilian Irro
Maximilian Irro

🧭
NULLchimp
NULLchimp

🎭
Saul Dolgin
Saul Dolgin

🎭 🧭 ⌨️
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

💻
Shubham Gaikwad
Shubham Gaikwad

🎭 🧭 ⌨️
Theo van Kraay
Theo van Kraay

🧭
Tianqi Zhang
Tianqi Zhang

🎭
Tugdual Grall
Tugdual Grall

🧭 ⌨️
Will 保哥
Will 保哥

🎭 ⌨️
Yuta Matsumura
Yuta Matsumura

🧭
hizahizi-hizumi
hizahizi-hizumi

🧭
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)

💻
黃健旻 Vincent Huang
黃健旻 Vincent Huang

⌨️
Bruno Borges
Bruno Borges

🎁 🧭
Steve Magne
Steve Magne

📖 🧭
Shane Neuville
Shane Neuville

🎭 🧭
Allen Greaves
Allen Greaves

🎭 🧭
Amelia Payne
Amelia Payne

🎭
Brooke Hamilton
Brooke Hamilton

🧭
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 保哥

💻
Christopher Harrison
Christopher Harrison

🧭
Dan
Dan

🧭
Dan Wahlin
Dan Wahlin

🎭
Debbie O'Brien
Debbie O'Brien

🎭 🧭 ⌨️
Ed Harrod
Ed Harrod

⌨️
Genevieve Warren
Genevieve Warren

⌨️
Guillaume
Guillaume

🎭 ⌨️
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

💻
Per Søderlind
Per Søderlind

💻
Henrique Nunes
Henrique Nunes

💻
Henrique Nunes
Henrique Nunes

⌨️
Jeremiah Snee
Jeremiah Snee

💻
spectatora
spectatora

💻
Michael
Michael

💻
Kartik Dhiman
Kartik Dhiman

🧭
Kristiyan Velkov
Kristiyan Velkov

🎭
Mark Davis
Mark Davis

🧭
Peli de Halleux
Peli de Halleux

💻
Per Søderlind
Per Søderlind

🧭
Christian Lechner
Christian Lechner

💻
Jan de Vries
Jan de Vries

💻
Peter Smulovics
Peter Smulovics

🧭
Ravish Rathod
Ravish Rathod

🧭
Rick Smit
Rick Smit

🎭
Rob Simpson
Rob Simpson

🧭
Robert Altman
Robert Altman

🧭
Salih
Salih

🧭
Sebastian Gräf
Sebastian Gräf

🎭 🧭
Sebastien DEGODEZ
Sebastien DEGODEZ

🧭
Sergiy Smyrnov
Sergiy Smyrnov

⌨️
SomeSolutionsArchitect
SomeSolutionsArchitect

🎭
Stu Mace
Stu Mace

🎭 🎁 🧭
이상현
이상현

🧭
Paulo Morgado
Paulo Morgado

⌨️
Paul Crane
Paul Crane

🎭
Pamela Fox
Pamela Fox

⌨️
Oskar Thornblad
Oskar Thornblad

🧭
Nischay Sharma
Nischay Sharma

🎭
Nikolay Marinov
Nikolay Marinov

🎭
Nik Sachdeva
Nik Sachdeva

🎭 🎁
Nick Taylor
Nick Taylor

💻
Nick Brady
Nick Brady

🎭
Nathan Stanford Sr
Nathan Stanford Sr

🧭
Máté Barabás
Máté Barabás

🧭
Mike Parker
Mike Parker

🧭
Mike Kistler
Mike Kistler

⌨️
Michael Fairchild
Michael Fairchild

🧭
Ankur Sharma
Ankur Sharma

⌨️
Wendy Breiding
Wendy Breiding

💻
voidfnc
voidfnc

🎭
shane lee
shane lee

🧭
sdanzo-hrb
sdanzo-hrb

🎭
sauran
sauran

🧭
samqbush
samqbush

⌨️
pareenaverma
pareenaverma

🎭
oleksiyyurchyna
oleksiyyurchyna

🎁 ⌨️
oceans-of-time
oceans-of-time

🧭
kshashank57
kshashank57

🎭 🧭
Meii
Meii

🎭
factory-davidgu
factory-davidgu

💻
dangelov-qa
dangelov-qa

🎭
Yuki Omoto
Yuki Omoto

🧭
Will Schultz
Will Schultz

🎭
Waren Gonzaga
Waren Gonzaga

🎭
Vincent Koc
Vincent Koc

🎭
Victor Williams
Victor Williams

🎭
Ve Sharma
Ve Sharma

🎭
Udaya Veeramreddygari
Udaya Veeramreddygari

🧭
Tài Lê
Tài Lê

⌨️
Troy Witthoeft (glsauto)
Troy Witthoeft (glsauto)

🧭
Tom Meschter
Tom Meschter

💻
Tj Vita
Tj Vita

🎭
Søren Trudsø Mahon
Søren Trudsø Mahon

🧭
George Dernikos
George Dernikos

💻
Gautam
Gautam

🎭
Furkan Enes
Furkan Enes

🧭
Florian Mücke
Florian Mücke

🎭
Felix Arjuna
Felix Arjuna

🧭
Eldrick Wega
Eldrick Wega

⌨️
Dobri Danchev
Dobri Danchev

⌨️
Diego Gamboa
Diego Gamboa

⌨️
Derek Clair
Derek Clair

🎭 ⌨️
David Ortinau
David Ortinau

💻
Daniel Abbatt
Daniel Abbatt

🧭
CypherHK
CypherHK

🎭 ⌨️
Craig Bekker
Craig Bekker

💻
Christophe Peugnet
Christophe Peugnet

🧭
Christian Lechner
Christian Lechner

🧭
Chris Harris
Chris Harris

🎭
BBoyBen
BBoyBen

🧭
Artem Saveliev
Artem Saveliev

🧭
Antoine Rey
Antoine Rey

⌨️
Ankit Das
Ankit Das

🧭
Aline Ávila
Aline Ávila

🧭
Alexander Martinkevich
Alexander Martinkevich

🎭
Aleksandar Dunchev
Aleksandar Dunchev

🎭
Alan Sprecacenere
Alan Sprecacenere

🧭
Akash Kumar Shaw
Akash Kumar Shaw

🧭
Abdi Daud
Abdi Daud

🎭
4regab
4regab

🧭
Michael A. Volz (Flynn)
Michael A. Volz (Flynn)

⌨️
Michael
Michael

🧭
Mehmet Ali EROL
Mehmet Ali EROL

🎭
Max Prilutskiy
Max Prilutskiy

🎭
Matteo Bianchi
Matteo Bianchi

🎭
Matt Soucoup
Matt Soucoup

🚇
Mark Noble
Mark Noble

🎭
Manish Jayaswal
Manish Jayaswal

🎭
Luke Murray
Luke Murray

🎭
Louella Creemers
Louella Creemers

🧭
Kenny White
Kenny White

🧭
KaloyanGenev
KaloyanGenev

🎭
Kim Skov Rasmussen
Kim Skov Rasmussen

💻
Julien Dubois
Julien Dubois

⌨️
José Antonio Garrido
José Antonio Garrido

🧭
Joseph Gonzales
Joseph Gonzales

🧭 ⌨️
Jorge Balderas
Jorge Balderas

🧭
John Papa
John Papa

💻
John
John

🎭
Joe Watkins
Joe Watkins

🧭
Jan de Vries
Jan de Vries

🎭
Jakub Jareš
Jakub Jareš

⌨️
Jackson Miller
Jackson Miller

🧭
Ioana A
Ioana A

🧭
Hashim Warren
Hashim Warren

🎭
Gisela Torres
Gisela Torres

🎭
Giovanni de Almeida Martins
Giovanni de Almeida Martins

🧭
Gerald Versluis
Gerald Versluis

🧭
- + + + + + + + + + + - + + + - - - - + + + + + + + + + + + + + + + - - - + - - + + + - - - + + + - - - + + + + + + + - - - - - - - + + + + + + - - - - - - + + + + + + + + + - - + + @@ -254,93 +281,97 @@ Thanks goes to these wonderful people ([emoji key](./CONTRIBUTING.md#contributor - - + + + + + + + + + + + - - - - - - - - - + + - - + - + + + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + diff --git a/eng/contributor-report.mjs b/eng/contributor-report.mjs index 7f44f8a2..0e72282e 100644 --- a/eng/contributor-report.mjs +++ b/eng/contributor-report.mjs @@ -39,6 +39,9 @@ export const TYPE_PATTERNS = { 'chatmodes/*.chatmode.md', 'agents/*.agent.md' ], + skills: [ + 'skills/' + ], collections: [ 'collections/*.collection.yml' ], @@ -263,11 +266,30 @@ export const getMissingContributors = () => { return filteredUsernames; } catch (error) { - console.error('❌ Error checking for missing contributors:', error.message); - if (error.message.includes('command not found') || error.message.includes('not recognized')) { + const stderr = String(error?.stderr ?? ''); + const stdout = String(error?.stdout ?? ''); + const details = [stderr, stdout, String(error?.message ?? '')].join('\n'); + + // Never print token values. Just print actionable guidance. + if (details.toLowerCase().includes('bad credentials') || details.includes('401')) { + console.error('❌ all-contributors authentication failed (Bad credentials / 401).'); + console.error('💡 Set a valid token in PRIVATE_TOKEN (all-contributors-cli) and/or GH_TOKEN (gh CLI).'); + console.error('💡 In GitHub Actions, you can usually use: secrets.GITHUB_TOKEN'); + throw new Error('contributors:check failed due to invalid credentials'); + } + + console.error('❌ Error checking for missing contributors:', String(error?.message ?? error)); + if (details.trim()) { + console.error('--- all-contributors output (truncated) ---'); + console.error(details.slice(0, 2000)); + console.error('--- end output ---'); + } + + if (String(error?.message ?? '').includes('command not found') || String(error?.message ?? '').includes('not recognized')) { console.error('💡 Make sure all-contributors-cli is installed: npm install all-contributors-cli'); } - return []; + + throw error; } }; @@ -540,6 +562,11 @@ const main = () => { process.env.GITHUB_TOKEN = process.env.PRIVATE_TOKEN; } + // gh prefers GH_TOKEN; if we only have GITHUB_TOKEN, make GH_TOKEN explicit. + if (process.env.GITHUB_TOKEN && !process.env.GH_TOKEN) { + process.env.GH_TOKEN = process.env.GITHUB_TOKEN; + } + const args = new Set(process.argv.slice(2)); const includeAllFiles = args.has('--include-all-pr-files'); From f078f4540ddb4966efd878c96859377375cf5e69 Mon Sep 17 00:00:00 2001 From: Christopher Harrison Date: Thu, 15 Jan 2026 14:13:10 -0800 Subject: [PATCH 41/57] Update Svelte instructions with Svelte 5 best practices - Added latest Svelte 5 runes best practices (.by, .pre, untrack) - Added type-safe context with createContext() pattern - Added transitions and animations section - Emphasized effect best practices (prefer over ) - Added function bindings for two-way binding - Restructured document for better readability with logical groupings - Organized into clear sections: Core Concepts, Reactivity, SvelteKit, UI, TypeScript, Production - Consolidated related topics (data loading, forms, tooling) - Updated to align with official Svelte 5 and SvelteKit documentation --- instructions/svelte.instructions.md | 141 ++++++++++++++++++---------- 1 file changed, 93 insertions(+), 48 deletions(-) diff --git a/instructions/svelte.instructions.md b/instructions/svelte.instructions.md index 646b4baf..7f2dfed5 100644 --- a/instructions/svelte.instructions.md +++ b/instructions/svelte.instructions.md @@ -15,7 +15,7 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with - Progressive enhancement and performance-first approach - Modern build tooling (Vite) with optimizations -## Development Standards +## Core Concepts ### Architecture - Use Svelte 5 runes system for all reactivity instead of legacy stores @@ -25,45 +25,76 @@ Instructions for building high-quality Svelte 5 and SvelteKit applications with - Implement proper component composition with slots and snippets - Use SvelteKit's file-based routing with proper load functions -### TypeScript Integration -- Enable strict mode in `tsconfig.json` for maximum type safety -- Define interfaces for component props using `$props()` syntax -- Type event handlers, refs, and SvelteKit's generated types -- Use generic types for reusable components -- Leverage `$types.ts` files generated by SvelteKit -- Implement proper type checking with `svelte-check` - ### Component Design - Follow single responsibility principle for components - Use `
Aaron Powell
Aaron Powell

🎭 🎁 📖 🚇 🧭 🚧 ⌨️
Aaron Powell
Aaron Powell

🎭 💻 🎁 📖 🚇 🧭 🚧 ⌨️
Matt Soucoup
Matt Soucoup

🚇
Troy Simeon Taylor
Troy Simeon Taylor

🎭 🎁 🧭 ⌨️
Abbas
Abbas

🎭 🧭
Peter Strömberg
Peter Strömberg

🎭 🎁 🧭 ⌨️
Daniel Scott-Raynsford
Daniel Scott-Raynsford

🎭 🎁 🧭 ⌨️
John Haugabook
John Haugabook

🧭 ⌨️
Pavel Simsa
Pavel Simsa

💻
Harald Kirschner
Harald Kirschner

💻 📖 🚧
Muhammad Ubaid Raza
Muhammad Ubaid Raza

🎭 🧭
Tom Meschter
Tom Meschter

💻
Aung Myo Kyaw
Aung Myo Kyaw

🎭 ⌨️
JasonYeMSFT
JasonYeMSFT

💻
Jon Corbin
Jon Corbin

🎭 ⌨️
Harald Kirschner
Harald Kirschner

📖 🚧
troytaylor-msft
troytaylor-msft

💻
Emerson Delatorre
Emerson Delatorre

🧭
Burke Holland
Burke Holland

🎭 🚇 🧭 ⌨️
Kent Yao
Kent Yao

🧭 ⌨️
Daniel Meppiel
Daniel Meppiel

⌨️
James Montemagno
James Montemagno

🎭 📖 🧭 ⌨️
Vamshi Verma
Vamshi Verma

🧭 ⌨️
Yohan Lasorsa
Yohan Lasorsa

🧭 ⌨️
spectatora
spectatora

🎭 🚧
Gordon Lam
Gordon Lam

🧭
Mads Kristensen
Mads Kristensen

🧭
Shinji Takenaka
Shinji Takenaka

💻
spectatora
spectatora

🎭 💻 🚧
Yohan Lasorsa
Yohan Lasorsa

🧭 ⌨️
Vamshi Verma
Vamshi Verma

🧭 ⌨️
James Montemagno
James Montemagno

🎭 📖 🧭 ⌨️
Alessandro Fragnani
Alessandro Fragnani

💻
Ambily
Ambily

🎭 🧭
krushideep
krushideep

⌨️
devopsfan
devopsfan

🎭
Tugdual Grall
Tugdual Grall

🧭 ⌨️
Oren Me
Oren Me

🎭 🧭
Mike Rousos
Mike Rousos

🧭 ⌨️
Justin Yoo
Justin Yoo

🧭
Guilherme do Amaral Alves
Guilherme do Amaral Alves

🧭
Griffin Ashe
Griffin Ashe

🎭 🎁
Ashley Childress
Ashley Childress

🎭 📖 🧭
Adrien Clerbois
Adrien Clerbois

🎭 📖 ⌨️
ANGELELLI David
ANGELELLI David

🎭
André Silva
André Silva

🎭 🧭
Mark Davis
Mark Davis

🧭
Matt Vevang
Matt Vevang

🧭
Maximilian Irro
Maximilian Irro

🧭
NULLchimp
NULLchimp

🎭
Saul Dolgin
Saul Dolgin

🎭 🧭 ⌨️
NULLchimp
NULLchimp

🎭
Peter Karda
Peter Karda

⌨️
Saul Dolgin
Saul Dolgin

🎭 🧭 ⌨️
Shubham Gaikwad
Shubham Gaikwad

🎭 🧭 ⌨️
Theo van Kraay
Theo van Kraay

🧭
Tianqi Zhang
Tianqi Zhang

🎭
Tugdual Grall
Tugdual Grall

🧭 ⌨️
Will 保哥
Will 保哥

🎭 ⌨️
Yuta Matsumura
Yuta Matsumura

🧭
hizahizi-hizumi
hizahizi-hizumi

🧭
Yuta Matsumura
Yuta Matsumura

🧭
anschnapp
anschnapp

🎭
hizahizi-hizumi
hizahizi-hizumi

🧭
黃健旻 Vincent Huang
黃健旻 Vincent Huang

⌨️
Bruno Borges
Bruno Borges

🎁 🧭
Steve Magne
Steve Magne

📖 🧭
Shane Neuville
Shane Neuville

🎭 🧭
Allen Greaves
Allen Greaves

🎭 🧭
Amelia Payne
Amelia Payne

🎭
Brooke Hamilton
Brooke Hamilton

🧭
André Silva
André Silva

🎭 🧭
Allen Greaves
Allen Greaves

🎭 🧭
Amelia Payne
Amelia Payne

🎭
BBoyBen
BBoyBen

🧭
Brooke Hamilton
Brooke Hamilton

🧭
Christopher Harrison
Christopher Harrison

🧭
Dan
Dan

🧭
Dan Wahlin
Dan Wahlin

🎭
Debbie O'Brien
Debbie O'Brien

🎭 🧭 ⌨️
Ed Harrod
Ed Harrod

⌨️
Genevieve Warren
Genevieve Warren

⌨️
Guillaume
Guillaume

🎭 ⌨️
Henrique Nunes
Henrique Nunes

⌨️
Jeremiah Snee
Jeremiah Snee

💻
Kartik Dhiman
Kartik Dhiman

🧭
Kristiyan Velkov
Kristiyan Velkov

🎭
Mark Davis
Mark Davis

🧭
Peli de Halleux
Peli de Halleux

💻
Per Søderlind
Per Søderlind

🧭
Kartik Dhiman
Kartik Dhiman

🧭
Kristiyan Velkov
Kristiyan Velkov

🎭
msalaman
msalaman

💻
Per Søderlind
Per Søderlind

🧭
Peter Smulovics
Peter Smulovics

🧭
Ravish Rathod
Ravish Rathod

🧭
Rick Smit
Rick Smit

🎭
Rob Simpson
Rob Simpson

🧭
Robert Altman
Robert Altman

🧭
Salih
Salih

🧭
Sebastian Gräf
Sebastian Gräf

🎭 🧭
Sebastien DEGODEZ
Sebastien DEGODEZ

🧭
Sergiy Smyrnov
Sergiy Smyrnov

⌨️
SomeSolutionsArchitect
SomeSolutionsArchitect

🎭
Stu Mace
Stu Mace

🎭 🎁 🧭
이상현
이상현

🧭
Paulo Morgado
Paulo Morgado

⌨️
Paul Crane
Paul Crane

🎭
Stu Mace
Stu Mace

🎭 🎁 🧭
Søren Trudsø Mahon
Søren Trudsø Mahon

🧭
Tj Vita
Tj Vita

🎭
Peli de Halleux
Peli de Halleux

💻
Paulo Morgado
Paulo Morgado

⌨️
Paul Crane
Paul Crane

🎭
Pamela Fox
Pamela Fox

⌨️
Oskar Thornblad
Oskar Thornblad

🧭
Nischay Sharma
Nischay Sharma

🎭
Nikolay Marinov
Nikolay Marinov

🎭
Nik Sachdeva
Nik Sachdeva

🎭 🎁
Nick Taylor
Nick Taylor

💻
Nick Brady
Nick Brady

🎭
Nathan Stanford Sr
Nathan Stanford Sr

🧭
Nathan Stanford Sr
Nathan Stanford Sr

🧭
Máté Barabás
Máté Barabás

🧭
Mike Parker
Mike Parker

🧭
Mike Kistler
Mike Kistler

⌨️
Michael Fairchild
Michael Fairchild

🧭
Giovanni de Almeida Martins
Giovanni de Almeida Martins

🧭
이상현
이상현

🧭
Ankur Sharma
Ankur Sharma

⌨️
Wendy Breiding
Wendy Breiding

💻
Meii
Meii

🎭
factory-davidgu
factory-davidgu

💻
dangelov-qa
dangelov-qa

🎭
Yuki Omoto
Yuki Omoto

🧭
Will Schultz
Will Schultz

🎭
BenoitMaucotel
BenoitMaucotel

💻
benjisho-aidome
benjisho-aidome

🎭 🧭 ⌨️
Yuki Omoto
Yuki Omoto

🧭
Will Schultz
Will Schultz

🎭
Waren Gonzaga
Waren Gonzaga

🎭
Vincent Koc
Vincent Koc

🎭
Victor Williams
Victor Williams

🎭
Ve Sharma
Ve Sharma

🎭
Vasileios Lahanas
Vasileios Lahanas

🧭
Udaya Veeramreddygari
Udaya Veeramreddygari

🧭
Tài Lê
Tài Lê

⌨️
Tsubasa Ogawa
Tsubasa Ogawa

💻
Troy Witthoeft (glsauto)
Troy Witthoeft (glsauto)

🧭
Gerald Versluis
Gerald Versluis

🧭
George Dernikos
George Dernikos

⌨️
Gautam
Gautam

🎭
Tom Meschter
Tom Meschter

💻
Tj Vita
Tj Vita

🎭
Søren Trudsø Mahon
Søren Trudsø Mahon

🧭
George Dernikos
George Dernikos

💻
Gautam
Gautam

🎭
Furkan Enes
Furkan Enes

🧭
Florian Mücke
Florian Mücke

🎭
Felix Arjuna
Felix Arjuna

🧭
Eldrick Wega
Eldrick Wega

⌨️
Dobri Danchev
Dobri Danchev

⌨️
Diego Gamboa
Diego Gamboa

⌨️
Derek Clair
Derek Clair

🎭 ⌨️
David Ortinau
David Ortinau

💻
Daniel Abbatt
Daniel Abbatt

🧭
David Ortinau
David Ortinau

💻
Daniel Abbatt
Daniel Abbatt

🧭
CypherHK
CypherHK

🎭 ⌨️
Craig Bekker
Craig Bekker

💻
Christophe Peugnet
Christophe Peugnet

🧭
Christian Lechner
Christian Lechner

🧭
Chris Harris
Chris Harris

🎭
BBoyBen
BBoyBen

🧭
Artem Saveliev
Artem Saveliev

🧭
Artem Saveliev
Artem Saveliev

🧭
Antoine Rey
Antoine Rey

⌨️
Ankit Das
Ankit Das

🧭
Aline Ávila
Aline Ávila

🧭
Alexander Martinkevich
Alexander Martinkevich

🎭
Aleksandar Dunchev
Aleksandar Dunchev

🎭
Alan Sprecacenere
Alan Sprecacenere

🧭
Akash Kumar Shaw
Akash Kumar Shaw

🧭
Akash Kumar Shaw
Akash Kumar Shaw

🧭
Abdi Daud
Abdi Daud

🎭
AIAlchemyForge
AIAlchemyForge

🧭
4regab
4regab

🧭
Miguel P Z
Miguel P Z

📖
Michael Fairchild
Michael Fairchild

🧭
Michael A. Volz (Flynn)
Michael A. Volz (Flynn)

⌨️
Michael
Michael

🧭
Mehmet Ali EROL
Mehmet Ali EROL

🎭
Max Prilutskiy
Max Prilutskiy

🎭
Matteo Bianchi
Matteo Bianchi

🎭
Matt Soucoup
Matt Soucoup

🚇
Mark Noble
Mark Noble

🎭
Manish Jayaswal
Manish Jayaswal

🎭
Luke Murray
Luke Murray

🎭
Louella Creemers
Louella Creemers

🧭
Kenny White
Kenny White

🧭
KaloyanGenev
KaloyanGenev

🎭
Louella Creemers
Louella Creemers

🧭
Sai Koumudi Kaluvakolanu
Sai Koumudi Kaluvakolanu

🎭
Kenny White
Kenny White

🧭
KaloyanGenev
KaloyanGenev

🎭
Kim Skov Rasmussen
Kim Skov Rasmussen

💻
Julien Dubois
Julien Dubois

⌨️
José Antonio Garrido
José Antonio Garrido

🧭
Joseph Gonzales
Joseph Gonzales

🧭 ⌨️
Jorge Balderas
Jorge Balderas

🧭
John Papa
John Papa

💻
John
John

🎭
Joe Watkins
Joe Watkins

🧭
Jan de Vries
Jan de Vries

🎭
Jakub Jareš
Jakub Jareš

⌨️
Jackson Miller
Jackson Miller

🧭
Ioana A
Ioana A

🧭
Hashim Warren
Hashim Warren

🎭
Gisela Torres
Gisela Torres

🎭
Giovanni de Almeida Martins
Giovanni de Almeida Martins

🧭
Gerald Versluis
Gerald Versluis

🧭
Jackson Miller
Jackson Miller

🧭
Ioana A
Ioana A

🧭
Hunter Hogan
Hunter Hogan

🎭
Hashim Warren
Hashim Warren

🎭
Gonzalo
Gonzalo

⌨️
Gisela Torres
Gisela Torres

🎭