@cubis/foundry 0.3.70 → 0.3.72

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 (304) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cli/core.js +4 -18
  3. package/dist/cli/core.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/cli/core.ts +4 -18
  6. package/workflows/powers/accessibility/POWER.md +83 -94
  7. package/workflows/powers/accessibility/SKILL.md +82 -94
  8. package/workflows/powers/agent-design/POWER.md +201 -0
  9. package/workflows/powers/agent-design/SKILL.md +198 -0
  10. package/workflows/powers/agent-design/references/clarification-patterns.md +153 -0
  11. package/workflows/powers/agent-design/references/skill-testing.md +164 -0
  12. package/workflows/powers/agent-design/references/workflow-patterns.md +226 -0
  13. package/workflows/powers/agentic-eval/POWER.md +62 -0
  14. package/workflows/powers/agentic-eval/SKILL.md +59 -0
  15. package/workflows/powers/agentic-eval/references/rubric-and-regression-checklist.md +11 -0
  16. package/workflows/powers/api-designer/POWER.md +43 -71
  17. package/workflows/powers/api-designer/SKILL.md +43 -71
  18. package/workflows/powers/api-patterns/POWER.md +42 -56
  19. package/workflows/powers/api-patterns/SKILL.md +42 -57
  20. package/workflows/powers/architecture-designer/POWER.md +43 -60
  21. package/workflows/powers/architecture-designer/SKILL.md +43 -60
  22. package/workflows/powers/ask-questions-if-underspecified/POWER.md +51 -3
  23. package/workflows/powers/ask-questions-if-underspecified/SKILL.md +51 -3
  24. package/workflows/powers/auth-architect/POWER.md +69 -0
  25. package/workflows/powers/auth-architect/SKILL.md +66 -0
  26. package/workflows/powers/auth-architect/references/session-token-policy-checklist.md +45 -0
  27. package/workflows/powers/behavioral-modes/POWER.md +100 -9
  28. package/workflows/powers/behavioral-modes/SKILL.md +100 -9
  29. package/workflows/powers/c-pro/POWER.md +105 -0
  30. package/workflows/powers/c-pro/SKILL.md +102 -0
  31. package/workflows/powers/c-pro/references/build-systems-and-toolchains.md +148 -0
  32. package/workflows/powers/c-pro/references/common-ub-and-portability.md +166 -0
  33. package/workflows/powers/c-pro/references/debugging-with-sanitizers.md +205 -0
  34. package/workflows/powers/c-pro/references/memory-safety-and-build-checklist.md +60 -0
  35. package/workflows/powers/c-pro/references/posix-and-platform-apis.md +244 -0
  36. package/workflows/powers/changelog-generator/POWER.md +127 -63
  37. package/workflows/powers/changelog-generator/SKILL.md +126 -63
  38. package/workflows/powers/ci-cd-pipelines/POWER.md +156 -0
  39. package/workflows/powers/ci-cd-pipelines/SKILL.md +153 -0
  40. package/workflows/powers/ci-cd-pipelines/references/github-actions-patterns.md +160 -0
  41. package/workflows/powers/ci-cd-pipelines/references/pipeline-security-checklist.md +57 -0
  42. package/workflows/powers/cli-developer/POWER.md +152 -95
  43. package/workflows/powers/cli-developer/SKILL.md +152 -95
  44. package/workflows/powers/cpp-pro/POWER.md +111 -0
  45. package/workflows/powers/cpp-pro/SKILL.md +108 -0
  46. package/workflows/powers/cpp-pro/references/concurrency-primitives.md +266 -0
  47. package/workflows/powers/cpp-pro/references/move-semantics-and-value-types.md +149 -0
  48. package/workflows/powers/cpp-pro/references/performance-and-profiling.md +191 -0
  49. package/workflows/powers/cpp-pro/references/raii-and-modern-cpp-checklist.md +87 -0
  50. package/workflows/powers/cpp-pro/references/template-and-concepts-patterns.md +205 -0
  51. package/workflows/powers/csharp-pro/POWER.md +47 -22
  52. package/workflows/powers/csharp-pro/SKILL.md +47 -22
  53. package/workflows/powers/dart-pro/POWER.md +68 -0
  54. package/workflows/powers/dart-pro/SKILL.md +65 -0
  55. package/workflows/powers/dart-pro/references/isolate-and-concurrency.md +180 -0
  56. package/workflows/powers/dart-pro/references/null-safety-and-async-patterns.md +133 -0
  57. package/workflows/powers/dart-pro/references/package-structure-and-linting.md +193 -0
  58. package/workflows/powers/dart-pro/references/sealed-records-patterns.md +173 -0
  59. package/workflows/powers/dart-pro/references/testing-and-mocking.md +235 -0
  60. package/workflows/powers/database-design/POWER.md +47 -33
  61. package/workflows/powers/database-design/SKILL.md +47 -33
  62. package/workflows/powers/database-optimizer/POWER.md +43 -64
  63. package/workflows/powers/database-optimizer/SKILL.md +43 -64
  64. package/workflows/powers/database-skills/POWER.md +59 -93
  65. package/workflows/powers/database-skills/SKILL.md +59 -93
  66. package/workflows/powers/debugging-strategies/POWER.md +69 -0
  67. package/workflows/powers/debugging-strategies/SKILL.md +66 -0
  68. package/workflows/powers/debugging-strategies/references/reproduce-isolate-verify-checklist.md +42 -0
  69. package/workflows/powers/deep-research/POWER.md +67 -0
  70. package/workflows/powers/deep-research/SKILL.md +64 -0
  71. package/workflows/powers/deep-research/references/multi-round-research-loop.md +80 -0
  72. package/workflows/powers/design-system-builder/POWER.md +130 -116
  73. package/workflows/powers/design-system-builder/SKILL.md +130 -116
  74. package/workflows/powers/devops-engineer/POWER.md +120 -57
  75. package/workflows/powers/devops-engineer/SKILL.md +120 -57
  76. package/workflows/powers/docker-kubernetes/POWER.md +94 -0
  77. package/workflows/powers/docker-kubernetes/SKILL.md +91 -0
  78. package/workflows/powers/docker-kubernetes/references/dockerfile-optimization-checklist.md +35 -0
  79. package/workflows/powers/docker-kubernetes/references/kubernetes-deployment-patterns.md +59 -0
  80. package/workflows/powers/documentation-templates/POWER.md +158 -127
  81. package/workflows/powers/documentation-templates/SKILL.md +158 -127
  82. package/workflows/powers/drizzle-expert/POWER.md +66 -0
  83. package/workflows/powers/drizzle-expert/SKILL.md +63 -0
  84. package/workflows/powers/drizzle-expert/references/runtime-pairing-matrix.md +16 -0
  85. package/workflows/powers/drizzle-expert/references/schema-and-migration-playbook.md +18 -0
  86. package/workflows/powers/error-ux-observability/POWER.md +144 -131
  87. package/workflows/powers/error-ux-observability/SKILL.md +143 -131
  88. package/workflows/powers/fastapi-expert/POWER.md +46 -60
  89. package/workflows/powers/fastapi-expert/SKILL.md +46 -60
  90. package/workflows/powers/firebase/POWER.md +65 -0
  91. package/workflows/powers/firebase/SKILL.md +62 -0
  92. package/workflows/powers/firebase/references/platform-routing.md +16 -0
  93. package/workflows/powers/firebase/references/rules-and-indexes-checklist.md +11 -0
  94. package/workflows/powers/flutter-design-system/POWER.md +63 -0
  95. package/workflows/powers/flutter-design-system/SKILL.md +60 -0
  96. package/workflows/powers/flutter-design-system/references/shared-widgets.md +29 -0
  97. package/workflows/powers/flutter-design-system/references/tokens-and-theme.md +34 -0
  98. package/workflows/powers/flutter-drift/POWER.md +65 -0
  99. package/workflows/powers/flutter-drift/SKILL.md +62 -0
  100. package/workflows/powers/flutter-drift/references/migrations.md +22 -0
  101. package/workflows/powers/flutter-drift/references/query-patterns.md +26 -0
  102. package/workflows/powers/flutter-feature/POWER.md +65 -0
  103. package/workflows/powers/flutter-feature/SKILL.md +62 -0
  104. package/workflows/powers/flutter-feature/references/architecture-rules.md +85 -0
  105. package/workflows/powers/flutter-feature/references/composite-provider.md +58 -0
  106. package/workflows/powers/flutter-feature/references/outbox-pattern.md +87 -0
  107. package/workflows/powers/flutter-feature/references/testing-patterns.md +218 -0
  108. package/workflows/powers/flutter-go-router/POWER.md +64 -0
  109. package/workflows/powers/flutter-go-router/SKILL.md +61 -0
  110. package/workflows/powers/flutter-go-router/references/guards-and-deeplinks.md +20 -0
  111. package/workflows/powers/flutter-go-router/references/typed-routes.md +27 -0
  112. package/workflows/powers/flutter-offline-sync/POWER.md +62 -0
  113. package/workflows/powers/flutter-offline-sync/SKILL.md +59 -0
  114. package/workflows/powers/flutter-offline-sync/references/outbox-full.md +44 -0
  115. package/workflows/powers/flutter-repository/POWER.md +64 -0
  116. package/workflows/powers/flutter-repository/SKILL.md +61 -0
  117. package/workflows/powers/flutter-repository/references/drift-patterns.md +21 -0
  118. package/workflows/powers/flutter-repository/references/retrofit-patterns.md +20 -0
  119. package/workflows/powers/flutter-riverpod/POWER.md +70 -0
  120. package/workflows/powers/flutter-riverpod/SKILL.md +67 -0
  121. package/workflows/powers/flutter-riverpod/references/async-and-mutations.md +19 -0
  122. package/workflows/powers/flutter-riverpod/references/async-lifecycle.md +19 -0
  123. package/workflows/powers/flutter-riverpod/references/provider-selection.md +20 -0
  124. package/workflows/powers/flutter-riverpod/references/testing.md +21 -0
  125. package/workflows/powers/flutter-riverpod/references/version-matrix.md +24 -0
  126. package/workflows/powers/flutter-state-machine/POWER.md +62 -0
  127. package/workflows/powers/flutter-state-machine/SKILL.md +59 -0
  128. package/workflows/powers/flutter-state-machine/references/app-state-contract.md +23 -0
  129. package/workflows/powers/flutter-state-machine/references/ui-rendering.md +14 -0
  130. package/workflows/powers/flutter-testing/POWER.md +64 -0
  131. package/workflows/powers/flutter-testing/SKILL.md +61 -0
  132. package/workflows/powers/flutter-testing/references/offline-sync-tests.md +16 -0
  133. package/workflows/powers/flutter-testing/references/test-layers.md +33 -0
  134. package/workflows/powers/frontend-code-review/POWER.md +137 -0
  135. package/workflows/powers/frontend-code-review/SKILL.md +134 -0
  136. package/workflows/powers/frontend-code-review/references/common-antipatterns.md +86 -0
  137. package/workflows/powers/frontend-code-review/references/performance-budgets.md +56 -0
  138. package/workflows/powers/frontend-code-review/references/review-checklists.md +47 -0
  139. package/workflows/powers/frontend-design/POWER.md +163 -362
  140. package/workflows/powers/frontend-design/SKILL.md +163 -362
  141. package/workflows/powers/game-development/POWER.md +57 -140
  142. package/workflows/powers/game-development/SKILL.md +57 -140
  143. package/workflows/powers/geo-fundamentals/POWER.md +64 -126
  144. package/workflows/powers/geo-fundamentals/SKILL.md +64 -127
  145. package/workflows/powers/git-workflow/POWER.md +135 -0
  146. package/workflows/powers/git-workflow/SKILL.md +132 -0
  147. package/workflows/powers/git-workflow/references/pr-review-checklist.md +63 -0
  148. package/workflows/powers/golang-pro/POWER.md +46 -35
  149. package/workflows/powers/golang-pro/SKILL.md +46 -35
  150. package/workflows/powers/graphql-architect/POWER.md +44 -62
  151. package/workflows/powers/graphql-architect/SKILL.md +44 -62
  152. package/workflows/powers/i18n-localization/POWER.md +118 -103
  153. package/workflows/powers/i18n-localization/SKILL.md +118 -103
  154. package/workflows/powers/java-pro/POWER.md +47 -22
  155. package/workflows/powers/java-pro/SKILL.md +47 -22
  156. package/workflows/powers/javascript-pro/POWER.md +47 -34
  157. package/workflows/powers/javascript-pro/SKILL.md +47 -34
  158. package/workflows/powers/kotlin-pro/POWER.md +46 -23
  159. package/workflows/powers/kotlin-pro/SKILL.md +46 -23
  160. package/workflows/powers/legacy-modernizer/POWER.md +43 -60
  161. package/workflows/powers/legacy-modernizer/SKILL.md +43 -60
  162. package/workflows/powers/mcp-builder/POWER.md +65 -0
  163. package/workflows/powers/mcp-builder/SKILL.md +62 -0
  164. package/workflows/powers/mcp-builder/references/testing-and-evals.md +17 -0
  165. package/workflows/powers/mcp-builder/references/transport-and-tool-design.md +17 -0
  166. package/workflows/powers/microservices-architect/POWER.md +43 -70
  167. package/workflows/powers/microservices-architect/SKILL.md +43 -70
  168. package/workflows/powers/mobile-design/POWER.md +110 -345
  169. package/workflows/powers/mobile-design/SKILL.md +110 -345
  170. package/workflows/powers/mongodb/POWER.md +67 -0
  171. package/workflows/powers/mongodb/SKILL.md +64 -0
  172. package/workflows/powers/mongodb/references/mongodb-checklist.md +20 -0
  173. package/workflows/powers/mysql/POWER.md +67 -0
  174. package/workflows/powers/mysql/SKILL.md +64 -0
  175. package/workflows/powers/mysql/references/mysql-checklist.md +20 -0
  176. package/workflows/powers/neki/POWER.md +67 -0
  177. package/workflows/powers/neki/SKILL.md +64 -0
  178. package/workflows/powers/neki/references/neki-checklist.md +18 -0
  179. package/workflows/powers/nestjs-expert/POWER.md +45 -91
  180. package/workflows/powers/nestjs-expert/SKILL.md +45 -91
  181. package/workflows/powers/nextjs-developer/POWER.md +51 -44
  182. package/workflows/powers/nextjs-developer/SKILL.md +51 -44
  183. package/workflows/powers/nodejs-best-practices/POWER.md +48 -29
  184. package/workflows/powers/nodejs-best-practices/SKILL.md +48 -29
  185. package/workflows/powers/observability/POWER.md +109 -0
  186. package/workflows/powers/observability/SKILL.md +106 -0
  187. package/workflows/powers/observability/references/alerting-and-slo-checklist.md +87 -0
  188. package/workflows/powers/observability/references/opentelemetry-setup-guide.md +121 -0
  189. package/workflows/powers/openai-docs/POWER.md +61 -0
  190. package/workflows/powers/openai-docs/SKILL.md +58 -0
  191. package/workflows/powers/openai-docs/references/official-source-playbook.md +10 -0
  192. package/workflows/powers/performance-profiling/POWER.md +61 -114
  193. package/workflows/powers/performance-profiling/SKILL.md +61 -114
  194. package/workflows/powers/php-pro/POWER.md +116 -0
  195. package/workflows/powers/php-pro/SKILL.md +113 -0
  196. package/workflows/powers/php-pro/references/architecture-and-di.md +239 -0
  197. package/workflows/powers/php-pro/references/modern-php-features.md +189 -0
  198. package/workflows/powers/php-pro/references/performance-and-deployment.md +197 -0
  199. package/workflows/powers/php-pro/references/php84-strict-typing-checklist.md +161 -0
  200. package/workflows/powers/php-pro/references/testing-and-static-analysis.md +235 -0
  201. package/workflows/powers/playwright-e2e/POWER.md +85 -0
  202. package/workflows/powers/playwright-e2e/SKILL.md +82 -0
  203. package/workflows/powers/playwright-e2e/references/locator-trace-flake-checklist.md +80 -0
  204. package/workflows/powers/postgres/POWER.md +67 -0
  205. package/workflows/powers/postgres/SKILL.md +64 -0
  206. package/workflows/powers/postgres/references/postgres-checklist.md +20 -0
  207. package/workflows/powers/prompt-engineer/POWER.md +47 -30
  208. package/workflows/powers/prompt-engineer/SKILL.md +47 -30
  209. package/workflows/powers/python-pro/POWER.md +47 -36
  210. package/workflows/powers/python-pro/SKILL.md +47 -36
  211. package/workflows/powers/react-best-practices/POWER.md +56 -33
  212. package/workflows/powers/react-best-practices/SKILL.md +56 -33
  213. package/workflows/powers/react-expert/POWER.md +47 -37
  214. package/workflows/powers/react-expert/SKILL.md +47 -37
  215. package/workflows/powers/redis/POWER.md +67 -0
  216. package/workflows/powers/redis/SKILL.md +64 -0
  217. package/workflows/powers/redis/references/redis-checklist.md +19 -0
  218. package/workflows/powers/ruby-pro/POWER.md +118 -0
  219. package/workflows/powers/ruby-pro/SKILL.md +115 -0
  220. package/workflows/powers/ruby-pro/references/modern-ruby-features.md +189 -0
  221. package/workflows/powers/ruby-pro/references/object-design-patterns.md +220 -0
  222. package/workflows/powers/ruby-pro/references/performance-and-profiling.md +224 -0
  223. package/workflows/powers/ruby-pro/references/ruby-concurrency-and-testing.md +190 -0
  224. package/workflows/powers/ruby-pro/references/testing-and-rspec.md +236 -0
  225. package/workflows/powers/rust-pro/POWER.md +45 -31
  226. package/workflows/powers/rust-pro/SKILL.md +45 -31
  227. package/workflows/powers/security-engineer/POWER.md +129 -0
  228. package/workflows/powers/security-engineer/SKILL.md +126 -0
  229. package/workflows/powers/seo-fundamentals/POWER.md +59 -102
  230. package/workflows/powers/seo-fundamentals/SKILL.md +59 -102
  231. package/workflows/powers/serverless-patterns/POWER.md +171 -0
  232. package/workflows/powers/serverless-patterns/SKILL.md +168 -0
  233. package/workflows/powers/skill-creator/POWER.md +90 -0
  234. package/workflows/powers/skill-creator/SKILL.md +87 -0
  235. package/workflows/powers/skill-creator/references/platform-formats.md +181 -0
  236. package/workflows/powers/skill-creator/references/schemas.md +430 -0
  237. package/workflows/powers/spec-miner/POWER.md +49 -57
  238. package/workflows/powers/spec-miner/SKILL.md +49 -57
  239. package/workflows/powers/sqlite/POWER.md +67 -0
  240. package/workflows/powers/sqlite/SKILL.md +64 -0
  241. package/workflows/powers/sqlite/references/sqlite-checklist.md +19 -0
  242. package/workflows/powers/sre-engineer/POWER.md +123 -64
  243. package/workflows/powers/sre-engineer/SKILL.md +123 -64
  244. package/workflows/powers/static-analysis/POWER.md +121 -77
  245. package/workflows/powers/static-analysis/SKILL.md +121 -77
  246. package/workflows/powers/stripe-best-practices/POWER.md +140 -17
  247. package/workflows/powers/stripe-best-practices/SKILL.md +139 -17
  248. package/workflows/powers/supabase/POWER.md +67 -0
  249. package/workflows/powers/supabase/SKILL.md +64 -0
  250. package/workflows/powers/supabase/references/supabase-checklist.md +19 -0
  251. package/workflows/powers/swift-pro/POWER.md +118 -0
  252. package/workflows/powers/swift-pro/SKILL.md +115 -0
  253. package/workflows/powers/swift-pro/references/concurrency-patterns.md +165 -0
  254. package/workflows/powers/swift-pro/references/protocol-and-generics.md +172 -0
  255. package/workflows/powers/swift-pro/references/sendable-and-isolation.md +116 -0
  256. package/workflows/powers/swift-pro/references/swift-concurrency-and-protocols.md +260 -0
  257. package/workflows/powers/swift-pro/references/testing-and-packages.md +192 -0
  258. package/workflows/powers/tailwind-patterns/POWER.md +71 -240
  259. package/workflows/powers/tailwind-patterns/SKILL.md +71 -240
  260. package/workflows/powers/testing-patterns/POWER.md +155 -10
  261. package/workflows/powers/testing-patterns/SKILL.md +155 -10
  262. package/workflows/powers/typescript-pro/POWER.md +47 -38
  263. package/workflows/powers/typescript-pro/SKILL.md +47 -38
  264. package/workflows/powers/vitess/POWER.md +67 -0
  265. package/workflows/powers/vitess/SKILL.md +64 -0
  266. package/workflows/powers/vitess/references/vitess-checklist.md +19 -0
  267. package/workflows/powers/vulnerability-scanner/POWER.md +146 -10
  268. package/workflows/powers/vulnerability-scanner/SKILL.md +146 -10
  269. package/workflows/powers/web-perf/POWER.md +43 -170
  270. package/workflows/powers/web-perf/SKILL.md +43 -170
  271. package/workflows/powers/webapp-testing/POWER.md +43 -164
  272. package/workflows/powers/webapp-testing/SKILL.md +43 -164
  273. package/workflows/skills/agent-design/SKILL.md +198 -0
  274. package/workflows/skills/agent-design/references/clarification-patterns.md +153 -0
  275. package/workflows/skills/agent-design/references/skill-testing.md +164 -0
  276. package/workflows/skills/agent-design/references/workflow-patterns.md +226 -0
  277. package/workflows/skills/deep-research/SKILL.md +25 -20
  278. package/workflows/skills/deep-research/references/multi-round-research-loop.md +73 -8
  279. package/workflows/skills/frontend-design/SKILL.md +37 -32
  280. package/workflows/skills/frontend-design/commands/brand.md +167 -0
  281. package/workflows/skills/frontend-design/references/brand-presets.md +228 -0
  282. package/workflows/skills/generated/skill-audit.json +11 -2
  283. package/workflows/skills/generated/skill-catalog.json +37 -5
  284. package/workflows/skills/skills_index.json +1 -1
  285. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/SKILL.md +198 -0
  286. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/clarification-patterns.md +153 -0
  287. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/skill-testing.md +164 -0
  288. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/workflow-patterns.md +226 -0
  289. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/SKILL.md +25 -20
  290. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/references/multi-round-research-loop.md +73 -8
  291. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/SKILL.md +37 -32
  292. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/commands/brand.md +167 -0
  293. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/references/brand-presets.md +228 -0
  294. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/skills_index.json +1 -1
  295. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/SKILL.md +197 -0
  296. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/clarification-patterns.md +153 -0
  297. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/skill-testing.md +164 -0
  298. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/workflow-patterns.md +226 -0
  299. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/SKILL.md +25 -20
  300. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/references/multi-round-research-loop.md +73 -8
  301. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/SKILL.md +37 -32
  302. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/commands/brand.md +167 -0
  303. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/references/brand-presets.md +228 -0
  304. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +1 -1
