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,827 @@
1
+ ---
2
+ description: 'Comprehensive guide for working with Power Apps Canvas Apps YAML structure based on Microsoft Power Apps YAML schema v3.0. Covers Power Fx formulas, control structures, data types, and source control best practices.'
3
+ applyTo: '**/*.{yaml,yml,md,pa.yaml}'
4
+ ---
5
+
6
+ # Power Apps Canvas Apps YAML Structure Guide
7
+
8
+ ## Overview
9
+ This document provides comprehensive instructions for working with YAML code for Power Apps canvas apps based on the official Microsoft Power Apps YAML schema (v3.0) and Power Fx documentation.
10
+
11
+ **Official Schema Source**: https://raw.githubusercontent.com/microsoft/PowerApps-Tooling/refs/heads/master/schemas/pa-yaml/v3.0/pa.schema.yaml
12
+
13
+ ## Power Fx Design Principles
14
+ Power Fx is the formula language used throughout Power Apps canvas apps. It follows these core principles:
15
+
16
+ ### Design Principles
17
+ - **Simple**: Uses familiar concepts from Excel formulas
18
+ - **Excel Consistency**: Aligns with Excel formula syntax and behavior
19
+ - **Declarative**: Describes what you want, not how to achieve it
20
+ - **Functional**: Avoids side effects; most functions are pure
21
+ - **Composition**: Complex logic built by combining simpler functions
22
+ - **Strongly Typed**: Type system ensures data integrity
23
+ - **Integrated**: Works seamlessly across the Power Platform
24
+
25
+ ### Language Philosophy
26
+ Power Fx promotes:
27
+ - Low-code development through familiar Excel-like formulas
28
+ - Automatic recalculation when dependencies change
29
+ - Type safety with compile-time checking
30
+ - Functional programming patterns
31
+
32
+ ## Root Structure
33
+ Every Power Apps YAML file follows this top-level structure:
34
+
35
+ ```yaml
36
+ App:
37
+ Properties:
38
+ # App-level properties and formulas
39
+ StartScreen: =Screen1
40
+
41
+ Screens:
42
+ # Screen definitions
43
+
44
+ ComponentDefinitions:
45
+ # Custom component definitions
46
+
47
+ DataSources:
48
+ # Data source configurations
49
+
50
+ EditorState:
51
+ # Editor metadata (screen order, etc.)
52
+ ```
53
+
54
+ ## 1. App Section
55
+ The `App` section defines application-level properties and configuration.
56
+
57
+ ```yaml
58
+ App:
59
+ Properties:
60
+ StartScreen: =Screen1
61
+ BackEnabled: =false
62
+ # Other app properties with Power Fx formulas
63
+ ```
64
+
65
+ ### Key Points:
66
+ - Contains application-wide settings
67
+ - Properties use Power Fx formulas (prefixed with `=`)
68
+ - `StartScreen` property is commonly specified
69
+
70
+ ## 2. Screens Section
71
+ Defines all screens in the application as an unordered map.
72
+
73
+ ```yaml
74
+ Screens:
75
+ Screen1:
76
+ Properties:
77
+ # Screen properties
78
+ Children:
79
+ - Label1:
80
+ Control: Label
81
+ Properties:
82
+ Text: ="Hello World"
83
+ X: =10
84
+ Y: =10
85
+ - Button1:
86
+ Control: Button
87
+ Properties:
88
+ Text: ="Click Me"
89
+ X: =10
90
+ Y: =100
91
+ ```
92
+
93
+ ### Screen Structure:
94
+ - **Properties**: Screen-level properties and formulas
95
+ - **Children**: Array of controls on the screen (ordered by z-index)
96
+
97
+ ### Control Definition Format:
98
+ ```yaml
99
+ ControlName:
100
+ Control: ControlType # Required: Control type identifier
101
+ Properties:
102
+ PropertyName: =PowerFxFormula
103
+ # Optional properties:
104
+ Group: GroupName # For organizing controls in Studio
105
+ Variant: VariantName # Control variant (affects default properties)
106
+ MetadataKey: Key # Metadata identifier for control
107
+ Layout: LayoutName # Layout configuration
108
+ IsLocked: true/false # Whether control is locked in editor
109
+ Children: [] # For container controls (ordered by z-index)
110
+ ```
111
+
112
+ ### Control Versioning:
113
+ You can specify control versions using the `@` operator:
114
+ ```yaml
115
+ MyButton:
116
+ Control: Button@2.1.0 # Specific version
117
+ Properties:
118
+ Text: ="Click Me"
119
+
120
+ MyLabel:
121
+ Control: Label # Uses latest version by default
122
+ Properties:
123
+ Text: ="Hello World"
124
+ ```
125
+
126
+ ## 3. Control Types
127
+
128
+ ### Standard Controls
129
+ Common first-party controls include:
130
+ - **Basic Controls**: `Label`, `Button`, `TextInput`, `HTMLText`
131
+ - **Input Controls**: `Slider`, `Toggle`, `Checkbox`, `Radio`, `Dropdown`, `Combobox`, `DatePicker`, `ListBox`
132
+ - **Display Controls**: `Image`, `Icon`, `Video`, `Audio`, `PDF viewer`, `Barcode scanner`
133
+ - **Layout Controls**: `Container`, `Rectangle`, `Circle`, `Gallery`, `DataTable`, `Form`
134
+ - **Chart Controls**: `Column chart`, `Line chart`, `Pie chart`
135
+ - **Advanced Controls**: `Timer`, `Camera`, `Microphone`, `Add picture`, `Import`, `Export`
136
+
137
+ ### Container and Layout Controls
138
+ Special attention for container controls and their children:
139
+ ```yaml
140
+ MyContainer:
141
+ Control: Container
142
+ Properties:
143
+ Width: =300
144
+ Height: =200
145
+ Fill: =RGBA(240, 240, 240, 1)
146
+ Children:
147
+ - Label1:
148
+ Control: Label
149
+ Properties:
150
+ Text: ="Inside Container"
151
+ X: =10 # Relative to container
152
+ Y: =10 # Relative to container
153
+ - Button1:
154
+ Control: Button
155
+ Properties:
156
+ Text: ="Container Button"
157
+ X: =10
158
+ Y: =50
159
+ ```
160
+
161
+ ### Custom Components
162
+ ```yaml
163
+ MyCustomControl:
164
+ Control: Component
165
+ ComponentName: MyComponent
166
+ Properties:
167
+ X: =10
168
+ Y: =10
169
+ # Custom component properties
170
+ ```
171
+
172
+ ### Code Components (PCF)
173
+ ```yaml
174
+ MyPCFControl:
175
+ Control: CodeComponent
176
+ ComponentName: publisherprefix_namespace.classname
177
+ Properties:
178
+ X: =10
179
+ Y: =10
180
+ ```
181
+
182
+ ## 4. Component Definitions
183
+ Define reusable custom components:
184
+
185
+ ```yaml
186
+ ComponentDefinitions:
187
+ MyComponent:
188
+ DefinitionType: CanvasComponent
189
+ Description: "A reusable component"
190
+ AllowCustomization: true
191
+ AccessAppScope: false
192
+ CustomProperties:
193
+ InputText:
194
+ PropertyKind: Input
195
+ DataType: Text
196
+ Description: "Input text property"
197
+ Default: ="Default Value"
198
+ OutputValue:
199
+ PropertyKind: Output
200
+ DataType: Number
201
+ Description: "Output number value"
202
+ Properties:
203
+ Fill: =RGBA(255, 255, 255, 1)
204
+ Height: =100
205
+ Width: =200
206
+ Children:
207
+ - Label1:
208
+ Control: Label
209
+ Properties:
210
+ Text: =Parent.InputText
211
+ ```
212
+
213
+ ### Custom Property Types:
214
+ - **Input**: Receives values from parent
215
+ - **Output**: Sends values to parent
216
+ - **InputFunction**: Function called by parent
217
+ - **OutputFunction**: Function defined in component
218
+ - **Event**: Triggers events to parent
219
+ - **Action**: Function with side effects
220
+
221
+ ### Data Types:
222
+ - `Text`, `Number`, `Boolean`
223
+ - `DateAndTime`, `Color`, `Currency`
224
+ - `Record`, `Table`, `Image`
225
+ - `VideoOrAudio`, `Screen`
226
+
227
+ ## 5. Data Sources
228
+ Configure data connections:
229
+
230
+ ```yaml
231
+ DataSources:
232
+ MyTable:
233
+ Type: Table
234
+ Parameters:
235
+ TableLogicalName: account
236
+
237
+ MyActions:
238
+ Type: Actions
239
+ ConnectorId: shared_office365users
240
+ Parameters:
241
+ # Additional connector parameters
242
+ ```
243
+
244
+ ### Data Source Types:
245
+ - **Table**: Dataverse tables or other tabular data
246
+ - **Actions**: Connector actions and flows
247
+
248
+ ## 6. Editor State
249
+ Maintains editor organization:
250
+
251
+ ```yaml
252
+ EditorState:
253
+ ScreensOrder:
254
+ - Screen1
255
+ - Screen2
256
+ - Screen3
257
+ ComponentDefinitionsOrder:
258
+ - MyComponent
259
+ - AnotherComponent
260
+ ```
261
+
262
+ ## Power Fx Formula Guidelines
263
+
264
+ ### Formula Syntax:
265
+ - All formulas must start with `=`
266
+ - Use Power Fx syntax for expressions
267
+ - Null values can be represented as `null` (without quotes)
268
+ - Examples:
269
+ ```yaml
270
+ Text: ="Hello World"
271
+ X: =10
272
+ Visible: =Toggle1.Value
273
+ OnSelect: =Navigate(Screen2, ScreenTransition.Fade)
274
+ OptionalProperty: null # Represents no value
275
+ ```
276
+
277
+ ### Common Formula Patterns:
278
+ ```yaml
279
+ # Static values
280
+ Text: ="Static Text"
281
+ X: =50
282
+ Visible: =true
283
+
284
+ # Control references
285
+ Text: =TextInput1.Text
286
+ Visible: =Toggle1.Value
287
+
288
+ # Parent references (for controls in containers/galleries)
289
+ Width: =Parent.Width - 20
290
+ Height: =Parent.TemplateHeight # In gallery templates
291
+
292
+ # Functions
293
+ OnSelect: =Navigate(NextScreen, ScreenTransition.Slide)
294
+ Text: =Concatenate("Hello ", User().FullName)
295
+
296
+ # Conditional logic
297
+ Visible: =If(Toggle1.Value, true, false)
298
+ Fill: =If(Button1.Pressed, RGBA(255,0,0,1), RGBA(0,255,0,1))
299
+
300
+ # Data operations
301
+ Items: =Filter(DataSource, Status = "Active")
302
+ Text: =LookUp(Users, ID = 123).Name
303
+ ```
304
+
305
+ ### Z-Index and Control Ordering:
306
+ - Controls in the `Children` array are ordered by z-index
307
+ - First control in array = bottom layer (z-index 1)
308
+ - Last control in array = top layer (highest z-index)
309
+ - All controls use ascending order starting from 1
310
+
311
+ ## Naming Conventions
312
+
313
+ ### Entity Names:
314
+ - Screen names: Descriptive and unique
315
+ - Control names: TypeName + Number (e.g., `Button1`, `Label2`)
316
+ - Component names: PascalCase
317
+
318
+ ### Property Names:
319
+ - Standard properties: Use exact casing from schema
320
+ - Custom properties: PascalCase recommended
321
+
322
+ ## Best Practices
323
+
324
+ ### 1. Structure Organization:
325
+ - Keep screens logically organized
326
+ - Group related controls using the `Group` property
327
+ - Use meaningful names for all entities
328
+
329
+ ### 2. Formula Writing:
330
+ - Keep formulas readable and well-formatted
331
+ - Use comments in complex formulas when possible
332
+ - Avoid overly complex nested expressions
333
+
334
+ ### 3. Component Design:
335
+ - Design components to be reusable
336
+ - Provide clear descriptions for custom properties
337
+ - Use appropriate property kinds (Input/Output)
338
+
339
+ ### 4. Data Source Management:
340
+ - Use descriptive names for data sources
341
+ - Document connection requirements
342
+ - Keep data source configurations minimal
343
+
344
+ ## Validation Rules
345
+
346
+ ### Required Properties:
347
+ - All controls must have a `Control` property
348
+ - Component definitions must have `DefinitionType`
349
+ - Data sources must have `Type`
350
+
351
+ ### Naming Patterns:
352
+ - Entity names: Minimum 1 character, alphanumeric
353
+ - Control type IDs: Follow pattern `^([A-Z][a-zA-Z0-9]*/)?[A-Z][a-zA-Z0-9]*(@\d+\.\d+\.\d+)?$`
354
+ - Code component names: Follow pattern `^([a-z][a-z0-9]{1,7})_([a-zA-Z0-9]\.)+[a-zA-Z0-9]+$`
355
+
356
+ ## Common Issues and Solutions
357
+
358
+ ### 1. Invalid Control Types:
359
+ - Ensure control types are spelled correctly
360
+ - Check for proper casing
361
+ - Verify control type is supported in schema
362
+
363
+ ### 2. Formula Errors:
364
+ - All formulas must start with `=`
365
+ - Use proper Power Fx syntax
366
+ - Check for correct property references
367
+
368
+ ### 3. Structure Validation:
369
+ - Maintain proper YAML indentation
370
+ - Ensure required properties are present
371
+ - Follow the schema structure exactly
372
+
373
+ ### 4. Custom Component Issues:
374
+ - Verify `ComponentName` matches definition
375
+ - Ensure custom properties are properly defined
376
+ - Check property kinds are appropriate
377
+ - Validate component library references if using external components
378
+
379
+ ### 5. Performance Considerations:
380
+ - Avoid deeply nested formulas in YAML
381
+ - Use efficient data source queries
382
+ - Consider delegable formulas for large datasets
383
+ - Minimize complex calculations in frequently updated properties
384
+
385
+ ## Advanced Topics
386
+
387
+ ### 1. Component Library Integration:
388
+ ```yaml
389
+ ComponentDefinitions:
390
+ MyLibraryComponent:
391
+ DefinitionType: CanvasComponent
392
+ AllowCustomization: true
393
+ ComponentLibraryUniqueName: "pub_MyComponentLibrary"
394
+ # Component definition details
395
+ ```
396
+
397
+ ### 2. Responsive Design Considerations:
398
+ - Use `Parent.Width` and `Parent.Height` for responsive sizing
399
+ - Consider container-based layouts for complex UIs
400
+ - Use formulas for dynamic positioning and sizing
401
+
402
+ ### 3. Gallery Templates:
403
+ ```yaml
404
+ MyGallery:
405
+ Control: Gallery
406
+ Properties:
407
+ Items: =DataSource
408
+ TemplateSize: =100
409
+ Children:
410
+ - GalleryTemplate: # Template for each gallery item
411
+ Children:
412
+ - TitleLabel:
413
+ Control: Label
414
+ Properties:
415
+ Text: =ThisItem.Title
416
+ Width: =Parent.TemplateWidth - 20
417
+ ```
418
+
419
+ ### 4. Form Controls and Data Cards:
420
+ ```yaml
421
+ MyForm:
422
+ Control: Form
423
+ Properties:
424
+ DataSource: =DataSource
425
+ DefaultMode: =FormMode.New
426
+ Children:
427
+ - DataCard1:
428
+ Control: DataCard
429
+ Properties:
430
+ DataField: ="Title"
431
+ Children:
432
+ - DataCardValue1:
433
+ Control: TextInput
434
+ Properties:
435
+ Default: =Parent.Default
436
+ ```
437
+
438
+ ### 5. Error Handling in Formulas:
439
+ ```yaml
440
+ Properties:
441
+ Text: =IfError(LookUp(DataSource, ID = 123).Name, "Not Found")
442
+ Visible: =!IsError(DataSource)
443
+ OnSelect: =IfError(
444
+ Navigate(DetailScreen, ScreenTransition.Cover),
445
+ Notify("Navigation failed", NotificationType.Error)
446
+ )
447
+ ```
448
+
449
+ ## Power Apps Source Code Management
450
+
451
+ ### Accessing Source Code Files:
452
+ Power Apps YAML files can be obtained through several methods:
453
+
454
+ 1. **Power Platform CLI**:
455
+ ```powershell
456
+ # List canvas apps in environment
457
+ pac canvas list
458
+
459
+ # Download and extract YAML files
460
+ pac canvas download --name "MyApp" --extract-to-directory "C:\path\to\destination"
461
+ ```
462
+
463
+ 2. **Manual Extraction from .msapp**:
464
+ ```powershell
465
+ # Extract .msapp file using PowerShell
466
+ Expand-Archive -Path "C:\path\to\yourFile.msapp" -DestinationPath "C:\path\to\destination"
467
+ ```
468
+
469
+ 3. **Dataverse Git Integration**: Direct access to source files without .msapp files
470
+
471
+ ### File Structure in .msapp:
472
+ - `\src\App.pa.yaml` - Represents the main App configuration
473
+ - `\src\[ScreenName].pa.yaml` - One file for each screen
474
+ - `\src\Component\[ComponentName].pa.yaml` - Component definitions
475
+
476
+ **Important Notes**:
477
+ - Only files in the `\src` folder are intended for source control
478
+ - .pa.yaml files are **read-only** and for review purposes only
479
+ - External editing, merging, and conflict resolution isn't supported
480
+ - JSON files in .msapp aren't stable for source control
481
+
482
+ ### Schema Version Evolution:
483
+ 1. **Experimental Format** (*.fx.yaml): No longer in development
484
+ 2. **Early Preview**: Temporary format, no longer in use
485
+ 3. **Source Code** (*.pa.yaml): Current active format with version control support
486
+
487
+ ## Power Fx Formula Reference
488
+
489
+ ### Formula Categories:
490
+
491
+ #### **Functions**: Take parameters, perform operations, return values
492
+ ```yaml
493
+ Properties:
494
+ Text: =Concatenate("Hello ", User().FullName)
495
+ X: =Sum(10, 20, 30)
496
+ Items: =Filter(DataSource, Status = "Active")
497
+ ```
498
+
499
+ #### **Signals**: Return environment information (no parameters)
500
+ ```yaml
501
+ Properties:
502
+ Text: =Location.Latitude & ", " & Location.Longitude
503
+ Visible: =Connection.Connected
504
+ Color: =If(Acceleration.X > 5, Color.Red, Color.Blue)
505
+ ```
506
+
507
+ #### **Enumerations**: Predefined constant values
508
+ ```yaml
509
+ Properties:
510
+ Fill: =Color.Blue
511
+ Transition: =ScreenTransition.Fade
512
+ Align: =Align.Center
513
+ ```
514
+
515
+ #### **Named Operators**: Access container information
516
+ ```yaml
517
+ Properties:
518
+ Text: =ThisItem.Title # In galleries
519
+ Width: =Parent.Width - 20 # In containers
520
+ Height: =Self.Height / 2 # Self-reference
521
+ ```
522
+
523
+ ### Essential Power Fx Functions for YAML:
524
+
525
+ #### **Navigation & App Control**:
526
+ ```yaml
527
+ OnSelect: =Navigate(NextScreen, ScreenTransition.Cover)
528
+ OnSelect: =Back()
529
+ OnSelect: =Exit()
530
+ OnSelect: =Launch("https://example.com")
531
+ ```
532
+
533
+ #### **Data Operations**:
534
+ ```yaml
535
+ Items: =Filter(DataSource, Category = "Active")
536
+ Text: =LookUp(Users, ID = 123).Name
537
+ OnSelect: =Patch(DataSource, ThisItem, {Status: "Complete"})
538
+ OnSelect: =Collect(LocalCollection, {Name: TextInput1.Text})
539
+ ```
540
+
541
+ #### **Conditional Logic**:
542
+ ```yaml
543
+ Visible: =If(Toggle1.Value, true, false)
544
+ Text: =Switch(Status, "New", "🆕", "Complete", "✅", "❓")
545
+ Fill: =If(Value < 0, Color.Red, Color.Green)
546
+ ```
547
+
548
+ #### **Text Manipulation**:
549
+ ```yaml
550
+ Text: =Concatenate("Hello ", User().FullName)
551
+ Text: =Upper(TextInput1.Text)
552
+ Text: =Substitute(Label1.Text, "old", "new")
553
+ Text: =Left(Title, 10) & "..."
554
+ ```
555
+
556
+ #### **Mathematical Operations**:
557
+ ```yaml
558
+ Text: =Sum(Sales[Amount])
559
+ Text: =Average(Ratings[Score])
560
+ Text: =Round(Calculation, 2)
561
+ Text: =Max(Values[Number])
562
+ ```
563
+
564
+ #### **Date & Time Functions**:
565
+ ```yaml
566
+ Text: =Text(Now(), "mm/dd/yyyy")
567
+ Text: =DateDiff(StartDate, EndDate, Days)
568
+ Text: =Text(Today(), "dddd, mmmm dd, yyyy")
569
+ Visible: =IsToday(DueDate)
570
+ ```
571
+
572
+ ### Formula Syntax Guidelines:
573
+
574
+ #### **Basic Syntax Rules**:
575
+ - All formulas start with `=`
576
+ - No preceding `+` or `=` sign (unlike Excel)
577
+ - Double quotes for text strings: `="Hello World"`
578
+ - Property references: `ControlName.PropertyName`
579
+ - Comments not supported in YAML context
580
+
581
+ #### **Formula Elements**:
582
+ ```yaml
583
+ # Literal values
584
+ Text: ="Static Text"
585
+ X: =42
586
+ Visible: =true
587
+
588
+ # Control property references
589
+ Text: =TextInput1.Text
590
+ Visible: =Checkbox1.Value
591
+
592
+ # Function calls
593
+ Text: =Upper(TextInput1.Text)
594
+ Items: =Sort(DataSource, Title)
595
+
596
+ # Complex expressions
597
+ Text: =If(IsBlank(TextInput1.Text), "Enter text", Upper(TextInput1.Text))
598
+ ```
599
+
600
+ #### **Behavior vs. Property Formulas**:
601
+ ```yaml
602
+ # Property formulas (calculate values)
603
+ Properties:
604
+ Text: =Concatenate("Hello ", User().FullName)
605
+ Visible: =Toggle1.Value
606
+
607
+ # Behavior formulas (perform actions - use semicolon for multiple actions)
608
+ Properties:
609
+ OnSelect: =Set(MyVar, true); Navigate(NextScreen); Notify("Done!")
610
+ ```
611
+
612
+ ### Advanced Formula Patterns:
613
+
614
+ #### **Working with Collections**:
615
+ ```yaml
616
+ Properties:
617
+ Items: =Filter(MyCollection, Status = "Active")
618
+ OnSelect: =ClearCollect(MyCollection, DataSource)
619
+ OnSelect: =Collect(MyCollection, {Name: "New Item", Status: "Active"})
620
+ ```
621
+
622
+ #### **Error Handling**:
623
+ ```yaml
624
+ Properties:
625
+ Text: =IfError(Value(TextInput1.Text), 0)
626
+ OnSelect: =IfError(
627
+ Patch(DataSource, ThisItem, {Field: Value}),
628
+ Notify("Error updating record", NotificationType.Error)
629
+ )
630
+ ```
631
+
632
+ #### **Dynamic Property Setting**:
633
+ ```yaml
634
+ Properties:
635
+ Fill: =ColorValue("#" & HexInput.Text)
636
+ Height: =Parent.Height * (Slider1.Value / 100)
637
+ X: =If(Alignment = "Center", (Parent.Width - Self.Width) / 2, 0)
638
+ ```
639
+
640
+ ## Working with Formulas Best Practices
641
+
642
+ ### Formula Organization:
643
+ - Break complex formulas into smaller, readable parts
644
+ - Use variables to store intermediate calculations
645
+ - Comment complex logic using descriptive control names
646
+ - Group related calculations together
647
+
648
+ ### Performance Optimization:
649
+ - Use delegation-friendly functions when working with large datasets
650
+ - Avoid nested function calls in frequently updated properties
651
+ - Use collections for complex data transformations
652
+ - Minimize calls to external data sources
653
+
654
+ ## Power Fx Data Types and Operations
655
+
656
+ ### Data Type Categories:
657
+
658
+ #### **Primitive Types**:
659
+ - **Boolean**: `=true`, `=false`
660
+ - **Number**: `=123`, `=45.67`
661
+ - **Text**: `="Hello World"`
662
+ - **Date**: `=Date(2024, 12, 25)`
663
+ - **Time**: `=Time(14, 30, 0)`
664
+ - **DateTime**: `=Now()`
665
+
666
+ #### **Complex Types**:
667
+ - **Color**: `=Color.Red`, `=RGBA(255, 128, 0, 1)`
668
+ - **Record**: `={Name: "John", Age: 30}`
669
+ - **Table**: `=Table({Name: "John"}, {Name: "Jane"})`
670
+ - **GUID**: `=GUID()`
671
+
672
+ #### **Type Conversion**:
673
+ ```yaml
674
+ Properties:
675
+ Text: =Text(123.45, "#,##0.00") # Number to text
676
+ Text: =Value("123.45") # Text to number
677
+ Text: =DateValue("12/25/2024") # Text to date
678
+ Visible: =Boolean("true") # Text to boolean
679
+ ```
680
+
681
+ #### **Type Checking**:
682
+ ```yaml
683
+ Properties:
684
+ Visible: =Not(IsBlank(OptionalField))
685
+ Visible: =Not(IsError(Value(TextInput1.Text)))
686
+ Visible: =IsNumeric(TextInput1.Text)
687
+ ```
688
+
689
+ ### Table Operations:
690
+
691
+ #### **Creating Tables**:
692
+ ```yaml
693
+ Properties:
694
+ Items: =Table(
695
+ {Name: "Product A", Price: 10.99},
696
+ {Name: "Product B", Price: 15.99}
697
+ )
698
+ Items: =["Option 1", "Option 2", "Option 3"] # Single-column table
699
+ ```
700
+
701
+ #### **Filtering and Sorting**:
702
+ ```yaml
703
+ Properties:
704
+ Items: =Filter(Products, Price > 10)
705
+ Items: =Sort(Products, Name, Ascending)
706
+ Items: =SortByColumns(Products, "Price", Descending, "Name", Ascending)
707
+ ```
708
+
709
+ #### **Data Transformation**:
710
+ ```yaml
711
+ Properties:
712
+ Items: =AddColumns(Products, "Total", Price * Quantity)
713
+ Items: =RenameColumns(Products, "Price", "Cost")
714
+ Items: =ShowColumns(Products, "Name", "Price")
715
+ Items: =DropColumns(Products, "InternalID")
716
+ ```
717
+
718
+ #### **Aggregation**:
719
+ ```yaml
720
+ Properties:
721
+ Text: =Sum(Products, Price)
722
+ Text: =Average(Products, Rating)
723
+ Text: =Max(Products, Price)
724
+ Text: =CountRows(Products)
725
+ ```
726
+
727
+ ### Variables and State Management:
728
+
729
+ #### **Global Variables**:
730
+ ```yaml
731
+ Properties:
732
+ OnSelect: =Set(MyGlobalVar, "Hello World")
733
+ Text: =MyGlobalVar
734
+ ```
735
+
736
+ #### **Context Variables**:
737
+ ```yaml
738
+ Properties:
739
+ OnSelect: =UpdateContext({LocalVar: "Screen Specific"})
740
+ OnSelect: =Navigate(NextScreen, None, {PassedValue: 42})
741
+ ```
742
+
743
+ #### **Collections**:
744
+ ```yaml
745
+ Properties:
746
+ OnSelect: =ClearCollect(MyCollection, DataSource)
747
+ OnSelect: =Collect(MyCollection, {Name: "New Item"})
748
+ Items: =MyCollection
749
+ ```
750
+
751
+ ## Power Fx Enhanced Connectors and External Data
752
+
753
+ ### Connector Integration:
754
+ ```yaml
755
+ DataSources:
756
+ SharePointList:
757
+ Type: Table
758
+ Parameters:
759
+ TableLogicalName: "Custom List"
760
+
761
+ Office365Users:
762
+ Type: Actions
763
+ ConnectorId: shared_office365users
764
+ ```
765
+
766
+ ### Working with External Data:
767
+ ```yaml
768
+ Properties:
769
+ Items: =Filter(SharePointList, Status = "Active")
770
+ OnSelect: =Office365Users.SearchUser({searchTerm: SearchInput.Text})
771
+ ```
772
+
773
+ ### Delegation Considerations:
774
+ ```yaml
775
+ Properties:
776
+ # Delegable operations (executed server-side)
777
+ Items: =Filter(LargeTable, Status = "Active") # Efficient
778
+
779
+ # Non-delegable operations (may download all records)
780
+ Items: =Filter(LargeTable, Len(Description) > 100) # Warning issued
781
+ ```
782
+
783
+ ## Troubleshooting and Common Patterns
784
+
785
+ ### Common Error Patterns:
786
+ ```yaml
787
+ # Handle blank values
788
+ Properties:
789
+ Text: =If(IsBlank(OptionalText), "Default", OptionalText)
790
+
791
+ # Handle errors gracefully
792
+ Properties:
793
+ Text: =IfError(RiskyOperation(), "Fallback Value")
794
+
795
+ # Validate input
796
+ Properties:
797
+ Visible: =And(
798
+ Not(IsBlank(NameInput.Text)),
799
+ IsNumeric(AgeInput.Text),
800
+ IsMatch(EmailInput.Text, Email)
801
+ )
802
+ ```
803
+
804
+ ### Performance Optimization:
805
+ ```yaml
806
+ # Efficient data loading
807
+ Properties:
808
+ Items: =Filter(LargeDataSource, Status = "Active") # Server-side filtering
809
+
810
+ # Use delegation-friendly operations
811
+ Properties:
812
+ Items: =Sort(Filter(DataSource, Active), Name) # Delegable
813
+ # Avoid: Sort(DataSource, If(Active, Name, "")) # Not delegable
814
+ ```
815
+
816
+ ### Memory Management:
817
+ ```yaml
818
+ # Clear unused collections
819
+ Properties:
820
+ OnSelect: =Clear(TempCollection)
821
+
822
+ # Limit data retrieval
823
+ Properties:
824
+ Items: =FirstN(Filter(DataSource, Status = "Active"), 50)
825
+ ```
826
+
827
+ Remember: This guide provides comprehensive coverage of Power Apps Canvas Apps YAML structure and Power Fx formulas. Always validate your YAML against the official schema and test formulas in the Power Apps Studio environment.