@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,155 @@
1
+ # Suspect commits, code mappings, and resolve-by-commit
2
+
3
+ “Which change caused this?”
4
+ is the payoff of releases.
5
+ It is also the part most likely to be half-configured, because it runs on **two
6
+ independent mechanisms** and people assume they’re the same one.
7
+
8
+ ## The two mechanisms
9
+
10
+ **1. SCM integration + code mappings + blame (the primary path).** With a GitHub or
11
+ GitLab integration installed and valid code mappings, Sentry takes the in-app frames
12
+ from the stack trace and asks the provider for blame on that exact file and line.
13
+ If the most recent commit there is less than a year old, it’s a suspect commit.
14
+ This path does **not** need releases at all.
15
+
16
+ **2. Release commit data (the fallback).** If mechanism 1 isn’t available or fails,
17
+ Sentry falls back to the commits you associated with the release (`set-commits`) and
18
+ matches files touched by those commits against files in the stack trace.
19
+ This is the path for orgs that don’t want Sentry connecting to their repo — send commit
20
+ metadata explicitly and skip the integration.
21
+
22
+ Sentry tries mechanism 1 by default and falls back to 2. Which one you’re relying on
23
+ determines what to fix when it’s empty.
24
+
25
+ ## Prerequisites for either mechanism
26
+
27
+ - **Readable in-app frames.** Both mechanisms work off file paths in the stack trace.
28
+ Minified or unsymbolicated frames have nothing usable, so source maps (JavaScript) or
29
+ debug files (native/mobile) come first.
30
+ That is a separate procedure — say so and get it done before promising suspect
31
+ commits.
32
+ - **Frames marked in-app.** A trace where everything is vendor code yields no suspect
33
+ commit.
34
+ - **Events created after setup.** Sentry does not backfill: issues that existed before
35
+ the integration was connected won’t gain suspect commits.
36
+
37
+ ## Connecting the repository (the step you can’t do)
38
+
39
+ Installing the SCM integration is an OAuth flow in the Sentry UI. **The agent cannot do
40
+ this** — hand it to the user explicitly rather than leaving it implied:
41
+
42
+ 1. **Settings → Integrations**, pick GitHub or GitLab.
43
+ 2. Configure/install it, granting access to the relevant org.
44
+ 3. **Add the repository** for this project.
45
+
46
+ Then `sentry-cli repos list` confirms it from the terminal, and the repo name it prints
47
+ (`owner-name/repo-name`) is the exact string `--commit "repo@sha"` expects.
48
+
49
+ ## Code mappings
50
+
51
+ A code mapping translates the path prefix in a stack trace to the path prefix in the
52
+ repository. Without one, blame lookups can’t find the file.
53
+
54
+ **Often already done:** Sentry auto-creates code mappings for JavaScript, Python, Java,
55
+ PHP, Ruby, Go, C#, and Kotlin projects in orgs with the GitHub integration installed.
56
+ Check before building any.
57
+
58
+ ### Deriving the two roots from a real frame
59
+
60
+ 1. Open an event and find an **in-app** frame.
61
+ Take its `filename` — the `{}` event-JSON view shows `filename` and `abs_path`
62
+ verbatim if the UI truncates it.
63
+ Say it’s `src/main.py`.
64
+ 2. Find that same file in the repository.
65
+ Say it lives at `flask/src/main.py` (the repo name itself is not part of the path).
66
+ 3. The shared suffix tells you the pair: **Stack Trace Root** `src/`, **Source Code
67
+ Root** `flask/src/`.
68
+
69
+ Prefer a non-empty stack trace root.
70
+ Java and other package-name platforms need extra care — the prefix is a package path
71
+ (`io/sentry/android/core`), not a file path.
72
+
73
+ ### In the UI
74
+
75
+ **Settings → Integrations → [your SCM] → Configurations → Configure → Code Mappings →
76
+ Add Mapping.** Fields: project, repo, default branch (the fallback when commit tracking
77
+ isn’t set up), stack trace root, source code root.
78
+ One mapping per repo per project — a project fed by several repos needs several.
79
+
80
+ ### In bulk, from the CLI
81
+
82
+ `sentry-cli code-mappings upload` (CLI 3.3.4+) keeps mappings in version control and
83
+ lets CI resync them as the repo layout moves.
84
+ It needs an **organization token with the `org:ci` scope**:
85
+
86
+ ```bash
87
+ sentry-cli code-mappings upload ./mappings.json
88
+ ```
89
+
90
+ ```json
91
+ [
92
+ {
93
+ "stackRoot": "io/sentry/android/core",
94
+ "sourceRoot": "sentry-android-core/src/main/java/io/sentry/android/core"
95
+ },
96
+ { "stackRoot": "io/sentry", "sourceRoot": "sentry/src/main/java/io/sentry" }
97
+ ]
98
+ ```
99
+
100
+ Several mappings may share a `stackRoot` with different `sourceRoot`s — that’s how
101
+ monorepos with a repeated package prefix work.
102
+ Sentry evaluates from most specific to least specific and takes the first that resolves
103
+ to a real file.
104
+
105
+ Code mappings also power source context and CODEOWNERS-based ownership, so they’re worth
106
+ getting right beyond suspect commits.
107
+
108
+ ## Resolve by commit and by PR
109
+
110
+ Once commits are associated, the commit message closes the loop:
111
+
112
+ ```
113
+ Prevent empty queries on users
114
+
115
+ Fixes PROJECT-NAME-12A
116
+ ```
117
+
118
+ Sentry links the commit to the issue immediately, but **does not resolve it yet** — it
119
+ marks the issue resolved when a release containing that commit is created.
120
+ `fixes <SHORT-ID>` in a PR title or description works the same way, resolving when the
121
+ merge commit lands in a release.
122
+ The short ID is at the top of the Issue Details page.
123
+
124
+ This is the mechanism that closes issues by shipping rather than by a manual status
125
+ change, and it is dead weight without commit association — worth mentioning to the user
126
+ as a reason to finish this setup.
127
+
128
+ ## Auto-assignment
129
+
130
+ **[Project] → Settings → Ownership Rules → “Auto-assign to suspect commits”** assigns
131
+ new issues to the suspect commit’s author.
132
+ Caveats worth stating up front:
133
+
134
+ - A manually assigned issue is never reassigned.
135
+ - The author must be a member of the Sentry org, matched by commit email.
136
+ - Assignment can be skipped under high new-issue rates, retried on the next event.
137
+ - On GitHub, “Keep my email address private” in the author’s account settings prevents
138
+ the match.
139
+
140
+ ## When suspect commits are missing
141
+
142
+ Work down this list; it’s ordered by how often it’s the cause:
143
+
144
+ 1. The stack trace has no in-app frames, or no stack trace at all.
145
+ 2. Code mappings are missing or wrong, so no in-app frame resolves to a repo file.
146
+ 3. The issue predates the integration.
147
+ 4. Blame on those lines is older than a year.
148
+ 5. The SCM integration got disconnected (re-check **Settings → Integrations**).
149
+ 6. You’re on the fallback path and `set-commits` never ran, or ran without `patch_set`
150
+ data — file-level changes are what power suggested assignees.
151
+
152
+ ## Related
153
+
154
+ - [`ci-pipeline.md`](ci-pipeline.md) — `set-commits`, the fallback mechanism’s input.
155
+ - [`troubleshooting.md`](troubleshooting.md) — the wider failure table.
@@ -0,0 +1,131 @@
1
+ # Release tagging (`release` and `environment` on events)
2
+
3
+ Tagging every event with the version it came from is the SDK half of releases, and the
4
+ half that is pure configuration — one or two `init` options, no CI, no integrations.
5
+ It is worth doing as soon as anything ships to production: without it every event is
6
+ “unknown release” and regression detection, crash-free rates, and suspect commits have
7
+ nothing to attach to.
8
+
9
+ This file covers the tag itself.
10
+ Creating the release _object_ — associating commits, finalizing it, recording deploys —
11
+ is a CI-side job: [`ci-pipeline.md`](ci-pipeline.md).
12
+
13
+ ## The invariant
14
+
15
+ **The release name the SDK tags events with must be byte-identical to the name CI
16
+ creates the release under.** If they differ by a `v` prefix, a short vs.
17
+ full SHA, or a trailing build number, you get two releases: one with commits and a
18
+ deploy but no events, and one with events but no commits.
19
+ Nothing errors — the features just stay empty.
20
+
21
+ Pick the name **once**, in one place, and derive both sides from it.
22
+ In CI that usually means computing it into an environment variable that the build and
23
+ the release step both read.
24
+ This matters even if you are only doing the tagging half today: choose a name a future
25
+ CI step can reproduce exactly.
26
+
27
+ ## Naming rules
28
+
29
+ Release names are **global per Sentry organization**, not per project.
30
+ Two projects that both ship `1.0.0` will collide into one release, so prefix with
31
+ something project-specific (`checkout-api@1.0.0`, not `1.0.0`).
32
+
33
+ A name cannot:
34
+
35
+ - contain newlines, tabs, forward slashes (`/`), or backslashes (`\`)
36
+ - be entirely `.`, `..`, or a space
37
+ - exceed 200 characters
38
+
39
+ Avoid `1.0.0 (42)` — parentheses are how Sentry _displays_ `foo@1.0+2`, so using them in
40
+ the name itself errors.
41
+
42
+ ## Two naming strategies
43
+
44
+ **Semantic versioning** — `package@version` or `package@version+build`, e.g.
45
+ `my.project.name@2.3.12+1234`. This is the right choice for anything with a user-facing
46
+ version, and required for mobile, where `package` is the bundle/package id, `version` is
47
+ `CFBundleShortVersionString` / `versionName`, and `build` is `CFBundleVersion` /
48
+ `versionCode`.
49
+
50
+ **Commit SHA** — the full hash, e.g. `da39a3ee5e6b4b0d3255bfef95601890afd80709`. The
51
+ right choice for continuously-deployed services with no meaningful version number.
52
+ `sentry-cli releases propose-version` derives it for you.
53
+
54
+ The choice has a side effect worth knowing: Sentry auto-detects whether a project is
55
+ using semver by looking at recent releases, and **regression detection and
56
+ `release:latest` sorting behave differently** between semver and SHA/time-based
57
+ projects. Don’t switch schemes casually mid-project.
58
+
59
+ ## Getting the name onto events
60
+
61
+ Tagging events is the SDK’s half.
62
+ Most SDKs already produce _some_ release name — the table below is as much about knowing
63
+ what the default is as about overriding it, because a default you didn’t know about is
64
+ exactly what breaks the invariant above.
65
+
66
+ | Platform | Default when you set nothing | How to set it explicitly |
67
+ | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
68
+ | JavaScript, bundled (`browser`, `react`, `svelte`, `nextjs`, `react-router-framework`, `tanstack-start`, `cloudflare`) | The Sentry bundler plugin detects a name — Cordova, Heroku, AWS CodeBuild, CircleCI, Xcode, and Gradle environments, otherwise the git `HEAD` commit SHA — and **injects** it into the bundle for the SDK to pick up | `release.name` in the bundler plugin options, or `SENTRY_RELEASE` at build time |
69
+ | JavaScript, server-side (`node`, `nestjs`) | `SENTRY_RELEASE` from the runtime environment | `release` in `Sentry.init`, or set `SENTRY_RELEASE` where the process runs |
70
+ | Python | `SENTRY_RELEASE`, otherwise an inferred git commit SHA | `release="myapp@1.0.0"` in `sentry_sdk.init` |
71
+ | Ruby | First match of: `SENTRY_RELEASE`, `KAMAL_VERSION`, git HEAD SHA, a `REVISION` file (Capistrano), `HEROKU_SLUG_COMMIT` | `config.release` |
72
+ | Go | `SENTRY_RELEASE` | `Release` in `sentry.ClientOptions` |
73
+ | PHP (incl. Laravel, Symfony) | `SENTRY_RELEASE` | `release` in `\Sentry\init([...])`, or the framework’s Sentry config |
74
+ | .NET | First match of: `SENTRY_RELEASE`, `AssemblyInformationalVersionAttribute`, `AssemblyVersionAttribute` — the latter two yielding `<assembly-name>@<version>` | `options.Release` |
75
+ | Elixir | — | `config :sentry, release: "myapp@1.0.0"` in `config/prod.exs` |
76
+ | Android | `packageName@versionName+versionCode`, e.g. `my.project.name@2.3.12+1234` | `io.sentry.release` meta-data in `AndroidManifest.xml`, or `options.release` if initializing manually |
77
+ | Apple / Cocoa | `CFBundleIdentifier@CFBundleShortVersionString+CFBundleVersion` | `options.releaseName` |
78
+ | Flutter / Dart | `name@version` from `pubspec.yaml`; on Android and iOS `packageName@versionName+versionCode` | `options.release`; on Flutter Web pass `SENTRY_RELEASE` via `--dart-define` |
79
+ | React Native | The app version and build number from the native project | `release` **and** `dist` in `Sentry.init` — read the warning below |
80
+
81
+ Two traps in that table:
82
+
83
+ - **Don’t set `release` in `Sentry.init` when a Sentry bundler plugin is in the build.**
84
+ The plugin injects its own value; a hardcoded `init` release silently wins over it and
85
+ drifts from the release CI created.
86
+ Change `release.name` in the plugin options instead.
87
+ - **React Native:** setting a custom `release`/`dist` **disables the automatic source
88
+ map upload script**, which only recognizes the default values.
89
+ You then have to upload source maps manually — using the React Native source map
90
+ procedure. Prefer leaving the defaults alone on React Native unless you have a reason.
91
+
92
+ The platform’s own SDK reference has the surrounding `init` and build-plugin
93
+ configuration if you need to see where these options sit.
94
+
95
+ ## `dist` — the second half of mobile identity
96
+
97
+ `dist` disambiguates multiple builds of the same release: same `1.0.0`, build `51` vs
98
+ `52`. It matters on iOS, Android, and React Native, where the store version stays put
99
+ across builds, and it must match between the SDK and any artifact upload for that build.
100
+ Server-side platforms can ignore it.
101
+
102
+ ## Environment
103
+
104
+ `environment` is a separate tag (`environment` option, or `SENTRY_ENVIRONMENT`) and
105
+ releases need it to be useful: it’s what keeps staging crashes out of production
106
+ crash-free rates, and a deploy is always recorded _into_ an environment.
107
+ Set it alongside the release, not later.
108
+
109
+ ## Release health needs sessions
110
+
111
+ Crash-free rate and adoption come from **session** data, not errors, so they only appear
112
+ if the SDK sends sessions.
113
+ Session tracking is on by default in most modern SDKs.
114
+ Release health is supported on Android, Apple, Flutter/Dart, browser and Node
115
+ JavaScript, React Native, .NET, PHP, and Python; it is not available on every platform,
116
+ so don’t promise the graphs before checking the platform.
117
+
118
+ ## When the tag isn’t enough
119
+
120
+ Tagging alone gets you release-scoped filtering, regression detection, and (where
121
+ supported) release health.
122
+ It does **not** get you commits on the release, deploy tracking, suspect commits, or
123
+ `Fixes PROJECT-NAME-12A` resolution — those need a release created in CI with its
124
+ commits associated ([`ci-pipeline.md`](ci-pipeline.md)) and, for suspect commits, an SCM
125
+ integration ([`suspect-commits.md`](suspect-commits.md)). Flag that as the natural
126
+ follow-up rather than implying the tag finished the job.
127
+
128
+ ## Related
129
+
130
+ - [`../search-query-language.md`](../search-query-language.md) — `release`,
131
+ `firstRelease`, `release.stage`.
@@ -0,0 +1,67 @@
1
+ # When releases are set up but nothing works
2
+
3
+ Release setup fails **quietly**. Every step below can succeed on its own while producing
4
+ no visible feature, so diagnose by symptom rather than re-running the pipeline and
5
+ hoping.
6
+
7
+ Start by establishing which half is broken: does a recent event carry the release tag
8
+ you expect, and does a release object with that exact name exist with commits attached?
9
+ Almost every entry here is one of those two answers being no.
10
+
11
+ ## Symptom table
12
+
13
+ | Symptom | Cause | Fix |
14
+ | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | Events show no release, or `release: unknown` | The SDK isn’t tagging. Either nothing set it and the platform has no default, or the value is computed at build time and never reached the runtime | Set it per [`tagging.md`](tagging.md); for bundled JS confirm the plugin’s `inject` is on and the built bundle really contains the value |
16
+ | The release exists in Sentry with commits and a deploy, but **0 events** | Name mismatch — the classic failure. `v1.2.3` vs `1.2.3`, short vs full SHA, a build number on one side only | Derive both sides from one variable; compare the release list against the `release` tag on a real event, character for character |
17
+ | Events attribute correctly, but the release has **no commits** | Commit association never ran, or ran outside the repo | Take the path that matches the build ([`ci-pipeline.md`](ci-pipeline.md)): if a Sentry bundler plugin is already there, fix `release.setCommits` on it rather than adding a second pipeline; otherwise add `set-commits` to CI. Either way it must run where the git repo is checked out |
18
+ | `set-commits --auto` fails, or an “Unable to Fetch Commits” email arrives | The previous release’s commit no longer exists in the repo (squash-merge, rebase, amend, force-push), or CI made a shallow clone | `fetch-depth: 0` on checkout; add `--ignore-missing` (`ignoreMissing: true` in the bundler plugin) so it falls back instead of failing |
19
+ | Commits are associated but there are **no suspect commits** | Usually the blame path, not the release path | Work the ordered list in [`suspect-commits.md`](suspect-commits.md) — in-app frames, then code mappings, then integration state |
20
+ | Suspect commit shows, but no suggested assignee | The commit author isn’t in the Sentry org, or their email is hidden | Match the commit email to an org member; on GitHub uncheck “Keep my email address private” |
21
+ | Frames are minified/unsymbolicated, so nothing resolves | Missing artifacts — a different problem wearing this costume | Upload source maps (JavaScript) or debug files (native/mobile); that procedure is separate from releases |
22
+ | “Resolve in next release” never resolves anything | The release was never **finalized**, so Sentry has no anchor for “next” | Call `sentry-cli releases finalize` at deploy time (or `--finalize` on `new`) |
23
+ | `Fixes PROJECT-NAME-12A` links the commit but the issue stays unresolved | Working as designed until a release **containing that commit** is created | Ensure the post-merge release runs `set-commits` and includes the merge commit |
24
+ | Release health / crash-free rate is empty | No sessions: session tracking disabled, no `environment` set, or the platform doesn’t support release health | Confirm platform support and session tracking in [`tagging.md`](tagging.md) |
25
+ | Production crash-free rate looks terrible | Staging events are landing in the same environment | Set `environment` per build; record deploys into the right environment |
26
+ | No deploys listed on the release | `deploys new` never ran — creating a release does not create a deploy | Add the deploy step; verify with `sentry-cli deploys list --release "$VERSION"` |
27
+ | Two releases appear for one build | A bundler plugin **and** a hand-rolled `sentry-cli` pipeline both ran, with different names | Keep one. If the plugin is in the build, configure it rather than adding CLI steps |
28
+ | Nothing uploads and nothing errors | Missing `SENTRY_AUTH_TOKEN` — most tools skip silently | [`../auth-token.md`](../auth-token.md), including how to check for presence without printing the value |
29
+ | `403` on `code-mappings upload` | Token lacks the `org:ci` scope | Issue an org token with `org:ci` |
30
+ | One project’s release swallowed another’s events | Release names are **global per organization** | Prefix with the project (`checkout-api@1.0.0`) |
31
+
32
+ ## Checking from the terminal
33
+
34
+ ```bash
35
+ sentry-cli repos list # is an SCM integration connected, and under what name
36
+ sentry-cli deploys list --release "$VERSION" # did the deploy get recorded
37
+ ```
38
+
39
+ ## Checking with the MCP
40
+
41
+ The two halves need two different tools, and using the wrong one is how a mismatch gets
42
+ missed.
43
+
44
+ **The tagging half** — the release fields, but they aren’t interchangeable between
45
+ tools:
46
+
47
+ - `release:<exact-name>` — works on both.
48
+ Do events exist under the name CI created?
49
+ Zero hits here, combined with a release object that _does_ have commits, is the
50
+ mismatch signature.
51
+ - `firstRelease:<name>` — did this issue first appear in that release (regression
52
+ detection working). **`search_issues` only.** On `search_events` it is silently
53
+ rewritten to `release:`, which returns plausible hits for a different question — check
54
+ `## Executed Search` if you’re unsure what ran.
55
+
56
+ The grammar is in [`../search-query-language.md`](../search-query-language.md).
57
+
58
+ **The CI half** — `get_release_details` for that exact version reports the commits and
59
+ deploys hanging off the release.
60
+ An event search can never answer this; it only ever sees the tag.
61
+ It’s a catalog tool, so reach it via `search_sentry_tools` / `execute_sentry_tool` if it
62
+ isn’t exposed directly.
63
+
64
+ ## Related
65
+
66
+ - [`tagging.md`](tagging.md) · [`ci-pipeline.md`](ci-pipeline.md) ·
67
+ [`suspect-commits.md`](suspect-commits.md)