@@ -0,0 +1,205 @@
1
+ # Template and Concepts Patterns
2
+
3
+ ## Concepts (C++20/23)
4
+
5
+ Concepts replace SFINAE with readable, composable constraints.
6
+
7
+ ```cpp
8
+ #include <concepts>
9
+
10
+ // Basic concept usage
11
+ template<std::integral T>
12
+ T add(T a, T b) { return a + b; }
13
+
14
+ // Custom concept
15
+ template<typename T>
16
+ concept Serializable = requires(T t, std::ostream& os) {
17
+ { t.serialize(os) } -> std::same_as<void>;
18
+ { T::deserialize(os) } -> std::same_as<T>;
19
+ };
20
+
21
+ // Use in function template
22
+ template<Serializable T>
23
+ void save(const T& obj, const std::filesystem::path& path) {
24
+ std::ofstream file(path);
25
+ obj.serialize(file);
26
+ }
27
+
28
+ // Concept with multiple requirements
29
+ template<typename T>
30
+ concept Hashable = requires(T a) {
31
+ { std::hash<T>{}(a) } -> std::convertible_to<std::size_t>;
32
+ requires std::equality_comparable<T>;
33
+ };
34
+
35
+ // Constrained auto
36
+ void process(std::ranges::range auto&& r) {
37
+ for (auto&& elem : r) {
38
+ // works with any range
39
+ }
40
+ }
41
+ ```
42
+
43
+ ## Concept Composition
44
+
45
+ ```cpp
46
+ // Combine concepts with &&, ||
47
+ template<typename T>
48
+ concept Numeric = std::integral<T> || std::floating_point<T>;
49
+
50
+ template<typename T>
51
+ concept OrderedNumeric = Numeric<T> && std::totally_ordered<T>;
52
+
53
+ // Subsumption — more constrained overload wins
54
+ template<std::integral T>
55
+ void process(T val) { /* integral-specific */ }
56
+
57
+ template<Numeric T>
58
+ void process(T val) { /* fallback for floating point */ }
59
+
60
+ // int → matches std::integral (more constrained), calls first overload
61
+ // double → matches Numeric, calls second overload
62
+ ```
63
+
64
+ ## Variadic Templates
65
+
66
+ ```cpp
67
+ // Fold expressions (C++17) — clean variadic operations
68
+ template<typename... Args>
69
+ auto sum(Args... args) {
70
+ return (args + ...); // right fold
71
+ }
72
+
73
+ // Print all arguments
74
+ template<typename... Args>
75
+ void print_all(Args&&... args) {
76
+ ((std::cout << args << " "), ...); // comma fold
77
+ std::cout << "\n";
78
+ }
79
+
80
+ // Constrained variadic
81
+ template<std::convertible_to<std::string_view>... Args>
82
+ std::string join(std::string_view sep, Args&&... args) {
83
+ std::string result;
84
+ ((result += std::string(args) + std::string(sep)), ...);
85
+ if (!result.empty()) result.resize(result.size() - sep.size());
86
+ return result;
87
+ }
88
+ ```
89
+
90
+ ## `constexpr` and `consteval`
91
+
92
+ ```cpp
93
+ // constexpr — evaluable at compile time or runtime
94
+ constexpr int factorial(int n) {
95
+ if (n <= 1) return 1;
96
+ return n * factorial(n - 1);
97
+ }
98
+
99
+ constexpr int ct = factorial(10); // computed at compile time
100
+ int rt = factorial(runtime_val); // computed at runtime
101
+
102
+ // consteval — MUST be evaluated at compile time
103
+ consteval int compile_time_only(int n) {
104
+ return n * n;
105
+ }
106
+
107
+ constexpr int x = compile_time_only(5); // OK
108
+ // int y = compile_time_only(runtime_val); // ERROR: not a constant expression
109
+
110
+ // constexpr containers (C++20)
111
+ constexpr auto make_primes() {
112
+ std::array<int, 5> primes{};
113
+ // ... sieve algorithm
114
+ return primes;
115
+ }
116
+ constexpr auto primes = make_primes(); // computed at compile time
117
+
118
+ // if constexpr — compile-time branching
119
+ template<typename T>
120
+ auto to_string(const T& val) {
121
+ if constexpr (std::is_arithmetic_v<T>) {
122
+ return std::to_string(val);
123
+ } else if constexpr (std::is_same_v<T, std::string>) {
124
+ return val;
125
+ } else {
126
+ static_assert(false, "unsupported type");
127
+ }
128
+ }
129
+ ```
130
+
131
+ ## CTAD (Class Template Argument Deduction)
132
+
133
+ ```cpp
134
+ // Deduction guides — compiler deduces template arguments
135
+ std::vector v = {1, 2, 3}; // deduces vector<int>
136
+ std::pair p = {"hello", 42}; // deduces pair<const char*, int>
137
+ std::optional o = 3.14; // deduces optional<double>
138
+
139
+ // Custom deduction guide
140
+ template<typename T>
141
+ struct Wrapper {
142
+ T value;
143
+ Wrapper(T v) : value(std::move(v)) {}
144
+ };
145
+
146
+ // Deduction guide for string literals
147
+ Wrapper(const char*) -> Wrapper<std::string>;
148
+
149
+ auto w = Wrapper("hello"); // deduces Wrapper<std::string>, not Wrapper<const char*>
150
+ ```
151
+
152
+ ## Type Traits and `static_assert`
153
+
154
+ ```cpp
155
+ #include <type_traits>
156
+
157
+ // Compile-time type validation
158
+ template<typename T>
159
+ class Container {
160
+ static_assert(std::is_nothrow_move_constructible_v<T>,
161
+ "Container requires nothrow movable types for exception safety");
162
+ static_assert(!std::is_reference_v<T>,
163
+ "Container cannot store references — use reference_wrapper");
164
+ // ...
165
+ };
166
+
167
+ // Conditional types
168
+ template<typename T>
169
+ using storage_type = std::conditional_t<
170
+ sizeof(T) <= sizeof(void*),
171
+ T, // small: store by value
172
+ std::unique_ptr<T> // large: store by pointer
173
+ >;
174
+ ```
175
+
176
+ ## CRTP (Curiously Recurring Template Pattern)
177
+
178
+ Static polymorphism without virtual dispatch overhead.
179
+
180
+ ```cpp
181
+ template<typename Derived>
182
+ class Comparable {
183
+ public:
184
+ bool operator!=(const Derived& other) const {
185
+ return !(static_cast<const Derived&>(*this) == other);
186
+ }
187
+ bool operator>(const Derived& other) const {
188
+ return other < static_cast<const Derived&>(*this);
189
+ }
190
+ // Derived must implement operator== and operator<
191
+ };
192
+
193
+ class Temperature : public Comparable<Temperature> {
194
+ double celsius_;
195
+ public:
196
+ explicit Temperature(double c) : celsius_(c) {}
197
+
198
+ bool operator==(const Temperature& other) const {
199
+ return celsius_ == other.celsius_;
200
+ }
201
+ bool operator<(const Temperature& other) const {
202
+ return celsius_ < other.celsius_;
203
+ }
204
+ };
205
+ ```
@@ -2,42 +2,67 @@
2
2
  ---
