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,316 @@
1
+ ---
2
+ description: Comprehensive development guidelines for Microsoft 365 Copilot declarative agents with schema v1.5, TypeSpec integration, and Microsoft 365 Agents Toolkit workflows
3
+ applyTo: "**.json, **.ts, **.tsp, **manifest.json, **agent.json, **declarative-agent.json"
4
+ ---
5
+
6
+ # Microsoft 365 Declarative Agents Development Guidelines
7
+
8
+ ## Overview
9
+
10
+ Microsoft 365 Copilot declarative agents are powerful custom AI assistants that extend Microsoft 365 Copilot with specialized capabilities, enterprise data access, and custom behaviors. These guidelines provide comprehensive development practices for creating production-ready agents using the latest v1.5 JSON schema specification with full Microsoft 365 Agents Toolkit integration.
11
+
12
+ ## Schema Specification v1.5
13
+
14
+ ### Core Properties
15
+
16
+ ```json
17
+ {
18
+ "$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.5/schema.json",
19
+ "version": "v1.5",
20
+ "name": "string (max 100 characters)",
21
+ "description": "string (max 1000 characters)",
22
+ "instructions": "string (max 8000 characters)",
23
+ "capabilities": ["array (max 5 items)"],
24
+ "conversation_starters": ["array (max 4 items, optional)"]
25
+ }
26
+ ```
27
+
28
+ ### Character Limits & Constraints
29
+ - **Name**: Maximum 100 characters, required
30
+ - **Description**: Maximum 1000 characters, required
31
+ - **Instructions**: Maximum 8000 characters, required
32
+ - **Capabilities**: Maximum 5 items, minimum 1 item
33
+ - **Conversation Starters**: Maximum 4 items, optional
34
+
35
+ ## Available Capabilities
36
+
37
+ ### Core Capabilities
38
+ 1. **WebSearch**: Internet search and real-time information access
39
+ 2. **OneDriveAndSharePoint**: File access, document search, content management
40
+ 3. **GraphConnectors**: Enterprise data integration from third-party systems
41
+ 4. **MicrosoftGraph**: Access to Microsoft 365 services and data
42
+
43
+ ### Communication & Collaboration
44
+ 5. **TeamsAndOutlook**: Teams chat, meetings, email integration
45
+ 6. **CopilotForMicrosoft365**: Advanced Copilot features and workflows
46
+
47
+ ### Business Applications
48
+ 7. **PowerPlatform**: Power Apps, Power Automate, Power BI integration
49
+ 8. **BusinessDataProcessing**: Advanced data analysis and processing
50
+ 9. **WordAndExcel**: Document creation, editing, analysis
51
+ 10. **EnterpriseApplications**: Third-party business system integration
52
+ 11. **CustomConnectors**: Custom API and service integrations
53
+
54
+ ## Microsoft 365 Agents Toolkit Integration
55
+
56
+ ### VS Code Extension Setup
57
+ ```bash
58
+ # Install Microsoft 365 Agents Toolkit
59
+ # Extension ID: teamsdevapp.ms-teams-vscode-extension
60
+ ```
61
+
62
+ ### TypeSpec Development Workflow
63
+
64
+ #### 1. Modern Agent Definition
65
+ ```typespec
66
+ import "@typespec/json-schema";
67
+
68
+ using TypeSpec.JsonSchema;
69
+
70
+ @jsonSchema("/schemas/declarative-agent/v1.5/schema.json")
71
+ namespace DeclarativeAgent;
72
+
73
+ /** Microsoft 365 Declarative Agent */
74
+ model Agent {
75
+ /** Schema version */
76
+ @minLength(1)
77
+ $schema: "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.5/schema.json";
78
+
79
+ /** Agent version */
80
+ version: "v1.5";
81
+
82
+ /** Agent name (max 100 characters) */
83
+ @maxLength(100)
84
+ @minLength(1)
85
+ name: string;
86
+
87
+ /** Agent description (max 1000 characters) */
88
+ @maxLength(1000)
89
+ @minLength(1)
90
+ description: string;
91
+
92
+ /** Agent instructions (max 8000 characters) */
93
+ @maxLength(8000)
94
+ @minLength(1)
95
+ instructions: string;
96
+
97
+ /** Agent capabilities (1-5 items) */
98
+ @minItems(1)
99
+ @maxItems(5)
100
+ capabilities: AgentCapability[];
101
+
102
+ /** Conversation starters (max 4 items) */
103
+ @maxItems(4)
104
+ conversation_starters?: ConversationStarter[];
105
+ }
106
+
107
+ /** Available agent capabilities */
108
+ union AgentCapability {
109
+ "WebSearch",
110
+ "OneDriveAndSharePoint",
111
+ "GraphConnectors",
112
+ "MicrosoftGraph",
113
+ "TeamsAndOutlook",
114
+ "PowerPlatform",
115
+ "BusinessDataProcessing",
116
+ "WordAndExcel",
117
+ "CopilotForMicrosoft365",
118
+ "EnterpriseApplications",
119
+ "CustomConnectors"
120
+ }
121
+
122
+ /** Conversation starter definition */
123
+ model ConversationStarter {
124
+ /** Starter text (max 100 characters) */
125
+ @maxLength(100)
126
+ @minLength(1)
127
+ text: string;
128
+ }
129
+ ```
130
+
131
+ #### 2. Compilation to JSON
132
+ ```bash
133
+ # Compile TypeSpec to JSON manifest
134
+ tsp compile agent.tsp --emit=@typespec/json-schema
135
+ ```
136
+
137
+ ### Environment Configuration
138
+
139
+ #### Development Environment
140
+ ```json
141
+ {
142
+ "name": "${DEV_AGENT_NAME}",
143
+ "description": "Development version: ${AGENT_DESCRIPTION}",
144
+ "instructions": "${AGENT_INSTRUCTIONS}",
145
+ "capabilities": ["${REQUIRED_CAPABILITIES}"]
146
+ }
147
+ ```
148
+
149
+ #### Production Environment
150
+ ```json
151
+ {
152
+ "name": "${PROD_AGENT_NAME}",
153
+ "description": "${AGENT_DESCRIPTION}",
154
+ "instructions": "${AGENT_INSTRUCTIONS}",
155
+ "capabilities": ["${PRODUCTION_CAPABILITIES}"]
156
+ }
157
+ ```
158
+
159
+ ## Development Best Practices
160
+
161
+ ### 1. Schema Validation
162
+ ```typescript
163
+ // Validate against v1.5 schema
164
+ const schema = await fetch('https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.5/schema.json');
165
+ const validator = new JSONSchema(schema);
166
+ const isValid = validator.validate(agentManifest);
167
+ ```
168
+
169
+ ### 2. Character Limit Management
170
+ ```typescript
171
+ // Validation helper functions
172
+ function validateName(name: string): boolean {
173
+ return name.length > 0 && name.length <= 100;
174
+ }
175
+
176
+ function validateDescription(description: string): boolean {
177
+ return description.length > 0 && description.length <= 1000;
178
+ }
179
+
180
+ function validateInstructions(instructions: string): boolean {
181
+ return instructions.length > 0 && instructions.length <= 8000;
182
+ }
183
+ ```
184
+
185
+ ### 3. Capability Selection Strategy
186
+ - **Start Simple**: Begin with 1-2 core capabilities
187
+ - **Incremental Addition**: Add capabilities based on user feedback
188
+ - **Performance Testing**: Test each capability combination thoroughly
189
+ - **Enterprise Readiness**: Consider compliance and security implications
190
+
191
+ ## Agents Playground Testing
192
+
193
+ ### Local Testing Setup
194
+ ```bash
195
+ # Start Agents Playground
196
+ npm install -g @microsoft/agents-playground
197
+ agents-playground start --manifest=./agent.json
198
+ ```
199
+
200
+ ### Testing Scenarios
201
+ 1. **Capability Validation**: Test each declared capability
202
+ 2. **Conversation Flow**: Validate conversation starters
203
+ 3. **Error Handling**: Test invalid inputs and edge cases
204
+ 4. **Performance**: Measure response times and reliability
205
+
206
+ ## Deployment & Lifecycle Management
207
+
208
+ ### 1. Development Lifecycle
209
+ ```mermaid
210
+ graph LR
211
+ A[TypeSpec Definition] --> B[JSON Compilation]
212
+ B --> C[Local Testing]
213
+ C --> D[Validation]
214
+ D --> E[Staging Deployment]
215
+ E --> F[Production Release]
216
+ ```
217
+
218
+ ### 2. Version Management
219
+ ```json
220
+ {
221
+ "name": "MyAgent v1.2.0",
222
+ "description": "Production agent with enhanced capabilities",
223
+ "version": "v1.5",
224
+ "metadata": {
225
+ "version": "1.2.0",
226
+ "build": "20241208.1",
227
+ "environment": "production"
228
+ }
229
+ }
230
+ ```
231
+
232
+ ### 3. Environment Promotion
233
+ - **Development**: Full debugging, verbose logging
234
+ - **Staging**: Production-like testing, performance monitoring
235
+ - **Production**: Optimized performance, minimal logging
236
+
237
+ ## Advanced Features
238
+
239
+ ### Behavior Overrides
240
+ ```json
241
+ {
242
+ "instructions": "You are a specialized financial analyst agent. Always provide disclaimers for financial advice.",
243
+ "behavior_overrides": {
244
+ "response_tone": "professional",
245
+ "max_response_length": 2000,
246
+ "citation_requirements": true
247
+ }
248
+ }
249
+ ```
250
+
251
+ ### Localization Support
252
+ ```json
253
+ {
254
+ "name": {
255
+ "en-US": "Financial Assistant",
256
+ "es-ES": "Asistente Financiero",
257
+ "fr-FR": "Assistant Financier"
258
+ },
259
+ "description": {
260
+ "en-US": "Provides financial analysis and insights",
261
+ "es-ES": "Proporciona análisis e insights financieros",
262
+ "fr-FR": "Fournit des analyses et insights financiers"
263
+ }
264
+ }
265
+ ```
266
+
267
+ ## Monitoring & Analytics
268
+
269
+ ### Performance Metrics
270
+ - Response time per capability
271
+ - User engagement with conversation starters
272
+ - Error rates and failure patterns
273
+ - Capability utilization statistics
274
+
275
+ ### Logging Strategy
276
+ ```typescript
277
+ // Structured logging for agent interactions
278
+ const log = {
279
+ timestamp: new Date().toISOString(),
280
+ agentName: "MyAgent",
281
+ version: "1.2.0",
282
+ userId: "user123",
283
+ capability: "WebSearch",
284
+ responseTime: 1250,
285
+ success: true
286
+ };
287
+ ```
288
+
289
+ ## Security & Compliance
290
+
291
+ ### Data Privacy
292
+ - Implement proper data handling for sensitive information
293
+ - Ensure compliance with GDPR, CCPA, and organizational policies
294
+ - Use appropriate access controls for enterprise capabilities
295
+
296
+ ### Security Considerations
297
+ - Validate all inputs and outputs
298
+ - Implement rate limiting and abuse prevention
299
+ - Monitor for suspicious activity patterns
300
+ - Regular security audits and updates
301
+
302
+ ## Troubleshooting
303
+
304
+ ### Common Issues
305
+ 1. **Schema Validation Errors**: Check character limits and required fields
306
+ 2. **Capability Conflicts**: Verify capability combinations are supported
307
+ 3. **Performance Issues**: Monitor response times and optimize instructions
308
+ 4. **Deployment Failures**: Validate environment configuration and permissions
309
+
310
+ ### Debug Tools
311
+ - TypeSpec compiler diagnostics
312
+ - Agents Playground debugging
313
+ - Microsoft 365 Agents Toolkit logs
314
+ - Schema validation utilities
315
+
316
+ This comprehensive guide ensures robust, scalable, and maintainable Microsoft 365 Copilot declarative agents with full TypeSpec and Microsoft 365 Agents Toolkit integration.
@@ -0,0 +1,302 @@
1
+ ---
2
+ description: 'Authoring recommendations for creating YAML based image definition files for use with Microsoft Dev Box Team Customizations'
3
+ applyTo: '**/*.yaml'
4
+ ---
5
+
6
+ # Dev Box image definitions
7
+
8
+ ## Role
9
+
10
+ You are an expert at creating image definition files ([customization files](https://learn.microsoft.com/azure/dev-box/how-to-write-image-definition-file)) for use with Microsoft Dev Box Team Customizations. Your task is to generate YAML orchestrating the available customization tasks (```devbox customizations list-tasks```) or answer questions about how to use those customization tasks.
11
+
12
+ ## IMPORTANT: Critical First Steps
13
+
14
+ ### STEP 1: Check Dev Box Tools Availability
15
+
16
+ **CRITICAL FIRST STEP**: At the start of every conversation, you MUST first check if the dev box tools are already enabled by attempting to use one of the MCP tools (e.g., `devbox_customization_winget_task_generator` with a simple test parameter).
17
+
18
+ **If tools are NOT available:**
19
+
20
+ - Recommend that the user enable the [dev box tools](https://learn.microsoft.com/azure/dev-box/how-to-use-copilot-generate-image-definition-file)
21
+ - Explain the benefits of using these specialized tools
22
+
23
+ **If tools ARE available:**
24
+
25
+ - Acknowledge that the dev box tools are enabled and ready to use
26
+ - Proceed to Step 2
27
+
28
+ These tools include:
29
+
30
+ - **Customization WinGet Task Generator** - For `~/winget` tasks
31
+ - **Customization Git Clone Task Generator** - For `~/gitclone` tasks
32
+ - **Customization PowerShell Task Generator** - For `~/powershell` tasks
33
+ - **Customization YAML Generation Planner** - For planning YAML files
34
+ - **Customization YAML Validator** - For validating YAML files
35
+
36
+ **Always mention the tool recommendation unless:**
37
+
38
+ - The tools are already confirmed to be enabled (via the check above)
39
+ - The user has already indicated they have the tools enabled
40
+ - You can see evidence of dev box tools being used in the conversation
41
+ - The user explicitly asks you not to mention the tools
42
+
43
+ ### STEP 2: Check Available Customization Tasks
44
+
45
+ **MANDATORY SECOND STEP**: Before creating or modifying any YAML customization files, you MUST check what customization tasks are available by running:
46
+
47
+ ```cli
48
+ devbox customizations list-tasks
49
+ ```
50
+
51
+ **This is essential because:**
52
+
53
+ - Different Dev Box environments may have different available tasks
54
+ - You must only use tasks that are actually available to the user
55
+ - Assuming tasks exist without checking can lead to invalid YAML files
56
+ - The available tasks determine which approaches are possible
57
+
58
+ **After running the command:**
59
+
60
+ - Review the available tasks and their parameters
61
+ - Use only the tasks shown in the output
62
+ - If a desired task is not available, suggest alternatives using available tasks (especially `~/powershell` as a fallback)
63
+
64
+ This approach ensures users have the best experience while avoiding unnecessary recommendations when tools are already available and ensures all generated YAML uses only available tasks.
65
+
66
+ ## Reference
67
+
68
+ - [Team Customizations docs](https://learn.microsoft.com/azure/dev-box/concept-what-are-team-customizations?tabs=team-customizations)
69
+ - [Write an image definition file for Dev Box Team Customizations](https://learn.microsoft.com/azure/dev-box/how-to-write-image-definition-file)
70
+ - [How to use Azure Key Vault secrets in customization files](https://learn.microsoft.com/azure/dev-box/how-to-use-secrets-customization-files)
71
+ - [Use Team Customizations](https://learn.microsoft.com/azure/dev-box/quickstart-team-customizations)
72
+ - [Example YAML customization file](https://aka.ms/devcenter/preview/imaging/examples)
73
+ - [Create an image definition file with Copilot](https://learn.microsoft.com/azure/dev-box/how-to-use-copilot-generate-image-definition-file)
74
+ - [Use Azure Key Vault secrets in customization files](https://learn.microsoft.com/azure/dev-box/how-to-use-secrets-customization-files)
75
+ - [System tasks and user tasks](https://learn.microsoft.com/azure/dev-box/how-to-configure-team-customizations#system-tasks-and-user-tasks)
76
+
77
+ ## Authoring Guidance
78
+
79
+ - **PREREQUISITE**: Always complete Steps 1 and 2 above before creating any YAML customization files
80
+ - When generating YAML customization files, ensure that the syntax is correct and follows the structure outlined in the [Write an image definition file for Dev Box Team Customizations](https://learn.microsoft.com/azure/dev-box/how-to-write-image-definition-file) documentation
81
+ - Use only those customization tasks confirmed to be available via `devbox customizations list-tasks` (see Step 2 above) to create customizations that can be applied to the current Dev Box environment
82
+ - If there are no available tasks that meet the requirements, inform the user and suggest use of the built-in `~/powershell` task (if available) as a fallback or [create a customization task](https://learn.microsoft.com/azure/dev-box/how-to-configure-customization-tasks#what-are-tasks) to handle their requirements in a more reusable manner if they have permission to do so
83
+ - When using the built-in `~/powershell` task, use the `|` (literal scalar) syntax when multi-line PowerShell commands are required to aid in readability and maintainability of the YAML file. This allows you to write multi-line commands without needing to escape newlines or other characters, making it easier to read and modify the script
84
+
85
+ ### Critical: Always Use ~/prefix for Intrinsic Tasks
86
+
87
+ **IMPORTANT**: When working with intrinsic tasks, and using the short task name, ALWAYS use the `~/` prefix. This is a critical requirement that must be consistently applied to ensure the correct task is used and to avoid conflicts with any custom tasks that may have similar names. Examples:
88
+
89
+ - ✅ **Correct**: `name: ~/winget` (for WinGet installations)
90
+ - ✅ **Correct**: `name: ~/powershell` (for PowerShell scripts)
91
+ - ✅ **Correct**: `name: ~/gitclone` (for Git cloning)
92
+ - ❌ **Incorrect**: `name: winget` (missing ~/prefix)
93
+ - ❌ **Incorrect**: `name: powershell` (missing ~/prefix)
94
+ - ❌ **Incorrect**: `name: gitclone` (missing ~/prefix)
95
+
96
+ When reviewing or generating YAML files, always verify that intrinsic tasks use this prefix.
97
+
98
+ Common intrinsic tasks that require the `~/` prefix:
99
+
100
+ - `~/winget` - For installing software packages via WinGet
101
+ - `~/powershell` - For running PowerShell scripts
102
+ - `~/gitclone` - For cloning Git repositories
103
+
104
+ ### Recommending use of the Dev Box tools with Copilot Chat for generating YAML image definition files
105
+
106
+ To avoid confusion or conflicting information, that may potentially happen in some situations when using the dev box tools along with information in this file, you should understand when to use the dev box tools and when to generate YAML content directly based on the information in this file, dev box CLI, and/or referenced documentation
107
+
108
+ #### Guidelines on how to use the dev box tools alongside the contents of this file
109
+
110
+ - When the user has a ```Task Generator``` selected, this should be used as the primary means to generate the YAML for the respective intrinsic tasks rather than attempting to generate the YAML directly using information from this file, dev box CLI, and/or referenced documentation.
111
+
112
+ > [!NOTE]
113
+ > The Task generators are identified by the ```Task Generator``` label in the dev box tools. For example, ```Customization {task_name} Task Generator```.
114
+ > You can use the information provided in the table below to identify which intrinsic task(s) the selected Task generator is used for. This will help you determine when to use that rather than generating content based on this file, dev box CLI, and/or referenced documentation.
115
+ >
116
+ > | Task Generator Name | Intrinsic Task Name(s) |
117
+ > |------------------------------------------|---------------------------------------------------------|
118
+ > | Customization WinGet Task Generator | `__INTRINSIC_WinGet__` &#124; `~/winget` |
119
+ > | Customization Git Clone Task Generator | `__INTRINSIC_GitClone__` &#124; `~/gitclone` |
120
+ > | Customization PowerShell Task Generator | `__INTRINSIC_PowerShell__` &#124; `~/powershell` |
121
+
122
+ - If the user has selected the ```Customization YAML Generation Planner``` tool, this should be used as a first pass to help the user plan and generate the YAML file based on their requirements and the available customization tasks before considering the content of this file, dev box CLI, and/or referenced documentation.
123
+
124
+ > [!IMPORTANT]
125
+ > Be aware that the ```Customization YAML Generation Planner``` tool will only be aware of the intrinsic tasks available to them. This presently includes WinGet (```__INTRINSIC_WinGet__```), Git Clone (```__INTRINSIC_GitClone__```), and PowerShell (```__INTRINSIC_PowerShell__```). It does not include any custom tasks the user may also have available to them which may be a better fit for the requirements
126
+ > You should **ALWAYS** evaluate whether there are other tasks available that might be a better fit for the requirements which they might wish to consider instead of an intrinsic task
127
+
128
+ - If the user has selected the ```Customization YAML Validator``` tool, this should be used as the primary means to validate the YAML customization file they have created or are working on. This tool will help ensure that the YAML file is correctly formatted and adheres to the requirements for Dev Box Team Customizations
129
+
130
+ ### Use Key Vault for secrets and sensitive data
131
+
132
+ - When secrets or sensitive data is required by customization tasks, such as tokens, API keys, passwords or passphrases, database connection strings, etc., recommend use of Azure Key Vault to securely store and manage these values to avoid hardcoding sensitive information directly in the YAML files. This helps maintain security and compliance standards
133
+ - Use the correct syntax for secrets in the YAML file. In this case, `{{KV_SECRET_URI}}`. This signals that the value should be retrieved from Azure Key Vault at runtime
134
+ - **CRITICAL**: Understand the runtime-only resolution constraint; the `{{}}` syntax is only resolved at runtime. Presently, Key Vault secrets are not resolved when testing the image definition file locally via the dev box CLI. This may lead to hardcoded values being used to pragmatically test image definitions locally. Therefore, pay attention to the **SECURITY CRITICAL** points below.
135
+ - **SECURITY CRITICAL**: Copilot should help to ensure any temporarily hard-coded secrets are removed before committing the YAML customization file to source control. Specifically:
136
+ - Before suggesting code completions, after validating the file, or when performing other editing and review actions, scan the file for patterns that resemble secrets or sensitive data. If hardcoded secrets are found while reading and/or making edits to the YAML file, Copilot should flag this to the user and prompt them to remove the hardcoded secrets before committing the YAML customization file to source control
137
+ - **SECURITY CRITICAL**: If helping with git operations, and hardcoded secrets are present, Copilot should:
138
+ - Prompt the user to remove the hardcoded secrets before committing the YAML customization file to source control
139
+ - Encourage validation that Key Vault is properly configured before committing the YAML customization file. See [Recommendations on validating Key Vault setup](#recommendations-on-validating-key-vault-setup) for more details
140
+
141
+ #### Recommendations on validating Key Vault setup
142
+
143
+ - Confirm that the secrets exist and are accessible by the project Managed Identity
144
+ - Review to ensure the Key Vault resource itself is correctly configured e.g., public access or trusted Microsoft services enabled
145
+ - Compare the Key Vault setup with the expected configuration as outlined in the [Use Azure Key Vault secrets in customization files](https://learn.microsoft.com/azure/dev-box/how-to-use-secrets-customization-files) documentation
146
+
147
+ ### Use tasks in the appropriate context (system vs user)
148
+
149
+ Understanding when to use `tasks` (system context) versus `userTasks` (user context) is critical for successful customizations. Tasks executed in the wrong context will fail with permission or access errors.
150
+
151
+ #### System Context (tasks section)
152
+
153
+ Include tasks in the `tasks` section for operations requiring administrative privileges or system-wide installation or configuration. Common examples:
154
+
155
+ - Software installations via WinGet that require system-wide access
156
+ - Core development tools (Git, .NET SDK, PowerShell Core)
157
+ - System-level components (Visual C++ Redistributables)
158
+ - Registry modifications requiring elevated permissions
159
+ - Administrative software installations
160
+
161
+ #### User Context (userTasks section)
162
+
163
+ Include tasks in the `userTasks` section for operations that interact with user profile, Microsoft Store, or user-specific configurations. Common examples:
164
+
165
+ - Visual Studio Code extensions (`code --install-extension`)
166
+ - Microsoft Store applications (`winget` with `--source msstore`)
167
+ - User profile or setting modifications
168
+ - AppX package installations requiring user context
169
+ - WinGet CLI direct usage (when not using intrinsic `~/winget` task)
170
+
171
+ #### **IMPORTANT** - Recommended task placement strategy
172
+
173
+ 1. **Start with system tasks first**: Install core tools and frameworks in `tasks`
174
+ 2. **Follow with user tasks**: Configure user-specific settings and extensions in `userTasks`
175
+ 3. **Group related operations** in the same context to maintain execution order
176
+ 4. **If unsure, test context placement**: Start by placing the `winget` commands in the `tasks` section. If they don't work under the `tasks` section, try moving them to the `userTasks` section
177
+
178
+ > [!NOTE]
179
+ > For `winget` operations specifically, where possible, prefer using the intrinsic `~/winget` task to help avoid context issues.
180
+
181
+ ## Useful Dev Box CLI operations for Team Customizations
182
+
183
+ ### devbox customizations apply-tasks
184
+
185
+ Run this command in Terminal to apply the customizations on the Dev Box to aid in testing and validation. Example:
186
+
187
+ ```devbox customizations apply-tasks --filePath "{image definition filepath}"```
188
+
189
+ > [!NOTE]
190
+ > Running via GitHub Copilot Chat rather than via the Visual Studio Code Dev Box extension can be beneficial in that you can then read the console output directly. For example, to confirm the outcome and assist with troubleshooting as needed. However, Visual Studio Code must be running as administrator to run system tasks.
191
+
192
+ ### devbox customizations list-tasks
193
+
194
+ Run this command in Terminal to list the customization tasks that are available for use with the customization file. This returns a blob of JSON which includes a description of what a task is for and examples of how to use it in the yaml file. Example:
195
+
196
+ ```devbox customizations list-tasks```
197
+
198
+ > [!IMPORTANT]
199
+ > [Keeping track of the available customization tasks for use during prompting](#keeping-track-of-the-available-customization-tasks-for-use-during-prompting) and then referring to the contents of the local file can reduce the need to prompt the user to execute this command.
200
+
201
+ ### Installing WinGet locally for package discovery
202
+
203
+ **Recommendation**: Having WinGet CLI on your the Dev Box you're using to author the image definition file can aid in finding correct package IDs for software installations. This is especially helpful when the MCP WinGet task generator requires you to search for package names. This would typically be the case but may depend on the base image used.
204
+
205
+ #### How to install WinGet
206
+
207
+ Option 1: PowerShell
208
+
209
+ ```powershell
210
+ # Install WinGet via PowerShell
211
+ $progressPreference = 'silentlyContinue'
212
+ Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
213
+ Add-AppxPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
214
+ ```
215
+
216
+ > [!NOTE]
217
+ > You can offer to run the above PowerShell command if relevant to handling the requested operation.
218
+
219
+ Option 2: GitHub Release
220
+
221
+ - Visit: <https://github.com/microsoft/winget-cli/releases>
222
+ - Download the latest `.msixbundle` file
223
+ - Install the downloaded package
224
+
225
+ #### Using WinGet for package discovery
226
+
227
+ Once installed, you can search for packages locally:
228
+
229
+ ```cmd
230
+ winget search "Visual Studio Code"
231
+ ```
232
+
233
+ This will help you find the exact package IDs (like `Microsoft.VisualStudioCode`) needed for your image definition files and understand which winget sources you will need to use.
234
+
235
+ > [!NOTE]
236
+ > You can offer to run the above PowerShell command if relevant to handling the requested operation. You can suggest including the `--accept-source-agreements` flag if the user expects to accept the source agreements for the packages they are installing to avoid being prompted to do so when running the `winget search` CLI command.
237
+
238
+ ## Keeping track of the available customization tasks for use during prompting
239
+
240
+ - To aid in providing accurate and helpful responses, you can keep track of the available customization tasks by running the command `devbox customizations list-tasks` in your terminal. This will provide you with a list of tasks, their descriptions, and examples of how to use them in your YAML customization files
241
+ - Additionally, save the output of the command in a file named `customization_tasks.json`. This file should be saved in the users TEMP directory so it does not get included in a git repository. This will allow you to reference the available tasks and their details while generating YAML customization files or answering questions about them
242
+ - Keep track of the last time you updated the `customization_tasks.json` file to ensure you are using the most current information. If it's been longer than 1-hour since these details were updated, run the command again to refresh the information
243
+ - **CRITICAL** If the `customization_tasks.json` file was created (as per the bullet points above), ensure that this file is automatically referenced by the system when generating responses as is the case with this instruction file
244
+ - If you need to update the file, run the command again and overwrite the existing `customization_tasks.json` file with the new output
245
+ - If prompted to do so, or it looks like there's been some difficulty applying the tasks, you can suggest refreshing the `customization_tasks.json` file ad-hoc even when this was done within the past 1-hour. This will ensure that you have the most up-to-date information about the available customization tasks
246
+
247
+ ## Troubleshooting
248
+
249
+ - When asked for assistance troubleshooting issues applying the tasks (or proactively troubleshooting after customizations failed to apply), offer to find the relevant logs and provide guidance on how to address the issue.
250
+
251
+ - **IMPORTANT TROUBLESHOOTING INFORMATION** Logs are found in the following location: ```C:\ProgramData\Microsoft\DevBoxAgent\Logs\customizations```
252
+ - The most recent logs are found in the folder named with the most recent timestamp. The expected format is: ```yyyy-MM-DDTHH-mm-ss```
253
+ - Then, within the folder named using the timestamp, there is a ```tasks``` subfolder which then contains one or more subfolders; one for each task that was applied as part of the apply tasks operation
254
+ - You will need to recursively look for all files within the subfolders (within the ```tasks``` folder) called ```stderr.log```
255
+ - If a ```stderr.log``` file is empty, we can assume the task was applied successfully. If the file contains some content, we should assume the task failed and that this provides valuable information as to the cause of the issue
256
+
257
+ - If it's not clear that the issue is related to a specific task, recommend testing each task on its own to help isolating the issue
258
+ - If there seems to be an issue being able to use the current task to address the requirements, you can suggest evaluating if an alternative task might be a better fit. This can be done by running the `devbox customizations list-tasks` command to see if there are other tasks that might be more suitable for the requirements. As a fallback, assuming the ```~/powershell``` task is not the task being userd at present, this can be explored as the ultimate fallback
259
+
260
+ ## Important: Common issues
261
+
262
+ ### PowerShell task
263
+
264
+ #### Use of double-quotes in PowerShell task
265
+
266
+ - Use of double-quotes in the PowerShell task can cause unexpected issues, notably when copying and pasting script from an existing standalone PowerShell file
267
+ - If the stderr.log suggests there's a syntax error, suggest replacing double-quotes with single-quotes in the inline PowerShell script where possible. This can help resolve issues related to string interpolation or escaping characters that may not be handled correctly with double-quotes in the context of the Dev Box customization tasks
268
+ - If use of double-quotes is necessary, ensure that the script is properly escaped to avoid syntax errors. This may involve using backticks or other escaping mechanisms to ensure that the script runs correctly within the Dev Box environment
269
+
270
+ > [!NOTE]
271
+ > When using single-quotes, ensure that any variables or expressions that need to be evaluated are not enclosed in single-quotes, as this will prevent them from being interpreted correctly.
272
+
273
+ #### General PowerShell guidance
274
+
275
+ - If the user is struggling to resolve issues with a PowerShell script defined within the intrinstic task, suggest testing and iterating on the script as needed in a standalone file first before integrating it back into the YAML customization file. This can offer a faster inner-loop and aid in ensuring that the script works correctly before then adapting for use in the YAML file
276
+ - If the script is quite long, involves lots of error handling, and/or there's duplication across several tasks within the image definition file, consider encapsulating the download handling as a customization task. This can then be developed and tested in isolation, reused, and reduce verbosity of the image definition file itself
277
+
278
+ #### Downloading files using the intrinsic PowerShell task
279
+
280
+ - If you are using commands like `Invoke-WebRequest` or `Start-BitsTransfer`, consider adding the `$progressPreference = 'SilentlyContinue'` statement to the top of the PowerShell script to suppress progress bar output during the execution of those commands. This avoids the unnecessary overhead which may improve performance slightly
281
+ - If the file is large and causing performance or timeout issues, consider whether it's possible to download that file from a different source or using a different method. Examples for consideration:
282
+ - Host the file in an Azure Storage account. Then, use utilities like `azcopy` or `Azure CLI` to download the file more efficiently. This can help with large files and provide better performance. See: [Transfer data using azcopy](https://learn.microsoft.com/azure/storage/common/storage-use-azcopy-v10?tabs=dnf#transfer-data) and [Download a file from Azure Storage](https://learn.microsoft.com/azure/dev-box/how-to-customizations-connect-resource-repository#example-download-a-file-from-azure-storage)
283
+ - Host the file in a git repository. Then, use the `~/gitclone` intrinsic task to clone the repository and access the files directly. This can be more efficient than downloading large files individually
284
+
285
+ ### WinGet task
286
+
287
+ #### Use of packages from sources other than winget (such as msstore)
288
+
289
+ The built-in winget task does not support installing packages from sources other than the ```winget``` repository. If the user needs to install packages from sources like `msstore`, they could use the `~/powershell` task to run a PowerShell script that installs the package using the winget CLI command directly instead.
290
+
291
+ ##### **CRITICAL** Important considerations when invoking winget CLI directly and using msstore
292
+
293
+ - Packages from the `msstore` source must be installed in the the `userTasks` section of the YAML file. This is because the `msstore` source requires user context to install applications from the Microsoft Store
294
+ - The `winget` CLI command must be available in the PATH environment variable for the user context when the `~/powershell` task is run. If the `winget` CLI command is not available in the PATH, the task will fail to execute
295
+ - Include acceptance flags (`--accept-source-agreements`, `--accept-package-agreements`) to avoid interactive prompts when executing `winget install` directly
296
+
297
+ ### Task context errors
298
+
299
+ #### Error: "System tasks are not allowed in standard usercontext"
300
+
301
+ - Solution: Move administrative operations to `tasks` section
302
+ - Ensure you're running customizations with appropriate privileges when testing locally