@danieljvdm/dev-kit 1.0.2 → 2.0.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 (329) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +2 -33
  4. package/skill-sources.lock.json +15 -117
  5. package/skills/animate/LICENSE +21 -0
  6. package/skills/animate/NOTICE +10 -0
  7. package/skills/animate/SKILL.md +34 -0
  8. package/skills/animate/references/gestures.md +27 -0
  9. package/skills/animate/references/glossary.md +136 -0
  10. package/skills/animate/references/implementation.md +22 -0
  11. package/skills/animate/references/opportunities.md +18 -0
  12. package/skills/animate/references/principles.md +48 -0
  13. package/skills/animate/references/review.md +19 -0
  14. package/skills/cloudflare-workers/LICENSE +202 -0
  15. package/skills/cloudflare-workers/NOTICE +9 -0
  16. package/skills/cloudflare-workers/SKILL.md +26 -0
  17. package/skills/cloudflare-workers/references/durable-objects.md +68 -0
  18. package/skills/cloudflare-workers/references/sandbox.md +48 -0
  19. package/skills/cloudflare-workers/references/workers.md +63 -0
  20. package/skills/cloudflare-workers/references/wrangler.md +56 -0
  21. package/skills/design-ui/LICENSE +21 -0
  22. package/skills/design-ui/NOTICE +8 -0
  23. package/skills/design-ui/SKILL.md +29 -0
  24. package/skills/design-ui/references/appearance.md +22 -0
  25. package/skills/design-ui/references/components.md +33 -0
  26. package/skills/design-ui/references/exploration.md +50 -0
  27. package/skills/design-ui/references/libraries.md +39 -0
  28. package/skills/design-ui/references/themes.md +23 -0
  29. package/skills/dev-kit/SKILL.md +19 -38
  30. package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
  31. package/skills/dev-kit/references/skills.md +2 -2
  32. package/skills/effect-development/SKILL.md +27 -0
  33. package/skills/effect-development/agents/openai.yaml +4 -0
  34. package/skills/effect-development/references/api/index.md +32 -0
  35. package/skills/effect-development/references/api/schema-codecs.md +15 -0
  36. package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
  37. package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
  38. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
  39. package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
  40. package/skills/effect-development/references/atom/index.md +40 -0
  41. package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
  42. package/skills/effect-development/references/cli/index.md +39 -0
  43. package/skills/effect-development/references/setup.md +15 -0
  44. package/skills/open-pull-request/SKILL.md +10 -70
  45. package/skills/open-pull-request/references/evidence.md +22 -0
  46. package/skills/open-pull-request/references/explanation.md +21 -0
  47. package/skills/open-pull-request/references/publication.md +21 -0
  48. package/skills/sentry/LICENSE +202 -0
  49. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  50. package/skills/sentry/NOTICE +14 -0
  51. package/skills/sentry/SKILL.md +33 -0
  52. package/skills/sentry/references/alert-payloads.md +105 -0
  53. package/skills/sentry/references/alerts.md +17 -0
  54. package/skills/sentry/references/artifacts.md +25 -0
  55. package/skills/sentry/references/auth-token.md +65 -0
  56. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  57. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  58. package/skills/sentry/references/concepts/crons.md +50 -0
  59. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  60. package/skills/sentry/references/concepts/errors.md +40 -0
  61. package/skills/sentry/references/concepts/logging.md +85 -0
  62. package/skills/sentry/references/concepts/metrics.md +49 -0
  63. package/skills/sentry/references/concepts/monitors.md +78 -0
  64. package/skills/sentry/references/concepts/profiling.md +38 -0
  65. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  66. package/skills/sentry/references/concepts/releases.md +43 -0
  67. package/skills/sentry/references/concepts/session-replay.md +35 -0
  68. package/skills/sentry/references/concepts/tracing.md +54 -0
  69. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  70. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  71. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  72. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  73. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  74. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  75. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  76. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  77. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  78. package/skills/sentry/references/first-error-setup.md +25 -0
  79. package/skills/sentry/references/instrumentation.md +30 -0
  80. package/skills/sentry/references/issues.md +32 -0
  81. package/skills/sentry/references/new-project.md +17 -0
  82. package/skills/sentry/references/otel-exporter.md +30 -0
  83. package/skills/sentry/references/release-workflow.md +31 -0
  84. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  85. package/skills/sentry/references/releases/index.md +93 -0
  86. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  87. package/skills/sentry/references/releases/tagging.md +131 -0
  88. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  89. package/skills/sentry/references/sdks/android/crons.md +305 -0
  90. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  91. package/skills/sentry/references/sdks/android/index.md +748 -0
  92. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  93. package/skills/sentry/references/sdks/android/logging.md +374 -0
  94. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  95. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  96. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  97. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  98. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  99. package/skills/sentry/references/sdks/browser/index.md +714 -0
  100. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  101. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  102. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  103. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  104. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  105. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  106. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  107. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  108. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  109. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  110. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  111. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  112. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  113. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  114. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  115. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  116. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  117. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  118. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  119. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  120. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  121. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  122. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  123. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  124. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  125. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  126. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  127. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  128. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  129. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  130. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  131. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  132. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  133. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  134. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  135. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  136. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  137. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  138. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  139. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  140. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  141. package/skills/sentry/references/sdks/go/crons.md +270 -0
  142. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  143. package/skills/sentry/references/sdks/go/index.md +324 -0
  144. package/skills/sentry/references/sdks/go/logging.md +354 -0
  145. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  146. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  147. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  148. package/skills/sentry/references/sdks/index.md +41 -0
  149. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  150. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  151. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  152. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  153. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  154. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  155. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  156. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  157. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  158. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  159. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  160. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  161. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  162. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  163. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  164. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  165. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  166. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  167. package/skills/sentry/references/sdks/node/crons.md +432 -0
  168. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  169. package/skills/sentry/references/sdks/node/index.md +942 -0
  170. package/skills/sentry/references/sdks/node/logging.md +380 -0
  171. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  172. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  173. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  174. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  175. package/skills/sentry/references/sdks/php/crons.md +265 -0
  176. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  177. package/skills/sentry/references/sdks/php/index.md +362 -0
  178. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  179. package/skills/sentry/references/sdks/php/logging.md +242 -0
  180. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  181. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  182. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  183. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  184. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  185. package/skills/sentry/references/sdks/python/crons.md +218 -0
  186. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  187. package/skills/sentry/references/sdks/python/index.md +361 -0
  188. package/skills/sentry/references/sdks/python/logging.md +234 -0
  189. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  190. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  191. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  192. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  193. package/skills/sentry/references/sdks/react/index.md +492 -0
  194. package/skills/sentry/references/sdks/react/logging.md +364 -0
  195. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  196. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  197. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  198. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  199. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  200. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  201. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  202. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  203. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  204. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  205. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  206. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  207. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  208. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  209. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  210. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  211. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  212. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  213. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  214. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  215. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  216. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  217. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  218. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  219. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  220. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  221. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  222. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  223. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  224. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  225. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  226. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  227. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  228. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  229. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  230. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  231. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  232. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  234. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  235. package/skills/sentry/references/search-query-language.md +226 -0
  236. package/skills/sentry/references/semantics/angular.md +7 -0
  237. package/skills/sentry/references/semantics/app.md +28 -0
  238. package/skills/sentry/references/semantics/art.md +17 -0
  239. package/skills/sentry/references/semantics/aws.md +43 -0
  240. package/skills/sentry/references/semantics/browser.md +34 -0
  241. package/skills/sentry/references/semantics/cache.md +12 -0
  242. package/skills/sentry/references/semantics/client.md +8 -0
  243. package/skills/sentry/references/semantics/cloud.md +12 -0
  244. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  245. package/skills/sentry/references/semantics/code.md +11 -0
  246. package/skills/sentry/references/semantics/culture.md +11 -0
  247. package/skills/sentry/references/semantics/db.md +21 -0
  248. package/skills/sentry/references/semantics/device.md +43 -0
  249. package/skills/sentry/references/semantics/error.md +7 -0
  250. package/skills/sentry/references/semantics/event.md +8 -0
  251. package/skills/sentry/references/semantics/exception.md +10 -0
  252. package/skills/sentry/references/semantics/faas.md +19 -0
  253. package/skills/sentry/references/semantics/file.md +8 -0
  254. package/skills/sentry/references/semantics/flag.md +7 -0
  255. package/skills/sentry/references/semantics/gcp.md +16 -0
  256. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  257. package/skills/sentry/references/semantics/general.md +11 -0
  258. package/skills/sentry/references/semantics/graphql.md +9 -0
  259. package/skills/sentry/references/semantics/grpc.md +19 -0
  260. package/skills/sentry/references/semantics/http.md +34 -0
  261. package/skills/sentry/references/semantics/index.md +63 -0
  262. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  263. package/skills/sentry/references/semantics/jvm.md +12 -0
  264. package/skills/sentry/references/semantics/koa.md +7 -0
  265. package/skills/sentry/references/semantics/logger.md +7 -0
  266. package/skills/sentry/references/semantics/mcp.md +37 -0
  267. package/skills/sentry/references/semantics/mdc.md +7 -0
  268. package/skills/sentry/references/semantics/messaging.md +23 -0
  269. package/skills/sentry/references/semantics/middleware.md +7 -0
  270. package/skills/sentry/references/semantics/navigation.md +9 -0
  271. package/skills/sentry/references/semantics/nel.md +11 -0
  272. package/skills/sentry/references/semantics/network.md +17 -0
  273. package/skills/sentry/references/semantics/os.md +15 -0
  274. package/skills/sentry/references/semantics/otel.md +10 -0
  275. package/skills/sentry/references/semantics/params.md +7 -0
  276. package/skills/sentry/references/semantics/process.md +14 -0
  277. package/skills/sentry/references/semantics/react.md +7 -0
  278. package/skills/sentry/references/semantics/remix.md +7 -0
  279. package/skills/sentry/references/semantics/resource.md +7 -0
  280. package/skills/sentry/references/semantics/rpc.md +10 -0
  281. package/skills/sentry/references/semantics/score.md +10 -0
  282. package/skills/sentry/references/semantics/sentry.md +69 -0
  283. package/skills/sentry/references/semantics/server.md +8 -0
  284. package/skills/sentry/references/semantics/service.md +8 -0
  285. package/skills/sentry/references/semantics/session.md +7 -0
  286. package/skills/sentry/references/semantics/state.md +7 -0
  287. package/skills/sentry/references/semantics/thread.md +8 -0
  288. package/skills/sentry/references/semantics/timber.md +7 -0
  289. package/skills/sentry/references/semantics/trpc.md +8 -0
  290. package/skills/sentry/references/semantics/ui.md +18 -0
  291. package/skills/sentry/references/semantics/url.md +15 -0
  292. package/skills/sentry/references/semantics/user.md +17 -0
  293. package/skills/sentry/references/semantics/user_agent.md +7 -0
  294. package/skills/sentry/references/semantics/vercel.md +42 -0
  295. package/skills/sentry/references/setup-verification.md +39 -0
  296. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  297. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  298. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  299. package/skills/sentry/references/snapshots/index.md +19 -0
  300. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  301. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  302. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  303. package/skills/testing/LICENSE +21 -0
  304. package/skills/testing/NOTICE +7 -0
  305. package/skills/testing/SKILL.md +13 -19
  306. package/skills/testing/agents/openai.yaml +1 -2
  307. package/skills/testing/references/selection.md +23 -0
  308. package/skills/testing/references/tdd.md +19 -0
  309. package/skills/testing/references/test-design.md +17 -0
  310. package/src/catalog.ts +1 -7
  311. package/skills/build-effect-apis/SKILL.md +0 -81
  312. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  313. package/skills/build-effect-clis/SKILL.md +0 -92
  314. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  315. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  316. package/skills/effect-atom-state/SKILL.md +0 -97
  317. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  318. package/skills/effect-ts/SKILL.md +0 -35
  319. package/skills/effect-ts/agents/openai.yaml +0 -4
  320. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  324. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  325. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  328. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,234 @@
