workspace-architect 1.3.0 → 1.5.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/assets-manifest.json +3392 -0
  2. package/bin/cli.js +134 -72
  3. package/package.json +11 -2
  4. package/.env.example +0 -1
  5. package/.gitattributes +0 -1
  6. package/.github/workflows/manual-publish.yml +0 -36
  7. package/.github/workflows/sync-and-publish.yml +0 -58
  8. package/.release-it.json +0 -20
  9. package/CHANGELOG.md +0 -43
  10. package/assets/chatmodes/4.1-Beast.chatmode.md +0 -152
  11. package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +0 -337
  12. package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -644
  13. package/assets/chatmodes/accessibility.chatmode.md +0 -298
  14. package/assets/chatmodes/address-comments.chatmode.md +0 -59
  15. package/assets/chatmodes/aem-frontend-specialist.chatmode.md +0 -385
  16. package/assets/chatmodes/api-architect.chatmode.md +0 -40
  17. package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +0 -444
  18. package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +0 -100
  19. package/assets/chatmodes/azure-principal-architect.chatmode.md +0 -58
  20. package/assets/chatmodes/azure-saas-architect.chatmode.md +0 -118
  21. package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +0 -44
  22. package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +0 -58
  23. package/assets/chatmodes/bicep-implement.chatmode.md +0 -40
  24. package/assets/chatmodes/bicep-plan.chatmode.md +0 -112
  25. package/assets/chatmodes/blueprint-mode-codex.chatmode.md +0 -110
  26. package/assets/chatmodes/blueprint-mode.chatmode.md +0 -171
  27. package/assets/chatmodes/clojure-interactive-programming.chatmode.md +0 -174
  28. package/assets/chatmodes/code-tour.chatmode.md +0 -205
  29. package/assets/chatmodes/critical-thinking.chatmode.md +0 -23
  30. package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +0 -83
  31. package/assets/chatmodes/csharp-mcp-expert.chatmode.md +0 -69
  32. package/assets/chatmodes/debug.chatmode.md +0 -79
  33. package/assets/chatmodes/declarative-agents-architect.chatmode.md +0 -76
  34. package/assets/chatmodes/demonstrate-understanding.chatmode.md +0 -60
  35. package/assets/chatmodes/dotnet-upgrade.chatmode.md +0 -222
  36. package/assets/chatmodes/drupal-expert.chatmode.md +0 -687
  37. package/assets/chatmodes/electron-angular-native.chatmode.md +0 -285
  38. package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +0 -27
  39. package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +0 -22
  40. package/assets/chatmodes/expert-nextjs-developer.chatmode.md +0 -477
  41. package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +0 -738
  42. package/assets/chatmodes/gilfoyle.chatmode.md +0 -66
  43. package/assets/chatmodes/go-mcp-expert.chatmode.md +0 -122
  44. package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +0 -109
  45. package/assets/chatmodes/hlbpa.chatmode.md +0 -232
  46. package/assets/chatmodes/implementation-plan.chatmode.md +0 -159
  47. package/assets/chatmodes/janitor.chatmode.md +0 -89
  48. package/assets/chatmodes/java-mcp-expert.chatmode.md +0 -325
  49. package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +0 -181
  50. package/assets/chatmodes/kusto-assistant.chatmode.md +0 -143
  51. package/assets/chatmodes/laravel-expert-agent.chatmode.md +0 -628
  52. package/assets/chatmodes/mentor.chatmode.md +0 -32
  53. package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +0 -15
  54. package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +0 -62
  55. package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +0 -62
  56. package/assets/chatmodes/microsoft-study-mode.chatmode.md +0 -32
  57. package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +0 -388
  58. package/assets/chatmodes/ms-sql-dba.chatmode.md +0 -25
  59. package/assets/chatmodes/php-mcp-expert.chatmode.md +0 -498
  60. package/assets/chatmodes/pimcore-expert.chatmode.md +0 -869
  61. package/assets/chatmodes/plan.chatmode.md +0 -114
  62. package/assets/chatmodes/planner.chatmode.md +0 -14
  63. package/assets/chatmodes/playwright-tester.chatmode.md +0 -13
  64. package/assets/chatmodes/postgresql-dba.chatmode.md +0 -17
  65. package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +0 -319
  66. package/assets/chatmodes/power-bi-dax-expert.chatmode.md +0 -334
  67. package/assets/chatmodes/power-bi-performance-expert.chatmode.md +0 -533
  68. package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +0 -549
  69. package/assets/chatmodes/power-platform-expert.chatmode.md +0 -116
  70. package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +0 -149
  71. package/assets/chatmodes/prd.chatmode.md +0 -201
  72. package/assets/chatmodes/principal-software-engineer.chatmode.md +0 -41
  73. package/assets/chatmodes/prompt-builder.chatmode.md +0 -352
  74. package/assets/chatmodes/prompt-engineer.chatmode.md +0 -72
  75. package/assets/chatmodes/python-mcp-expert.chatmode.md +0 -99
  76. package/assets/chatmodes/refine-issue.chatmode.md +0 -34
  77. package/assets/chatmodes/research-technical-spike.chatmode.md +0 -169
  78. package/assets/chatmodes/ruby-mcp-expert.chatmode.md +0 -346
  79. package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +0 -197
  80. package/assets/chatmodes/rust-mcp-expert.chatmode.md +0 -465
  81. package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +0 -227
  82. package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +0 -31
  83. package/assets/chatmodes/semantic-kernel-python.chatmode.md +0 -28
  84. package/assets/chatmodes/shopify-expert.chatmode.md +0 -681
  85. package/assets/chatmodes/simple-app-idea-generator.chatmode.md +0 -134
  86. package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +0 -164
  87. package/assets/chatmodes/specification.chatmode.md +0 -127
  88. package/assets/chatmodes/swift-mcp-expert.chatmode.md +0 -240
  89. package/assets/chatmodes/task-planner.chatmode.md +0 -374
  90. package/assets/chatmodes/task-researcher.chatmode.md +0 -254
  91. package/assets/chatmodes/tdd-green.chatmode.md +0 -59
  92. package/assets/chatmodes/tdd-red.chatmode.md +0 -59
  93. package/assets/chatmodes/tdd-refactor.chatmode.md +0 -84
  94. package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +0 -49
  95. package/assets/chatmodes/terraform-azure-implement.chatmode.md +0 -104
  96. package/assets/chatmodes/terraform-azure-planning.chatmode.md +0 -157
  97. package/assets/chatmodes/typescript-mcp-expert.chatmode.md +0 -91
  98. package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +0 -230
  99. package/assets/chatmodes/wg-code-alchemist.chatmode.md +0 -61
  100. package/assets/chatmodes/wg-code-sentinel.chatmode.md +0 -55
  101. package/assets/collections/ai-prompt-engineering.json +0 -18
  102. package/assets/collections/angular-development.json +0 -7
  103. package/assets/collections/azure-cloud-architect.json +0 -29
  104. package/assets/collections/cpp-development.json +0 -6
  105. package/assets/collections/database-administration.json +0 -8
  106. package/assets/collections/devops-sre.json +0 -11
  107. package/assets/collections/dotnet-development.json +0 -22
  108. package/assets/collections/general-productivity.json +0 -9
  109. package/assets/collections/go-development.json +0 -7
  110. package/assets/collections/java-spring-developer.json +0 -26
  111. package/assets/collections/learning-mentoring.json +0 -10
  112. package/assets/collections/legacy-migration.json +0 -4
  113. package/assets/collections/mcp-specialist.json +0 -41
  114. package/assets/collections/mobile-development.json +0 -4
  115. package/assets/collections/php-cms-development.json +0 -11
  116. package/assets/collections/power-platform-specialist.json +0 -31
  117. package/assets/collections/project-management.json +0 -12
  118. package/assets/collections/python-development.json +0 -13
  119. package/assets/collections/quality-assurance.json +0 -13
  120. package/assets/collections/ruby-development.json +0 -9
  121. package/assets/collections/rust-development.json +0 -10
  122. package/assets/collections/security-specialist.json +0 -8
  123. package/assets/collections/software-architect.json +0 -25
  124. package/assets/collections/technical-writing.json +0 -9
  125. package/assets/collections/web-frontend-development.json +0 -14
  126. package/assets/instructions/a11y.instructions.md +0 -369
  127. package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +0 -867
  128. package/assets/instructions/angular.instructions.md +0 -104
  129. package/assets/instructions/ansible.instructions.md +0 -88
  130. package/assets/instructions/aspnet-rest-apis.instructions.md +0 -110
  131. package/assets/instructions/astro.instructions.md +0 -182
  132. package/assets/instructions/azure-devops-pipelines.instructions.md +0 -185
  133. package/assets/instructions/azure-functions-typescript.instructions.md +0 -14
  134. package/assets/instructions/azure-logic-apps-power-automate.instructions.md +0 -1943
  135. package/assets/instructions/azure-verified-modules-terraform.instructions.md +0 -229
  136. package/assets/instructions/bicep-code-best-practices.instructions.md +0 -54
  137. package/assets/instructions/blazor.instructions.md +0 -77
  138. package/assets/instructions/clojure.instructions.md +0 -349
  139. package/assets/instructions/cmake-vcpkg.instructions.md +0 -10
  140. package/assets/instructions/codexer.instructions.md +0 -428
  141. package/assets/instructions/coldfusion-cfc.instructions.md +0 -30
  142. package/assets/instructions/coldfusion-cfm.instructions.md +0 -28
  143. package/assets/instructions/collections.instructions.md +0 -54
  144. package/assets/instructions/containerization-docker-best-practices.instructions.md +0 -681
  145. package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +0 -949
  146. package/assets/instructions/copilot-thought-logging.instructions.md +0 -62
  147. package/assets/instructions/csharp-ja.instructions.md +0 -114
  148. package/assets/instructions/csharp-ko.instructions.md +0 -77
  149. package/assets/instructions/csharp-mcp-server.instructions.md +0 -95
  150. package/assets/instructions/csharp.instructions.md +0 -114
  151. package/assets/instructions/dart-n-flutter.instructions.md +0 -447
  152. package/assets/instructions/declarative-agents-microsoft365.instructions.md +0 -316
  153. package/assets/instructions/devbox-image-definition.instructions.md +0 -302
  154. package/assets/instructions/devops-core-principles.instructions.md +0 -167
  155. package/assets/instructions/dotnet-architecture-good-practices.instructions.md +0 -279
  156. package/assets/instructions/dotnet-framework.instructions.md +0 -113
  157. package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +0 -1922
  158. package/assets/instructions/dotnet-maui.instructions.md +0 -69
  159. package/assets/instructions/dotnet-upgrade.instructions.md +0 -287
  160. package/assets/instructions/dotnet-wpf.instructions.md +0 -79
  161. package/assets/instructions/genaiscript.instructions.md +0 -21
  162. package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +0 -82
  163. package/assets/instructions/gilfoyle-code-review.instructions.md +0 -114
  164. package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +0 -607
  165. package/assets/instructions/go-mcp-server.instructions.md +0 -346
  166. package/assets/instructions/go.instructions.md +0 -373
  167. package/assets/instructions/instructions.instructions.md +0 -256
  168. package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +0 -793
  169. package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +0 -464
  170. package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +0 -311
  171. package/assets/instructions/java-mcp-server.instructions.md +0 -553
  172. package/assets/instructions/java.instructions.md +0 -81
  173. package/assets/instructions/joyride-user-project.instructions.md +0 -206
  174. package/assets/instructions/joyride-workspace-automation.instructions.md +0 -46
  175. package/assets/instructions/kotlin-mcp-server.instructions.md +0 -481
  176. package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +0 -307
  177. package/assets/instructions/langchain-python.instructions.md +0 -229
  178. package/assets/instructions/localization.instructions.md +0 -39
  179. package/assets/instructions/makefile.instructions.md +0 -410
  180. package/assets/instructions/markdown.instructions.md +0 -52
  181. package/assets/instructions/memory-bank.instructions.md +0 -299
  182. package/assets/instructions/mongo-dba.instructions.md +0 -25
  183. package/assets/instructions/ms-sql-dba.instructions.md +0 -25
  184. package/assets/instructions/nestjs.instructions.md +0 -406
  185. package/assets/instructions/nextjs-tailwind.instructions.md +0 -72
  186. package/assets/instructions/nextjs.instructions.md +0 -143
  187. package/assets/instructions/nodejs-javascript-vitest.instructions.md +0 -30
  188. package/assets/instructions/object-calisthenics.instructions.md +0 -302
  189. package/assets/instructions/oqtane.instructions.md +0 -86
  190. package/assets/instructions/performance-optimization.instructions.md +0 -420
  191. package/assets/instructions/php-mcp-server.instructions.md +0 -809
  192. package/assets/instructions/playwright-dotnet.instructions.md +0 -101
  193. package/assets/instructions/playwright-python.instructions.md +0 -62
  194. package/assets/instructions/playwright-typescript.instructions.md +0 -86
  195. package/assets/instructions/power-apps-canvas-yaml.instructions.md +0 -827
  196. package/assets/instructions/power-apps-code-apps.instructions.md +0 -601
  197. package/assets/instructions/power-bi-custom-visuals-development.instructions.md +0 -810
  198. package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +0 -639
  199. package/assets/instructions/power-bi-dax-best-practices.instructions.md +0 -795
  200. package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +0 -623
  201. package/assets/instructions/power-bi-report-design-best-practices.instructions.md +0 -752
  202. package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +0 -504
  203. package/assets/instructions/power-platform-connector.instructions.md +0 -430
  204. package/assets/instructions/power-platform-mcp-development.instructions.md +0 -88
  205. package/assets/instructions/powershell-pester-5.instructions.md +0 -197
  206. package/assets/instructions/powershell.instructions.md +0 -356
  207. package/assets/instructions/prompt.instructions.md +0 -73
  208. package/assets/instructions/python-mcp-server.instructions.md +0 -204
  209. package/assets/instructions/python.instructions.md +0 -56
  210. package/assets/instructions/quarkus-mcp-server-sse.instructions.md +0 -49
  211. package/assets/instructions/quarkus.instructions.md +0 -98
  212. package/assets/instructions/r.instructions.md +0 -116
  213. package/assets/instructions/reactjs.instructions.md +0 -162
  214. package/assets/instructions/ruby-mcp-server.instructions.md +0 -629
  215. package/assets/instructions/ruby-on-rails.instructions.md +0 -124
  216. package/assets/instructions/rust-mcp-server.instructions.md +0 -715
  217. package/assets/instructions/rust.instructions.md +0 -135
  218. package/assets/instructions/security-and-owasp.instructions.md +0 -51
  219. package/assets/instructions/self-explanatory-code-commenting.instructions.md +0 -162
  220. package/assets/instructions/shell.instructions.md +0 -132
  221. package/assets/instructions/spec-driven-workflow-v1.instructions.md +0 -323
  222. package/assets/instructions/springboot.instructions.md +0 -68
  223. package/assets/instructions/sql-sp-generation.instructions.md +0 -74
  224. package/assets/instructions/svelte.instructions.md +0 -161
  225. package/assets/instructions/swift-mcp-server.instructions.md +0 -498
  226. package/assets/instructions/taming-copilot.instructions.md +0 -40
  227. package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +0 -212
  228. package/assets/instructions/task-implementation.instructions.md +0 -190
  229. package/assets/instructions/tasksync.instructions.md +0 -352
  230. package/assets/instructions/terraform-azure.instructions.md +0 -254
  231. package/assets/instructions/terraform-sap-btp.instructions.md +0 -195
  232. package/assets/instructions/terraform.instructions.md +0 -113
  233. package/assets/instructions/typescript-5-es2022.instructions.md +0 -114
  234. package/assets/instructions/typescript-mcp-server.instructions.md +0 -228
  235. package/assets/instructions/update-code-from-shorthand.instructions.md +0 -130
  236. package/assets/instructions/vuejs3.instructions.md +0 -153
  237. package/assets/instructions/wordpress.instructions.md +0 -186
  238. package/assets/prompts/add-educational-comments.prompt.md +0 -129
  239. package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +0 -230
  240. package/assets/prompts/architecture-blueprint-generator.prompt.md +0 -322
  241. package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +0 -42
  242. package/assets/prompts/az-cost-optimize.prompt.md +0 -305
  243. package/assets/prompts/azure-resource-health-diagnose.prompt.md +0 -290
  244. package/assets/prompts/boost-prompt.prompt.md +0 -25
  245. package/assets/prompts/breakdown-epic-arch.prompt.md +0 -66
  246. package/assets/prompts/breakdown-epic-pm.prompt.md +0 -58
  247. package/assets/prompts/breakdown-feature-implementation.prompt.md +0 -128
  248. package/assets/prompts/breakdown-feature-prd.prompt.md +0 -61
  249. package/assets/prompts/breakdown-plan.prompt.md +0 -509
  250. package/assets/prompts/breakdown-test.prompt.md +0 -365
  251. package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +0 -126
  252. package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +0 -26
  253. package/assets/prompts/containerize-aspnet-framework.prompt.md +0 -455
  254. package/assets/prompts/containerize-aspnetcore.prompt.md +0 -393
  255. package/assets/prompts/conventional-commit.prompt.md +0 -73
  256. package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +0 -294
  257. package/assets/prompts/cosmosdb-datamodeling.prompt.md +0 -1045
  258. package/assets/prompts/create-agentsmd.prompt.md +0 -249
  259. package/assets/prompts/create-architectural-decision-record.prompt.md +0 -97
  260. package/assets/prompts/create-github-action-workflow-specification.prompt.md +0 -276
  261. package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +0 -28
  262. package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +0 -28
  263. package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +0 -35
  264. package/assets/prompts/create-github-pull-request-from-specification.prompt.md +0 -24
  265. package/assets/prompts/create-implementation-plan.prompt.md +0 -157
  266. package/assets/prompts/create-llms.prompt.md +0 -210
  267. package/assets/prompts/create-oo-component-documentation.prompt.md +0 -193
  268. package/assets/prompts/create-readme.prompt.md +0 -21
  269. package/assets/prompts/create-specification.prompt.md +0 -127
  270. package/assets/prompts/create-spring-boot-java-project.prompt.md +0 -163
  271. package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +0 -147
  272. package/assets/prompts/create-technical-spike.prompt.md +0 -231
  273. package/assets/prompts/csharp-async.prompt.md +0 -50
  274. package/assets/prompts/csharp-docs.prompt.md +0 -63
  275. package/assets/prompts/csharp-mcp-server-generator.prompt.md +0 -59
  276. package/assets/prompts/csharp-mstest.prompt.md +0 -67
  277. package/assets/prompts/csharp-nunit.prompt.md +0 -72
  278. package/assets/prompts/csharp-tunit.prompt.md +0 -101
  279. package/assets/prompts/csharp-xunit.prompt.md +0 -69
  280. package/assets/prompts/declarative-agents.prompt.md +0 -93
  281. package/assets/prompts/documentation-writer.prompt.md +0 -46
  282. package/assets/prompts/dotnet-best-practices.prompt.md +0 -84
  283. package/assets/prompts/dotnet-design-pattern-review.prompt.md +0 -41
  284. package/assets/prompts/dotnet-upgrade.prompt.md +0 -116
  285. package/assets/prompts/editorconfig.prompt.md +0 -64
  286. package/assets/prompts/ef-core.prompt.md +0 -76
  287. package/assets/prompts/finalize-agent-prompt.prompt.md +0 -27
  288. package/assets/prompts/first-ask.prompt.md +0 -29
  289. package/assets/prompts/folder-structure-blueprint-generator.prompt.md +0 -405
  290. package/assets/prompts/gen-specs-as-issues.prompt.md +0 -165
  291. package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +0 -240
  292. package/assets/prompts/git-flow-branch-creator.prompt.md +0 -293
  293. package/assets/prompts/github-copilot-starter.prompt.md +0 -372
  294. package/assets/prompts/go-mcp-server-generator.prompt.md +0 -334
  295. package/assets/prompts/java-docs.prompt.md +0 -24
  296. package/assets/prompts/java-junit.prompt.md +0 -64
  297. package/assets/prompts/java-mcp-server-generator.prompt.md +0 -756
  298. package/assets/prompts/java-refactoring-extract-method.prompt.md +0 -105
  299. package/assets/prompts/java-refactoring-remove-parameter.prompt.md +0 -85
  300. package/assets/prompts/java-springboot.prompt.md +0 -66
  301. package/assets/prompts/javascript-typescript-jest.prompt.md +0 -44
  302. package/assets/prompts/kotlin-mcp-server-generator.prompt.md +0 -449
  303. package/assets/prompts/kotlin-springboot.prompt.md +0 -71
  304. package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +0 -118
  305. package/assets/prompts/memory-merger.prompt.md +0 -107
  306. package/assets/prompts/mkdocs-translations.prompt.md +0 -110
  307. package/assets/prompts/model-recommendation.prompt.md +0 -677
  308. package/assets/prompts/multi-stage-dockerfile.prompt.md +0 -47
  309. package/assets/prompts/my-issues.prompt.md +0 -9
  310. package/assets/prompts/my-pull-requests.prompt.md +0 -15
  311. package/assets/prompts/next-intl-add-language.prompt.md +0 -20
  312. package/assets/prompts/php-mcp-server-generator.prompt.md +0 -522
  313. package/assets/prompts/playwright-automation-fill-in-form.prompt.md +0 -30
  314. package/assets/prompts/playwright-explore-website.prompt.md +0 -19
  315. package/assets/prompts/playwright-generate-test.prompt.md +0 -19
  316. package/assets/prompts/postgresql-code-review.prompt.md +0 -214
  317. package/assets/prompts/postgresql-optimization.prompt.md +0 -406
  318. package/assets/prompts/power-apps-code-app-scaffold.prompt.md +0 -150
  319. package/assets/prompts/power-bi-dax-optimization.prompt.md +0 -175
  320. package/assets/prompts/power-bi-model-design-review.prompt.md +0 -405
  321. package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +0 -384
  322. package/assets/prompts/power-bi-report-design-consultation.prompt.md +0 -353
  323. package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +0 -156
  324. package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +0 -294
  325. package/assets/prompts/prompt-builder.prompt.md +0 -142
  326. package/assets/prompts/pytest-coverage.prompt.md +0 -28
  327. package/assets/prompts/python-mcp-server-generator.prompt.md +0 -105
  328. package/assets/prompts/readme-blueprint-generator.prompt.md +0 -79
  329. package/assets/prompts/remember-interactive-programming.prompt.md +0 -13
  330. package/assets/prompts/remember.prompt.md +0 -125
  331. package/assets/prompts/repo-story-time.prompt.md +0 -156
  332. package/assets/prompts/review-and-refactor.prompt.md +0 -15
  333. package/assets/prompts/ruby-mcp-server-generator.prompt.md +0 -660
  334. package/assets/prompts/rust-mcp-server-generator.prompt.md +0 -578
  335. package/assets/prompts/shuffle-json-data.prompt.md +0 -151
  336. package/assets/prompts/sql-code-review.prompt.md +0 -303
  337. package/assets/prompts/sql-optimization.prompt.md +0 -298
  338. package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +0 -72
  339. package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +0 -71
  340. package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +0 -149
  341. package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +0 -88
  342. package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +0 -71
  343. package/assets/prompts/swift-mcp-server-generator.prompt.md +0 -669
  344. package/assets/prompts/technology-stack-blueprint-generator.prompt.md +0 -242
  345. package/assets/prompts/typescript-mcp-server-generator.prompt.md +0 -90
  346. package/assets/prompts/update-avm-modules-in-bicep.prompt.md +0 -60
  347. package/assets/prompts/update-implementation-plan.prompt.md +0 -157
  348. package/assets/prompts/update-llms.prompt.md +0 -216
  349. package/assets/prompts/update-markdown-file-index.prompt.md +0 -76
  350. package/assets/prompts/update-oo-component-documentation.prompt.md +0 -162
  351. package/assets/prompts/update-specification.prompt.md +0 -127
  352. package/assets/prompts/write-coding-standards-from-file.prompt.md +0 -316
  353. package/scripts/sync.js +0 -99
  354. package/verdaccio/config.yaml +0 -202
