workspace-architect 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/.env.example +1 -0
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/manual-publish.yml +36 -0
  4. package/.github/workflows/sync-and-publish.yml +58 -0
  5. package/.release-it.json +20 -0
  6. package/CHANGELOG.md +43 -0
  7. package/README.md +62 -0
  8. package/assets/chatmodes/4.1-Beast.chatmode.md +152 -0
  9. package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +337 -0
  10. package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +644 -0
  11. package/assets/chatmodes/accessibility.chatmode.md +298 -0
  12. package/assets/chatmodes/address-comments.chatmode.md +59 -0
  13. package/assets/chatmodes/aem-frontend-specialist.chatmode.md +385 -0
  14. package/assets/chatmodes/api-architect.chatmode.md +40 -0
  15. package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +444 -0
  16. package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +100 -0
  17. package/assets/chatmodes/azure-principal-architect.chatmode.md +58 -0
  18. package/assets/chatmodes/azure-saas-architect.chatmode.md +118 -0
  19. package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +44 -0
  20. package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +58 -0
  21. package/assets/chatmodes/bicep-implement.chatmode.md +40 -0
  22. package/assets/chatmodes/bicep-plan.chatmode.md +112 -0
  23. package/assets/chatmodes/blueprint-mode-codex.chatmode.md +110 -0
  24. package/assets/chatmodes/blueprint-mode.chatmode.md +171 -0
  25. package/assets/chatmodes/clojure-interactive-programming.chatmode.md +174 -0
  26. package/assets/chatmodes/code-tour.chatmode.md +205 -0
  27. package/assets/chatmodes/critical-thinking.chatmode.md +23 -0
  28. package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +83 -0
  29. package/assets/chatmodes/csharp-mcp-expert.chatmode.md +69 -0
  30. package/assets/chatmodes/debug.chatmode.md +79 -0
  31. package/assets/chatmodes/declarative-agents-architect.chatmode.md +76 -0
  32. package/assets/chatmodes/demonstrate-understanding.chatmode.md +60 -0
  33. package/assets/chatmodes/dotnet-upgrade.chatmode.md +222 -0
  34. package/assets/chatmodes/drupal-expert.chatmode.md +687 -0
  35. package/assets/chatmodes/electron-angular-native.chatmode.md +285 -0
  36. package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +27 -0
  37. package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +22 -0
  38. package/assets/chatmodes/expert-nextjs-developer.chatmode.md +477 -0
  39. package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +738 -0
  40. package/assets/chatmodes/gilfoyle.chatmode.md +66 -0
  41. package/assets/chatmodes/go-mcp-expert.chatmode.md +122 -0
  42. package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +109 -0
  43. package/assets/chatmodes/hlbpa.chatmode.md +232 -0
  44. package/assets/chatmodes/implementation-plan.chatmode.md +159 -0
  45. package/assets/chatmodes/janitor.chatmode.md +89 -0
  46. package/assets/chatmodes/java-mcp-expert.chatmode.md +325 -0
  47. package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +181 -0
  48. package/assets/chatmodes/kusto-assistant.chatmode.md +143 -0
  49. package/assets/chatmodes/laravel-expert-agent.chatmode.md +628 -0
  50. package/assets/chatmodes/mentor.chatmode.md +32 -0
  51. package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +15 -0
  52. package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +62 -0
  53. package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +62 -0
  54. package/assets/chatmodes/microsoft-study-mode.chatmode.md +32 -0
  55. package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +388 -0
  56. package/assets/chatmodes/ms-sql-dba.chatmode.md +25 -0
  57. package/assets/chatmodes/php-mcp-expert.chatmode.md +498 -0
  58. package/assets/chatmodes/pimcore-expert.chatmode.md +869 -0
  59. package/assets/chatmodes/plan.chatmode.md +114 -0
  60. package/assets/chatmodes/planner.chatmode.md +14 -0
  61. package/assets/chatmodes/playwright-tester.chatmode.md +13 -0
  62. package/assets/chatmodes/postgresql-dba.chatmode.md +17 -0
  63. package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +319 -0
  64. package/assets/chatmodes/power-bi-dax-expert.chatmode.md +334 -0
  65. package/assets/chatmodes/power-bi-performance-expert.chatmode.md +533 -0
  66. package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +549 -0
  67. package/assets/chatmodes/power-platform-expert.chatmode.md +116 -0
  68. package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +149 -0
  69. package/assets/chatmodes/prd.chatmode.md +201 -0
  70. package/assets/chatmodes/principal-software-engineer.chatmode.md +41 -0
  71. package/assets/chatmodes/prompt-builder.chatmode.md +352 -0
  72. package/assets/chatmodes/prompt-engineer.chatmode.md +72 -0
  73. package/assets/chatmodes/python-mcp-expert.chatmode.md +99 -0
  74. package/assets/chatmodes/refine-issue.chatmode.md +34 -0
  75. package/assets/chatmodes/research-technical-spike.chatmode.md +169 -0
  76. package/assets/chatmodes/ruby-mcp-expert.chatmode.md +346 -0
  77. package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +197 -0
  78. package/assets/chatmodes/rust-mcp-expert.chatmode.md +465 -0
  79. package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +227 -0
  80. package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +31 -0
  81. package/assets/chatmodes/semantic-kernel-python.chatmode.md +28 -0
  82. package/assets/chatmodes/shopify-expert.chatmode.md +681 -0
  83. package/assets/chatmodes/simple-app-idea-generator.chatmode.md +134 -0
  84. package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +164 -0
  85. package/assets/chatmodes/specification.chatmode.md +127 -0
  86. package/assets/chatmodes/swift-mcp-expert.chatmode.md +240 -0
  87. package/assets/chatmodes/task-planner.chatmode.md +374 -0
  88. package/assets/chatmodes/task-researcher.chatmode.md +254 -0
  89. package/assets/chatmodes/tdd-green.chatmode.md +59 -0
  90. package/assets/chatmodes/tdd-red.chatmode.md +59 -0
  91. package/assets/chatmodes/tdd-refactor.chatmode.md +84 -0
  92. package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +49 -0
  93. package/assets/chatmodes/terraform-azure-implement.chatmode.md +104 -0
  94. package/assets/chatmodes/terraform-azure-planning.chatmode.md +157 -0
  95. package/assets/chatmodes/typescript-mcp-expert.chatmode.md +91 -0
  96. package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +230 -0
  97. package/assets/chatmodes/wg-code-alchemist.chatmode.md +61 -0
  98. package/assets/chatmodes/wg-code-sentinel.chatmode.md +55 -0
  99. package/assets/collections/ai-prompt-engineering.json +18 -0
  100. package/assets/collections/angular-development.json +7 -0
  101. package/assets/collections/azure-cloud-architect.json +29 -0
  102. package/assets/collections/cpp-development.json +6 -0
  103. package/assets/collections/database-administration.json +8 -0
  104. package/assets/collections/devops-sre.json +11 -0
  105. package/assets/collections/dotnet-development.json +22 -0
  106. package/assets/collections/general-productivity.json +9 -0
  107. package/assets/collections/go-development.json +7 -0
  108. package/assets/collections/java-spring-developer.json +26 -0
  109. package/assets/collections/learning-mentoring.json +10 -0
  110. package/assets/collections/legacy-migration.json +4 -0
  111. package/assets/collections/mcp-specialist.json +41 -0
  112. package/assets/collections/mobile-development.json +4 -0
  113. package/assets/collections/php-cms-development.json +11 -0
  114. package/assets/collections/power-platform-specialist.json +31 -0
  115. package/assets/collections/project-management.json +12 -0
  116. package/assets/collections/python-development.json +13 -0
  117. package/assets/collections/quality-assurance.json +13 -0
  118. package/assets/collections/ruby-development.json +9 -0
  119. package/assets/collections/rust-development.json +10 -0
  120. package/assets/collections/security-specialist.json +8 -0
  121. package/assets/collections/software-architect.json +25 -0
  122. package/assets/collections/technical-writing.json +9 -0
  123. package/assets/collections/web-frontend-development.json +14 -0
  124. package/assets/instructions/a11y.instructions.md +369 -0
  125. package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +867 -0
  126. package/assets/instructions/angular.instructions.md +104 -0
  127. package/assets/instructions/ansible.instructions.md +88 -0
  128. package/assets/instructions/aspnet-rest-apis.instructions.md +110 -0
  129. package/assets/instructions/astro.instructions.md +182 -0
  130. package/assets/instructions/azure-devops-pipelines.instructions.md +185 -0
  131. package/assets/instructions/azure-functions-typescript.instructions.md +14 -0
  132. package/assets/instructions/azure-logic-apps-power-automate.instructions.md +1943 -0
  133. package/assets/instructions/azure-verified-modules-terraform.instructions.md +229 -0
  134. package/assets/instructions/bicep-code-best-practices.instructions.md +54 -0
  135. package/assets/instructions/blazor.instructions.md +77 -0
  136. package/assets/instructions/clojure.instructions.md +349 -0
  137. package/assets/instructions/cmake-vcpkg.instructions.md +10 -0
  138. package/assets/instructions/codexer.instructions.md +428 -0
  139. package/assets/instructions/coldfusion-cfc.instructions.md +30 -0
  140. package/assets/instructions/coldfusion-cfm.instructions.md +28 -0
  141. package/assets/instructions/collections.instructions.md +54 -0
  142. package/assets/instructions/containerization-docker-best-practices.instructions.md +681 -0
  143. package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +949 -0
  144. package/assets/instructions/copilot-thought-logging.instructions.md +62 -0
  145. package/assets/instructions/csharp-ja.instructions.md +114 -0
  146. package/assets/instructions/csharp-ko.instructions.md +77 -0
  147. package/assets/instructions/csharp-mcp-server.instructions.md +95 -0
  148. package/assets/instructions/csharp.instructions.md +114 -0
  149. package/assets/instructions/dart-n-flutter.instructions.md +447 -0
  150. package/assets/instructions/declarative-agents-microsoft365.instructions.md +316 -0
  151. package/assets/instructions/devbox-image-definition.instructions.md +302 -0
  152. package/assets/instructions/devops-core-principles.instructions.md +167 -0
  153. package/assets/instructions/dotnet-architecture-good-practices.instructions.md +279 -0
  154. package/assets/instructions/dotnet-framework.instructions.md +113 -0
  155. package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +1922 -0
  156. package/assets/instructions/dotnet-maui.instructions.md +69 -0
  157. package/assets/instructions/dotnet-upgrade.instructions.md +287 -0
  158. package/assets/instructions/dotnet-wpf.instructions.md +79 -0
  159. package/assets/instructions/genaiscript.instructions.md +21 -0
  160. package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +82 -0
  161. package/assets/instructions/gilfoyle-code-review.instructions.md +114 -0
  162. package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
  163. package/assets/instructions/go-mcp-server.instructions.md +346 -0
  164. package/assets/instructions/go.instructions.md +373 -0
  165. package/assets/instructions/instructions.instructions.md +256 -0
  166. package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +793 -0
  167. package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +464 -0
  168. package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +311 -0
  169. package/assets/instructions/java-mcp-server.instructions.md +553 -0
  170. package/assets/instructions/java.instructions.md +81 -0
  171. package/assets/instructions/joyride-user-project.instructions.md +206 -0
  172. package/assets/instructions/joyride-workspace-automation.instructions.md +46 -0
  173. package/assets/instructions/kotlin-mcp-server.instructions.md +481 -0
  174. package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +307 -0
  175. package/assets/instructions/langchain-python.instructions.md +229 -0
  176. package/assets/instructions/localization.instructions.md +39 -0
  177. package/assets/instructions/makefile.instructions.md +410 -0
  178. package/assets/instructions/markdown.instructions.md +52 -0
  179. package/assets/instructions/memory-bank.instructions.md +299 -0
  180. package/assets/instructions/mongo-dba.instructions.md +25 -0
  181. package/assets/instructions/ms-sql-dba.instructions.md +25 -0
  182. package/assets/instructions/nestjs.instructions.md +406 -0
  183. package/assets/instructions/nextjs-tailwind.instructions.md +72 -0
  184. package/assets/instructions/nextjs.instructions.md +143 -0
  185. package/assets/instructions/nodejs-javascript-vitest.instructions.md +30 -0
  186. package/assets/instructions/object-calisthenics.instructions.md +302 -0
  187. package/assets/instructions/oqtane.instructions.md +86 -0
  188. package/assets/instructions/performance-optimization.instructions.md +420 -0
  189. package/assets/instructions/php-mcp-server.instructions.md +809 -0
  190. package/assets/instructions/playwright-dotnet.instructions.md +101 -0
  191. package/assets/instructions/playwright-python.instructions.md +62 -0
  192. package/assets/instructions/playwright-typescript.instructions.md +86 -0
  193. package/assets/instructions/power-apps-canvas-yaml.instructions.md +827 -0
  194. package/assets/instructions/power-apps-code-apps.instructions.md +601 -0
  195. package/assets/instructions/power-bi-custom-visuals-development.instructions.md +810 -0
  196. package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +639 -0
  197. package/assets/instructions/power-bi-dax-best-practices.instructions.md +795 -0
  198. package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +623 -0
  199. package/assets/instructions/power-bi-report-design-best-practices.instructions.md +752 -0
  200. package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +504 -0
  201. package/assets/instructions/power-platform-connector.instructions.md +430 -0
  202. package/assets/instructions/power-platform-mcp-development.instructions.md +88 -0
  203. package/assets/instructions/powershell-pester-5.instructions.md +197 -0
  204. package/assets/instructions/powershell.instructions.md +356 -0
  205. package/assets/instructions/prompt.instructions.md +73 -0
  206. package/assets/instructions/python-mcp-server.instructions.md +204 -0
  207. package/assets/instructions/python.instructions.md +56 -0
  208. package/assets/instructions/quarkus-mcp-server-sse.instructions.md +49 -0
  209. package/assets/instructions/quarkus.instructions.md +98 -0
  210. package/assets/instructions/r.instructions.md +116 -0
  211. package/assets/instructions/reactjs.instructions.md +162 -0
  212. package/assets/instructions/ruby-mcp-server.instructions.md +629 -0
  213. package/assets/instructions/ruby-on-rails.instructions.md +124 -0
  214. package/assets/instructions/rust-mcp-server.instructions.md +715 -0
  215. package/assets/instructions/rust.instructions.md +135 -0
  216. package/assets/instructions/security-and-owasp.instructions.md +51 -0
  217. package/assets/instructions/self-explanatory-code-commenting.instructions.md +162 -0
  218. package/assets/instructions/shell.instructions.md +132 -0
  219. package/assets/instructions/spec-driven-workflow-v1.instructions.md +323 -0
  220. package/assets/instructions/springboot.instructions.md +68 -0
  221. package/assets/instructions/sql-sp-generation.instructions.md +74 -0
  222. package/assets/instructions/svelte.instructions.md +161 -0
  223. package/assets/instructions/swift-mcp-server.instructions.md +498 -0
  224. package/assets/instructions/taming-copilot.instructions.md +40 -0
  225. package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +212 -0
  226. package/assets/instructions/task-implementation.instructions.md +190 -0
  227. package/assets/instructions/tasksync.instructions.md +352 -0
  228. package/assets/instructions/terraform-azure.instructions.md +254 -0
  229. package/assets/instructions/terraform-sap-btp.instructions.md +195 -0
  230. package/assets/instructions/terraform.instructions.md +113 -0
  231. package/assets/instructions/typescript-5-es2022.instructions.md +114 -0
  232. package/assets/instructions/typescript-mcp-server.instructions.md +228 -0
  233. package/assets/instructions/update-code-from-shorthand.instructions.md +130 -0
  234. package/assets/instructions/vuejs3.instructions.md +153 -0
  235. package/assets/instructions/wordpress.instructions.md +186 -0
  236. package/assets/prompts/add-educational-comments.prompt.md +129 -0
  237. package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +230 -0
  238. package/assets/prompts/architecture-blueprint-generator.prompt.md +322 -0
  239. package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +42 -0
  240. package/assets/prompts/az-cost-optimize.prompt.md +305 -0
  241. package/assets/prompts/azure-resource-health-diagnose.prompt.md +290 -0
  242. package/assets/prompts/boost-prompt.prompt.md +25 -0
  243. package/assets/prompts/breakdown-epic-arch.prompt.md +66 -0
  244. package/assets/prompts/breakdown-epic-pm.prompt.md +58 -0
  245. package/assets/prompts/breakdown-feature-implementation.prompt.md +128 -0
  246. package/assets/prompts/breakdown-feature-prd.prompt.md +61 -0
  247. package/assets/prompts/breakdown-plan.prompt.md +509 -0
  248. package/assets/prompts/breakdown-test.prompt.md +365 -0
  249. package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
  250. package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +26 -0
  251. package/assets/prompts/containerize-aspnet-framework.prompt.md +455 -0
  252. package/assets/prompts/containerize-aspnetcore.prompt.md +393 -0
  253. package/assets/prompts/conventional-commit.prompt.md +73 -0
  254. package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
  255. package/assets/prompts/cosmosdb-datamodeling.prompt.md +1045 -0
  256. package/assets/prompts/create-agentsmd.prompt.md +249 -0
  257. package/assets/prompts/create-architectural-decision-record.prompt.md +97 -0
  258. package/assets/prompts/create-github-action-workflow-specification.prompt.md +276 -0
  259. package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +28 -0
  260. package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
  261. package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
  262. package/assets/prompts/create-github-pull-request-from-specification.prompt.md +24 -0
  263. package/assets/prompts/create-implementation-plan.prompt.md +157 -0
  264. package/assets/prompts/create-llms.prompt.md +210 -0
  265. package/assets/prompts/create-oo-component-documentation.prompt.md +193 -0
  266. package/assets/prompts/create-readme.prompt.md +21 -0
  267. package/assets/prompts/create-specification.prompt.md +127 -0
  268. package/assets/prompts/create-spring-boot-java-project.prompt.md +163 -0
  269. package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +147 -0
  270. package/assets/prompts/create-technical-spike.prompt.md +231 -0
  271. package/assets/prompts/csharp-async.prompt.md +50 -0
  272. package/assets/prompts/csharp-docs.prompt.md +63 -0
  273. package/assets/prompts/csharp-mcp-server-generator.prompt.md +59 -0
  274. package/assets/prompts/csharp-mstest.prompt.md +67 -0
  275. package/assets/prompts/csharp-nunit.prompt.md +72 -0
  276. package/assets/prompts/csharp-tunit.prompt.md +101 -0
  277. package/assets/prompts/csharp-xunit.prompt.md +69 -0
  278. package/assets/prompts/declarative-agents.prompt.md +93 -0
  279. package/assets/prompts/documentation-writer.prompt.md +46 -0
  280. package/assets/prompts/dotnet-best-practices.prompt.md +84 -0
  281. package/assets/prompts/dotnet-design-pattern-review.prompt.md +41 -0
  282. package/assets/prompts/dotnet-upgrade.prompt.md +116 -0
  283. package/assets/prompts/editorconfig.prompt.md +64 -0
  284. package/assets/prompts/ef-core.prompt.md +76 -0
  285. package/assets/prompts/finalize-agent-prompt.prompt.md +27 -0
  286. package/assets/prompts/first-ask.prompt.md +29 -0
  287. package/assets/prompts/folder-structure-blueprint-generator.prompt.md +405 -0
  288. package/assets/prompts/gen-specs-as-issues.prompt.md +165 -0
  289. package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +240 -0
  290. package/assets/prompts/git-flow-branch-creator.prompt.md +293 -0
  291. package/assets/prompts/github-copilot-starter.prompt.md +372 -0
  292. package/assets/prompts/go-mcp-server-generator.prompt.md +334 -0
  293. package/assets/prompts/java-docs.prompt.md +24 -0
  294. package/assets/prompts/java-junit.prompt.md +64 -0
  295. package/assets/prompts/java-mcp-server-generator.prompt.md +756 -0
  296. package/assets/prompts/java-refactoring-extract-method.prompt.md +105 -0
  297. package/assets/prompts/java-refactoring-remove-parameter.prompt.md +85 -0
  298. package/assets/prompts/java-springboot.prompt.md +66 -0
  299. package/assets/prompts/javascript-typescript-jest.prompt.md +44 -0
  300. package/assets/prompts/kotlin-mcp-server-generator.prompt.md +449 -0
  301. package/assets/prompts/kotlin-springboot.prompt.md +71 -0
  302. package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +118 -0
  303. package/assets/prompts/memory-merger.prompt.md +107 -0
  304. package/assets/prompts/mkdocs-translations.prompt.md +110 -0
  305. package/assets/prompts/model-recommendation.prompt.md +677 -0
  306. package/assets/prompts/multi-stage-dockerfile.prompt.md +47 -0
  307. package/assets/prompts/my-issues.prompt.md +9 -0
  308. package/assets/prompts/my-pull-requests.prompt.md +15 -0
  309. package/assets/prompts/next-intl-add-language.prompt.md +20 -0
  310. package/assets/prompts/php-mcp-server-generator.prompt.md +522 -0
  311. package/assets/prompts/playwright-automation-fill-in-form.prompt.md +30 -0
  312. package/assets/prompts/playwright-explore-website.prompt.md +19 -0
  313. package/assets/prompts/playwright-generate-test.prompt.md +19 -0
  314. package/assets/prompts/postgresql-code-review.prompt.md +214 -0
  315. package/assets/prompts/postgresql-optimization.prompt.md +406 -0
  316. package/assets/prompts/power-apps-code-app-scaffold.prompt.md +150 -0
  317. package/assets/prompts/power-bi-dax-optimization.prompt.md +175 -0
  318. package/assets/prompts/power-bi-model-design-review.prompt.md +405 -0
  319. package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +384 -0
  320. package/assets/prompts/power-bi-report-design-consultation.prompt.md +353 -0
  321. package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +156 -0
  322. package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
  323. package/assets/prompts/prompt-builder.prompt.md +142 -0
  324. package/assets/prompts/pytest-coverage.prompt.md +28 -0
  325. package/assets/prompts/python-mcp-server-generator.prompt.md +105 -0
  326. package/assets/prompts/readme-blueprint-generator.prompt.md +79 -0
  327. package/assets/prompts/remember-interactive-programming.prompt.md +13 -0
  328. package/assets/prompts/remember.prompt.md +125 -0
  329. package/assets/prompts/repo-story-time.prompt.md +156 -0
  330. package/assets/prompts/review-and-refactor.prompt.md +15 -0
  331. package/assets/prompts/ruby-mcp-server-generator.prompt.md +660 -0
  332. package/assets/prompts/rust-mcp-server-generator.prompt.md +578 -0
  333. package/assets/prompts/shuffle-json-data.prompt.md +151 -0
  334. package/assets/prompts/sql-code-review.prompt.md +303 -0
  335. package/assets/prompts/sql-optimization.prompt.md +298 -0
  336. package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
  337. package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
  338. package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
  339. package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
  340. package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
  341. package/assets/prompts/swift-mcp-server-generator.prompt.md +669 -0
  342. package/assets/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
  343. package/assets/prompts/typescript-mcp-server-generator.prompt.md +90 -0
  344. package/assets/prompts/update-avm-modules-in-bicep.prompt.md +60 -0
  345. package/assets/prompts/update-implementation-plan.prompt.md +157 -0
  346. package/assets/prompts/update-llms.prompt.md +216 -0
  347. package/assets/prompts/update-markdown-file-index.prompt.md +76 -0
  348. package/assets/prompts/update-oo-component-documentation.prompt.md +162 -0
  349. package/assets/prompts/update-specification.prompt.md +127 -0
  350. package/assets/prompts/write-coding-standards-from-file.prompt.md +316 -0
  351. package/bin/cli.js +200 -0
  352. package/package.json +53 -0
  353. package/scripts/sync.js +99 -0
  354. package/verdaccio/config.yaml +202 -0
