@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,310 @@
1
+ # AI Monitoring — Sentry PHP / Laravel SDK
2
+
3
+ > Laravel AI support requires `sentry/sentry-laravel` >= 4.27.0, Laravel 12.x or later,
4
+ > and `laravel/ai`.
5
+
6
+ Sentry’s Laravel AI integration automatically instruments Laravel AI agents, model
7
+ calls, tools, embeddings, token usage, model/provider metadata, and conversation IDs.
8
+ Use this reference when a Laravel app has `laravel/ai` installed or the user asks to
9
+ monitor Laravel AI agents.
10
+
11
+ For non-Laravel PHP AI libraries, use manual `gen_ai.*` spans following the standard
12
+ Sentry AI instrumentation conventions.
13
+
14
+ ---
15
+
16
+ ## Detect
17
+
18
+ ```bash
19
+ # Confirm Laravel
20
+ ls artisan 2>/dev/null && echo "Laravel detected"
21
+ grep -E '"laravel/framework"' composer.json 2>/dev/null
22
+
23
+ # Confirm Sentry and Laravel AI
24
+ grep -E '"sentry/sentry-laravel"|"laravel/ai"' composer.json composer.lock 2>/dev/null
25
+
26
+ # Check tracing and PII settings
27
+ grep -E 'SENTRY_TRACES_SAMPLE_RATE|SENTRY_SEND_DEFAULT_PII' .env config/sentry.php 2>/dev/null
28
+ ```
29
+
30
+ **Interpretation:**
31
+
32
+ - If `laravel/ai` is present, use automatic Laravel AI instrumentation.
33
+ - If `sentry/sentry-laravel` is below 4.27.0, upgrade before expecting AI spans.
34
+ - If `SENTRY_TRACES_SAMPLE_RATE` is missing or `0`, AI spans will not be sent.
35
+ - If `SENTRY_SEND_DEFAULT_PII` is false or missing, prompts, tool arguments, responses,
36
+ and embeddings input are redacted.
37
+
38
+ ---
39
+
40
+ ## Install
41
+
42
+ Install or upgrade Sentry Laravel:
43
+
44
+ ```bash
45
+ composer require sentry/sentry-laravel "^4.27.0"
46
+ ```
47
+
48
+ Install and configure Laravel AI:
49
+
50
+ ```bash
51
+ composer require laravel/ai
52
+ php artisan vendor:publish --provider="Laravel\Ai\AiServiceProvider"
53
+ php artisan migrate
54
+ ```
55
+
56
+ Add provider keys to `.env` as needed:
57
+
58
+ ```ini
59
+ ANTHROPIC_API_KEY=your-anthropic-key
60
+ OPENAI_API_KEY=your-openai-key
61
+ ```
62
+
63
+ Make sure Sentry is installed normally for Laravel.
64
+ For Laravel 11+, `bootstrap/app.php` must register the exception handler:
65
+
66
+ ```php
67
+ use Sentry\Laravel\Integration;
68
+
69
+ return Application::configure(basePath: dirname(__DIR__))
70
+ ->withExceptions(function (Exceptions $exceptions) {
71
+ Integration::handles($exceptions);
72
+ })->create();
73
+ ```
74
+
75
+ Publish Sentry config if it has not been published yet:
76
+
77
+ ```bash
78
+ php artisan sentry:publish --dsn=YOUR_DSN
79
+ ```
80
+
81
+ ---
82
+
83
+ ## Configure
84
+
85
+ Laravel AI instrumentation is enabled automatically when all of these are true:
86
+
87
+ - `sentry/sentry-laravel` >= 4.27.0 is installed
88
+ - `laravel/ai` is installed
89
+ - Sentry tracing is enabled
90
+
91
+ Enable tracing in `.env`:
92
+
93
+ ```ini
94
+ SENTRY_TRACES_SAMPLE_RATE=1.0
95
+ ```
96
+
97
+ Use `1.0` in development.
98
+ For production, either use a lower global rate or configure sampling so AI routes, queue
99
+ jobs, and CLI commands that run agents are sampled at 100%.
100
+
101
+ ### Prompt and Response Capture
102
+
103
+ Sentry considers LLM prompts, tool arguments, tool results, responses, and embeddings
104
+ input to be PII. Do not enable capture unless the user confirms the application’s
105
+ privacy policy and data retention settings allow it.
106
+
107
+ After explicit confirmation, enable PII capture:
108
+
109
+ ```ini
110
+ SENTRY_SEND_DEFAULT_PII=true
111
+ ```
112
+
113
+ Without this setting, Laravel AI spans still appear, but input/output attributes are
114
+ omitted and Conversations may not have message content.
115
+
116
+ ---
117
+
118
+ ## Verify
119
+
120
+ Create an agent and a tool:
121
+
122
+ ```bash
123
+ php artisan make:agent TimeAgent
124
+ php artisan make:tool GetCurrentTime
125
+ ```
126
+
127
+ Update the tool to return the current time:
128
+
129
+ ```php
130
+ <?php
131
+
132
+ namespace App\Ai\Tools;
133
+
134
+ use Illuminate\Contracts\JsonSchema\JsonSchema;
135
+ use Laravel\Ai\Contracts\Tool;
136
+ use Laravel\Ai\Tools\Request;
137
+ use Stringable;
138
+
139
+ class GetCurrentTime implements Tool
140
+ {
141
+ public function description(): Stringable|string
142
+ {
143
+ return 'Get the current date and time.';
144
+ }
145
+
146
+ public function handle(Request $request): Stringable|string
147
+ {
148
+ return now()->toDateTimeString();
149
+ }
150
+
151
+ public function schema(JsonSchema $schema): array
152
+ {
153
+ return [];
154
+ }
155
+ }
156
+ ```
157
+
158
+ Register the tool on the agent:
159
+
160
+ ```php
161
+ <?php
162
+
163
+ namespace App\Ai\Agents;
164
+
165
+ use App\Ai\Tools\GetCurrentTime;
166
+ use Laravel\Ai\Concerns\RemembersConversations;
167
+ use Laravel\Ai\Contracts\Agent;
168
+ use Laravel\Ai\Contracts\Conversational;
169
+ use Laravel\Ai\Contracts\HasTools;
170
+ use Laravel\Ai\Promptable;
171
+ use Stringable;
172
+
173
+ class TimeAgent implements Agent, Conversational, HasTools
174
+ {
175
+ use Promptable, RemembersConversations;
176
+
177
+ public function instructions(): Stringable|string
178
+ {
179
+ return 'You are a helpful assistant. Use your tools when asked about the time.';
180
+ }
181
+
182
+ public function messages(): iterable
183
+ {
184
+ return [];
185
+ }
186
+
187
+ public function tools(): iterable
188
+ {
189
+ return [new GetCurrentTime];
190
+ }
191
+ }
192
+ ```
193
+
194
+ Trigger the agent from a route or command.
195
+ Example route:
196
+
197
+ ```php
198
+ use App\Ai\Agents\TimeAgent;
199
+ use Illuminate\Support\Facades\Route;
200
+
201
+ Route::get('/debug-ai', function () {
202
+ $response = (new TimeAgent)->prompt('What time is it?');
203
+
204
+ return $response->text;
205
+ });
206
+ ```
207
+
208
+ Visit `/debug-ai`, then check Sentry Traces and the AI Agents dashboard.
209
+ It can take a few moments for data to appear.
210
+
211
+ For CLI commands and other non-HTTP entry points, make sure there is a Sentry
212
+ transaction around the agent call so child AI spans are captured.
213
+
214
+ ---
215
+
216
+ ## Captured Data
217
+
218
+ Laravel AI instrumentation captures:
219
+
220
+ | Span op | Captures |
221
+ | --------------------- | ------------------------------------------------------------------------------------- |
222
+ | `gen_ai.invoke_agent` | Agent prompt lifecycle, agent name, model, provider, available tools, conversation ID |
223
+ | `gen_ai.chat` | AI provider chat request, model/provider, finish reason, token usage |
224
+ | `gen_ai.execute_tool` | Tool name, description, arguments, result |
225
+ | `gen_ai.embeddings` | Embedding model/provider, token usage, input when PII capture is enabled |
226
+
227
+ Common attributes include:
228
+
229
+ | Attribute | Notes |
230
+ | ---------------------------- | ----------------------------------------------------------- |
231
+ | `gen_ai.operation.name` | `invoke_agent`, `chat`, `execute_tool`, or `embeddings` |
232
+ | `gen_ai.agent.name` | Agent class/name where available |
233
+ | `gen_ai.request.model` | Requested model |
234
+ | `gen_ai.response.model` | Actual response model |
235
+ | `gen_ai.provider.name` | Provider name, such as `openai` or `anthropic` |
236
+ | `gen_ai.conversation.id` | Used by Explore > Conversations |
237
+ | `gen_ai.usage.input_tokens` | Total input tokens, including cached tokens |
238
+ | `gen_ai.usage.output_tokens` | Total output tokens, including reasoning tokens |
239
+ | `gen_ai.usage.total_tokens` | Input + output tokens |
240
+ | `gen_ai.input.messages` | Prompt messages, only with `SENTRY_SEND_DEFAULT_PII=true` |
241
+ | `gen_ai.output.messages` | Response messages, only with `SENTRY_SEND_DEFAULT_PII=true` |
242
+ | `gen_ai.tool.call.arguments` | Tool arguments, only with `SENTRY_SEND_DEFAULT_PII=true` |
243
+ | `gen_ai.tool.call.result` | Tool result, only with `SENTRY_SEND_DEFAULT_PII=true` |
244
+
245
+ Streaming agent responses are supported for both `prompt()` and `stream()` calls.
246
+
247
+ ---
248
+
249
+ ## Conversations
250
+
251
+ Sentry Conversations groups related AI spans by `gen_ai.conversation.id`.
252
+
253
+ In Laravel AI, this is automatic when the agent implements `Conversational` and uses
254
+ `RemembersConversations`. The integration reads Laravel AI’s `conversationId` and
255
+ attaches it to AI spans.
256
+
257
+ To continue a conversation, pass the previous conversation ID back into Laravel AI:
258
+
259
+ ```php
260
+ use App\Ai\Agents\TimeAgent;
261
+ use App\Models\User;
262
+
263
+ $user = User::firstOrFail();
264
+ $conversationId = null;
265
+
266
+ foreach (['Hello', 'What did I just ask you?'] as $message) {
267
+ $agent = $conversationId
268
+ ? (new TimeAgent)->continue($conversationId, as: $user)
269
+ : (new TimeAgent)->forUser($user);
270
+
271
+ $response = $agent->prompt($message);
272
+ $conversationId = $response->conversationId;
273
+ }
274
+ ```
275
+
276
+ Both prompts appear under the same conversation in **Explore > Conversations**.
277
+
278
+ ---
279
+
280
+ ## Feature Flags
281
+
282
+ You can disable Laravel AI span types in `config/sentry.php` under `tracing.features`:
283
+
284
+ ```php
285
+ 'features' => [
286
+ // Master switch for all AI spans (requires laravel/ai)
287
+ 'gen_ai' => env('SENTRY_TRACE_GEN_AI_ENABLED', true),
288
+
289
+ // Individual span types
290
+ 'gen_ai_invoke_agent' => env('SENTRY_TRACE_GEN_AI_INVOKE_AGENT_ENABLED', true),
291
+ 'gen_ai_chat' => env('SENTRY_TRACE_GEN_AI_CHAT_ENABLED', true),
292
+ 'gen_ai_execute_tool' => env('SENTRY_TRACE_GEN_AI_EXECUTE_TOOL_ENABLED', true),
293
+ 'gen_ai_embeddings' => env('SENTRY_TRACE_GEN_AI_EMBEDDINGS_ENABLED', true),
294
+ ],
295
+ ```
296
+
297
+ Set `gen_ai` to `false` to disable all Laravel AI tracing.
298
+ Use the individual switches to disable only one span type.
299
+
300
+ ---
301
+
302
+ ## Troubleshooting
303
+
304
+ | Issue | Solution |
305
+ | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
306
+ | No AI spans | Verify `sentry/sentry-laravel >=4.27.0`, `laravel/ai` is installed, and `SENTRY_TRACES_SAMPLE_RATE > 0` |
307
+ | Agent spans appear but prompts are missing | Confirm the user approved prompt/output capture and set `SENTRY_SEND_DEFAULT_PII=true` |
308
+ | Conversations are not grouped | Implement `Conversational`, use `RemembersConversations`, and pass the previous `$response->conversationId` to `continue()` |
309
+ | CLI agent calls have no spans | Wrap the CLI operation in a Sentry transaction or run the agent inside a traced queue/job/request |
310
+ | Tool spans are missing | Confirm the agent implements `HasTools` and tool tracing is not disabled by `SENTRY_TRACE_GEN_AI_EXECUTE_TOOL_ENABLED=false` |
@@ -0,0 +1,265 @@
1
+ # Crons — Sentry PHP SDK
2
+
3
+ > Minimum SDK versions: `sentry/sentry` ≥ 3.16.0 · `sentry/sentry-laravel` ≥ 3.3.1
4
+
5
+ ## Overview
6
+
7
+ Sentry Crons monitors scheduled jobs by receiving check-ins at job start, success, and
8
+ failure. Three approaches:
9
+
10
+ | Approach | Use when |
11
+ | --------------------------------- | ----------------------------------------------- |
12
+ | `withMonitor()` wrapper | Simple wrapping of any callable |
13
+ | `captureCheckIn()` manually | Need control over timing, status, or heartbeats |
14
+ | `sentryMonitor()` macro (Laravel) | Laravel scheduled tasks — minimal boilerplate |
15
+
16
+ ## Code Examples
17
+
18
+ ### `withMonitor()` wrapper (simplest)
19
+
20
+ ```php
21
+ \Sentry\withMonitor(
22
+ slug: 'my-cron-job',
23
+ callback: fn() => doSomething(),
24
+ );
25
+ // Sends IN_PROGRESS before, OK on success, ERROR on exception
26
+ ```
27
+
28
+ ### Manual check-ins with `captureCheckIn()`
29
+
30
+ ```php
31
+ use Sentry\CheckInStatus;
32
+
33
+ // 1. Signal job started
34
+ $checkInId = \Sentry\captureCheckIn(
35
+ slug: 'my-cron-job',
36
+ status: CheckInStatus::inProgress(),
37
+ );
38
+
39
+ try {
40
+ // 2. Do work
41
+ runScheduledTask();
42
+
43
+ // 3a. Signal success
44
+ \Sentry\captureCheckIn(
45
+ slug: 'my-cron-job',
46
+ status: CheckInStatus::ok(),
47
+ checkInId: $checkInId,
48
+ );
49
+ } catch (\Throwable $e) {
50
+ // 3b. Signal failure
51
+ \Sentry\captureCheckIn(
52
+ slug: 'my-cron-job',
53
+ status: CheckInStatus::error(),
54
+ checkInId: $checkInId,
55
+ );
56
+ throw $e;
57
+ }
58
+ ```
59
+
60
+ ### Heartbeat (single check-in)
61
+
62
+ Only notifies if the job **didn’t start** when expected (missed).
63
+ Does not detect max runtime exceeded.
64
+
65
+ ```php
66
+ // Success
67
+ \Sentry\captureCheckIn(
68
+ slug: 'my-cron-job',
69
+ status: CheckInStatus::ok(),
70
+ duration: 10, // optional: seconds
71
+ );
72
+
73
+ // Failure
74
+ \Sentry\captureCheckIn(
75
+ slug: 'my-cron-job',
76
+ status: CheckInStatus::error(),
77
+ );
78
+ ```
79
+
80
+ ### Upsert monitor config programmatically
81
+
82
+ Define monitor settings in code so Sentry creates/updates the monitor automatically on
83
+ first check-in:
84
+
85
+ ```php
86
+ use Sentry\CheckInStatus;
87
+ use Sentry\MonitorConfig;
88
+ use Sentry\MonitorSchedule;
89
+ use Sentry\MonitorScheduleUnit;
90
+
91
+ // Crontab schedule
92
+ $monitorConfig = new MonitorConfig(
93
+ MonitorSchedule::crontab('0 2 * * *'), // every day at 2 AM
94
+ checkinMargin: 5, // minutes late before MISSED alert
95
+ maxRuntime: 15, // minutes before TIMEOUT alert
96
+ timezone: 'Europe/Vienna',
97
+ failureIssueThreshold: 2, // consecutive failures before issue
98
+ recoveryThreshold: 5, // consecutive successes to resolve
99
+ );
100
+
101
+ $checkInId = \Sentry\captureCheckIn(
102
+ slug: 'daily-backup',
103
+ status: CheckInStatus::inProgress(),
104
+ monitorConfig: $monitorConfig,
105
+ );
106
+
107
+ runBackup();
108
+
109
+ \Sentry\captureCheckIn(
110
+ slug: 'daily-backup',
111
+ status: CheckInStatus::ok(),
112
+ checkInId: $checkInId,
113
+ );
114
+ ```
115
+
116
+ ```php
117
+ // Interval schedule
118
+ $monitorConfig = new MonitorConfig(
119
+ MonitorSchedule::interval(10, MonitorScheduleUnit::minute()),
120
+ checkinMargin: 5,
121
+ maxRuntime: 8,
122
+ );
123
+ ```
124
+
125
+ ### Laravel — `sentryMonitor()` macro
126
+
127
+ Add `sentryMonitor()` to any scheduled task in `routes/console.php`:
128
+
129
+ ```php
130
+ use Illuminate\Support\Facades\Schedule;
131
+
132
+ Schedule::command(SendEmailsCommand::class)
133
+ ->everyHour()
134
+ ->sentryMonitor(); // that's it
135
+ ```
136
+
137
+ With full configuration:
138
+
139
+ ```php
140
+ Schedule::command(SendEmailsCommand::class)
141
+ ->everyHour()
142
+ ->sentryMonitor(
143
+ monitorSlug: null, // auto-generated if null
144
+ checkInMargin: 5, // minutes before MISSED alert
145
+ maxRuntime: 15, // minutes before TIMEOUT alert
146
+ failureIssueThreshold: 1, // consecutive failures before issue
147
+ recoveryThreshold: 1, // consecutive successes to resolve
148
+ updateMonitorConfig: true, // set false to manage config in UI only
149
+ );
150
+ ```
151
+
152
+ > **Limitation:** Tasks using `between`, `unlessBetween`, `when`, or `skip` are not
153
+ > supported. Use Laravel’s `cron()` method for schedule frequency in those cases.
154
+
155
+ ### Symfony — same as base PHP SDK
156
+
157
+ The Symfony bundle has no dedicated cron integration.
158
+ Use `captureCheckIn()` or `withMonitor()` directly:
159
+
160
+ ```php
161
+ use Sentry\CheckInStatus;
162
+
163
+ // In a Console command or service
164
+ $checkInId = \Sentry\captureCheckIn(
165
+ slug: 'symfony-cron',
166
+ status: CheckInStatus::inProgress(),
167
+ );
168
+
169
+ $this->doWork();
170
+
171
+ \Sentry\captureCheckIn(
172
+ slug: 'symfony-cron',
173
+ status: CheckInStatus::ok(),
174
+ checkInId: $checkInId,
175
+ );
176
+ ```
177
+
178
+ ## `CheckInStatus` Reference
179
+
180
+ ```php
181
+ use Sentry\CheckInStatus;
182
+
183
+ CheckInStatus::inProgress() // job has started
184
+ CheckInStatus::ok() // job completed successfully
185
+ CheckInStatus::error() // job failed
186
+ // MISSED and TIMEOUT are generated server-side — not sent by SDK
187
+ ```
188
+
189
+ ## `MonitorScheduleUnit` Reference
190
+
191
+ ```php
192
+ use Sentry\MonitorScheduleUnit;
193
+
194
+ MonitorScheduleUnit::minute()
195
+ MonitorScheduleUnit::hour()
196
+ MonitorScheduleUnit::day()
197
+ MonitorScheduleUnit::week()
198
+ MonitorScheduleUnit::month()
199
+ MonitorScheduleUnit::year()
200
+ ```
201
+
202
+ ## `MonitorConfig` Parameters
203
+
204
+ | Parameter | Type | Required | Description |
205
+ | ------------------------ | ----------------- | -------- | -------------------------------------------- |
206
+ | `$monitorSchedule` | `MonitorSchedule` | ✅ | Crontab or interval schedule |
207
+ | `$checkinMargin` | `int\|null` | No | Minutes late before MISSED alert |
208
+ | `$maxRuntime` | `int\|null` | No | Minutes after IN_PROGRESS before TIMEOUT |
209
+ | `$timezone` | `string\|null` | No | IANA timezone name, default `UTC` |
210
+ | `$failureIssueThreshold` | `int\|null` | No | Consecutive failures before opening an issue |
211
+ | `$recoveryThreshold` | `int\|null` | No | Consecutive successes to resolve an issue |
212
+
213
+ ## Laravel `sentryMonitor()` Parameters
214
+
215
+ | Parameter | Default | Description |
216
+ | ----------------------- | ------- | ---------------------------------------------------------------------- |
217
+ | `monitorSlug` | `null` | Custom slug; auto-generated from command name if null |
218
+ | `checkInMargin` | `5` | Minutes before check-in is considered missed |
219
+ | `maxRuntime` | `15` | Minutes before in-progress is marked timed out |
220
+ | `failureIssueThreshold` | `1` | Consecutive failures before creating issue |
221
+ | `recoveryThreshold` | `1` | Consecutive successes before resolving issue |
222
+ | `updateMonitorConfig` | `true` | `false` = configure monitor only in Sentry UI (requires `monitorSlug`) |
223
+
224
+ ## Rate Limits
225
+
226
+ **6 check-ins per minute per monitor-environment.** Excess check-ins are silently
227
+ dropped.
228
+
229
+ Example:
230
+
231
+ - `database-backup` in `production` → up to 6/min
232
+ - `database-backup` in `staging` → up to 6/min (separate limit)
233
+
234
+ Verify dropped check-ins on the Sentry Usage Stats page.
235
+
236
+ ## Alerts Setup
237
+
238
+ When a job misses a check-in or reports failure, Sentry creates an error event tagged
239
+ with `monitor.slug`:
240
+
241
+ 1. Go to **Alerts** → **Create Alert** → select **Issues** under Errors
242
+ 2. Filter: `The event's tags match monitor.slug equals my-monitor-slug-here`
243
+
244
+ ## Best Practices
245
+
246
+ - Use `withMonitor()` for simple jobs; use manual `captureCheckIn()` when you need error
247
+ handling or heartbeats
248
+ - Provide `MonitorConfig` on the first check-in so Sentry creates the monitor
249
+ automatically — no UI setup needed
250
+ - For jobs longer than `maxRuntime`, send periodic `IN_PROGRESS` check-ins as heartbeats
251
+ to reset the timeout clock
252
+ - In Laravel, prefer `sentryMonitor()` macro over manual check-ins for scheduled tasks
253
+ - Set `updateMonitorConfig: false` in Laravel when the monitor schedule is managed in
254
+ the Sentry UI
255
+
256
+ ## Troubleshooting
257
+
258
+ | Issue | Solution |
259
+ | ------------------------------------- | -------------------------------------------------------------------------- |
260
+ | Monitor not created in Sentry | Provide `MonitorConfig` — monitors are not auto-created without it |
261
+ | MISSED alerts firing too early | Increase `checkinMargin` to allow for job startup time |
262
+ | TIMEOUT alerts on slow jobs | Increase `maxRuntime` or send periodic `IN_PROGRESS` heartbeats |
263
+ | Laravel `sentryMonitor()` not working | Check SDK version ≥ 3.3.1; verify `ConsoleSchedulingIntegration` is active |
264
+ | `between`/`when` tasks not monitored | Use Laravel’s `cron()` method for schedule frequency instead |
265
+ | Check-ins silently dropped | You may be hitting the 6/min rate limit — check Usage Stats page |