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,623 @@
1
+ ---
2
+ description: 'Comprehensive guide for Power BI DevOps, Application Lifecycle Management (ALM), CI/CD pipelines, deployment automation, and version control best practices.'
3
+ applyTo: '**/*.{yml,yaml,ps1,json,pbix,pbir}'
4
+ ---
5
+
6
+ # Power BI DevOps and Application Lifecycle Management Best Practices
7
+
8
+ ## Overview
9
+ This document provides comprehensive instructions for implementing DevOps practices, CI/CD pipelines, and Application Lifecycle Management (ALM) for Power BI solutions, based on Microsoft's recommended patterns and best practices.
10
+
11
+ ## Power BI Project Structure and Version Control
12
+
13
+ ### 1. PBIP (Power BI Project) Structure
14
+ ```markdown
15
+ // Power BI project file organization
16
+ ├── Model/
17
+ │ ├── model.tmdl
18
+ │ ├── tables/
19
+ │ │ ├── FactSales.tmdl
20
+ │ │ └── DimProduct.tmdl
21
+ │ ├── relationships/
22
+ │ │ └── relationships.tmdl
23
+ │ └── measures/
24
+ │ └── measures.tmdl
25
+ ├── Report/
26
+ │ ├── report.json
27
+ │ ├── pages/
28
+ │ │ ├── ReportSection1/
29
+ │ │ │ ├── page.json
30
+ │ │ │ └── visuals/
31
+ │ │ └── pages.json
32
+ │ └── bookmarks/
33
+ └── .git/
34
+ ```
35
+
36
+ ### 2. Git Integration Best Practices
37
+ ```powershell
38
+ # Initialize Power BI project with Git
39
+ git init
40
+ git add .
41
+ git commit -m "Initial Power BI project structure"
42
+
43
+ # Create feature branch for development
44
+ git checkout -b feature/new-dashboard
45
+ git add Model/tables/NewTable.tmdl
46
+ git commit -m "Add new dimension table"
47
+
48
+ # Merge and deploy workflow
49
+ git checkout main
50
+ git merge feature/new-dashboard
51
+ git tag -a v1.2.0 -m "Release version 1.2.0"
52
+ ```
53
+
54
+ ## Deployment Pipelines and Automation
55
+
56
+ ### 1. Power BI Deployment Pipelines API
57
+ ```powershell
58
+ # Automated deployment using Power BI REST API
59
+ $url = "pipelines/{0}/Deploy" -f "Insert your pipeline ID here"
60
+ $body = @{
61
+ sourceStageOrder = 0 # Development (0), Test (1)
62
+ datasets = @(
63
+ @{sourceId = "Insert your dataset ID here" }
64
+ )
65
+ reports = @(
66
+ @{sourceId = "Insert your report ID here" }
67
+ )
68
+ dashboards = @(
69
+ @{sourceId = "Insert your dashboard ID here" }
70
+ )
71
+
72
+ options = @{
73
+ # Allows creating new item if needed on the Test stage workspace
74
+ allowCreateArtifact = $TRUE
75
+
76
+ # Allows overwriting existing item if needed on the Test stage workspace
77
+ allowOverwriteArtifact = $TRUE
78
+ }
79
+ } | ConvertTo-Json
80
+
81
+ $deployResult = Invoke-PowerBIRestMethod -Url $url -Method Post -Body $body | ConvertFrom-Json
82
+
83
+ # Poll deployment status
84
+ $url = "pipelines/{0}/Operations/{1}" -f "Insert your pipeline ID here",$deployResult.id
85
+ $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
86
+ while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
87
+ {
88
+ # Sleep for 5 seconds
89
+ Start-Sleep -s 5
90
+ $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
91
+ }
92
+ ```
93
+
94
+ ### 2. Azure DevOps Integration
95
+ ```yaml
96
+ # Azure DevOps pipeline for Power BI deployment
97
+ trigger:
98
+ - main
99
+
100
+ pool:
101
+ vmImage: windows-latest
102
+
103
+ steps:
104
+ - task: CopyFiles@2
105
+ inputs:
106
+ Contents: '**'
107
+ TargetFolder: '$(Build.ArtifactStagingDirectory)'
108
+ CleanTargetFolder: true
109
+ ignoreMakeDirErrors: true
110
+ displayName: 'Copy files from Repo'
111
+
112
+ - task: PowerPlatformToolInstaller@2
113
+ inputs:
114
+ DefaultVersion: true
115
+
116
+ - task: PowerPlatformExportData@2
117
+ inputs:
118
+ authenticationType: 'PowerPlatformSPN'
119
+ PowerPlatformSPN: 'PowerBIServiceConnection'
120
+ Environment: '$(BuildTools.EnvironmentUrl)'
121
+ SchemaFile: '$(Build.ArtifactStagingDirectory)\source\schema.xml'
122
+ DataFile: 'data.zip'
123
+ displayName: 'Export Power BI metadata'
124
+
125
+ - task: PowerShell@2
126
+ inputs:
127
+ targetType: 'inline'
128
+ script: |
129
+ # Deploy Power BI project using FabricPS-PBIP
130
+ $workspaceName = "$(WorkspaceName)"
131
+ $pbipSemanticModelPath = "$(Build.ArtifactStagingDirectory)\$(ProjectName).SemanticModel"
132
+ $pbipReportPath = "$(Build.ArtifactStagingDirectory)\$(ProjectName).Report"
133
+
134
+ # Download and install FabricPS-PBIP module
135
+ New-Item -ItemType Directory -Path ".\modules" -ErrorAction SilentlyContinue | Out-Null
136
+ @("https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psm1",
137
+ "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psd1") |% {
138
+ Invoke-WebRequest -Uri $_ -OutFile ".\modules\$(Split-Path $_ -Leaf)"
139
+ }
140
+
141
+ Import-Module ".\modules\FabricPS-PBIP" -Force
142
+
143
+ # Authenticate and deploy
144
+ Set-FabricAuthToken -reset
145
+ $workspaceId = New-FabricWorkspace -name $workspaceName -skipErrorIfExists
146
+ $semanticModelImport = Import-FabricItem -workspaceId $workspaceId -path $pbipSemanticModelPath
147
+ $reportImport = Import-FabricItem -workspaceId $workspaceId -path $pbipReportPath -itemProperties @{"semanticModelId" = $semanticModelImport.Id}
148
+ displayName: 'Deploy to Power BI Service'
149
+ ```
150
+
151
+ ### 3. Fabric REST API Deployment
152
+ ```powershell
153
+ # Complete PowerShell deployment script
154
+ # Parameters
155
+ $workspaceName = "[Workspace Name]"
156
+ $pbipSemanticModelPath = "[PBIP Path]\[Item Name].SemanticModel"
157
+ $pbipReportPath = "[PBIP Path]\[Item Name].Report"
158
+ $currentPath = (Split-Path $MyInvocation.MyCommand.Definition -Parent)
159
+ Set-Location $currentPath
160
+
161
+ # Download modules and install
162
+ New-Item -ItemType Directory -Path ".\modules" -ErrorAction SilentlyContinue | Out-Null
163
+ @("https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psm1",
164
+ "https://raw.githubusercontent.com/microsoft/Analysis-Services/master/pbidevmode/fabricps-pbip/FabricPS-PBIP.psd1") |% {
165
+ Invoke-WebRequest -Uri $_ -OutFile ".\modules\$(Split-Path $_ -Leaf)"
166
+ }
167
+
168
+ if(-not (Get-Module Az.Accounts -ListAvailable)) {
169
+ Install-Module Az.Accounts -Scope CurrentUser -Force
170
+ }
171
+ Import-Module ".\modules\FabricPS-PBIP" -Force
172
+
173
+ # Authenticate
174
+ Set-FabricAuthToken -reset
175
+
176
+ # Ensure workspace exists
177
+ $workspaceId = New-FabricWorkspace -name $workspaceName -skipErrorIfExists
178
+
179
+ # Import the semantic model and save the item id
180
+ $semanticModelImport = Import-FabricItem -workspaceId $workspaceId -path $pbipSemanticModelPath
181
+
182
+ # Import the report and ensure its bound to the previous imported semantic model
183
+ $reportImport = Import-FabricItem -workspaceId $workspaceId -path $pbipReportPath -itemProperties @{"semanticModelId" = $semanticModelImport.Id}
184
+ ```
185
+
186
+ ## Environment Management
187
+
188
+ ### 1. Multi-Environment Strategy
189
+ ```json
190
+ {
191
+ "environments": {
192
+ "development": {
193
+ "workspaceId": "dev-workspace-id",
194
+ "dataSourceUrl": "dev-database.database.windows.net",
195
+ "refreshSchedule": "manual",
196
+ "sensitivityLabel": "Internal"
197
+ },
198
+ "test": {
199
+ "workspaceId": "test-workspace-id",
200
+ "dataSourceUrl": "test-database.database.windows.net",
201
+ "refreshSchedule": "daily",
202
+ "sensitivityLabel": "Internal"
203
+ },
204
+ "production": {
205
+ "workspaceId": "prod-workspace-id",
206
+ "dataSourceUrl": "prod-database.database.windows.net",
207
+ "refreshSchedule": "hourly",
208
+ "sensitivityLabel": "Confidential"
209
+ }
210
+ }
211
+ }
212
+ ```
213
+
214
+ ### 2. Parameter-Driven Deployment
215
+ ```powershell
216
+ # Environment-specific parameter management
217
+ param(
218
+ [Parameter(Mandatory=$true)]
219
+ [ValidateSet("dev", "test", "prod")]
220
+ [string]$Environment,
221
+
222
+ [Parameter(Mandatory=$true)]
223
+ [string]$WorkspaceName,
224
+
225
+ [Parameter(Mandatory=$false)]
226
+ [string]$DataSourceServer
227
+ )
228
+
229
+ # Load environment-specific configuration
230
+ $configPath = ".\config\$Environment.json"
231
+ $config = Get-Content $configPath | ConvertFrom-Json
232
+
233
+ # Update connection strings based on environment
234
+ $connectionString = "Data Source=$($config.dataSourceUrl);Initial Catalog=$($config.database);Integrated Security=SSPI;"
235
+
236
+ # Deploy with environment-specific settings
237
+ Write-Host "Deploying to $Environment environment..."
238
+ Write-Host "Workspace: $($config.workspaceId)"
239
+ Write-Host "Data Source: $($config.dataSourceUrl)"
240
+ ```
241
+
242
+ ## Automated Testing Framework
243
+
244
+ ### 1. Data Quality Tests
245
+ ```powershell
246
+ # Automated data quality validation
247
+ function Test-PowerBIDataQuality {
248
+ param(
249
+ [string]$WorkspaceId,
250
+ [string]$DatasetId
251
+ )
252
+
253
+ # Test 1: Row count validation
254
+ $rowCountQuery = @"
255
+ EVALUATE
256
+ ADDCOLUMNS(
257
+ SUMMARIZE(Sales, Sales[Year]),
258
+ "RowCount", COUNTROWS(Sales),
259
+ "ExpectedMin", 1000,
260
+ "Test", IF(COUNTROWS(Sales) >= 1000, "PASS", "FAIL")
261
+ )
262
+ "@
263
+
264
+ # Test 2: Data freshness validation
265
+ $freshnessQuery = @"
266
+ EVALUATE
267
+ ADDCOLUMNS(
268
+ ROW("LastRefresh", MAX(Sales[Date])),
269
+ "DaysOld", DATEDIFF(MAX(Sales[Date]), TODAY(), DAY),
270
+ "Test", IF(DATEDIFF(MAX(Sales[Date]), TODAY(), DAY) <= 1, "PASS", "FAIL")
271
+ )
272
+ "@
273
+
274
+ # Execute tests
275
+ $rowCountResult = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$rowCountQuery})} | ConvertTo-Json)
276
+ $freshnessResult = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$freshnessQuery})} | ConvertTo-Json)
277
+
278
+ return @{
279
+ RowCountTest = $rowCountResult
280
+ FreshnessTest = $freshnessResult
281
+ }
282
+ }
283
+ ```
284
+
285
+ ### 2. Performance Regression Tests
286
+ ```powershell
287
+ # Performance benchmark testing
288
+ function Test-PowerBIPerformance {
289
+ param(
290
+ [string]$WorkspaceId,
291
+ [string]$ReportId
292
+ )
293
+
294
+ $performanceTests = @(
295
+ @{
296
+ Name = "Dashboard Load Time"
297
+ Query = "EVALUATE TOPN(1000, Sales)"
298
+ MaxDurationMs = 5000
299
+ },
300
+ @{
301
+ Name = "Complex Calculation"
302
+ Query = "EVALUATE ADDCOLUMNS(Sales, 'ComplexCalc', [Sales] * [Profit Margin %])"
303
+ MaxDurationMs = 10000
304
+ }
305
+ )
306
+
307
+ $results = @()
308
+ foreach ($test in $performanceTests) {
309
+ $startTime = Get-Date
310
+ $result = Invoke-PowerBIRestMethod -Url "groups/$WorkspaceId/datasets/$DatasetId/executeQueries" -Method Post -Body (@{queries=@(@{query=$test.Query})} | ConvertTo-Json)
311
+ $endTime = Get-Date
312
+ $duration = ($endTime - $startTime).TotalMilliseconds
313
+
314
+ $results += @{
315
+ TestName = $test.Name
316
+ Duration = $duration
317
+ Passed = $duration -le $test.MaxDurationMs
318
+ Threshold = $test.MaxDurationMs
319
+ }
320
+ }
321
+
322
+ return $results
323
+ }
324
+ ```
325
+
326
+ ## Configuration Management
327
+
328
+ ### 1. Infrastructure as Code
329
+ ```json
330
+ {
331
+ "workspace": {
332
+ "name": "Production Analytics",
333
+ "description": "Production Power BI workspace for sales analytics",
334
+ "capacityId": "A1-capacity-id",
335
+ "users": [
336
+ {
337
+ "emailAddress": "admin@contoso.com",
338
+ "accessRight": "Admin"
339
+ },
340
+ {
341
+ "emailAddress": "powerbi-service-principal@contoso.com",
342
+ "accessRight": "Member",
343
+ "principalType": "App"
344
+ }
345
+ ],
346
+ "settings": {
347
+ "datasetDefaultStorageFormat": "Large",
348
+ "blockResourceKeyAuthentication": true
349
+ }
350
+ },
351
+ "datasets": [
352
+ {
353
+ "name": "Sales Analytics",
354
+ "refreshSchedule": {
355
+ "enabled": true,
356
+ "times": ["06:00", "12:00", "18:00"],
357
+ "days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
358
+ "timeZone": "UTC"
359
+ },
360
+ "datasourceCredentials": {
361
+ "credentialType": "OAuth2",
362
+ "encryptedConnection": "Encrypted"
363
+ }
364
+ }
365
+ ]
366
+ }
367
+ ```
368
+
369
+ ### 2. Secret Management
370
+ ```powershell
371
+ # Azure Key Vault integration for secrets
372
+ function Get-PowerBICredentials {
373
+ param(
374
+ [string]$KeyVaultName,
375
+ [string]$Environment
376
+ )
377
+
378
+ # Retrieve secrets from Key Vault
379
+ $servicePrincipalId = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-ServicePrincipal-Id-$Environment" -AsPlainText
380
+ $servicePrincipalSecret = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-ServicePrincipal-Secret-$Environment" -AsPlainText
381
+ $tenantId = Get-AzKeyVaultSecret -VaultName $KeyVaultName -Name "PowerBI-TenantId-$Environment" -AsPlainText
382
+
383
+ return @{
384
+ ServicePrincipalId = $servicePrincipalId
385
+ ServicePrincipalSecret = $servicePrincipalSecret
386
+ TenantId = $tenantId
387
+ }
388
+ }
389
+
390
+ # Authenticate using retrieved credentials
391
+ $credentials = Get-PowerBICredentials -KeyVaultName "PowerBI-KeyVault" -Environment "Production"
392
+ $securePassword = ConvertTo-SecureString $credentials.ServicePrincipalSecret -AsPlainText -Force
393
+ $credential = New-Object System.Management.Automation.PSCredential($credentials.ServicePrincipalId, $securePassword)
394
+ Connect-PowerBIServiceAccount -ServicePrincipal -Credential $credential -TenantId $credentials.TenantId
395
+ ```
396
+
397
+ ## Release Management
398
+
399
+ ### 1. Release Pipeline
400
+ ```yaml
401
+ # Multi-stage release pipeline
402
+ stages:
403
+ - stage: Build
404
+ displayName: 'Build Stage'
405
+ jobs:
406
+ - job: Build
407
+ steps:
408
+ - task: PowerShell@2
409
+ displayName: 'Validate Power BI Project'
410
+ inputs:
411
+ targetType: 'inline'
412
+ script: |
413
+ # Validate PBIP structure
414
+ if (-not (Test-Path "Model\model.tmdl")) {
415
+ throw "Missing model.tmdl file"
416
+ }
417
+
418
+ # Validate required files
419
+ $requiredFiles = @("Report\report.json", "Model\tables")
420
+ foreach ($file in $requiredFiles) {
421
+ if (-not (Test-Path $file)) {
422
+ throw "Missing required file: $file"
423
+ }
424
+ }
425
+
426
+ Write-Host "✅ Project validation passed"
427
+
428
+ - stage: DeployTest
429
+ displayName: 'Deploy to Test'
430
+ dependsOn: Build
431
+ condition: succeeded()
432
+ jobs:
433
+ - deployment: DeployTest
434
+ environment: 'PowerBI-Test'
435
+ strategy:
436
+ runOnce:
437
+ deploy:
438
+ steps:
439
+ - template: deploy-powerbi.yml
440
+ parameters:
441
+ environment: 'test'
442
+ workspaceName: '$(TestWorkspaceName)'
443
+
444
+ - stage: DeployProd
445
+ displayName: 'Deploy to Production'
446
+ dependsOn: DeployTest
447
+ condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
448
+ jobs:
449
+ - deployment: DeployProd
450
+ environment: 'PowerBI-Production'
451
+ strategy:
452
+ runOnce:
453
+ deploy:
454
+ steps:
455
+ - template: deploy-powerbi.yml
456
+ parameters:
457
+ environment: 'prod'
458
+ workspaceName: '$(ProdWorkspaceName)'
459
+ ```
460
+
461
+ ### 2. Rollback Strategy
462
+ ```powershell
463
+ # Automated rollback mechanism
464
+ function Invoke-PowerBIRollback {
465
+ param(
466
+ [string]$WorkspaceId,
467
+ [string]$BackupVersion,
468
+ [string]$BackupLocation
469
+ )
470
+
471
+ Write-Host "Initiating rollback to version: $BackupVersion"
472
+
473
+ # Step 1: Export current state as emergency backup
474
+ $emergencyBackup = "emergency-backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
475
+ Export-PowerBIReport -WorkspaceId $WorkspaceId -BackupName $emergencyBackup
476
+
477
+ # Step 2: Restore from backup
478
+ $backupPath = Join-Path $BackupLocation "$BackupVersion.pbix"
479
+ if (Test-Path $backupPath) {
480
+ Import-PowerBIReport -WorkspaceId $WorkspaceId -FilePath $backupPath -ConflictAction "Overwrite"
481
+ Write-Host "✅ Rollback completed successfully"
482
+ } else {
483
+ throw "Backup file not found: $backupPath"
484
+ }
485
+
486
+ # Step 3: Validate rollback
487
+ Test-PowerBIDataQuality -WorkspaceId $WorkspaceId
488
+ }
489
+ ```
490
+
491
+ ## Monitoring and Alerting
492
+
493
+ ### 1. Deployment Health Checks
494
+ ```powershell
495
+ # Post-deployment validation
496
+ function Test-DeploymentHealth {
497
+ param(
498
+ [string]$WorkspaceId,
499
+ [array]$ExpectedReports,
500
+ [array]$ExpectedDatasets
501
+ )
502
+
503
+ $healthCheck = @{
504
+ Status = "Healthy"
505
+ Issues = @()
506
+ Timestamp = Get-Date
507
+ }
508
+
509
+ # Check reports
510
+ $reports = Get-PowerBIReport -WorkspaceId $WorkspaceId
511
+ foreach ($expectedReport in $ExpectedReports) {
512
+ if (-not ($reports.Name -contains $expectedReport)) {
513
+ $healthCheck.Issues += "Missing report: $expectedReport"
514
+ $healthCheck.Status = "Unhealthy"
515
+ }
516
+ }
517
+
518
+ # Check datasets
519
+ $datasets = Get-PowerBIDataset -WorkspaceId $WorkspaceId
520
+ foreach ($expectedDataset in $ExpectedDatasets) {
521
+ $dataset = $datasets | Where-Object { $_.Name -eq $expectedDataset }
522
+ if (-not $dataset) {
523
+ $healthCheck.Issues += "Missing dataset: $expectedDataset"
524
+ $healthCheck.Status = "Unhealthy"
525
+ } elseif ($dataset.RefreshState -eq "Failed") {
526
+ $healthCheck.Issues += "Dataset refresh failed: $expectedDataset"
527
+ $healthCheck.Status = "Degraded"
528
+ }
529
+ }
530
+
531
+ return $healthCheck
532
+ }
533
+ ```
534
+
535
+ ### 2. Automated Alerting
536
+ ```powershell
537
+ # Teams notification for deployment status
538
+ function Send-DeploymentNotification {
539
+ param(
540
+ [string]$TeamsWebhookUrl,
541
+ [object]$DeploymentResult,
542
+ [string]$Environment
543
+ )
544
+
545
+ $color = switch ($DeploymentResult.Status) {
546
+ "Success" { "28A745" }
547
+ "Warning" { "FFC107" }
548
+ "Failed" { "DC3545" }
549
+ }
550
+
551
+ $teamsMessage = @{
552
+ "@type" = "MessageCard"
553
+ "@context" = "https://schema.org/extensions"
554
+ "summary" = "Power BI Deployment $($DeploymentResult.Status)"
555
+ "themeColor" = $color
556
+ "sections" = @(
557
+ @{
558
+ "activityTitle" = "Power BI Deployment to $Environment"
559
+ "activitySubtitle" = "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
560
+ "facts" = @(
561
+ @{
562
+ "name" = "Status"
563
+ "value" = $DeploymentResult.Status
564
+ },
565
+ @{
566
+ "name" = "Duration"
567
+ "value" = "$($DeploymentResult.Duration) minutes"
568
+ },
569
+ @{
570
+ "name" = "Reports Deployed"
571
+ "value" = $DeploymentResult.ReportsCount
572
+ }
573
+ )
574
+ }
575
+ )
576
+ }
577
+
578
+ Invoke-RestMethod -Uri $TeamsWebhookUrl -Method Post -Body ($teamsMessage | ConvertTo-Json -Depth 10) -ContentType 'application/json'
579
+ }
580
+ ```
581
+
582
+ ## Best Practices Summary
583
+
584
+ ### ✅ DevOps Best Practices
585
+
586
+ 1. **Version Control Everything**
587
+ - Use PBIP format for source control
588
+ - Include model, reports, and configuration
589
+ - Implement branching strategies (GitFlow)
590
+
591
+ 2. **Automated Testing**
592
+ - Data quality validation
593
+ - Performance regression tests
594
+ - Security compliance checks
595
+
596
+ 3. **Environment Isolation**
597
+ - Separate dev/test/prod environments
598
+ - Environment-specific configurations
599
+ - Automated promotion pipelines
600
+
601
+ 4. **Security Integration**
602
+ - Service principal authentication
603
+ - Secret management with Key Vault
604
+ - Role-based access controls
605
+
606
+ ### ❌ Anti-Patterns to Avoid
607
+
608
+ 1. **Manual Deployments**
609
+ - Direct publishing from Desktop
610
+ - Manual configuration changes
611
+ - No rollback strategy
612
+
613
+ 2. **Environment Coupling**
614
+ - Hardcoded connection strings
615
+ - Environment-specific reports
616
+ - Manual testing only
617
+
618
+ 3. **Poor Change Management**
619
+ - No version control
620
+ - Direct production changes
621
+ - Missing audit trails
622
+
623
+ Remember: DevOps for Power BI requires a combination of proper tooling, automated processes, and organizational discipline. Start with basic CI/CD and gradually mature your practices based on organizational needs and compliance requirements.