@@ -0,0 +1,373 @@
1
+ ---
2
+ description: 'Instructions for writing Go code following idiomatic Go practices and community standards'
3
+ applyTo: '**/*.go,**/go.mod,**/go.sum'
4
+ ---
5
+
6
+ # Go Development Instructions
7
+
8
+ Follow idiomatic Go practices and community standards when writing Go code. These instructions are based on [Effective Go](https://go.dev/doc/effective_go), [Go Code Review Comments](https://go.dev/wiki/CodeReviewComments), and [Google's Go Style Guide](https://google.github.io/styleguide/go/).
9
+
10
+ ## General Instructions
11
+
12
+ - Write simple, clear, and idiomatic Go code
13
+ - Favor clarity and simplicity over cleverness
14
+ - Follow the principle of least surprise
15
+ - Keep the happy path left-aligned (minimize indentation)
16
+ - Return early to reduce nesting
17
+ - Prefer early return over if-else chains; use `if condition { return }` pattern to avoid else blocks
18
+ - Make the zero value useful
19
+ - Write self-documenting code with clear, descriptive names
20
+ - Document exported types, functions, methods, and packages
21
+ - Use Go modules for dependency management
22
+ - Leverage the Go standard library instead of reinventing the wheel (e.g., use `strings.Builder` for string concatenation, `filepath.Join` for path construction)
23
+ - Prefer standard library solutions over custom implementations when functionality exists
24
+ - Write comments in English by default; translate only upon user request
25
+ - Avoid using emoji in code and comments
26
+
27
+ ## Naming Conventions
28
+
29
+ ### Packages
30
+
31
+ - Use lowercase, single-word package names
32
+ - Avoid underscores, hyphens, or mixedCaps
33
+ - Choose names that describe what the package provides, not what it contains
34
+ - Avoid generic names like `util`, `common`, or `base`
35
+ - Package names should be singular, not plural
36
+
37
+ #### Package Declaration Rules (CRITICAL):
38
+ - **NEVER duplicate `package` declarations** - each Go file must have exactly ONE `package` line
39
+ - When editing an existing `.go` file:
40
+ - **PRESERVE** the existing `package` declaration - do not add another one
41
+ - If you need to replace the entire file content, start with the existing package name
42
+ - When creating a new `.go` file:
43
+ - **BEFORE writing any code**, check what package name other `.go` files in the same directory use
44
+ - Use the SAME package name as existing files in that directory
45
+ - If it's a new directory, use the directory name as the package name
46
+ - Write **exactly one** `package <name>` line at the very top of the file
47
+ - When using file creation or replacement tools:
48
+ - **ALWAYS verify** the target file doesn't already have a `package` declaration before adding one
49
+ - If replacing file content, include only ONE `package` declaration in the new content
50
+ - **NEVER** create files with multiple `package` lines or duplicate declarations
51
+
52
+ ### Variables and Functions
53
+
54
+ - Use mixedCaps or MixedCaps (camelCase) rather than underscores
55
+ - Keep names short but descriptive
56
+ - Use single-letter variables only for very short scopes (like loop indices)
57
+ - Exported names start with a capital letter
58
+ - Unexported names start with a lowercase letter
59
+ - Avoid stuttering (e.g., avoid `http.HTTPServer`, prefer `http.Server`)
60
+
61
+ ### Interfaces
62
+
63
+ - Name interfaces with -er suffix when possible (e.g., `Reader`, `Writer`, `Formatter`)
64
+ - Single-method interfaces should be named after the method (e.g., `Read` → `Reader`)
65
+ - Keep interfaces small and focused
66
+
67
+ ### Constants
68
+
69
+ - Use MixedCaps for exported constants
70
+ - Use mixedCaps for unexported constants
71
+ - Group related constants using `const` blocks
72
+ - Consider using typed constants for better type safety
73
+
74
+ ## Code Style and Formatting
75
+
76
+ ### Formatting
77
+
78
+ - Always use `gofmt` to format code
79
+ - Use `goimports` to manage imports automatically
80
+ - Keep line length reasonable (no hard limit, but consider readability)
81
+ - Add blank lines to separate logical groups of code
82
+
83
+ ### Comments
84
+
85
+ - Strive for self-documenting code; prefer clear variable names, function names, and code structure over comments
86
+ - Write comments only when necessary to explain complex logic, business rules, or non-obvious behavior
87
+ - Write comments in complete sentences in English by default
88
+ - Translate comments to other languages only upon specific user request
89
+ - Start sentences with the name of the thing being described
90
+ - Package comments should start with "Package [name]"
91
+ - Use line comments (`//`) for most comments
92
+ - Use block comments (`/* */`) sparingly, mainly for package documentation
93
+ - Document why, not what, unless the what is complex
94
+ - Avoid emoji in comments and code
95
+
96
+ ### Error Handling
97
+
98
+ - Check errors immediately after the function call
99
+ - Don't ignore errors using `_` unless you have a good reason (document why)
100
+ - Wrap errors with context using `fmt.Errorf` with `%w` verb
101
+ - Create custom error types when you need to check for specific errors
102
+ - Place error returns as the last return value
103
+ - Name error variables `err`
104
+ - Keep error messages lowercase and don't end with punctuation
105
+
106
+ ## Architecture and Project Structure
107
+
108
+ ### Package Organization
109
+
110
+ - Follow standard Go project layout conventions
111
+ - Keep `main` packages in `cmd/` directory
112
+ - Put reusable packages in `pkg/` or `internal/`
113
+ - Use `internal/` for packages that shouldn't be imported by external projects
114
+ - Group related functionality into packages
115
+ - Avoid circular dependencies
116
+
117
+ ### Dependency Management
118
+
119
+ - Use Go modules (`go.mod` and `go.sum`)
120
+ - Keep dependencies minimal
121
+ - Regularly update dependencies for security patches
122
+ - Use `go mod tidy` to clean up unused dependencies
123
+ - Vendor dependencies only when necessary
124
+
125
+ ## Type Safety and Language Features
126
+
127
+ ### Type Definitions
128
+
129
+ - Define types to add meaning and type safety
130
+ - Use struct tags for JSON, XML, database mappings
131
+ - Prefer explicit type conversions
132
+ - Use type assertions carefully and check the second return value
133
+ - Prefer generics over unconstrained types; when an unconstrained type is truly needed, use the predeclared alias `any` instead of `interface{}` (Go 1.18+)
134
+
135
+ ### Pointers vs Values
136
+
137
+ - Use pointer receivers for large structs or when you need to modify the receiver
138
+ - Use value receivers for small structs and when immutability is desired
139
+ - Use pointer parameters when you need to modify the argument or for large structs
140
+ - Use value parameters for small structs and when you want to prevent modification
141
+ - Be consistent within a type's method set
142
+ - Consider the zero value when choosing pointer vs value receivers
143
+
144
+ ### Interfaces and Composition
145
+
146
+ - Accept interfaces, return concrete types
147
+ - Keep interfaces small (1-3 methods is ideal)
148
+ - Use embedding for composition
149
+ - Define interfaces close to where they're used, not where they're implemented
150
+ - Don't export interfaces unless necessary
151
+
152
+ ## Concurrency
153
+
154
+ ### Goroutines
155
+
156
+ - Be cautious about creating goroutines in libraries; prefer letting the caller control concurrency
157
+ - If you must create goroutines in libraries, provide clear documentation and cleanup mechanisms
158
+ - Always know how a goroutine will exit
159
+ - Use `sync.WaitGroup` or channels to wait for goroutines
160
+ - Avoid goroutine leaks by ensuring cleanup
161
+
162
+ ### Channels
163
+
164
+ - Use channels to communicate between goroutines
165
+ - Don't communicate by sharing memory; share memory by communicating
166
+ - Close channels from the sender side, not the receiver
167
+ - Use buffered channels when you know the capacity
168
+ - Use `select` for non-blocking operations
169
+
170
+ ### Synchronization
171
+
172
+ - Use `sync.Mutex` for protecting shared state
173
+ - Keep critical sections small
174
+ - Use `sync.RWMutex` when you have many readers
175
+ - Choose between channels and mutexes based on the use case: use channels for communication, mutexes for protecting state
176
+ - Use `sync.Once` for one-time initialization
177
+ - WaitGroup usage by Go version:
178
+ - If `go >= 1.25` in `go.mod`, use the new `WaitGroup.Go` method ([documentation](https://pkg.go.dev/sync#WaitGroup)):
179
+ ```go
180
+ var wg sync.WaitGroup
181
+ wg.Go(task1)
182
+ wg.Go(task2)
183
+ wg.Wait()
184
+ ```
185
+ - If `go < 1.25`, use the classic `Add`/`Done` pattern
186
+
187
+ ## Error Handling Patterns
188
+
189
+ ### Creating Errors
190
+
191
+ - Use `errors.New` for simple static errors
192
+ - Use `fmt.Errorf` for dynamic errors
193
+ - Create custom error types for domain-specific errors
194
+ - Export error variables for sentinel errors
195
+ - Use `errors.Is` and `errors.As` for error checking
196
+
197
+ ### Error Propagation
198
+
199
+ - Add context when propagating errors up the stack
200
+ - Don't log and return errors (choose one)
201
+ - Handle errors at the appropriate level
202
+ - Consider using structured errors for better debugging
203
+
204
+ ## API Design
205
+
206
+ ### HTTP Handlers
207
+
208
+ - Use `http.HandlerFunc` for simple handlers
209
+ - Implement `http.Handler` for handlers that need state
210
+ - Use middleware for cross-cutting concerns
211
+ - Set appropriate status codes and headers
212
+ - Handle errors gracefully and return appropriate error responses
213
+ - Router usage by Go version:
214
+ - If `go >= 1.22`, prefer the enhanced `net/http` `ServeMux` with pattern-based routing and method matching
215
+ - If `go < 1.22`, use the classic `ServeMux` and handle methods/paths manually (or use a third-party router when justified)
216
+
217
+ ### JSON APIs
218
+
219
+ - Use struct tags to control JSON marshaling
220
+ - Validate input data
221
+ - Use pointers for optional fields
222
+ - Consider using `json.RawMessage` for delayed parsing
223
+ - Handle JSON errors appropriately
224
+
225
+ ### HTTP Clients
226
+
227
+ - Keep the client struct focused on configuration and dependencies only (e.g., base URL, `*http.Client`, auth, default headers). It must not store per-request state
228
+ - Do not store or cache `*http.Request` inside the client struct, and do not persist request-specific state across calls; instead, construct a fresh request per method invocation
229
+ - Methods should accept `context.Context` and input parameters, assemble the `*http.Request` locally (or via a short-lived builder/helper created per call), then call `c.httpClient.Do(req)`
230
+ - If request-building logic is reused, factor it into unexported helper functions or a per-call builder type; never keep `http.Request` (URL params, body, headers) as fields on the long-lived client
231
+ - Ensure the underlying `*http.Client` is configured (timeouts, transport) and is safe for concurrent use; avoid mutating `Transport` after first use
232
+ - Always set headers on the request instance you’re sending, and close response bodies (`defer resp.Body.Close()`), handling errors appropriately
233
+
234
+ ## Performance Optimization
235
+
236
+ ### Memory Management
237
+
238
+ - Minimize allocations in hot paths
239
+ - Reuse objects when possible (consider `sync.Pool`)
240
+ - Use value receivers for small structs
241
+ - Preallocate slices when size is known
242
+ - Avoid unnecessary string conversions
243
+
244
+ ### I/O: Readers and Buffers
245
+
246
+ - Most `io.Reader` streams are consumable once; reading advances state. Do not assume a reader can be re-read without special handling
247
+ - If you must read data multiple times, buffer it once and recreate readers on demand:
248
+ - Use `io.ReadAll` (or a limited read) to obtain `[]byte`, then create fresh readers via `bytes.NewReader(buf)` or `bytes.NewBuffer(buf)` for each reuse
249
+ - For strings, use `strings.NewReader(s)`; you can `Seek(0, io.SeekStart)` on `*bytes.Reader` to rewind
250
+ - For HTTP requests, do not reuse a consumed `req.Body`. Instead:
251
+ - Keep the original payload as `[]byte` and set `req.Body = io.NopCloser(bytes.NewReader(buf))` before each send
252
+ - Prefer configuring `req.GetBody` so the transport can recreate the body for redirects/retries: `req.GetBody = func() (io.ReadCloser, error) { return io.NopCloser(bytes.NewReader(buf)), nil }`
253
+ - To duplicate a stream while reading, use `io.TeeReader` (copy to a buffer while passing through) or write to multiple sinks with `io.MultiWriter`
254
+ - Reusing buffered readers: call `(*bufio.Reader).Reset(r)` to attach to a new underlying reader; do not expect it to “rewind” unless the source supports seeking
255
+ - For large payloads, avoid unbounded buffering; consider streaming, `io.LimitReader`, or on-disk temporary storage to control memory
256
+
257
+ - Use `io.Pipe` to stream without buffering the whole payload:
258
+ - Write to `*io.PipeWriter` in a separate goroutine while the reader consumes
259
+ - Always close the writer; use `CloseWithError(err)` on failures
260
+ - `io.Pipe` is for streaming, not rewinding or making readers reusable
261
+
262
+ - **Warning:** When using `io.Pipe` (especially with multipart writers), all writes must be performed in strict, sequential order. Do not write concurrently or out of order—multipart boundaries and chunk order must be preserved. Out-of-order or parallel writes can corrupt the stream and result in errors.
263
+
264
+ - Streaming multipart/form-data with `io.Pipe`:
265
+ - `pr, pw := io.Pipe()`; `mw := multipart.NewWriter(pw)`; use `pr` as the HTTP request body
266
+ - Set `Content-Type` to `mw.FormDataContentType()`
267
+ - In a goroutine: write all parts to `mw` in the correct order; on error `pw.CloseWithError(err)`; on success `mw.Close()` then `pw.Close()`
268
+ - Do not store request/in-flight form state on a long-lived client; build per call
269
+ - Streamed bodies are not rewindable; for retries/redirects, buffer small payloads or provide `GetBody`
270
+
271
+ ### Profiling
272
+
273
+ - Use built-in profiling tools (`pprof`)
274
+ - Benchmark critical code paths
275
+ - Profile before optimizing
276
+ - Focus on algorithmic improvements first
277
+ - Consider using `testing.B` for benchmarks
278
+
279
+ ## Testing
280
+
281
+ ### Test Organization
282
+
283
+ - Keep tests in the same package (white-box testing)
284
+ - Use `_test` package suffix for black-box testing
285
+ - Name test files with `_test.go` suffix
286
+ - Place test files next to the code they test
287
+
288
+ ### Writing Tests
289
+
290
+ - Use table-driven tests for multiple test cases
291
+ - Name tests descriptively using `Test_functionName_scenario`
292
+ - Use subtests with `t.Run` for better organization
293
+ - Test both success and error cases
294
+ - Consider using `testify` or similar libraries when they add value, but don't over-complicate simple tests
295
+
296
+ ### Test Helpers
297
+
298
+ - Mark helper functions with `t.Helper()`
299
+ - Create test fixtures for complex setup
300
+ - Use `testing.TB` interface for functions used in tests and benchmarks
301
+ - Clean up resources using `t.Cleanup()`
302
+
303
+ ## Security Best Practices
304
+
305
+ ### Input Validation
306
+
307
+ - Validate all external input
308
+ - Use strong typing to prevent invalid states
309
+ - Sanitize data before using in SQL queries
310
+ - Be careful with file paths from user input
311
+ - Validate and escape data for different contexts (HTML, SQL, shell)
312
+
313
+ ### Cryptography
314
+
315
+ - Use standard library crypto packages
316
+ - Don't implement your own cryptography
317
+ - Use crypto/rand for random number generation
318
+ - Store passwords using bcrypt, scrypt, or argon2 (consider golang.org/x/crypto for additional options)
319
+ - Use TLS for network communication
320
+
321
+ ## Documentation
322
+
323
+ ### Code Documentation
324
+
325
+ - Prioritize self-documenting code through clear naming and structure
326
+ - Document all exported symbols with clear, concise explanations
327
+ - Start documentation with the symbol name
328
+ - Write documentation in English by default
329
+ - Use examples in documentation when helpful
330
+ - Keep documentation close to code
331
+ - Update documentation when code changes
332
+ - Avoid emoji in documentation and comments
333
+
334
+ ### README and Documentation Files
335
+
336
+ - Include clear setup instructions
337
+ - Document dependencies and requirements
338
+ - Provide usage examples
339
+ - Document configuration options
340
+ - Include troubleshooting section
341
+
342
+ ## Tools and Development Workflow
343
+
344
+ ### Essential Tools
345
+
346
+ - `go fmt`: Format code
347
+ - `go vet`: Find suspicious constructs
348
+ - `golangci-lint`: Additional linting (golint is deprecated)
349
+ - `go test`: Run tests
350
+ - `go mod`: Manage dependencies
351
+ - `go generate`: Code generation
352
+
353
+ ### Development Practices
354
+
355
+ - Run tests before committing
356
+ - Use pre-commit hooks for formatting and linting
357
+ - Keep commits focused and atomic
358
+ - Write meaningful commit messages
359
+ - Review diffs before committing
360
+
361
+ ## Common Pitfalls to Avoid
362
+
363
+ - Not checking errors
364
+ - Ignoring race conditions
365
+ - Creating goroutine leaks
366
+ - Not using defer for cleanup
367
+ - Modifying maps concurrently
368
+ - Not understanding nil interfaces vs nil pointers
369
+ - Forgetting to close resources (files, connections)
370
+ - Using global variables unnecessarily
371
+ - Over-using unconstrained types (e.g., `any`); prefer specific types or generic type parameters with constraints. If an unconstrained type is required, use `any` rather than `interface{}`
372
+ - Not considering the zero value of types
373
+ - **Creating duplicate `package` declarations** - this is a compile error; always check existing files before adding package declarations
@@ -0,0 +1,256 @@
1
+ ---
2
+ description: 'Guidelines for creating high-quality custom instruction files for GitHub Copilot'
3
+ applyTo: '**/*.instructions.md'
4
+ ---
5
+
6
+ # Custom Instructions File Guidelines
7
+
8
+ Instructions for creating effective and maintainable custom instruction files that guide GitHub Copilot in generating domain-specific code and following project conventions.
9
+
10
+ ## Project Context
11
+
12
+ - Target audience: Developers and GitHub Copilot working with domain-specific code
13
+ - File format: Markdown with YAML frontmatter
14
+ - File naming convention: lowercase with hyphens (e.g., `react-best-practices.instructions.md`)
15
+ - Location: `.github/instructions/` directory
16
+ - Purpose: Provide context-aware guidance for code generation, review, and documentation
17
+
18
+ ## Required Frontmatter
19
+
20
+ Every instruction file must include YAML frontmatter with the following fields:
21
+
22
+ ```yaml
23
+ ---
24
+ description: 'Brief description of the instruction purpose and scope'
25
+ applyTo: 'glob pattern for target files (e.g., **/*.ts, **/*.py)'
26
+ ---
27
+ ```
28
+
29
+ ### Frontmatter Guidelines
30
+
31
+ - **description**: Single-quoted string, 1-500 characters, clearly stating the purpose
32
+ - **applyTo**: Glob pattern(s) specifying which files these instructions apply to
33
+ - Single pattern: `'**/*.ts'`
34
+ - Multiple patterns: `'**/*.ts, **/*.tsx, **/*.js'`
35
+ - Specific files: `'src/**/*.py'`
36
+ - All files: `'**'`
37
+
38
+ ## File Structure
39
+
40
+ A well-structured instruction file should include the following sections:
41
+
42
+ ### 1. Title and Overview
43
+
44
+ - Clear, descriptive title using `#` heading
45
+ - Brief introduction explaining the purpose and scope
46
+ - Optional: Project context section with key technologies and versions
47
+
48
+ ### 2. Core Sections
49
+
50
+ Organize content into logical sections based on the domain:
51
+
52
+ - **General Instructions**: High-level guidelines and principles
53
+ - **Best Practices**: Recommended patterns and approaches
54
+ - **Code Standards**: Naming conventions, formatting, style rules
55
+ - **Architecture/Structure**: Project organization and design patterns
56
+ - **Common Patterns**: Frequently used implementations
57
+ - **Security**: Security considerations (if applicable)
58
+ - **Performance**: Optimization guidelines (if applicable)
59
+ - **Testing**: Testing standards and approaches (if applicable)
60
+
61
+ ### 3. Examples and Code Snippets
62
+
63
+ Provide concrete examples with clear labels:
64
+
65
+ ```markdown
66
+ ### Good Example
67
+ \`\`\`language
68
+ // Recommended approach
69
+ code example here
70
+ \`\`\`
71
+
72
+ ### Bad Example
73
+ \`\`\`language
74
+ // Avoid this pattern
75
+ code example here
76
+ \`\`\`
77
+ ```
78
+
79
+ ### 4. Validation and Verification (Optional but Recommended)
80
+
81
+ - Build commands to verify code
82
+ - Linting and formatting tools
83
+ - Testing requirements
84
+ - Verification steps
85
+
86
+ ## Content Guidelines
87
+
88
+ ### Writing Style
89
+
90
+ - Use clear, concise language
91
+ - Write in imperative mood ("Use", "Implement", "Avoid")
92
+ - Be specific and actionable
93
+ - Avoid ambiguous terms like "should", "might", "possibly"
94
+ - Use bullet points and lists for readability
95
+ - Keep sections focused and scannable
96
+
97
+ ### Best Practices
98
+
99
+ - **Be Specific**: Provide concrete examples rather than abstract concepts
100
+ - **Show Why**: Explain the reasoning behind recommendations when it adds value
101
+ - **Use Tables**: For comparing options, listing rules, or showing patterns
102
+ - **Include Examples**: Real code snippets are more effective than descriptions
103
+ - **Stay Current**: Reference current versions and best practices
104
+ - **Link Resources**: Include official documentation and authoritative sources
105
+
106
+ ### Common Patterns to Include
107
+
108
+ 1. **Naming Conventions**: How to name variables, functions, classes, files
109
+ 2. **Code Organization**: File structure, module organization, import order
110
+ 3. **Error Handling**: Preferred error handling patterns
111
+ 4. **Dependencies**: How to manage and document dependencies
112
+ 5. **Comments and Documentation**: When and how to document code
113
+ 6. **Version Information**: Target language/framework versions
114
+
115
+ ## Patterns to Follow
116
+
117
+ ### Bullet Points and Lists
118
+
119
+ ```markdown
120
+ ## Security Best Practices
121
+
122
+ - Always validate user input before processing
123
+ - Use parameterized queries to prevent SQL injection
124
+ - Store secrets in environment variables, never in code
125
+ - Implement proper authentication and authorization
126
+ - Enable HTTPS for all production endpoints
127
+ ```
128
+
129
+ ### Tables for Structured Information
130
+
131
+ ```markdown
132
+ ## Common Issues
133
+
134
+ | Issue | Solution | Example |
135
+ | ---------------- | ------------------- | ----------------------------- |
136
+ | Magic numbers | Use named constants | `const MAX_RETRIES = 3` |
137
+ | Deep nesting | Extract functions | Refactor nested if statements |
138
+ | Hardcoded values | Use configuration | Store API URLs in config |
139
+ ```
140
+
141
+ ### Code Comparison
142
+
143
+ ```markdown
144
+ ### Good Example - Using TypeScript interfaces
145
+ \`\`\`typescript
146
+ interface User {
147
+ id: string;
148
+ name: string;
149
+ email: string;
150
+ }
151
+
152
+ function getUser(id: string): User {
153
+ // Implementation
154
+ }
155
+ \`\`\`
156
+
157
+ ### Bad Example - Using any type
158
+ \`\`\`typescript
159
+ function getUser(id: any): any {
160
+ // Loses type safety
161
+ }
162
+ \`\`\`
163
+ ```
164
+
165
+ ### Conditional Guidance
166
+
167
+ ```markdown
168
+ ## Framework Selection
169
+
170
+ - **For small projects**: Use Minimal API approach
171
+ - **For large projects**: Use controller-based architecture with clear separation
172
+ - **For microservices**: Consider domain-driven design patterns
173
+ ```
174
+
175
+ ## Patterns to Avoid
176
+
177
+ - **Overly verbose explanations**: Keep it concise and scannable
178
+ - **Outdated information**: Always reference current versions and practices
179
+ - **Ambiguous guidelines**: Be specific about what to do or avoid
180
+ - **Missing examples**: Abstract rules without concrete code examples
181
+ - **Contradictory advice**: Ensure consistency throughout the file
182
+ - **Copy-paste from documentation**: Add value by distilling and contextualizing
183
+
184
+ ## Testing Your Instructions
185
+
186
+ Before finalizing instruction files:
187
+
188
+ 1. **Test with Copilot**: Try the instructions with actual prompts in VS Code
189
+ 2. **Verify Examples**: Ensure code examples are correct and run without errors
190
+ 3. **Check Glob Patterns**: Confirm `applyTo` patterns match intended files
191
+
192
+ ## Example Structure
193
+
194
+ Here's a minimal example structure for a new instruction file:
195
+
196
+ ```markdown
197
+ ---
198
+ description: 'Brief description of purpose'
199
+ applyTo: '**/*.ext'
200
+ ---
201
+
202
+ # Technology Name Development
203
+
204
+ Brief introduction and context.
205
+
206
+ ## General Instructions
207
+
208
+ - High-level guideline 1
209
+ - High-level guideline 2
210
+
211
+ ## Best Practices
212
+
213
+ - Specific practice 1
214
+ - Specific practice 2
215
+
216
+ ## Code Standards
217
+
218
+ ### Naming Conventions
219
+ - Rule 1
220
+ - Rule 2
221
+
222
+ ### File Organization
223
+ - Structure 1
224
+ - Structure 2
225
+
226
+ ## Common Patterns
227
+
228
+ ### Pattern 1
229
+ Description and example
230
+
231
+ \`\`\`language
232
+ code example
233
+ \`\`\`
234
+
235
+ ### Pattern 2
236
+ Description and example
237
+
238
+ ## Validation
239
+
240
+ - Build command: `command to verify`
241
+ - Linting: `command to lint`
242
+ - Testing: `command to test`
243
+ ```
244
+
245
+ ## Maintenance
246
+
247
+ - Review instructions when dependencies or frameworks are updated
248
+ - Update examples to reflect current best practices
249
+ - Remove outdated patterns or deprecated features
250
+ - Add new patterns as they emerge in the community
251
+ - Keep glob patterns accurate as project structure evolves
252
+
253
+ ## Additional Resources
254
+
255
+ - [Custom Instructions Documentation](https://code.visualstudio.com/docs/copilot/customization/custom-instructions)
256
+ - [Awesome Copilot Instructions](https://github.com/github/awesome-copilot/tree/main/instructions)