@@ -1,553 +0,0 @@
1
- ---
2
- description: 'Best practices and patterns for building Model Context Protocol (MCP) servers in Java using the official MCP Java SDK with reactive streams and Spring integration.'
3
- applyTo: "**/*.java, **/pom.xml, **/build.gradle, **/build.gradle.kts"
4
- ---
5
-
6
- # Java MCP Server Development Guidelines
7
-
8
- When building MCP servers in Java, follow these best practices and patterns using the official Java SDK.
9
-
10
- ## Dependencies
11
-
12
- Add the MCP Java SDK to your Maven project:
13
-
14
- ```xml
15
- <dependencies>
16
- <dependency>
17
- <groupId>io.modelcontextprotocol.sdk</groupId>
18
- <artifactId>mcp</artifactId>
19
- <version>0.14.1</version>
20
- </dependency>
21
- </dependencies>
22
- ```
23
-
24
- Or for Gradle:
25
-
26
- ```kotlin
27
- dependencies {
28
- implementation("io.modelcontextprotocol.sdk:mcp:0.14.1")
29
- }
30
- ```
31
-
32
- ## Server Setup
33
-
34
- Create an MCP server using the builder pattern:
35
-
36
- ```java
37
- import io.mcp.server.McpServer;
38
- import io.mcp.server.McpServerBuilder;
39
- import io.mcp.server.transport.StdioServerTransport;
40
-
41
- McpServer server = McpServerBuilder.builder()
42
- .serverInfo("my-server", "1.0.0")
43
- .capabilities(capabilities -> capabilities
44
- .tools(true)
45
- .resources(true)
46
- .prompts(true))
47
- .build();
48
-
49
- // Start with stdio transport
50
- StdioServerTransport transport = new StdioServerTransport();
51
- server.start(transport).subscribe();
52
- ```
53
-
54
- ## Adding Tools
55
-
56
- Register tool handlers with the server:
57
-
58
- ```java
59
- import io.mcp.server.tool.Tool;
60
- import io.mcp.server.tool.ToolHandler;
61
- import reactor.core.publisher.Mono;
62
-
63
- // Define a tool
64
- Tool searchTool = Tool.builder()
65
- .name("search")
66
- .description("Search for information")
67
- .inputSchema(JsonSchema.object()
68
- .property("query", JsonSchema.string()
69
- .description("Search query")
70
- .required(true))
71
- .property("limit", JsonSchema.integer()
72
- .description("Maximum results")
73
- .defaultValue(10)))
74
- .build();
75
-
76
- // Register tool handler
77
- server.addToolHandler("search", (arguments) -> {
78
- String query = arguments.get("query").asText();
79
- int limit = arguments.has("limit")
80
- ? arguments.get("limit").asInt()
81
- : 10;
82
-
83
- // Perform search
84
- List<String> results = performSearch(query, limit);
85
-
86
- return Mono.just(ToolResponse.success()
87
- .addTextContent("Found " + results.size() + " results")
88
- .build());
89
- });
90
- ```
91
-
92
- ## Adding Resources
93
-
94
- Implement resource handlers for data access:
95
-
96
- ```java
97
- import io.mcp.server.resource.Resource;
98
- import io.mcp.server.resource.ResourceHandler;
99
-
100
- // Register resource list handler
101
- server.addResourceListHandler(() -> {
102
- List<Resource> resources = List.of(
103
- Resource.builder()
104
- .name("Data File")
105
- .uri("resource://data/example.txt")
106
- .description("Example data file")
107
- .mimeType("text/plain")
108
- .build()
109
- );
110
- return Mono.just(resources);
111
- });
112
-
113
- // Register resource read handler
114
- server.addResourceReadHandler((uri) -> {
115
- if (uri.equals("resource://data/example.txt")) {
116
- String content = loadResourceContent(uri);
117
- return Mono.just(ResourceContent.text(content, uri));
118
- }
119
- throw new ResourceNotFoundException(uri);
120
- });
121
-
122
- // Register resource subscribe handler
123
- server.addResourceSubscribeHandler((uri) -> {
124
- subscriptions.add(uri);
125
- log.info("Client subscribed to {}", uri);
126
- return Mono.empty();
127
- });
128
- ```
129
-
130
- ## Adding Prompts
131
-
132
- Implement prompt handlers for templated conversations:
133
-
134
- ```java
135
- import io.mcp.server.prompt.Prompt;
136
- import io.mcp.server.prompt.PromptMessage;
137
- import io.mcp.server.prompt.PromptArgument;
138
-
139
- // Register prompt list handler
140
- server.addPromptListHandler(() -> {
141
- List<Prompt> prompts = List.of(
142
- Prompt.builder()
143
- .name("analyze")
144
- .description("Analyze a topic")
145
- .argument(PromptArgument.builder()
146
- .name("topic")
147
- .description("Topic to analyze")
148
- .required(true)
149
- .build())
150
- .argument(PromptArgument.builder()
151
- .name("depth")
152
- .description("Analysis depth")
153
- .required(false)
154
- .build())
155
- .build()
156
- );
157
- return Mono.just(prompts);
158
- });
159
-
160
- // Register prompt get handler
161
- server.addPromptGetHandler((name, arguments) -> {
162
- if (name.equals("analyze")) {
163
- String topic = arguments.getOrDefault("topic", "general");
164
- String depth = arguments.getOrDefault("depth", "basic");
165
-
166
- List<PromptMessage> messages = List.of(
167
- PromptMessage.user("Please analyze this topic: " + topic),
168
- PromptMessage.assistant("I'll provide a " + depth + " analysis of " + topic)
169
- );
170
-
171
- return Mono.just(PromptResult.builder()
172
- .description("Analysis of " + topic + " at " + depth + " level")
173
- .messages(messages)
174
- .build());
175
- }
176
- throw new PromptNotFoundException(name);
177
- });
178
- ```
179
-
180
- ## Reactive Streams Pattern
181
-
182
- The Java SDK uses Reactive Streams (Project Reactor) for asynchronous processing:
183
-
184
- ```java
185
- // Return Mono for single results
186
- server.addToolHandler("process", (args) -> {
187
- return Mono.fromCallable(() -> {
188
- String result = expensiveOperation(args);
189
- return ToolResponse.success()
190
- .addTextContent(result)
191
- .build();
192
- }).subscribeOn(Schedulers.boundedElastic());
193
- });
194
-
195
- // Return Flux for streaming results
196
- server.addResourceListHandler(() -> {
197
- return Flux.fromIterable(getResources())
198
- .map(r -> Resource.builder()
199
- .uri(r.getUri())
200
- .name(r.getName())
201
- .build())
202
- .collectList();
203
- });
204
- ```
205
-
206
- ## Synchronous Facade
207
-
208
- For blocking use cases, use the synchronous API:
209
-
210
- ```java
211
- import io.mcp.server.McpSyncServer;
212
-
213
- McpSyncServer syncServer = server.toSyncServer();
214
-
215
- // Blocking tool handler
216
- syncServer.addToolHandler("greet", (args) -> {
217
- String name = args.get("name").asText();
218
- return ToolResponse.success()
219
- .addTextContent("Hello, " + name + "!")
220
- .build();
221
- });
222
- ```
223
-
224
- ## Transport Configuration
225
-
226
- ### Stdio Transport
227
-
228
- For local subprocess communication:
229
-
230
- ```java
231
- import io.mcp.server.transport.StdioServerTransport;
232
-
233
- StdioServerTransport transport = new StdioServerTransport();
234
- server.start(transport).block();
235
- ```
236
-
237
- ### HTTP Transport (Servlet)
238
-
239
- For HTTP-based servers:
240
-
241
- ```java
242
- import io.mcp.server.transport.ServletServerTransport;
243
- import jakarta.servlet.http.HttpServlet;
244
-
245
- public class McpServlet extends HttpServlet {
246
- private final McpServer server;
247
- private final ServletServerTransport transport;
248
-
249
- public McpServlet() {
250
- this.server = createMcpServer();
251
- this.transport = new ServletServerTransport();
252
- }
253
-
254
- @Override
255
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) {
256
- transport.handleRequest(server, req, resp).block();
257
- }
258
- }
259
- ```
260
-
261
- ## Spring Boot Integration
262
-
263
- Use the Spring Boot starter for seamless integration:
264
-
265
- ```xml
266
- <dependency>
267
- <groupId>io.modelcontextprotocol.sdk</groupId>
268
- <artifactId>mcp-spring-boot-starter</artifactId>
269
- <version>0.14.1</version>
270
- </dependency>
271
- ```
272
-
273
- Configure the server with Spring:
274
-
275
- ```java
276
- import org.springframework.context.annotation.Configuration;
277
- import io.mcp.spring.McpServerConfigurer;
278
-
279
- @Configuration
280
- public class McpConfiguration {
281
-
282
- @Bean
283
- public McpServerConfigurer mcpServerConfigurer() {
284
- return server -> server
285
- .serverInfo("spring-server", "1.0.0")
286
- .capabilities(cap -> cap
287
- .tools(true)
288
- .resources(true)
289
- .prompts(true));
290
- }
291
- }
292
- ```
293
-
294
- Register handlers as Spring beans:
295
-
296
- ```java
297
- import org.springframework.stereotype.Component;
298
- import io.mcp.spring.ToolHandler;
299
-
300
- @Component
301
- public class SearchToolHandler implements ToolHandler {
302
-
303
- @Override
304
- public String getName() {
305
- return "search";
306
- }
307
-
308
- @Override
309
- public Tool getTool() {
310
- return Tool.builder()
311
- .name("search")
312
- .description("Search for information")
313
- .inputSchema(JsonSchema.object()
314
- .property("query", JsonSchema.string().required(true)))
315
- .build();
316
- }
317
-
318
- @Override
319
- public Mono<ToolResponse> handle(JsonNode arguments) {
320
- String query = arguments.get("query").asText();
321
- return Mono.just(ToolResponse.success()
322
- .addTextContent("Search results for: " + query)
323
- .build());
324
- }
325
- }
326
- ```
327
-
328
- ## Error Handling
329
-
330
- Use proper error handling with MCP exceptions:
331
-
332
- ```java
333
- server.addToolHandler("risky", (args) -> {
334
- return Mono.fromCallable(() -> {
335
- try {
336
- String result = riskyOperation(args);
337
- return ToolResponse.success()
338
- .addTextContent(result)
339
- .build();
340
- } catch (ValidationException e) {
341
- return ToolResponse.error()
342
- .message("Invalid input: " + e.getMessage())
343
- .build();
344
- } catch (Exception e) {
345
- log.error("Unexpected error", e);
346
- return ToolResponse.error()
347
- .message("Internal error occurred")
348
- .build();
349
- }
350
- });
351
- });
352
- ```
353
-
354
- ## JSON Schema Construction
355
-
356
- Use the fluent schema builder:
357
-
358
- ```java
359
- import io.mcp.json.JsonSchema;
360
-
361
- JsonSchema schema = JsonSchema.object()
362
- .property("name", JsonSchema.string()
363
- .description("User's name")
364
- .minLength(1)
365
- .maxLength(100)
366
- .required(true))
367
- .property("age", JsonSchema.integer()
368
- .description("User's age")
369
- .minimum(0)
370
- .maximum(150))
371
- .property("email", JsonSchema.string()
372
- .description("Email address")
373
- .format("email")
374
- .required(true))
375
- .property("tags", JsonSchema.array()
376
- .items(JsonSchema.string())
377
- .uniqueItems(true))
378
- .additionalProperties(false)
379
- .build();
380
- ```
381
-
382
- ## Logging and Observability
383
-
384
- Use SLF4J for logging:
385
-
386
- ```java
387
- import org.slf4j.Logger;
388
- import org.slf4j.LoggerFactory;
389
-
390
- private static final Logger log = LoggerFactory.getLogger(MyMcpServer.class);
391
-
392
- server.addToolHandler("process", (args) -> {
393
- log.info("Tool called: process, args: {}", args);
394
-
395
- return Mono.fromCallable(() -> {
396
- String result = process(args);
397
- log.debug("Processing completed successfully");
398
- return ToolResponse.success()
399
- .addTextContent(result)
400
- .build();
401
- }).doOnError(error -> {
402
- log.error("Processing failed", error);
403
- });
404
- });
405
- ```
406
-
407
- Propagate context with Reactor:
408
-
409
- ```java
410
- import reactor.util.context.Context;
411
-
412
- server.addToolHandler("traced", (args) -> {
413
- return Mono.deferContextual(ctx -> {
414
- String traceId = ctx.get("traceId");
415
- log.info("Processing with traceId: {}", traceId);
416
-
417
- return Mono.just(ToolResponse.success()
418
- .addTextContent("Processed")
419
- .build());
420
- });
421
- });
422
- ```
423
-
424
- ## Testing
425
-
426
- Write tests using the synchronous API:
427
-
428
- ```java
429
- import org.junit.jupiter.api.Test;
430
- import static org.assertj.core.Assertions.assertThat;
431
-
432
- class McpServerTest {
433
-
434
- @Test
435
- void testToolHandler() {
436
- McpServer server = createTestServer();
437
- McpSyncServer syncServer = server.toSyncServer();
438
-
439
- JsonNode args = objectMapper.createObjectNode()
440
- .put("query", "test");
441
-
442
- ToolResponse response = syncServer.callTool("search", args);
443
-
444
- assertThat(response.isError()).isFalse();
445
- assertThat(response.getContent()).hasSize(1);
446
- }
447
- }
448
- ```
449
-
450
- ## Jackson Integration
451
-
452
- The SDK uses Jackson for JSON serialization. Customize as needed:
453
-
454
- ```java
455
- import com.fasterxml.jackson.databind.ObjectMapper;
456
- import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
457
-
458
- ObjectMapper mapper = new ObjectMapper();
459
- mapper.registerModule(new JavaTimeModule());
460
-
461
- // Use custom mapper with server
462
- McpServer server = McpServerBuilder.builder()
463
- .objectMapper(mapper)
464
- .build();
465
- ```
466
-
467
- ## Content Types
468
-
469
- Support multiple content types in responses:
470
-
471
- ```java
472
- import io.mcp.server.content.Content;
473
-
474
- server.addToolHandler("multi", (args) -> {
475
- return Mono.just(ToolResponse.success()
476
- .addTextContent("Plain text response")
477
- .addImageContent(imageBytes, "image/png")
478
- .addResourceContent("resource://data", "application/json", jsonData)
479
- .build());
480
- });
481
- ```
482
-
483
- ## Server Lifecycle
484
-
485
- Properly manage server lifecycle:
486
-
487
- ```java
488
- import reactor.core.Disposable;
489
-
490
- Disposable serverDisposable = server.start(transport).subscribe();
491
-
492
- // Graceful shutdown
493
- Runtime.getRuntime().addShutdownHook(new Thread(() -> {
494
- log.info("Shutting down MCP server");
495
- serverDisposable.dispose();
496
- server.stop().block();
497
- }));
498
- ```
499
-
500
- ## Common Patterns
501
-
502
- ### Request Validation
503
-
504
- ```java
505
- server.addToolHandler("validate", (args) -> {
506
- if (!args.has("required_field")) {
507
- return Mono.just(ToolResponse.error()
508
- .message("Missing required_field")
509
- .build());
510
- }
511
-
512
- return processRequest(args);
513
- });
514
- ```
515
-
516
- ### Async Operations
517
-
518
- ```java
519
- server.addToolHandler("async", (args) -> {
520
- return Mono.fromCallable(() -> callExternalApi(args))
521
- .timeout(Duration.ofSeconds(30))
522
- .onErrorResume(TimeoutException.class, e ->
523
- Mono.just(ToolResponse.error()
524
- .message("Operation timed out")
525
- .build()))
526
- .subscribeOn(Schedulers.boundedElastic());
527
- });
528
- ```
529
-
530
- ### Resource Caching
531
-
532
- ```java
533
- private final Map<String, String> cache = new ConcurrentHashMap<>();
534
-
535
- server.addResourceReadHandler((uri) -> {
536
- return Mono.fromCallable(() ->
537
- cache.computeIfAbsent(uri, this::loadResource))
538
- .map(content -> ResourceContent.text(content, uri));
539
- });
540
- ```
541
-
542
- ## Best Practices
543
-
544
- 1. **Use Reactive Streams** for async operations and backpressure
545
- 2. **Leverage Spring Boot** starter for enterprise applications
546
- 3. **Implement proper error handling** with specific error messages
547
- 4. **Use SLF4J** for logging, not System.out
548
- 5. **Validate inputs** in tool and prompt handlers
549
- 6. **Support graceful shutdown** with proper resource cleanup
550
- 7. **Use bounded elastic scheduler** for blocking operations
551
- 8. **Propagate context** for observability in reactive chains
552
- 9. **Test with synchronous API** for simplicity
553
- 10. **Follow Java naming conventions** (camelCase for methods, PascalCase for classes)
@@ -1,81 +0,0 @@
1
- ---
2
- description: 'Guidelines for building Java base applications'
3
- applyTo: '**/*.java'
4
- ---
5
-
6
- # Java Development
7
-
8
- ## General Instructions
9
-
10
- - First, prompt the user if they want to integrate static analysis tools (SonarQube, PMD, Checkstyle) into their project setup.
11
- - If yes, document a recommended static-analysis setup.
12
- - Prefer SonarQube/SonarCloud (SonarLint in IDE + `sonar-scanner` in CI).
13
- - Create a Sonar project key.
14
- - Store the scanner token in CI secrets.
15
- - Provide a sample CI job that runs the scanner.
16
- - If the team declines Sonar, note this in the project README and continue.
17
- - If Sonar is bound to the project:
18
- - Use Sonar as the primary source of actionable issues.
19
- - Reference Sonar rule keys in remediation guidance.
20
- - If Sonar is unavailable:
21
- - Perform up to 3 troubleshooting checks:
22
- 1. Verify project binding and token.
23
- 2. Ensure SonarScanner runs in CI.
24
- 3. Confirm SonarLint is installed and configured.
25
- - If still failing after 3 attempts:
26
- - Enable SpotBugs, PMD, or Checkstyle as CI fallbacks.
27
- - Open a short tracker issue documenting the blocker and next steps.
28
- - If the user declines static analysis tools or wants to proceed without them, continue with implementing the Best practices, bug patterns and code smell prevention guidelines outlined below.
29
- - Address code smells proactively during development rather than accumulating technical debt.
30
- - Focus on readability, maintainability, and performance when refactoring identified issues.
31
- - Use IDE / Code editor reported warnings and suggestions to catch common patterns early in development.
32
-
33
- ## Best practices
34
-
35
- - **Records**: For classes primarily intended to store data (e.g., DTOs, immutable data structures), **Java Records should be used instead of traditional classes**.
36
- - **Pattern Matching**: Utilize pattern matching for `instanceof` and `switch` expression to simplify conditional logic and type casting.
37
- - **Type Inference**: Use `var` for local variable declarations to improve readability, but only when the type is explicitly clear from the right-hand side of the expression.
38
- - **Immutability**: Favor immutable objects. Make classes and fields `final` where possible. Use collections from `List.of()`/`Map.of()` for fixed data. Use `Stream.toList()` to create immutable lists.
39
- - **Streams and Lambdas**: Use the Streams API and lambda expressions for collection processing. Employ method references (e.g., `stream.map(Foo::toBar)`).
40
- - **Null Handling**: Avoid returning or accepting `null`. Use `Optional<T>` for possibly-absent values and `Objects` utility methods like `equals()` and `requireNonNull()`.
41
-
42
- ### Naming Conventions
43
-
44
- - Follow Google's Java style guide:
45
- - `UpperCamelCase` for class and interface names.
46
- - `lowerCamelCase` for method and variable names.
47
- - `UPPER_SNAKE_CASE` for constants.
48
- - `lowercase` for package names.
49
- - Use nouns for classes (`UserService`) and verbs for methods (`getUserById`).
50
- - Avoid abbreviations and Hungarian notation.
51
-
52
- ### Common Bug Patterns
53
-
54
- Below are concise, human-readable rules you can apply regardless of which static analysis tool you use. If you run Sonar/SonarLint, the IDE will show the matching rule and location — direct Sonar connections are preferred and should override this ruleset.
55
-
56
- - Resource management — Always close resources (files, sockets, streams). Use try-with-resources where possible so resources are closed automatically.
57
- - Equality checks — Compare object equality with `.equals()` or `Objects.equals(...)` rather than `==` for non-primitives; this avoids reference-equality bugs.
58
- - Redundant casts — Remove unnecessary casts; prefer correct generic typing and let the compiler infer types where possible.
59
- - Reachable conditions — Avoid conditional expressions that are always true or false; they indicate bugs or dead code and should be corrected.
60
-
61
- For contributors who *do* use Sonar or SonarLint: the IDE/scan will show the specific rule key (for example, S2095 for resource leaks) and the affected file/line. Use that information to navigate to the exact location, then apply the recommended remediation.
62
-
63
- ### Common Code Smells
64
-
65
- These patterns are phrased for humans; they map cleanly to checks in Sonar, SpotBugs, PMD, or Checkstyle but do not require those tools to be useful.
66
-
67
- - Parameter count — Keep method parameter lists short. If a method needs many params, consider grouping into a value object or using the builder pattern.
68
- - Method size — Keep methods focused and small. Extract helper methods to improve readability and testability.
69
- - Cognitive complexity — Reduce nested conditionals and heavy branching by extracting methods, using polymorphism, or applying the Strategy pattern.
70
- - Duplicated literals — Extract repeated strings and numbers into named constants or enums to reduce errors and ease changes.
71
- - Dead code — Remove unused variables and assignments. They confuse readers and can hide bugs.
72
- - Magic numbers — Replace numeric literals with named constants that explain intent (e.g., MAX_RETRIES).
73
-
74
- If you run a static analyzer like Sonar or SonarLint — direct Sonar connections are preferred and should override this ruleset. Sonar rule keys are useful for automation and suppression, but they are not required in day-to-day developer guidance.
75
-
76
- ## Build and Verification
77
-
78
- - After adding or modifying code, verify the project continues to build successfully.
79
- - If the project uses Maven, run `mvn clean install`.
80
- - If the project uses Gradle, run `./gradlew build` (or `gradlew.bat build` on Windows).
81
- - Ensure all tests pass as part of the build.