@danieljvdm/dev-kit 1.0.1 → 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 (330) hide show
  1. package/README.md +6 -6
  2. package/package.json +1 -1
  3. package/skill-sources.jsonc +6 -29
  4. package/skill-sources.lock.json +23 -109
  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 +11 -115
  45. package/skills/open-pull-request/agents/openai.yaml +3 -3
  46. package/skills/open-pull-request/references/evidence.md +22 -0
  47. package/skills/open-pull-request/references/explanation.md +21 -0
  48. package/skills/open-pull-request/references/publication.md +21 -0
  49. package/skills/sentry/LICENSE +202 -0
  50. package/skills/sentry/LICENSE-UPSTREAM +21 -0
  51. package/skills/sentry/NOTICE +14 -0
  52. package/skills/sentry/SKILL.md +33 -0
  53. package/skills/sentry/references/alert-payloads.md +105 -0
  54. package/skills/sentry/references/alerts.md +17 -0
  55. package/skills/sentry/references/artifacts.md +25 -0
  56. package/skills/sentry/references/auth-token.md +65 -0
  57. package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
  58. package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
  59. package/skills/sentry/references/concepts/crons.md +50 -0
  60. package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
  61. package/skills/sentry/references/concepts/errors.md +40 -0
  62. package/skills/sentry/references/concepts/logging.md +85 -0
  63. package/skills/sentry/references/concepts/metrics.md +49 -0
  64. package/skills/sentry/references/concepts/monitors.md +78 -0
  65. package/skills/sentry/references/concepts/profiling.md +38 -0
  66. package/skills/sentry/references/concepts/reduce-volume.md +49 -0
  67. package/skills/sentry/references/concepts/releases.md +43 -0
  68. package/skills/sentry/references/concepts/session-replay.md +35 -0
  69. package/skills/sentry/references/concepts/tracing.md +54 -0
  70. package/skills/sentry/references/concepts/user-feedback.md +36 -0
  71. package/skills/sentry/references/debug-artifacts/android.md +68 -0
  72. package/skills/sentry/references/debug-artifacts/apple.md +96 -0
  73. package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
  74. package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
  75. package/skills/sentry/references/debug-artifacts/index.md +75 -0
  76. package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
  77. package/skills/sentry/references/debug-artifacts/matching.md +73 -0
  78. package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
  79. package/skills/sentry/references/first-error-setup.md +25 -0
  80. package/skills/sentry/references/instrumentation.md +30 -0
  81. package/skills/sentry/references/issues.md +32 -0
  82. package/skills/sentry/references/new-project.md +17 -0
  83. package/skills/sentry/references/otel-exporter.md +30 -0
  84. package/skills/sentry/references/release-workflow.md +31 -0
  85. package/skills/sentry/references/releases/ci-pipeline.md +214 -0
  86. package/skills/sentry/references/releases/index.md +93 -0
  87. package/skills/sentry/references/releases/suspect-commits.md +155 -0
  88. package/skills/sentry/references/releases/tagging.md +131 -0
  89. package/skills/sentry/references/releases/troubleshooting.md +67 -0
  90. package/skills/sentry/references/sdks/android/crons.md +305 -0
  91. package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
  92. package/skills/sentry/references/sdks/android/index.md +748 -0
  93. package/skills/sentry/references/sdks/android/integrations.md +48 -0
  94. package/skills/sentry/references/sdks/android/logging.md +374 -0
  95. package/skills/sentry/references/sdks/android/metrics.md +288 -0
  96. package/skills/sentry/references/sdks/android/profiling.md +397 -0
  97. package/skills/sentry/references/sdks/android/session-replay.md +406 -0
  98. package/skills/sentry/references/sdks/android/tracing.md +861 -0
  99. package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
  100. package/skills/sentry/references/sdks/browser/index.md +714 -0
  101. package/skills/sentry/references/sdks/browser/logging.md +315 -0
  102. package/skills/sentry/references/sdks/browser/profiling.md +236 -0
  103. package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
  104. package/skills/sentry/references/sdks/browser/tracing.md +561 -0
  105. package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
  106. package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
  107. package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
  108. package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
  109. package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
  110. package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
  111. package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
  112. package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
  113. package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
  114. package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
  115. package/skills/sentry/references/sdks/cocoa/index.md +497 -0
  116. package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
  117. package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
  118. package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
  119. package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
  120. package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
  121. package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
  122. package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
  123. package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
  124. package/skills/sentry/references/sdks/dotnet/index.md +614 -0
  125. package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
  126. package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
  127. package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
  128. package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
  129. package/skills/sentry/references/sdks/elixir/crons.md +371 -0
  130. package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
  131. package/skills/sentry/references/sdks/elixir/index.md +383 -0
  132. package/skills/sentry/references/sdks/elixir/logging.md +239 -0
  133. package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
  134. package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
  135. package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
  136. package/skills/sentry/references/sdks/flutter/index.md +728 -0
  137. package/skills/sentry/references/sdks/flutter/logging.md +387 -0
  138. package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
  139. package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
  140. package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
  141. package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
  142. package/skills/sentry/references/sdks/go/crons.md +270 -0
  143. package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
  144. package/skills/sentry/references/sdks/go/index.md +324 -0
  145. package/skills/sentry/references/sdks/go/logging.md +354 -0
  146. package/skills/sentry/references/sdks/go/metrics.md +273 -0
  147. package/skills/sentry/references/sdks/go/profiling.md +46 -0
  148. package/skills/sentry/references/sdks/go/tracing.md +366 -0
  149. package/skills/sentry/references/sdks/index.md +41 -0
  150. package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
  151. package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
  152. package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
  153. package/skills/sentry/references/sdks/nestjs/index.md +699 -0
  154. package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
  155. package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
  156. package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
  157. package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
  158. package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
  159. package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
  160. package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
  161. package/skills/sentry/references/sdks/nextjs/index.md +491 -0
  162. package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
  163. package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
  164. package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
  165. package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
  166. package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
  167. package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
  168. package/skills/sentry/references/sdks/node/crons.md +432 -0
  169. package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
  170. package/skills/sentry/references/sdks/node/index.md +942 -0
  171. package/skills/sentry/references/sdks/node/logging.md +380 -0
  172. package/skills/sentry/references/sdks/node/metrics.md +278 -0
  173. package/skills/sentry/references/sdks/node/profiling.md +373 -0
  174. package/skills/sentry/references/sdks/node/tracing.md +878 -0
  175. package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
  176. package/skills/sentry/references/sdks/php/crons.md +265 -0
  177. package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
  178. package/skills/sentry/references/sdks/php/index.md +362 -0
  179. package/skills/sentry/references/sdks/php/laravel.md +542 -0
  180. package/skills/sentry/references/sdks/php/logging.md +242 -0
  181. package/skills/sentry/references/sdks/php/metrics.md +193 -0
  182. package/skills/sentry/references/sdks/php/profiling.md +115 -0
  183. package/skills/sentry/references/sdks/php/symfony.md +552 -0
  184. package/skills/sentry/references/sdks/php/tracing.md +516 -0
  185. package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
  186. package/skills/sentry/references/sdks/python/crons.md +218 -0
  187. package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
  188. package/skills/sentry/references/sdks/python/index.md +361 -0
  189. package/skills/sentry/references/sdks/python/logging.md +234 -0
  190. package/skills/sentry/references/sdks/python/metrics.md +154 -0
  191. package/skills/sentry/references/sdks/python/profiling.md +120 -0
  192. package/skills/sentry/references/sdks/python/tracing.md +364 -0
  193. package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
  194. package/skills/sentry/references/sdks/react/index.md +492 -0
  195. package/skills/sentry/references/sdks/react/logging.md +364 -0
  196. package/skills/sentry/references/sdks/react/profiling.md +322 -0
  197. package/skills/sentry/references/sdks/react/react-features.md +1272 -0
  198. package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
  199. package/skills/sentry/references/sdks/react/tracing.md +1415 -0
  200. package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
  201. package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
  202. package/skills/sentry/references/sdks/react-native/index.md +1030 -0
  203. package/skills/sentry/references/sdks/react-native/logging.md +444 -0
  204. package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
  205. package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
  206. package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
  207. package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
  208. package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
  209. package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
  210. package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
  211. package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
  212. package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
  213. package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
  214. package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
  215. package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
  216. package/skills/sentry/references/sdks/ruby/crons.md +184 -0
  217. package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
  218. package/skills/sentry/references/sdks/ruby/index.md +297 -0
  219. package/skills/sentry/references/sdks/ruby/logging.md +168 -0
  220. package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
  221. package/skills/sentry/references/sdks/ruby/migration.md +321 -0
  222. package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
  223. package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
  224. package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
  225. package/skills/sentry/references/sdks/svelte/index.md +467 -0
  226. package/skills/sentry/references/sdks/svelte/logging.md +344 -0
  227. package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
  228. package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
  229. package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
  230. package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
  231. package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
  232. package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
  233. package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
  234. package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
  235. package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
  236. package/skills/sentry/references/search-query-language.md +226 -0
  237. package/skills/sentry/references/semantics/angular.md +7 -0
  238. package/skills/sentry/references/semantics/app.md +28 -0
  239. package/skills/sentry/references/semantics/art.md +17 -0
  240. package/skills/sentry/references/semantics/aws.md +43 -0
  241. package/skills/sentry/references/semantics/browser.md +34 -0
  242. package/skills/sentry/references/semantics/cache.md +12 -0
  243. package/skills/sentry/references/semantics/client.md +8 -0
  244. package/skills/sentry/references/semantics/cloud.md +12 -0
  245. package/skills/sentry/references/semantics/cloudflare.md +23 -0
  246. package/skills/sentry/references/semantics/code.md +11 -0
  247. package/skills/sentry/references/semantics/culture.md +11 -0
  248. package/skills/sentry/references/semantics/db.md +21 -0
  249. package/skills/sentry/references/semantics/device.md +43 -0
  250. package/skills/sentry/references/semantics/error.md +7 -0
  251. package/skills/sentry/references/semantics/event.md +8 -0
  252. package/skills/sentry/references/semantics/exception.md +10 -0
  253. package/skills/sentry/references/semantics/faas.md +19 -0
  254. package/skills/sentry/references/semantics/file.md +8 -0
  255. package/skills/sentry/references/semantics/flag.md +7 -0
  256. package/skills/sentry/references/semantics/gcp.md +16 -0
  257. package/skills/sentry/references/semantics/gen_ai.md +53 -0
  258. package/skills/sentry/references/semantics/general.md +11 -0
  259. package/skills/sentry/references/semantics/graphql.md +9 -0
  260. package/skills/sentry/references/semantics/grpc.md +19 -0
  261. package/skills/sentry/references/semantics/http.md +34 -0
  262. package/skills/sentry/references/semantics/index.md +63 -0
  263. package/skills/sentry/references/semantics/jsonrpc.md +8 -0
  264. package/skills/sentry/references/semantics/jvm.md +12 -0
  265. package/skills/sentry/references/semantics/koa.md +7 -0
  266. package/skills/sentry/references/semantics/logger.md +7 -0
  267. package/skills/sentry/references/semantics/mcp.md +37 -0
  268. package/skills/sentry/references/semantics/mdc.md +7 -0
  269. package/skills/sentry/references/semantics/messaging.md +23 -0
  270. package/skills/sentry/references/semantics/middleware.md +7 -0
  271. package/skills/sentry/references/semantics/navigation.md +9 -0
  272. package/skills/sentry/references/semantics/nel.md +11 -0
  273. package/skills/sentry/references/semantics/network.md +17 -0
  274. package/skills/sentry/references/semantics/os.md +15 -0
  275. package/skills/sentry/references/semantics/otel.md +10 -0
  276. package/skills/sentry/references/semantics/params.md +7 -0
  277. package/skills/sentry/references/semantics/process.md +14 -0
  278. package/skills/sentry/references/semantics/react.md +7 -0
  279. package/skills/sentry/references/semantics/remix.md +7 -0
  280. package/skills/sentry/references/semantics/resource.md +7 -0
  281. package/skills/sentry/references/semantics/rpc.md +10 -0
  282. package/skills/sentry/references/semantics/score.md +10 -0
  283. package/skills/sentry/references/semantics/sentry.md +69 -0
  284. package/skills/sentry/references/semantics/server.md +8 -0
  285. package/skills/sentry/references/semantics/service.md +8 -0
  286. package/skills/sentry/references/semantics/session.md +7 -0
  287. package/skills/sentry/references/semantics/state.md +7 -0
  288. package/skills/sentry/references/semantics/thread.md +8 -0
  289. package/skills/sentry/references/semantics/timber.md +7 -0
  290. package/skills/sentry/references/semantics/trpc.md +8 -0
  291. package/skills/sentry/references/semantics/ui.md +18 -0
  292. package/skills/sentry/references/semantics/url.md +15 -0
  293. package/skills/sentry/references/semantics/user.md +17 -0
  294. package/skills/sentry/references/semantics/user_agent.md +7 -0
  295. package/skills/sentry/references/semantics/vercel.md +42 -0
  296. package/skills/sentry/references/setup-verification.md +39 -0
  297. package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
  298. package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
  299. package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
  300. package/skills/sentry/references/snapshots/index.md +19 -0
  301. package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
  302. package/skills/sentry/references/snapshots/snapshots.md +123 -0
  303. package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
  304. package/skills/testing/LICENSE +21 -0
  305. package/skills/testing/NOTICE +7 -0
  306. package/skills/testing/SKILL.md +13 -19
  307. package/skills/testing/agents/openai.yaml +1 -2
  308. package/skills/testing/references/selection.md +23 -0
  309. package/skills/testing/references/tdd.md +19 -0
  310. package/skills/testing/references/test-design.md +17 -0
  311. package/src/catalog.ts +1 -7
  312. package/skills/build-effect-apis/SKILL.md +0 -81
  313. package/skills/build-effect-apis/agents/openai.yaml +0 -4
  314. package/skills/build-effect-clis/SKILL.md +0 -92
  315. package/skills/build-effect-clis/agents/openai.yaml +0 -4
  316. package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
  317. package/skills/effect-atom-state/SKILL.md +0 -97
  318. package/skills/effect-atom-state/agents/openai.yaml +0 -4
  319. package/skills/effect-ts/SKILL.md +0 -35
  320. package/skills/effect-ts/agents/openai.yaml +0 -4
  321. /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
  322. /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
  323. /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
  324. /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
  325. /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
  326. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
  327. /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
  328. /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
  329. /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
  330. /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