3
3
  inclusion: manual
4
4
  name: "csharp-pro"
5
- description: "Use for modern C# backend/application engineering with C# 14 and .NET 10-era production practices."
5
+ description: "Use for modern C# backend/application engineering with C# 15 and .NET 11-era production practices."
6
6
  license: MIT
7
7
  metadata:
8
- version: "1.0.0"
9
- domain: "language"
10
- role: "specialist"
11
- stack: "csharp"
12
- baseline: "C# 14 / .NET 10"
8
+ author: cubis-foundry
9
+ version: "1.0"
10
+ compatibility: Claude Code, Codex, GitHub Copilot
13
11
  ---
14
12
 
15
13
  # C# Pro
16
14
 
17
- ## When to use
15
+ ## Purpose
16
+
17
+ Expert-level guidance for modern C# backend and application engineering. Covers async/await patterns with cancellation, nullable reference types, records, dependency injection lifetimes, and production diagnostics using current .NET practices.
18
+
19
+ ## When to Use
18
20
 
19
21
  - Building APIs, workers, and services in .NET.
20
22
  - Refactoring legacy C# into modern, testable architecture.
21
23
  - Improving async correctness and operational resilience.
22
24
 
23
- ## Core workflow
25
+ ## Instructions
26
+
27
+ 1. **Confirm target framework and language version** — establish .NET version (.NET 11 LTS, etc.) and C# language version constraints before choosing features.
28
+
29
+ 2. **Define clean contracts with modern types** — use `record` for immutable DTOs and value objects. Use `record struct` for small value types to avoid heap allocation. Use primary constructors (C# 12+) for concise DI. Prefer `sealed` on classes not designed for inheritance. Use pattern matching (`is`, `switch` expressions) instead of type-checking cascades.
30
+
31
+ 3. **Enable nullable reference types project-wide** — set `<Nullable>enable</Nullable>` and treat warnings as errors. Use null-forgiving (`!`) only at boundaries with external proof (deserialization, DI resolution). Use `required` modifier on properties that must be set at construction. Use `[NotNullWhen]` and `[MaybeNullWhen]` on bool-returning try-pattern methods.
32
+
33
+ 4. **Implement async-first I/O with CancellationToken propagation** — every public async method takes `CancellationToken` as its last parameter. Use `ConfigureAwait(false)` in library code. Use `ValueTask<T>` when the common path completes synchronously. Use `await using` for `IAsyncDisposable` resources. Do not use `.Result`, `.Wait()`, or `.GetAwaiter().GetResult()` in request paths because it causes threadpool starvation and deadlocks.
34
+
35
+ 5. **Wire dependency injection with explicit lifetimes** — `Transient` for stateless, `Scoped` for per-request, `Singleton` for shared. Do not inject `Scoped` services into `Singleton` because it causes captive dependency and stale data. Use `IOptions<T>` / `IOptionsSnapshot<T>` / `IOptionsMonitor<T>` for configuration with proper reload semantics. Use `IServiceScopeFactory` when a Singleton needs to create scoped work.
36
+
37
+ 6. **Handle errors consistently at boundaries** — use `IExceptionHandler` (ASP.NET 8+) or middleware for error-to-response mapping. Throw domain exceptions for business rule violations; use `Result<T>` patterns for expected failures. Use `ActivitySource` and `Activity` for distributed tracing. Log exceptions at the boundary, not at every catch. Do not catch `Exception` in deep code without rethrowing because it swallows unexpected errors.
38
+
39
+ 7. **Observe and diagnose** — use structured logging (Serilog, Microsoft.Extensions.Logging) with request/job correlation IDs. Use `dotnet-counters`, `dotnet-trace`, and `dotnet-dump` for runtime diagnostics. Do not expose stack traces in production.
40
+
41
+ 8. **Optimize with measurement** — use `dotnet-trace` or BenchmarkDotNet to identify allocation hotspots before changing data structures. Use `Span<T>`, `ReadOnlySpan<T>`, and `Memory<T>` for zero-copy slicing in hot paths. Use `ArrayPool<T>.Shared` over repeated allocations. Use `FrozenDictionary` / `FrozenSet` (.NET 8+) for read-heavy lookup tables.
42
+
43
+ 9. **Validate with tests and analyzers** — use Roslyn analyzers and `dotnet test`. Bound retries and timeouts explicitly for network and queue work. Do not build fat controllers with mixed business logic and persistence because it resists testing. Do not use `string` concatenation in loops because `StringBuilder` or interpolated string handlers are more efficient. Do not ignore `CancellationToken` in long-running operations because it makes services unresponsive to shutdown. Do not use global static mutable state in multi-request services because it creates race conditions — use DI with proper lifetimes.
44
+
45
+ ## Output Format
46
+
47
+ Produces C# code using records, nullable reference types, async/await with cancellation, and explicit DI lifetimes. Includes structured error handling and pattern matching where applicable.
48
+
49
+ ## References
24
50
 
25
- 1. Confirm target framework/runtime constraints.
26
- 2. Define clean contracts (DTOs, domain, persistence boundaries).
27
- 3. Implement async-first I/O and cancellation-aware flows.
28
- 4. Validate with tests, analyzers, and profiling.
51
+ | File | Load when |
52
+ | --------------------------------------------- | --------------------------------------------------------------------------------------------------- |
53
+ | `references/operational-baseline.md` | You need current async, logging, testing, and deployment guardrails for C#/.NET services. |
54
+ | `references/async-await-patterns.md` | You need async/await patterns, ValueTask usage, cancellation design, or threadpool management. |
55
+ | `references/modern-csharp-features.md` | You need patterns for records, pattern matching, primary constructors, or collection expressions. |
56
+ | `references/dependency-injection-patterns.md` | You need DI lifetime management, keyed services, option patterns, or service resolution strategies. |
57
+ | `references/testing-and-analyzers.md` | You need testing patterns, analyzer configuration, BenchmarkDotNet setup, or CI validation. |
29
58
 
30
- ## Baseline standards
59
+ ## Scripts
31
60
 
32
- - Use nullable reference types and treat warnings as actionable.
33
- - Use `async`/`await` with `CancellationToken` in public async APIs.
34
- - Keep exception handling consistent and observable.
35
- - Use dependency injection with explicit lifetimes.
36
- - Keep API contracts versioned and backward-compatible.
61
+ No helper scripts are required for this skill right now. Keep execution in `SKILL.md` and `references/` unless repeated automation becomes necessary.
37
62
 
38
- ## Avoid
63
+ ## Examples
39
64
 
40
- - Sync-over-async (`.Result`, `.Wait()`) in request paths.
41
- - Fat controllers with business logic and persistence mixed.
42
- - Global static mutable state in multi-request services.
65
+ - "Refactor this controller to use async/await with CancellationToken propagation and proper DI lifetime management."
66
+ - "Enable nullable reference types in this project and fix all the null-safety warnings with appropriate patterns."
67
+ - "Design the error handling middleware for this ASP.NET API using IExceptionHandler and Result<T> patterns."
43
68
  ````
@@ -1,40 +1,65 @@
1
1
  ---
2
2
  name: "csharp-pro"
3
- description: "Use for modern C# backend/application engineering with C# 14 and .NET 10-era production practices."
3
+ description: "Use for modern C# backend/application engineering with C# 15 and .NET 11-era production practices."
4
4
  license: MIT
5
5
  metadata:
6
- version: "1.0.0"
7
- domain: "language"
8
- role: "specialist"
9
- stack: "csharp"
10
- baseline: "C# 14 / .NET 10"
6
+ author: cubis-foundry
7
+ version: "1.0"
8
+ compatibility: Claude Code, Codex, GitHub Copilot
11
9
  ---
12
10
 
13
11
  # C# Pro
14
12
 
15
- ## When to use
13
+ ## Purpose
14
+
15
+ Expert-level guidance for modern C# backend and application engineering. Covers async/await patterns with cancellation, nullable reference types, records, dependency injection lifetimes, and production diagnostics using current .NET practices.
16
+
17
+ ## When to Use
16
18
 
17
19
  - Building APIs, workers, and services in .NET.
18
20
  - Refactoring legacy C# into modern, testable architecture.
19
21
  - Improving async correctness and operational resilience.
20
22
 
21
- ## Core workflow
23
+ ## Instructions
24
+
25
+ 1. **Confirm target framework and language version** — establish .NET version (.NET 11 LTS, etc.) and C# language version constraints before choosing features.
26
+
27
+ 2. **Define clean contracts with modern types** — use `record` for immutable DTOs and value objects. Use `record struct` for small value types to avoid heap allocation. Use primary constructors (C# 12+) for concise DI. Prefer `sealed` on classes not designed for inheritance. Use pattern matching (`is`, `switch` expressions) instead of type-checking cascades.
28
+
29
+ 3. **Enable nullable reference types project-wide** — set `<Nullable>enable</Nullable>` and treat warnings as errors. Use null-forgiving (`!`) only at boundaries with external proof (deserialization, DI resolution). Use `required` modifier on properties that must be set at construction. Use `[NotNullWhen]` and `[MaybeNullWhen]` on bool-returning try-pattern methods.
30
+
31
+ 4. **Implement async-first I/O with CancellationToken propagation** — every public async method takes `CancellationToken` as its last parameter. Use `ConfigureAwait(false)` in library code. Use `ValueTask<T>` when the common path completes synchronously. Use `await using` for `IAsyncDisposable` resources. Do not use `.Result`, `.Wait()`, or `.GetAwaiter().GetResult()` in request paths because it causes threadpool starvation and deadlocks.
32
+
33
+ 5. **Wire dependency injection with explicit lifetimes** — `Transient` for stateless, `Scoped` for per-request, `Singleton` for shared. Do not inject `Scoped` services into `Singleton` because it causes captive dependency and stale data. Use `IOptions<T>` / `IOptionsSnapshot<T>` / `IOptionsMonitor<T>` for configuration with proper reload semantics. Use `IServiceScopeFactory` when a Singleton needs to create scoped work.
34
+
35
+ 6. **Handle errors consistently at boundaries** — use `IExceptionHandler` (ASP.NET 8+) or middleware for error-to-response mapping. Throw domain exceptions for business rule violations; use `Result<T>` patterns for expected failures. Use `ActivitySource` and `Activity` for distributed tracing. Log exceptions at the boundary, not at every catch. Do not catch `Exception` in deep code without rethrowing because it swallows unexpected errors.
36
+
37
+ 7. **Observe and diagnose** — use structured logging (Serilog, Microsoft.Extensions.Logging) with request/job correlation IDs. Use `dotnet-counters`, `dotnet-trace`, and `dotnet-dump` for runtime diagnostics. Do not expose stack traces in production.
38
+
39
+ 8. **Optimize with measurement** — use `dotnet-trace` or BenchmarkDotNet to identify allocation hotspots before changing data structures. Use `Span<T>`, `ReadOnlySpan<T>`, and `Memory<T>` for zero-copy slicing in hot paths. Use `ArrayPool<T>.Shared` over repeated allocations. Use `FrozenDictionary` / `FrozenSet` (.NET 8+) for read-heavy lookup tables.
40
+
41
+ 9. **Validate with tests and analyzers** — use Roslyn analyzers and `dotnet test`. Bound retries and timeouts explicitly for network and queue work. Do not build fat controllers with mixed business logic and persistence because it resists testing. Do not use `string` concatenation in loops because `StringBuilder` or interpolated string handlers are more efficient. Do not ignore `CancellationToken` in long-running operations because it makes services unresponsive to shutdown. Do not use global static mutable state in multi-request services because it creates race conditions — use DI with proper lifetimes.
42
+
43
+ ## Output Format
44
+
45
+ Produces C# code using records, nullable reference types, async/await with cancellation, and explicit DI lifetimes. Includes structured error handling and pattern matching where applicable.
46
+
47
+ ## References
22
48
 
23
- 1. Confirm target framework/runtime constraints.
24
- 2. Define clean contracts (DTOs, domain, persistence boundaries).
25
- 3. Implement async-first I/O and cancellation-aware flows.
26
- 4. Validate with tests, analyzers, and profiling.
49
+ | File | Load when |
50
+ | --------------------------------------------- | --------------------------------------------------------------------------------------------------- |
51
+ | `references/operational-baseline.md` | You need current async, logging, testing, and deployment guardrails for C#/.NET services. |
52
+ | `references/async-await-patterns.md` | You need async/await patterns, ValueTask usage, cancellation design, or threadpool management. |
53
+ | `references/modern-csharp-features.md` | You need patterns for records, pattern matching, primary constructors, or collection expressions. |
54
+ | `references/dependency-injection-patterns.md` | You need DI lifetime management, keyed services, option patterns, or service resolution strategies. |
55
+ | `references/testing-and-analyzers.md` | You need testing patterns, analyzer configuration, BenchmarkDotNet setup, or CI validation. |
27
56
 
28
- ## Baseline standards
57
+ ## Scripts
29
58
 
30
- - Use nullable reference types and treat warnings as actionable.
31
- - Use `async`/`await` with `CancellationToken` in public async APIs.
32
- - Keep exception handling consistent and observable.
33
- - Use dependency injection with explicit lifetimes.
34
- - Keep API contracts versioned and backward-compatible.
59
+ No helper scripts are required for this skill right now. Keep execution in `SKILL.md` and `references/` unless repeated automation becomes necessary.
35
60
 
36
- ## Avoid
61
+ ## Examples
37
62
 
38
- - Sync-over-async (`.Result`, `.Wait()`) in request paths.
39
- - Fat controllers with business logic and persistence mixed.
40
- - Global static mutable state in multi-request services.
63
+ - "Refactor this controller to use async/await with CancellationToken propagation and proper DI lifetime management."
64
+ - "Enable nullable reference types in this project and fix all the null-safety warnings with appropriate patterns."
65
+ - "Design the error handling middleware for this ASP.NET API using IExceptionHandler and Result<T> patterns."
@@ -0,0 +1,68 @@
1
+ ````markdown
2
+ ---
3
+ inclusion: manual
4
+ name: "dart-pro"
5
+ description: "Use for modern Dart engineering across Flutter, server, and CLI code with Dart 3.11-era language features, package hygiene, isolates, and testing discipline."
6
+ license: MIT
7
+ metadata:
8
+ author: cubis-foundry
9
+ version: "2.0"
10
+ compatibility: Claude Code, Codex, GitHub Copilot
11
+ ---
12
+
13
+ # Dart Pro
14
+
15
+ ## Purpose
16
+
17
+ Expert-level guidance for modern Dart development across Flutter app logic, server applications, and CLI tooling. Covers null safety, sealed classes with pattern matching, async and isolate patterns, package hygiene, and testing discipline using current Dart language features.
18
+
19
+ ## When to Use
20
+
21
+ - Designing Dart libraries, Flutter app logic, or Dart CLI tooling.
22
+ - Refactoring null-safety, sealed classes, records, or pattern matching.
23
+ - Improving package structure, async correctness, and testability.
24
+
25
+ ## Instructions
26
+
27
+ 1. **Confirm runtime context** — identify whether the code targets Flutter UI, server, or CLI. This determines available APIs, isolate patterns, and testing approaches.
28
+
29
+ 2. **Keep null safety and type intent explicit** — prefer non-nullable types by default. Use `?` only when null is a valid domain value. Use `late` only when initialization is guaranteed before access. Target sound null safety with no `// ignore: null_check` suppressions without justification. Do not use `!` (null assertion) in production code without a preceding null check because it crashes at runtime.
30
+
31
+ 3. **Use sealed models, records, and pattern matching** — use sealed classes for closed type hierarchies with exhaustive `switch` that catches missing cases at compile time. Use records `(int, String)` for lightweight grouped returns. Use `switch` expressions with pattern matching for state machines. Prefer destructuring in `if-case` and `switch` over manual `is` checks and casts.
32
+
33
+ 4. **Design async flows with proper lifecycle** — use `async`/`await` for I/O-bound work. Keep `Future` chains flat. Use `Stream` for event-driven data with `StreamController.broadcast()` only when multiple listeners are needed. Cancel subscriptions and close controllers in `dispose()` to prevent memory leaks. Do not block the main isolate with synchronous I/O or heavy computation because it freezes the UI.
34
+
35
+ 5. **Offload compute to isolates when needed** — use `Isolate.run()` or `compute()` in Flutter for CPU-heavy work. Keep the main isolate responsive for UI and event handling.
36
+
37
+ 6. **Maintain package hygiene** — keep `pubspec.yaml` dependencies minimal. Use `dart pub outdated` to identify stale dependencies. Export only the public API from `lib/src/` via a barrel file. Pin SDK constraint to the minimum required version. Keep `pubspec.lock` in version control for applications (not for libraries). Do not import implementation files from `lib/src/` directly in other packages because it breaks encapsulation.
38
+
39
+ 7. **Run analysis before committing** — run `dart analyze` with zero warnings. Treat analyzer warnings as defects. Use `dart format` for consistent style. Do not override formatter rules per-file. Do not ignore analyzer warnings with `// ignore:` comments without a justification comment because it hides real defects.
40
+
41
+ 8. **Test business logic independently** — use `package:test` for unit tests, `package:mocktail` or `package:mockito` for mocking. Test logic in plain Dart classes independent of Flutter widgets. Run tests with `--coverage` and review uncovered branches. Do not mix business logic into widget `build()` methods because it prevents isolated testing.
42
+
43
+ 9. **Do not use `dynamic` as a type** because it disables all static checking — use `Object` or generics instead.
44
+
45
+ ## Output Format
46
+
47
+ Produces Dart code with sound null safety, sealed class hierarchies, pattern matching, and clean async patterns. Includes barrel exports and analyzer-clean output with proper package structure.
48
+
49
+ ## References
50
+
51
+ | File | Load when |
52
+ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
53
+ | `references/null-safety-and-async-patterns.md` | Null safety migration, sealed class patterns, async/isolate architecture, or stream lifecycle management is needed. |
54
+ | `references/sealed-records-patterns.md` | You need sealed class hierarchies, records, destructuring, or exhaustive switch patterns for state modeling. |
55
+ | `references/isolate-and-concurrency.md` | You need isolate architecture, compute offload, port communication, or Flutter isolate integration patterns. |
56
+ | `references/package-structure-and-linting.md` | You need pub workspace layout, barrel exports, analysis_options rules, or dependency audit workflow. |
57
+ | `references/testing-and-mocking.md` | You need test patterns with mockito/mocktail, widget testing, golden tests, or coverage-driven CI. |
58
+
59
+ ## Scripts
60
+
61
+ No helper scripts are required for this skill right now. Keep execution in `SKILL.md` and `references/` unless repeated automation becomes necessary.
62
+
63
+ ## Examples
64
+
65
+ - "Refactor this state management code to use sealed classes with exhaustive pattern matching instead of enum flags."
66
+ - "Design the isolate architecture for this image processing pipeline in a Flutter app."
67
+ - "Set up the package structure for this shared Dart library with proper barrel exports and analysis_options."
68
+ ````
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: "dart-pro"
3
+ description: "Use for modern Dart engineering across Flutter, server, and CLI code with Dart 3.11-era language features, package hygiene, isolates, and testing discipline."
4
+ license: MIT
5
+ metadata:
6
+ author: cubis-foundry
7
+ version: "2.0"
8
+ compatibility: Claude Code, Codex, GitHub Copilot
9
+ ---
10
+
11
+ # Dart Pro
12
+
13
+ ## Purpose
14
+
15
+ Expert-level guidance for modern Dart development across Flutter app logic, server applications, and CLI tooling. Covers null safety, sealed classes with pattern matching, async and isolate patterns, package hygiene, and testing discipline using current Dart language features.
16
+
17
+ ## When to Use
18
+
19
+ - Designing Dart libraries, Flutter app logic, or Dart CLI tooling.
20
+ - Refactoring null-safety, sealed classes, records, or pattern matching.
21
+ - Improving package structure, async correctness, and testability.
22
+
23
+ ## Instructions
24
+
25
+ 1. **Confirm runtime context** — identify whether the code targets Flutter UI, server, or CLI. This determines available APIs, isolate patterns, and testing approaches.
26
+
27
+ 2. **Keep null safety and type intent explicit** — prefer non-nullable types by default. Use `?` only when null is a valid domain value. Use `late` only when initialization is guaranteed before access. Target sound null safety with no `// ignore: null_check` suppressions without justification. Do not use `!` (null assertion) in production code without a preceding null check because it crashes at runtime.
28
+
29
+ 3. **Use sealed models, records, and pattern matching** — use sealed classes for closed type hierarchies with exhaustive `switch` that catches missing cases at compile time. Use records `(int, String)` for lightweight grouped returns. Use `switch` expressions with pattern matching for state machines. Prefer destructuring in `if-case` and `switch` over manual `is` checks and casts.
30
+
31
+ 4. **Design async flows with proper lifecycle** — use `async`/`await` for I/O-bound work. Keep `Future` chains flat. Use `Stream` for event-driven data with `StreamController.broadcast()` only when multiple listeners are needed. Cancel subscriptions and close controllers in `dispose()` to prevent memory leaks. Do not block the main isolate with synchronous I/O or heavy computation because it freezes the UI.
32
+
33
+ 5. **Offload compute to isolates when needed** — use `Isolate.run()` or `compute()` in Flutter for CPU-heavy work. Keep the main isolate responsive for UI and event handling.
34
+
35
+ 6. **Maintain package hygiene** — keep `pubspec.yaml` dependencies minimal. Use `dart pub outdated` to identify stale dependencies. Export only the public API from `lib/src/` via a barrel file. Pin SDK constraint to the minimum required version. Keep `pubspec.lock` in version control for applications (not for libraries). Do not import implementation files from `lib/src/` directly in other packages because it breaks encapsulation.
36
+
37
+ 7. **Run analysis before committing** — run `dart analyze` with zero warnings. Treat analyzer warnings as defects. Use `dart format` for consistent style. Do not override formatter rules per-file. Do not ignore analyzer warnings with `// ignore:` comments without a justification comment because it hides real defects.
38
+
39
+ 8. **Test business logic independently** — use `package:test` for unit tests, `package:mocktail` or `package:mockito` for mocking. Test logic in plain Dart classes independent of Flutter widgets. Run tests with `--coverage` and review uncovered branches. Do not mix business logic into widget `build()` methods because it prevents isolated testing.
40
+
41
+ 9. **Do not use `dynamic` as a type** because it disables all static checking — use `Object` or generics instead.
42
+
43
+ ## Output Format
44
+
45
+ Produces Dart code with sound null safety, sealed class hierarchies, pattern matching, and clean async patterns. Includes barrel exports and analyzer-clean output with proper package structure.
46
+
47
+ ## References
48
+
49
+ | File | Load when |
50
+ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
51
+ | `references/null-safety-and-async-patterns.md` | Null safety migration, sealed class patterns, async/isolate architecture, or stream lifecycle management is needed. |
52
+ | `references/sealed-records-patterns.md` | You need sealed class hierarchies, records, destructuring, or exhaustive switch patterns for state modeling. |
53
+ | `references/isolate-and-concurrency.md` | You need isolate architecture, compute offload, port communication, or Flutter isolate integration patterns. |
54
+ | `references/package-structure-and-linting.md` | You need pub workspace layout, barrel exports, analysis_options rules, or dependency audit workflow. |
55
+ | `references/testing-and-mocking.md` | You need test patterns with mockito/mocktail, widget testing, golden tests, or coverage-driven CI. |
56
+
57
+ ## Scripts
58
+
59
+ No helper scripts are required for this skill right now. Keep execution in `SKILL.md` and `references/` unless repeated automation becomes necessary.
60
+
61
+ ## Examples
62
+
63
+ - "Refactor this state management code to use sealed classes with exhaustive pattern matching instead of enum flags."
64
+ - "Design the isolate architecture for this image processing pipeline in a Flutter app."
65
+ - "Set up the package structure for this shared Dart library with proper barrel exports and analysis_options."