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,197 @@
1
+ ---
2
+ applyTo: '**/*.Tests.ps1'
3
+ description: 'PowerShell Pester testing best practices based on Pester v5 conventions'
4
+ ---
5
+
6
+ # PowerShell Pester v5 Testing Guidelines
7
+
8
+ This guide provides PowerShell-specific instructions for creating automated tests using PowerShell Pester v5 module. Follow PowerShell cmdlet development guidelines in [powershell.instructions.md](./powershell.instructions.md) for general PowerShell scripting best practices.
9
+
10
+ ## File Naming and Structure
11
+
12
+ - **File Convention:** Use `*.Tests.ps1` naming pattern
13
+ - **Placement:** Place test files next to tested code or in dedicated test directories
14
+ - **Import Pattern:** Use `BeforeAll { . $PSScriptRoot/FunctionName.ps1 }` to import tested functions
15
+ - **No Direct Code:** Put ALL code inside Pester blocks (`BeforeAll`, `Describe`, `Context`, `It`, etc.)
16
+
17
+ ## Test Structure Hierarchy
18
+
19
+ ```powershell
20
+ BeforeAll { # Import tested functions }
21
+ Describe 'FunctionName' {
22
+ Context 'When condition' {
23
+ BeforeAll { # Setup for context }
24
+ It 'Should behavior' { # Individual test }
25
+ AfterAll { # Cleanup for context }
26
+ }
27
+ }
28
+ ```
29
+
30
+ ## Core Keywords
31
+
32
+ - **`Describe`**: Top-level grouping, typically named after function being tested
33
+ - **`Context`**: Sub-grouping within Describe for specific scenarios
34
+ - **`It`**: Individual test cases, use descriptive names
35
+ - **`Should`**: Assertion keyword for test validation
36
+ - **`BeforeAll/AfterAll`**: Setup/teardown once per block
37
+ - **`BeforeEach/AfterEach`**: Setup/teardown before/after each test
38
+
39
+ ## Setup and Teardown
40
+
41
+ - **`BeforeAll`**: Runs once at start of containing block, use for expensive operations
42
+ - **`BeforeEach`**: Runs before every `It` in block, use for test-specific setup
43
+ - **`AfterEach`**: Runs after every `It`, guaranteed even if test fails
44
+ - **`AfterAll`**: Runs once at end of block, use for cleanup
45
+ - **Variable Scoping**: `BeforeAll` variables available to child blocks (read-only), `BeforeEach/It/AfterEach` share same scope
46
+
47
+ ## Assertions (Should)
48
+
49
+ - **Basic Comparisons**: `-Be`, `-BeExactly`, `-Not -Be`
50
+ - **Collections**: `-Contain`, `-BeIn`, `-HaveCount`
51
+ - **Numeric**: `-BeGreaterThan`, `-BeLessThan`, `-BeGreaterOrEqual`
52
+ - **Strings**: `-Match`, `-Like`, `-BeNullOrEmpty`
53
+ - **Types**: `-BeOfType`, `-BeTrue`, `-BeFalse`
54
+ - **Files**: `-Exist`, `-FileContentMatch`
55
+ - **Exceptions**: `-Throw`, `-Not -Throw`
56
+
57
+ ## Mocking
58
+
59
+ - **`Mock CommandName { ScriptBlock }`**: Replace command behavior
60
+ - **`-ParameterFilter`**: Mock only when parameters match condition
61
+ - **`-Verifiable`**: Mark mock as requiring verification
62
+ - **`Should -Invoke`**: Verify mock was called specific number of times
63
+ - **`Should -InvokeVerifiable`**: Verify all verifiable mocks were called
64
+ - **Scope**: Mocks default to containing block scope
65
+
66
+ ```powershell
67
+ Mock Get-Service { @{ Status = 'Running' } } -ParameterFilter { $Name -eq 'TestService' }
68
+ Should -Invoke Get-Service -Exactly 1 -ParameterFilter { $Name -eq 'TestService' }
69
+ ```
70
+
71
+ ## Test Cases (Data-Driven Tests)
72
+
73
+ Use `-TestCases` or `-ForEach` for parameterized tests:
74
+
75
+ ```powershell
76
+ It 'Should return <Expected> for <Input>' -TestCases @(
77
+ @{ Input = 'value1'; Expected = 'result1' }
78
+ @{ Input = 'value2'; Expected = 'result2' }
79
+ ) {
80
+ Get-Function $Input | Should -Be $Expected
81
+ }
82
+ ```
83
+
84
+ ## Data-Driven Tests
85
+
86
+ - **`-ForEach`**: Available on `Describe`, `Context`, and `It` for generating multiple tests from data
87
+ - **`-TestCases`**: Alias for `-ForEach` on `It` blocks (backwards compatibility)
88
+ - **Hashtable Data**: Each item defines variables available in test (e.g., `@{ Name = 'value'; Expected = 'result' }`)
89
+ - **Array Data**: Uses `$_` variable for current item
90
+ - **Templates**: Use `<variablename>` in test names for dynamic expansion
91
+
92
+ ```powershell
93
+ # Hashtable approach
94
+ It 'Returns <Expected> for <Name>' -ForEach @(
95
+ @{ Name = 'test1'; Expected = 'result1' }
96
+ @{ Name = 'test2'; Expected = 'result2' }
97
+ ) { Get-Function $Name | Should -Be $Expected }
98
+
99
+ # Array approach
100
+ It 'Contains <_>' -ForEach 'item1', 'item2' { Get-Collection | Should -Contain $_ }
101
+ ```
102
+
103
+ ## Tags
104
+
105
+ - **Available on**: `Describe`, `Context`, and `It` blocks
106
+ - **Filtering**: Use `-TagFilter` and `-ExcludeTagFilter` with `Invoke-Pester`
107
+ - **Wildcards**: Tags support `-like` wildcards for flexible filtering
108
+
109
+ ```powershell
110
+ Describe 'Function' -Tag 'Unit' {
111
+ It 'Should work' -Tag 'Fast', 'Stable' { }
112
+ It 'Should be slow' -Tag 'Slow', 'Integration' { }
113
+ }
114
+
115
+ # Run only fast unit tests
116
+ Invoke-Pester -TagFilter 'Unit' -ExcludeTagFilter 'Slow'
117
+ ```
118
+
119
+ ## Skip
120
+
121
+ - **`-Skip`**: Available on `Describe`, `Context`, and `It` to skip tests
122
+ - **Conditional**: Use `-Skip:$condition` for dynamic skipping
123
+ - **Runtime Skip**: Use `Set-ItResult -Skipped` during test execution (setup/teardown still run)
124
+
125
+ ```powershell
126
+ It 'Should work on Windows' -Skip:(-not $IsWindows) { }
127
+ Context 'Integration tests' -Skip { }
128
+ ```
129
+
130
+ ## Error Handling
131
+
132
+ - **Continue on Failure**: Use `Should.ErrorAction = 'Continue'` to collect multiple failures
133
+ - **Stop on Critical**: Use `-ErrorAction Stop` for pre-conditions
134
+ - **Test Exceptions**: Use `{ Code } | Should -Throw` for exception testing
135
+
136
+ ## Best Practices
137
+
138
+ - **Descriptive Names**: Use clear test descriptions that explain behavior
139
+ - **AAA Pattern**: Arrange (setup), Act (execute), Assert (verify)
140
+ - **Isolated Tests**: Each test should be independent
141
+ - **Avoid Aliases**: Use full cmdlet names (`Where-Object` not `?`)
142
+ - **Single Responsibility**: One assertion per test when possible
143
+ - **Test File Organization**: Group related tests in Context blocks. Context blocks can be nested.
144
+
145
+ ## Example Test Pattern
146
+
147
+ ```powershell
148
+ BeforeAll {
149
+ . $PSScriptRoot/Get-UserInfo.ps1
150
+ }
151
+
152
+ Describe 'Get-UserInfo' {
153
+ Context 'When user exists' {
154
+ BeforeAll {
155
+ Mock Get-ADUser { @{ Name = 'TestUser'; Enabled = $true } }
156
+ }
157
+
158
+ It 'Should return user object' {
159
+ $result = Get-UserInfo -Username 'TestUser'
160
+ $result | Should -Not -BeNullOrEmpty
161
+ $result.Name | Should -Be 'TestUser'
162
+ }
163
+
164
+ It 'Should call Get-ADUser once' {
165
+ Get-UserInfo -Username 'TestUser'
166
+ Should -Invoke Get-ADUser -Exactly 1
167
+ }
168
+ }
169
+
170
+ Context 'When user does not exist' {
171
+ BeforeAll {
172
+ Mock Get-ADUser { throw "User not found" }
173
+ }
174
+
175
+ It 'Should throw exception' {
176
+ { Get-UserInfo -Username 'NonExistent' } | Should -Throw "*not found*"
177
+ }
178
+ }
179
+ }
180
+ ```
181
+
182
+ ## Configuration
183
+
184
+ Configuration is defined **outside** test files when calling `Invoke-Pester` to control execution behavior.
185
+
186
+ ```powershell
187
+ # Create configuration (Pester 5.2+)
188
+ $config = New-PesterConfiguration
189
+ $config.Run.Path = './Tests'
190
+ $config.Output.Verbosity = 'Detailed'
191
+ $config.TestResult.Enabled = $true
192
+ $config.TestResult.OutputFormat = 'NUnitXml'
193
+ $config.Should.ErrorAction = 'Continue'
194
+ Invoke-Pester -Configuration $config
195
+ ```
196
+
197
+ **Key Sections**: Run (Path, Exit), Filter (Tag, ExcludeTag), Output (Verbosity), TestResult (Enabled, OutputFormat), CodeCoverage (Enabled, Path), Should (ErrorAction), Debug
@@ -0,0 +1,356 @@
1
+ ---
2
+ applyTo: '**/*.ps1,**/*.psm1'
3
+ description: 'PowerShell cmdlet and scripting best practices based on Microsoft guidelines'
4
+ ---
5
+
6
+ # PowerShell Cmdlet Development Guidelines
7
+
8
+ This guide provides PowerShell-specific instructions to help GitHub Copilot generate idiomatic,
9
+ safe, and maintainable scripts. It aligns with Microsoft’s PowerShell cmdlet development guidelines.
10
+
11
+ ## Naming Conventions
12
+
13
+ - **Verb-Noun Format:**
14
+ - Use approved PowerShell verbs (Get-Verb)
15
+ - Use singular nouns
16
+ - PascalCase for both verb and noun
17
+ - Avoid special characters and spaces
18
+
19
+ - **Parameter Names:**
20
+ - Use PascalCase
21
+ - Choose clear, descriptive names
22
+ - Use singular form unless always multiple
23
+ - Follow PowerShell standard names
24
+
25
+ - **Variable Names:**
26
+ - Use PascalCase for public variables
27
+ - Use camelCase for private variables
28
+ - Avoid abbreviations
29
+ - Use meaningful names
30
+
31
+ - **Alias Avoidance:**
32
+ - Use full cmdlet names
33
+ - Avoid using aliases in scripts (e.g., use Get-ChildItem instead of gci)
34
+ - Document any custom aliases
35
+ - Use full parameter names
36
+
37
+ ### Example
38
+
39
+ ```powershell
40
+ function Get-UserProfile {
41
+ [CmdletBinding()]
42
+ param(
43
+ [Parameter(Mandatory)]
44
+ [string]$Username,
45
+
46
+ [Parameter()]
47
+ [ValidateSet('Basic', 'Detailed')]
48
+ [string]$ProfileType = 'Basic'
49
+ )
50
+
51
+ process {
52
+ # Logic here
53
+ }
54
+ }
55
+ ```
56
+
57
+ ## Parameter Design
58
+
59
+ - **Standard Parameters:**
60
+ - Use common parameter names (`Path`, `Name`, `Force`)
61
+ - Follow built-in cmdlet conventions
62
+ - Use aliases for specialized terms
63
+ - Document parameter purpose
64
+
65
+ - **Parameter Names:**
66
+ - Use singular form unless always multiple
67
+ - Choose clear, descriptive names
68
+ - Follow PowerShell conventions
69
+ - Use PascalCase formatting
70
+
71
+ - **Type Selection:**
72
+ - Use common .NET types
73
+ - Implement proper validation
74
+ - Consider ValidateSet for limited options
75
+ - Enable tab completion where possible
76
+
77
+ - **Switch Parameters:**
78
+ - Use [switch] for boolean flags
79
+ - Avoid $true/$false parameters
80
+ - Default to $false when omitted
81
+ - Use clear action names
82
+
83
+ ### Example
84
+
85
+ ```powershell
86
+ function Set-ResourceConfiguration {
87
+ [CmdletBinding()]
88
+ param(
89
+ [Parameter(Mandatory)]
90
+ [string]$Name,
91
+
92
+ [Parameter()]
93
+ [ValidateSet('Dev', 'Test', 'Prod')]
94
+ [string]$Environment = 'Dev',
95
+
96
+ [Parameter()]
97
+ [switch]$Force,
98
+
99
+ [Parameter()]
100
+ [ValidateNotNullOrEmpty()]
101
+ [string[]]$Tags
102
+ )
103
+
104
+ process {
105
+ # Logic here
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Pipeline and Output
111
+
112
+ - **Pipeline Input:**
113
+ - Use `ValueFromPipeline` for direct object input
114
+ - Use `ValueFromPipelineByPropertyName` for property mapping
115
+ - Implement Begin/Process/End blocks for pipeline handling
116
+ - Document pipeline input requirements
117
+
118
+ - **Output Objects:**
119
+ - Return rich objects, not formatted text
120
+ - Use PSCustomObject for structured data
121
+ - Avoid Write-Host for data output
122
+ - Enable downstream cmdlet processing
123
+
124
+ - **Pipeline Streaming:**
125
+ - Output one object at a time
126
+ - Use process block for streaming
127
+ - Avoid collecting large arrays
128
+ - Enable immediate processing
129
+
130
+ - **PassThru Pattern:**
131
+ - Default to no output for action cmdlets
132
+ - Implement `-PassThru` switch for object return
133
+ - Return modified/created object with `-PassThru`
134
+ - Use verbose/warning for status updates
135
+
136
+ ### Example
137
+
138
+ ```powershell
139
+ function Update-ResourceStatus {
140
+ [CmdletBinding()]
141
+ param(
142
+ [Parameter(Mandatory, ValueFromPipeline, ValueFromPipelineByPropertyName)]
143
+ [string]$Name,
144
+
145
+ [Parameter(Mandatory)]
146
+ [ValidateSet('Active', 'Inactive', 'Maintenance')]
147
+ [string]$Status,
148
+
149
+ [Parameter()]
150
+ [switch]$PassThru
151
+ )
152
+
153
+ begin {
154
+ Write-Verbose 'Starting resource status update process'
155
+ $timestamp = Get-Date
156
+ }
157
+
158
+ process {
159
+ # Process each resource individually
160
+ Write-Verbose "Processing resource: $Name"
161
+
162
+ $resource = [PSCustomObject]@{
163
+ Name = $Name
164
+ Status = $Status
165
+ LastUpdated = $timestamp
166
+ UpdatedBy = $env:USERNAME
167
+ }
168
+
169
+ # Only output if PassThru is specified
170
+ if ($PassThru.IsPresent) {
171
+ Write-Output $resource
172
+ }
173
+ }
174
+
175
+ end {
176
+ Write-Verbose 'Resource status update process completed'
177
+ }
178
+ }
179
+ ```
180
+
181
+ ## Error Handling and Safety
182
+
183
+ - **ShouldProcess Implementation:**
184
+ - Use `[CmdletBinding(SupportsShouldProcess = $true)]`
185
+ - Set appropriate `ConfirmImpact` level
186
+ - Call `$PSCmdlet.ShouldProcess()` for system changes
187
+ - Use `ShouldContinue()` for additional confirmations
188
+
189
+ - **Message Streams:**
190
+ - `Write-Verbose` for operational details with `-Verbose`
191
+ - `Write-Warning` for warning conditions
192
+ - `Write-Error` for non-terminating errors
193
+ - `throw` for terminating errors
194
+ - Avoid `Write-Host` except for user interface text
195
+
196
+ - **Error Handling Pattern:**
197
+ - Use try/catch blocks for error management
198
+ - Set appropriate ErrorAction preferences
199
+ - Return meaningful error messages
200
+ - Use ErrorVariable when needed
201
+ - Include proper terminating vs non-terminating error handling
202
+ - In advanced functions with `[CmdletBinding()]`, prefer `$PSCmdlet.WriteError()` over `Write-Error`
203
+ - In advanced functions with `[CmdletBinding()]`, prefer `$PSCmdlet.ThrowTerminatingError()` over `throw`
204
+ - Construct proper ErrorRecord objects with category, target, and exception details
205
+
206
+ - **Non-Interactive Design:**
207
+ - Accept input via parameters
208
+ - Avoid `Read-Host` in scripts
209
+ - Support automation scenarios
210
+ - Document all required inputs
211
+
212
+ ### Example
213
+
214
+ ```powershell
215
+ function Remove-UserAccount {
216
+ [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'High')]
217
+ param(
218
+ [Parameter(Mandatory, ValueFromPipeline)]
219
+ [ValidateNotNullOrEmpty()]
220
+ [string]$Username,
221
+
222
+ [Parameter()]
223
+ [switch]$Force
224
+ )
225
+
226
+ begin {
227
+ Write-Verbose 'Starting user account removal process'
228
+ $ErrorActionPreference = 'Stop'
229
+ }
230
+
231
+ process {
232
+ try {
233
+ # Validation
234
+ if (-not (Test-UserExists -Username $Username)) {
235
+ $errorRecord = [System.Management.Automation.ErrorRecord]::new(
236
+ [System.Exception]::new("User account '$Username' not found"),
237
+ 'UserNotFound',
238
+ [System.Management.Automation.ErrorCategory]::ObjectNotFound,
239
+ $Username
240
+ )
241
+ $PSCmdlet.WriteError($errorRecord)
242
+ return
243
+ }
244
+
245
+ # Confirmation
246
+ $shouldProcessMessage = "Remove user account '$Username'"
247
+ if ($Force -or $PSCmdlet.ShouldProcess($Username, $shouldProcessMessage)) {
248
+ Write-Verbose "Removing user account: $Username"
249
+
250
+ # Main operation
251
+ Remove-ADUser -Identity $Username -ErrorAction Stop
252
+ Write-Warning "User account '$Username' has been removed"
253
+ }
254
+ } catch [Microsoft.ActiveDirectory.Management.ADException] {
255
+ $errorRecord = [System.Management.Automation.ErrorRecord]::new(
256
+ $_.Exception,
257
+ 'ActiveDirectoryError',
258
+ [System.Management.Automation.ErrorCategory]::NotSpecified,
259
+ $Username
260
+ )
261
+ $PSCmdlet.ThrowTerminatingError($errorRecord)
262
+ } catch {
263
+ $errorRecord = [System.Management.Automation.ErrorRecord]::new(
264
+ $_.Exception,
265
+ 'UnexpectedError',
266
+ [System.Management.Automation.ErrorCategory]::NotSpecified,
267
+ $Username
268
+ )
269
+ $PSCmdlet.ThrowTerminatingError($errorRecord)
270
+ }
271
+ }
272
+
273
+ end {
274
+ Write-Verbose 'User account removal process completed'
275
+ }
276
+ }
277
+ ```
278
+
279
+ ## Documentation and Style
280
+
281
+ - **Comment-Based Help:** Include comment-based help for any public-facing function or cmdlet. Inside the function, add a `<# ... #>` help comment with at least:
282
+ - `.SYNOPSIS` Brief description
283
+ - `.DESCRIPTION` Detailed explanation
284
+ - `.EXAMPLE` sections with practical usage
285
+ - `.PARAMETER` descriptions
286
+ - `.OUTPUTS` Type of output returned
287
+ - `.NOTES` Additional information
288
+
289
+ - **Consistent Formatting:**
290
+ - Follow consistent PowerShell style
291
+ - Use proper indentation (4 spaces recommended)
292
+ - Opening braces on same line as statement
293
+ - Closing braces on new line
294
+ - Use line breaks after pipeline operators
295
+ - PascalCase for function and parameter names
296
+ - Avoid unnecessary whitespace
297
+
298
+ - **Pipeline Support:**
299
+ - Implement Begin/Process/End blocks for pipeline functions
300
+ - Use ValueFromPipeline where appropriate
301
+ - Support pipeline input by property name
302
+ - Return proper objects, not formatted text
303
+
304
+ - **Avoid Aliases:** Use full cmdlet names and parameters
305
+ - Avoid using aliases in scripts (e.g., use Get-ChildItem instead of gci); aliases are acceptable for interactive shell use.
306
+ - Use `Where-Object` instead of `?` or `where`
307
+ - Use `ForEach-Object` instead of `%`
308
+ - Use `Get-ChildItem` instead of `ls` or `dir`
309
+
310
+ ## Full Example: End-to-End Cmdlet Pattern
311
+
312
+ ```powershell
313
+ function New-Resource {
314
+ [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'Medium')]
315
+ param(
316
+ [Parameter(Mandatory = $true,
317
+ ValueFromPipeline = $true,
318
+ ValueFromPipelineByPropertyName = $true)]
319
+ [ValidateNotNullOrEmpty()]
320
+ [string]$Name,
321
+
322
+ [Parameter()]
323
+ [ValidateSet('Development', 'Production')]
324
+ [string]$Environment = 'Development'
325
+ )
326
+
327
+ begin {
328
+ Write-Verbose 'Starting resource creation process'
329
+ }
330
+
331
+ process {
332
+ try {
333
+ if ($PSCmdlet.ShouldProcess($Name, 'Create new resource')) {
334
+ # Resource creation logic here
335
+ Write-Output ([PSCustomObject]@{
336
+ Name = $Name
337
+ Environment = $Environment
338
+ Created = Get-Date
339
+ })
340
+ }
341
+ } catch {
342
+ $errorRecord = [System.Management.Automation.ErrorRecord]::new(
343
+ $_.Exception,
344
+ 'ResourceCreationFailed',
345
+ [System.Management.Automation.ErrorCategory]::NotSpecified,
346
+ $Name
347
+ )
348
+ $PSCmdlet.ThrowTerminatingError($errorRecord)
349
+ }
350
+ }
351
+
352
+ end {
353
+ Write-Verbose 'Completed resource creation process'
354
+ }
355
+ }
356
+ ```
@@ -0,0 +1,73 @@
1
+ ---
2
+ description: 'Guidelines for creating high-quality prompt files for GitHub Copilot'
3
+ applyTo: '**/*.prompt.md'
4
+ ---
5
+
6
+ # Copilot Prompt Files Guidelines
7
+
8
+ Instructions for creating effective and maintainable prompt files that guide GitHub Copilot in delivering consistent, high-quality outcomes across any repository.
9
+
10
+ ## Scope and Principles
11
+ - Target audience: maintainers and contributors authoring reusable prompts for Copilot Chat.
12
+ - Goals: predictable behaviour, clear expectations, minimal permissions, and portability across repositories.
13
+ - Primary references: VS Code documentation on prompt files and organization-specific conventions.
14
+
15
+ ## Frontmatter Requirements
16
+ - Include `description` (single sentence, actionable outcome), `mode` (explicitly choose `ask`, `edit`, or `agent`), and `tools` (minimal set of tool bundles required to fulfill the prompt).
17
+ - Declare `model` when the prompt depends on a specific capability tier; otherwise inherit the active model.
18
+ - Preserve any additional metadata (`language`, `tags`, `visibility`, etc.) required by your organization.
19
+ - Use consistent quoting (single quotes recommended) and keep one field per line for readability and version control clarity.
20
+
21
+ ## File Naming and Placement
22
+ - Use kebab-case filenames ending with `.prompt.md` and store them under `.github/prompts/` unless your workspace standard specifies another directory.
23
+ - Provide a short filename that communicates the action (for example, `generate-readme.prompt.md` rather than `prompt1.prompt.md`).
24
+
25
+ ## Body Structure
26
+ - Start with an `#` level heading that matches the prompt intent so it surfaces well in Quick Pick search.
27
+ - Organize content with predictable sections. Recommended baseline: `Mission` or `Primary Directive`, `Scope & Preconditions`, `Inputs`, `Workflow` (step-by-step), `Output Expectations`, and `Quality Assurance`.
28
+ - Adjust section names to fit the domain, but retain the logical flow: why → context → inputs → actions → outputs → validation.
29
+ - Reference related prompts or instruction files using relative links to aid discoverability.
30
+
31
+ ## Input and Context Handling
32
+ - Use `${input:variableName[:placeholder]}` for required values and explain when the user must supply them. Provide defaults or alternatives where possible.
33
+ - Call out contextual variables such as `${selection}`, `${file}`, `${workspaceFolder}` only when they are essential, and describe how Copilot should interpret them.
34
+ - Document how to proceed when mandatory context is missing (for example, “Request the file path and stop if it remains undefined”).
35
+
36
+ ## Tool and Permission Guidance
37
+ - Limit `tools` to the smallest set that enables the task. List them in the preferred execution order when the sequence matters.
38
+ - If the prompt inherits tools from a chat mode, mention that relationship and state any critical tool behaviours or side effects.
39
+ - Warn about destructive operations (file creation, edits, terminal commands) and include guard rails or confirmation steps in the workflow.
40
+
41
+ ## Instruction Tone and Style
42
+ - Write in direct, imperative sentences targeted at Copilot (for example, “Analyze”, “Generate”, “Summarize”).
43
+ - Keep sentences short and unambiguous, following Google Developer Documentation translation best practices to support localization.
44
+ - Avoid idioms, humor, or culturally specific references; favor neutral, inclusive language.
45
+
46
+ ## Output Definition
47
+ - Specify the format, structure, and location of expected results (for example, “Create `docs/adr/adr-XXXX.md` using the template below”).
48
+ - Include success criteria and failure triggers so Copilot knows when to halt or retry.
49
+ - Provide validation steps—manual checks, automated commands, or acceptance criteria lists—that reviewers can execute after running the prompt.
50
+
51
+ ## Examples and Reusable Assets
52
+ - Embed Good/Bad examples or scaffolds (Markdown templates, JSON stubs) that the prompt should produce or follow.
53
+ - Maintain reference tables (capabilities, status codes, role descriptions) inline to keep the prompt self-contained. Update these tables when upstream resources change.
54
+ - Link to authoritative documentation instead of duplicating lengthy guidance.
55
+
56
+ ## Quality Assurance Checklist
57
+ - [ ] Frontmatter fields are complete, accurate, and least-privilege.
58
+ - [ ] Inputs include placeholders, default behaviours, and fallbacks.
59
+ - [ ] Workflow covers preparation, execution, and post-processing without gaps.
60
+ - [ ] Output expectations include formatting and storage details.
61
+ - [ ] Validation steps are actionable (commands, diff checks, review prompts).
62
+ - [ ] Security, compliance, and privacy policies referenced by the prompt are current.
63
+ - [ ] Prompt executes successfully in VS Code (`Chat: Run Prompt`) using representative scenarios.
64
+
65
+ ## Maintenance Guidance
66
+ - Version-control prompts alongside the code they affect; update them when dependencies, tooling, or review processes change.
67
+ - Review prompts periodically to ensure tool lists, model requirements, and linked documents remain valid.
68
+ - Coordinate with other repositories: when a prompt proves broadly useful, extract common guidance into instruction files or shared prompt packs.
69
+
70
+ ## Additional Resources
71
+ - [Prompt Files Documentation](https://code.visualstudio.com/docs/copilot/customization/prompt-files#_prompt-file-format)
72
+ - [Awesome Copilot Prompt Files](https://github.com/github/awesome-copilot/tree/main/prompts)
73
+ - [Tool Configuration](https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode#_agent-mode-tools)