@@ -0,0 +1,383 @@
1
+ # Crons — Sentry Next.js SDK
2
+
3
+ > Minimum SDK: `@sentry/nextjs` ≥7.51.1+ for `captureCheckIn`\
4
+ > `Sentry.withMonitor()`: ≥7.76.0+\
5
+ > Cron library auto-instrumentation: ≥7.92.0+
6
+
7
+ > ⚠️ **Server and Edge runtimes only.** Cron monitoring is not available in the browser
8
+ > runtime.
9
+
10
+ ---
11
+
12
+ ## Overview
13
+
14
+ Sentry Cron Monitoring detects:
15
+
16
+ - **Missed check-ins** — job didn’t run at the expected time
17
+ - **Runtime failures** — job ran but encountered an error
18
+ - **Timeouts** — job exceeded `maxRuntime` without completing
19
+
20
+ ---
21
+
22
+ ## Option A: Automatic Vercel Cron Integration
23
+
24
+ For **Vercel-hosted Next.js** apps using Vercel Cron Jobs:
25
+
26
+ ```javascript
27
+ // next.config.js
28
+ const { withSentryConfig } = require("@sentry/nextjs");
29
+
30
+ module.exports = withSentryConfig(nextConfig, {
31
+ automaticVercelMonitors: true,
32
+ });
33
+ ```
34
+
35
+ > ⚠️ **Critical limitation:** `automaticVercelMonitors` only works with the **Pages
36
+ > Router**. **App Router route handlers are NOT yet supported** for automatic
37
+ > instrumentation. Use `captureCheckIn` or `withMonitor` manually for App Router cron
38
+ > routes.
39
+
40
+ ---
41
+
42
+ ## Option B: Auto-Instrumentation of Cron Libraries (SDK ≥7.92.0)
43
+
44
+ ### `cron` npm package
45
+
46
+ ```typescript
47
+ import { CronJob } from "cron";
48
+ import * as Sentry from "@sentry/nextjs";
49
+
50
+ const CronJobWithCheckIn = Sentry.cron.instrumentCron(CronJob, "my-cron-job");
51
+
52
+ const job = new CronJobWithCheckIn("* * * * *", () => {
53
+ console.log("Runs every minute");
54
+ });
55
+
56
+ // Or via .from() factory:
57
+ const job2 = CronJobWithCheckIn.from({
58
+ cronTime: "* * * * *",
59
+ onTick: () => console.log("Runs every minute"),
60
+ });
61
+ ```
62
+
63
+ ### `node-cron` npm package
64
+
65
+ ```typescript
66
+ import cron from "node-cron";
67
+ import * as Sentry from "@sentry/nextjs";
68
+
69
+ const cronWithCheckIn = Sentry.cron.instrumentNodeCron(cron);
70
+
71
+ cronWithCheckIn.schedule(
72
+ "* * * * *",
73
+ () => {
74
+ console.log("Running every minute");
75
+ },
76
+ { name: "my-cron-job" }, // ← name is required for Sentry monitoring
77
+ );
78
+ ```
79
+
80
+ ### `node-schedule` npm package (SDK ≥7.93.0)
81
+
82
+ ```typescript
83
+ import * as schedule from "node-schedule";
84
+ import * as Sentry from "@sentry/nextjs";
85
+
86
+ const scheduleWithCheckIn = Sentry.cron.instrumentNodeSchedule(schedule);
87
+
88
+ scheduleWithCheckIn.scheduleJob(
89
+ "my-cron-job", // ← first arg is the monitor slug
90
+ "* * * * *",
91
+ () => {
92
+ console.log("Running every minute");
93
+ },
94
+ );
95
+ ```
96
+
97
+ > ⚠️ `node-schedule` instrumentation only supports **cron string format**. Date objects
98
+ > and RecurrenceRule objects are not supported.
99
+
100
+ ---
101
+
102
+ ## Option C: `Sentry.withMonitor()` Wrapper (SDK ≥7.76.0)
103
+
104
+ Wraps any callback and automatically sends `in_progress` → `ok`/`error` check-ins:
105
+
106
+ ```typescript
107
+ import * as Sentry from "@sentry/nextjs";
108
+
109
+ // Basic usage — monitor must already exist in Sentry
110
+ await Sentry.withMonitor("my-monitor-slug", async () => {
111
+ await processQueue();
112
+ });
113
+ ```
114
+
115
+ ### With Full Monitor Configuration (Upsert)
116
+
117
+ ```typescript
118
+ await Sentry.withMonitor(
119
+ "hourly-report-job",
120
+ async () => {
121
+ await generateHourlyReport();
122
+ },
123
+ {
124
+ schedule: {
125
+ type: "crontab",
126
+ value: "0 * * * *", // runs at top of every hour
127
+ },
128
+ checkinMargin: 2, // minutes of grace before "missed"
129
+ maxRuntime: 10, // minutes before marking as failed
130
+ timezone: "America/Los_Angeles",
131
+ failureIssueThreshold: 3, // consecutive failures before creating issue (SDK ≥8.7.0)
132
+ recoveryThreshold: 2, // consecutive successes before resolving issue (SDK ≥8.7.0)
133
+ },
134
+ );
135
+ ```
136
+
137
+ ### Interval Schedule
138
+
139
+ ```typescript
140
+ await Sentry.withMonitor(
141
+ "data-sync-job",
142
+ async () => {
143
+ await syncData();
144
+ },
145
+ {
146
+ schedule: {
147
+ type: "interval",
148
+ value: 30, // numeric value
149
+ unit: "minute", // "minute" | "hour" | "day" | "week" | "month" | "year"
150
+ },
151
+ },
152
+ );
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Option D: Manual `Sentry.captureCheckIn()` (SDK ≥7.51.1)
158
+
159
+ For full control — send check-ins manually at job start and end:
160
+
161
+ ```typescript
162
+ import * as Sentry from "@sentry/nextjs";
163
+
164
+ // 1. Signal job started — returns a checkInId for correlation
165
+ const checkInId = Sentry.captureCheckIn({
166
+ monitorSlug: "my-monitor-slug",
167
+ status: "in_progress",
168
+ });
169
+
170
+ try {
171
+ await doWork();
172
+
173
+ // 2a. Signal success
174
+ Sentry.captureCheckIn({
175
+ checkInId,
176
+ monitorSlug: "my-monitor-slug",
177
+ status: "ok",
178
+ });
179
+ } catch (err) {
180
+ // 2b. Signal failure
181
+ Sentry.captureCheckIn({
182
+ checkInId,
183
+ monitorSlug: "my-monitor-slug",
184
+ status: "error",
185
+ });
186
+ throw err;
187
+ }
188
+ ```
189
+
190
+ ### With Upsert Config
191
+
192
+ ```typescript
193
+ const checkInId = Sentry.captureCheckIn(
194
+ {
195
+ monitorSlug: "my-monitor-slug",
196
+ status: "in_progress",
197
+ },
198
+ {
199
+ schedule: {
200
+ type: "crontab",
201
+ value: "*/5 * * * *", // every 5 minutes
202
+ },
203
+ checkinMargin: 1,
204
+ maxRuntime: 5,
205
+ timezone: "UTC",
206
+ },
207
+ );
208
+ ```
209
+
210
+ ### Heartbeat Check-In (Detects Missed Jobs Only)
211
+
212
+ If you only need to know whether the job ran (not runtime failures), send a single
213
+ check-in at completion:
214
+
215
+ ```typescript
216
+ try {
217
+ await doWork();
218
+ Sentry.captureCheckIn({ monitorSlug: "my-monitor-slug", status: "ok" });
219
+ } catch (err) {
220
+ Sentry.captureCheckIn({ monitorSlug: "my-monitor-slug", status: "error" });
221
+ }
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Using Crons with Next.js Route Handlers
227
+
228
+ For App Router cron endpoints called by Vercel Cron or an external scheduler:
229
+
230
+ ```typescript
231
+ // app/api/cron/route.ts
232
+ import * as Sentry from "@sentry/nextjs";
233
+ import { NextResponse } from "next/server";
234
+
235
+ export async function GET() {
236
+ const checkInId = Sentry.captureCheckIn({
237
+ monitorSlug: "my-api-cron",
238
+ status: "in_progress",
239
+ });
240
+
241
+ try {
242
+ await runMyScheduledTask();
243
+
244
+ Sentry.captureCheckIn({
245
+ checkInId,
246
+ monitorSlug: "my-api-cron",
247
+ status: "ok",
248
+ });
249
+
250
+ return NextResponse.json({ ok: true });
251
+ } catch (err) {
252
+ Sentry.captureCheckIn({
253
+ checkInId,
254
+ monitorSlug: "my-api-cron",
255
+ status: "error",
256
+ });
257
+ throw err;
258
+ }
259
+ }
260
+ ```
261
+
262
+ ### Using `withMonitor` in a Route Handler
263
+
264
+ ```typescript
265
+ // app/api/cron/route.ts
266
+ import * as Sentry from "@sentry/nextjs";
267
+ import { NextResponse } from "next/server";
268
+
269
+ export async function GET() {
270
+ await Sentry.withMonitor(
271
+ "my-api-cron",
272
+ async () => {
273
+ await runMyScheduledTask();
274
+ },
275
+ {
276
+ schedule: { type: "crontab", value: "0 * * * *" },
277
+ checkinMargin: 2,
278
+ maxRuntime: 5,
279
+ timezone: "UTC",
280
+ },
281
+ );
282
+
283
+ return NextResponse.json({ ok: true });
284
+ }
285
+ ```
286
+
287
+ ### Edge Runtime Route Handler
288
+
289
+ ```typescript
290
+ // app/api/cron/route.ts
291
+ export const runtime = "edge";
292
+
293
+ import * as Sentry from "@sentry/nextjs";
294
+ import { NextResponse } from "next/server";
295
+
296
+ export async function GET() {
297
+ await Sentry.withMonitor("my-edge-cron", async () => {
298
+ await runEdgeTask();
299
+ });
300
+
301
+ return NextResponse.json({ ok: true });
302
+ }
303
+ ```
304
+
305
+ ---
306
+
307
+ ## Monitor Configuration Reference
308
+
309
+ Full upsert config object shape:
310
+
311
+ ```typescript
312
+ interface MonitorConfig {
313
+ schedule:
314
+ | {
315
+ type: "crontab";
316
+ value: string; // Standard cron expression, e.g. "0 9 * * 1-5"
317
+ }
318
+ | {
319
+ type: "interval";
320
+ value: number; // Numeric quantity
321
+ unit: "minute" | "hour" | "day" | "week" | "month" | "year";
322
+ };
323
+ checkinMargin?: number; // Minutes of grace period before "missed" alert
324
+ maxRuntime?: number; // Minutes before in-progress job is marked failed
325
+ timezone?: string; // IANA tz string, e.g. "America/New_York"
326
+ failureIssueThreshold?: number; // Consecutive failures → create issue (SDK ≥8.7.0)
327
+ recoveryThreshold?: number; // Consecutive successes → resolve issue (SDK ≥8.7.0)
328
+ }
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Cron Status Values
334
+
335
+ | Status | When to use |
336
+ | ------------- | --------------------------------- |
337
+ | `in_progress` | Job has started, work is underway |
338
+ | `ok` | Job completed successfully |
339
+ | `error` | Job failed — an error occurred |
340
+
341
+ ---
342
+
343
+ ## Rate Limits
344
+
345
+ Cron check-ins are rate-limited to **6 check-ins per minute per monitor environment**.
346
+ Each environment (production, staging, etc.)
347
+ is tracked independently.
348
+
349
+ ---
350
+
351
+ ## Alerting
352
+
353
+ Create issue alerts filtered by the tag **`monitor.slug`** equals `[your-monitor-slug]`
354
+ in Sentry’s Alerts sidebar.
355
+
356
+ ---
357
+
358
+ ## SDK Version Matrix
359
+
360
+ | Feature | Min SDK Version |
361
+ | --------------------------------------------- | --------------- |
362
+ | `Sentry.captureCheckIn()` | **7.51.1** |
363
+ | `Sentry.withMonitor()` | **7.76.0** |
364
+ | `cron` library auto-instrumentation | **7.92.0** |
365
+ | `node-cron` auto-instrumentation | **7.92.0** |
366
+ | `node-schedule` auto-instrumentation | **7.93.0** |
367
+ | `failureIssueThreshold` / `recoveryThreshold` | **8.7.0** |
368
+
369
+ ---
370
+
371
+ ## Troubleshooting
372
+
373
+ | Issue | Solution |
374
+ | ------------------------------------------ | --------------------------------------------------------------------------------------------- |
375
+ | Check-ins not appearing in Sentry | Verify `monitorSlug` matches the slug configured in Sentry; check DSN is correct |
376
+ | Monitor shows “missed” despite job running | Adjust `checkinMargin` to allow more grace time; check clock skew |
377
+ | Monitor shows “timeout” | Increase `maxRuntime`; investigate why the job is taking longer than expected |
378
+ | `automaticVercelMonitors` not working | Confirm you’re using Pages Router — App Router is NOT supported for automatic instrumentation |
379
+ | `withMonitor` not creating the monitor | First check-in with upsert config creates the monitor; ensure config is passed |
380
+ | Edge runtime check-ins failing | Ensure `sentry.edge.config.ts` is configured; crons work in Edge runtime |
381
+ | Client-side cron calls failing | Move cron monitoring to server/edge code — browser runtime is not supported |
382
+ | Rate limit errors on check-ins | Job is sending more than 6 check-ins/minute; reduce polling frequency or combine check-ins |
383
+ | `node-schedule` with date/RecurrenceRule | Only cron string format is supported for auto-instrumentation; use `withMonitor` instead |