1
+ # Logging — Sentry Python SDK
2
+
3
+ > Minimum SDK: `sentry-sdk` 2.35.0+ for structured Sentry Logs (`enable_logs=True`)
4
+
5
+ ## Two Logging Systems
6
+
7
+ | System | Produces | Requires |
8
+ | -------------------------------- | ----------------------------------------------------- | ------------------------------------------ |
9
+ | **Sentry Structured Logs** | Searchable log records in Sentry Logs UI | `enable_logs=True` + `sentry_sdk.logger.*` |
10
+ | **LoggingIntegration (classic)** | Breadcrumbs and/or error events from stdlib `logging` | Auto-enabled by default |
11
+
12
+ These run simultaneously.
13
+ They are **not** mutually exclusive.
14
+
15
+ ## Configuration
16
+
17
+ ```python
18
+ import sentry_sdk
19
+ from sentry_sdk.integrations.logging import LoggingIntegration
20
+ import logging
21
+
22
+ sentry_sdk.init(
23
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
24
+ enable_logs=True, # required for structured Sentry Logs
25
+ integrations=[
26
+ LoggingIntegration(
27
+ sentry_logs_level=logging.INFO, # stdlib records → Sentry Logs (requires enable_logs=True)
28
+ level=logging.INFO, # stdlib records → breadcrumbs
29
+ event_level=logging.ERROR, # stdlib records → Sentry error events
30
+ ),
31
+ ],
32
+ )
33
+ ```
34
+
35
+ ### `LoggingIntegration` parameters
36
+
37
+ | Parameter | Default | Effect |
38
+ | ------------------- | ------- | ----------------------------------------------------------------------- |
39
+ | `sentry_logs_level` | `INFO` | Records ≥ level → **structured Sentry Logs** (needs `enable_logs=True`) |
40
+ | `level` | `INFO` | Records ≥ level → **breadcrumbs** (attached to next error event) |
41
+ | `event_level` | `ERROR` | Records ≥ level → standalone **Sentry error events** |
42
+
43
+ ## Code Examples
44
+
45
+ ### Sentry Structured Logs — direct API
46
+
47
+ ```python
48
+ import sentry_sdk
49
+ from sentry_sdk import logger as sentry_logger
50
+
51
+ sentry_sdk.init(dsn="...", enable_logs=True)
52
+
53
+ sentry_logger.trace("Starting database connection {database}", database="users")
54
+ sentry_logger.debug("Cache miss for user {user_id}", user_id=123)
55
+ sentry_logger.info("Updated global cache")
56
+ sentry_logger.warning("Rate limit reached for endpoint {endpoint}", endpoint="/api/results/")
57
+ sentry_logger.error(
58
+ "Failed to process payment. Order: {order_id}. Amount: {amount}",
59
+ order_id="or_2342",
60
+ amount=99.99,
61
+ )
62
+ sentry_logger.fatal("Database {database} connection pool exhausted", database="users")
63
+ ```
64
+
65
+ Template `{attribute_name}` placeholders become **individually searchable attributes**
66
+ in the Sentry Logs UI.
67
+
68
+ ### Extra structured attributes
69
+
70
+ ```python
71
+ from sentry_sdk import logger as sentry_logger
72
+
73
+ sentry_logger.error(
74
+ "Payment processing failed",
75
+ attributes={
76
+ "payment.provider": "stripe",
77
+ "payment.method": "credit_card",
78
+ "payment.currency": "USD",
79
+ "user.subscription_tier": "premium",
80
+ },
81
+ )
82
+ ```
83
+
84
+ ### stdlib `logging` → Sentry Logs
85
+
86
+ ```python
87
+ import logging
88
+ import sentry_sdk
89
+ from sentry_sdk.integrations.logging import LoggingIntegration
90
+
91
+ sentry_sdk.init(
92
+ dsn="...",
93
+ enable_logs=True,
94
+ integrations=[LoggingIntegration(sentry_logs_level=logging.INFO)],
95
+ )
96
+
97
+ logger = logging.getLogger(__name__)
98
+ logger.info("User signed in", extra={"user_id": 42, "region": "eu-west-1"})
99
+ # extra fields become searchable attributes on the log entry
100
+ ```
101
+
102
+ ### Loguru integration
103
+
104
+ ```python
105
+ import sentry_sdk
106
+ from loguru import logger
107
+
108
+ # LoguruIntegration auto-activates when loguru is installed
109
+ sentry_sdk.init(dsn="...", enable_logs=True)
110
+
111
+ logger.info("Application started")
112
+ logger.error("Critical failure in payment module")
113
+ ```
114
+
115
+ Manual configuration for full control:
116
+
117
+ ```python
118
+ import sentry_sdk
119
+ from sentry_sdk.integrations.loguru import LoguruIntegration, LoggingLevels
120
+
121
+ sentry_sdk.init(
122
+ dsn="...",
123
+ enable_logs=True,
124
+ integrations=[
125
+ LoguruIntegration(
126
+ sentry_logs_level=LoggingLevels.INFO.value, # → structured logs
127
+ level=LoggingLevels.INFO.value, # → breadcrumbs
128
+ event_level=LoggingLevels.ERROR.value, # → error events
129
+ )
130
+ ],
131
+ )
132
+ ```
133
+
134
+ ### `before_send_log` hook — filter and modify
135
+
136
+ ```python
137
+ import sentry_sdk
138
+ from typing import Optional
139
+
140
+ def before_log(log, hint) -> Optional[dict]:
141
+ # Drop all INFO logs
142
+ if log["severity_text"] == "info":
143
+ return None
144
+ # Add custom attribute
145
+ log["attributes"]["processed_by"] = "before_log"
146
+ return log
147
+
148
+ sentry_sdk.init(dsn="...", enable_logs=True, before_send_log=before_log)
149
+ ```
150
+
151
+ ### `Log` object schema
152
+
153
+ | Key | Type | Description |
154
+ | ----------------- | ------------- | ---------------------------------------------------------------------- |
155
+ | `severity_text` | `str` | `"trace"` / `"debug"` / `"info"` / `"warning"` / `"error"` / `"fatal"` |
156
+ | `severity_number` | `int` | 1–24 (OpenTelemetry spec) |
157
+ | `body` | `str` | Rendered message string |
158
+ | `attributes` | `dict` | Custom key-value pairs |
159
+ | `time_unix_nano` | `int` | Unix epoch in nanoseconds |
160
+ | `trace_id` | `str \| None` | Associated trace ID |
161
+
162
+ ### Suppress noisy loggers
163
+
164
+ Events/breadcrumbs and Sentry Logs have **separate** ignore lists.
165
+ `ignore_logger()` only suppresses breadcrumbs and error events — it does **not** affect
166
+ Sentry Logs. This means framework loggers silenced for events (e.g. `django.server`) can
167
+ still be captured as Sentry Logs.
168
+
169
+ ```python
170
+ from sentry_sdk.integrations.logging import (
171
+ ignore_logger,
172
+ ignore_logger_for_sentry_logs,
173
+ unignore_logger,
174
+ unignore_logger_for_sentry_logs,
175
+ )
176
+
177
+ # Suppress breadcrumbs and error events only (Sentry Logs still captured)
178
+ ignore_logger("a.spammy.logger")
179
+ ignore_logger("boto3.*") # glob patterns supported
180
+
181
+ # Suppress Sentry Logs only (breadcrumbs and error events still captured)
182
+ ignore_logger_for_sentry_logs("a.noisy.logger")
183
+
184
+ # Reverse a previous ignore
185
+ unignore_logger("a.spammy.logger")
186
+ unignore_logger_for_sentry_logs("a.noisy.logger")
187
+ ```
188
+
189
+ | Helper | Affects |
190
+ | --------------------------------------- | ------------------------------------------ |
191
+ | `ignore_logger(name)` | Breadcrumbs + error events only |
192
+ | `ignore_logger_for_sentry_logs(name)` | Sentry Logs only |
193
+ | `unignore_logger(name)` | Reverses `ignore_logger()` |
194
+ | `unignore_logger_for_sentry_logs(name)` | Reverses `ignore_logger_for_sentry_logs()` |
195
+
196
+ ## Decision Table
197
+
198
+ | Goal | Tool |
199
+ | ----------------------------------------------- | ----------------------------------------------------------------- |
200
+ | Searchable structured records in Sentry Logs UI | `sentry_sdk.logger.*` + `enable_logs=True` |
201
+ | Bridge existing stdlib `logging` to Sentry Logs | `LoggingIntegration(sentry_logs_level=...)` + `enable_logs=True` |
202
+ | Bridge loguru to Sentry Logs | `LoguruIntegration(sentry_logs_level=...)` + `enable_logs=True` |
203
+ | Breadcrumbs for error context | `LoggingIntegration(level=logging.INFO)` (default) |
204
+ | Auto-create error events from log calls | `LoggingIntegration(event_level=logging.ERROR)` (default) |
205
+ | Drop/modify a log before sending | `before_send_log` callback |
206
+ | Suppress a logger from breadcrumbs/events only | `ignore_logger(name)` |
207
+ | Suppress a logger from Sentry Logs only | `ignore_logger_for_sentry_logs(name)` |
208
+ | Re-enable a previously ignored logger | `unignore_logger(name)` / `unignore_logger_for_sentry_logs(name)` |
209
+
210
+ ## Automatically Added Attributes
211
+
212
+ Every log record receives these automatically:
213
+
214
+ | Attribute | Source |
215
+ | ---------------------------------------- | --------------------------- |
216
+ | `sentry.environment` | `init(environment=...)` |
217
+ | `sentry.release` | `init(release=...)` |
218
+ | `sentry.sdk.name` / `sentry.sdk.version` | SDK metadata |
219
+ | `server.address` | hostname |
220
+ | `sentry.message.template` | Original template string |
221
+ | `sentry.message.parameter.*` | Template placeholder values |
222
+ | `user.id`, `user.name`, `user.email` | Active scope user (if set) |
223
+
224
+ ## Troubleshooting
225
+
226
+ | Issue | Solution |
227
+ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
228
+ | `sentry_sdk.logger.*` calls have no effect | Ensure `enable_logs=True` is set in `sentry_sdk.init()` |
229
+ | stdlib logs not appearing as Sentry Logs | Set `sentry_logs_level` in `LoggingIntegration` and `enable_logs=True` |
230
+ | Logger’s own level filters out records | SDK respects the logger’s configured level — set it to `logging.INFO` or lower |
231
+ | Too many log records hitting quota | Use `before_send_log` to filter by severity or attribute |
232
+ | Loguru not auto-activating | Verify `loguru` is installed; or add `LoguruIntegration()` explicitly |
233
+ | `ignore_logger()` still sending Sentry Logs | Expected — `ignore_logger()` only suppresses breadcrumbs/events; use `ignore_logger_for_sentry_logs()` to suppress Sentry Logs |
234
+ | Framework logger (e.g. `django.server`) not appearing in Sentry Logs | It may be in the default Sentry Logs ignore list; call `unignore_logger_for_sentry_logs("django.server")` |
@@ -0,0 +1,154 @@
1
+ # Metrics — Sentry Python SDK
2
+
3
+ > Minimum SDK: `sentry-sdk` 2.44.0+
4
+
5
+ ## Overview
6
+
7
+ `sentry_sdk.metrics` provides custom counters, gauges, and distributions.
8
+ Metrics are enabled by default — no extra `init()` flag needed.
9
+
10
+ ## Metric Types
11
+
12
+ | Type | API | Use for |
13
+ | ------------ | ------------------------ | ----------------------------------------------------------- |
14
+ | Counter | `metrics.count()` | Event occurrences, request counts |
15
+ | Distribution | `metrics.distribution()` | Latencies, sizes — supports p50/p90/p95/p99 |
16
+ | Gauge | `metrics.gauge()` | Current values (min, max, avg, sum, count — no percentiles) |
17
+
18
+ ## Configuration
19
+
20
+ ```python
21
+ import sentry_sdk
22
+
23
+ sentry_sdk.init(
24
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
25
+ # No extra flag — metrics are on by default
26
+ )
27
+ ```
28
+
29
+ Optional `before_send_metric` hook:
30
+
31
+ ```python
32
+ from typing import Optional
33
+
34
+ def before_metric(metric, hint) -> Optional[dict]:
35
+ if metric["name"] == "noisy-metric":
36
+ return None # drop this metric
37
+ metric["attributes"]["env"] = "prod" # add attribute
38
+ return metric
39
+
40
+ sentry_sdk.init(dsn="...", before_send_metric=before_metric)
41
+ ```
42
+
43
+ ## Code Examples
44
+
45
+ ### Counter — event occurrences
46
+
47
+ ```python
48
+ import sentry_sdk
49
+
50
+ sentry_sdk.metrics.count(
51
+ "button_click",
52
+ 1,
53
+ attributes={
54
+ "browser": "Firefox",
55
+ "page": "/checkout",
56
+ },
57
+ )
58
+
59
+ # Increment by more than 1
60
+ sentry_sdk.metrics.count("api.request", 5, attributes={"endpoint": "/v2/users"})
61
+ ```
62
+
63
+ ### Distribution — percentile analysis
64
+
65
+ Best for latencies, response sizes, durations where p50/p90/p99 matter:
66
+
67
+ ```python
68
+ import time
69
+ import sentry_sdk
70
+
71
+ start = time.time()
72
+ process_order(order)
73
+ duration_ms = (time.time() - start) * 1000
74
+
75
+ sentry_sdk.metrics.distribution(
76
+ "order.processing_time",
77
+ duration_ms,
78
+ unit="millisecond",
79
+ attributes={"order.type": "subscription", "region": "eu"},
80
+ )
81
+ ```
82
+
83
+ ### Gauge — space-efficient aggregates
84
+
85
+ Use when high cardinality is a concern; no percentile support:
86
+
87
+ ```python
88
+ import sentry_sdk
89
+
90
+ sentry_sdk.metrics.gauge(
91
+ "queue.depth",
92
+ len(pending_jobs),
93
+ unit="none",
94
+ attributes={"queue": "billing"},
95
+ )
96
+ ```
97
+
98
+ ### All four attribute value types
99
+
100
+ ```python
101
+ sentry_sdk.metrics.count(
102
+ "api.request",
103
+ 1,
104
+ attributes={
105
+ "endpoint": "/v2/users", # str
106
+ "method": "POST",
107
+ "success": True, # bool
108
+ "status_code": 201, # int
109
+ "latency": 0.042, # float
110
+ },
111
+ )
112
+ ```
113
+
114
+ ### Unit strings
115
+
116
+ | Category | Values |
117
+ | ------------- | ----------------------------------------------------------------------------------------------------- |
118
+ | Time | `"nanosecond"`, `"microsecond"`, `"millisecond"`, `"second"`, `"minute"`, `"hour"`, `"day"`, `"week"` |
119
+ | Data | `"bit"`, `"byte"`, `"kilobyte"`, `"megabyte"`, `"gigabyte"`, `"terabyte"` |
120
+ | Fractions | `"ratio"`, `"percent"` |
121
+ | Dimensionless | `"none"` (default when omitted) |
122
+
123
+ ### `before_send_metric` — `Metric` schema
124
+
125
+ | Key | Type | Description |
126
+ | ------------ | ------------- | ------------------------------------------ |
127
+ | `name` | `str` | Metric identifier |
128
+ | `type` | `str` | `"counter"` / `"gauge"` / `"distribution"` |
129
+ | `value` | `float` | Numeric measurement |
130
+ | `unit` | `str \| None` | Unit string |
131
+ | `attributes` | `dict` | Custom key-value pairs |
132
+ | `timestamp` | `float` | Epoch seconds |
133
+ | `trace_id` | `str \| None` | Associated trace ID |
134
+ | `span_id` | `str \| None` | Active span ID |
135
+
136
+ ## Best Practices
137
+
138
+ - Keep attribute cardinality low — avoid user IDs, UUIDs, or timestamps as attribute
139
+ values
140
+ - Use `distribution` over `gauge` when you need percentile analysis
141
+ - Prefix metric names with your service name: `"payments.charge_time"` not
142
+ `"charge_time"`
143
+ - Use standard unit strings — Sentry renders them in the UI with proper labels
144
+ - Metrics are buffered and flushed periodically — avoid using them for critical alerting
145
+ requiring sub-second latency
146
+
147
+ ## Troubleshooting
148
+
149
+ | Issue | Solution |
150
+ | --------------------------- | ---------------------------------------------------------------------------------- |
151
+ | Metrics not appearing | Verify SDK version ≥ 2.44.0; check `debug=True` output |
152
+ | Metric dropped silently | Check `before_send_metric` hook; verify metric name contains no special characters |
153
+ | High cardinality warning | Reduce attribute values — avoid per-user or per-request identifiers |
154
+ | No percentiles in Sentry UI | Switch from `gauge` to `distribution` — gauges do not support percentiles |
@@ -0,0 +1,120 @@
1
+ # Profiling — Sentry Python SDK
2
+
3
+ > Minimum SDK: `sentry-sdk` 1.18.0+ (transaction-based); 2.24.1+ (continuous /
4
+ > session-based)
5
+
6
+ ## Configuration
7
+
8
+ | Option | API | Min SDK | Purpose |
9
+ | ----------------------------- | -------------------------- | ------- | --------------------------------------------------------------------- |
10
+ | `profiles_sample_rate` | Transaction-based (legacy) | 1.18.0 | Fraction of transactions to profile; relative to `traces_sample_rate` |
11
+ | `profile_session_sample_rate` | Continuous (new) | 2.24.1 | Fraction of sessions to profile; evaluated once per process start |
12
+ | `profile_lifecycle` | Continuous (new) | 2.24.1 | `"trace"` = SDK auto-manages; `"manual"` = explicit start/stop |
13
+
14
+ Profiling requires `traces_sample_rate > 0` (or `traces_sampler`) to be set.
15
+
16
+ ## API Comparison
17
+
18
+ | | `profiles_sample_rate` (transaction-based) | `profile_session_sample_rate` (continuous) |
19
+ | ---------------- | ------------------------------------------ | ------------------------------------------ |
20
+ | **Min SDK** | 1.18.0 | 2.24.1 |
21
+ | **Evaluated** | Per transaction | Once per process/deployment start |
22
+ | **Max duration** | 30 seconds per transaction | Unlimited |
23
+ | **Requires** | `traces_sample_rate` | `profile_lifecycle` + `traces_sample_rate` |
24
+ | **Use when** | Simple setup, short-lived transactions | Long-running apps, background services |
25
+
26
+ ## Code Examples
27
+
28
+ ### Transaction-based profiling (simple / legacy)
29
+
30
+ ```python
31
+ import sentry_sdk
32
+
33
+ sentry_sdk.init(
34
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
35
+ traces_sample_rate=1.0,
36
+ profiles_sample_rate=1.0, # relative to traces_sample_rate
37
+ # e.g. profiles_sample_rate=0.5 → profiles 50% of sampled transactions
38
+ )
39
+ ```
40
+
41
+ Profiles start when the transaction starts and stop when it ends or after **30
42
+ seconds**, whichever is first.
43
+
44
+ ### Continuous profiling — auto-managed (`profile_lifecycle="trace"`)
45
+
46
+ SDK automatically starts and stops the profiler around active spans.
47
+
48
+ ```python
49
+ import sentry_sdk
50
+
51
+ sentry_sdk.init(
52
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
53
+ traces_sample_rate=1.0,
54
+ profile_session_sample_rate=1.0, # evaluated once at process start
55
+ profile_lifecycle="trace", # SDK manages start/stop automatically
56
+ )
57
+ ```
58
+
59
+ ### Continuous profiling — manual control (`profile_lifecycle="manual"`)
60
+
61
+ Full programmatic control over profiler lifetime.
62
+
63
+ ```python
64
+ import sentry_sdk
65
+
66
+ sentry_sdk.init(
67
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
68
+ traces_sample_rate=1.0,
69
+ profile_session_sample_rate=1.0,
70
+ profile_lifecycle="manual",
71
+ )
72
+
73
+ # Application startup
74
+ sentry_sdk.profiler.start_profiler()
75
+
76
+ # ... application runs ...
77
+
78
+ # Application shutdown
79
+ sentry_sdk.profiler.stop_profiler()
80
+ ```
81
+
82
+ ### Production-recommended setup (continuous)
83
+
84
+ ```python
85
+ import sentry_sdk
86
+ import signal
87
+
88
+ sentry_sdk.init(
89
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
90
+ environment="production",
91
+ release="my-app@2.0.0",
92
+ traces_sample_rate=0.1, # sample 10% of transactions
93
+ profile_session_sample_rate=1.0, # profile all sampled sessions
94
+ profile_lifecycle="trace",
95
+ )
96
+ ```
97
+
98
+ ## Best Practices
99
+
100
+ - Use continuous profiling (`profile_session_sample_rate` + `profile_lifecycle`) for
101
+ long-running services and production workloads
102
+ - Use transaction-based (`profiles_sample_rate`) for simple setups or short-lived
103
+ scripts
104
+ - `profile_session_sample_rate` is evaluated **once at process start** — changing it
105
+ requires a restart
106
+ - `"trace"` and `"manual"` profile lifecycles are mutually exclusive; do not mix them
107
+ - Reduce `traces_sample_rate` in production (e.g., `0.1`) — profiling overhead is low
108
+ but not zero
109
+ - Python’s GIL means the profiler captures the thread holding the GIL; async I/O wait
110
+ time appears as near-zero CPU — this is expected
111
+
112
+ ## Troubleshooting
113
+
114
+ | Issue | Solution |
115
+ | ------------------------------------------- | ----------------------------------------------------------------------------- |
116
+ | No profiles appearing | Verify `traces_sample_rate > 0` and profiling options are set correctly |
117
+ | Profiles cut off at 30s | Switch to continuous profiling (`profile_session_sample_rate`) |
118
+ | `profile_session_sample_rate` has no effect | Check SDK version is ≥ 2.24.1; ensure `profile_lifecycle` is also set |
119
+ | Profiler not stopping | In `"manual"` mode, call `sentry_sdk.profiler.stop_profiler()` on shutdown |
120
+ | Async functions show no CPU time | Expected — Python profiler only captures GIL-holding time, not async I/O wait |