@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,364 @@
1
+ # Tracing — Sentry Python SDK
2
+
3
+ > Minimum SDK: `sentry-sdk` 0.11.2+ for basic tracing; 2.x for `update_current_span()`
4
+ > and enhanced `@trace`
5
+
6
+ ## Configuration
7
+
8
+ | Option | Type | Default | Purpose |
9
+ | --------------------------- | ---------- | ----------- | -------------------------------------------------------------------- |
10
+ | `traces_sample_rate` | `float` | `None` | Fraction of transactions to trace (0.0–1.0); `None` disables tracing |
11
+ | `traces_sampler` | `callable` | `None` | Per-transaction sampling function; overrides `traces_sample_rate` |
12
+ | `trace_propagation_targets` | `list` | all origins | URLs to inject `sentry-trace` / `baggage` headers into |
13
+ | `functions_to_trace` | `list` | `[]` | Fully-qualified function names to auto-wrap with spans |
14
+ | `instrumenter` | `str` | `"sentry"` | Set to `"otel"` to use OpenTelemetry bridge |
15
+
16
+ ## Code Examples
17
+
18
+ ### Enable tracing
19
+
20
+ ```python
21
+ import sentry_sdk
22
+
23
+ sentry_sdk.init(
24
+ dsn="https://<key>@<org>.ingest.sentry.io/<project>",
25
+ traces_sample_rate=1.0, # 1.0 = 100% of transactions; reduce in production
26
+ )
27
+ ```
28
+
29
+ ### Custom spans with context manager
30
+
31
+ ```python
32
+ import sentry_sdk
33
+
34
+ # Top-level transaction
35
+ with sentry_sdk.start_transaction(op="task", name="Process Order"):
36
+ with sentry_sdk.start_span(name="Validate Items") as span:
37
+ span.set_data("item_count", len(items))
38
+ validate(items)
39
+
40
+ with sentry_sdk.start_span(name="Charge Card"):
41
+ charge_card(order)
42
+ ```
43
+
44
+ ### `@sentry_sdk.trace` decorator
45
+
46
+ ```python
47
+ import sentry_sdk
48
+
49
+ # Simple decorator — uses function name as span name
50
+ @sentry_sdk.trace
51
+ def process_payment(order_id: str):
52
+ ...
53
+
54
+ # With custom op, name, and attributes (SDK 2.35.0+)
55
+ @sentry_sdk.trace(op="payment", name="Charge Customer", attributes={"version": 2})
56
+ def charge_customer(amount: int):
57
+ ...
58
+
59
+ # Static / class methods — decorator order matters!
60
+ class PaymentService:
61
+ @staticmethod
62
+ @sentry_sdk.trace # MUST come AFTER @staticmethod
63
+ def process():
64
+ ...
65
+
66
+ @classmethod
67
+ @sentry_sdk.trace # MUST come AFTER @classmethod
68
+ def batch_process(cls):
69
+ ...
70
+ ```
71
+
72
+ ### Adding data to spans
73
+
74
+ ```python
75
+ import sentry_sdk
76
+
77
+ with sentry_sdk.start_span(name="db-query") as span:
78
+ span.set_data("db.system", "postgresql")
79
+ span.set_data("db.table", "orders")
80
+ span.set_data("row_count", 42)
81
+ span.set_data("cache_hit", False)
82
+ # Only primitive types: str, int, float, bool, or homogeneous lists
83
+ ```
84
+
85
+ ### Accessing the active span/transaction
86
+
87
+ ```python
88
+ import sentry_sdk
89
+
90
+ # Get active span
91
+ span = sentry_sdk.get_current_span()
92
+ if span:
93
+ span.set_data("key", "value")
94
+
95
+ # Get active transaction
96
+ txn = sentry_sdk.get_current_scope().transaction
97
+ if txn:
98
+ txn.set_tag("order.type", "subscription")
99
+
100
+ # Update active span in-place (SDK 2.x)
101
+ sentry_sdk.update_current_span(
102
+ op="http.client",
103
+ name="POST /api/charge",
104
+ attributes={"http.status_code": 200},
105
+ )
106
+ ```
107
+
108
+ ### Auto-trace multiple functions without decorators
109
+
110
+ ```python
111
+ import sentry_sdk
112
+
113
+ sentry_sdk.init(
114
+ dsn="...",
115
+ traces_sample_rate=1.0,
116
+ functions_to_trace=[
117
+ {"qualified_name": "myapp.billing.processor.charge_card"},
118
+ {"qualified_name": "myapp.billing.processor.BillingService.validate"},
119
+ ],
120
+ )
121
+ # No changes to the functions themselves required
122
+ ```
123
+
124
+ ### Dynamic sampling with `traces_sampler`
125
+
126
+ ```python
127
+ import sentry_sdk
128
+
129
+ def traces_sampler(sampling_context):
130
+ # Honour parent's sampling decision in distributed traces
131
+ parent = sampling_context.get("parent_sampled")
132
+ if parent is not None:
133
+ return float(parent)
134
+
135
+ op = sampling_context["transaction_context"].get("op", "")
136
+
137
+ if op == "http.server":
138
+ name = sampling_context["transaction_context"].get("name", "")
139
+ if name in ("/health", "/ping", "/readyz"):
140
+ return 0 # drop health checks
141
+ return 0.5 # sample 50% of HTTP requests
142
+ elif op == "task":
143
+ return 0.1 # sample 10% of background tasks
144
+ else:
145
+ return 0.01 # default 1%
146
+
147
+ sentry_sdk.init(dsn="...", traces_sampler=traces_sampler)
148
+ ```
149
+
150
+ ### Auto-instrumented frameworks
151
+
152
+ | Framework | Auto-enabled | What is traced |
153
+ | ------------------------- | ------------ | ------------------------------------------ |
154
+ | Django | ✅ | Requests, DB queries (ORM), cache, signals |
155
+ | Flask | ✅ | Requests, Jinja2 rendering |
156
+ | FastAPI / Starlette | ✅ | Requests, background tasks |
157
+ | Pyramid | ✅ | Requests, route matching |
158
+ | Celery | ✅ | Task execution, queue operations |
159
+ | SQLAlchemy | ✅ | All queries as spans + breadcrumbs |
160
+ | Redis | ✅ | All commands as spans + breadcrumbs |
161
+ | PyMongo | ✅ | All queries (covers mongoengine, Motor) |
162
+ | requests / httpx / httpx2 | ✅ | Outbound HTTP calls with trace propagation |
163
+
164
+ ### Database auto-instrumentation
165
+
166
+ ```python
167
+ import sentry_sdk
168
+ from sentry_sdk.integrations.redis import RedisIntegration
169
+
170
+ # SQLAlchemy — auto-enabled, no config needed
171
+ sentry_sdk.init(dsn="...", traces_sample_rate=1.0)
172
+ # All queries appear as spans automatically
173
+
174
+ # Redis — with optional cache monitoring
175
+ sentry_sdk.init(
176
+ dsn="...",
177
+ traces_sample_rate=1.0,
178
+ send_default_pii=True, # enables full command data in spans
179
+ integrations=[
180
+ RedisIntegration(
181
+ max_data_size=1024, # truncate large values
182
+ cache_prefixes=["mycache:", "template."], # appears in cache dashboard
183
+ ),
184
+ ],
185
+ )
186
+ ```
187
+
188
+ ### Distributed tracing
189
+
190
+ Frameworks propagate `sentry-trace` and `baggage` headers automatically.
191
+ For manual HTTP calls:
192
+
193
+ ```python
194
+ import sentry_sdk
195
+
196
+ # Outgoing: inject headers into arbitrary request
197
+ headers = {}
198
+ headers["sentry-trace"] = sentry_sdk.get_traceparent()
199
+ headers["baggage"] = sentry_sdk.get_baggage()
200
+ make_request(url="https://internal-api.example.com", headers=headers)
201
+
202
+ # Incoming: continue a trace from arbitrary headers
203
+ incoming_headers = get_headers_from_request()
204
+ transaction = sentry_sdk.continue_trace(incoming_headers) # does NOT start it
205
+ with sentry_sdk.start_transaction(transaction):
206
+ handle_request()
207
+
208
+ # Browser: inject into HTML meta tags for JS frontend pickup
209
+ meta = f'<meta name="sentry-trace" content="{sentry_sdk.get_traceparent()}">'
210
+ meta += f'<meta name="baggage" content="{sentry_sdk.get_baggage()}">'
211
+ ```
212
+
213
+ ### Limit propagation targets
214
+
215
+ ```python
216
+ import sentry_sdk, re
217
+
218
+ sentry_sdk.init(
219
+ dsn="...",
220
+ traces_sample_rate=1.0,
221
+ trace_propagation_targets=[
222
+ "localhost",
223
+ "https://api.myservice.com",
224
+ re.compile(r"^https://internal\."),
225
+ ],
226
+ # Set to [] to disable outgoing propagation entirely
227
+ )
228
+ ```
229
+
230
+ ### OpenTelemetry — OTLP Integration (recommended)
231
+
232
+ > Minimum SDK: `sentry-sdk` 2.x with `sentry-sdk[opentelemetry-otlp]`
233
+
234
+ If the project already uses OpenTelemetry for tracing, **use the OTLP integration
235
+ instead of Sentry’s native tracing**. Sentry ingests OTel spans directly via its OTLP
236
+ endpoint — no span conversion, no dual instrumentation.
237
+
238
+ **When to use this path:** OTel packages (`opentelemetry-sdk`, `opentelemetry-distro`,
239
+ `opentelemetry-instrumentation-*`) detected in requirements, or `TracerProvider` /
240
+ `start_as_current_span` found in source.
241
+
242
+ **When NOT to use this path:** No OpenTelemetry in the project — use Sentry’s native
243
+ `traces_sample_rate` instead.
244
+
245
+ #### Setup
246
+
247
+ ```bash
248
+ pip install "sentry-sdk[opentelemetry-otlp]"
249
+ ```
250
+
251
+ ```python
252
+ import os
253
+ import sentry_sdk
254
+ from sentry_sdk.integrations.otlp import OTLPIntegration
255
+
256
+ sentry_sdk.init(
257
+ dsn=os.environ["SENTRY_DSN"],
258
+ send_default_pii=True,
259
+ enable_logs=True,
260
+ integrations=[
261
+ OTLPIntegration(),
262
+ # OTLPIntegration(collector_url="http://localhost:4318/v1/traces"), # set if sending spans to an OTel Collector
263
+ ],
264
+ # Do NOT set traces_sample_rate — tracing is handled by OTel
265
+ # Errors, Logs, Crons, and Metrics are still captured natively by Sentry
266
+ # and automatically linked to the active OTel trace
267
+ )
268
+ ```
269
+
270
+ Configure your OTel instrumentations separately (keep your existing OTel setup):
271
+
272
+ ```python
273
+ from opentelemetry.instrumentation.auto_instrumentation import sitecustomize
274
+ # or configure manually:
275
+ from opentelemetry import trace
276
+ from opentelemetry.sdk.trace import TracerProvider
277
+
278
+ provider = TracerProvider()
279
+ trace.set_tracer_provider(provider)
280
+ # Sentry auto-adds its OTLP exporter and propagator —
281
+ # no manual SpanProcessor or Propagator wiring needed
282
+ ```
283
+
284
+ #### How it works
285
+
286
+ - Sentry derives an OTLP endpoint from your DSN and registers a `SpanExporter` with the
287
+ existing `TracerProvider` — your other exporters (Jaeger, Zipkin, Collector) continue
288
+ working
289
+ - A propagator injects `sentry-trace` + `baggage` headers for distributed tracing with
290
+ other Sentry-instrumented services
291
+ - Errors captured via `sentry_sdk.capture_exception()` are automatically linked to the
292
+ active OTel trace/span via shared `trace_id`
293
+
294
+ #### OTLP configuration options
295
+
296
+ | Option | Default | Purpose |
297
+ | ---------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
298
+ | `setup_otlp_traces_exporter` | `True` | Auto-configure exporter; set `False` if you send to your own Collector |
299
+ | `collector_url` | `None` | OTLP HTTP endpoint of an OTel Collector (e.g., `http://localhost:4318/v1/traces`); when set, spans are sent to the collector instead of directly to Sentry |
300
+ | `setup_propagator` | `True` | Auto-configure propagator; set `False` if you manage propagation yourself |
301
+ | `capture_exceptions` | `False` | Intercept exceptions recorded via OTel `Span.record_exception` |
302
+
303
+ #### Important
304
+
305
+ **Do not combine OTLP with native Sentry tracing.** When using `OTLPIntegration`:
306
+
307
+ - Do **not** set `traces_sample_rate` or `traces_sampler`
308
+ - Do **not** set `instrumenter="otel"` (that is the legacy SpanProcessor approach)
309
+ - Do **not** use `sentry_sdk.start_transaction()` or `sentry_sdk.start_span()` — use
310
+ OTel’s `tracer.start_as_current_span()` instead
311
+
312
+ ### OpenTelemetry bridge (legacy)
313
+
314
+ > **Deprecated:** Prefer the OTLP integration above.
315
+ > The SpanProcessor bridge below is the older approach.
316
+
317
+ ```python
318
+ # pip install "sentry-sdk[opentelemetry]"
319
+ import sentry_sdk
320
+ from opentelemetry import trace
321
+ from opentelemetry.propagate import set_global_textmap
322
+ from opentelemetry.sdk.trace import TracerProvider
323
+ from sentry_sdk.integrations.opentelemetry import SentrySpanProcessor, SentryPropagator
324
+
325
+ sentry_sdk.init(
326
+ dsn="...",
327
+ traces_sample_rate=1.0,
328
+ instrumenter="otel", # disables built-in Sentry auto-instrumentation
329
+ )
330
+
331
+ provider = TracerProvider()
332
+ provider.add_span_processor(SentrySpanProcessor())
333
+ trace.set_tracer_provider(provider)
334
+ set_global_textmap(SentryPropagator())
335
+
336
+ # Use OTel API as normal — spans appear in Sentry
337
+ tracer = trace.get_tracer(__name__)
338
+ with tracer.start_as_current_span("my-operation"):
339
+ do_work()
340
+ ```
341
+
342
+ ## Best Practices
343
+
344
+ - Use `traces_sampler` instead of `traces_sample_rate` for production — it lets you drop
345
+ health checks, adjust by route, and honour distributed trace decisions
346
+ - Always finish spans — unfinished spans are silently dropped
347
+ - Use `span.set_data()` not `span.set_tag()` for span-level data (tags are for
348
+ scope-level filtering)
349
+ - Set `trace_propagation_targets` to avoid leaking `sentry-trace` headers to third-party
350
+ services
351
+ - Add `sentry-trace` and `baggage` to your CORS allowlist when tracing
352
+ browser-to-backend flows
353
+
354
+ ## Troubleshooting
355
+
356
+ | Issue | Solution |
357
+ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
358
+ | No transactions appearing | Verify `traces_sample_rate > 0` or `traces_sampler` returns non-zero |
359
+ | Spans not linked to transaction | Ensure spans are created inside an active `start_transaction()` context |
360
+ | Distributed traces broken | Check that `sentry-trace` and `baggage` headers pass through proxies/gateways |
361
+ | `description=` deprecation warning | Replace `description=` with `name=` in `start_span()` calls |
362
+ | OTel spans not appearing (OTLP) | Verify `sentry-sdk[opentelemetry-otlp]` is installed; do **not** set `traces_sample_rate` when using `OTLPIntegration` |
363
+ | OTel spans not appearing (legacy bridge) | Ensure `SentrySpanProcessor` is added to `TracerProvider` before creating spans |
364
+ | `@sentry_sdk.trace` on static method fails | Put `@sentry_sdk.trace` AFTER `@staticmethod` / `@classmethod` |