@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.
- package/README.md +6 -6
- package/package.json +1 -1
- package/skill-sources.jsonc +2 -33
- package/skill-sources.lock.json +15 -117
- package/skills/animate/LICENSE +21 -0
- package/skills/animate/NOTICE +10 -0
- package/skills/animate/SKILL.md +34 -0
- package/skills/animate/references/gestures.md +27 -0
- package/skills/animate/references/glossary.md +136 -0
- package/skills/animate/references/implementation.md +22 -0
- package/skills/animate/references/opportunities.md +18 -0
- package/skills/animate/references/principles.md +48 -0
- package/skills/animate/references/review.md +19 -0
- package/skills/cloudflare-workers/LICENSE +202 -0
- package/skills/cloudflare-workers/NOTICE +9 -0
- package/skills/cloudflare-workers/SKILL.md +26 -0
- package/skills/cloudflare-workers/references/durable-objects.md +68 -0
- package/skills/cloudflare-workers/references/sandbox.md +48 -0
- package/skills/cloudflare-workers/references/workers.md +63 -0
- package/skills/cloudflare-workers/references/wrangler.md +56 -0
- package/skills/design-ui/LICENSE +21 -0
- package/skills/design-ui/NOTICE +8 -0
- package/skills/design-ui/SKILL.md +29 -0
- package/skills/design-ui/references/appearance.md +22 -0
- package/skills/design-ui/references/components.md +33 -0
- package/skills/design-ui/references/exploration.md +50 -0
- package/skills/design-ui/references/libraries.md +39 -0
- package/skills/design-ui/references/themes.md +23 -0
- package/skills/dev-kit/SKILL.md +19 -38
- package/skills/dev-kit/references/cloudflare-worker-api.md +1 -1
- package/skills/dev-kit/references/skills.md +2 -2
- package/skills/effect-development/SKILL.md +27 -0
- package/skills/effect-development/agents/openai.yaml +4 -0
- package/skills/effect-development/references/api/index.md +32 -0
- package/skills/effect-development/references/api/schema-codecs.md +15 -0
- package/skills/{build-effect-apis/references → effect-development/references/api}/verification.md +10 -5
- package/skills/{effect-architecture-audit/SKILL.md → effect-development/references/architecture/index.md} +1 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-client.md +8 -6
- package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-testing.md +7 -2
- package/skills/effect-development/references/atom/index.md +40 -0
- package/skills/{build-effect-clis/references → effect-development/references/cli}/entrypoints-and-testing.md +6 -2
- package/skills/effect-development/references/cli/index.md +39 -0
- package/skills/effect-development/references/setup.md +15 -0
- package/skills/open-pull-request/SKILL.md +10 -70
- package/skills/open-pull-request/references/evidence.md +22 -0
- package/skills/open-pull-request/references/explanation.md +21 -0
- package/skills/open-pull-request/references/publication.md +21 -0
- package/skills/sentry/LICENSE +202 -0
- package/skills/sentry/LICENSE-UPSTREAM +21 -0
- package/skills/sentry/NOTICE +14 -0
- package/skills/sentry/SKILL.md +33 -0
- package/skills/sentry/references/alert-payloads.md +105 -0
- package/skills/sentry/references/alerts.md +17 -0
- package/skills/sentry/references/artifacts.md +25 -0
- package/skills/sentry/references/auth-token.md +65 -0
- package/skills/sentry/references/concepts/ai-monitoring.md +131 -0
- package/skills/sentry/references/concepts/choosing-a-signal.md +78 -0
- package/skills/sentry/references/concepts/crons.md +50 -0
- package/skills/sentry/references/concepts/data-scrubbing.md +43 -0
- package/skills/sentry/references/concepts/errors.md +40 -0
- package/skills/sentry/references/concepts/logging.md +85 -0
- package/skills/sentry/references/concepts/metrics.md +49 -0
- package/skills/sentry/references/concepts/monitors.md +78 -0
- package/skills/sentry/references/concepts/profiling.md +38 -0
- package/skills/sentry/references/concepts/reduce-volume.md +49 -0
- package/skills/sentry/references/concepts/releases.md +43 -0
- package/skills/sentry/references/concepts/session-replay.md +35 -0
- package/skills/sentry/references/concepts/tracing.md +54 -0
- package/skills/sentry/references/concepts/user-feedback.md +36 -0
- package/skills/sentry/references/debug-artifacts/android.md +68 -0
- package/skills/sentry/references/debug-artifacts/apple.md +96 -0
- package/skills/sentry/references/debug-artifacts/dotnet.md +70 -0
- package/skills/sentry/references/debug-artifacts/flutter.md +65 -0
- package/skills/sentry/references/debug-artifacts/index.md +75 -0
- package/skills/sentry/references/debug-artifacts/javascript.md +94 -0
- package/skills/sentry/references/debug-artifacts/matching.md +73 -0
- package/skills/sentry/references/debug-artifacts/react-native.md +75 -0
- package/skills/sentry/references/first-error-setup.md +25 -0
- package/skills/sentry/references/instrumentation.md +30 -0
- package/skills/sentry/references/issues.md +32 -0
- package/skills/sentry/references/new-project.md +17 -0
- package/skills/sentry/references/otel-exporter.md +30 -0
- package/skills/sentry/references/release-workflow.md +31 -0
- package/skills/sentry/references/releases/ci-pipeline.md +214 -0
- package/skills/sentry/references/releases/index.md +93 -0
- package/skills/sentry/references/releases/suspect-commits.md +155 -0
- package/skills/sentry/references/releases/tagging.md +131 -0
- package/skills/sentry/references/releases/troubleshooting.md +67 -0
- package/skills/sentry/references/sdks/android/crons.md +305 -0
- package/skills/sentry/references/sdks/android/error-monitoring.md +800 -0
- package/skills/sentry/references/sdks/android/index.md +748 -0
- package/skills/sentry/references/sdks/android/integrations.md +48 -0
- package/skills/sentry/references/sdks/android/logging.md +374 -0
- package/skills/sentry/references/sdks/android/metrics.md +288 -0
- package/skills/sentry/references/sdks/android/profiling.md +397 -0
- package/skills/sentry/references/sdks/android/session-replay.md +406 -0
- package/skills/sentry/references/sdks/android/tracing.md +861 -0
- package/skills/sentry/references/sdks/browser/error-monitoring.md +861 -0
- package/skills/sentry/references/sdks/browser/index.md +714 -0
- package/skills/sentry/references/sdks/browser/logging.md +315 -0
- package/skills/sentry/references/sdks/browser/profiling.md +236 -0
- package/skills/sentry/references/sdks/browser/session-replay.md +586 -0
- package/skills/sentry/references/sdks/browser/tracing.md +561 -0
- package/skills/sentry/references/sdks/browser/user-feedback.md +354 -0
- package/skills/sentry/references/sdks/cloudflare/ai-monitoring.md +661 -0
- package/skills/sentry/references/sdks/cloudflare/crons.md +231 -0
- package/skills/sentry/references/sdks/cloudflare/durable-objects.md +381 -0
- package/skills/sentry/references/sdks/cloudflare/error-monitoring.md +329 -0
- package/skills/sentry/references/sdks/cloudflare/index.md +698 -0
- package/skills/sentry/references/sdks/cloudflare/logging.md +169 -0
- package/skills/sentry/references/sdks/cloudflare/nodejs-compat.md +134 -0
- package/skills/sentry/references/sdks/cloudflare/tracing.md +475 -0
- package/skills/sentry/references/sdks/cocoa/error-monitoring.md +394 -0
- package/skills/sentry/references/sdks/cocoa/index.md +497 -0
- package/skills/sentry/references/sdks/cocoa/logging.md +209 -0
- package/skills/sentry/references/sdks/cocoa/metrics.md +136 -0
- package/skills/sentry/references/sdks/cocoa/profiling.md +223 -0
- package/skills/sentry/references/sdks/cocoa/session-replay.md +257 -0
- package/skills/sentry/references/sdks/cocoa/tracing.md +524 -0
- package/skills/sentry/references/sdks/cocoa/user-feedback.md +310 -0
- package/skills/sentry/references/sdks/dotnet/crons.md +465 -0
- package/skills/sentry/references/sdks/dotnet/error-monitoring.md +1100 -0
- package/skills/sentry/references/sdks/dotnet/index.md +614 -0
- package/skills/sentry/references/sdks/dotnet/logging.md +556 -0
- package/skills/sentry/references/sdks/dotnet/metrics.md +229 -0
- package/skills/sentry/references/sdks/dotnet/profiling.md +296 -0
- package/skills/sentry/references/sdks/dotnet/tracing.md +897 -0
- package/skills/sentry/references/sdks/elixir/crons.md +371 -0
- package/skills/sentry/references/sdks/elixir/error-monitoring.md +335 -0
- package/skills/sentry/references/sdks/elixir/index.md +383 -0
- package/skills/sentry/references/sdks/elixir/logging.md +239 -0
- package/skills/sentry/references/sdks/elixir/tracing.md +233 -0
- package/skills/sentry/references/sdks/flutter/ecosystem-integrations.md +70 -0
- package/skills/sentry/references/sdks/flutter/error-monitoring.md +312 -0
- package/skills/sentry/references/sdks/flutter/index.md +728 -0
- package/skills/sentry/references/sdks/flutter/logging.md +387 -0
- package/skills/sentry/references/sdks/flutter/metrics.md +310 -0
- package/skills/sentry/references/sdks/flutter/profiling.md +214 -0
- package/skills/sentry/references/sdks/flutter/session-replay.md +308 -0
- package/skills/sentry/references/sdks/flutter/tracing.md +502 -0
- package/skills/sentry/references/sdks/go/crons.md +270 -0
- package/skills/sentry/references/sdks/go/error-monitoring.md +361 -0
- package/skills/sentry/references/sdks/go/index.md +324 -0
- package/skills/sentry/references/sdks/go/logging.md +354 -0
- package/skills/sentry/references/sdks/go/metrics.md +273 -0
- package/skills/sentry/references/sdks/go/profiling.md +46 -0
- package/skills/sentry/references/sdks/go/tracing.md +366 -0
- package/skills/sentry/references/sdks/index.md +41 -0
- package/skills/sentry/references/sdks/nestjs/ai-monitoring.md +410 -0
- package/skills/sentry/references/sdks/nestjs/crons.md +268 -0
- package/skills/sentry/references/sdks/nestjs/error-monitoring.md +729 -0
- package/skills/sentry/references/sdks/nestjs/index.md +699 -0
- package/skills/sentry/references/sdks/nestjs/logging.md +174 -0
- package/skills/sentry/references/sdks/nestjs/metrics.md +243 -0
- package/skills/sentry/references/sdks/nestjs/profiling.md +127 -0
- package/skills/sentry/references/sdks/nestjs/tracing.md +762 -0
- package/skills/sentry/references/sdks/nextjs/ai-monitoring.md +494 -0
- package/skills/sentry/references/sdks/nextjs/crons.md +383 -0
- package/skills/sentry/references/sdks/nextjs/error-monitoring.md +974 -0
- package/skills/sentry/references/sdks/nextjs/index.md +491 -0
- package/skills/sentry/references/sdks/nextjs/logging.md +381 -0
- package/skills/sentry/references/sdks/nextjs/metrics.md +411 -0
- package/skills/sentry/references/sdks/nextjs/profiling.md +403 -0
- package/skills/sentry/references/sdks/nextjs/session-replay.md +462 -0
- package/skills/sentry/references/sdks/nextjs/tracing.md +628 -0
- package/skills/sentry/references/sdks/node/ai-monitoring.md +303 -0
- package/skills/sentry/references/sdks/node/crons.md +432 -0
- package/skills/sentry/references/sdks/node/error-monitoring.md +1125 -0
- package/skills/sentry/references/sdks/node/index.md +942 -0
- package/skills/sentry/references/sdks/node/logging.md +380 -0
- package/skills/sentry/references/sdks/node/metrics.md +278 -0
- package/skills/sentry/references/sdks/node/profiling.md +373 -0
- package/skills/sentry/references/sdks/node/tracing.md +878 -0
- package/skills/sentry/references/sdks/php/ai-monitoring.md +310 -0
- package/skills/sentry/references/sdks/php/crons.md +265 -0
- package/skills/sentry/references/sdks/php/error-monitoring.md +626 -0
- package/skills/sentry/references/sdks/php/index.md +362 -0
- package/skills/sentry/references/sdks/php/laravel.md +542 -0
- package/skills/sentry/references/sdks/php/logging.md +242 -0
- package/skills/sentry/references/sdks/php/metrics.md +193 -0
- package/skills/sentry/references/sdks/php/profiling.md +115 -0
- package/skills/sentry/references/sdks/php/symfony.md +552 -0
- package/skills/sentry/references/sdks/php/tracing.md +516 -0
- package/skills/sentry/references/sdks/python/ai-monitoring.md +351 -0
- package/skills/sentry/references/sdks/python/crons.md +218 -0
- package/skills/sentry/references/sdks/python/error-monitoring.md +292 -0
- package/skills/sentry/references/sdks/python/index.md +361 -0
- package/skills/sentry/references/sdks/python/logging.md +234 -0
- package/skills/sentry/references/sdks/python/metrics.md +154 -0
- package/skills/sentry/references/sdks/python/profiling.md +120 -0
- package/skills/sentry/references/sdks/python/tracing.md +364 -0
- package/skills/sentry/references/sdks/react/error-monitoring.md +1607 -0
- package/skills/sentry/references/sdks/react/index.md +492 -0
- package/skills/sentry/references/sdks/react/logging.md +364 -0
- package/skills/sentry/references/sdks/react/profiling.md +322 -0
- package/skills/sentry/references/sdks/react/react-features.md +1272 -0
- package/skills/sentry/references/sdks/react/session-replay.md +1193 -0
- package/skills/sentry/references/sdks/react/tracing.md +1415 -0
- package/skills/sentry/references/sdks/react-native/error-monitoring.md +1481 -0
- package/skills/sentry/references/sdks/react-native/expo-config-plugin.md +45 -0
- package/skills/sentry/references/sdks/react-native/index.md +1030 -0
- package/skills/sentry/references/sdks/react-native/logging.md +444 -0
- package/skills/sentry/references/sdks/react-native/profiling.md +386 -0
- package/skills/sentry/references/sdks/react-native/session-replay.md +704 -0
- package/skills/sentry/references/sdks/react-native/tracing.md +1086 -0
- package/skills/sentry/references/sdks/react-native/user-feedback.md +815 -0
- package/skills/sentry/references/sdks/react-router-framework/error-monitoring.md +127 -0
- package/skills/sentry/references/sdks/react-router-framework/index.md +411 -0
- package/skills/sentry/references/sdks/react-router-framework/logging.md +66 -0
- package/skills/sentry/references/sdks/react-router-framework/profiling.md +57 -0
- package/skills/sentry/references/sdks/react-router-framework/react-router-framework-features.md +110 -0
- package/skills/sentry/references/sdks/react-router-framework/session-replay.md +67 -0
- package/skills/sentry/references/sdks/react-router-framework/tracing.md +96 -0
- package/skills/sentry/references/sdks/react-router-framework/user-feedback.md +71 -0
- package/skills/sentry/references/sdks/ruby/crons.md +184 -0
- package/skills/sentry/references/sdks/ruby/error-monitoring.md +248 -0
- package/skills/sentry/references/sdks/ruby/index.md +297 -0
- package/skills/sentry/references/sdks/ruby/logging.md +168 -0
- package/skills/sentry/references/sdks/ruby/metrics.md +196 -0
- package/skills/sentry/references/sdks/ruby/migration.md +321 -0
- package/skills/sentry/references/sdks/ruby/profiling.md +107 -0
- package/skills/sentry/references/sdks/ruby/tracing.md +388 -0
- package/skills/sentry/references/sdks/svelte/error-monitoring.md +456 -0
- package/skills/sentry/references/sdks/svelte/index.md +467 -0
- package/skills/sentry/references/sdks/svelte/logging.md +344 -0
- package/skills/sentry/references/sdks/svelte/session-replay.md +369 -0
- package/skills/sentry/references/sdks/svelte/tracing.md +406 -0
- package/skills/sentry/references/sdks/tanstack-start/error-monitoring.md +149 -0
- package/skills/sentry/references/sdks/tanstack-start/index.md +381 -0
- package/skills/sentry/references/sdks/tanstack-start/logging.md +74 -0
- package/skills/sentry/references/sdks/tanstack-start/session-replay.md +76 -0
- package/skills/sentry/references/sdks/tanstack-start/tanstackstart-features.md +128 -0
- package/skills/sentry/references/sdks/tanstack-start/tracing.md +123 -0
- package/skills/sentry/references/sdks/tanstack-start/user-feedback.md +81 -0
- package/skills/sentry/references/search-query-language.md +226 -0
- package/skills/sentry/references/semantics/angular.md +7 -0
- package/skills/sentry/references/semantics/app.md +28 -0
- package/skills/sentry/references/semantics/art.md +17 -0
- package/skills/sentry/references/semantics/aws.md +43 -0
- package/skills/sentry/references/semantics/browser.md +34 -0
- package/skills/sentry/references/semantics/cache.md +12 -0
- package/skills/sentry/references/semantics/client.md +8 -0
- package/skills/sentry/references/semantics/cloud.md +12 -0
- package/skills/sentry/references/semantics/cloudflare.md +23 -0
- package/skills/sentry/references/semantics/code.md +11 -0
- package/skills/sentry/references/semantics/culture.md +11 -0
- package/skills/sentry/references/semantics/db.md +21 -0
- package/skills/sentry/references/semantics/device.md +43 -0
- package/skills/sentry/references/semantics/error.md +7 -0
- package/skills/sentry/references/semantics/event.md +8 -0
- package/skills/sentry/references/semantics/exception.md +10 -0
- package/skills/sentry/references/semantics/faas.md +19 -0
- package/skills/sentry/references/semantics/file.md +8 -0
- package/skills/sentry/references/semantics/flag.md +7 -0
- package/skills/sentry/references/semantics/gcp.md +16 -0
- package/skills/sentry/references/semantics/gen_ai.md +53 -0
- package/skills/sentry/references/semantics/general.md +11 -0
- package/skills/sentry/references/semantics/graphql.md +9 -0
- package/skills/sentry/references/semantics/grpc.md +19 -0
- package/skills/sentry/references/semantics/http.md +34 -0
- package/skills/sentry/references/semantics/index.md +63 -0
- package/skills/sentry/references/semantics/jsonrpc.md +8 -0
- package/skills/sentry/references/semantics/jvm.md +12 -0
- package/skills/sentry/references/semantics/koa.md +7 -0
- package/skills/sentry/references/semantics/logger.md +7 -0
- package/skills/sentry/references/semantics/mcp.md +37 -0
- package/skills/sentry/references/semantics/mdc.md +7 -0
- package/skills/sentry/references/semantics/messaging.md +23 -0
- package/skills/sentry/references/semantics/middleware.md +7 -0
- package/skills/sentry/references/semantics/navigation.md +9 -0
- package/skills/sentry/references/semantics/nel.md +11 -0
- package/skills/sentry/references/semantics/network.md +17 -0
- package/skills/sentry/references/semantics/os.md +15 -0
- package/skills/sentry/references/semantics/otel.md +10 -0
- package/skills/sentry/references/semantics/params.md +7 -0
- package/skills/sentry/references/semantics/process.md +14 -0
- package/skills/sentry/references/semantics/react.md +7 -0
- package/skills/sentry/references/semantics/remix.md +7 -0
- package/skills/sentry/references/semantics/resource.md +7 -0
- package/skills/sentry/references/semantics/rpc.md +10 -0
- package/skills/sentry/references/semantics/score.md +10 -0
- package/skills/sentry/references/semantics/sentry.md +69 -0
- package/skills/sentry/references/semantics/server.md +8 -0
- package/skills/sentry/references/semantics/service.md +8 -0
- package/skills/sentry/references/semantics/session.md +7 -0
- package/skills/sentry/references/semantics/state.md +7 -0
- package/skills/sentry/references/semantics/thread.md +8 -0
- package/skills/sentry/references/semantics/timber.md +7 -0
- package/skills/sentry/references/semantics/trpc.md +8 -0
- package/skills/sentry/references/semantics/ui.md +18 -0
- package/skills/sentry/references/semantics/url.md +15 -0
- package/skills/sentry/references/semantics/user.md +17 -0
- package/skills/sentry/references/semantics/user_agent.md +7 -0
- package/skills/sentry/references/semantics/vercel.md +42 -0
- package/skills/sentry/references/setup-verification.md +39 -0
- package/skills/sentry/references/snapshots/github-actions-fanout.md +206 -0
- package/skills/sentry/references/snapshots/github-actions-simple.md +102 -0
- package/skills/sentry/references/snapshots/github-actions-swift-snapshot-testing.md +118 -0
- package/skills/sentry/references/snapshots/index.md +19 -0
- package/skills/sentry/references/snapshots/snapshot-previews.md +100 -0
- package/skills/sentry/references/snapshots/snapshots.md +123 -0
- package/skills/sentry/references/snapshots/wizard-setup.md +134 -0
- package/skills/testing/LICENSE +21 -0
- package/skills/testing/NOTICE +7 -0
- package/skills/testing/SKILL.md +13 -19
- package/skills/testing/agents/openai.yaml +1 -2
- package/skills/testing/references/selection.md +23 -0
- package/skills/testing/references/tdd.md +19 -0
- package/skills/testing/references/test-design.md +17 -0
- package/src/catalog.ts +1 -7
- package/skills/build-effect-apis/SKILL.md +0 -81
- package/skills/build-effect-apis/agents/openai.yaml +0 -4
- package/skills/build-effect-clis/SKILL.md +0 -92
- package/skills/build-effect-clis/agents/openai.yaml +0 -4
- package/skills/effect-architecture-audit/agents/openai.yaml +0 -4
- package/skills/effect-atom-state/SKILL.md +0 -97
- package/skills/effect-atom-state/agents/openai.yaml +0 -4
- package/skills/effect-ts/SKILL.md +0 -35
- package/skills/effect-ts/agents/openai.yaml +0 -4
- /package/skills/{build-effect-apis/references → effect-development/references/api}/cloudflare-workers.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/runtime-assembly.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/server-and-middleware.md +0 -0
- /package/skills/{build-effect-apis/references → effect-development/references/api}/shared-contracts.md +0 -0
- /package/skills/{effect-architecture-audit/references → effect-development/references/architecture}/service-and-boundary-audit.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-lifecycle.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/effect-atom-workflows.md +0 -0
- /package/skills/{effect-atom-state/references → effect-development/references/atom}/tanstack-start.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/command-design.md +0 -0
- /package/skills/{build-effect-clis/references → effect-development/references/cli}/processes-and-platform.md +0 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
# Sentry PHP SDK
|
|
2
|
+
|
|
3
|
+
Opinionated wizard that scans your PHP project and guides you through complete Sentry
|
|
4
|
+
setup.
|
|
5
|
+
|
|
6
|
+
> **Note:** SDK versions and APIs below reflect Sentry docs at time of writing
|
|
7
|
+
> (sentry/sentry 4.x, sentry/sentry-laravel 4.x, sentry/sentry-symfony 5.x). Always
|
|
8
|
+
> verify against [docs.sentry.io/platforms/php/](https://docs.sentry.io/platforms/php/)
|
|
9
|
+
> before implementing.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Phase 1: Detect
|
|
14
|
+
|
|
15
|
+
Run these commands to understand the project before making recommendations:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Check existing Sentry
|
|
19
|
+
grep -i sentry composer.json composer.lock 2>/dev/null
|
|
20
|
+
|
|
21
|
+
# Detect framework
|
|
22
|
+
cat composer.json | grep -E '"laravel/framework"|"symfony/framework-bundle"|"illuminate/'
|
|
23
|
+
|
|
24
|
+
# Confirm framework via filesystem markers
|
|
25
|
+
ls artisan 2>/dev/null && echo "Laravel detected"
|
|
26
|
+
ls bin/console 2>/dev/null && echo "Symfony detected"
|
|
27
|
+
|
|
28
|
+
# Detect queue systems
|
|
29
|
+
grep -E '"laravel/horizon"|"symfony/messenger"' composer.json 2>/dev/null
|
|
30
|
+
|
|
31
|
+
# Detect AI libraries
|
|
32
|
+
grep -E '"(laravel/ai|openai-php|openai/|anthropic|llm)' composer.json 2>/dev/null
|
|
33
|
+
|
|
34
|
+
# Check for companion frontend
|
|
35
|
+
ls frontend/ resources/js/ assets/ 2>/dev/null
|
|
36
|
+
cat package.json 2>/dev/null | grep -E '"react"|"svelte"|"vue"|"next"'
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**What to note:**
|
|
40
|
+
|
|
41
|
+
- Is `sentry/sentry` (or `-laravel` / `-symfony`) already in `composer.json`? If yes,
|
|
42
|
+
check if the init call exists — may just need feature config.
|
|
43
|
+
- Framework detected? **Laravel** (has `artisan` + `laravel/framework` in composer.json),
|
|
44
|
+
**Symfony** (has `bin/console` + `symfony/framework-bundle`), or **plain PHP**.
|
|
45
|
+
- Queue system? (Laravel Queue / Horizon, Symfony Messenger need queue worker
|
|
46
|
+
configuration.)
|
|
47
|
+
- AI libraries? (`laravel/ai` is auto-instrumented by `sentry/sentry-laravel >= 4.27.0`
|
|
48
|
+
when tracing is enabled; other PHP AI libraries need manual spans.)
|
|
49
|
+
- Companion frontend? (Triggers Phase 4 cross-link.)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Phase 2: Recommend
|
|
54
|
+
|
|
55
|
+
Based on what you found, present a concrete proposal.
|
|
56
|
+
Don’t ask open-ended questions — lead with a recommendation:
|
|
57
|
+
|
|
58
|
+
**Always recommended (core coverage):**
|
|
59
|
+
|
|
60
|
+
- ✅ **Error Monitoring** — captures unhandled exceptions and PHP errors
|
|
61
|
+
- ✅ **Logging** — Monolog integration (Laravel/Symfony auto-configure; plain PHP uses
|
|
62
|
+
`MonologHandler`)
|
|
63
|
+
|
|
64
|
+
**Recommend when detected:**
|
|
65
|
+
|
|
66
|
+
- ✅ **Tracing** — web framework detected (Laravel/Symfony auto-instrument HTTP, DB,
|
|
67
|
+
Twig/Blade, cache)
|
|
68
|
+
- ⚡ **Profiling** — production apps where performance matters (requires `excimer` PHP
|
|
69
|
+
extension, Linux/macOS only)
|
|
70
|
+
- ⚡ **Crons** — scheduler patterns detected (Laravel Scheduler, Symfony Scheduler,
|
|
71
|
+
custom cron jobs)
|
|
72
|
+
- ⚡ **Metrics** — business KPIs or SLO tracking (uses `TraceMetrics` API)
|
|
73
|
+
- ✅ **AI Monitoring** — `laravel/ai` detected in a Laravel app (auto-instrumented in
|
|
74
|
+
`sentry/sentry-laravel >= 4.27.0`)
|
|
75
|
+
|
|
76
|
+
**Recommendation matrix:**
|
|
77
|
+
|
|
78
|
+
| Feature | Recommend when … | Reference |
|
|
79
|
+
| ---------------- | --------------------------------------------------------------------- | ----------------------- |
|
|
80
|
+
| Error Monitoring | **Always** — non-negotiable baseline | `./error-monitoring.md` |
|
|
81
|
+
| Tracing | Laravel/Symfony detected, or manual spans needed | `./tracing.md` |
|
|
82
|
+
| Profiling | Production + `excimer` extension available | `./profiling.md` |
|
|
83
|
+
| Logging | **Always**; Monolog for Laravel/Symfony | `./logging.md` |
|
|
84
|
+
| Metrics | Business events or SLO tracking needed | `./metrics.md` |
|
|
85
|
+
| Crons | Scheduler or cron patterns detected | `./crons.md` |
|
|
86
|
+
| AI Monitoring | `laravel/ai` detected in a Laravel app, or manual PHP AI spans needed | `./ai-monitoring.md` |
|
|
87
|
+
|
|
88
|
+
Propose: _“I recommend Error Monitoring + Tracing [+ Logging]. Want Profiling, Crons,
|
|
89
|
+
Metrics, or AI Monitoring too?”_
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Phase 3: Guide
|
|
94
|
+
|
|
95
|
+
### Install
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# Plain PHP
|
|
99
|
+
composer require sentry/sentry "^4.0"
|
|
100
|
+
|
|
101
|
+
# Laravel
|
|
102
|
+
composer require sentry/sentry-laravel "^4.0"
|
|
103
|
+
|
|
104
|
+
# Laravel with Laravel AI monitoring
|
|
105
|
+
composer require sentry/sentry-laravel "^4.27.0"
|
|
106
|
+
|
|
107
|
+
# Symfony
|
|
108
|
+
composer require sentry/sentry-symfony "^5.0"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**System requirements:**
|
|
112
|
+
|
|
113
|
+
- PHP 7.2 or later
|
|
114
|
+
- Extensions: `ext-json`, `ext-mbstring`, `ext-curl` (all required)
|
|
115
|
+
- `excimer` PECL extension (Linux/macOS only — required for profiling)
|
|
116
|
+
|
|
117
|
+
### Framework-Specific Initialization
|
|
118
|
+
|
|
119
|
+
#### Plain PHP
|
|
120
|
+
|
|
121
|
+
Place `\Sentry\init()` at the top of your entry point (`index.php`, `bootstrap.php`, or
|
|
122
|
+
equivalent), before any application code:
|
|
123
|
+
|
|
124
|
+
```php
|
|
125
|
+
<?php
|
|
126
|
+
|
|
127
|
+
require_once 'vendor/autoload.php';
|
|
128
|
+
|
|
129
|
+
\Sentry\init([
|
|
130
|
+
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
|
|
131
|
+
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
|
|
132
|
+
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
|
|
133
|
+
'send_default_pii' => true,
|
|
134
|
+
'traces_sample_rate' => 1.0,
|
|
135
|
+
'profiles_sample_rate' => 1.0,
|
|
136
|
+
'enable_logs' => true,
|
|
137
|
+
]);
|
|
138
|
+
|
|
139
|
+
// rest of application...
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
#### Laravel
|
|
143
|
+
|
|
144
|
+
**Step 1 — Register exception handler** in `bootstrap/app.php`:
|
|
145
|
+
|
|
146
|
+
```php
|
|
147
|
+
use Sentry\Laravel\Integration;
|
|
148
|
+
|
|
149
|
+
return Application::configure(basePath: dirname(__DIR__))
|
|
150
|
+
->withExceptions(function (Exceptions $exceptions) {
|
|
151
|
+
Integration::handles($exceptions);
|
|
152
|
+
})->create();
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Step 2 — Publish config and set DSN:**
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
php artisan sentry:publish --dsn=YOUR_DSN
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
This creates `config/sentry.php` and adds `SENTRY_LARAVEL_DSN` to `.env`.
|
|
162
|
+
|
|
163
|
+
**Step 3 — Configure `.env`:**
|
|
164
|
+
|
|
165
|
+
```ini
|
|
166
|
+
SENTRY_LARAVEL_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
|
|
167
|
+
SENTRY_TRACES_SAMPLE_RATE=1.0
|
|
168
|
+
SENTRY_PROFILES_SAMPLE_RATE=1.0
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
> For full Laravel configuration options, read `./laravel.md`.
|
|
172
|
+
|
|
173
|
+
#### Symfony
|
|
174
|
+
|
|
175
|
+
**Step 1 — Register the bundle** in `config/bundles.php` (auto-done by Symfony Flex):
|
|
176
|
+
|
|
177
|
+
```php
|
|
178
|
+
Sentry\SentryBundle\SentryBundle::class => ['all' => true],
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Step 2 — Create `config/packages/sentry.yaml`:**
|
|
182
|
+
|
|
183
|
+
```yaml
|
|
184
|
+
sentry:
|
|
185
|
+
dsn: "%env(SENTRY_DSN)%"
|
|
186
|
+
options:
|
|
187
|
+
environment: "%env(APP_ENV)%"
|
|
188
|
+
release: "%env(SENTRY_RELEASE)%"
|
|
189
|
+
send_default_pii: true
|
|
190
|
+
traces_sample_rate: 1.0
|
|
191
|
+
profiles_sample_rate: 1.0
|
|
192
|
+
enable_logs: true
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**Step 3 — Set the DSN in `.env`:**
|
|
196
|
+
|
|
197
|
+
```ini
|
|
198
|
+
SENTRY_DSN=https://examplePublicKey@o0.ingest.sentry.io/0
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
> For full Symfony configuration options, read `./symfony.md`.
|
|
202
|
+
|
|
203
|
+
### Quick Start — Recommended Init (Plain PHP)
|
|
204
|
+
|
|
205
|
+
Full init enabling the most features with sensible defaults:
|
|
206
|
+
|
|
207
|
+
```php
|
|
208
|
+
\Sentry\init([
|
|
209
|
+
'dsn' => $_SERVER['SENTRY_DSN'] ?? '',
|
|
210
|
+
'environment' => $_SERVER['SENTRY_ENVIRONMENT'] ?? 'production',
|
|
211
|
+
'release' => $_SERVER['SENTRY_RELEASE'] ?? null,
|
|
212
|
+
'send_default_pii' => true,
|
|
213
|
+
|
|
214
|
+
// Tracing (lower to 0.1–0.2 in high-traffic production)
|
|
215
|
+
'traces_sample_rate' => 1.0,
|
|
216
|
+
|
|
217
|
+
// Profiling — requires excimer extension (Linux/macOS only)
|
|
218
|
+
'profiles_sample_rate' => 1.0,
|
|
219
|
+
|
|
220
|
+
// Structured logs (sentry/sentry >=4.12.0)
|
|
221
|
+
'enable_logs' => true,
|
|
222
|
+
]);
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### For Each Agreed Feature
|
|
226
|
+
|
|
227
|
+
Walk through features one at a time.
|
|
228
|
+
Load the reference, follow its steps, verify before moving on:
|
|
229
|
+
|
|
230
|
+
| Feature | Reference file | Load when … |
|
|
231
|
+
| ---------------- | ----------------------- | --------------------------------------------------------------- |
|
|
232
|
+
| Error Monitoring | `./error-monitoring.md` | Always (baseline) |
|
|
233
|
+
| Tracing | `./tracing.md` | HTTP handlers / distributed tracing |
|
|
234
|
+
| Profiling | `./profiling.md` | Performance-sensitive production |
|
|
235
|
+
| Logging | `./logging.md` | Always; Monolog for Laravel/Symfony |
|
|
236
|
+
| Metrics | `./metrics.md` | Business KPIs / SLO tracking |
|
|
237
|
+
| Crons | `./crons.md` | Scheduler / cron patterns detected |
|
|
238
|
+
| AI Monitoring | `./ai-monitoring.md` | `laravel/ai` detected in Laravel, or manual PHP AI spans needed |
|
|
239
|
+
|
|
240
|
+
For each feature: `Read ./<feature>.md`, follow steps exactly, verify it works.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Configuration Reference
|
|
245
|
+
|
|
246
|
+
### Key `\Sentry\init()` Options (Plain PHP)
|
|
247
|
+
|
|
248
|
+
| Option | Type | Default | Purpose |
|
|
249
|
+
| --------------------------- | -------------------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
250
|
+
| `dsn` | `string\|bool\|null` | `$_SERVER['SENTRY_DSN']` | SDK disabled if empty or `false` |
|
|
251
|
+
| `environment` | `string\|null` | `$_SERVER['SENTRY_ENVIRONMENT']` | e.g., `"staging"` |
|
|
252
|
+
| `release` | `string\|null` | `$_SERVER['SENTRY_RELEASE']` | e.g., `"myapp@1.0.0"` |
|
|
253
|
+
| `send_default_pii` | `bool` | `false` | Include request headers, cookies, IP |
|
|
254
|
+
| `sample_rate` | `float` | `1.0` | Error event sample rate (0.0–1.0) |
|
|
255
|
+
| `traces_sample_rate` | `float\|null` | `null` | Transaction sample rate; `null` disables tracing |
|
|
256
|
+
| `traces_sampler` | `callable\|null` | `null` | Custom per-transaction sampling (overrides rate) |
|
|
257
|
+
| `profiles_sample_rate` | `float\|null` | `null` | Profiling rate relative to traces; requires `excimer` |
|
|
258
|
+
| `enable_logs` | `bool` | `false` | Send structured logs to Sentry (>=4.12.0) |
|
|
259
|
+
| `max_breadcrumbs` | `int` | `100` | Max breadcrumbs per event |
|
|
260
|
+
| `attach_stacktrace` | `bool` | `false` | Stack traces on `captureMessage()` |
|
|
261
|
+
| `in_app_include` | `string[]` | `[]` | Path prefixes belonging to your app |
|
|
262
|
+
| `in_app_exclude` | `string[]` | `[]` | Path prefixes for third-party code (hidden in traces) |
|
|
263
|
+
| `ignore_exceptions` | `string[]` | `[]` | Exception FQCNs to never report |
|
|
264
|
+
| `ignore_transactions` | `string[]` | `[]` | Transaction names to never report |
|
|
265
|
+
| `error_types` | `int\|null` | `error_reporting()` | PHP error bitmask (e.g., `E_ALL & ~E_NOTICE`) |
|
|
266
|
+
| `capture_silenced_errors` | `bool` | `false` | Capture errors suppressed by `@` operator |
|
|
267
|
+
| `max_request_body_size` | `string` | `"medium"` | `"none"` / `"small"` / `"medium"` / `"always"` |
|
|
268
|
+
| `before_send` | `callable` | identity | `fn(Event $event, ?EventHint $hint): ?Event` — return `null` to drop |
|
|
269
|
+
| `before_breadcrumb` | `callable` | identity | `fn(Breadcrumb $b): ?Breadcrumb` — return `null` to discard |
|
|
270
|
+
| `trace_propagation_targets` | `string[]\|null` | `null` | Downstream hosts to inject `sentry-trace` headers into; `null` = all, `[]` = none |
|
|
271
|
+
| `strict_trace_continuation` | `bool` | `false` | Only continue an incoming distributed trace if the `sentry-org_id` baggage matches the SDK’s org ID; prevents trace contamination from third-party Sentry-instrumented services (>=4.21.0) |
|
|
272
|
+
| `debug` | `bool` | `false` | Verbose SDK output (use a PSR-3 `logger` option instead for structured output) |
|
|
273
|
+
|
|
274
|
+
### Environment Variables
|
|
275
|
+
|
|
276
|
+
| Variable | Maps to | Notes |
|
|
277
|
+
| -------------------- | ------------- | ---------------------------------------------------- |
|
|
278
|
+
| `SENTRY_DSN` | `dsn` | Also `$_SERVER['SENTRY_DSN']` |
|
|
279
|
+
| `SENTRY_ENVIRONMENT` | `environment` | |
|
|
280
|
+
| `SENTRY_RELEASE` | `release` | Also reads `$_SERVER['AWS_LAMBDA_FUNCTION_VERSION']` |
|
|
281
|
+
| `SENTRY_SPOTLIGHT` | `spotlight` | |
|
|
282
|
+
|
|
283
|
+
> **Laravel note:** Uses `SENTRY_LARAVEL_DSN` (falls back to `SENTRY_DSN`). Other
|
|
284
|
+
> options follow `SENTRY_TRACES_SAMPLE_RATE`, `SENTRY_PROFILES_SAMPLE_RATE`, etc.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Verification
|
|
289
|
+
|
|
290
|
+
Test that Sentry is receiving events:
|
|
291
|
+
|
|
292
|
+
```php
|
|
293
|
+
// Trigger a real error event — check the Sentry dashboard within seconds
|
|
294
|
+
throw new \Exception('Sentry PHP SDK test');
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Or for a non-crashing check:
|
|
298
|
+
|
|
299
|
+
```php
|
|
300
|
+
\Sentry\captureMessage('Sentry PHP SDK test');
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Laravel:**
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
php artisan sentry:test
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
If nothing appears:
|
|
310
|
+
|
|
311
|
+
1. Enable debug output:
|
|
312
|
+
```php
|
|
313
|
+
\Sentry\init([
|
|
314
|
+
'dsn' => '...',
|
|
315
|
+
'logger' => new \Sentry\Logger\DebugStdOutLogger(),
|
|
316
|
+
]);
|
|
317
|
+
```
|
|
318
|
+
2. Verify the DSN is correct (format: `https://<key>@o<org>.ingest.sentry.io/<project>`)
|
|
319
|
+
3. Check `SENTRY_DSN` (or `SENTRY_LARAVEL_DSN`) env var is set in the running process
|
|
320
|
+
4. For queue workers: ensure Sentry is initialized **inside the worker process**, not
|
|
321
|
+
just the web process
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Phase 4: Cross-Link
|
|
326
|
+
|
|
327
|
+
After completing PHP setup, check for a companion frontend missing Sentry:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
ls frontend/ resources/js/ assets/ public/ 2>/dev/null
|
|
331
|
+
cat package.json frontend/package.json 2>/dev/null \
|
|
332
|
+
| grep -E '"react"|"svelte"|"vue"|"next"|"nuxt"'
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
If a frontend exists without Sentry, suggest the matching skill:
|
|
336
|
+
|
|
337
|
+
| Frontend detected | Suggest skill |
|
|
338
|
+
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
|
|
339
|
+
| React / Next.js | [`react`](../react/index.md) |
|
|
340
|
+
| Svelte / SvelteKit | [`svelte`](../svelte/index.md) |
|
|
341
|
+
| Vue / Nuxt | Use `@sentry/vue` — see [docs.sentry.io/platforms/javascript/guides/vue/](https://docs.sentry.io/platforms/javascript/guides/vue/) |
|
|
342
|
+
| Other JS/TS | [`react`](../react/index.md) (covers generic browser JS patterns) |
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Troubleshooting
|
|
347
|
+
|
|
348
|
+
| Issue | Solution |
|
|
349
|
+
| --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
350
|
+
| Events not appearing | Enable `logger` option (`DebugStdOutLogger`), verify DSN, check env vars in the running process |
|
|
351
|
+
| Malformed DSN error | Format: `https://<key>@o<org>.ingest.sentry.io/<project>` |
|
|
352
|
+
| Laravel exceptions not captured | Ensure `Integration::handles($exceptions)` is in `bootstrap/app.php` |
|
|
353
|
+
| Symfony exceptions not captured | Verify `SentryBundle` is registered in `config/bundles.php` |
|
|
354
|
+
| No traces appearing | Set `traces_sample_rate` (not `null`); confirm auto-instrumentation is enabled |
|
|
355
|
+
| Profiling not working | `excimer` extension required (Linux/macOS only; not available on Windows); requires `traces_sample_rate > 0` |
|
|
356
|
+
| `enable_logs` not working | Requires `sentry/sentry >= 4.12.0`, `sentry/sentry-laravel >= 4.15.0`, or `sentry/sentry-symfony >= 5.4.0` |
|
|
357
|
+
| Queue worker errors missing | Init Sentry in the worker process itself, not just the web process; for Laravel use `SENTRY_LARAVEL_DSN` in worker `.env` |
|
|
358
|
+
| Too many transactions | Lower `traces_sample_rate` or use `traces_sampler` to drop health check routes |
|
|
359
|
+
| PII not captured | Set `send_default_pii: true`; for Laravel set `send_default_pii: true` in `config/sentry.php` |
|
|
360
|
+
| `@`-suppressed errors missing | Set `capture_silenced_errors: true` |
|
|
361
|
+
| Cross-service traces broken | Check `trace_propagation_targets`; ensure downstream services have Sentry installed |
|
|
362
|
+
| Trace contamination from third-party services | Set `strict_trace_continuation: true` to only continue traces where the incoming `sentry-org_id` baggage matches your SDK’s org ID (>=4.21.0) |
|