[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-datadog":3,"mdc-cgqx27-key":39,"related-org-sentry-datadog":614,"related-repo-sentry-datadog":792},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":35,"sourceUrl":37,"mdContent":38},"datadog","query Datadog telemetry and investigate behavior","Query live Datadog telemetry (logs, metrics, traces, spans, monitors, incidents, dashboards, services, hosts) through Datadog's Pup CLI. Use when users ask to investigate production behavior in Datadog, including searching logs, checking monitor status, inspecting traces or spans, looking up incidents, finding services, or correlating metrics. Do not use it for Sentry issues, repository\u002Fsource-code work, or ticketing.",{"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,25],{"name":14,"slug":15,"type":16},"Observability","observability","tag",{"name":18,"slug":19,"type":16},"SRE","sre",{"name":21,"slug":22,"type":16},"Monitoring","monitoring",{"name":24,"slug":4,"type":16},"Datadog",{"name":26,"slug":27,"type":16},"Debugging","debugging",300,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fjunior","2026-04-18T04:45:22.733842",null,29,[34],"tag-non-production",{"repoUrl":29,"stars":28,"forks":32,"topics":36,"description":31},[34],"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fjunior\u002Ftree\u002FHEAD\u002Fpackages\u002Fjunior-datadog\u002Fskills\u002Fdatadog","---\nname: datadog\ndescription: Query live Datadog telemetry (logs, metrics, traces, spans, monitors, incidents, dashboards, services, hosts) through Datadog's Pup CLI. Use when users ask to investigate production behavior in Datadog, including searching logs, checking monitor status, inspecting traces or spans, looking up incidents, finding services, or correlating metrics. Do not use it for Sentry issues, repository\u002Fsource-code work, or ticketing.\n---\n\n# Datadog Operations\n\nUse this skill for read-only Datadog observability investigations.\n\n## Reference loading\n\nLoad references conditionally based on the request:\n\n| Need                                               | Read                                                                                                                       |\n| -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |\n| Any Datadog operation                              | [references\u002Fapi-surface.md](references\u002Fapi-surface.md)                                                                     |\n| Log search, metric query, trace lookup, incidents  | [references\u002Fcommon-use-cases.md](references\u002Fcommon-use-cases.md), [references\u002Fquery-syntax.md](references\u002Fquery-syntax.md) |\n| Auth failures, permission errors, or tool failures | [references\u002Ftroubleshooting-workarounds.md](references\u002Ftroubleshooting-workarounds.md)                                     |\n\n## Workflow\n\n1. Resolve the operation and target:\n\n- Determine whether the request is a log search, metric query, trace\u002Fspan inspection, monitor lookup, incident lookup, dashboard\u002Fnotebook lookup, service\u002Fhost listing, or service-dependency map.\n- Prefer explicit env, service, host, monitor\u002Fincident IDs, trace IDs, or Datadog URLs when the user provides them.\n- When the user did not specify a scope, treat `datadog.env` and `datadog.service` conversation config as optional defaults. Explicit user input always wins over config.\n- Only set or change `datadog.env` and `datadog.service` when the user explicitly asks to store a default for this conversation or channel.\n- If the request refers to an earlier telemetry item indirectly, inspect the current thread for the existing ID or URL before asking the user to restate it.\n- Ask one concise follow-up only when a search is genuinely under-specified, for example when the user asks about \"errors\" with no env, service, or time window hint and the thread has no prior context.\n\n- If an active repository context exists (cloned repo or configured `github.repo`), check the repo root for `TELEMETRY.md` before forming queries. When present, use its query recipes, service\u002Fenv mappings, and investigation pivots as repo-specific guidance. Explicit user targets, IDs, URLs, and conversation config still win. If absent, continue normally.\n\n2. Use Pup:\n\n- Run Datadog commands with `pup --read-only --agent ...`. The plugin also sets read-only\u002Fagent env vars, but include the flags so command transcripts show the intended mode.\n- If you are unsure about a command or flag, inspect Pup's schema with `pup --read-only --agent agent schema --compact` or the relevant `pup --read-only --agent \u003Cgroup> --help` output before guessing.\n- Start narrow: pick the single most direct command for the request before broader search.\n  - Known incident ID: `pup --read-only --agent incidents get \u003Cincident_id>`\n  - Known monitor ID: `pup --read-only --agent monitors get \u003Cmonitor_id>`\n  - Known notebook ID: `pup --read-only --agent notebooks get \u003Cnotebook_id>`\n  - Known metric name: `pup --read-only --agent metrics query --query=\"avg:\u003Cmetric>{...}\" --from=\"15m\" --to=\"now\"`; use `metrics metadata get` or `metrics tags list` when the user wants available tags or dimensions.\n- For exploratory questions, prefer one focused Pup search\u002Flist\u002Faggregate command, then one follow-up fetch if needed.\n- For \"current error rate \u002F log volume \u002F top offenders\" questions, prefer `pup logs aggregate` over pulling raw log pages back through `pup logs search`.\n- For service-topology questions (\"what calls checkout?\", \"what does the payment API depend on?\"), prefer `pup apm dependencies list` or `pup apm flow-map` over stitching spans together manually.\n- Use `pup monitors search` or `pup monitors list` for \"is this alerting?\" and `pup incidents list` \u002F `pup incidents get` for incident context.\n- Use RUM commands only when the user asks about real-user \u002F browser telemetry, not for backend issues.\n\n3. Bound every query:\n\n- Always constrain time windows. Default to the last 15 minutes for \"right now\" questions and the last 24 hours for retrospective questions; otherwise use the window the user named.\n- Always include `env:` when `datadog.env` is set or the user named an env.\n- Always include `service:` when the user named a service or `datadog.service` is set and the command is service-scoped.\n- Cap result size. Prefer the default or small page sizes; do not page through thousands of logs when an aggregate command answers the question.\n\n4. Report the result:\n\n- Return the concrete answer first (counts, status, incident severity, trace timing, top offenders), then a short evidence block.\n- Include Datadog deep links when Pup returns them or when you can construct a stable app link from an ID. Do not fabricate links from incomplete identifiers.\n- Preserve interesting spans, log lines, or metric values inline only when they are evidence for the answer. Do not dump raw command output.\n- Keep routine tool chatter silent. Do not narrate every Pup search or fetch step.\n\n## Guardrails\n\n- Read-only only in this skill. Do not create, edit, mute, delete, import, submit, or resolve monitors, incidents, notebooks, dashboards, SLOs, metrics, API keys, RUM resources, or other Datadog objects.\n- Log, RUM, APM, and incident payloads can contain PII or sensitive customer data. Quote only the minimum needed to answer the question. Do not paste full raw log bodies or span payloads when a summary plus a deep link is enough.\n- If Pup returns `403`, `permission denied`, or similar, stop and tell the user the Datadog credentials could not access the requested resource. Do not guess at missing RBAC scopes.\n- If Datadog responds with `429 Too Many Requests`, wait briefly and retry the same query once. If it still fails, report the throttle and stop.\n- For large traces or span responses that are incomplete, report that fact; do not pretend the shown spans are complete.\n- Do not use this skill for Sentry issues, Linear\u002FGitHub ticketing, or source-code investigation. Hand those off to the matching skill.\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,59,66,71,155,161,171,256,265,459,468,520,529,552,558],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"datadog-operations",[50],{"type":51,"value":52},"text","Datadog Operations",{"type":45,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"Use this skill for read-only Datadog observability investigations.",{"type":45,"tag":60,"props":61,"children":63},"h2",{"id":62},"reference-loading",[64],{"type":51,"value":65},"Reference loading",{"type":45,"tag":54,"props":67,"children":68},{},[69],{"type":51,"value":70},"Load references conditionally based on the request:",{"type":45,"tag":72,"props":73,"children":74},"table",{},[75,94],{"type":45,"tag":76,"props":77,"children":78},"thead",{},[79],{"type":45,"tag":80,"props":81,"children":82},"tr",{},[83,89],{"type":45,"tag":84,"props":85,"children":86},"th",{},[87],{"type":51,"value":88},"Need",{"type":45,"tag":84,"props":90,"children":91},{},[92],{"type":51,"value":93},"Read",{"type":45,"tag":95,"props":96,"children":97},"tbody",{},[98,116,139],{"type":45,"tag":80,"props":99,"children":100},{},[101,107],{"type":45,"tag":102,"props":103,"children":104},"td",{},[105],{"type":51,"value":106},"Any Datadog operation",{"type":45,"tag":102,"props":108,"children":109},{},[110],{"type":45,"tag":111,"props":112,"children":114},"a",{"href":113},"references\u002Fapi-surface.md",[115],{"type":51,"value":113},{"type":45,"tag":80,"props":117,"children":118},{},[119,124],{"type":45,"tag":102,"props":120,"children":121},{},[122],{"type":51,"value":123},"Log search, metric query, trace lookup, incidents",{"type":45,"tag":102,"props":125,"children":126},{},[127,132,134],{"type":45,"tag":111,"props":128,"children":130},{"href":129},"references\u002Fcommon-use-cases.md",[131],{"type":51,"value":129},{"type":51,"value":133},", ",{"type":45,"tag":111,"props":135,"children":137},{"href":136},"references\u002Fquery-syntax.md",[138],{"type":51,"value":136},{"type":45,"tag":80,"props":140,"children":141},{},[142,147],{"type":45,"tag":102,"props":143,"children":144},{},[145],{"type":51,"value":146},"Auth failures, permission errors, or tool failures",{"type":45,"tag":102,"props":148,"children":149},{},[150],{"type":45,"tag":111,"props":151,"children":153},{"href":152},"references\u002Ftroubleshooting-workarounds.md",[154],{"type":51,"value":152},{"type":45,"tag":60,"props":156,"children":158},{"id":157},"workflow",[159],{"type":51,"value":160},"Workflow",{"type":45,"tag":162,"props":163,"children":164},"ol",{},[165],{"type":45,"tag":166,"props":167,"children":168},"li",{},[169],{"type":51,"value":170},"Resolve the operation and target:",{"type":45,"tag":172,"props":173,"children":174},"ul",{},[175,180,185,207,225,230,235],{"type":45,"tag":166,"props":176,"children":177},{},[178],{"type":51,"value":179},"Determine whether the request is a log search, metric query, trace\u002Fspan inspection, monitor lookup, incident lookup, dashboard\u002Fnotebook lookup, service\u002Fhost listing, or service-dependency map.",{"type":45,"tag":166,"props":181,"children":182},{},[183],{"type":51,"value":184},"Prefer explicit env, service, host, monitor\u002Fincident IDs, trace IDs, or Datadog URLs when the user provides them.",{"type":45,"tag":166,"props":186,"children":187},{},[188,190,197,199,205],{"type":51,"value":189},"When the user did not specify a scope, treat ",{"type":45,"tag":191,"props":192,"children":194},"code",{"className":193},[],[195],{"type":51,"value":196},"datadog.env",{"type":51,"value":198}," and ",{"type":45,"tag":191,"props":200,"children":202},{"className":201},[],[203],{"type":51,"value":204},"datadog.service",{"type":51,"value":206}," conversation config as optional defaults. Explicit user input always wins over config.",{"type":45,"tag":166,"props":208,"children":209},{},[210,212,217,218,223],{"type":51,"value":211},"Only set or change ",{"type":45,"tag":191,"props":213,"children":215},{"className":214},[],[216],{"type":51,"value":196},{"type":51,"value":198},{"type":45,"tag":191,"props":219,"children":221},{"className":220},[],[222],{"type":51,"value":204},{"type":51,"value":224}," when the user explicitly asks to store a default for this conversation or channel.",{"type":45,"tag":166,"props":226,"children":227},{},[228],{"type":51,"value":229},"If the request refers to an earlier telemetry item indirectly, inspect the current thread for the existing ID or URL before asking the user to restate it.",{"type":45,"tag":166,"props":231,"children":232},{},[233],{"type":51,"value":234},"Ask one concise follow-up only when a search is genuinely under-specified, for example when the user asks about \"errors\" with no env, service, or time window hint and the thread has no prior context.",{"type":45,"tag":166,"props":236,"children":237},{},[238,240,246,248,254],{"type":51,"value":239},"If an active repository context exists (cloned repo or configured ",{"type":45,"tag":191,"props":241,"children":243},{"className":242},[],[244],{"type":51,"value":245},"github.repo",{"type":51,"value":247},"), check the repo root for ",{"type":45,"tag":191,"props":249,"children":251},{"className":250},[],[252],{"type":51,"value":253},"TELEMETRY.md",{"type":51,"value":255}," before forming queries. When present, use its query recipes, service\u002Fenv mappings, and investigation pivots as repo-specific guidance. Explicit user targets, IDs, URLs, and conversation config still win. If absent, continue normally.",{"type":45,"tag":162,"props":257,"children":259},{"start":258},2,[260],{"type":45,"tag":166,"props":261,"children":262},{},[263],{"type":51,"value":264},"Use Pup:",{"type":45,"tag":172,"props":266,"children":267},{},[268,281,302,372,377,398,418,454],{"type":45,"tag":166,"props":269,"children":270},{},[271,273,279],{"type":51,"value":272},"Run Datadog commands with ",{"type":45,"tag":191,"props":274,"children":276},{"className":275},[],[277],{"type":51,"value":278},"pup --read-only --agent ...",{"type":51,"value":280},". The plugin also sets read-only\u002Fagent env vars, but include the flags so command transcripts show the intended mode.",{"type":45,"tag":166,"props":282,"children":283},{},[284,286,292,294,300],{"type":51,"value":285},"If you are unsure about a command or flag, inspect Pup's schema with ",{"type":45,"tag":191,"props":287,"children":289},{"className":288},[],[290],{"type":51,"value":291},"pup --read-only --agent agent schema --compact",{"type":51,"value":293}," or the relevant ",{"type":45,"tag":191,"props":295,"children":297},{"className":296},[],[298],{"type":51,"value":299},"pup --read-only --agent \u003Cgroup> --help",{"type":51,"value":301}," output before guessing.",{"type":45,"tag":166,"props":303,"children":304},{},[305,307],{"type":51,"value":306},"Start narrow: pick the single most direct command for the request before broader search.\n",{"type":45,"tag":172,"props":308,"children":309},{},[310,321,332,343],{"type":45,"tag":166,"props":311,"children":312},{},[313,315],{"type":51,"value":314},"Known incident ID: ",{"type":45,"tag":191,"props":316,"children":318},{"className":317},[],[319],{"type":51,"value":320},"pup --read-only --agent incidents get \u003Cincident_id>",{"type":45,"tag":166,"props":322,"children":323},{},[324,326],{"type":51,"value":325},"Known monitor ID: ",{"type":45,"tag":191,"props":327,"children":329},{"className":328},[],[330],{"type":51,"value":331},"pup --read-only --agent monitors get \u003Cmonitor_id>",{"type":45,"tag":166,"props":333,"children":334},{},[335,337],{"type":51,"value":336},"Known notebook ID: ",{"type":45,"tag":191,"props":338,"children":340},{"className":339},[],[341],{"type":51,"value":342},"pup --read-only --agent notebooks get \u003Cnotebook_id>",{"type":45,"tag":166,"props":344,"children":345},{},[346,348,354,356,362,364,370],{"type":51,"value":347},"Known metric name: ",{"type":45,"tag":191,"props":349,"children":351},{"className":350},[],[352],{"type":51,"value":353},"pup --read-only --agent metrics query --query=\"avg:\u003Cmetric>{...}\" --from=\"15m\" --to=\"now\"",{"type":51,"value":355},"; use ",{"type":45,"tag":191,"props":357,"children":359},{"className":358},[],[360],{"type":51,"value":361},"metrics metadata get",{"type":51,"value":363}," or ",{"type":45,"tag":191,"props":365,"children":367},{"className":366},[],[368],{"type":51,"value":369},"metrics tags list",{"type":51,"value":371}," when the user wants available tags or dimensions.",{"type":45,"tag":166,"props":373,"children":374},{},[375],{"type":51,"value":376},"For exploratory questions, prefer one focused Pup search\u002Flist\u002Faggregate command, then one follow-up fetch if needed.",{"type":45,"tag":166,"props":378,"children":379},{},[380,382,388,390,396],{"type":51,"value":381},"For \"current error rate \u002F log volume \u002F top offenders\" questions, prefer ",{"type":45,"tag":191,"props":383,"children":385},{"className":384},[],[386],{"type":51,"value":387},"pup logs aggregate",{"type":51,"value":389}," over pulling raw log pages back through ",{"type":45,"tag":191,"props":391,"children":393},{"className":392},[],[394],{"type":51,"value":395},"pup logs search",{"type":51,"value":397},".",{"type":45,"tag":166,"props":399,"children":400},{},[401,403,409,410,416],{"type":51,"value":402},"For service-topology questions (\"what calls checkout?\", \"what does the payment API depend on?\"), prefer ",{"type":45,"tag":191,"props":404,"children":406},{"className":405},[],[407],{"type":51,"value":408},"pup apm dependencies list",{"type":51,"value":363},{"type":45,"tag":191,"props":411,"children":413},{"className":412},[],[414],{"type":51,"value":415},"pup apm flow-map",{"type":51,"value":417}," over stitching spans together manually.",{"type":45,"tag":166,"props":419,"children":420},{},[421,423,429,430,436,438,444,446,452],{"type":51,"value":422},"Use ",{"type":45,"tag":191,"props":424,"children":426},{"className":425},[],[427],{"type":51,"value":428},"pup monitors search",{"type":51,"value":363},{"type":45,"tag":191,"props":431,"children":433},{"className":432},[],[434],{"type":51,"value":435},"pup monitors list",{"type":51,"value":437}," for \"is this alerting?\" and ",{"type":45,"tag":191,"props":439,"children":441},{"className":440},[],[442],{"type":51,"value":443},"pup incidents list",{"type":51,"value":445}," \u002F ",{"type":45,"tag":191,"props":447,"children":449},{"className":448},[],[450],{"type":51,"value":451},"pup incidents get",{"type":51,"value":453}," for incident context.",{"type":45,"tag":166,"props":455,"children":456},{},[457],{"type":51,"value":458},"Use RUM commands only when the user asks about real-user \u002F browser telemetry, not for backend issues.",{"type":45,"tag":162,"props":460,"children":462},{"start":461},3,[463],{"type":45,"tag":166,"props":464,"children":465},{},[466],{"type":51,"value":467},"Bound every query:",{"type":45,"tag":172,"props":469,"children":470},{},[471,476,496,515],{"type":45,"tag":166,"props":472,"children":473},{},[474],{"type":51,"value":475},"Always constrain time windows. Default to the last 15 minutes for \"right now\" questions and the last 24 hours for retrospective questions; otherwise use the window the user named.",{"type":45,"tag":166,"props":477,"children":478},{},[479,481,487,489,494],{"type":51,"value":480},"Always include ",{"type":45,"tag":191,"props":482,"children":484},{"className":483},[],[485],{"type":51,"value":486},"env:",{"type":51,"value":488}," when ",{"type":45,"tag":191,"props":490,"children":492},{"className":491},[],[493],{"type":51,"value":196},{"type":51,"value":495}," is set or the user named an env.",{"type":45,"tag":166,"props":497,"children":498},{},[499,500,506,508,513],{"type":51,"value":480},{"type":45,"tag":191,"props":501,"children":503},{"className":502},[],[504],{"type":51,"value":505},"service:",{"type":51,"value":507}," when the user named a service or ",{"type":45,"tag":191,"props":509,"children":511},{"className":510},[],[512],{"type":51,"value":204},{"type":51,"value":514}," is set and the command is service-scoped.",{"type":45,"tag":166,"props":516,"children":517},{},[518],{"type":51,"value":519},"Cap result size. Prefer the default or small page sizes; do not page through thousands of logs when an aggregate command answers the question.",{"type":45,"tag":162,"props":521,"children":523},{"start":522},4,[524],{"type":45,"tag":166,"props":525,"children":526},{},[527],{"type":51,"value":528},"Report the result:",{"type":45,"tag":172,"props":530,"children":531},{},[532,537,542,547],{"type":45,"tag":166,"props":533,"children":534},{},[535],{"type":51,"value":536},"Return the concrete answer first (counts, status, incident severity, trace timing, top offenders), then a short evidence block.",{"type":45,"tag":166,"props":538,"children":539},{},[540],{"type":51,"value":541},"Include Datadog deep links when Pup returns them or when you can construct a stable app link from an ID. Do not fabricate links from incomplete identifiers.",{"type":45,"tag":166,"props":543,"children":544},{},[545],{"type":51,"value":546},"Preserve interesting spans, log lines, or metric values inline only when they are evidence for the answer. Do not dump raw command output.",{"type":45,"tag":166,"props":548,"children":549},{},[550],{"type":51,"value":551},"Keep routine tool chatter silent. Do not narrate every Pup search or fetch step.",{"type":45,"tag":60,"props":553,"children":555},{"id":554},"guardrails",[556],{"type":51,"value":557},"Guardrails",{"type":45,"tag":172,"props":559,"children":560},{},[561,566,571,591,604,609],{"type":45,"tag":166,"props":562,"children":563},{},[564],{"type":51,"value":565},"Read-only only in this skill. Do not create, edit, mute, delete, import, submit, or resolve monitors, incidents, notebooks, dashboards, SLOs, metrics, API keys, RUM resources, or other Datadog objects.",{"type":45,"tag":166,"props":567,"children":568},{},[569],{"type":51,"value":570},"Log, RUM, APM, and incident payloads can contain PII or sensitive customer data. Quote only the minimum needed to answer the question. Do not paste full raw log bodies or span payloads when a summary plus a deep link is enough.",{"type":45,"tag":166,"props":572,"children":573},{},[574,576,582,583,589],{"type":51,"value":575},"If Pup returns ",{"type":45,"tag":191,"props":577,"children":579},{"className":578},[],[580],{"type":51,"value":581},"403",{"type":51,"value":133},{"type":45,"tag":191,"props":584,"children":586},{"className":585},[],[587],{"type":51,"value":588},"permission denied",{"type":51,"value":590},", or similar, stop and tell the user the Datadog credentials could not access the requested resource. Do not guess at missing RBAC scopes.",{"type":45,"tag":166,"props":592,"children":593},{},[594,596,602],{"type":51,"value":595},"If Datadog responds with ",{"type":45,"tag":191,"props":597,"children":599},{"className":598},[],[600],{"type":51,"value":601},"429 Too Many Requests",{"type":51,"value":603},", wait briefly and retry the same query once. If it still fails, report the throttle and stop.",{"type":45,"tag":166,"props":605,"children":606},{},[607],{"type":51,"value":608},"For large traces or span responses that are incomplete, report that fact; do not pretend the shown spans are complete.",{"type":45,"tag":166,"props":610,"children":611},{},[612],{"type":51,"value":613},"Do not use this skill for Sentry issues, Linear\u002FGitHub ticketing, or source-code investigation. Hand those off to the matching skill.",{"items":615,"total":791},[616,639,653,668,682,699,715,729,739,750,760,778],{"slug":617,"name":617,"fn":618,"description":619,"org":620,"tags":621,"stars":636,"repoUrl":637,"updatedAt":638},"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},[622,623,626,629,630,633],{"name":26,"slug":27,"type":16},{"name":624,"slug":625,"type":16},"iOS","ios",{"name":627,"slug":628,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":631,"slug":632,"type":16},"Testing","testing",{"name":634,"slug":635,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":640,"name":640,"fn":641,"description":642,"org":643,"tags":644,"stars":636,"repoUrl":637,"updatedAt":652},"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},[645,648,649,650,651],{"name":646,"slug":647,"type":16},"CLI","cli",{"name":624,"slug":625,"type":16},{"name":627,"slug":628,"type":16},{"name":631,"slug":632,"type":16},{"name":634,"slug":635,"type":16},"2026-04-06T18:13:36.13414",{"slug":654,"name":654,"fn":655,"description":656,"org":657,"tags":658,"stars":665,"repoUrl":666,"updatedAt":667},"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},[659,662],{"name":660,"slug":661,"type":16},"Documentation","documentation",{"name":663,"slug":664,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":669,"name":669,"fn":670,"description":671,"org":672,"tags":673,"stars":665,"repoUrl":666,"updatedAt":681},"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},[674,677,678],{"name":675,"slug":676,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":679,"slug":680,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":683,"name":683,"fn":684,"description":685,"org":686,"tags":687,"stars":665,"repoUrl":666,"updatedAt":698},"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},[688,691,694,695],{"name":689,"slug":690,"type":16},"Branding","branding",{"name":692,"slug":693,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":696,"slug":697,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":700,"name":700,"fn":701,"description":702,"org":703,"tags":704,"stars":665,"repoUrl":666,"updatedAt":714},"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},[705,708,711],{"name":706,"slug":707,"type":16},"Claude Code","claude-code",{"name":709,"slug":710,"type":16},"Configuration","configuration",{"name":712,"slug":713,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":716,"name":716,"fn":717,"description":718,"org":719,"tags":720,"stars":665,"repoUrl":666,"updatedAt":728},"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},[721,723,724,727],{"name":722,"slug":716,"type":16},"Code Review",{"name":663,"slug":664,"type":16},{"name":725,"slug":726,"type":16},"Performance","performance",{"name":712,"slug":713,"type":16},"2026-05-15T06:16:35.824864",{"slug":730,"name":730,"fn":731,"description":732,"org":733,"tags":734,"stars":665,"repoUrl":666,"updatedAt":738},"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},[735],{"name":736,"slug":737,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":740,"name":740,"fn":741,"description":742,"org":743,"tags":744,"stars":665,"repoUrl":666,"updatedAt":749},"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},[745,748],{"name":746,"slug":747,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":751,"name":751,"fn":752,"description":753,"org":754,"tags":755,"stars":665,"repoUrl":666,"updatedAt":759},"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},[756,757,758],{"name":663,"slug":664,"type":16},{"name":746,"slug":747,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":761,"name":761,"fn":762,"description":763,"org":764,"tags":765,"stars":665,"repoUrl":666,"updatedAt":777},"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},[766,769,770,773,776],{"name":767,"slug":768,"type":16},"Access Control","access-control",{"name":736,"slug":737,"type":16},{"name":771,"slug":772,"type":16},"Django","django",{"name":774,"slug":775,"type":16},"Python","python",{"name":712,"slug":713,"type":16},"2026-05-15T06:16:43.098698",{"slug":779,"name":779,"fn":780,"description":781,"org":782,"tags":783,"stars":665,"repoUrl":666,"updatedAt":790},"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},[784,785,788,789],{"name":722,"slug":716,"type":16},{"name":786,"slug":787,"type":16},"Database","database",{"name":771,"slug":772,"type":16},{"name":725,"slug":726,"type":16},"2026-05-15T06:16:24.832813",88,{"items":793,"total":878},[794,813,827,835,852,865],{"slug":795,"name":795,"fn":796,"description":797,"org":798,"tags":799,"stars":28,"repoUrl":29,"updatedAt":812},"amplitude","query Amplitude product analytics","Query read-only Amplitude product analytics. Use when users ask about active users, product usage, events, segmentation, funnels, conversion, retention, charts, dashboards, experiments, cohorts, taxonomy, session replay, feature flags, guides, surveys, feedback, agent analytics, or individual user activity in Amplitude. Do not use for changing Amplitude charts, dashboards, experiments, cohorts, flags, taxonomy, or project configuration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[800,803,806,809],{"name":801,"slug":802,"type":16},"Analytics","analytics",{"name":804,"slug":805,"type":16},"Charts","charts",{"name":807,"slug":808,"type":16},"Dashboards","dashboards",{"name":810,"slug":811,"type":16},"Reporting","reporting","2026-07-11T05:53:26.659115",{"slug":814,"name":814,"fn":815,"description":816,"org":817,"tags":818,"stars":28,"repoUrl":29,"updatedAt":826},"cloudflare","investigate Cloudflare production operations","Cloudflare production operations via the Cloudflare API MCP server. Use when users ask to investigate Workers errors or performance, check build or deployment status, query logs, inspect DNS records, check load balancer pool health, review Zero Trust tunnels, or manage Cloudflare resources. Do not use for Sentry issues, GitHub\u002FLinear ticketing, or non-Cloudflare infrastructure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[819,821,824,825],{"name":820,"slug":814,"type":16},"Cloudflare",{"name":822,"slug":823,"type":16},"Deployment","deployment",{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},"2026-07-01T07:46:37.892035",{"slug":4,"name":4,"fn":5,"description":6,"org":828,"tags":829,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[830,831,832,833,834],{"name":24,"slug":4,"type":16},{"name":26,"slug":27,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"slug":836,"name":836,"fn":837,"description":838,"org":839,"tags":840,"stars":28,"repoUrl":29,"updatedAt":851},"junior","build and update Junior plugins","Build, review, or update Junior extension skills and plugins. Use when users ask to create a Junior SKILL.md, app skill, plugin, plugin.yaml, packaged plugin, MCP-backed plugin, OAuth or credentialed plugin, or to validate Junior extension files. Do not use for ordinary Junior usage, provider workflows, generic code editing, or non-Junior agent-skill authoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[841,844,845,848],{"name":842,"slug":843,"type":16},"Automation","automation",{"name":663,"slug":664,"type":16},{"name":846,"slug":847,"type":16},"MCP","mcp",{"name":849,"slug":850,"type":16},"Plugin Development","plugin-development","2026-07-31T06:23:36.591638",{"slug":853,"name":853,"fn":854,"description":855,"org":856,"tags":857,"stars":28,"repoUrl":29,"updatedAt":864},"junior-qa","validate Junior application changes","Validate Junior changes through local app-facing paths. Use for local client or agent QA, dashboard mock reporting UI QA, PR readiness, plugin CLI commands, skill\u002Ftool\u002Fprompt\u002Fplugin behavior, and behavior that tests do not cover well but can be exercised with `pnpm cli -- chat ...`, another `pnpm cli` command, or `JUNIOR_DASHBOARD_MOCK_CONVERSATIONS=true pnpm dev`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[858,859,860,863],{"name":26,"slug":27,"type":16},{"name":663,"slug":664,"type":16},{"name":861,"slug":862,"type":16},"QA","qa",{"name":631,"slug":632,"type":16},"2026-07-31T06:23:35.910415",{"slug":866,"name":866,"fn":867,"description":868,"org":869,"tags":870,"stars":28,"repoUrl":29,"updatedAt":877},"vercel","debug Vercel deployments and logs","Query Vercel deployments, build logs, runtime logs, and deployment status through the Vercel CLI. Use when users ask to debug Vercel deployments, inspect failed builds, fetch production or preview runtime logs, find a deployment for a project or commit SHA, or investigate Vercel-hosted app errors. Do not use it for deploying, rolling back, changing project settings, domains, env vars, caches, storage, or any other Vercel mutation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[871,872,873,874,875],{"name":646,"slug":647,"type":16},{"name":26,"slug":27,"type":16},{"name":822,"slug":823,"type":16},{"name":14,"slug":15,"type":16},{"name":876,"slug":866,"type":16},"Vercel","2026-07-24T05:40:46.832412",6]