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,639 @@
1
+ ---
2
+ description: 'Comprehensive Power BI data modeling best practices based on Microsoft guidance for creating efficient, scalable, and maintainable semantic models using star schema principles.'
3
+ applyTo: '**/*.{pbix,md,json,txt}'
4
+ ---
5
+
6
+ # Power BI Data Modeling Best Practices
7
+
8
+ ## Overview
9
+ This document provides comprehensive instructions for designing efficient, scalable, and maintainable Power BI semantic models following Microsoft's official guidance and dimensional modeling best practices.
10
+
11
+ ## Star Schema Design Principles
12
+
13
+ ### 1. Fundamental Table Types
14
+ **Dimension Tables** - Store descriptive business entities:
15
+ - Products, customers, geography, time, employees
16
+ - Contain unique key columns (preferably surrogate keys)
17
+ - Relatively small number of rows
18
+ - Used for filtering, grouping, and providing context
19
+ - Support hierarchical drill-down scenarios
20
+
21
+ **Fact Tables** - Store measurable business events:
22
+ - Sales transactions, website clicks, manufacturing events
23
+ - Contain foreign keys to dimension tables
24
+ - Numeric measures for aggregation
25
+ - Large number of rows (typically growing over time)
26
+ - Represent specific grain/level of detail
27
+
28
+ ```
29
+ Example Star Schema Structure:
30
+
31
+ DimProduct (Dimension) FactSales (Fact) DimCustomer (Dimension)
32
+ ├── ProductKey (PK) ├── SalesKey (PK) ├── CustomerKey (PK)
33
+ ├── ProductName ├── ProductKey (FK) ├── CustomerName
34
+ ├── Category ├── CustomerKey (FK) ├── CustomerType
35
+ ├── SubCategory ├── DateKey (FK) ├── Region
36
+ └── UnitPrice ├── SalesAmount └── RegistrationDate
37
+ ├── Quantity
38
+ DimDate (Dimension) └── DiscountAmount
39
+ ├── DateKey (PK)
40
+ ├── Date
41
+ ├── Year
42
+ ├── Quarter
43
+ ├── Month
44
+ └── DayOfWeek
45
+ ```
46
+
47
+ ### 2. Table Design Best Practices
48
+
49
+ #### Dimension Table Design
50
+ ```
51
+ ✅ DO:
52
+ - Use surrogate keys (auto-incrementing integers) as primary keys
53
+ - Include business keys for integration purposes
54
+ - Create hierarchical attributes (Category > SubCategory > Product)
55
+ - Use descriptive names and proper data types
56
+ - Include "Unknown" records for missing dimension data
57
+ - Keep dimension tables relatively narrow (focused attributes)
58
+
59
+ ❌ DON'T:
60
+ - Use natural business keys as primary keys in large models
61
+ - Mix fact and dimension characteristics in same table
62
+ - Create unnecessarily wide dimension tables
63
+ - Leave missing values without proper handling
64
+ ```
65
+
66
+ #### Fact Table Design
67
+ ```
68
+ ✅ DO:
69
+ - Store data at the most granular level needed
70
+ - Use foreign keys that match dimension table keys
71
+ - Include only numeric, measurable columns
72
+ - Maintain consistent grain across all fact table rows
73
+ - Use appropriate data types (decimal for currency, integer for counts)
74
+
75
+ ❌ DON'T:
76
+ - Include descriptive text columns (these belong in dimensions)
77
+ - Mix different grains in the same fact table
78
+ - Store calculated values that can be computed at query time
79
+ - Use composite keys when surrogate keys would be simpler
80
+ ```
81
+
82
+ ## Relationship Design and Management
83
+
84
+ ### 1. Relationship Types and Best Practices
85
+
86
+ #### One-to-Many Relationships (Standard Pattern)
87
+ ```
88
+ Configuration:
89
+ - From Dimension (One side) to Fact (Many side)
90
+ - Single direction filtering (Dimension filters Fact)
91
+ - Mark as "Assume Referential Integrity" for DirectQuery performance
92
+
93
+ Example:
94
+ DimProduct (1) ← ProductKey → (*) FactSales
95
+ DimCustomer (1) ← CustomerKey → (*) FactSales
96
+ DimDate (1) ← DateKey → (*) FactSales
97
+ ```
98
+
99
+ #### Many-to-Many Relationships (Use Sparingly)
100
+ ```
101
+ When to Use:
102
+ ✅ Genuine many-to-many business relationships
103
+ ✅ When bridging table pattern is not feasible
104
+ ✅ For advanced analytical scenarios
105
+
106
+ Best Practices:
107
+ - Create explicit bridging tables when possible
108
+ - Use low-cardinality relationship columns
109
+ - Monitor performance impact carefully
110
+ - Document business rules clearly
111
+
112
+ Example with Bridging Table:
113
+ DimCustomer (1) ← CustomerKey → (*) BridgeCustomerAccount (*) ← AccountKey → (1) DimAccount
114
+ ```
115
+
116
+ #### One-to-One Relationships (Rare)
117
+ ```
118
+ When to Use:
119
+ - Extending dimension tables with additional attributes
120
+ - Degenerate dimension scenarios
121
+ - Separating PII from operational data
122
+
123
+ Implementation:
124
+ - Consider consolidating into single table if possible
125
+ - Use for security/privacy separation
126
+ - Maintain referential integrity
127
+ ```
128
+
129
+ ### 2. Relationship Configuration Guidelines
130
+ ```
131
+ Filter Direction:
132
+ ✅ Single Direction: Default choice, best performance
133
+ ✅ Both Directions: Only when cross-filtering is required for business logic
134
+ ❌ Avoid: Circular relationship paths
135
+
136
+ Cross-Filter Direction:
137
+ - Dimension to Fact: Always single direction
138
+ - Fact to Fact: Avoid direct relationships, use shared dimensions
139
+ - Dimension to Dimension: Only when business logic requires it
140
+
141
+ Referential Integrity:
142
+ ✅ Enable for DirectQuery sources when data quality is guaranteed
143
+ ✅ Improves query performance by using INNER JOINs
144
+ ❌ Don't enable if source data has orphaned records
145
+ ```
146
+
147
+ ## Storage Mode Optimization
148
+
149
+ ### 1. Import Mode Best Practices
150
+ ```
151
+ When to Use Import Mode:
152
+ ✅ Data size fits within capacity limits
153
+ ✅ Complex analytical calculations required
154
+ ✅ Historical data analysis with stable datasets
155
+ ✅ Need for optimal query performance
156
+
157
+ Optimization Strategies:
158
+ - Remove unnecessary columns and rows
159
+ - Use appropriate data types
160
+ - Pre-aggregate data when possible
161
+ - Implement incremental refresh for large datasets
162
+ - Optimize Power Query transformations
163
+ ```
164
+
165
+ #### Data Reduction Techniques for Import
166
+ ```
167
+ Vertical Filtering (Column Reduction):
168
+ ✅ Remove columns not used in reports or relationships
169
+ ✅ Remove calculated columns that can be computed in DAX
170
+ ✅ Remove intermediate columns used only in Power Query
171
+ ✅ Optimize data types (Integer vs. Decimal, Date vs. DateTime)
172
+
173
+ Horizontal Filtering (Row Reduction):
174
+ ✅ Filter to relevant time periods (e.g., last 3 years of data)
175
+ ✅ Filter to relevant business entities (active customers, specific regions)
176
+ ✅ Remove test, invalid, or cancelled transactions
177
+ ✅ Implement proper data archiving strategies
178
+
179
+ Data Type Optimization:
180
+ Text → Numeric: Convert codes to integers when possible
181
+ DateTime → Date: Use Date type when time is not needed
182
+ Decimal → Integer: Use integers for whole number measures
183
+ High Precision → Lower Precision: Match business requirements
184
+ ```
185
+
186
+ ### 2. DirectQuery Mode Best Practices
187
+ ```
188
+ When to Use DirectQuery Mode:
189
+ ✅ Data exceeds import capacity limits
190
+ ✅ Real-time data requirements
191
+ ✅ Security/compliance requires data to stay at source
192
+ ✅ Integration with operational systems
193
+
194
+ Optimization Requirements:
195
+ - Optimize source database performance
196
+ - Create appropriate indexes on source tables
197
+ - Minimize complex DAX calculations
198
+ - Use simple measures and aggregations
199
+ - Limit number of visuals per report page
200
+ - Implement query reduction techniques
201
+ ```
202
+
203
+ #### DirectQuery Performance Optimization
204
+ ```
205
+ Database Optimization:
206
+ ✅ Create indexes on frequently filtered columns
207
+ ✅ Create indexes on relationship key columns
208
+ ✅ Use materialized views for complex joins
209
+ ✅ Implement appropriate database maintenance
210
+ ✅ Consider columnstore indexes for analytical workloads
211
+
212
+ Model Design for DirectQuery:
213
+ ✅ Keep DAX measures simple
214
+ ✅ Avoid calculated columns on large tables
215
+ ✅ Use star schema design strictly
216
+ ✅ Minimize cross-table operations
217
+ ✅ Pre-aggregate data in source when possible
218
+
219
+ Query Performance:
220
+ ✅ Apply filters early in report design
221
+ ✅ Use appropriate visual types
222
+ ✅ Limit high-cardinality filtering
223
+ ✅ Monitor and optimize slow queries
224
+ ```
225
+
226
+ ### 3. Composite Model Design
227
+ ```
228
+ When to Use Composite Models:
229
+ ✅ Combine historical (Import) with real-time (DirectQuery) data
230
+ ✅ Extend existing models with additional data sources
231
+ ✅ Balance performance with data freshness requirements
232
+ ✅ Integrate multiple DirectQuery sources
233
+
234
+ Storage Mode Selection:
235
+ Import: Small dimension tables, historical aggregated facts
236
+ DirectQuery: Large fact tables, real-time operational data
237
+ Dual: Dimension tables that need to work with both Import and DirectQuery facts
238
+ Hybrid: Fact tables combining historical (Import) with recent (DirectQuery) data
239
+ ```
240
+
241
+ #### Dual Storage Mode Strategy
242
+ ```
243
+ Use Dual Mode For:
244
+ ✅ Dimension tables that relate to both Import and DirectQuery facts
245
+ ✅ Small, slowly changing reference tables
246
+ ✅ Lookup tables that need flexible querying
247
+
248
+ Configuration:
249
+ - Set dimension tables to Dual mode
250
+ - Power BI automatically chooses optimal query path
251
+ - Maintains single copy of dimension data
252
+ - Enables efficient cross-source relationships
253
+ ```
254
+
255
+ ## Advanced Modeling Patterns
256
+
257
+ ### 1. Date Table Design
258
+ ```
259
+ Essential Date Table Attributes:
260
+ ✅ Continuous date range (no gaps)
261
+ ✅ Mark as date table in Power BI
262
+ ✅ Include standard hierarchy (Year > Quarter > Month > Day)
263
+ ✅ Add business-specific columns (FiscalYear, WorkingDay, Holiday)
264
+ ✅ Use Date data type for date column
265
+
266
+ Date Table Implementation:
267
+ DateKey (Integer): 20240315 (YYYYMMDD format)
268
+ Date (Date): 2024-03-15
269
+ Year (Integer): 2024
270
+ Quarter (Text): Q1 2024
271
+ Month (Text): March 2024
272
+ MonthNumber (Integer): 3
273
+ DayOfWeek (Text): Friday
274
+ IsWorkingDay (Boolean): TRUE
275
+ FiscalYear (Integer): 2024
276
+ FiscalQuarter (Text): FY2024 Q3
277
+ ```
278
+
279
+ ### 2. Slowly Changing Dimensions (SCD)
280
+ ```
281
+ Type 1 SCD (Overwrite):
282
+ - Update existing records with new values
283
+ - Lose historical context
284
+ - Simple to implement and maintain
285
+ - Use for non-critical attribute changes
286
+
287
+ Type 2 SCD (History Preservation):
288
+ - Create new records for changes
289
+ - Maintain complete history
290
+ - Include effective date ranges
291
+ - Use surrogate keys for unique identification
292
+
293
+ Implementation Pattern:
294
+ CustomerKey (Surrogate): 1, 2, 3, 4
295
+ CustomerID (Business): 101, 101, 102, 103
296
+ CustomerName: "John Doe", "John Smith", "Jane Doe", "Bob Johnson"
297
+ EffectiveDate: 2023-01-01, 2024-01-01, 2023-01-01, 2023-01-01
298
+ ExpirationDate: 2023-12-31, 9999-12-31, 9999-12-31, 9999-12-31
299
+ IsCurrent: FALSE, TRUE, TRUE, TRUE
300
+ ```
301
+
302
+ ### 3. Role-Playing Dimensions
303
+ ```
304
+ Scenario: Date table used for Order Date, Ship Date, Delivery Date
305
+
306
+ Implementation Options:
307
+
308
+ Option 1: Multiple Relationships (Recommended)
309
+ - Single Date table with multiple relationships to Fact
310
+ - One active relationship (Order Date)
311
+ - Inactive relationships for Ship Date and Delivery Date
312
+ - Use USERELATIONSHIP in DAX measures
313
+
314
+ Option 2: Multiple Date Tables
315
+ - Separate tables: OrderDate, ShipDate, DeliveryDate
316
+ - Each with dedicated relationship
317
+ - More intuitive for report authors
318
+ - Larger model size due to duplication
319
+
320
+ DAX Implementation:
321
+ Sales by Order Date = [Total Sales] // Uses active relationship
322
+ Sales by Ship Date = CALCULATE([Total Sales], USERELATIONSHIP(FactSales[ShipDate], DimDate[Date]))
323
+ Sales by Delivery Date = CALCULATE([Total Sales], USERELATIONSHIP(FactSales[DeliveryDate], DimDate[Date]))
324
+ ```
325
+
326
+ ### 4. Bridge Tables for Many-to-Many
327
+ ```
328
+ Scenario: Students can be in multiple Courses, Courses can have multiple Students
329
+
330
+ Bridge Table Design:
331
+ DimStudent (1) ← StudentKey → (*) BridgeStudentCourse (*) ← CourseKey → (1) DimCourse
332
+
333
+ Bridge Table Structure:
334
+ StudentCourseKey (PK): Surrogate key
335
+ StudentKey (FK): Reference to DimStudent
336
+ CourseKey (FK): Reference to DimCourse
337
+ EnrollmentDate: Additional context
338
+ Grade: Additional context
339
+ Status: Active, Completed, Dropped
340
+
341
+ Relationship Configuration:
342
+ - DimStudent to BridgeStudentCourse: One-to-Many
343
+ - BridgeStudentCourse to DimCourse: Many-to-One
344
+ - Set one relationship to bi-directional for filter propagation
345
+ - Hide bridge table from report view
346
+ ```
347
+
348
+ ## Performance Optimization Strategies
349
+
350
+ ### 1. Model Size Optimization
351
+ ```
352
+ Column Optimization:
353
+ ✅ Remove unused columns completely
354
+ ✅ Use smallest appropriate data types
355
+ ✅ Convert high-cardinality text to integers with lookup tables
356
+ ✅ Remove redundant calculated columns
357
+
358
+ Row Optimization:
359
+ ✅ Filter to business-relevant time periods
360
+ ✅ Remove invalid, test, or cancelled transactions
361
+ ✅ Archive historical data appropriately
362
+ ✅ Use incremental refresh for growing datasets
363
+
364
+ Aggregation Strategies:
365
+ ✅ Pre-calculate common aggregations
366
+ ✅ Use summary tables for high-level reporting
367
+ ✅ Implement automatic aggregations in Premium
368
+ ✅ Consider OLAP cubes for complex analytical requirements
369
+ ```
370
+
371
+ ### 2. Relationship Performance
372
+ ```
373
+ Key Selection:
374
+ ✅ Use integer keys over text keys
375
+ ✅ Prefer surrogate keys over natural keys
376
+ ✅ Ensure referential integrity in source data
377
+ ✅ Create appropriate indexes on key columns
378
+
379
+ Cardinality Optimization:
380
+ ✅ Set correct relationship cardinality
381
+ ✅ Use "Assume Referential Integrity" when appropriate
382
+ ✅ Minimize bidirectional relationships
383
+ ✅ Avoid many-to-many relationships when possible
384
+
385
+ Cross-Filtering Strategy:
386
+ ✅ Use single-direction filtering as default
387
+ ✅ Enable bi-directional only when required
388
+ ✅ Test performance impact of cross-filtering
389
+ ✅ Document business reasons for bi-directional relationships
390
+ ```
391
+
392
+ ### 3. Query Performance Patterns
393
+ ```
394
+ Efficient Model Patterns:
395
+ ✅ Proper star schema implementation
396
+ ✅ Normalized dimension tables
397
+ ✅ Denormalized fact tables
398
+ ✅ Consistent grain across related tables
399
+ ✅ Appropriate use of calculated tables and columns
400
+
401
+ Query Optimization:
402
+ ✅ Pre-filter large datasets
403
+ ✅ Use appropriate visual types for data
404
+ ✅ Minimize complex DAX in reports
405
+ ✅ Leverage model relationships effectively
406
+ ✅ Consider DirectQuery for large, real-time datasets
407
+ ```
408
+
409
+ ## Security and Governance
410
+
411
+ ### 1. Row-Level Security (RLS)
412
+ ```
413
+ Implementation Patterns:
414
+
415
+ User-Based Security:
416
+ [UserEmail] = USERPRINCIPALNAME()
417
+
418
+ Role-Based Security:
419
+ VAR UserRole =
420
+ LOOKUPVALUE(
421
+ UserRoles[Role],
422
+ UserRoles[Email],
423
+ USERPRINCIPALNAME()
424
+ )
425
+ RETURN
426
+ Customers[Region] = UserRole
427
+
428
+ Dynamic Security:
429
+ LOOKUPVALUE(
430
+ UserRegions[Region],
431
+ UserRegions[Email],
432
+ USERPRINCIPALNAME()
433
+ ) = Customers[Region]
434
+
435
+ Best Practices:
436
+ ✅ Test with different user accounts
437
+ ✅ Keep security logic simple and performant
438
+ ✅ Document security requirements clearly
439
+ ✅ Use security roles, not individual user filters
440
+ ✅ Consider performance impact of complex RLS
441
+ ```
442
+
443
+ ### 2. Data Governance
444
+ ```
445
+ Documentation Requirements:
446
+ ✅ Business definitions for all measures
447
+ ✅ Data lineage and source system mapping
448
+ ✅ Refresh schedules and dependencies
449
+ ✅ Security and access control documentation
450
+ ✅ Change management procedures
451
+
452
+ Data Quality:
453
+ ✅ Implement data validation rules
454
+ ✅ Monitor for data completeness
455
+ ✅ Handle missing values appropriately
456
+ ✅ Validate business rule implementation
457
+ ✅ Regular data quality assessments
458
+
459
+ Version Control:
460
+ ✅ Source control for Power BI files
461
+ ✅ Environment promotion procedures
462
+ ✅ Change tracking and approval processes
463
+ ✅ Backup and recovery procedures
464
+ ```
465
+
466
+ ## Testing and Validation Framework
467
+
468
+ ### 1. Model Testing Checklist
469
+ ```
470
+ Functional Testing:
471
+ □ All relationships function correctly
472
+ □ Measures calculate expected values
473
+ □ Filters propagate appropriately
474
+ □ Security rules work as designed
475
+ □ Data refresh completes successfully
476
+
477
+ Performance Testing:
478
+ □ Model loads within acceptable time
479
+ □ Queries execute within SLA requirements
480
+ □ Visual interactions are responsive
481
+ □ Memory usage is within capacity limits
482
+ □ Concurrent user load testing completed
483
+
484
+ Data Quality Testing:
485
+ □ No missing foreign key relationships
486
+ □ Measure totals match source system
487
+ □ Date ranges are complete and continuous
488
+ □ Security filtering produces correct results
489
+ □ Business rules are correctly implemented
490
+ ```
491
+
492
+ ### 2. Validation Procedures
493
+ ```
494
+ Business Validation:
495
+ ✅ Compare report totals with source systems
496
+ ✅ Validate complex calculations with business users
497
+ ✅ Test edge cases and boundary conditions
498
+ ✅ Confirm business logic implementation
499
+ ✅ Verify report accuracy across different filters
500
+
501
+ Technical Validation:
502
+ ✅ Performance testing with realistic data volumes
503
+ ✅ Concurrent user testing
504
+ ✅ Security testing with different user roles
505
+ ✅ Data refresh testing and monitoring
506
+ ✅ Disaster recovery testing
507
+ ```
508
+
509
+ ## Common Anti-Patterns to Avoid
510
+
511
+ ### 1. Schema Anti-Patterns
512
+ ```
513
+ ❌ Snowflake Schema (Unless Necessary):
514
+ - Multiple normalized dimension tables
515
+ - Complex relationship chains
516
+ - Reduced query performance
517
+ - More complex for business users
518
+
519
+ ❌ Single Large Table:
520
+ - Mixing facts and dimensions
521
+ - Denormalized to extreme
522
+ - Difficult to maintain and extend
523
+ - Poor performance for analytical queries
524
+
525
+ ❌ Multiple Fact Tables with Direct Relationships:
526
+ - Many-to-many between facts
527
+ - Complex filter propagation
528
+ - Difficult to maintain consistency
529
+ - Better to use shared dimensions
530
+ ```
531
+
532
+ ### 2. Relationship Anti-Patterns
533
+ ```
534
+ ❌ Bidirectional Relationships Everywhere:
535
+ - Performance impact
536
+ - Unpredictable filter behavior
537
+ - Maintenance complexity
538
+ - Should be exception, not rule
539
+
540
+ ❌ Many-to-Many Without Business Justification:
541
+ - Often indicates missing dimension
542
+ - Can hide data quality issues
543
+ - Complex debugging and maintenance
544
+ - Bridge tables usually better solution
545
+
546
+ ❌ Circular Relationships:
547
+ - Ambiguous filter paths
548
+ - Unpredictable results
549
+ - Difficult debugging
550
+ - Always avoid through proper design
551
+ ```
552
+
553
+ ## Advanced Data Modeling Patterns
554
+
555
+ ### 1. Slowly Changing Dimensions Implementation
556
+ ```powerquery
557
+ // Type 1 SCD: Power Query implementation for hash-based change detection
558
+ let
559
+ Source = Source,
560
+
561
+ #"Added custom" = Table.TransformColumnTypes(
562
+ Table.AddColumn(Source, "Hash", each Binary.ToText(
563
+ Text.ToBinary(
564
+ Text.Combine(
565
+ List.Transform({[FirstName],[LastName],[Region]}, each if _ = null then "" else _),
566
+ "|")),
567
+ BinaryEncoding.Hex)
568
+ ),
569
+ {{"Hash", type text}}
570
+ ),
571
+
572
+ #"Marked key columns" = Table.AddKey(#"Added custom", {"Hash"}, false),
573
+
574
+ #"Merged queries" = Table.NestedJoin(
575
+ #"Marked key columns",
576
+ {"Hash"},
577
+ ExistingDimRecords,
578
+ {"Hash"},
579
+ "ExistingDimRecords",
580
+ JoinKind.LeftOuter
581
+ ),
582
+
583
+ #"Expanded ExistingDimRecords" = Table.ExpandTableColumn(
584
+ #"Merged queries",
585
+ "ExistingDimRecords",
586
+ {"Count"},
587
+ {"Count"}
588
+ ),
589
+
590
+ #"Filtered rows" = Table.SelectRows(#"Expanded ExistingDimRecords", each ([Count] = null)),
591
+
592
+ #"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"Count"})
593
+ in
594
+ #"Removed columns"
595
+ ```
596
+
597
+ ### 2. Incremental Refresh with Query Folding
598
+ ```powerquery
599
+ // Optimized incremental refresh pattern
600
+ let
601
+ Source = Sql.Database("server","database"),
602
+ Data = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
603
+ FilteredByStart = Table.SelectRows(Data, each [OrderDateKey] >= Int32.From(DateTime.ToText(RangeStart,[Format="yyyyMMdd"]))),
604
+ FilteredByEnd = Table.SelectRows(FilteredByStart, each [OrderDateKey] < Int32.From(DateTime.ToText(RangeEnd,[Format="yyyyMMdd"])))
605
+ in
606
+ FilteredByEnd
607
+ ```
608
+
609
+ ### 3. Semantic Link Integration
610
+ ```python
611
+ # Working with Power BI semantic models in Python
612
+ import sempy.fabric as fabric
613
+ from sempy.relationships import plot_relationship_metadata
614
+
615
+ relationships = fabric.list_relationships("my_dataset")
616
+ plot_relationship_metadata(relationships)
617
+ ```
618
+
619
+ ### 4. Advanced Partition Strategies
620
+ ```json
621
+ // TMSL partition with time-based filtering
622
+ "partition": {
623
+ "name": "Sales2019",
624
+ "mode": "import",
625
+ "source": {
626
+ "type": "m",
627
+ "expression": [
628
+ "let",
629
+ " Source = SqlDatabase,",
630
+ " dbo_Sales = Source{[Schema=\"dbo\",Item=\"Sales\"]}[Data],",
631
+ " FilteredRows = Table.SelectRows(dbo_Sales, each [OrderDateKey] >= 20190101 and [OrderDateKey] <= 20191231)",
632
+ "in",
633
+ " FilteredRows"
634
+ ]
635
+ }
636
+ }
637
+ ```
638
+
639
+ Remember: Always validate your model design with business users and test with realistic data volumes and usage patterns. Use Power BI's built-in tools like Performance Analyzer and DAX Studio for optimization and debugging.