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,629 @@
1
+ ---
2
+ description: 'Best practices and patterns for building Model Context Protocol (MCP) servers in Ruby using the official MCP Ruby SDK gem.'
3
+ applyTo: "**/*.rb, **/Gemfile, **/*.gemspec, **/Rakefile"
4
+ ---
5
+
6
+ # Ruby MCP Server Development Guidelines
7
+
8
+ When building MCP servers in Ruby, follow these best practices and patterns using the official Ruby SDK.
9
+
10
+ ## Installation
11
+
12
+ Add the MCP gem to your Gemfile:
13
+
14
+ ```ruby
15
+ gem 'mcp'
16
+ ```
17
+
18
+ Then run:
19
+
20
+ ```bash
21
+ bundle install
22
+ ```
23
+
24
+ ## Server Setup
25
+
26
+ Create an MCP server instance:
27
+
28
+ ```ruby
29
+ require 'mcp'
30
+
31
+ server = MCP::Server.new(
32
+ name: 'my_server',
33
+ version: '1.0.0'
34
+ )
35
+ ```
36
+
37
+ ## Adding Tools
38
+
39
+ Define tools using classes or blocks:
40
+
41
+ ### Tool as Class
42
+
43
+ ```ruby
44
+ class GreetTool < MCP::Tool
45
+ tool_name 'greet'
46
+ description 'Generate a greeting message'
47
+
48
+ input_schema(
49
+ properties: {
50
+ name: { type: 'string', description: 'Name to greet' }
51
+ },
52
+ required: ['name']
53
+ )
54
+
55
+ output_schema(
56
+ properties: {
57
+ message: { type: 'string' },
58
+ timestamp: { type: 'string', format: 'date-time' }
59
+ },
60
+ required: ['message']
61
+ )
62
+
63
+ annotations(
64
+ read_only_hint: true,
65
+ idempotent_hint: true
66
+ )
67
+
68
+ def self.call(name:, server_context:)
69
+ MCP::Tool::Response.new([{
70
+ type: 'text',
71
+ text: "Hello, #{name}! Welcome to MCP."
72
+ }], structured_content: {
73
+ message: "Hello, #{name}!",
74
+ timestamp: Time.now.iso8601
75
+ })
76
+ end
77
+ end
78
+
79
+ server = MCP::Server.new(
80
+ name: 'my_server',
81
+ tools: [GreetTool]
82
+ )
83
+ ```
84
+
85
+ ### Tool with Block
86
+
87
+ ```ruby
88
+ server.define_tool(
89
+ name: 'calculate',
90
+ description: 'Perform mathematical calculations',
91
+ input_schema: {
92
+ properties: {
93
+ operation: { type: 'string', enum: ['add', 'subtract', 'multiply', 'divide'] },
94
+ a: { type: 'number' },
95
+ b: { type: 'number' }
96
+ },
97
+ required: ['operation', 'a', 'b']
98
+ },
99
+ annotations: {
100
+ read_only_hint: true,
101
+ idempotent_hint: true
102
+ }
103
+ ) do |args, server_context|
104
+ operation = args['operation']
105
+ a = args['a']
106
+ b = args['b']
107
+
108
+ result = case operation
109
+ when 'add' then a + b
110
+ when 'subtract' then a - b
111
+ when 'multiply' then a * b
112
+ when 'divide'
113
+ return MCP::Tool::Response.new([{ type: 'text', text: 'Division by zero' }], is_error: true) if b == 0
114
+ a / b
115
+ else
116
+ return MCP::Tool::Response.new([{ type: 'text', text: "Unknown operation: #{operation}" }], is_error: true)
117
+ end
118
+
119
+ MCP::Tool::Response.new([{ type: 'text', text: "Result: #{result}" }])
120
+ end
121
+ ```
122
+
123
+ ## Adding Resources
124
+
125
+ Define resources for data access:
126
+
127
+ ```ruby
128
+ # Register resources
129
+ resource = MCP::Resource.new(
130
+ uri: 'resource://data/example',
131
+ name: 'example-data',
132
+ description: 'Example resource data',
133
+ mime_type: 'application/json'
134
+ )
135
+
136
+ server = MCP::Server.new(
137
+ name: 'my_server',
138
+ resources: [resource]
139
+ )
140
+
141
+ # Define read handler
142
+ server.resources_read_handler do |params|
143
+ case params[:uri]
144
+ when 'resource://data/example'
145
+ [{
146
+ uri: params[:uri],
147
+ mimeType: 'application/json',
148
+ text: { message: 'Example data', timestamp: Time.now }.to_json
149
+ }]
150
+ else
151
+ raise "Unknown resource: #{params[:uri]}"
152
+ end
153
+ end
154
+ ```
155
+
156
+ ## Adding Prompts
157
+
158
+ Define prompt templates:
159
+
160
+ ### Prompt as Class
161
+
162
+ ```ruby
163
+ class CodeReviewPrompt < MCP::Prompt
164
+ prompt_name 'code_review'
165
+ description 'Generate a code review prompt'
166
+
167
+ arguments [
168
+ MCP::Prompt::Argument.new(
169
+ name: 'language',
170
+ description: 'Programming language',
171
+ required: true
172
+ ),
173
+ MCP::Prompt::Argument.new(
174
+ name: 'focus',
175
+ description: 'Review focus area',
176
+ required: false
177
+ )
178
+ ]
179
+
180
+ def self.template(args, server_context:)
181
+ language = args['language'] || 'Ruby'
182
+ focus = args['focus'] || 'general quality'
183
+
184
+ MCP::Prompt::Result.new(
185
+ description: "Code review for #{language} with focus on #{focus}",
186
+ messages: [
187
+ MCP::Prompt::Message.new(
188
+ role: 'user',
189
+ content: MCP::Content::Text.new("Please review this #{language} code with focus on #{focus}.")
190
+ ),
191
+ MCP::Prompt::Message.new(
192
+ role: 'assistant',
193
+ content: MCP::Content::Text.new("I'll review the code focusing on #{focus}. Please share the code.")
194
+ )
195
+ ]
196
+ )
197
+ end
198
+ end
199
+
200
+ server = MCP::Server.new(
201
+ name: 'my_server',
202
+ prompts: [CodeReviewPrompt]
203
+ )
204
+ ```
205
+
206
+ ### Prompt with Block
207
+
208
+ ```ruby
209
+ server.define_prompt(
210
+ name: 'analyze',
211
+ description: 'Analyze a topic',
212
+ arguments: [
213
+ MCP::Prompt::Argument.new(name: 'topic', description: 'Topic to analyze', required: true),
214
+ MCP::Prompt::Argument.new(name: 'depth', description: 'Analysis depth', required: false)
215
+ ]
216
+ ) do |args, server_context:|
217
+ topic = args['topic']
218
+ depth = args['depth'] || 'basic'
219
+
220
+ MCP::Prompt::Result.new(
221
+ description: "Analysis of #{topic} at #{depth} level",
222
+ messages: [
223
+ MCP::Prompt::Message.new(
224
+ role: 'user',
225
+ content: MCP::Content::Text.new("Please analyze: #{topic}")
226
+ ),
227
+ MCP::Prompt::Message.new(
228
+ role: 'assistant',
229
+ content: MCP::Content::Text.new("I'll provide a #{depth} analysis of #{topic}")
230
+ )
231
+ ]
232
+ )
233
+ end
234
+ ```
235
+
236
+ ## Transport Configuration
237
+
238
+ ### Stdio Transport
239
+
240
+ For local command-line applications:
241
+
242
+ ```ruby
243
+ require 'mcp'
244
+
245
+ server = MCP::Server.new(
246
+ name: 'my_server',
247
+ tools: [MyTool]
248
+ )
249
+
250
+ transport = MCP::Server::Transports::StdioTransport.new(server)
251
+ transport.open
252
+ ```
253
+
254
+ ### HTTP Transport (Rails)
255
+
256
+ For Rails applications:
257
+
258
+ ```ruby
259
+ class McpController < ApplicationController
260
+ def index
261
+ server = MCP::Server.new(
262
+ name: 'rails_server',
263
+ version: '1.0.0',
264
+ tools: [SomeTool],
265
+ prompts: [MyPrompt],
266
+ server_context: { user_id: current_user.id }
267
+ )
268
+
269
+ render json: server.handle_json(request.body.read)
270
+ end
271
+ end
272
+ ```
273
+
274
+ ### Streamable HTTP Transport
275
+
276
+ For Server-Sent Events:
277
+
278
+ ```ruby
279
+ server = MCP::Server.new(name: 'my_server')
280
+ transport = MCP::Server::Transports::StreamableHTTPTransport.new(server)
281
+ server.transport = transport
282
+
283
+ # When tools change, notify clients
284
+ server.define_tool(name: 'new_tool') { |**args| { result: 'ok' } }
285
+ server.notify_tools_list_changed
286
+ ```
287
+
288
+ ## Server Context
289
+
290
+ Pass contextual information to tools and prompts:
291
+
292
+ ```ruby
293
+ server = MCP::Server.new(
294
+ name: 'my_server',
295
+ tools: [AuthenticatedTool],
296
+ server_context: {
297
+ user_id: current_user.id,
298
+ request_id: request.uuid,
299
+ auth_token: session[:token]
300
+ }
301
+ )
302
+
303
+ class AuthenticatedTool < MCP::Tool
304
+ def self.call(query:, server_context:)
305
+ user_id = server_context[:user_id]
306
+ # Use user_id for authorization
307
+
308
+ MCP::Tool::Response.new([{ type: 'text', text: 'Authorized' }])
309
+ end
310
+ end
311
+ ```
312
+
313
+ ## Configuration
314
+
315
+ ### Exception Reporting
316
+
317
+ Configure exception reporting:
318
+
319
+ ```ruby
320
+ MCP.configure do |config|
321
+ config.exception_reporter = ->(exception, server_context) {
322
+ # Report to your error tracking service
323
+ Bugsnag.notify(exception) do |report|
324
+ report.add_metadata(:mcp, server_context)
325
+ end
326
+ }
327
+ end
328
+ ```
329
+
330
+ ### Instrumentation
331
+
332
+ Monitor MCP server performance:
333
+
334
+ ```ruby
335
+ MCP.configure do |config|
336
+ config.instrumentation_callback = ->(data) {
337
+ # Log instrumentation data
338
+ Rails.logger.info("MCP: #{data.inspect}")
339
+
340
+ # Or send to metrics service
341
+ StatsD.timing("mcp.#{data[:method]}.duration", data[:duration])
342
+ StatsD.increment("mcp.#{data[:method]}.count")
343
+ }
344
+ end
345
+ ```
346
+
347
+ The instrumentation data includes:
348
+ - `method`: Protocol method called (e.g., "tools/call")
349
+ - `tool_name`: Name of tool called
350
+ - `prompt_name`: Name of prompt called
351
+ - `resource_uri`: URI of resource called
352
+ - `error`: Error code if lookup failed
353
+ - `duration`: Duration in seconds
354
+
355
+ ### Protocol Version
356
+
357
+ Override the protocol version:
358
+
359
+ ```ruby
360
+ configuration = MCP::Configuration.new(protocol_version: '2025-06-18')
361
+ server = MCP::Server.new(name: 'my_server', configuration: configuration)
362
+ ```
363
+
364
+ ## Tool Annotations
365
+
366
+ Provide metadata about tool behavior:
367
+
368
+ ```ruby
369
+ class DataTool < MCP::Tool
370
+ annotations(
371
+ read_only_hint: true, # Tool only reads data
372
+ destructive_hint: false, # Tool doesn't destroy data
373
+ idempotent_hint: true, # Same input = same output
374
+ open_world_hint: false # Tool operates in closed context
375
+ )
376
+
377
+ def self.call(**args, server_context:)
378
+ # Implementation
379
+ end
380
+ end
381
+ ```
382
+
383
+ ## Tool Output Schemas
384
+
385
+ Define expected output structure:
386
+
387
+ ```ruby
388
+ class WeatherTool < MCP::Tool
389
+ output_schema(
390
+ properties: {
391
+ temperature: { type: 'number' },
392
+ condition: { type: 'string' },
393
+ humidity: { type: 'integer' }
394
+ },
395
+ required: ['temperature', 'condition']
396
+ )
397
+
398
+ def self.call(location:, server_context:)
399
+ weather_data = {
400
+ temperature: 72.5,
401
+ condition: 'sunny',
402
+ humidity: 45
403
+ }
404
+
405
+ # Validate against schema
406
+ output_schema.validate_result(weather_data)
407
+
408
+ MCP::Tool::Response.new(
409
+ [{ type: 'text', text: weather_data.to_json }],
410
+ structured_content: weather_data
411
+ )
412
+ end
413
+ end
414
+ ```
415
+
416
+ ## Structured Content in Responses
417
+
418
+ Return structured data with text:
419
+
420
+ ```ruby
421
+ class APITool < MCP::Tool
422
+ def self.call(endpoint:, server_context:)
423
+ api_data = call_api(endpoint)
424
+
425
+ MCP::Tool::Response.new(
426
+ [{ type: 'text', text: api_data.to_json }],
427
+ structured_content: api_data
428
+ )
429
+ end
430
+ end
431
+ ```
432
+
433
+ ## Custom Methods
434
+
435
+ Define custom JSON-RPC methods:
436
+
437
+ ```ruby
438
+ server = MCP::Server.new(name: 'my_server')
439
+
440
+ # Custom method with result
441
+ server.define_custom_method(method_name: 'add') do |params|
442
+ params[:a] + params[:b]
443
+ end
444
+
445
+ # Custom notification (returns nil)
446
+ server.define_custom_method(method_name: 'notify') do |params|
447
+ puts "Notification: #{params[:message]}"
448
+ nil
449
+ end
450
+ ```
451
+
452
+ ## Notifications
453
+
454
+ Send list change notifications:
455
+
456
+ ```ruby
457
+ server = MCP::Server.new(name: 'my_server')
458
+ transport = MCP::Server::Transports::StreamableHTTPTransport.new(server)
459
+ server.transport = transport
460
+
461
+ # Notify when tools change
462
+ server.define_tool(name: 'new_tool') { |**args| { result: 'ok' } }
463
+ server.notify_tools_list_changed
464
+
465
+ # Notify when prompts change
466
+ server.define_prompt(name: 'new_prompt') { |args, **_| MCP::Prompt::Result.new(...) }
467
+ server.notify_prompts_list_changed
468
+
469
+ # Notify when resources change
470
+ server.notify_resources_list_changed
471
+ ```
472
+
473
+ ## Resource Templates
474
+
475
+ Define dynamic resources with URI templates:
476
+
477
+ ```ruby
478
+ resource_template = MCP::ResourceTemplate.new(
479
+ uri_template: 'users://{user_id}/profile',
480
+ name: 'user-profile',
481
+ description: 'User profile data',
482
+ mime_type: 'application/json'
483
+ )
484
+
485
+ server = MCP::Server.new(
486
+ name: 'my_server',
487
+ resource_templates: [resource_template]
488
+ )
489
+ ```
490
+
491
+ ## Error Handling
492
+
493
+ Handle errors properly in tools:
494
+
495
+ ```ruby
496
+ class RiskyTool < MCP::Tool
497
+ def self.call(data:, server_context:)
498
+ begin
499
+ result = risky_operation(data)
500
+ MCP::Tool::Response.new([{ type: 'text', text: result }])
501
+ rescue ValidationError => e
502
+ MCP::Tool::Response.new(
503
+ [{ type: 'text', text: "Invalid input: #{e.message}" }],
504
+ is_error: true
505
+ )
506
+ rescue => e
507
+ # Will be caught and reported by exception_reporter
508
+ raise
509
+ end
510
+ end
511
+ end
512
+ ```
513
+
514
+ ## Testing
515
+
516
+ Write tests for your MCP server:
517
+
518
+ ```ruby
519
+ require 'minitest/autorun'
520
+ require 'mcp'
521
+
522
+ class MyToolTest < Minitest::Test
523
+ def test_greet_tool
524
+ response = GreetTool.call(name: 'Ruby', server_context: {})
525
+
526
+ assert_equal 1, response.content.length
527
+ assert_match(/Ruby/, response.content.first[:text])
528
+ refute response.is_error
529
+ end
530
+
531
+ def test_invalid_input
532
+ response = CalculateTool.call(operation: 'divide', a: 10, b: 0, server_context: {})
533
+
534
+ assert response.is_error
535
+ end
536
+ end
537
+ ```
538
+
539
+ ## Client Usage
540
+
541
+ Build MCP clients to connect to servers:
542
+
543
+ ```ruby
544
+ require 'mcp'
545
+ require 'faraday'
546
+
547
+ # HTTP transport
548
+ http_transport = MCP::Client::HTTP.new(
549
+ url: 'https://api.example.com/mcp',
550
+ headers: { 'Authorization' => "Bearer #{token}" }
551
+ )
552
+
553
+ client = MCP::Client.new(transport: http_transport)
554
+
555
+ # List tools
556
+ tools = client.tools
557
+ tools.each do |tool|
558
+ puts "Tool: #{tool.name}"
559
+ puts "Description: #{tool.description}"
560
+ end
561
+
562
+ # Call a tool
563
+ response = client.call_tool(
564
+ tool: tools.first,
565
+ arguments: { message: 'Hello, world!' }
566
+ )
567
+ ```
568
+
569
+ ## Best Practices
570
+
571
+ 1. **Use classes for complex tools** - Better organization and testability
572
+ 2. **Define input/output schemas** - Ensure type safety and validation
573
+ 3. **Add annotations** - Help clients understand tool behavior
574
+ 4. **Include structured content** - Provide both text and structured data
575
+ 5. **Use server_context** - Pass authentication and request context
576
+ 6. **Configure exception reporting** - Monitor errors in production
577
+ 7. **Implement instrumentation** - Track performance metrics
578
+ 8. **Send notifications** - Keep clients updated on changes
579
+ 9. **Validate inputs** - Check parameters before processing
580
+ 10. **Follow Ruby conventions** - Use snake_case, proper indentation
581
+
582
+ ## Common Patterns
583
+
584
+ ### Authenticated Tool
585
+
586
+ ```ruby
587
+ class AuthenticatedTool < MCP::Tool
588
+ def self.call(**args, server_context:)
589
+ user_id = server_context[:user_id]
590
+ raise 'Unauthorized' unless user_id
591
+
592
+ # Process authenticated request
593
+ MCP::Tool::Response.new([{ type: 'text', text: 'Success' }])
594
+ end
595
+ end
596
+ ```
597
+
598
+ ### Paginated Resource
599
+
600
+ ```ruby
601
+ server.resources_read_handler do |params|
602
+ uri = params[:uri]
603
+ page = params[:page] || 1
604
+
605
+ data = fetch_paginated_data(page)
606
+
607
+ [{
608
+ uri: uri,
609
+ mimeType: 'application/json',
610
+ text: data.to_json
611
+ }]
612
+ end
613
+ ```
614
+
615
+ ### Dynamic Prompt
616
+
617
+ ```ruby
618
+ class DynamicPrompt < MCP::Prompt
619
+ def self.template(args, server_context:)
620
+ user_id = server_context[:user_id]
621
+ user_data = User.find(user_id)
622
+
623
+ MCP::Prompt::Result.new(
624
+ description: "Personalized prompt for #{user_data.name}",
625
+ messages: generate_messages_for(user_data)
626
+ )
627
+ end
628
+ end
629
+ ```