[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-sentry-sdk-skill-creator":3,"mdc--m4taql-key":36,"related-org-sentry-sentry-sdk-skill-creator":2611,"related-repo-sentry-sentry-sdk-skill-creator":2787},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":31,"sourceUrl":34,"mdContent":35},"sentry-sdk-skill-creator","create Sentry SDK skill bundles","Create a complete Sentry SDK skill bundle for any platform. Use when asked to \"create an SDK skill\", \"add a new platform skill\", \"write a Sentry skill for X\", or build a new sentry-\u003Cplatform>-sdk skill bundle with wizard flow and feature reference files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"sentry","Sentry","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsentry.png","getsentry",[13,17,20,23],{"name":14,"slug":15,"type":16},"Documentation","documentation","tag",{"name":18,"slug":19,"type":16},"Technical Writing","technical-writing",{"name":21,"slug":22,"type":16},"SDK","sdk",{"name":9,"slug":8,"type":16},237,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai","2026-07-11T05:53:15.23674","Apache-2.0",30,[30],"tag-production",{"repoUrl":25,"stars":24,"forks":28,"topics":32,"description":33},[30],"Teach your AI coding assistant how to use Sentry - setup, debugging, alerts, and more","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fsentry-for-ai\u002Ftree\u002FHEAD\u002Fskills-legacy\u002Fsentry-sdk-skill-creator","---\nname: sentry-sdk-skill-creator\ndescription: Create a complete Sentry SDK skill bundle for any platform. Use when asked to \"create an SDK skill\", \"add a new platform skill\", \"write a Sentry skill for X\", or build a new sentry-\u003Cplatform>-sdk skill bundle with wizard flow and feature reference files.\nlicense: Apache-2.0\ncategory: internal\ndisable-model-invocation: true\n---\n\n> [All Skills](..\u002F..\u002FSKILL_TREE.md) > SDK Skill Creator\n\n# Create a Sentry SDK Skill Bundle\n\nProduce a complete, research-backed SDK skill bundle — a main wizard SKILL.md plus deep-dive reference files for every feature pillar the SDK supports.\n\n## Invoke This Skill When\n\n- Asked to \"create a Sentry SDK skill\" for a new platform\n- Asked to \"add support for [language\u002Fframework]\" to sentry-agent-skills\n- Building a new `sentry-\u003Cplatform>-sdk` skill bundle\n- Porting the SDK skill pattern to a new Sentry SDK\n\n> Read `${SKILL_ROOT}\u002Freferences\u002Fphilosophy.md` first — it defines the bundle architecture, wizard flow, and design principles this skill implements.\n\n---\n\n## Phase 1: Identify the SDK\n\nDetermine what you're building a skill for:\n\n```bash\n# What SDK? What's the package name?\n# Examples: sentry-go, @sentry\u002Fsveltekit, sentry-python, sentry-ruby, sentry-cocoa\n```\n\nEstablish the **feature matrix** — which Sentry pillars does this SDK support?\n\n| Pillar | Check docs | Notes |\n|--------|-----------|-------|\n| Error Monitoring | Always available | Non-negotiable baseline |\n| Tracing\u002FPerformance | Usually available | Check for span API |\n| Profiling | Varies | May be removed or experimental |\n| Logging | Newer feature | Check minimum version |\n| Metrics | Newer feature | Check minimum version |\n| Crons | Backend only | Not available for frontend SDKs |\n| Session Replay | Frontend only | Not available for backend SDKs |\n| AI Monitoring | Some SDKs | Usually JS + Python only |\n\n**Reference existing SDK skills** to understand the target quality level:\n\n```bash\nls skills\u002Fsentry-*-sdk\u002F 2>\u002Fdev\u002Fnull\n# Read 1-2 existing SDK skills for pattern reference\n```\n\n---\n\n## Phase 2: Research\n\n**This is the most critical phase.** Skill quality depends entirely on accurate, current API knowledge. Do NOT write skills from memory — research every feature against official docs.\n\n### Research Strategy\n\nSpin off **parallel research tasks** (using the `claude` tool with `outputFile`) — one per feature area. Each task should:\n1. Visit the official Sentry docs pages for that feature\n2. Visit the SDK's GitHub repo for source-level API verification\n3. Write thorough findings to a dedicated research file\n\nRead `${SKILL_ROOT}\u002Freferences\u002Fresearch-playbook.md` for the detailed research execution plan, including prompt templates and file naming conventions.\n\n### Research the Sentry Wizard\n\nBefore diving into feature research, check whether the Sentry wizard CLI supports this framework:\n\n```bash\n# Check the SDK's docs landing page for wizard instructions\n# Visit: https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002F\u003Cplatform>\u002F\n# Look for: \"npx @sentry\u002Fwizard@latest -i \u003Cintegration>\"\n```\n\nIf a wizard integration exists:\n1. Document the exact wizard command and `-i` flag\n2. Document what the wizard creates\u002Fmodifies (files, config, build plugins)\n3. Note that the wizard handles **authentication interactively** — login, org\u002Fproject selection, and auth token creation\u002Fdownload all happen automatically\n4. Note whether the wizard sets up **source map upload** — this is critical for frontend SDKs\n5. This will become \"Option 1: Wizard (Recommended)\" in Phase 3 of the generated skill\n\n> **Why this matters:** The wizard handles the entire auth flow (login, org\u002Fproject selection,\n> auth token) and source map upload configuration automatically. Without source maps,\n> production stack traces show minified code — making Sentry nearly useless for frontend\n> debugging. And without the auth token, source maps can't be uploaded at all. The wizard\n> is the most reliable way to get both right in a single step.\n\n### Research Batching\n\nBatch research tasks by topic area. Run them in parallel where possible:\n\n| Batch | Topics | Output file |\n|-------|--------|-------------|\n| 1 | Setup, configuration, all init options, framework detection | `research\u002F\u003Csdk>-setup-config.md` |\n| 2 | Error monitoring, panic\u002Fexception capture, scopes, enrichment | `research\u002F\u003Csdk>-error-monitoring.md` |\n| 3 | Tracing, profiling (if supported) | `research\u002F\u003Csdk>-tracing-profiling.md` |\n| 4 | Logging, metrics, crons (if supported) | `research\u002F\u003Csdk>-logging-metrics-crons.md` |\n| 5 | Session replay (frontend only), AI monitoring (if supported) | `research\u002F\u003Csdk>-replay-ai.md` |\n\n**Important:** Tell each research task to write its output to a file (`outputFile` parameter). Do NOT consume research results inline — they're large (500–1200 lines each). Workers will read them from disk later.\n\n### Research Quality Gate\n\nBefore proceeding, verify each research file:\n- Has actual content (not just Claude's process notes)\n- Contains code examples with real API names\n- Includes minimum SDK versions\n- Covers framework-specific variations\n\n```bash\n# Quick verification\nfor f in research\u002F\u003Csdk>-*.md; do\n  echo \"=== $(basename $f) ===\"\n  wc -l \"$f\"\n  grep -c \"^#\" \"$f\"  # should have multiple headings\ndone\n```\n\n**Re-run any research task that produced fewer than 100 lines** — it likely failed silently.\n\n---\n\n## Phase 3: Create the Main SKILL.md\n\nThe main SKILL.md implements the **four-phase wizard** from the philosophy doc. Keep it focused — the main file should cover the wizard flow, quick start config, framework tables, and reference dispatch. Deep-dive details for individual features belong in `references\u002F` files, not here. Be thorough but not redundant.\n\n### Gather Context First\n\nBefore writing, run a scout or read existing skills to understand conventions:\n- Frontmatter pattern (name, description, license)\n- \"Invoke This Skill When\" trigger phrases\n- Table formatting and code example style\n- Troubleshooting table conventions\n\n### SKILL.md Structure\n\n```markdown\n---\nname: sentry-\u003Cplatform>-sdk\ndescription: Full Sentry SDK setup for \u003CPlatform>. Use when asked to \"add Sentry\n  to \u003Cplatform>\", \"install \u003Cpackage>\", or configure error monitoring, tracing,\n  [features] for \u003CPlatform> applications. Supports [frameworks].\nlicense: Apache-2.0\n---\n\n# Sentry \u003CPlatform> SDK\n\n## Invoke This Skill When\n[trigger phrases]\n\n## Phase 1: Detect\n[bash commands to scan project — package manager, framework, existing Sentry, frontend\u002Fbackend]\n\n## Phase 2: Recommend\n[opinionated feature matrix with \"always \u002F when detected \u002F optional\" logic]\n\n## Phase 3: Guide\n### Option 1: Wizard (Recommended)   ← if wizard exists for this framework\n[blockquote telling the user to run the wizard themselves — it requires interactive browser login. Include the command in a copy-pasteable code block inside the blockquote. Tell them to come back when done. Add a line after the blockquote: \"If the user skips the wizard, proceed with Option 2 (Manual Setup) below.\"]\n### Option 2: Manual Setup            ← always include\n### Install\n### Quick Start — Recommended Init\n### Source Maps Setup                  ← required for frontend\u002Fmobile SDKs\n### Framework Middleware (if applicable)\n### For Each Agreed Feature\n[reference dispatch table: feature → ${SKILL_ROOT}\u002Freferences\u002F\u003Cfeature>.md]\n\n## Configuration Reference\n[key init options table, environment variables]\n\n## Verification\n[test snippet]\n\n## Phase 4: Cross-Link\n[detect companion frontend\u002Fbackend, suggest matching SDK skills]\n\n## Troubleshooting\n[common issues table]\n```\n\n### Key Principles for the Main SKILL.md\n\n1. **Keep it lean** — deep details go in references, not here\n2. **Wizard-first for framework SDKs** — if the Sentry wizard supports this framework, present it as \"Option 1: Wizard (Recommended)\" before any manual setup. **The wizard requires interactive browser login and cannot be run by the agent** — present it in a blockquote telling the user to copy-paste the command into their own terminal, and come back when done. If the user skips the wizard, the agent proceeds with full manual setup. See `${SKILL_ROOT}\u002Freferences\u002Fphilosophy.md` for the full pattern.\n3. **Source maps are non-negotiable for frontend\u002Fmobile** — the manual setup path must include source map upload configuration (build tool plugin + env vars). Without source maps, production stack traces are unreadable minified code.\n4. **Detection commands must be real** — test them against actual projects\n5. **Recommendation logic must be opinionated** — \"always\", \"when X detected\", not \"maybe consider\"\n6. **Quick Start config should enable the most features** with sensible defaults\n7. **Framework middleware table** — exact import paths, middleware calls, and quirks\n8. **Cross-link aggressively** — if Go backend, suggest frontend. If Svelte frontend, suggest backend.\n\n---\n\n## Phase 4: Create Reference Files\n\nOne reference file per feature pillar the SDK supports. These are deep dives — they can be longer than the main SKILL.md.\n\n### Reference File Structure\n\n```markdown\n# \u003CFeature> — Sentry \u003CPlatform> SDK\n\n> Minimum SDK: `\u003Cpackage>` vX.Y.Z+\n\n## Configuration\n\n## Code Examples\n### Basic usage\n### Advanced patterns\n### Framework-specific notes (if applicable)\n\n## Best Practices\n\n## Troubleshooting\n| Issue | Solution |\n|-------|----------|\n```\n\n### What Makes a Good Reference\n\nRead `${SKILL_ROOT}\u002Freferences\u002Fquality-checklist.md` for the full quality rubric.\n\nKey points:\n- **Working code examples** — not pseudo-code, not truncated snippets\n- **Tables for config options** — type, default, minimum version\n- **One complete example per pattern** — don't show 5 variations of the same thing\n- **Framework-specific notes** — call out when behavior differs between frameworks\n- **Minimum SDK version at the top** — always\n- **Honest about limitations** — if a feature was removed (like Go profiling), say so\n\n### Feature-Specific Guidance\n\n| Feature | Key things to cover |\n|---------|-------------------|\n| Error Monitoring | Capture APIs, panic\u002Fexception recovery, scopes, enrichment (tags\u002Fuser\u002Fbreadcrumbs), error chains, BeforeSend, fingerprinting |\n| Tracing | Sample rates, custom spans, distributed tracing, framework middleware, operation types |\n| Profiling | Sample rate config, how it attaches to traces, or honest \"removed\u002Fnot available\" |\n| Logging | Enable flag, logger API, integration with popular logging libraries, filtering |\n| Metrics | Counter\u002Fgauge\u002Fdistribution APIs, units, attributes, best practices for cardinality |\n| Crons | Check-in API, monitor config, schedule types, heartbeat patterns |\n| Session Replay | Replay integration, sample rates, privacy masking, canvas\u002Fnetwork recording |\n\n> **Note for frontend\u002Fmobile SDKs:** Source map upload configuration belongs in the main SKILL.md (Phase 3: Guide), not in a reference file. It's part of the core setup flow — every frontend production deployment needs it. Cover the build tool plugin, the required env vars (`SENTRY_AUTH_TOKEN`, `SENTRY_ORG`, `SENTRY_PROJECT`), and add `.env` to `.gitignore`.\n\n---\n\n## Phase 5: Verify Everything\n\n**Do NOT skip this phase.** SDK APIs change frequently. Research can hallucinate. Workers can fabricate config keys.\n\n### API Verification\n\nRun a dedicated verification pass against the SDK's actual source code:\n\n```\nResearch prompt: \"Verify these specific API names and signatures against\nthe \u003CSDK> GitHub repo source code: [list every API from the skill files]\"\n```\n\nThings that commonly go wrong:\n- Config option names with wrong casing (`SendDefaultPii` vs `SendDefaultPII`)\n- Fabricated config keys that don't exist (`experimental.tracing` — verify it's real)\n- Deprecated APIs used instead of modern replacements (`configureScope` → `getIsolationScope`)\n- Features listed as available when they've been removed (profiling in Go SDK)\n- Wrong minimum version numbers\n\n### Review Pass\n\nRun a reviewer on the complete skill bundle:\n- Technical accuracy of code examples\n- Consistency between main SKILL.md and reference files\n- Consistency with existing SDK skills in the repo\n- Agent Skills spec compliance (frontmatter, naming)\n\n### Fix Review Findings\n\nTriage by priority:\n- **P0**: Misleading claims (advertising removed features) — fix immediately\n- **P1**: Incorrect APIs, deprecated methods — fix before merge\n- **P2**: Style inconsistencies, version nitpicks — fix if quick\n- **P3**: Skip\n\n---\n\n## Phase 6: Register and Update Docs\n\nAfter the skill passes review:\n\n1. **Update README.md** — add to the SDK Skills table\n2. **Update AGENTS.md** — if the philosophy doc or skill categories section needs it\n3. **Add usage examples** — trigger phrases in the Usage section\n4. **Document the bundle pattern** — if this is a new SDK, note the references\u002F structure\n\n### Commit Strategy\n\nEach major piece gets its own commit:\n1. `feat(\u003Cplatform>-sdk): add sentry-\u003Cplatform>-sdk main SKILL.md wizard`\n2. `feat(\u003Cplatform>-sdk): add reference deep-dives for all feature pillars`\n3. `docs(readme): add sentry-\u003Cplatform>-sdk to available skills`\n4. `fix(skills): address review findings` (if any)\n\n---\n\n## Checklist\n\nBefore declaring the skill complete:\n\n- [ ] Philosophy doc read and followed\n- [ ] All feature pillars researched from official docs (not from memory)\n- [ ] Research files verified (real content, correct APIs, >100 lines each)\n- [ ] Main SKILL.md is focused — wizard flow + quick start + reference dispatch; deep dives in references\n- [ ] Main SKILL.md implements all 4 wizard phases\n- [ ] Wizard CLI checked — if supported, presented as \"Option 1: Wizard (Recommended)\" with auth flow + source map benefits described\n- [ ] Source map \u002F debug symbol upload covered in manual setup path (frontend\u002Fmobile SDKs)\n- [ ] Reference file for each supported feature pillar\n- [ ] APIs verified against SDK source code\n- [ ] Review pass completed, findings addressed\n- [ ] Profiling\u002Fremoved features honestly documented (not advertised)\n- [ ] Cross-links to companion frontend\u002Fbackend skills\n- [ ] README.md updated\n- [ ] All commits polished with descriptive messages\n",{"data":37,"body":40},{"name":4,"description":6,"license":27,"category":38,"disable-model-invocation":39},"internal",true,{"type":41,"children":42},"root",[43,62,69,74,81,123,139,143,149,154,185,198,373,383,435,438,444,454,461,489,508,520,526,531,563,568,618,631,637,642,779,796,802,807,830,1028,1038,1041,1047,1067,1073,1078,1101,1107,1570,1576,1673,1676,1682,1687,1693,1898,1904,1916,1921,1984,1990,2097,2149,2152,2158,2168,2174,2179,2189,2194,2260,2266,2271,2294,2300,2305,2348,2351,2357,2362,2405,2411,2416,2457,2460,2466,2471,2605],{"type":44,"tag":45,"props":46,"children":47},"element","blockquote",{},[48],{"type":44,"tag":49,"props":50,"children":51},"p",{},[52,60],{"type":44,"tag":53,"props":54,"children":56},"a",{"href":55},"..\u002F..\u002FSKILL_TREE.md",[57],{"type":58,"value":59},"text","All Skills",{"type":58,"value":61}," > SDK Skill Creator",{"type":44,"tag":63,"props":64,"children":66},"h1",{"id":65},"create-a-sentry-sdk-skill-bundle",[67],{"type":58,"value":68},"Create a Sentry SDK Skill Bundle",{"type":44,"tag":49,"props":70,"children":71},{},[72],{"type":58,"value":73},"Produce a complete, research-backed SDK skill bundle — a main wizard SKILL.md plus deep-dive reference files for every feature pillar the SDK supports.",{"type":44,"tag":75,"props":76,"children":78},"h2",{"id":77},"invoke-this-skill-when",[79],{"type":58,"value":80},"Invoke This Skill When",{"type":44,"tag":82,"props":83,"children":84},"ul",{},[85,91,104,118],{"type":44,"tag":86,"props":87,"children":88},"li",{},[89],{"type":58,"value":90},"Asked to \"create a Sentry SDK skill\" for a new platform",{"type":44,"tag":86,"props":92,"children":93},{},[94,96,102],{"type":58,"value":95},"Asked to \"add support for ",{"type":44,"tag":97,"props":98,"children":99},"span",{},[100],{"type":58,"value":101},"language\u002Fframework",{"type":58,"value":103},"\" to sentry-agent-skills",{"type":44,"tag":86,"props":105,"children":106},{},[107,109,116],{"type":58,"value":108},"Building a new ",{"type":44,"tag":110,"props":111,"children":113},"code",{"className":112},[],[114],{"type":58,"value":115},"sentry-\u003Cplatform>-sdk",{"type":58,"value":117}," skill bundle",{"type":44,"tag":86,"props":119,"children":120},{},[121],{"type":58,"value":122},"Porting the SDK skill pattern to a new Sentry SDK",{"type":44,"tag":45,"props":124,"children":125},{},[126],{"type":44,"tag":49,"props":127,"children":128},{},[129,131,137],{"type":58,"value":130},"Read ",{"type":44,"tag":110,"props":132,"children":134},{"className":133},[],[135],{"type":58,"value":136},"${SKILL_ROOT}\u002Freferences\u002Fphilosophy.md",{"type":58,"value":138}," first — it defines the bundle architecture, wizard flow, and design principles this skill implements.",{"type":44,"tag":140,"props":141,"children":142},"hr",{},[],{"type":44,"tag":75,"props":144,"children":146},{"id":145},"phase-1-identify-the-sdk",[147],{"type":58,"value":148},"Phase 1: Identify the SDK",{"type":44,"tag":49,"props":150,"children":151},{},[152],{"type":58,"value":153},"Determine what you're building a skill for:",{"type":44,"tag":155,"props":156,"children":161},"pre",{"className":157,"code":158,"language":159,"meta":160,"style":160},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# What SDK? What's the package name?\n# Examples: sentry-go, @sentry\u002Fsveltekit, sentry-python, sentry-ruby, sentry-cocoa\n","bash","",[162],{"type":44,"tag":110,"props":163,"children":164},{"__ignoreMap":160},[165,176],{"type":44,"tag":97,"props":166,"children":169},{"class":167,"line":168},"line",1,[170],{"type":44,"tag":97,"props":171,"children":173},{"style":172},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[174],{"type":58,"value":175},"# What SDK? What's the package name?\n",{"type":44,"tag":97,"props":177,"children":179},{"class":167,"line":178},2,[180],{"type":44,"tag":97,"props":181,"children":182},{"style":172},[183],{"type":58,"value":184},"# Examples: sentry-go, @sentry\u002Fsveltekit, sentry-python, sentry-ruby, sentry-cocoa\n",{"type":44,"tag":49,"props":186,"children":187},{},[188,190,196],{"type":58,"value":189},"Establish the ",{"type":44,"tag":191,"props":192,"children":193},"strong",{},[194],{"type":58,"value":195},"feature matrix",{"type":58,"value":197}," — which Sentry pillars does this SDK support?",{"type":44,"tag":199,"props":200,"children":201},"table",{},[202,226],{"type":44,"tag":203,"props":204,"children":205},"thead",{},[206],{"type":44,"tag":207,"props":208,"children":209},"tr",{},[210,216,221],{"type":44,"tag":211,"props":212,"children":213},"th",{},[214],{"type":58,"value":215},"Pillar",{"type":44,"tag":211,"props":217,"children":218},{},[219],{"type":58,"value":220},"Check docs",{"type":44,"tag":211,"props":222,"children":223},{},[224],{"type":58,"value":225},"Notes",{"type":44,"tag":227,"props":228,"children":229},"tbody",{},[230,249,267,285,303,319,337,355],{"type":44,"tag":207,"props":231,"children":232},{},[233,239,244],{"type":44,"tag":234,"props":235,"children":236},"td",{},[237],{"type":58,"value":238},"Error Monitoring",{"type":44,"tag":234,"props":240,"children":241},{},[242],{"type":58,"value":243},"Always available",{"type":44,"tag":234,"props":245,"children":246},{},[247],{"type":58,"value":248},"Non-negotiable baseline",{"type":44,"tag":207,"props":250,"children":251},{},[252,257,262],{"type":44,"tag":234,"props":253,"children":254},{},[255],{"type":58,"value":256},"Tracing\u002FPerformance",{"type":44,"tag":234,"props":258,"children":259},{},[260],{"type":58,"value":261},"Usually available",{"type":44,"tag":234,"props":263,"children":264},{},[265],{"type":58,"value":266},"Check for span API",{"type":44,"tag":207,"props":268,"children":269},{},[270,275,280],{"type":44,"tag":234,"props":271,"children":272},{},[273],{"type":58,"value":274},"Profiling",{"type":44,"tag":234,"props":276,"children":277},{},[278],{"type":58,"value":279},"Varies",{"type":44,"tag":234,"props":281,"children":282},{},[283],{"type":58,"value":284},"May be removed or experimental",{"type":44,"tag":207,"props":286,"children":287},{},[288,293,298],{"type":44,"tag":234,"props":289,"children":290},{},[291],{"type":58,"value":292},"Logging",{"type":44,"tag":234,"props":294,"children":295},{},[296],{"type":58,"value":297},"Newer feature",{"type":44,"tag":234,"props":299,"children":300},{},[301],{"type":58,"value":302},"Check minimum version",{"type":44,"tag":207,"props":304,"children":305},{},[306,311,315],{"type":44,"tag":234,"props":307,"children":308},{},[309],{"type":58,"value":310},"Metrics",{"type":44,"tag":234,"props":312,"children":313},{},[314],{"type":58,"value":297},{"type":44,"tag":234,"props":316,"children":317},{},[318],{"type":58,"value":302},{"type":44,"tag":207,"props":320,"children":321},{},[322,327,332],{"type":44,"tag":234,"props":323,"children":324},{},[325],{"type":58,"value":326},"Crons",{"type":44,"tag":234,"props":328,"children":329},{},[330],{"type":58,"value":331},"Backend only",{"type":44,"tag":234,"props":333,"children":334},{},[335],{"type":58,"value":336},"Not available for frontend SDKs",{"type":44,"tag":207,"props":338,"children":339},{},[340,345,350],{"type":44,"tag":234,"props":341,"children":342},{},[343],{"type":58,"value":344},"Session Replay",{"type":44,"tag":234,"props":346,"children":347},{},[348],{"type":58,"value":349},"Frontend only",{"type":44,"tag":234,"props":351,"children":352},{},[353],{"type":58,"value":354},"Not available for backend SDKs",{"type":44,"tag":207,"props":356,"children":357},{},[358,363,368],{"type":44,"tag":234,"props":359,"children":360},{},[361],{"type":58,"value":362},"AI Monitoring",{"type":44,"tag":234,"props":364,"children":365},{},[366],{"type":58,"value":367},"Some SDKs",{"type":44,"tag":234,"props":369,"children":370},{},[371],{"type":58,"value":372},"Usually JS + Python only",{"type":44,"tag":49,"props":374,"children":375},{},[376,381],{"type":44,"tag":191,"props":377,"children":378},{},[379],{"type":58,"value":380},"Reference existing SDK skills",{"type":58,"value":382}," to understand the target quality level:",{"type":44,"tag":155,"props":384,"children":386},{"className":157,"code":385,"language":159,"meta":160,"style":160},"ls skills\u002Fsentry-*-sdk\u002F 2>\u002Fdev\u002Fnull\n# Read 1-2 existing SDK skills for pattern reference\n",[387],{"type":44,"tag":110,"props":388,"children":389},{"__ignoreMap":160},[390,427],{"type":44,"tag":97,"props":391,"children":392},{"class":167,"line":168},[393,399,405,411,416,422],{"type":44,"tag":97,"props":394,"children":396},{"style":395},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[397],{"type":58,"value":398},"ls",{"type":44,"tag":97,"props":400,"children":402},{"style":401},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[403],{"type":58,"value":404}," skills\u002Fsentry-",{"type":44,"tag":97,"props":406,"children":408},{"style":407},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[409],{"type":58,"value":410},"*",{"type":44,"tag":97,"props":412,"children":413},{"style":401},[414],{"type":58,"value":415},"-sdk\u002F",{"type":44,"tag":97,"props":417,"children":419},{"style":418},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[420],{"type":58,"value":421}," 2>",{"type":44,"tag":97,"props":423,"children":424},{"style":401},[425],{"type":58,"value":426},"\u002Fdev\u002Fnull\n",{"type":44,"tag":97,"props":428,"children":429},{"class":167,"line":178},[430],{"type":44,"tag":97,"props":431,"children":432},{"style":172},[433],{"type":58,"value":434},"# Read 1-2 existing SDK skills for pattern reference\n",{"type":44,"tag":140,"props":436,"children":437},{},[],{"type":44,"tag":75,"props":439,"children":441},{"id":440},"phase-2-research",[442],{"type":58,"value":443},"Phase 2: Research",{"type":44,"tag":49,"props":445,"children":446},{},[447,452],{"type":44,"tag":191,"props":448,"children":449},{},[450],{"type":58,"value":451},"This is the most critical phase.",{"type":58,"value":453}," Skill quality depends entirely on accurate, current API knowledge. Do NOT write skills from memory — research every feature against official docs.",{"type":44,"tag":455,"props":456,"children":458},"h3",{"id":457},"research-strategy",[459],{"type":58,"value":460},"Research Strategy",{"type":44,"tag":49,"props":462,"children":463},{},[464,466,471,473,479,481,487],{"type":58,"value":465},"Spin off ",{"type":44,"tag":191,"props":467,"children":468},{},[469],{"type":58,"value":470},"parallel research tasks",{"type":58,"value":472}," (using the ",{"type":44,"tag":110,"props":474,"children":476},{"className":475},[],[477],{"type":58,"value":478},"claude",{"type":58,"value":480}," tool with ",{"type":44,"tag":110,"props":482,"children":484},{"className":483},[],[485],{"type":58,"value":486},"outputFile",{"type":58,"value":488},") — one per feature area. Each task should:",{"type":44,"tag":490,"props":491,"children":492},"ol",{},[493,498,503],{"type":44,"tag":86,"props":494,"children":495},{},[496],{"type":58,"value":497},"Visit the official Sentry docs pages for that feature",{"type":44,"tag":86,"props":499,"children":500},{},[501],{"type":58,"value":502},"Visit the SDK's GitHub repo for source-level API verification",{"type":44,"tag":86,"props":504,"children":505},{},[506],{"type":58,"value":507},"Write thorough findings to a dedicated research file",{"type":44,"tag":49,"props":509,"children":510},{},[511,512,518],{"type":58,"value":130},{"type":44,"tag":110,"props":513,"children":515},{"className":514},[],[516],{"type":58,"value":517},"${SKILL_ROOT}\u002Freferences\u002Fresearch-playbook.md",{"type":58,"value":519}," for the detailed research execution plan, including prompt templates and file naming conventions.",{"type":44,"tag":455,"props":521,"children":523},{"id":522},"research-the-sentry-wizard",[524],{"type":58,"value":525},"Research the Sentry Wizard",{"type":44,"tag":49,"props":527,"children":528},{},[529],{"type":58,"value":530},"Before diving into feature research, check whether the Sentry wizard CLI supports this framework:",{"type":44,"tag":155,"props":532,"children":534},{"className":157,"code":533,"language":159,"meta":160,"style":160},"# Check the SDK's docs landing page for wizard instructions\n# Visit: https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002F\u003Cplatform>\u002F\n# Look for: \"npx @sentry\u002Fwizard@latest -i \u003Cintegration>\"\n",[535],{"type":44,"tag":110,"props":536,"children":537},{"__ignoreMap":160},[538,546,554],{"type":44,"tag":97,"props":539,"children":540},{"class":167,"line":168},[541],{"type":44,"tag":97,"props":542,"children":543},{"style":172},[544],{"type":58,"value":545},"# Check the SDK's docs landing page for wizard instructions\n",{"type":44,"tag":97,"props":547,"children":548},{"class":167,"line":178},[549],{"type":44,"tag":97,"props":550,"children":551},{"style":172},[552],{"type":58,"value":553},"# Visit: https:\u002F\u002Fdocs.sentry.io\u002Fplatforms\u002F\u003Cplatform>\u002F\n",{"type":44,"tag":97,"props":555,"children":557},{"class":167,"line":556},3,[558],{"type":44,"tag":97,"props":559,"children":560},{"style":172},[561],{"type":58,"value":562},"# Look for: \"npx @sentry\u002Fwizard@latest -i \u003Cintegration>\"\n",{"type":44,"tag":49,"props":564,"children":565},{},[566],{"type":58,"value":567},"If a wizard integration exists:",{"type":44,"tag":490,"props":569,"children":570},{},[571,584,589,601,613],{"type":44,"tag":86,"props":572,"children":573},{},[574,576,582],{"type":58,"value":575},"Document the exact wizard command and ",{"type":44,"tag":110,"props":577,"children":579},{"className":578},[],[580],{"type":58,"value":581},"-i",{"type":58,"value":583}," flag",{"type":44,"tag":86,"props":585,"children":586},{},[587],{"type":58,"value":588},"Document what the wizard creates\u002Fmodifies (files, config, build plugins)",{"type":44,"tag":86,"props":590,"children":591},{},[592,594,599],{"type":58,"value":593},"Note that the wizard handles ",{"type":44,"tag":191,"props":595,"children":596},{},[597],{"type":58,"value":598},"authentication interactively",{"type":58,"value":600}," — login, org\u002Fproject selection, and auth token creation\u002Fdownload all happen automatically",{"type":44,"tag":86,"props":602,"children":603},{},[604,606,611],{"type":58,"value":605},"Note whether the wizard sets up ",{"type":44,"tag":191,"props":607,"children":608},{},[609],{"type":58,"value":610},"source map upload",{"type":58,"value":612}," — this is critical for frontend SDKs",{"type":44,"tag":86,"props":614,"children":615},{},[616],{"type":58,"value":617},"This will become \"Option 1: Wizard (Recommended)\" in Phase 3 of the generated skill",{"type":44,"tag":45,"props":619,"children":620},{},[621],{"type":44,"tag":49,"props":622,"children":623},{},[624,629],{"type":44,"tag":191,"props":625,"children":626},{},[627],{"type":58,"value":628},"Why this matters:",{"type":58,"value":630}," The wizard handles the entire auth flow (login, org\u002Fproject selection,\nauth token) and source map upload configuration automatically. Without source maps,\nproduction stack traces show minified code — making Sentry nearly useless for frontend\ndebugging. And without the auth token, source maps can't be uploaded at all. The wizard\nis the most reliable way to get both right in a single step.",{"type":44,"tag":455,"props":632,"children":634},{"id":633},"research-batching",[635],{"type":58,"value":636},"Research Batching",{"type":44,"tag":49,"props":638,"children":639},{},[640],{"type":58,"value":641},"Batch research tasks by topic area. Run them in parallel where possible:",{"type":44,"tag":199,"props":643,"children":644},{},[645,666],{"type":44,"tag":203,"props":646,"children":647},{},[648],{"type":44,"tag":207,"props":649,"children":650},{},[651,656,661],{"type":44,"tag":211,"props":652,"children":653},{},[654],{"type":58,"value":655},"Batch",{"type":44,"tag":211,"props":657,"children":658},{},[659],{"type":58,"value":660},"Topics",{"type":44,"tag":211,"props":662,"children":663},{},[664],{"type":58,"value":665},"Output file",{"type":44,"tag":227,"props":667,"children":668},{},[669,691,713,735,757],{"type":44,"tag":207,"props":670,"children":671},{},[672,677,682],{"type":44,"tag":234,"props":673,"children":674},{},[675],{"type":58,"value":676},"1",{"type":44,"tag":234,"props":678,"children":679},{},[680],{"type":58,"value":681},"Setup, configuration, all init options, framework detection",{"type":44,"tag":234,"props":683,"children":684},{},[685],{"type":44,"tag":110,"props":686,"children":688},{"className":687},[],[689],{"type":58,"value":690},"research\u002F\u003Csdk>-setup-config.md",{"type":44,"tag":207,"props":692,"children":693},{},[694,699,704],{"type":44,"tag":234,"props":695,"children":696},{},[697],{"type":58,"value":698},"2",{"type":44,"tag":234,"props":700,"children":701},{},[702],{"type":58,"value":703},"Error monitoring, panic\u002Fexception capture, scopes, enrichment",{"type":44,"tag":234,"props":705,"children":706},{},[707],{"type":44,"tag":110,"props":708,"children":710},{"className":709},[],[711],{"type":58,"value":712},"research\u002F\u003Csdk>-error-monitoring.md",{"type":44,"tag":207,"props":714,"children":715},{},[716,721,726],{"type":44,"tag":234,"props":717,"children":718},{},[719],{"type":58,"value":720},"3",{"type":44,"tag":234,"props":722,"children":723},{},[724],{"type":58,"value":725},"Tracing, profiling (if supported)",{"type":44,"tag":234,"props":727,"children":728},{},[729],{"type":44,"tag":110,"props":730,"children":732},{"className":731},[],[733],{"type":58,"value":734},"research\u002F\u003Csdk>-tracing-profiling.md",{"type":44,"tag":207,"props":736,"children":737},{},[738,743,748],{"type":44,"tag":234,"props":739,"children":740},{},[741],{"type":58,"value":742},"4",{"type":44,"tag":234,"props":744,"children":745},{},[746],{"type":58,"value":747},"Logging, metrics, crons (if supported)",{"type":44,"tag":234,"props":749,"children":750},{},[751],{"type":44,"tag":110,"props":752,"children":754},{"className":753},[],[755],{"type":58,"value":756},"research\u002F\u003Csdk>-logging-metrics-crons.md",{"type":44,"tag":207,"props":758,"children":759},{},[760,765,770],{"type":44,"tag":234,"props":761,"children":762},{},[763],{"type":58,"value":764},"5",{"type":44,"tag":234,"props":766,"children":767},{},[768],{"type":58,"value":769},"Session replay (frontend only), AI monitoring (if supported)",{"type":44,"tag":234,"props":771,"children":772},{},[773],{"type":44,"tag":110,"props":774,"children":776},{"className":775},[],[777],{"type":58,"value":778},"research\u002F\u003Csdk>-replay-ai.md",{"type":44,"tag":49,"props":780,"children":781},{},[782,787,789,794],{"type":44,"tag":191,"props":783,"children":784},{},[785],{"type":58,"value":786},"Important:",{"type":58,"value":788}," Tell each research task to write its output to a file (",{"type":44,"tag":110,"props":790,"children":792},{"className":791},[],[793],{"type":58,"value":486},{"type":58,"value":795}," parameter). Do NOT consume research results inline — they're large (500–1200 lines each). Workers will read them from disk later.",{"type":44,"tag":455,"props":797,"children":799},{"id":798},"research-quality-gate",[800],{"type":58,"value":801},"Research Quality Gate",{"type":44,"tag":49,"props":803,"children":804},{},[805],{"type":58,"value":806},"Before proceeding, verify each research file:",{"type":44,"tag":82,"props":808,"children":809},{},[810,815,820,825],{"type":44,"tag":86,"props":811,"children":812},{},[813],{"type":58,"value":814},"Has actual content (not just Claude's process notes)",{"type":44,"tag":86,"props":816,"children":817},{},[818],{"type":58,"value":819},"Contains code examples with real API names",{"type":44,"tag":86,"props":821,"children":822},{},[823],{"type":58,"value":824},"Includes minimum SDK versions",{"type":44,"tag":86,"props":826,"children":827},{},[828],{"type":58,"value":829},"Covers framework-specific variations",{"type":44,"tag":155,"props":831,"children":833},{"className":157,"code":832,"language":159,"meta":160,"style":160},"# Quick verification\nfor f in research\u002F\u003Csdk>-*.md; do\n  echo \"=== $(basename $f) ===\"\n  wc -l \"$f\"\n  grep -c \"^#\" \"$f\"  # should have multiple headings\ndone\n",[834],{"type":44,"tag":110,"props":835,"children":836},{"__ignoreMap":160},[837,845,898,947,974,1019],{"type":44,"tag":97,"props":838,"children":839},{"class":167,"line":168},[840],{"type":44,"tag":97,"props":841,"children":842},{"style":172},[843],{"type":58,"value":844},"# Quick verification\n",{"type":44,"tag":97,"props":846,"children":847},{"class":167,"line":178},[848,854,859,864,869,874,878,883,888,893],{"type":44,"tag":97,"props":849,"children":851},{"style":850},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[852],{"type":58,"value":853},"for",{"type":44,"tag":97,"props":855,"children":856},{"style":407},[857],{"type":58,"value":858}," f ",{"type":44,"tag":97,"props":860,"children":861},{"style":850},[862],{"type":58,"value":863},"in",{"type":44,"tag":97,"props":865,"children":866},{"style":401},[867],{"type":58,"value":868}," research\u002F",{"type":44,"tag":97,"props":870,"children":871},{"style":418},[872],{"type":58,"value":873},"\u003C",{"type":44,"tag":97,"props":875,"children":876},{"style":401},[877],{"type":58,"value":22},{"type":44,"tag":97,"props":879,"children":880},{"style":418},[881],{"type":58,"value":882},">",{"type":44,"tag":97,"props":884,"children":885},{"style":401},[886],{"type":58,"value":887},"-*.md",{"type":44,"tag":97,"props":889,"children":890},{"style":418},[891],{"type":58,"value":892},";",{"type":44,"tag":97,"props":894,"children":895},{"style":850},[896],{"type":58,"value":897}," do\n",{"type":44,"tag":97,"props":899,"children":900},{"class":167,"line":556},[901,907,912,917,922,927,932,937,942],{"type":44,"tag":97,"props":902,"children":904},{"style":903},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[905],{"type":58,"value":906},"  echo",{"type":44,"tag":97,"props":908,"children":909},{"style":418},[910],{"type":58,"value":911}," \"",{"type":44,"tag":97,"props":913,"children":914},{"style":401},[915],{"type":58,"value":916},"=== ",{"type":44,"tag":97,"props":918,"children":919},{"style":418},[920],{"type":58,"value":921},"$(",{"type":44,"tag":97,"props":923,"children":924},{"style":395},[925],{"type":58,"value":926},"basename",{"type":44,"tag":97,"props":928,"children":929},{"style":407},[930],{"type":58,"value":931}," $f",{"type":44,"tag":97,"props":933,"children":934},{"style":418},[935],{"type":58,"value":936},")",{"type":44,"tag":97,"props":938,"children":939},{"style":401},[940],{"type":58,"value":941}," ===",{"type":44,"tag":97,"props":943,"children":944},{"style":418},[945],{"type":58,"value":946},"\"\n",{"type":44,"tag":97,"props":948,"children":950},{"class":167,"line":949},4,[951,956,961,965,970],{"type":44,"tag":97,"props":952,"children":953},{"style":395},[954],{"type":58,"value":955},"  wc",{"type":44,"tag":97,"props":957,"children":958},{"style":401},[959],{"type":58,"value":960}," -l",{"type":44,"tag":97,"props":962,"children":963},{"style":418},[964],{"type":58,"value":911},{"type":44,"tag":97,"props":966,"children":967},{"style":407},[968],{"type":58,"value":969},"$f",{"type":44,"tag":97,"props":971,"children":972},{"style":418},[973],{"type":58,"value":946},{"type":44,"tag":97,"props":975,"children":977},{"class":167,"line":976},5,[978,983,988,992,997,1002,1006,1010,1014],{"type":44,"tag":97,"props":979,"children":980},{"style":395},[981],{"type":58,"value":982},"  grep",{"type":44,"tag":97,"props":984,"children":985},{"style":401},[986],{"type":58,"value":987}," -c",{"type":44,"tag":97,"props":989,"children":990},{"style":418},[991],{"type":58,"value":911},{"type":44,"tag":97,"props":993,"children":994},{"style":401},[995],{"type":58,"value":996},"^#",{"type":44,"tag":97,"props":998,"children":999},{"style":418},[1000],{"type":58,"value":1001},"\"",{"type":44,"tag":97,"props":1003,"children":1004},{"style":418},[1005],{"type":58,"value":911},{"type":44,"tag":97,"props":1007,"children":1008},{"style":407},[1009],{"type":58,"value":969},{"type":44,"tag":97,"props":1011,"children":1012},{"style":418},[1013],{"type":58,"value":1001},{"type":44,"tag":97,"props":1015,"children":1016},{"style":172},[1017],{"type":58,"value":1018},"  # should have multiple headings\n",{"type":44,"tag":97,"props":1020,"children":1022},{"class":167,"line":1021},6,[1023],{"type":44,"tag":97,"props":1024,"children":1025},{"style":850},[1026],{"type":58,"value":1027},"done\n",{"type":44,"tag":49,"props":1029,"children":1030},{},[1031,1036],{"type":44,"tag":191,"props":1032,"children":1033},{},[1034],{"type":58,"value":1035},"Re-run any research task that produced fewer than 100 lines",{"type":58,"value":1037}," — it likely failed silently.",{"type":44,"tag":140,"props":1039,"children":1040},{},[],{"type":44,"tag":75,"props":1042,"children":1044},{"id":1043},"phase-3-create-the-main-skillmd",[1045],{"type":58,"value":1046},"Phase 3: Create the Main SKILL.md",{"type":44,"tag":49,"props":1048,"children":1049},{},[1050,1052,1057,1059,1065],{"type":58,"value":1051},"The main SKILL.md implements the ",{"type":44,"tag":191,"props":1053,"children":1054},{},[1055],{"type":58,"value":1056},"four-phase wizard",{"type":58,"value":1058}," from the philosophy doc. Keep it focused — the main file should cover the wizard flow, quick start config, framework tables, and reference dispatch. Deep-dive details for individual features belong in ",{"type":44,"tag":110,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":58,"value":1064},"references\u002F",{"type":58,"value":1066}," files, not here. Be thorough but not redundant.",{"type":44,"tag":455,"props":1068,"children":1070},{"id":1069},"gather-context-first",[1071],{"type":58,"value":1072},"Gather Context First",{"type":44,"tag":49,"props":1074,"children":1075},{},[1076],{"type":58,"value":1077},"Before writing, run a scout or read existing skills to understand conventions:",{"type":44,"tag":82,"props":1079,"children":1080},{},[1081,1086,1091,1096],{"type":44,"tag":86,"props":1082,"children":1083},{},[1084],{"type":58,"value":1085},"Frontmatter pattern (name, description, license)",{"type":44,"tag":86,"props":1087,"children":1088},{},[1089],{"type":58,"value":1090},"\"Invoke This Skill When\" trigger phrases",{"type":44,"tag":86,"props":1092,"children":1093},{},[1094],{"type":58,"value":1095},"Table formatting and code example style",{"type":44,"tag":86,"props":1097,"children":1098},{},[1099],{"type":58,"value":1100},"Troubleshooting table conventions",{"type":44,"tag":455,"props":1102,"children":1104},{"id":1103},"skillmd-structure",[1105],{"type":58,"value":1106},"SKILL.md Structure",{"type":44,"tag":155,"props":1108,"children":1112},{"className":1109,"code":1110,"language":1111,"meta":160,"style":160},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\nname: sentry-\u003Cplatform>-sdk\ndescription: Full Sentry SDK setup for \u003CPlatform>. Use when asked to \"add Sentry\n  to \u003Cplatform>\", \"install \u003Cpackage>\", or configure error monitoring, tracing,\n  [features] for \u003CPlatform> applications. Supports [frameworks].\nlicense: Apache-2.0\n---\n\n# Sentry \u003CPlatform> SDK\n\n## Invoke This Skill When\n[trigger phrases]\n\n## Phase 1: Detect\n[bash commands to scan project — package manager, framework, existing Sentry, frontend\u002Fbackend]\n\n## Phase 2: Recommend\n[opinionated feature matrix with \"always \u002F when detected \u002F optional\" logic]\n\n## Phase 3: Guide\n### Option 1: Wizard (Recommended)   ← if wizard exists for this framework\n[blockquote telling the user to run the wizard themselves — it requires interactive browser login. Include the command in a copy-pasteable code block inside the blockquote. Tell them to come back when done. Add a line after the blockquote: \"If the user skips the wizard, proceed with Option 2 (Manual Setup) below.\"]\n### Option 2: Manual Setup            ← always include\n### Install\n### Quick Start — Recommended Init\n### Source Maps Setup                  ← required for frontend\u002Fmobile SDKs\n### Framework Middleware (if applicable)\n### For Each Agreed Feature\n[reference dispatch table: feature → ${SKILL_ROOT}\u002Freferences\u002F\u003Cfeature>.md]\n\n## Configuration Reference\n[key init options table, environment variables]\n\n## Verification\n[test snippet]\n\n## Phase 4: Cross-Link\n[detect companion frontend\u002Fbackend, suggest matching SDK skills]\n\n## Troubleshooting\n[common issues table]\n","markdown",[1113],{"type":44,"tag":110,"props":1114,"children":1115},{"__ignoreMap":160},[1116,1124,1132,1140,1148,1190,1198,1206,1215,1229,1237,1251,1260,1268,1281,1290,1298,1311,1320,1328,1341,1355,1364,1377,1390,1403,1416,1429,1442,1451,1458,1471,1480,1488,1501,1510,1518,1531,1540,1548,1561],{"type":44,"tag":97,"props":1117,"children":1118},{"class":167,"line":168},[1119],{"type":44,"tag":97,"props":1120,"children":1121},{"style":407},[1122],{"type":58,"value":1123},"---\n",{"type":44,"tag":97,"props":1125,"children":1126},{"class":167,"line":178},[1127],{"type":44,"tag":97,"props":1128,"children":1129},{"style":407},[1130],{"type":58,"value":1131},"name: sentry-\u003Cplatform>-sdk\n",{"type":44,"tag":97,"props":1133,"children":1134},{"class":167,"line":556},[1135],{"type":44,"tag":97,"props":1136,"children":1137},{"style":407},[1138],{"type":58,"value":1139},"description: Full Sentry SDK setup for \u003CPlatform>. Use when asked to \"add Sentry\n",{"type":44,"tag":97,"props":1141,"children":1142},{"class":167,"line":949},[1143],{"type":44,"tag":97,"props":1144,"children":1145},{"style":407},[1146],{"type":58,"value":1147},"  to \u003Cplatform>\", \"install \u003Cpackage>\", or configure error monitoring, tracing,\n",{"type":44,"tag":97,"props":1149,"children":1150},{"class":167,"line":976},[1151,1156,1161,1166,1171,1176,1181,1185],{"type":44,"tag":97,"props":1152,"children":1153},{"style":418},[1154],{"type":58,"value":1155},"  [",{"type":44,"tag":97,"props":1157,"children":1158},{"style":401},[1159],{"type":58,"value":1160},"features",{"type":44,"tag":97,"props":1162,"children":1163},{"style":418},[1164],{"type":58,"value":1165},"]",{"type":44,"tag":97,"props":1167,"children":1168},{"style":407},[1169],{"type":58,"value":1170}," for \u003CPlatform> applications. Supports ",{"type":44,"tag":97,"props":1172,"children":1173},{"style":418},[1174],{"type":58,"value":1175},"[",{"type":44,"tag":97,"props":1177,"children":1178},{"style":401},[1179],{"type":58,"value":1180},"frameworks",{"type":44,"tag":97,"props":1182,"children":1183},{"style":418},[1184],{"type":58,"value":1165},{"type":44,"tag":97,"props":1186,"children":1187},{"style":407},[1188],{"type":58,"value":1189},".\n",{"type":44,"tag":97,"props":1191,"children":1192},{"class":167,"line":1021},[1193],{"type":44,"tag":97,"props":1194,"children":1195},{"style":407},[1196],{"type":58,"value":1197},"license: Apache-2.0\n",{"type":44,"tag":97,"props":1199,"children":1201},{"class":167,"line":1200},7,[1202],{"type":44,"tag":97,"props":1203,"children":1204},{"style":418},[1205],{"type":58,"value":1123},{"type":44,"tag":97,"props":1207,"children":1209},{"class":167,"line":1208},8,[1210],{"type":44,"tag":97,"props":1211,"children":1212},{"emptyLinePlaceholder":39},[1213],{"type":58,"value":1214},"\n",{"type":44,"tag":97,"props":1216,"children":1218},{"class":167,"line":1217},9,[1219,1224],{"type":44,"tag":97,"props":1220,"children":1221},{"style":418},[1222],{"type":58,"value":1223},"# ",{"type":44,"tag":97,"props":1225,"children":1226},{"style":395},[1227],{"type":58,"value":1228},"Sentry \u003CPlatform> SDK\n",{"type":44,"tag":97,"props":1230,"children":1232},{"class":167,"line":1231},10,[1233],{"type":44,"tag":97,"props":1234,"children":1235},{"emptyLinePlaceholder":39},[1236],{"type":58,"value":1214},{"type":44,"tag":97,"props":1238,"children":1240},{"class":167,"line":1239},11,[1241,1246],{"type":44,"tag":97,"props":1242,"children":1243},{"style":418},[1244],{"type":58,"value":1245},"## ",{"type":44,"tag":97,"props":1247,"children":1248},{"style":395},[1249],{"type":58,"value":1250},"Invoke This Skill When\n",{"type":44,"tag":97,"props":1252,"children":1254},{"class":167,"line":1253},12,[1255],{"type":44,"tag":97,"props":1256,"children":1257},{"style":407},[1258],{"type":58,"value":1259},"[trigger phrases]\n",{"type":44,"tag":97,"props":1261,"children":1263},{"class":167,"line":1262},13,[1264],{"type":44,"tag":97,"props":1265,"children":1266},{"emptyLinePlaceholder":39},[1267],{"type":58,"value":1214},{"type":44,"tag":97,"props":1269,"children":1271},{"class":167,"line":1270},14,[1272,1276],{"type":44,"tag":97,"props":1273,"children":1274},{"style":418},[1275],{"type":58,"value":1245},{"type":44,"tag":97,"props":1277,"children":1278},{"style":395},[1279],{"type":58,"value":1280},"Phase 1: Detect\n",{"type":44,"tag":97,"props":1282,"children":1284},{"class":167,"line":1283},15,[1285],{"type":44,"tag":97,"props":1286,"children":1287},{"style":407},[1288],{"type":58,"value":1289},"[bash commands to scan project — package manager, framework, existing Sentry, frontend\u002Fbackend]\n",{"type":44,"tag":97,"props":1291,"children":1293},{"class":167,"line":1292},16,[1294],{"type":44,"tag":97,"props":1295,"children":1296},{"emptyLinePlaceholder":39},[1297],{"type":58,"value":1214},{"type":44,"tag":97,"props":1299,"children":1301},{"class":167,"line":1300},17,[1302,1306],{"type":44,"tag":97,"props":1303,"children":1304},{"style":418},[1305],{"type":58,"value":1245},{"type":44,"tag":97,"props":1307,"children":1308},{"style":395},[1309],{"type":58,"value":1310},"Phase 2: Recommend\n",{"type":44,"tag":97,"props":1312,"children":1314},{"class":167,"line":1313},18,[1315],{"type":44,"tag":97,"props":1316,"children":1317},{"style":407},[1318],{"type":58,"value":1319},"[opinionated feature matrix with \"always \u002F when detected \u002F optional\" logic]\n",{"type":44,"tag":97,"props":1321,"children":1323},{"class":167,"line":1322},19,[1324],{"type":44,"tag":97,"props":1325,"children":1326},{"emptyLinePlaceholder":39},[1327],{"type":58,"value":1214},{"type":44,"tag":97,"props":1329,"children":1331},{"class":167,"line":1330},20,[1332,1336],{"type":44,"tag":97,"props":1333,"children":1334},{"style":418},[1335],{"type":58,"value":1245},{"type":44,"tag":97,"props":1337,"children":1338},{"style":395},[1339],{"type":58,"value":1340},"Phase 3: Guide\n",{"type":44,"tag":97,"props":1342,"children":1344},{"class":167,"line":1343},21,[1345,1350],{"type":44,"tag":97,"props":1346,"children":1347},{"style":418},[1348],{"type":58,"value":1349},"### ",{"type":44,"tag":97,"props":1351,"children":1352},{"style":395},[1353],{"type":58,"value":1354},"Option 1: Wizard (Recommended)   ← if wizard exists for this framework\n",{"type":44,"tag":97,"props":1356,"children":1358},{"class":167,"line":1357},22,[1359],{"type":44,"tag":97,"props":1360,"children":1361},{"style":407},[1362],{"type":58,"value":1363},"[blockquote telling the user to run the wizard themselves — it requires interactive browser login. Include the command in a copy-pasteable code block inside the blockquote. Tell them to come back when done. Add a line after the blockquote: \"If the user skips the wizard, proceed with Option 2 (Manual Setup) below.\"]\n",{"type":44,"tag":97,"props":1365,"children":1367},{"class":167,"line":1366},23,[1368,1372],{"type":44,"tag":97,"props":1369,"children":1370},{"style":418},[1371],{"type":58,"value":1349},{"type":44,"tag":97,"props":1373,"children":1374},{"style":395},[1375],{"type":58,"value":1376},"Option 2: Manual Setup            ← always include\n",{"type":44,"tag":97,"props":1378,"children":1380},{"class":167,"line":1379},24,[1381,1385],{"type":44,"tag":97,"props":1382,"children":1383},{"style":418},[1384],{"type":58,"value":1349},{"type":44,"tag":97,"props":1386,"children":1387},{"style":395},[1388],{"type":58,"value":1389},"Install\n",{"type":44,"tag":97,"props":1391,"children":1393},{"class":167,"line":1392},25,[1394,1398],{"type":44,"tag":97,"props":1395,"children":1396},{"style":418},[1397],{"type":58,"value":1349},{"type":44,"tag":97,"props":1399,"children":1400},{"style":395},[1401],{"type":58,"value":1402},"Quick Start — Recommended Init\n",{"type":44,"tag":97,"props":1404,"children":1406},{"class":167,"line":1405},26,[1407,1411],{"type":44,"tag":97,"props":1408,"children":1409},{"style":418},[1410],{"type":58,"value":1349},{"type":44,"tag":97,"props":1412,"children":1413},{"style":395},[1414],{"type":58,"value":1415},"Source Maps Setup                  ← required for frontend\u002Fmobile SDKs\n",{"type":44,"tag":97,"props":1417,"children":1419},{"class":167,"line":1418},27,[1420,1424],{"type":44,"tag":97,"props":1421,"children":1422},{"style":418},[1423],{"type":58,"value":1349},{"type":44,"tag":97,"props":1425,"children":1426},{"style":395},[1427],{"type":58,"value":1428},"Framework Middleware (if applicable)\n",{"type":44,"tag":97,"props":1430,"children":1432},{"class":167,"line":1431},28,[1433,1437],{"type":44,"tag":97,"props":1434,"children":1435},{"style":418},[1436],{"type":58,"value":1349},{"type":44,"tag":97,"props":1438,"children":1439},{"style":395},[1440],{"type":58,"value":1441},"For Each Agreed Feature\n",{"type":44,"tag":97,"props":1443,"children":1445},{"class":167,"line":1444},29,[1446],{"type":44,"tag":97,"props":1447,"children":1448},{"style":407},[1449],{"type":58,"value":1450},"[reference dispatch table: feature → ${SKILL_ROOT}\u002Freferences\u002F\u003Cfeature>.md]\n",{"type":44,"tag":97,"props":1452,"children":1453},{"class":167,"line":28},[1454],{"type":44,"tag":97,"props":1455,"children":1456},{"emptyLinePlaceholder":39},[1457],{"type":58,"value":1214},{"type":44,"tag":97,"props":1459,"children":1461},{"class":167,"line":1460},31,[1462,1466],{"type":44,"tag":97,"props":1463,"children":1464},{"style":418},[1465],{"type":58,"value":1245},{"type":44,"tag":97,"props":1467,"children":1468},{"style":395},[1469],{"type":58,"value":1470},"Configuration Reference\n",{"type":44,"tag":97,"props":1472,"children":1474},{"class":167,"line":1473},32,[1475],{"type":44,"tag":97,"props":1476,"children":1477},{"style":407},[1478],{"type":58,"value":1479},"[key init options table, environment variables]\n",{"type":44,"tag":97,"props":1481,"children":1483},{"class":167,"line":1482},33,[1484],{"type":44,"tag":97,"props":1485,"children":1486},{"emptyLinePlaceholder":39},[1487],{"type":58,"value":1214},{"type":44,"tag":97,"props":1489,"children":1491},{"class":167,"line":1490},34,[1492,1496],{"type":44,"tag":97,"props":1493,"children":1494},{"style":418},[1495],{"type":58,"value":1245},{"type":44,"tag":97,"props":1497,"children":1498},{"style":395},[1499],{"type":58,"value":1500},"Verification\n",{"type":44,"tag":97,"props":1502,"children":1504},{"class":167,"line":1503},35,[1505],{"type":44,"tag":97,"props":1506,"children":1507},{"style":407},[1508],{"type":58,"value":1509},"[test snippet]\n",{"type":44,"tag":97,"props":1511,"children":1513},{"class":167,"line":1512},36,[1514],{"type":44,"tag":97,"props":1515,"children":1516},{"emptyLinePlaceholder":39},[1517],{"type":58,"value":1214},{"type":44,"tag":97,"props":1519,"children":1521},{"class":167,"line":1520},37,[1522,1526],{"type":44,"tag":97,"props":1523,"children":1524},{"style":418},[1525],{"type":58,"value":1245},{"type":44,"tag":97,"props":1527,"children":1528},{"style":395},[1529],{"type":58,"value":1530},"Phase 4: Cross-Link\n",{"type":44,"tag":97,"props":1532,"children":1534},{"class":167,"line":1533},38,[1535],{"type":44,"tag":97,"props":1536,"children":1537},{"style":407},[1538],{"type":58,"value":1539},"[detect companion frontend\u002Fbackend, suggest matching SDK skills]\n",{"type":44,"tag":97,"props":1541,"children":1543},{"class":167,"line":1542},39,[1544],{"type":44,"tag":97,"props":1545,"children":1546},{"emptyLinePlaceholder":39},[1547],{"type":58,"value":1214},{"type":44,"tag":97,"props":1549,"children":1551},{"class":167,"line":1550},40,[1552,1556],{"type":44,"tag":97,"props":1553,"children":1554},{"style":418},[1555],{"type":58,"value":1245},{"type":44,"tag":97,"props":1557,"children":1558},{"style":395},[1559],{"type":58,"value":1560},"Troubleshooting\n",{"type":44,"tag":97,"props":1562,"children":1564},{"class":167,"line":1563},41,[1565],{"type":44,"tag":97,"props":1566,"children":1567},{"style":407},[1568],{"type":58,"value":1569},"[common issues table]\n",{"type":44,"tag":455,"props":1571,"children":1573},{"id":1572},"key-principles-for-the-main-skillmd",[1574],{"type":58,"value":1575},"Key Principles for the Main SKILL.md",{"type":44,"tag":490,"props":1577,"children":1578},{},[1579,1589,1613,1623,1633,1643,1653,1663],{"type":44,"tag":86,"props":1580,"children":1581},{},[1582,1587],{"type":44,"tag":191,"props":1583,"children":1584},{},[1585],{"type":58,"value":1586},"Keep it lean",{"type":58,"value":1588}," — deep details go in references, not here",{"type":44,"tag":86,"props":1590,"children":1591},{},[1592,1597,1599,1604,1606,1611],{"type":44,"tag":191,"props":1593,"children":1594},{},[1595],{"type":58,"value":1596},"Wizard-first for framework SDKs",{"type":58,"value":1598}," — if the Sentry wizard supports this framework, present it as \"Option 1: Wizard (Recommended)\" before any manual setup. ",{"type":44,"tag":191,"props":1600,"children":1601},{},[1602],{"type":58,"value":1603},"The wizard requires interactive browser login and cannot be run by the agent",{"type":58,"value":1605}," — present it in a blockquote telling the user to copy-paste the command into their own terminal, and come back when done. If the user skips the wizard, the agent proceeds with full manual setup. See ",{"type":44,"tag":110,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":58,"value":136},{"type":58,"value":1612}," for the full pattern.",{"type":44,"tag":86,"props":1614,"children":1615},{},[1616,1621],{"type":44,"tag":191,"props":1617,"children":1618},{},[1619],{"type":58,"value":1620},"Source maps are non-negotiable for frontend\u002Fmobile",{"type":58,"value":1622}," — the manual setup path must include source map upload configuration (build tool plugin + env vars). Without source maps, production stack traces are unreadable minified code.",{"type":44,"tag":86,"props":1624,"children":1625},{},[1626,1631],{"type":44,"tag":191,"props":1627,"children":1628},{},[1629],{"type":58,"value":1630},"Detection commands must be real",{"type":58,"value":1632}," — test them against actual projects",{"type":44,"tag":86,"props":1634,"children":1635},{},[1636,1641],{"type":44,"tag":191,"props":1637,"children":1638},{},[1639],{"type":58,"value":1640},"Recommendation logic must be opinionated",{"type":58,"value":1642}," — \"always\", \"when X detected\", not \"maybe consider\"",{"type":44,"tag":86,"props":1644,"children":1645},{},[1646,1651],{"type":44,"tag":191,"props":1647,"children":1648},{},[1649],{"type":58,"value":1650},"Quick Start config should enable the most features",{"type":58,"value":1652}," with sensible defaults",{"type":44,"tag":86,"props":1654,"children":1655},{},[1656,1661],{"type":44,"tag":191,"props":1657,"children":1658},{},[1659],{"type":58,"value":1660},"Framework middleware table",{"type":58,"value":1662}," — exact import paths, middleware calls, and quirks",{"type":44,"tag":86,"props":1664,"children":1665},{},[1666,1671],{"type":44,"tag":191,"props":1667,"children":1668},{},[1669],{"type":58,"value":1670},"Cross-link aggressively",{"type":58,"value":1672}," — if Go backend, suggest frontend. If Svelte frontend, suggest backend.",{"type":44,"tag":140,"props":1674,"children":1675},{},[],{"type":44,"tag":75,"props":1677,"children":1679},{"id":1678},"phase-4-create-reference-files",[1680],{"type":58,"value":1681},"Phase 4: Create Reference Files",{"type":44,"tag":49,"props":1683,"children":1684},{},[1685],{"type":58,"value":1686},"One reference file per feature pillar the SDK supports. These are deep dives — they can be longer than the main SKILL.md.",{"type":44,"tag":455,"props":1688,"children":1690},{"id":1689},"reference-file-structure",[1691],{"type":58,"value":1692},"Reference File Structure",{"type":44,"tag":155,"props":1694,"children":1696},{"className":1109,"code":1695,"language":1111,"meta":160,"style":160},"# \u003CFeature> — Sentry \u003CPlatform> SDK\n\n> Minimum SDK: `\u003Cpackage>` vX.Y.Z+\n\n## Configuration\n\n## Code Examples\n### Basic usage\n### Advanced patterns\n### Framework-specific notes (if applicable)\n\n## Best Practices\n\n## Troubleshooting\n| Issue | Solution |\n|-------|----------|\n",[1697],{"type":44,"tag":110,"props":1698,"children":1699},{"__ignoreMap":160},[1700,1712,1719,1752,1759,1771,1778,1790,1802,1814,1826,1833,1845,1852,1863,1890],{"type":44,"tag":97,"props":1701,"children":1702},{"class":167,"line":168},[1703,1707],{"type":44,"tag":97,"props":1704,"children":1705},{"style":418},[1706],{"type":58,"value":1223},{"type":44,"tag":97,"props":1708,"children":1709},{"style":395},[1710],{"type":58,"value":1711},"\u003CFeature> — Sentry \u003CPlatform> SDK\n",{"type":44,"tag":97,"props":1713,"children":1714},{"class":167,"line":178},[1715],{"type":44,"tag":97,"props":1716,"children":1717},{"emptyLinePlaceholder":39},[1718],{"type":58,"value":1214},{"type":44,"tag":97,"props":1720,"children":1721},{"class":167,"line":556},[1722,1727,1732,1737,1743,1747],{"type":44,"tag":97,"props":1723,"children":1725},{"style":1724},"--shiki-light:#FF5370;--shiki-light-font-style:italic;--shiki-default:#FF9CAC;--shiki-default-font-style:italic;--shiki-dark:#FF9CAC;--shiki-dark-font-style:italic",[1726],{"type":58,"value":882},{"type":44,"tag":97,"props":1728,"children":1729},{"style":850},[1730],{"type":58,"value":1731}," Minimum SDK: ",{"type":44,"tag":97,"props":1733,"children":1734},{"style":850},[1735],{"type":58,"value":1736},"`",{"type":44,"tag":97,"props":1738,"children":1740},{"style":1739},"--shiki-light:#91B859;--shiki-light-font-style:italic;--shiki-default:#C3E88D;--shiki-default-font-style:italic;--shiki-dark:#C3E88D;--shiki-dark-font-style:italic",[1741],{"type":58,"value":1742},"\u003Cpackage>",{"type":44,"tag":97,"props":1744,"children":1745},{"style":850},[1746],{"type":58,"value":1736},{"type":44,"tag":97,"props":1748,"children":1749},{"style":850},[1750],{"type":58,"value":1751}," vX.Y.Z+\n",{"type":44,"tag":97,"props":1753,"children":1754},{"class":167,"line":949},[1755],{"type":44,"tag":97,"props":1756,"children":1757},{"emptyLinePlaceholder":39},[1758],{"type":58,"value":1214},{"type":44,"tag":97,"props":1760,"children":1761},{"class":167,"line":976},[1762,1766],{"type":44,"tag":97,"props":1763,"children":1764},{"style":418},[1765],{"type":58,"value":1245},{"type":44,"tag":97,"props":1767,"children":1768},{"style":395},[1769],{"type":58,"value":1770},"Configuration\n",{"type":44,"tag":97,"props":1772,"children":1773},{"class":167,"line":1021},[1774],{"type":44,"tag":97,"props":1775,"children":1776},{"emptyLinePlaceholder":39},[1777],{"type":58,"value":1214},{"type":44,"tag":97,"props":1779,"children":1780},{"class":167,"line":1200},[1781,1785],{"type":44,"tag":97,"props":1782,"children":1783},{"style":418},[1784],{"type":58,"value":1245},{"type":44,"tag":97,"props":1786,"children":1787},{"style":395},[1788],{"type":58,"value":1789},"Code Examples\n",{"type":44,"tag":97,"props":1791,"children":1792},{"class":167,"line":1208},[1793,1797],{"type":44,"tag":97,"props":1794,"children":1795},{"style":418},[1796],{"type":58,"value":1349},{"type":44,"tag":97,"props":1798,"children":1799},{"style":395},[1800],{"type":58,"value":1801},"Basic usage\n",{"type":44,"tag":97,"props":1803,"children":1804},{"class":167,"line":1217},[1805,1809],{"type":44,"tag":97,"props":1806,"children":1807},{"style":418},[1808],{"type":58,"value":1349},{"type":44,"tag":97,"props":1810,"children":1811},{"style":395},[1812],{"type":58,"value":1813},"Advanced patterns\n",{"type":44,"tag":97,"props":1815,"children":1816},{"class":167,"line":1231},[1817,1821],{"type":44,"tag":97,"props":1818,"children":1819},{"style":418},[1820],{"type":58,"value":1349},{"type":44,"tag":97,"props":1822,"children":1823},{"style":395},[1824],{"type":58,"value":1825},"Framework-specific notes (if applicable)\n",{"type":44,"tag":97,"props":1827,"children":1828},{"class":167,"line":1239},[1829],{"type":44,"tag":97,"props":1830,"children":1831},{"emptyLinePlaceholder":39},[1832],{"type":58,"value":1214},{"type":44,"tag":97,"props":1834,"children":1835},{"class":167,"line":1253},[1836,1840],{"type":44,"tag":97,"props":1837,"children":1838},{"style":418},[1839],{"type":58,"value":1245},{"type":44,"tag":97,"props":1841,"children":1842},{"style":395},[1843],{"type":58,"value":1844},"Best Practices\n",{"type":44,"tag":97,"props":1846,"children":1847},{"class":167,"line":1262},[1848],{"type":44,"tag":97,"props":1849,"children":1850},{"emptyLinePlaceholder":39},[1851],{"type":58,"value":1214},{"type":44,"tag":97,"props":1853,"children":1854},{"class":167,"line":1270},[1855,1859],{"type":44,"tag":97,"props":1856,"children":1857},{"style":418},[1858],{"type":58,"value":1245},{"type":44,"tag":97,"props":1860,"children":1861},{"style":395},[1862],{"type":58,"value":1560},{"type":44,"tag":97,"props":1864,"children":1865},{"class":167,"line":1283},[1866,1871,1876,1880,1885],{"type":44,"tag":97,"props":1867,"children":1868},{"style":418},[1869],{"type":58,"value":1870},"|",{"type":44,"tag":97,"props":1872,"children":1873},{"style":407},[1874],{"type":58,"value":1875}," Issue ",{"type":44,"tag":97,"props":1877,"children":1878},{"style":418},[1879],{"type":58,"value":1870},{"type":44,"tag":97,"props":1881,"children":1882},{"style":407},[1883],{"type":58,"value":1884}," Solution ",{"type":44,"tag":97,"props":1886,"children":1887},{"style":418},[1888],{"type":58,"value":1889},"|\n",{"type":44,"tag":97,"props":1891,"children":1892},{"class":167,"line":1292},[1893],{"type":44,"tag":97,"props":1894,"children":1895},{"style":418},[1896],{"type":58,"value":1897},"|-------|----------|\n",{"type":44,"tag":455,"props":1899,"children":1901},{"id":1900},"what-makes-a-good-reference",[1902],{"type":58,"value":1903},"What Makes a Good Reference",{"type":44,"tag":49,"props":1905,"children":1906},{},[1907,1908,1914],{"type":58,"value":130},{"type":44,"tag":110,"props":1909,"children":1911},{"className":1910},[],[1912],{"type":58,"value":1913},"${SKILL_ROOT}\u002Freferences\u002Fquality-checklist.md",{"type":58,"value":1915}," for the full quality rubric.",{"type":44,"tag":49,"props":1917,"children":1918},{},[1919],{"type":58,"value":1920},"Key points:",{"type":44,"tag":82,"props":1922,"children":1923},{},[1924,1934,1944,1954,1964,1974],{"type":44,"tag":86,"props":1925,"children":1926},{},[1927,1932],{"type":44,"tag":191,"props":1928,"children":1929},{},[1930],{"type":58,"value":1931},"Working code examples",{"type":58,"value":1933}," — not pseudo-code, not truncated snippets",{"type":44,"tag":86,"props":1935,"children":1936},{},[1937,1942],{"type":44,"tag":191,"props":1938,"children":1939},{},[1940],{"type":58,"value":1941},"Tables for config options",{"type":58,"value":1943}," — type, default, minimum version",{"type":44,"tag":86,"props":1945,"children":1946},{},[1947,1952],{"type":44,"tag":191,"props":1948,"children":1949},{},[1950],{"type":58,"value":1951},"One complete example per pattern",{"type":58,"value":1953}," — don't show 5 variations of the same thing",{"type":44,"tag":86,"props":1955,"children":1956},{},[1957,1962],{"type":44,"tag":191,"props":1958,"children":1959},{},[1960],{"type":58,"value":1961},"Framework-specific notes",{"type":58,"value":1963}," — call out when behavior differs between frameworks",{"type":44,"tag":86,"props":1965,"children":1966},{},[1967,1972],{"type":44,"tag":191,"props":1968,"children":1969},{},[1970],{"type":58,"value":1971},"Minimum SDK version at the top",{"type":58,"value":1973}," — always",{"type":44,"tag":86,"props":1975,"children":1976},{},[1977,1982],{"type":44,"tag":191,"props":1978,"children":1979},{},[1980],{"type":58,"value":1981},"Honest about limitations",{"type":58,"value":1983}," — if a feature was removed (like Go profiling), say so",{"type":44,"tag":455,"props":1985,"children":1987},{"id":1986},"feature-specific-guidance",[1988],{"type":58,"value":1989},"Feature-Specific Guidance",{"type":44,"tag":199,"props":1991,"children":1992},{},[1993,2009],{"type":44,"tag":203,"props":1994,"children":1995},{},[1996],{"type":44,"tag":207,"props":1997,"children":1998},{},[1999,2004],{"type":44,"tag":211,"props":2000,"children":2001},{},[2002],{"type":58,"value":2003},"Feature",{"type":44,"tag":211,"props":2005,"children":2006},{},[2007],{"type":58,"value":2008},"Key things to cover",{"type":44,"tag":227,"props":2010,"children":2011},{},[2012,2024,2037,2049,2061,2073,2085],{"type":44,"tag":207,"props":2013,"children":2014},{},[2015,2019],{"type":44,"tag":234,"props":2016,"children":2017},{},[2018],{"type":58,"value":238},{"type":44,"tag":234,"props":2020,"children":2021},{},[2022],{"type":58,"value":2023},"Capture APIs, panic\u002Fexception recovery, scopes, enrichment (tags\u002Fuser\u002Fbreadcrumbs), error chains, BeforeSend, fingerprinting",{"type":44,"tag":207,"props":2025,"children":2026},{},[2027,2032],{"type":44,"tag":234,"props":2028,"children":2029},{},[2030],{"type":58,"value":2031},"Tracing",{"type":44,"tag":234,"props":2033,"children":2034},{},[2035],{"type":58,"value":2036},"Sample rates, custom spans, distributed tracing, framework middleware, operation types",{"type":44,"tag":207,"props":2038,"children":2039},{},[2040,2044],{"type":44,"tag":234,"props":2041,"children":2042},{},[2043],{"type":58,"value":274},{"type":44,"tag":234,"props":2045,"children":2046},{},[2047],{"type":58,"value":2048},"Sample rate config, how it attaches to traces, or honest \"removed\u002Fnot available\"",{"type":44,"tag":207,"props":2050,"children":2051},{},[2052,2056],{"type":44,"tag":234,"props":2053,"children":2054},{},[2055],{"type":58,"value":292},{"type":44,"tag":234,"props":2057,"children":2058},{},[2059],{"type":58,"value":2060},"Enable flag, logger API, integration with popular logging libraries, filtering",{"type":44,"tag":207,"props":2062,"children":2063},{},[2064,2068],{"type":44,"tag":234,"props":2065,"children":2066},{},[2067],{"type":58,"value":310},{"type":44,"tag":234,"props":2069,"children":2070},{},[2071],{"type":58,"value":2072},"Counter\u002Fgauge\u002Fdistribution APIs, units, attributes, best practices for cardinality",{"type":44,"tag":207,"props":2074,"children":2075},{},[2076,2080],{"type":44,"tag":234,"props":2077,"children":2078},{},[2079],{"type":58,"value":326},{"type":44,"tag":234,"props":2081,"children":2082},{},[2083],{"type":58,"value":2084},"Check-in API, monitor config, schedule types, heartbeat patterns",{"type":44,"tag":207,"props":2086,"children":2087},{},[2088,2092],{"type":44,"tag":234,"props":2089,"children":2090},{},[2091],{"type":58,"value":344},{"type":44,"tag":234,"props":2093,"children":2094},{},[2095],{"type":58,"value":2096},"Replay integration, sample rates, privacy masking, canvas\u002Fnetwork recording",{"type":44,"tag":45,"props":2098,"children":2099},{},[2100],{"type":44,"tag":49,"props":2101,"children":2102},{},[2103,2108,2110,2116,2118,2124,2125,2131,2133,2139,2141,2147],{"type":44,"tag":191,"props":2104,"children":2105},{},[2106],{"type":58,"value":2107},"Note for frontend\u002Fmobile SDKs:",{"type":58,"value":2109}," Source map upload configuration belongs in the main SKILL.md (Phase 3: Guide), not in a reference file. It's part of the core setup flow — every frontend production deployment needs it. Cover the build tool plugin, the required env vars (",{"type":44,"tag":110,"props":2111,"children":2113},{"className":2112},[],[2114],{"type":58,"value":2115},"SENTRY_AUTH_TOKEN",{"type":58,"value":2117},", ",{"type":44,"tag":110,"props":2119,"children":2121},{"className":2120},[],[2122],{"type":58,"value":2123},"SENTRY_ORG",{"type":58,"value":2117},{"type":44,"tag":110,"props":2126,"children":2128},{"className":2127},[],[2129],{"type":58,"value":2130},"SENTRY_PROJECT",{"type":58,"value":2132},"), and add ",{"type":44,"tag":110,"props":2134,"children":2136},{"className":2135},[],[2137],{"type":58,"value":2138},".env",{"type":58,"value":2140}," to ",{"type":44,"tag":110,"props":2142,"children":2144},{"className":2143},[],[2145],{"type":58,"value":2146},".gitignore",{"type":58,"value":2148},".",{"type":44,"tag":140,"props":2150,"children":2151},{},[],{"type":44,"tag":75,"props":2153,"children":2155},{"id":2154},"phase-5-verify-everything",[2156],{"type":58,"value":2157},"Phase 5: Verify Everything",{"type":44,"tag":49,"props":2159,"children":2160},{},[2161,2166],{"type":44,"tag":191,"props":2162,"children":2163},{},[2164],{"type":58,"value":2165},"Do NOT skip this phase.",{"type":58,"value":2167}," SDK APIs change frequently. Research can hallucinate. Workers can fabricate config keys.",{"type":44,"tag":455,"props":2169,"children":2171},{"id":2170},"api-verification",[2172],{"type":58,"value":2173},"API Verification",{"type":44,"tag":49,"props":2175,"children":2176},{},[2177],{"type":58,"value":2178},"Run a dedicated verification pass against the SDK's actual source code:",{"type":44,"tag":155,"props":2180,"children":2184},{"className":2181,"code":2183,"language":58},[2182],"language-text","Research prompt: \"Verify these specific API names and signatures against\nthe \u003CSDK> GitHub repo source code: [list every API from the skill files]\"\n",[2185],{"type":44,"tag":110,"props":2186,"children":2187},{"__ignoreMap":160},[2188],{"type":58,"value":2183},{"type":44,"tag":49,"props":2190,"children":2191},{},[2192],{"type":58,"value":2193},"Things that commonly go wrong:",{"type":44,"tag":82,"props":2195,"children":2196},{},[2197,2217,2230,2250,2255],{"type":44,"tag":86,"props":2198,"children":2199},{},[2200,2202,2208,2210,2216],{"type":58,"value":2201},"Config option names with wrong casing (",{"type":44,"tag":110,"props":2203,"children":2205},{"className":2204},[],[2206],{"type":58,"value":2207},"SendDefaultPii",{"type":58,"value":2209}," vs ",{"type":44,"tag":110,"props":2211,"children":2213},{"className":2212},[],[2214],{"type":58,"value":2215},"SendDefaultPII",{"type":58,"value":936},{"type":44,"tag":86,"props":2218,"children":2219},{},[2220,2222,2228],{"type":58,"value":2221},"Fabricated config keys that don't exist (",{"type":44,"tag":110,"props":2223,"children":2225},{"className":2224},[],[2226],{"type":58,"value":2227},"experimental.tracing",{"type":58,"value":2229}," — verify it's real)",{"type":44,"tag":86,"props":2231,"children":2232},{},[2233,2235,2241,2243,2249],{"type":58,"value":2234},"Deprecated APIs used instead of modern replacements (",{"type":44,"tag":110,"props":2236,"children":2238},{"className":2237},[],[2239],{"type":58,"value":2240},"configureScope",{"type":58,"value":2242}," → ",{"type":44,"tag":110,"props":2244,"children":2246},{"className":2245},[],[2247],{"type":58,"value":2248},"getIsolationScope",{"type":58,"value":936},{"type":44,"tag":86,"props":2251,"children":2252},{},[2253],{"type":58,"value":2254},"Features listed as available when they've been removed (profiling in Go SDK)",{"type":44,"tag":86,"props":2256,"children":2257},{},[2258],{"type":58,"value":2259},"Wrong minimum version numbers",{"type":44,"tag":455,"props":2261,"children":2263},{"id":2262},"review-pass",[2264],{"type":58,"value":2265},"Review Pass",{"type":44,"tag":49,"props":2267,"children":2268},{},[2269],{"type":58,"value":2270},"Run a reviewer on the complete skill bundle:",{"type":44,"tag":82,"props":2272,"children":2273},{},[2274,2279,2284,2289],{"type":44,"tag":86,"props":2275,"children":2276},{},[2277],{"type":58,"value":2278},"Technical accuracy of code examples",{"type":44,"tag":86,"props":2280,"children":2281},{},[2282],{"type":58,"value":2283},"Consistency between main SKILL.md and reference files",{"type":44,"tag":86,"props":2285,"children":2286},{},[2287],{"type":58,"value":2288},"Consistency with existing SDK skills in the repo",{"type":44,"tag":86,"props":2290,"children":2291},{},[2292],{"type":58,"value":2293},"Agent Skills spec compliance (frontmatter, naming)",{"type":44,"tag":455,"props":2295,"children":2297},{"id":2296},"fix-review-findings",[2298],{"type":58,"value":2299},"Fix Review Findings",{"type":44,"tag":49,"props":2301,"children":2302},{},[2303],{"type":58,"value":2304},"Triage by priority:",{"type":44,"tag":82,"props":2306,"children":2307},{},[2308,2318,2328,2338],{"type":44,"tag":86,"props":2309,"children":2310},{},[2311,2316],{"type":44,"tag":191,"props":2312,"children":2313},{},[2314],{"type":58,"value":2315},"P0",{"type":58,"value":2317},": Misleading claims (advertising removed features) — fix immediately",{"type":44,"tag":86,"props":2319,"children":2320},{},[2321,2326],{"type":44,"tag":191,"props":2322,"children":2323},{},[2324],{"type":58,"value":2325},"P1",{"type":58,"value":2327},": Incorrect APIs, deprecated methods — fix before merge",{"type":44,"tag":86,"props":2329,"children":2330},{},[2331,2336],{"type":44,"tag":191,"props":2332,"children":2333},{},[2334],{"type":58,"value":2335},"P2",{"type":58,"value":2337},": Style inconsistencies, version nitpicks — fix if quick",{"type":44,"tag":86,"props":2339,"children":2340},{},[2341,2346],{"type":44,"tag":191,"props":2342,"children":2343},{},[2344],{"type":58,"value":2345},"P3",{"type":58,"value":2347},": Skip",{"type":44,"tag":140,"props":2349,"children":2350},{},[],{"type":44,"tag":75,"props":2352,"children":2354},{"id":2353},"phase-6-register-and-update-docs",[2355],{"type":58,"value":2356},"Phase 6: Register and Update Docs",{"type":44,"tag":49,"props":2358,"children":2359},{},[2360],{"type":58,"value":2361},"After the skill passes review:",{"type":44,"tag":490,"props":2363,"children":2364},{},[2365,2375,2385,2395],{"type":44,"tag":86,"props":2366,"children":2367},{},[2368,2373],{"type":44,"tag":191,"props":2369,"children":2370},{},[2371],{"type":58,"value":2372},"Update README.md",{"type":58,"value":2374}," — add to the SDK Skills table",{"type":44,"tag":86,"props":2376,"children":2377},{},[2378,2383],{"type":44,"tag":191,"props":2379,"children":2380},{},[2381],{"type":58,"value":2382},"Update AGENTS.md",{"type":58,"value":2384}," — if the philosophy doc or skill categories section needs it",{"type":44,"tag":86,"props":2386,"children":2387},{},[2388,2393],{"type":44,"tag":191,"props":2389,"children":2390},{},[2391],{"type":58,"value":2392},"Add usage examples",{"type":58,"value":2394}," — trigger phrases in the Usage section",{"type":44,"tag":86,"props":2396,"children":2397},{},[2398,2403],{"type":44,"tag":191,"props":2399,"children":2400},{},[2401],{"type":58,"value":2402},"Document the bundle pattern",{"type":58,"value":2404}," — if this is a new SDK, note the references\u002F structure",{"type":44,"tag":455,"props":2406,"children":2408},{"id":2407},"commit-strategy",[2409],{"type":58,"value":2410},"Commit Strategy",{"type":44,"tag":49,"props":2412,"children":2413},{},[2414],{"type":58,"value":2415},"Each major piece gets its own commit:",{"type":44,"tag":490,"props":2417,"children":2418},{},[2419,2428,2437,2446],{"type":44,"tag":86,"props":2420,"children":2421},{},[2422],{"type":44,"tag":110,"props":2423,"children":2425},{"className":2424},[],[2426],{"type":58,"value":2427},"feat(\u003Cplatform>-sdk): add sentry-\u003Cplatform>-sdk main SKILL.md wizard",{"type":44,"tag":86,"props":2429,"children":2430},{},[2431],{"type":44,"tag":110,"props":2432,"children":2434},{"className":2433},[],[2435],{"type":58,"value":2436},"feat(\u003Cplatform>-sdk): add reference deep-dives for all feature pillars",{"type":44,"tag":86,"props":2438,"children":2439},{},[2440],{"type":44,"tag":110,"props":2441,"children":2443},{"className":2442},[],[2444],{"type":58,"value":2445},"docs(readme): add sentry-\u003Cplatform>-sdk to available skills",{"type":44,"tag":86,"props":2447,"children":2448},{},[2449,2455],{"type":44,"tag":110,"props":2450,"children":2452},{"className":2451},[],[2453],{"type":58,"value":2454},"fix(skills): address review findings",{"type":58,"value":2456}," (if any)",{"type":44,"tag":140,"props":2458,"children":2459},{},[],{"type":44,"tag":75,"props":2461,"children":2463},{"id":2462},"checklist",[2464],{"type":58,"value":2465},"Checklist",{"type":44,"tag":49,"props":2467,"children":2468},{},[2469],{"type":58,"value":2470},"Before declaring the skill complete:",{"type":44,"tag":82,"props":2472,"children":2475},{"className":2473},[2474],"contains-task-list",[2476,2488,2497,2506,2515,2524,2533,2542,2551,2560,2569,2578,2587,2596],{"type":44,"tag":86,"props":2477,"children":2480},{"className":2478},[2479],"task-list-item",[2481,2486],{"type":44,"tag":2482,"props":2483,"children":2485},"input",{"disabled":39,"type":2484},"checkbox",[],{"type":58,"value":2487}," Philosophy doc read and followed",{"type":44,"tag":86,"props":2489,"children":2491},{"className":2490},[2479],[2492,2495],{"type":44,"tag":2482,"props":2493,"children":2494},{"disabled":39,"type":2484},[],{"type":58,"value":2496}," All feature pillars researched from official docs (not from memory)",{"type":44,"tag":86,"props":2498,"children":2500},{"className":2499},[2479],[2501,2504],{"type":44,"tag":2482,"props":2502,"children":2503},{"disabled":39,"type":2484},[],{"type":58,"value":2505}," Research files verified (real content, correct APIs, >100 lines each)",{"type":44,"tag":86,"props":2507,"children":2509},{"className":2508},[2479],[2510,2513],{"type":44,"tag":2482,"props":2511,"children":2512},{"disabled":39,"type":2484},[],{"type":58,"value":2514}," Main SKILL.md is focused — wizard flow + quick start + reference dispatch; deep dives in references",{"type":44,"tag":86,"props":2516,"children":2518},{"className":2517},[2479],[2519,2522],{"type":44,"tag":2482,"props":2520,"children":2521},{"disabled":39,"type":2484},[],{"type":58,"value":2523}," Main SKILL.md implements all 4 wizard phases",{"type":44,"tag":86,"props":2525,"children":2527},{"className":2526},[2479],[2528,2531],{"type":44,"tag":2482,"props":2529,"children":2530},{"disabled":39,"type":2484},[],{"type":58,"value":2532}," Wizard CLI checked — if supported, presented as \"Option 1: Wizard (Recommended)\" with auth flow + source map benefits described",{"type":44,"tag":86,"props":2534,"children":2536},{"className":2535},[2479],[2537,2540],{"type":44,"tag":2482,"props":2538,"children":2539},{"disabled":39,"type":2484},[],{"type":58,"value":2541}," Source map \u002F debug symbol upload covered in manual setup path (frontend\u002Fmobile SDKs)",{"type":44,"tag":86,"props":2543,"children":2545},{"className":2544},[2479],[2546,2549],{"type":44,"tag":2482,"props":2547,"children":2548},{"disabled":39,"type":2484},[],{"type":58,"value":2550}," Reference file for each supported feature pillar",{"type":44,"tag":86,"props":2552,"children":2554},{"className":2553},[2479],[2555,2558],{"type":44,"tag":2482,"props":2556,"children":2557},{"disabled":39,"type":2484},[],{"type":58,"value":2559}," APIs verified against SDK source code",{"type":44,"tag":86,"props":2561,"children":2563},{"className":2562},[2479],[2564,2567],{"type":44,"tag":2482,"props":2565,"children":2566},{"disabled":39,"type":2484},[],{"type":58,"value":2568}," Review pass completed, findings addressed",{"type":44,"tag":86,"props":2570,"children":2572},{"className":2571},[2479],[2573,2576],{"type":44,"tag":2482,"props":2574,"children":2575},{"disabled":39,"type":2484},[],{"type":58,"value":2577}," Profiling\u002Fremoved features honestly documented (not advertised)",{"type":44,"tag":86,"props":2579,"children":2581},{"className":2580},[2479],[2582,2585],{"type":44,"tag":2482,"props":2583,"children":2584},{"disabled":39,"type":2484},[],{"type":58,"value":2586}," Cross-links to companion frontend\u002Fbackend skills",{"type":44,"tag":86,"props":2588,"children":2590},{"className":2589},[2479],[2591,2594],{"type":44,"tag":2482,"props":2592,"children":2593},{"disabled":39,"type":2484},[],{"type":58,"value":2595}," README.md updated",{"type":44,"tag":86,"props":2597,"children":2599},{"className":2598},[2479],[2600,2603],{"type":44,"tag":2482,"props":2601,"children":2602},{"disabled":39,"type":2484},[],{"type":58,"value":2604}," All commits polished with descriptive messages",{"type":44,"tag":2606,"props":2607,"children":2608},"style",{},[2609],{"type":58,"value":2610},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2612,"total":2786},[2613,2638,2652,2665,2677,2694,2710,2724,2734,2745,2755,2773],{"slug":2614,"name":2614,"fn":2615,"description":2616,"org":2617,"tags":2618,"stars":2635,"repoUrl":2636,"updatedAt":2637},"xcodebuildmcp","build and test Apple apps with XcodeBuildMCP","Official skill for XcodeBuildMCP. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2619,2622,2625,2628,2629,2632],{"name":2620,"slug":2621,"type":16},"Debugging","debugging",{"name":2623,"slug":2624,"type":16},"iOS","ios",{"name":2626,"slug":2627,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":2630,"slug":2631,"type":16},"Testing","testing",{"name":2633,"slug":2634,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":2639,"name":2639,"fn":2640,"description":2641,"org":2642,"tags":2643,"stars":2635,"repoUrl":2636,"updatedAt":2651},"xcodebuildmcp-cli","build and test Apple apps via CLI","Official skill for the XcodeBuildMCP CLI. Use when doing iOS\u002FmacOS\u002FwatchOS\u002FtvOS\u002FvisionOS work (build, test, run, debug, log, UI automation).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2644,2647,2648,2649,2650],{"name":2645,"slug":2646,"type":16},"CLI","cli",{"name":2623,"slug":2624,"type":16},{"name":2626,"slug":2627,"type":16},{"name":2630,"slug":2631,"type":16},{"name":2633,"slug":2634,"type":16},"2026-04-06T18:13:36.13414",{"slug":2653,"name":2653,"fn":2654,"description":2655,"org":2656,"tags":2657,"stars":2662,"repoUrl":2663,"updatedAt":2664},"agents-md","maintain project instruction files","Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update AGENTS.md, maintain agent docs, set up CLAUDE.md, document repository agent conventions, or keep coding-agent instructions minimal and reference-backed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2658,2659],{"name":14,"slug":15,"type":16},{"name":2660,"slug":2661,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":2666,"name":2666,"fn":2667,"description":2668,"org":2669,"tags":2670,"stars":2662,"repoUrl":2663,"updatedAt":2676},"blog-writing-guide","write and review engineering blog posts","Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and quality bar. Use this skill whenever someone asks to write a blog post, draft a technical article, review blog content, improve a draft, write a product announcement, create an engineering deep-dive, or produce any written content destined for the Sentry blog or developer audience. Also trigger when the user mentions \"blog post,\" \"blog draft,\" \"write-up,\" \"announcement post,\" \"engineering post,\" \"deep dive,\" \"postmortem,\" or asks for help with technical writing for Sentry. Even if the user just says \"help me write about [feature\u002Ftopic]\" — if it sounds like it could become a Sentry blog post, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2671,2674,2675],{"name":2672,"slug":2673,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":18,"slug":19,"type":16},"2026-05-15T06:16:33.38217",{"slug":2678,"name":2678,"fn":2679,"description":2680,"org":2681,"tags":2682,"stars":2662,"repoUrl":2663,"updatedAt":2693},"brand-guidelines","write copy following Sentry brand guidelines","Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404 pages, documentation, marketing copy, or any user-facing content. Covers both Plain Speech (default) and Sentry Voice tones.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2683,2686,2689,2690],{"name":2684,"slug":2685,"type":16},"Branding","branding",{"name":2687,"slug":2688,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":2691,"slug":2692,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":2695,"name":2695,"fn":2696,"description":2697,"org":2698,"tags":2699,"stars":2662,"repoUrl":2663,"updatedAt":2709},"claude-settings-audit","generate Claude Code settings permissions","Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing existing settings, or determining which read-only bash commands to allow. Detects tech stack, build tools, and monorepo structure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2700,2703,2706],{"name":2701,"slug":2702,"type":16},"Claude Code","claude-code",{"name":2704,"slug":2705,"type":16},"Configuration","configuration",{"name":2707,"slug":2708,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":2711,"name":2711,"fn":2712,"description":2713,"org":2714,"tags":2715,"stars":2662,"repoUrl":2663,"updatedAt":2723},"code-review","perform code reviews for Sentry projects","Perform code reviews following Sentry engineering practices. Use when reviewing pull requests, examining code changes, or providing feedback on code quality. Covers security, performance, testing, and design review.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2716,2718,2719,2722],{"name":2717,"slug":2711,"type":16},"Code Review",{"name":2660,"slug":2661,"type":16},{"name":2720,"slug":2721,"type":16},"Performance","performance",{"name":2707,"slug":2708,"type":16},"2026-05-15T06:16:35.824864",{"slug":2725,"name":2725,"fn":2726,"description":2727,"org":2728,"tags":2729,"stars":2662,"repoUrl":2663,"updatedAt":2733},"code-simplifier","simplify and refine source code","Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to \"simplify code\", \"clean up code\", \"refactor for clarity\", \"improve readability\", or review recently modified code for elegance. Focuses on project-specific best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2730],{"name":2731,"slug":2732,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":2735,"name":2735,"fn":2736,"description":2737,"org":2738,"tags":2739,"stars":2662,"repoUrl":2663,"updatedAt":2744},"commit","create commits with Sentry conventions","Use for every request to commit changes or draft a commit message. Creates Sentry-style conventional commits with issue references.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2740,2743],{"name":2741,"slug":2742,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":2746,"name":2746,"fn":2747,"description":2748,"org":2749,"tags":2750,"stars":2662,"repoUrl":2663,"updatedAt":2754},"create-branch","create git branches for Sentry workflows","Create a git branch following Sentry naming conventions. Use when asked to \"create a branch\", \"new branch\", \"start a branch\", \"make a branch\", \"switch to a new branch\", or when starting new work on the default branch.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2751,2752,2753],{"name":2660,"slug":2661,"type":16},{"name":2741,"slug":2742,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":2756,"name":2756,"fn":2757,"description":2758,"org":2759,"tags":2760,"stars":2662,"repoUrl":2663,"updatedAt":2772},"django-access-review","review Django access control and IDOR","Django access control and IDOR security review. Use when reviewing Django views, DRF viewsets, ORM queries, or any Python\u002FDjango code handling user authorization. Trigger keywords: \"IDOR\", \"access control\", \"authorization\", \"Django permissions\", \"object permissions\", \"tenant isolation\", \"broken access\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2761,2764,2765,2768,2771],{"name":2762,"slug":2763,"type":16},"Access Control","access-control",{"name":2731,"slug":2732,"type":16},{"name":2766,"slug":2767,"type":16},"Django","django",{"name":2769,"slug":2770,"type":16},"Python","python",{"name":2707,"slug":2708,"type":16},"2026-05-15T06:16:43.098698",{"slug":2774,"name":2774,"fn":2775,"description":2776,"org":2777,"tags":2778,"stars":2662,"repoUrl":2663,"updatedAt":2785},"django-perf-review","review and optimize Django performance","Django performance code review. Use when asked to \"review Django performance\", \"find N+1 queries\", \"optimize Django\", \"check queryset performance\", \"database performance\", \"Django ORM issues\", or audit Django code for performance problems.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2779,2780,2783,2784],{"name":2717,"slug":2711,"type":16},{"name":2781,"slug":2782,"type":16},"Database","database",{"name":2766,"slug":2767,"type":16},{"name":2720,"slug":2721,"type":16},"2026-05-15T06:16:24.832813",88,{"items":2788,"total":1418},[2789,2805,2820,2836,2848,2862,2877],{"slug":2790,"name":2790,"fn":2791,"description":2792,"org":2793,"tags":2794,"stars":24,"repoUrl":25,"updatedAt":2804},"sentry-android-sdk","setup Sentry SDK for Android","Full Sentry SDK setup for Android. Use when asked to \"add Sentry to Android\", \"install sentry-android\", \"setup Sentry in Android\", or configure error monitoring, tracing, profiling, session replay, or logging for Android applications. Supports Kotlin and Java codebases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2795,2798,2799,2802,2803],{"name":2796,"slug":2797,"type":16},"Android","android",{"name":2620,"slug":2621,"type":16},{"name":2800,"slug":2801,"type":16},"Observability","observability",{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:32.396344",{"slug":2806,"name":2806,"fn":2807,"description":2808,"org":2809,"tags":2810,"stars":24,"repoUrl":25,"updatedAt":2819},"sentry-browser-sdk","setup Sentry error monitoring for browser applications","Full Sentry SDK setup for browser JavaScript. Use when asked to \"add Sentry to a website\", \"install @sentry\u002Fbrowser\", or configure error monitoring, tracing, session replay, or logging for vanilla JavaScript, jQuery, static sites, or WordPress.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2811,2812,2815,2818],{"name":2620,"slug":2621,"type":16},{"name":2813,"slug":2814,"type":16},"JavaScript","javascript",{"name":2816,"slug":2817,"type":16},"Monitoring","monitoring",{"name":9,"slug":8,"type":16},"2026-07-18T05:47:44.437436",{"slug":2821,"name":2821,"fn":2822,"description":2823,"org":2824,"tags":2825,"stars":24,"repoUrl":25,"updatedAt":2835},"sentry-cloudflare-sdk","setup Sentry monitoring for Cloudflare","Full Sentry SDK setup for Cloudflare Workers and Pages. Use when asked to \"add Sentry to Cloudflare Workers\", \"install @sentry\u002Fcloudflare\", or configure error monitoring, tracing, logging, crons, or AI monitoring for Cloudflare Workers, Pages, Durable Objects, Queues, Workflows, or Hono on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2826,2829,2832,2833,2834],{"name":2827,"slug":2828,"type":16},"Cloudflare","cloudflare",{"name":2830,"slug":2831,"type":16},"Edge Functions","edge-functions",{"name":2816,"slug":2817,"type":16},{"name":2800,"slug":2801,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:25.361175",{"slug":2837,"name":2837,"fn":2838,"description":2839,"org":2840,"tags":2841,"stars":24,"repoUrl":25,"updatedAt":2847},"sentry-cocoa-sdk","integrate Sentry SDK into Apple applications","Full Sentry SDK setup for Apple platforms (iOS, macOS, tvOS, watchOS, visionOS). Use when asked to \"add Sentry to iOS\", \"add Sentry to Swift\", \"install sentry-cocoa\", or configure error monitoring, tracing, profiling, session replay, logging, or metrics for Apple applications. Supports SwiftUI and UIKit.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2842,2843,2844,2845,2846],{"name":2623,"slug":2624,"type":16},{"name":2626,"slug":2627,"type":16},{"name":2816,"slug":2817,"type":16},{"name":2800,"slug":2801,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:52:57.042493",{"slug":2849,"name":2849,"fn":2850,"description":2851,"org":2852,"tags":2853,"stars":24,"repoUrl":25,"updatedAt":2861},"sentry-dotnet-sdk","setup Sentry SDK for .NET","Full Sentry SDK setup for .NET. Use when asked to \"add Sentry to .NET\", \"install Sentry for C#\", or configure error monitoring, tracing, profiling, logging, or crons for ASP.NET Core, MAUI, WPF, WinForms, Blazor, Azure Functions, or any other .NET application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2854,2857,2858,2859,2860],{"name":2855,"slug":2856,"type":16},".NET","net",{"name":2620,"slug":2621,"type":16},{"name":2800,"slug":2801,"type":16},{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:33.793148",{"slug":2863,"name":2863,"fn":2864,"description":2865,"org":2866,"tags":2867,"stars":24,"repoUrl":25,"updatedAt":2876},"sentry-elixir-sdk","setup Sentry SDK for Elixir","Full Sentry SDK setup for Elixir. Use when asked to \"add Sentry to Elixir\", \"install sentry for Elixir\", or configure error monitoring, tracing, logging, or crons for Elixir, Phoenix, or Plug applications. Supports Phoenix, Plug, LiveView, Oban, and Quantum.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2868,2871,2874,2875],{"name":2869,"slug":2870,"type":16},"Backend","backend",{"name":2872,"slug":2873,"type":16},"Elixir","elixir",{"name":2800,"slug":2801,"type":16},{"name":9,"slug":8,"type":16},"2026-07-11T05:53:11.69581",{"slug":2878,"name":2878,"fn":2879,"description":2880,"org":2881,"tags":2882,"stars":24,"repoUrl":25,"updatedAt":2889},"sentry-fix-issues","fix production issues with Sentry","Find and fix issues from Sentry using MCP. Use when asked to fix Sentry errors, debug production issues, investigate exceptions, or resolve bugs reported in Sentry. Methodically analyzes stack traces, breadcrumbs, traces, and context to identify root causes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2883,2884,2887,2888],{"name":2620,"slug":2621,"type":16},{"name":2885,"slug":2886,"type":16},"Incident Response","incident-response",{"name":2800,"slug":2801,"type":16},{"name":9,"slug":8,"type":16},"2026-07-12T06:08:35.550824"]