shmakk 1.1.0 → 1.2.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 (450) hide show
  1. package/README.md +16 -1
  2. package/package.json +6 -3
  3. package/scripts/import-skills.js +536 -0
  4. package/scripts/install-skills.js +64 -0
  5. package/skills/ai-elements.md +482 -0
  6. package/skills/architecture.md +151 -0
  7. package/skills/backend-adapter-aws-lambda.md +204 -0
  8. package/skills/backend-adapter-express.md +177 -0
  9. package/skills/backend-adapter-fastify.md +222 -0
  10. package/skills/backend-adapter-fetch.md +200 -0
  11. package/skills/backend-api-docs.md +22 -0
  12. package/skills/backend-aspire.md +232 -0
  13. package/skills/backend-aspnet-core.md +62 -0
  14. package/skills/backend-build-chatgpt-app.md +321 -0
  15. package/skills/backend-build-mcp-app.md +393 -0
  16. package/skills/backend-build-mcp-server.md +222 -0
  17. package/skills/backend-build-mcpb.md +200 -0
  18. package/skills/backend-building-ai-agent-on-cloudflare.md +401 -0
  19. package/skills/backend-caching.md +206 -0
  20. package/skills/backend-chatgpt-app-submission.md +157 -0
  21. package/skills/backend-chatgpt-apps.md +321 -0
  22. package/skills/backend-client-setup.md +318 -0
  23. package/skills/backend-containerize-aspnet-framework.md +455 -0
  24. package/skills/backend-create-spring-boot-java-project.md +164 -0
  25. package/skills/backend-create-spring-boot-kotlin-project.md +148 -0
  26. package/skills/backend-csharp-async.md +50 -0
  27. package/skills/backend-csharp-docs.md +63 -0
  28. package/skills/backend-csharp-mcp-server-generator.md +60 -0
  29. package/skills/backend-dotenv.md +201 -0
  30. package/skills/backend-dotenvx.md +119 -0
  31. package/skills/backend-env-vars.md +259 -0
  32. package/skills/backend-error-handling.md +254 -0
  33. package/skills/backend-fastapi.md +437 -0
  34. package/skills/backend-go-mcp-server-generator.md +335 -0
  35. package/skills/backend-java-mcp-server-generator.md +757 -0
  36. package/skills/backend-kotlin-mcp-server-generator.md +450 -0
  37. package/skills/backend-middlewares.md +243 -0
  38. package/skills/backend-multi-stage-dockerfile.md +47 -0
  39. package/skills/backend-nestjs.md +192 -0
  40. package/skills/backend-next-forge.md +375 -0
  41. package/skills/backend-nextjs.md +746 -0
  42. package/skills/backend-openapi-to-application-code.md +113 -0
  43. package/skills/backend-php-mcp-server-generator.md +523 -0
  44. package/skills/backend-python-mcp-server-generator.md +106 -0
  45. package/skills/backend-routing-middleware.md +251 -0
  46. package/skills/backend-ruby-mcp-server-generator.md +661 -0
  47. package/skills/backend-rust-mcp-server-generator.md +578 -0
  48. package/skills/backend-semantic-kernel.md +57 -0
  49. package/skills/backend-server-setup.md +379 -0
  50. package/skills/backend-server-side-calls.md +250 -0
  51. package/skills/backend-subscriptions.md +407 -0
  52. package/skills/backend-swift-mcp-server-generator.md +670 -0
  53. package/skills/backend-trpc-router.md +152 -0
  54. package/skills/backend-typescript-mcp-server-generator.md +91 -0
  55. package/skills/backend-validators.md +229 -0
  56. package/skills/backend.md +76 -0
  57. package/skills/backup.md +165 -0
  58. package/skills/budget.md +140 -0
  59. package/skills/business-gtm-0-to-1-launch.md +322 -0
  60. package/skills/business-gtm-operating-cadence.md +421 -0
  61. package/skills/business-gtm-positioning-strategy.md +439 -0
  62. package/skills/business-gtm-product-led-growth.md +340 -0
  63. package/skills/calendar.md +95 -0
  64. package/skills/code-review.md +130 -0
  65. package/skills/compliance.md +168 -0
  66. package/skills/contracts.md +130 -0
  67. package/skills/daily-job-run.md +46 -0
  68. package/skills/daily-webdesign.md +187 -0
  69. package/skills/database-bigquery-pipeline-audit.md +130 -0
  70. package/skills/database-cosmosdb-datamodeling.md +1046 -0
  71. package/skills/database-durable-objects.md +187 -0
  72. package/skills/database-ef-core.md +76 -0
  73. package/skills/database-fabric-lakehouse.md +107 -0
  74. package/skills/database-neon-postgres-egress-optimizer.md +213 -0
  75. package/skills/database-neon-postgres.md +218 -0
  76. package/skills/database-postgresql-code-review.md +213 -0
  77. package/skills/database-postgresql-optimization.md +405 -0
  78. package/skills/database-sql-code-review.md +302 -0
  79. package/skills/database-sql-optimization.md +297 -0
  80. package/skills/dependency-audit.md +165 -0
  81. package/skills/design-kami-landing.md +234 -0
  82. package/skills/design.md +221 -0
  83. package/skills/dev-acquire-codebase-knowledge.md +175 -0
  84. package/skills/dev-add-educational-comments.md +129 -0
  85. package/skills/dev-add-model-descriptions.md +74 -0
  86. package/skills/dev-adr-review.md +56 -0
  87. package/skills/dev-boost-prompt.md +26 -0
  88. package/skills/dev-build-run-debug.md +130 -0
  89. package/skills/dev-chunk.md +49 -0
  90. package/skills/dev-claude-md-improver.md +180 -0
  91. package/skills/dev-code-exemplars-blueprint-generator.md +127 -0
  92. package/skills/dev-code-tour.md +434 -0
  93. package/skills/dev-comment-code-generate-a-tutorial.md +27 -0
  94. package/skills/dev-commit.md +81 -0
  95. package/skills/dev-context-map.md +53 -0
  96. package/skills/dev-conventional-commit.md +73 -0
  97. package/skills/dev-create-architectural-decision-record.md +98 -0
  98. package/skills/dev-create-draft-pr.md +17 -0
  99. package/skills/dev-create-pr.md +17 -0
  100. package/skills/dev-create-readme.md +22 -0
  101. package/skills/dev-csharp-mstest.md +479 -0
  102. package/skills/dev-csharp-nunit.md +72 -0
  103. package/skills/dev-csharp-tunit.md +101 -0
  104. package/skills/dev-csharp-xunit.md +69 -0
  105. package/skills/dev-debug-failing-test.md +90 -0
  106. package/skills/dev-diff-analyze.md +32 -0
  107. package/skills/dev-diffs.md +24 -0
  108. package/skills/dev-dotnet-best-practices.md +86 -0
  109. package/skills/dev-dotnet-design-pattern-review.md +43 -0
  110. package/skills/dev-dotnet-timezone.md +110 -0
  111. package/skills/dev-dotnet-upgrade.md +117 -0
  112. package/skills/dev-doublecheck.md +278 -0
  113. package/skills/dev-explain-error.md +15 -0
  114. package/skills/dev-finding-discovery.md +164 -0
  115. package/skills/dev-fix-finding.md +111 -0
  116. package/skills/dev-full-file-edit.md +25 -0
  117. package/skills/dev-git-commit.md +125 -0
  118. package/skills/dev-git-flow-branch-creator.md +293 -0
  119. package/skills/dev-git-workflow.md +46 -0
  120. package/skills/dev-github-automation.md +64 -0
  121. package/skills/dev-github-code-review.md +1140 -0
  122. package/skills/dev-github-issues.md +202 -0
  123. package/skills/dev-gpt-5-4-prompting.md +55 -0
  124. package/skills/dev-investigation-mode.md +277 -0
  125. package/skills/dev-java-add-graalvm-native-image-support.md +450 -0
  126. package/skills/dev-java-docs.md +24 -0
  127. package/skills/dev-java-refactoring-extract-method.md +105 -0
  128. package/skills/dev-java-refactoring-remove-parameter.md +85 -0
  129. package/skills/dev-merge.md +73 -0
  130. package/skills/dev-migrate-create.md +36 -0
  131. package/skills/dev-migrate-validate.md +36 -0
  132. package/skills/dev-my-issues.md +9 -0
  133. package/skills/dev-my-pull-requests.md +15 -0
  134. package/skills/dev-planning-oracle-to-postgres-migration-integration-testing.md +45 -0
  135. package/skills/dev-playwright-generate-test.md +18 -0
  136. package/skills/dev-playwright.md +148 -0
  137. package/skills/dev-prompt-builder.md +142 -0
  138. package/skills/dev-pytest-coverage.md +29 -0
  139. package/skills/dev-python-manager-discovery.md +330 -0
  140. package/skills/dev-python-pypi-package-builder.md +445 -0
  141. package/skills/dev-readme-blueprint-generator.md +79 -0
  142. package/skills/dev-refactor-method-complexity-reduce.md +99 -0
  143. package/skills/dev-refactor-plan.md +66 -0
  144. package/skills/dev-refactor.md +646 -0
  145. package/skills/dev-review-and-refactor.md +16 -0
  146. package/skills/dev-reviewing-oracle-to-postgres-migration.md +68 -0
  147. package/skills/dev-ruff-recursive-fix.md +201 -0
  148. package/skills/dev-run-e2e-tests.md +126 -0
  149. package/skills/dev-run-pre-commit-checks.md +133 -0
  150. package/skills/dev-run-smoke-tests.md +127 -0
  151. package/skills/dev-scaffolding-oracle-to-postgres-migration-test-project.md +55 -0
  152. package/skills/dev-spring-boot-testing.md +190 -0
  153. package/skills/dev-sync-upstream.md +32 -0
  154. package/skills/dev-sync.md +74 -0
  155. package/skills/dev-tdd-workflow.md +23 -0
  156. package/skills/dev-terraform-azurerm-set-diff-analyzer.md +49 -0
  157. package/skills/dev-test-driven-development.md +372 -0
  158. package/skills/dev-test-gaps.md +18 -0
  159. package/skills/dev-test-triage.md +55 -0
  160. package/skills/dev-typer.md +267 -0
  161. package/skills/dev-typescript-setup.md +25 -0
  162. package/skills/dev-unified-diff-edit.md +16 -0
  163. package/skills/dev-unit-test-vue-pinia.md +198 -0
  164. package/skills/dev-using-git-worktrees.md +216 -0
  165. package/skills/dev-validation.md +99 -0
  166. package/skills/dev-verification.md +168 -0
  167. package/skills/dev-webapp-testing.md +134 -0
  168. package/skills/dev-write-coding-standards-from-file.md +317 -0
  169. package/skills/dev-write-tests.md +16 -0
  170. package/skills/devops-appinsights-instrumentation.md +49 -0
  171. package/skills/devops-az-cost-optimize.md +306 -0
  172. package/skills/devops-chronicle.md +154 -0
  173. package/skills/devops-deployments-cicd.md +331 -0
  174. package/skills/devops-devops-rollout-plan.md +118 -0
  175. package/skills/devops-geistdocs.md +276 -0
  176. package/skills/devops-observability.md +774 -0
  177. package/skills/devops-observe-metrics.md +35 -0
  178. package/skills/devops-observe-trace.md +30 -0
  179. package/skills/devops-phoenix-cli.md +163 -0
  180. package/skills/devops-phoenix-tracing.md +140 -0
  181. package/skills/devops-publish-to-pages.md +108 -0
  182. package/skills/devops-telemetry.md +87 -0
  183. package/skills/devops-update-avm-modules-in-bicep.md +61 -0
  184. package/skills/devops.md +81 -0
  185. package/skills/diagrams-canvas.md +204 -0
  186. package/skills/diagrams-draw-io-diagram-generator.md +463 -0
  187. package/skills/diagrams-excalidraw-diagram-generator.md +614 -0
  188. package/skills/diagrams-graphify.md +1277 -0
  189. package/skills/docs-bear-notes.md +108 -0
  190. package/skills/docs-create-llms.md +211 -0
  191. package/skills/docs-doc-gen.md +20 -0
  192. package/skills/docs-documentation-writer.md +46 -0
  193. package/skills/docs-llm-config.md +33 -0
  194. package/skills/docs-mkdocs-translations.md +109 -0
  195. package/skills/docs-obsidian-vault-maintainer.md +14 -0
  196. package/skills/docs-obsidian.md +82 -0
  197. package/skills/docs-prose.md +324 -0
  198. package/skills/docs-update-llms.md +217 -0
  199. package/skills/docs-update-markdown-file-index.md +77 -0
  200. package/skills/docs-wiki-maintainer.md +20 -0
  201. package/skills/documents.md +120 -0
  202. package/skills/email.md +113 -0
  203. package/skills/expenses.md +140 -0
  204. package/skills/file-ops.md +149 -0
  205. package/skills/files-convert-plaintext-to-md.md +363 -0
  206. package/skills/files-doc.md +81 -0
  207. package/skills/files-docx.md +594 -0
  208. package/skills/files-markdown-to-html.md +917 -0
  209. package/skills/files-nano-pdf.md +39 -0
  210. package/skills/files-pdf.md +315 -0
  211. package/skills/files-pdftk-server.md +163 -0
  212. package/skills/files-pptx-html-fidelity-audit.md +255 -0
  213. package/skills/files-pptx.md +231 -0
  214. package/skills/files-xlsx.md +301 -0
  215. package/skills/find-jobs.md +78 -0
  216. package/skills/format-conversion.md +157 -0
  217. package/skills/frontend-ai-elements.md +483 -0
  218. package/skills/frontend-ai-gateway.md +563 -0
  219. package/skills/frontend-ai-generation-persistence.md +242 -0
  220. package/skills/frontend-ai-sdk.md +799 -0
  221. package/skills/frontend-ai-visibility.md +127 -0
  222. package/skills/frontend-angular-developer.md +130 -0
  223. package/skills/frontend-aspnet-minimal-api-openapi.md +42 -0
  224. package/skills/frontend-bencium-innovative-ux-designer.md +719 -0
  225. package/skills/frontend-chat-sdk.md +666 -0
  226. package/skills/frontend-chrome-devtools.md +98 -0
  227. package/skills/frontend-frontend-app-builder.md +186 -0
  228. package/skills/frontend-frontend-design.md +43 -0
  229. package/skills/frontend-frontend-testing-debugging.md +143 -0
  230. package/skills/frontend-gsap-framer-scroll-animation.md +152 -0
  231. package/skills/frontend-internal-linking.md +109 -0
  232. package/skills/frontend-json-render.md +335 -0
  233. package/skills/frontend-keyword-clustering.md +118 -0
  234. package/skills/frontend-next-intl-add-language.md +20 -0
  235. package/skills/frontend-on-page-seo.md +112 -0
  236. package/skills/frontend-premium-frontend-ui.md +114 -0
  237. package/skills/frontend-react-best-practices.md +143 -0
  238. package/skills/frontend-schema-markup.md +160 -0
  239. package/skills/frontend-seo-audit.md +110 -0
  240. package/skills/frontend-swr.md +215 -0
  241. package/skills/frontend-technical-seo.md +162 -0
  242. package/skills/frontend-use-dom.md +418 -0
  243. package/skills/frontend-web-coder.md +564 -0
  244. package/skills/frontend-web-design-reviewer.md +369 -0
  245. package/skills/frontend-web-perf.md +202 -0
  246. package/skills/frontend.md +125 -0
  247. package/skills/general-adapter-standalone.md +199 -0
  248. package/skills/general-auth.md +356 -0
  249. package/skills/general-containerize-aspnetcore.md +393 -0
  250. package/skills/general-create-technical-spike.md +231 -0
  251. package/skills/general-cron-jobs.md +72 -0
  252. package/skills/general-ddd-aggregate.md +52 -0
  253. package/skills/general-ddd-context.md +46 -0
  254. package/skills/general-ddd-validate.md +51 -0
  255. package/skills/general-dependency-check.md +26 -0
  256. package/skills/general-email-marketing.md +86 -0
  257. package/skills/general-healthcheck.md +246 -0
  258. package/skills/general-import-infrastructure-as-code.md +368 -0
  259. package/skills/general-init.md +49 -0
  260. package/skills/general-java-junit.md +64 -0
  261. package/skills/general-java-springboot.md +66 -0
  262. package/skills/general-javascript-typescript-jest.md +45 -0
  263. package/skills/general-kotlin-springboot.md +71 -0
  264. package/skills/general-make-repo-contribution.md +91 -0
  265. package/skills/general-market-research.md +78 -0
  266. package/skills/general-marketplace.md +468 -0
  267. package/skills/general-model-recommendation.md +673 -0
  268. package/skills/general-payments.md +352 -0
  269. package/skills/general-quality-playbook.md +480 -0
  270. package/skills/general-run-integration-tests.md +113 -0
  271. package/skills/general-superjson.md +274 -0
  272. package/skills/general-swiftpm-macos.md +51 -0
  273. package/skills/general-threat-model.md +61 -0
  274. package/skills/invoices.md +167 -0
  275. package/skills/licenses.md +159 -0
  276. package/skills/logs.md +156 -0
  277. package/skills/marketing.md +139 -0
  278. package/skills/media-image-manipulation-image-magick.md +253 -0
  279. package/skills/media-imagegen.md +357 -0
  280. package/skills/media-openai-whisper-api.md +63 -0
  281. package/skills/media-openai-whisper.md +39 -0
  282. package/skills/media-peekaboo.md +191 -0
  283. package/skills/media-screenshot.md +268 -0
  284. package/skills/media-speech.md +145 -0
  285. package/skills/media-transcribe.md +82 -0
  286. package/skills/media-video-frames.md +47 -0
  287. package/skills/mobile-android-emulator-qa.md +81 -0
  288. package/skills/mobile-android-performance.md +280 -0
  289. package/skills/mobile-building-mcp-server-on-cloudflare.md +267 -0
  290. package/skills/mobile-building-native-ui.md +322 -0
  291. package/skills/mobile-expo-api-routes.md +369 -0
  292. package/skills/mobile-expo-cicd-workflows.md +92 -0
  293. package/skills/mobile-expo-deployment.md +191 -0
  294. package/skills/mobile-expo-dev-client.md +165 -0
  295. package/skills/mobile-expo-module.md +177 -0
  296. package/skills/mobile-expo-tailwind-setup.md +481 -0
  297. package/skills/mobile-expo-ui-jetpack-compose.md +41 -0
  298. package/skills/mobile-expo-ui-swift-ui.md +40 -0
  299. package/skills/mobile-ios-app-intents.md +78 -0
  300. package/skills/mobile-ios-debugger-agent.md +52 -0
  301. package/skills/mobile-ios-ettrace-performance.md +198 -0
  302. package/skills/mobile-ios-memgraph-leaks.md +77 -0
  303. package/skills/mobile-native-data-fetching.md +508 -0
  304. package/skills/mobile-packaging-notarization.md +48 -0
  305. package/skills/mobile-react-native-architecture.md +672 -0
  306. package/skills/mobile-react-native-mobile-design.md +438 -0
  307. package/skills/mobile-signing-entitlements.md +59 -0
  308. package/skills/mobile-swiftui-liquid-glass.md +91 -0
  309. package/skills/mobile-swiftui-patterns.md +210 -0
  310. package/skills/mobile-swiftui-performance-audit.md +108 -0
  311. package/skills/mobile-swiftui-ui-patterns.md +97 -0
  312. package/skills/mobile-swiftui-view-refactor.md +204 -0
  313. package/skills/mobile-upgrading-expo.md +134 -0
  314. package/skills/mobile.md +183 -0
  315. package/skills/notes.md +106 -0
  316. package/skills/planning-adr-create.md +62 -0
  317. package/skills/planning-adr-index.md +67 -0
  318. package/skills/planning-architecture-blueprint-generator.md +323 -0
  319. package/skills/planning-brainstorming.md +165 -0
  320. package/skills/planning-breakdown-epic-arch.md +67 -0
  321. package/skills/planning-breakdown-epic-pm.md +59 -0
  322. package/skills/planning-breakdown-feature-implementation.md +129 -0
  323. package/skills/planning-breakdown-feature-prd.md +62 -0
  324. package/skills/planning-breakdown-plan.md +510 -0
  325. package/skills/planning-breakdown-test.md +366 -0
  326. package/skills/planning-cloud-design-patterns.md +63 -0
  327. package/skills/planning-content-brief.md +128 -0
  328. package/skills/planning-content-strategy.md +138 -0
  329. package/skills/planning-content-translation.md +143 -0
  330. package/skills/planning-create-github-action-workflow-specification.md +277 -0
  331. package/skills/planning-create-github-issues-feature-from-implementation-plan.md +29 -0
  332. package/skills/planning-create-github-issues-for-unmet-specification-requirements.md +36 -0
  333. package/skills/planning-create-github-pull-request-from-specification.md +25 -0
  334. package/skills/planning-create-implementation-plan.md +158 -0
  335. package/skills/planning-create-specification.md +128 -0
  336. package/skills/planning-first-ask.md +31 -0
  337. package/skills/planning-folder-structure-blueprint-generator.md +406 -0
  338. package/skills/planning-gen-specs-as-issues.md +166 -0
  339. package/skills/planning-generate-snapshot.md +144 -0
  340. package/skills/planning-generate-status-report.md +336 -0
  341. package/skills/planning-metric-pack-designer.md +27 -0
  342. package/skills/planning-pm-spec.md +53 -0
  343. package/skills/planning-prd.md +144 -0
  344. package/skills/planning-project-assessment.md +182 -0
  345. package/skills/planning-project-setup-info-local.md +128 -0
  346. package/skills/planning-project-workflow-analysis-blueprint-generator.md +294 -0
  347. package/skills/planning-service-oriented-architecture.md +248 -0
  348. package/skills/planning-spec-to-backlog.md +544 -0
  349. package/skills/planning-technology-stack-blueprint-generator.md +243 -0
  350. package/skills/planning-update-implementation-plan.md +158 -0
  351. package/skills/planning-update-specification.md +128 -0
  352. package/skills/planning-what-context-needed.md +40 -0
  353. package/skills/planning-writing-plans.md +153 -0
  354. package/skills/prepare-application.md +81 -0
  355. package/skills/productivity-apple-notes.md +78 -0
  356. package/skills/productivity-apple-reminders.md +119 -0
  357. package/skills/productivity-capture-tasks-from-meeting-notes.md +680 -0
  358. package/skills/productivity-daily-prep.md +156 -0
  359. package/skills/productivity-email-drafter.md +101 -0
  360. package/skills/productivity-hr-onboarding.md +53 -0
  361. package/skills/productivity-things-mac.md +87 -0
  362. package/skills/productivity-update.md +169 -0
  363. package/skills/reminders.md +109 -0
  364. package/skills/research-dossier-collect.md +71 -0
  365. package/skills/research-kg-extract.md +37 -0
  366. package/skills/research-openai-docs.md +89 -0
  367. package/skills/research-research-add-items.md +31 -0
  368. package/skills/research-research-report.md +94 -0
  369. package/skills/research-research-synthesize.md +63 -0
  370. package/skills/research-summarize.md +88 -0
  371. package/skills/research-transformers-js.md +635 -0
  372. package/skills/research.md +119 -0
  373. package/skills/security-ai-prompt-engineering-safety-review.md +231 -0
  374. package/skills/security-attack-path-analysis.md +182 -0
  375. package/skills/security-gdpr-compliant.md +284 -0
  376. package/skills/security-mcp-security-audit.md +279 -0
  377. package/skills/security-pii-detect.md +31 -0
  378. package/skills/security-secret-scanning.md +243 -0
  379. package/skills/security-security-best-practices.md +87 -0
  380. package/skills/security-security-ownership-map.md +207 -0
  381. package/skills/security-security-review.md +169 -0
  382. package/skills/security-security-scan.md +138 -0
  383. package/skills/security-security-threat-model.md +82 -0
  384. package/skills/security-threat-model-analyst.md +76 -0
  385. package/skills/sysmon.md +181 -0
  386. package/skills/system-arch-linux-triage.md +32 -0
  387. package/skills/system-centos-linux-triage.md +32 -0
  388. package/skills/system-debian-linux-triage.md +32 -0
  389. package/skills/system-fedora-linux-triage.md +32 -0
  390. package/skills/system-geofeed-tuner.md +865 -0
  391. package/skills/system-iot-anomalies.md +15 -0
  392. package/skills/system-iot-firmware.md +16 -0
  393. package/skills/system-iot-fleet.md +14 -0
  394. package/skills/system-iot-register.md +19 -0
  395. package/skills/system-iot-witness-verify.md +15 -0
  396. package/skills/system-tmux.md +171 -0
  397. package/skills/system-window-management.md +228 -0
  398. package/skills/task-management.md +90 -0
  399. package/skills/tasks.md +102 -0
  400. package/skills/test-coverage.md +188 -0
  401. package/skills/ux-ui.md +128 -0
  402. package/skills/web.md +186 -0
  403. package/skills/workflow-act-on-feedback.md +15 -0
  404. package/skills/workflow-automate-this.md +245 -0
  405. package/skills/workflow-autoresearch.md +276 -0
  406. package/skills/workflow-coding-agent.md +317 -0
  407. package/skills/workflow-deep-research.md +44 -0
  408. package/skills/workflow-dispatching-parallel-agents.md +183 -0
  409. package/skills/workflow-eval-driven-dev.md +148 -0
  410. package/skills/workflow-executing-plans.md +71 -0
  411. package/skills/workflow-mentoring-juniors.md +311 -0
  412. package/skills/workflow-receiving-code-review.md +214 -0
  413. package/skills/workflow-repo-story-time.md +155 -0
  414. package/skills/workflow-requesting-code-review.md +104 -0
  415. package/skills/workflow-session-report.md +43 -0
  416. package/skills/workflow-structured-autonomy-generate.md +126 -0
  417. package/skills/workflow-subagent-driven-development.md +280 -0
  418. package/skills/writing.md +106 -0
  419. package/src/agent.js +0 -0
  420. package/src/browser.js +297 -0
  421. package/src/cli.js +25 -4
  422. package/src/code-reviewer.js +119 -0
  423. package/src/completions.js +1 -1
  424. package/src/control.js +222 -30
  425. package/src/coordinator.js +303 -0
  426. package/src/correction.js +29 -8
  427. package/src/edit-tracker.js +21 -0
  428. package/src/edit-viewer.js +414 -0
  429. package/src/endpoints.js +64 -15
  430. package/src/index.js +45 -11
  431. package/src/llm.js +86 -2
  432. package/src/mcp-client.js +416 -0
  433. package/src/memory.js +182 -0
  434. package/src/planner.js +216 -0
  435. package/src/rules.js +90 -0
  436. package/src/self-commands.js +757 -0
  437. package/src/services/voice.js +10 -7
  438. package/src/session-search.js +427 -0
  439. package/src/session.js +487 -99
  440. package/src/shmakk-server.js +91 -0
  441. package/src/skills.js +410 -3
  442. package/src/subagent.js +4 -1
  443. package/src/system-prompt.js +13 -5
  444. package/src/task-file.js +114 -0
  445. package/src/taskClassifier.js +246 -0
  446. package/src/team.js +752 -0
  447. package/src/tools.js +142 -21
  448. package/src/web.js +35 -5
  449. package/src/workflows.js +261 -0
  450. package/src/workspace-index.js +25 -6
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: csharp-nunit
3
+ description: 'Get best practices for NUnit unit testing, including data-driven tests'
4
+ category: dev
5
+ ---
6
+
7
+ # NUnit Best Practices
8
+
9
+ Your goal is to help me write effective unit tests with NUnit, covering both standard and data-driven testing approaches.
10
+
11
+ ## Project Setup
12
+
13
+ - Use a separate test project with naming convention `[ProjectName].Tests`
14
+ - Reference Microsoft.NET.Test.Sdk, NUnit, and NUnit3TestAdapter packages
15
+ - Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
16
+ - Use .NET SDK test commands: `dotnet test` for running tests
17
+
18
+ ## Test Structure
19
+
20
+ - Apply `[TestFixture]` attribute to test classes
21
+ - Use `[Test]` attribute for test methods
22
+ - Follow the Arrange-Act-Assert (AAA) pattern
23
+ - Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
24
+ - Use `[SetUp]` and `[TearDown]` for per-test setup and teardown
25
+ - Use `[OneTimeSetUp]` and `[OneTimeTearDown]` for per-class setup and teardown
26
+ - Use `[SetUpFixture]` for assembly-level setup and teardown
27
+
28
+ ## Standard Tests
29
+
30
+ - Keep tests focused on a single behavior
31
+ - Avoid testing multiple behaviors in one test method
32
+ - Use clear assertions that express intent
33
+ - Include only the assertions needed to verify the test case
34
+ - Make tests independent and idempotent (can run in any order)
35
+ - Avoid test interdependencies
36
+
37
+ ## Data-Driven Tests
38
+
39
+ - Use `[TestCase]` for inline test data
40
+ - Use `[TestCaseSource]` for programmatically generated test data
41
+ - Use `[Values]` for simple parameter combinations
42
+ - Use `[ValueSource]` for property or method-based data sources
43
+ - Use `[Random]` for random numeric test values
44
+ - Use `[Range]` for sequential numeric test values
45
+ - Use `[Combinatorial]` or `[Pairwise]` for combining multiple parameters
46
+
47
+ ## Assertions
48
+
49
+ - Use `Assert.That` with constraint model (preferred NUnit style)
50
+ - Use constraints like `Is.EqualTo`, `Is.SameAs`, `Contains.Item`
51
+ - Use `Assert.AreEqual` for simple value equality (classic style)
52
+ - Use `CollectionAssert` for collection comparisons
53
+ - Use `StringAssert` for string-specific assertions
54
+ - Use `Assert.Throws<T>` or `Assert.ThrowsAsync<T>` to test exceptions
55
+ - Use descriptive messages in assertions for clarity on failure
56
+
57
+ ## Mocking and Isolation
58
+
59
+ - Consider using Moq or NSubstitute alongside NUnit
60
+ - Mock dependencies to isolate units under test
61
+ - Use interfaces to facilitate mocking
62
+ - Consider using a DI container for complex test setups
63
+
64
+ ## Test Organization
65
+
66
+ - Group tests by feature or component
67
+ - Use categories with `[Category("CategoryName")]`
68
+ - Use `[Order]` to control test execution order when necessary
69
+ - Use `[Author("DeveloperName")]` to indicate ownership
70
+ - Use `[Description]` to provide additional test information
71
+ - Consider `[Explicit]` for tests that shouldn't run automatically
72
+ - Use `[Ignore("Reason")]` to temporarily skip tests
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: csharp-tunit
3
+ description: 'Get best practices for TUnit unit testing, including data-driven tests'
4
+ category: dev
5
+ ---
6
+
7
+ # TUnit Best Practices
8
+
9
+ Your goal is to help me write effective unit tests with TUnit, covering both standard and data-driven testing approaches.
10
+
11
+ ## Project Setup
12
+
13
+ - Use a separate test project with naming convention `[ProjectName].Tests`
14
+ - Reference TUnit package and TUnit.Assertions for fluent assertions
15
+ - Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
16
+ - Use .NET SDK test commands: `dotnet test` for running tests
17
+ - TUnit requires .NET 8.0 or higher
18
+
19
+ ## Test Structure
20
+
21
+ - No test class attributes required (like xUnit/NUnit)
22
+ - Use `[Test]` attribute for test methods (not `[Fact]` like xUnit)
23
+ - Follow the Arrange-Act-Assert (AAA) pattern
24
+ - Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
25
+ - Use lifecycle hooks: `[Before(Test)]` for setup and `[After(Test)]` for teardown
26
+ - Use `[Before(Class)]` and `[After(Class)]` for shared context between tests in a class
27
+ - Use `[Before(Assembly)]` and `[After(Assembly)]` for shared context across test classes
28
+ - TUnit supports advanced lifecycle hooks like `[Before(TestSession)]` and `[After(TestSession)]`
29
+
30
+ ## Standard Tests
31
+
32
+ - Keep tests focused on a single behavior
33
+ - Avoid testing multiple behaviors in one test method
34
+ - Use TUnit's fluent assertion syntax with `await Assert.That()`
35
+ - Include only the assertions needed to verify the test case
36
+ - Make tests independent and idempotent (can run in any order)
37
+ - Avoid test interdependencies (use `[DependsOn]` attribute if needed)
38
+
39
+ ## Data-Driven Tests
40
+
41
+ - Use `[Arguments]` attribute for inline test data (equivalent to xUnit's `[InlineData]`)
42
+ - Use `[MethodData]` for method-based test data (equivalent to xUnit's `[MemberData]`)
43
+ - Use `[ClassData]` for class-based test data
44
+ - Create custom data sources by implementing `ITestDataSource`
45
+ - Use meaningful parameter names in data-driven tests
46
+ - Multiple `[Arguments]` attributes can be applied to the same test method
47
+
48
+ ## Assertions
49
+
50
+ - Use `await Assert.That(value).IsEqualTo(expected)` for value equality
51
+ - Use `await Assert.That(value).IsSameReferenceAs(expected)` for reference equality
52
+ - Use `await Assert.That(value).IsTrue()` or `await Assert.That(value).IsFalse()` for boolean conditions
53
+ - Use `await Assert.That(collection).Contains(item)` or `await Assert.That(collection).DoesNotContain(item)` for collections
54
+ - Use `await Assert.That(value).Matches(pattern)` for regex pattern matching
55
+ - Use `await Assert.That(action).Throws<TException>()` or `await Assert.That(asyncAction).ThrowsAsync<TException>()` to test exceptions
56
+ - Chain assertions with `.And` operator: `await Assert.That(value).IsNotNull().And.IsEqualTo(expected)`
57
+ - Use `.Or` operator for alternative conditions: `await Assert.That(value).IsEqualTo(1).Or.IsEqualTo(2)`
58
+ - Use `.Within(tolerance)` for DateTime and numeric comparisons with tolerance
59
+ - All assertions are asynchronous and must be awaited
60
+
61
+ ## Advanced Features
62
+
63
+ - Use `[Repeat(n)]` to repeat tests multiple times
64
+ - Use `[Retry(n)]` for automatic retry on failure
65
+ - Use `[ParallelLimit<T>]` to control parallel execution limits
66
+ - Use `[Skip("reason")]` to skip tests conditionally
67
+ - Use `[DependsOn(nameof(OtherTest))]` to create test dependencies
68
+ - Use `[Timeout(milliseconds)]` to set test timeouts
69
+ - Create custom attributes by extending TUnit's base attributes
70
+
71
+ ## Test Organization
72
+
73
+ - Group tests by feature or component
74
+ - Use `[Category("CategoryName")]` for test categorization
75
+ - Use `[DisplayName("Custom Test Name")]` for custom test names
76
+ - Consider using `TestContext` for test diagnostics and information
77
+ - Use conditional attributes like custom `[WindowsOnly]` for platform-specific tests
78
+
79
+ ## Performance and Parallel Execution
80
+
81
+ - TUnit runs tests in parallel by default (unlike xUnit which requires explicit configuration)
82
+ - Use `[NotInParallel]` to disable parallel execution for specific tests
83
+ - Use `[ParallelLimit<T>]` with custom limit classes to control concurrency
84
+ - Tests within the same class run sequentially by default
85
+ - Use `[Repeat(n)]` with `[ParallelLimit<T>]` for load testing scenarios
86
+
87
+ ## Migration from xUnit
88
+
89
+ - Replace `[Fact]` with `[Test]`
90
+ - Replace `[Theory]` with `[Test]` and use `[Arguments]` for data
91
+ - Replace `[InlineData]` with `[Arguments]`
92
+ - Replace `[MemberData]` with `[MethodData]`
93
+ - Replace `Assert.Equal` with `await Assert.That(actual).IsEqualTo(expected)`
94
+ - Replace `Assert.True` with `await Assert.That(condition).IsTrue()`
95
+ - Replace `Assert.Throws<T>` with `await Assert.That(action).Throws<T>()`
96
+ - Replace constructor/IDisposable with `[Before(Test)]`/`[After(Test)]`
97
+ - Replace `IClassFixture<T>` with `[Before(Class)]`/`[After(Class)]`
98
+
99
+ **Why TUnit over xUnit?**
100
+
101
+ TUnit offers a modern, fast, and flexible testing experience with advanced features not present in xUnit, such as asynchronous assertions, more refined lifecycle hooks, and improved data-driven testing capabilities. TUnit's fluent assertions provide clearer and more expressive test validation, making it especially suitable for complex .NET projects.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: csharp-xunit
3
+ description: 'Get best practices for XUnit unit testing, including data-driven tests'
4
+ category: dev
5
+ ---
6
+
7
+ # XUnit Best Practices
8
+
9
+ Your goal is to help me write effective unit tests with XUnit, covering both standard and data-driven testing approaches.
10
+
11
+ ## Project Setup
12
+
13
+ - Use a separate test project with naming convention `[ProjectName].Tests`
14
+ - Reference Microsoft.NET.Test.Sdk, xunit, and xunit.runner.visualstudio packages
15
+ - Create test classes that match the classes being tested (e.g., `CalculatorTests` for `Calculator`)
16
+ - Use .NET SDK test commands: `dotnet test` for running tests
17
+
18
+ ## Test Structure
19
+
20
+ - No test class attributes required (unlike MSTest/NUnit)
21
+ - Use fact-based tests with `[Fact]` attribute for simple tests
22
+ - Follow the Arrange-Act-Assert (AAA) pattern
23
+ - Name tests using the pattern `MethodName_Scenario_ExpectedBehavior`
24
+ - Use constructor for setup and `IDisposable.Dispose()` for teardown
25
+ - Use `IClassFixture<T>` for shared context between tests in a class
26
+ - Use `ICollectionFixture<T>` for shared context between multiple test classes
27
+
28
+ ## Standard Tests
29
+
30
+ - Keep tests focused on a single behavior
31
+ - Avoid testing multiple behaviors in one test method
32
+ - Use clear assertions that express intent
33
+ - Include only the assertions needed to verify the test case
34
+ - Make tests independent and idempotent (can run in any order)
35
+ - Avoid test interdependencies
36
+
37
+ ## Data-Driven Tests
38
+
39
+ - Use `[Theory]` combined with data source attributes
40
+ - Use `[InlineData]` for inline test data
41
+ - Use `[MemberData]` for method-based test data
42
+ - Use `[ClassData]` for class-based test data
43
+ - Create custom data attributes by implementing `DataAttribute`
44
+ - Use meaningful parameter names in data-driven tests
45
+
46
+ ## Assertions
47
+
48
+ - Use `Assert.Equal` for value equality
49
+ - Use `Assert.Same` for reference equality
50
+ - Use `Assert.True`/`Assert.False` for boolean conditions
51
+ - Use `Assert.Contains`/`Assert.DoesNotContain` for collections
52
+ - Use `Assert.Matches`/`Assert.DoesNotMatch` for regex pattern matching
53
+ - Use `Assert.Throws<T>` or `await Assert.ThrowsAsync<T>` to test exceptions
54
+ - Use fluent assertions library for more readable assertions
55
+
56
+ ## Mocking and Isolation
57
+
58
+ - Consider using Moq or NSubstitute alongside XUnit
59
+ - Mock dependencies to isolate units under test
60
+ - Use interfaces to facilitate mocking
61
+ - Consider using a DI container for complex test setups
62
+
63
+ ## Test Organization
64
+
65
+ - Group tests by feature or component
66
+ - Use `[Trait("Category", "CategoryName")]` for categorization
67
+ - Use collection fixtures to group tests with shared dependencies
68
+ - Consider output helpers (`ITestOutputHelper`) for test diagnostics
69
+ - Skip tests conditionally with `Skip = "reason"` in fact/theory attributes
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: debug-failing-test
3
+ description: Debug a failing test using an iterative logging approach, then clean up and document the learning.
4
+ category: dev
5
+ ---
6
+
7
+ Debug a failing unit test by iteratively adding verbose logging, running the test, and analyzing the output until the root cause is found and fixed.
8
+
9
+ ## Workflow
10
+
11
+ ### Phase 1: Initial Assessment
12
+
13
+ 1. **Run the failing test** to capture the current error message and stack trace
14
+ 2. **Read the test file** to understand what is being tested
15
+ 3. **Read the source file** being tested to understand the expected behavior
16
+ 4. **Identify the assertion that fails** and what values are involved
17
+
18
+ ### Phase 2: Iterative Debugging Loop
19
+
20
+ Repeat until the root cause is understood:
21
+
22
+ 1. **Add verbose logging** around the suspicious code:
23
+ - Use `console.log('[DEBUG]', ...)` with descriptive labels
24
+ - Log input values, intermediate states, and return values
25
+ - Log before/after key operations
26
+ - Add timestamps if timing might be relevant
27
+
28
+ 2. **Run the test** and capture output
29
+
30
+ 3. **Assess the logging output:**
31
+ - What values are unexpected?
32
+ - Where does the behavior diverge from expectations?
33
+ - What additional logging would help narrow down the issue?
34
+
35
+ 4. **Decide next action:**
36
+ - If root cause is clear → proceed to fix
37
+ - If more information needed → add more targeted logging and repeat
38
+
39
+ ### Phase 3: Fix and Verify
40
+
41
+ 1. **Implement the fix** based on findings
42
+ 2. **Run the test** to verify it passes
43
+ 3. **Run related tests** to ensure no regressions
44
+
45
+ ### Phase 4: Clean Up
46
+
47
+ 1. **Remove ALL debugging artifacts:**
48
+ - Delete all `console.log('[DEBUG]', ...)` statements added
49
+ - Remove any temporary variables or code added for debugging
50
+ - Ensure the code is in a clean, production-ready state
51
+
52
+ 2. **Verify the test still passes** after cleanup
53
+
54
+ ### Phase 5: Document and Learn
55
+
56
+ 1. **Provide a summary** to the user (1-3 sentences):
57
+ - What was the bug?
58
+ - What was the fix?
59
+
60
+ 2. **Record the learning** by following the learning instructions (if you have them):
61
+ - Extract a single, clear learning from this debugging session
62
+ - Add it to the "Learnings" section of the most relevant instruction file
63
+ - If a similar learning already exists, increment its counter instead
64
+
65
+ ## Logging Conventions
66
+
67
+ When adding debug logging, use this format for easy identification and removal:
68
+
69
+ ```typescript
70
+ console.log('[DEBUG] <location>:', <value>);
71
+ console.log('[DEBUG] before <operation>:', { input, state });
72
+ console.log('[DEBUG] after <operation>:', { result, state });
73
+ ```
74
+
75
+ ## Example Debug Session
76
+
77
+ ```typescript
78
+ // Added logging example:
79
+ console.log('[DEBUG] getEnvironments input:', { workspaceFolder });
80
+ const envs = await manager.getEnvironments(workspaceFolder);
81
+ console.log('[DEBUG] getEnvironments result:', { count: envs.length, envs });
82
+ ```
83
+
84
+ ## Notes
85
+
86
+ - Prefer targeted logging over flooding the output
87
+ - Start with the failing assertion and work backwards
88
+ - Consider async timing issues, race conditions, and mock setup problems
89
+ - Check that mocks are returning expected values
90
+ - Verify test setup/teardown is correct
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: diff-analyze
3
+ description: Analyze git diffs for risk scoring, reviewer recommendations, and change classification
4
+ argument-hint: "[--branch BRANCH] [--pr PR#]"
5
+ allowed-tools: mcp__claude-flow__analyze_diff mcp__claude-flow__analyze_diff-risk mcp__claude-flow__analyze_diff-classify mcp__claude-flow__analyze_diff-reviewers mcp__claude-flow__analyze_diff-stats mcp__claude-flow__analyze_file-risk Bash
6
+ category: dev
7
+ ---
8
+
9
+ # Diff Analysis
10
+
11
+ Analyze git diffs for risk, complexity, and reviewer assignment.
12
+
13
+ ## When to use
14
+
15
+ Before submitting a PR or after making significant changes, analyze the diff to understand risk level, get reviewer recommendations, and classify the type of change.
16
+
17
+ ## Steps
18
+
19
+ 1. **Analyze diff** — call `mcp__claude-flow__analyze_diff` with the diff content for a comprehensive analysis
20
+ 2. **Risk score** — call `mcp__claude-flow__analyze_diff-risk` for a quantified risk assessment
21
+ 3. **Classify changes** — call `mcp__claude-flow__analyze_diff-classify` to categorize (feature, bugfix, refactor, etc.)
22
+ 4. **Get reviewers** — call `mcp__claude-flow__analyze_diff-reviewers` for recommended reviewers based on code ownership
23
+ 5. **Diff stats** — call `mcp__claude-flow__analyze_diff-stats` for line counts, file counts, complexity metrics
24
+ 6. **File-level risk** — call `mcp__claude-flow__analyze_file-risk` for per-file risk breakdown
25
+
26
+ ## Risk factors
27
+
28
+ - Files with high churn history
29
+ - Security-sensitive paths (auth, crypto, permissions)
30
+ - Large diffs (>500 lines)
31
+ - Cross-module changes
32
+ - Database migration files
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: diffs
3
+ description: Use the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
4
+ category: dev
5
+ ---
6
+
7
+ When you need to show edits as a real diff, prefer the `diffs` tool instead of writing a manual summary.
8
+
9
+ The `diffs` tool accepts either `before` + `after` text, or a unified `patch` string.
10
+
11
+ Use `mode=view` when you want an interactive gateway-hosted viewer. After the tool returns, use `details.viewerUrl` with the canvas tool via `canvas present` or `canvas navigate`.
12
+ If the deployment uses a loopback trusted proxy (for example Tailscale Serve with `gateway.trustedProxies` including `127.0.0.1`), raw loopback viewer requests can fail closed without forwarded client-IP headers. In that topology, prefer `mode=file` / `mode=both`, or use a configured `viewerBaseUrl` / explicit proxy/public `baseUrl` when you need a shareable viewer URL.
13
+
14
+ Use `mode=file` when you need a rendered file artifact. Set `fileFormat=png` (default) or `fileFormat=pdf`. The tool result includes `details.filePath`.
15
+
16
+ For large or high-fidelity files, use `fileQuality` (`standard`|`hq`|`print`) and optionally override `fileScale`/`fileMaxWidth`.
17
+
18
+ When you need to deliver the rendered file to a user or channel, do not rely on the raw tool-result renderer. Instead, call the `message` tool and pass `details.filePath` through `path` or `filePath`.
19
+
20
+ Use `mode=both` when you want both the gateway viewer URL and the rendered artifact.
21
+
22
+ If the user has configured diffs plugin defaults, prefer omitting `mode`, `theme`, `layout`, and related presentation options unless you need to override them for this specific diff.
23
+
24
+ Include `path` for before/after text when you know the file name.
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: dotnet-best-practices
3
+ description: 'Ensure .NET/C# code meets best practices for the solution/project.'
4
+ category: dev
5
+ ---
6
+
7
+ # .NET/C# Best Practices
8
+
9
+ Your task is to ensure .NET/C# code in ${selection} meets the best practices specific to this solution/project. This includes:
10
+
11
+ ## Documentation & Structure
12
+
13
+ - Create comprehensive XML documentation comments for all public classes, interfaces, methods, and properties
14
+ - Include parameter descriptions and return value descriptions in XML comments
15
+ - Follow the established namespace structure: {Core|Console|App|Service}.{Feature}
16
+
17
+ ## Design Patterns & Architecture
18
+
19
+ - Use primary constructor syntax for dependency injection (e.g., `public class MyClass(IDependency dependency)`)
20
+ - Implement the Command Handler pattern with generic base classes (e.g., `CommandHandler<TOptions>`)
21
+ - Use interface segregation with clear naming conventions (prefix interfaces with 'I')
22
+ - Follow the Factory pattern for complex object creation.
23
+
24
+ ## Dependency Injection & Services
25
+
26
+ - Use constructor dependency injection with null checks via ArgumentNullException
27
+ - Register services with appropriate lifetimes (Singleton, Scoped, Transient)
28
+ - Use Microsoft.Extensions.DependencyInjection patterns
29
+ - Implement service interfaces for testability
30
+
31
+ ## Resource Management & Localization
32
+
33
+ - Use ResourceManager for localized messages and error strings
34
+ - Separate LogMessages and ErrorMessages resource files
35
+ - Access resources via `_resourceManager.GetString("MessageKey")`
36
+
37
+ ## Async/Await Patterns
38
+
39
+ - Use async/await for all I/O operations and long-running tasks
40
+ - Return Task or Task<T> from async methods
41
+ - Use ConfigureAwait(false) where appropriate
42
+ - Handle async exceptions properly
43
+
44
+ ## Testing Standards
45
+
46
+ - Use MSTest framework with FluentAssertions for assertions
47
+ - Follow AAA pattern (Arrange, Act, Assert)
48
+ - Use Moq for mocking dependencies
49
+ - Test both success and failure scenarios
50
+ - Include null parameter validation tests
51
+
52
+ ## Configuration & Settings
53
+
54
+ - Use strongly-typed configuration classes with data annotations
55
+ - Implement validation attributes (Required, NotEmptyOrWhitespace)
56
+ - Use IConfiguration binding for settings
57
+ - Support appsettings.json configuration files
58
+
59
+ ## Semantic Kernel & AI Integration
60
+
61
+ - Use Microsoft.SemanticKernel for AI operations
62
+ - Implement proper kernel configuration and service registration
63
+ - Handle AI model settings (ChatCompletion, Embedding, etc.)
64
+ - Use structured output patterns for reliable AI responses
65
+
66
+ ## Error Handling & Logging
67
+
68
+ - Use structured logging with Microsoft.Extensions.Logging
69
+ - Include scoped logging with meaningful context
70
+ - Throw specific exceptions with descriptive messages
71
+ - Use try-catch blocks for expected failure scenarios
72
+
73
+ ## Performance & Security
74
+
75
+ - Use C# 12+ features and .NET 8 optimizations where applicable
76
+ - Implement proper input validation and sanitization
77
+ - Use parameterized queries for database operations
78
+ - Follow secure coding practices for AI/ML operations
79
+
80
+ ## Code Quality
81
+
82
+ - Ensure SOLID principles compliance
83
+ - Avoid code duplication through base classes and utilities
84
+ - Use meaningful names that reflect domain concepts
85
+ - Keep methods focused and cohesive
86
+ - Implement proper disposal patterns for resources
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: dotnet-design-pattern-review
3
+ description: 'Review the C#/.NET code for design pattern implementation and suggest improvements.'
4
+ category: dev
5
+ ---
6
+
7
+ # .NET/C# Design Pattern Review
8
+
9
+ Review the C#/.NET code in ${selection} for design pattern implementation and suggest improvements for the solution/project. Do not make any changes to the code, just provide a review.
10
+
11
+ ## Required Design Patterns
12
+
13
+ - **Command Pattern**: Generic base classes (`CommandHandler<TOptions>`), `ICommandHandler<TOptions>` interface, `CommandHandlerOptions` inheritance, static `SetupCommand(IHost host)` methods
14
+ - **Factory Pattern**: Complex object creation service provider integration
15
+ - **Dependency Injection**: Primary constructor syntax, `ArgumentNullException` null checks, interface abstractions, proper service lifetimes
16
+ - **Repository Pattern**: Async data access interfaces provider abstractions for connections
17
+ - **Provider Pattern**: External service abstractions (database, AI), clear contracts, configuration handling
18
+ - **Resource Pattern**: ResourceManager for localized messages, separate .resx files (LogMessages, ErrorMessages)
19
+
20
+ ## Review Checklist
21
+
22
+ - **Design Patterns**: Identify patterns used. Are Command Handler, Factory, Provider, and Repository patterns correctly implemented? Missing beneficial patterns?
23
+ - **Architecture**: Follow namespace conventions (`{Core|Console|App|Service}.{Feature}`)? Proper separation between Core/Console projects? Modular and readable?
24
+ - **.NET Best Practices**: Primary constructors, async/await with Task returns, ResourceManager usage, structured logging, strongly-typed configuration?
25
+ - **GoF Patterns**: Command, Factory, Template Method, Strategy patterns correctly implemented?
26
+ - **SOLID Principles**: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion violations?
27
+ - **Performance**: Proper async/await, resource disposal, ConfigureAwait(false), parallel processing opportunities?
28
+ - **Maintainability**: Clear separation of concerns, consistent error handling, proper configuration usage?
29
+ - **Testability**: Dependencies abstracted via interfaces, mockable components, async testability, AAA pattern compatibility?
30
+ - **Security**: Input validation, secure credential handling, parameterized queries, safe exception handling?
31
+ - **Documentation**: XML docs for public APIs, parameter/return descriptions, resource file organization?
32
+ - **Code Clarity**: Meaningful names reflecting domain concepts, clear intent through patterns, self-explanatory structure?
33
+ - **Clean Code**: Consistent style, appropriate method/class size, minimal complexity, eliminated duplication?
34
+
35
+ ## Improvement Focus Areas
36
+
37
+ - **Command Handlers**: Validation in base class, consistent error handling, proper resource management
38
+ - **Factories**: Dependency configuration, service provider integration, disposal patterns
39
+ - **Providers**: Connection management, async patterns, exception handling and logging
40
+ - **Configuration**: Data annotations, validation attributes, secure sensitive value handling
41
+ - **AI/ML Integration**: Semantic Kernel patterns, structured output handling, model configuration
42
+
43
+ Provide specific, actionable recommendations for improvements aligned with the project's architecture and .NET best practices.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: dotnet-timezone
3
+ description: '.NET timezone handling guidance for C# applications. Use when working with TimeZoneInfo, DateTimeOffset, NodaTime, UTC conversion, daylight saving time, scheduling across timezones, cross-platform Windows/IANA timezone IDs, or when a .NET user needs the timezone for a city, address, region, or country and copy-paste-ready C# code.'
4
+ category: dev
5
+ ---
6
+
7
+ # .NET Timezone
8
+
9
+ Resolve timezone questions for .NET and C# code with production-safe guidance and copy-paste-ready snippets.
10
+
11
+ ## Start With The Right Path
12
+
13
+ Identify the request type first:
14
+
15
+ - Address or location lookup
16
+ - Timezone ID lookup
17
+ - UTC/local conversion
18
+ - Cross-platform timezone compatibility
19
+ - Scheduling or DST handling
20
+ - API or persistence design
21
+
22
+ If the library is unclear, default to `TimeZoneConverter` for cross-platform work. If the scenario involves recurring schedules or strict DST rules, prefer `NodaTime`.
23
+
24
+ ## Resolve Addresses And Locations
25
+
26
+ If the user provides an address, city, region, country, or document containing place names:
27
+
28
+ 1. Extract each location from the input.
29
+ 2. Read `references/timezone-index.md` for common Windows and IANA mappings.
30
+ 3. If the exact location is not listed, infer the correct IANA zone from geography, then map it to the Windows ID.
31
+ 4. Return both IDs and a ready-to-use C# example.
32
+
33
+ For each resolved location, provide:
34
+
35
+ ```text
36
+ Location: <resolved place>
37
+ Windows ID: <windows id>
38
+ IANA ID: <iana id>
39
+ UTC offset: <standard offset and DST offset when relevant>
40
+ DST: <yes/no>
41
+ ```
42
+
43
+ Then include a cross-platform snippet like:
44
+
45
+ ```csharp
46
+ using TimeZoneConverter;
47
+
48
+ TimeZoneInfo tz = TZConvert.GetTimeZoneInfo("Asia/Colombo");
49
+ DateTime local = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tz);
50
+ ```
51
+
52
+ If multiple locations are present, include one block per location and then a combined multi-timezone snippet.
53
+
54
+ If a location is ambiguous, list the possible timezone matches and ask the user to choose the correct one.
55
+
56
+ ## Look Up Timezone IDs
57
+
58
+ Use `references/timezone-index.md` for Windows to IANA mappings.
59
+
60
+ Always provide both formats:
61
+
62
+ - Windows ID for `TimeZoneInfo.FindSystemTimeZoneById()` on Windows
63
+ - IANA ID for Linux, containers, `NodaTime`, and `TimeZoneConverter`
64
+
65
+ ## Generate Code
66
+
67
+ Use `references/code-patterns.md` and pick the smallest pattern that fits:
68
+
69
+ - Pattern 1: `TimeZoneInfo` for Windows-only code
70
+ - Pattern 2: `TimeZoneConverter` for cross-platform conversion
71
+ - Pattern 3: `NodaTime` for strict timezone arithmetic and DST-sensitive scheduling
72
+ - Pattern 4: `DateTimeOffset` for APIs and data transfer
73
+ - Pattern 5: ASP.NET Core persistence and presentation
74
+ - Pattern 6: recurring jobs and schedulers
75
+ - Pattern 7: ambiguous and invalid DST timestamps
76
+
77
+ Always include package guidance when recommending third-party libraries.
78
+
79
+ ## Warn About Common Pitfalls
80
+
81
+ Mention the relevant warning when applicable:
82
+
83
+ - `TimeZoneInfo.FindSystemTimeZoneById()` is platform-specific for timezone IDs.
84
+ - Avoid storing `DateTime.Now` in databases; store UTC instead.
85
+ - Treat `DateTimeKind.Unspecified` as a bug risk unless it is deliberate input.
86
+ - DST transitions can skip or repeat local times.
87
+ - Azure Windows and Azure Linux environments may expect different timezone ID formats.
88
+
89
+ ## Response Shape
90
+
91
+ For address and location requests:
92
+
93
+ 1. Return the resolved timezone block for each location.
94
+ 2. State the recommended implementation in one sentence.
95
+ 3. Include a copy-paste-ready C# snippet.
96
+
97
+ For code and architecture requests:
98
+
99
+ 1. State the recommended approach in one sentence.
100
+ 2. Provide the timezone IDs if relevant.
101
+ 3. Include the minimal working code snippet.
102
+ 4. Mention the package requirement if needed.
103
+ 5. Add one pitfall warning if it matters.
104
+
105
+ Keep responses concise and code-first.
106
+
107
+ ## References
108
+
109
+ - `references/timezone-index.md`: common Windows and IANA timezone mappings
110
+ - `references/code-patterns.md`: ready-to-use .NET timezone patterns