[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-vercel":3,"mdc-rtaiv4-key":39,"related-org-sentry-vercel":759,"related-repo-sentry-vercel":934},{"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},"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},"sentry","Sentry","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fsentry.png","getsentry",[13,17,19,22,25],{"name":14,"slug":15,"type":16},"Observability","observability","tag",{"name":18,"slug":4,"type":16},"Vercel",{"name":20,"slug":21,"type":16},"CLI","cli",{"name":23,"slug":24,"type":16},"Deployment","deployment",{"name":26,"slug":27,"type":16},"Debugging","debugging",300,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fjunior","2026-07-24T05:40:46.832412",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-vercel\u002Fskills\u002Fvercel","---\nname: vercel\ndescription: 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.\n---\n\n# Vercel Operations\n\nUse this skill for read-only Vercel deployment and log investigations.\n\n## Read-only command allowlist\n\nRun only these Vercel CLI commands:\n\n- `vercel logs`\n- `vercel inspect`\n- `vercel list` or `vercel ls`\n- `vercel help`, `vercel --help`, or `vercel \u003Ccommand> --help`\n\nDo not run `deploy`, `rollback`, `promote`, `remove`, `env`, `alias`, `dns`, `project`, `cache`, `blob`, `certs`, `teams`, `domains`, `git`, `link`, `login`, `logout`, `switch`, `pull`, `build`, `dev`, `redeploy`, `bisect`, `api`, or any command that creates, updates, deletes, purges, promotes, deploys, links, authenticates, or changes Vercel state.\n\n## Workflow\n\n1. Resolve the target:\n\n- Determine whether the user needs runtime logs, build logs, deployment status, or deployment discovery.\n- Prefer explicit deployment IDs, deployment URLs, project names, environments, branch names, commit SHAs, status filters, and time windows from the user.\n- When the user did not specify a project or team, read `vercel.project` and `vercel.team` with `jr-rpc config get` and treat them as optional conversation defaults. Explicit user input always wins.\n- Only set or change `vercel.project` and `vercel.team` when the user explicitly asks to store a default for this conversation or channel.\n- Ask one concise follow-up only when the request cannot be bounded to a project, deployment, commit, or time window from the thread or config.\n\n2. Run the narrowest safe command:\n\n- The runtime provides Vercel authentication. Do not set, print, echo, write, or ask for `JUNIOR_VERCEL_TOKEN` or `VERCEL_TOKEN`.\n- If a command shape or flag is unclear, inspect `vercel \u003Ccommand> --help` before guessing.\n- Add `--scope \u003Cteam>` when a team is known.\n- Add `--project \u003Cproject>` when a project is known and the command supports it.\n- For runtime logs, prefer `vercel logs --project \u003Cproject> --since \u003Cwindow> --limit 20 --json` plus user-provided filters such as `--environment`, `--level`, `--status-code`, `--source`, `--query`, or `--deployment`.\n- Use `vercel inspect \u003Cdeployment-id-or-url> --logs` for build logs. Add `--wait` only when the user explicitly wants to wait for an active build; also bound it with `--timeout`.\n- Use `vercel list \u003Cproject>` or `vercel ls \u003Cproject>` to find deployments. Prefer filters such as `--status`, `--environment`, `--prod`, or `--meta githubCommitSha=\u003Csha>` when available.\n- For a deployment watch, call the `vercel_deploymentSource` plugin tool with the project name, optional team slug or ID, deployment target, and full 40-character commit SHA. The tool resolves the canonical project ID through Vercel before Junior creates the conversation subscription.\n- Use `--follow` only when the user asks for live logs, and stop once enough evidence is captured. Do not leave a streaming command running indefinitely.\n\n3. Bound and minimize output:\n\n- Always use a time window for log searches. Default to the last hour for \"right now\" incidents and the last 24 hours for retrospective deployment investigations.\n- Prefer JSON output for `vercel logs` when parsing or summarizing.\n- Keep page sizes small. Start with 20 log lines or fewer unless the user asked for more.\n- Quote only the minimum log text needed as evidence. Vercel logs may contain customer data, secrets, request headers, or other sensitive payloads.\n\n4. Report the result:\n\n- Answer the user first with deployment status, error pattern, top failing route\u002Ffunction, or the absence of matching logs.\n- Include the project, environment, deployment, time window, and filters used.\n- Include Vercel deployment or dashboard URLs when the CLI output provides them. Do not fabricate URLs from incomplete IDs.\n\n## Failure handling\n\n- Missing `JUNIOR_VERCEL_TOKEN`: tell the operator to add `JUNIOR_VERCEL_TOKEN` to the Junior deployment environment and redeploy.\n- `401`, invalid token, expired token, or revoked token: report that the configured Vercel token cannot authenticate.\n- `403` or permission denied: report that the configured Vercel token or service account cannot read the requested project\u002Fdeployment\u002Flogs. Do not guess missing Vercel permission scopes.\n- Project not found: confirm `vercel.project`, `vercel.team`, and the user-provided project name or scope.\n- Rate limiting or transient network failure: retry the same bounded read command once. If it still fails, report the throttle or network failure and stop.\n- Mutation request: decline briefly and explain this skill is limited to read-only Vercel logs, deployment inspection, and deployment listing.\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,53,59,66,71,137,311,317,326,391,400,615,624,654,663,681,687],{"type":45,"tag":46,"props":47,"children":49},"element","h1",{"id":48},"vercel-operations",[50],{"type":51,"value":52},"text","Vercel Operations",{"type":45,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"Use this skill for read-only Vercel deployment and log investigations.",{"type":45,"tag":60,"props":61,"children":63},"h2",{"id":62},"read-only-command-allowlist",[64],{"type":51,"value":65},"Read-only command allowlist",{"type":45,"tag":54,"props":67,"children":68},{},[69],{"type":51,"value":70},"Run only these Vercel CLI commands:",{"type":45,"tag":72,"props":73,"children":74},"ul",{},[75,86,95,112],{"type":45,"tag":76,"props":77,"children":78},"li",{},[79],{"type":45,"tag":80,"props":81,"children":83},"code",{"className":82},[],[84],{"type":51,"value":85},"vercel logs",{"type":45,"tag":76,"props":87,"children":88},{},[89],{"type":45,"tag":80,"props":90,"children":92},{"className":91},[],[93],{"type":51,"value":94},"vercel inspect",{"type":45,"tag":76,"props":96,"children":97},{},[98,104,106],{"type":45,"tag":80,"props":99,"children":101},{"className":100},[],[102],{"type":51,"value":103},"vercel list",{"type":51,"value":105}," or ",{"type":45,"tag":80,"props":107,"children":109},{"className":108},[],[110],{"type":51,"value":111},"vercel ls",{"type":45,"tag":76,"props":113,"children":114},{},[115,121,123,129,131],{"type":45,"tag":80,"props":116,"children":118},{"className":117},[],[119],{"type":51,"value":120},"vercel help",{"type":51,"value":122},", ",{"type":45,"tag":80,"props":124,"children":126},{"className":125},[],[127],{"type":51,"value":128},"vercel --help",{"type":51,"value":130},", or ",{"type":45,"tag":80,"props":132,"children":134},{"className":133},[],[135],{"type":51,"value":136},"vercel \u003Ccommand> --help",{"type":45,"tag":54,"props":138,"children":139},{},[140,142,148,149,155,156,162,163,169,170,176,177,183,184,190,191,197,198,204,205,211,212,218,219,225,226,232,233,239,240,246,247,253,254,260,261,267,268,274,275,281,282,288,289,295,296,302,303,309],{"type":51,"value":141},"Do not run ",{"type":45,"tag":80,"props":143,"children":145},{"className":144},[],[146],{"type":51,"value":147},"deploy",{"type":51,"value":122},{"type":45,"tag":80,"props":150,"children":152},{"className":151},[],[153],{"type":51,"value":154},"rollback",{"type":51,"value":122},{"type":45,"tag":80,"props":157,"children":159},{"className":158},[],[160],{"type":51,"value":161},"promote",{"type":51,"value":122},{"type":45,"tag":80,"props":164,"children":166},{"className":165},[],[167],{"type":51,"value":168},"remove",{"type":51,"value":122},{"type":45,"tag":80,"props":171,"children":173},{"className":172},[],[174],{"type":51,"value":175},"env",{"type":51,"value":122},{"type":45,"tag":80,"props":178,"children":180},{"className":179},[],[181],{"type":51,"value":182},"alias",{"type":51,"value":122},{"type":45,"tag":80,"props":185,"children":187},{"className":186},[],[188],{"type":51,"value":189},"dns",{"type":51,"value":122},{"type":45,"tag":80,"props":192,"children":194},{"className":193},[],[195],{"type":51,"value":196},"project",{"type":51,"value":122},{"type":45,"tag":80,"props":199,"children":201},{"className":200},[],[202],{"type":51,"value":203},"cache",{"type":51,"value":122},{"type":45,"tag":80,"props":206,"children":208},{"className":207},[],[209],{"type":51,"value":210},"blob",{"type":51,"value":122},{"type":45,"tag":80,"props":213,"children":215},{"className":214},[],[216],{"type":51,"value":217},"certs",{"type":51,"value":122},{"type":45,"tag":80,"props":220,"children":222},{"className":221},[],[223],{"type":51,"value":224},"teams",{"type":51,"value":122},{"type":45,"tag":80,"props":227,"children":229},{"className":228},[],[230],{"type":51,"value":231},"domains",{"type":51,"value":122},{"type":45,"tag":80,"props":234,"children":236},{"className":235},[],[237],{"type":51,"value":238},"git",{"type":51,"value":122},{"type":45,"tag":80,"props":241,"children":243},{"className":242},[],[244],{"type":51,"value":245},"link",{"type":51,"value":122},{"type":45,"tag":80,"props":248,"children":250},{"className":249},[],[251],{"type":51,"value":252},"login",{"type":51,"value":122},{"type":45,"tag":80,"props":255,"children":257},{"className":256},[],[258],{"type":51,"value":259},"logout",{"type":51,"value":122},{"type":45,"tag":80,"props":262,"children":264},{"className":263},[],[265],{"type":51,"value":266},"switch",{"type":51,"value":122},{"type":45,"tag":80,"props":269,"children":271},{"className":270},[],[272],{"type":51,"value":273},"pull",{"type":51,"value":122},{"type":45,"tag":80,"props":276,"children":278},{"className":277},[],[279],{"type":51,"value":280},"build",{"type":51,"value":122},{"type":45,"tag":80,"props":283,"children":285},{"className":284},[],[286],{"type":51,"value":287},"dev",{"type":51,"value":122},{"type":45,"tag":80,"props":290,"children":292},{"className":291},[],[293],{"type":51,"value":294},"redeploy",{"type":51,"value":122},{"type":45,"tag":80,"props":297,"children":299},{"className":298},[],[300],{"type":51,"value":301},"bisect",{"type":51,"value":122},{"type":45,"tag":80,"props":304,"children":306},{"className":305},[],[307],{"type":51,"value":308},"api",{"type":51,"value":310},", or any command that creates, updates, deletes, purges, promotes, deploys, links, authenticates, or changes Vercel state.",{"type":45,"tag":60,"props":312,"children":314},{"id":313},"workflow",[315],{"type":51,"value":316},"Workflow",{"type":45,"tag":318,"props":319,"children":320},"ol",{},[321],{"type":45,"tag":76,"props":322,"children":323},{},[324],{"type":51,"value":325},"Resolve the target:",{"type":45,"tag":72,"props":327,"children":328},{},[329,334,339,368,386],{"type":45,"tag":76,"props":330,"children":331},{},[332],{"type":51,"value":333},"Determine whether the user needs runtime logs, build logs, deployment status, or deployment discovery.",{"type":45,"tag":76,"props":335,"children":336},{},[337],{"type":51,"value":338},"Prefer explicit deployment IDs, deployment URLs, project names, environments, branch names, commit SHAs, status filters, and time windows from the user.",{"type":45,"tag":76,"props":340,"children":341},{},[342,344,350,352,358,360,366],{"type":51,"value":343},"When the user did not specify a project or team, read ",{"type":45,"tag":80,"props":345,"children":347},{"className":346},[],[348],{"type":51,"value":349},"vercel.project",{"type":51,"value":351}," and ",{"type":45,"tag":80,"props":353,"children":355},{"className":354},[],[356],{"type":51,"value":357},"vercel.team",{"type":51,"value":359}," with ",{"type":45,"tag":80,"props":361,"children":363},{"className":362},[],[364],{"type":51,"value":365},"jr-rpc config get",{"type":51,"value":367}," and treat them as optional conversation defaults. Explicit user input always wins.",{"type":45,"tag":76,"props":369,"children":370},{},[371,373,378,379,384],{"type":51,"value":372},"Only set or change ",{"type":45,"tag":80,"props":374,"children":376},{"className":375},[],[377],{"type":51,"value":349},{"type":51,"value":351},{"type":45,"tag":80,"props":380,"children":382},{"className":381},[],[383],{"type":51,"value":357},{"type":51,"value":385}," when the user explicitly asks to store a default for this conversation or channel.",{"type":45,"tag":76,"props":387,"children":388},{},[389],{"type":51,"value":390},"Ask one concise follow-up only when the request cannot be bounded to a project, deployment, commit, or time window from the thread or config.",{"type":45,"tag":318,"props":392,"children":394},{"start":393},2,[395],{"type":45,"tag":76,"props":396,"children":397},{},[398],{"type":51,"value":399},"Run the narrowest safe command:",{"type":45,"tag":72,"props":401,"children":402},{},[403,423,435,448,460,515,543,590,603],{"type":45,"tag":76,"props":404,"children":405},{},[406,408,414,415,421],{"type":51,"value":407},"The runtime provides Vercel authentication. Do not set, print, echo, write, or ask for ",{"type":45,"tag":80,"props":409,"children":411},{"className":410},[],[412],{"type":51,"value":413},"JUNIOR_VERCEL_TOKEN",{"type":51,"value":105},{"type":45,"tag":80,"props":416,"children":418},{"className":417},[],[419],{"type":51,"value":420},"VERCEL_TOKEN",{"type":51,"value":422},".",{"type":45,"tag":76,"props":424,"children":425},{},[426,428,433],{"type":51,"value":427},"If a command shape or flag is unclear, inspect ",{"type":45,"tag":80,"props":429,"children":431},{"className":430},[],[432],{"type":51,"value":136},{"type":51,"value":434}," before guessing.",{"type":45,"tag":76,"props":436,"children":437},{},[438,440,446],{"type":51,"value":439},"Add ",{"type":45,"tag":80,"props":441,"children":443},{"className":442},[],[444],{"type":51,"value":445},"--scope \u003Cteam>",{"type":51,"value":447}," when a team is known.",{"type":45,"tag":76,"props":449,"children":450},{},[451,452,458],{"type":51,"value":439},{"type":45,"tag":80,"props":453,"children":455},{"className":454},[],[456],{"type":51,"value":457},"--project \u003Cproject>",{"type":51,"value":459}," when a project is known and the command supports it.",{"type":45,"tag":76,"props":461,"children":462},{},[463,465,471,473,479,480,486,487,493,494,500,501,507,508,514],{"type":51,"value":464},"For runtime logs, prefer ",{"type":45,"tag":80,"props":466,"children":468},{"className":467},[],[469],{"type":51,"value":470},"vercel logs --project \u003Cproject> --since \u003Cwindow> --limit 20 --json",{"type":51,"value":472}," plus user-provided filters such as ",{"type":45,"tag":80,"props":474,"children":476},{"className":475},[],[477],{"type":51,"value":478},"--environment",{"type":51,"value":122},{"type":45,"tag":80,"props":481,"children":483},{"className":482},[],[484],{"type":51,"value":485},"--level",{"type":51,"value":122},{"type":45,"tag":80,"props":488,"children":490},{"className":489},[],[491],{"type":51,"value":492},"--status-code",{"type":51,"value":122},{"type":45,"tag":80,"props":495,"children":497},{"className":496},[],[498],{"type":51,"value":499},"--source",{"type":51,"value":122},{"type":45,"tag":80,"props":502,"children":504},{"className":503},[],[505],{"type":51,"value":506},"--query",{"type":51,"value":130},{"type":45,"tag":80,"props":509,"children":511},{"className":510},[],[512],{"type":51,"value":513},"--deployment",{"type":51,"value":422},{"type":45,"tag":76,"props":516,"children":517},{},[518,520,526,528,534,536,542],{"type":51,"value":519},"Use ",{"type":45,"tag":80,"props":521,"children":523},{"className":522},[],[524],{"type":51,"value":525},"vercel inspect \u003Cdeployment-id-or-url> --logs",{"type":51,"value":527}," for build logs. Add ",{"type":45,"tag":80,"props":529,"children":531},{"className":530},[],[532],{"type":51,"value":533},"--wait",{"type":51,"value":535}," only when the user explicitly wants to wait for an active build; also bound it with ",{"type":45,"tag":80,"props":537,"children":539},{"className":538},[],[540],{"type":51,"value":541},"--timeout",{"type":51,"value":422},{"type":45,"tag":76,"props":544,"children":545},{},[546,547,553,554,560,562,568,569,574,575,581,582,588],{"type":51,"value":519},{"type":45,"tag":80,"props":548,"children":550},{"className":549},[],[551],{"type":51,"value":552},"vercel list \u003Cproject>",{"type":51,"value":105},{"type":45,"tag":80,"props":555,"children":557},{"className":556},[],[558],{"type":51,"value":559},"vercel ls \u003Cproject>",{"type":51,"value":561}," to find deployments. Prefer filters such as ",{"type":45,"tag":80,"props":563,"children":565},{"className":564},[],[566],{"type":51,"value":567},"--status",{"type":51,"value":122},{"type":45,"tag":80,"props":570,"children":572},{"className":571},[],[573],{"type":51,"value":478},{"type":51,"value":122},{"type":45,"tag":80,"props":576,"children":578},{"className":577},[],[579],{"type":51,"value":580},"--prod",{"type":51,"value":130},{"type":45,"tag":80,"props":583,"children":585},{"className":584},[],[586],{"type":51,"value":587},"--meta githubCommitSha=\u003Csha>",{"type":51,"value":589}," when available.",{"type":45,"tag":76,"props":591,"children":592},{},[593,595,601],{"type":51,"value":594},"For a deployment watch, call the ",{"type":45,"tag":80,"props":596,"children":598},{"className":597},[],[599],{"type":51,"value":600},"vercel_deploymentSource",{"type":51,"value":602}," plugin tool with the project name, optional team slug or ID, deployment target, and full 40-character commit SHA. The tool resolves the canonical project ID through Vercel before Junior creates the conversation subscription.",{"type":45,"tag":76,"props":604,"children":605},{},[606,607,613],{"type":51,"value":519},{"type":45,"tag":80,"props":608,"children":610},{"className":609},[],[611],{"type":51,"value":612},"--follow",{"type":51,"value":614}," only when the user asks for live logs, and stop once enough evidence is captured. Do not leave a streaming command running indefinitely.",{"type":45,"tag":318,"props":616,"children":618},{"start":617},3,[619],{"type":45,"tag":76,"props":620,"children":621},{},[622],{"type":51,"value":623},"Bound and minimize output:",{"type":45,"tag":72,"props":625,"children":626},{},[627,632,644,649],{"type":45,"tag":76,"props":628,"children":629},{},[630],{"type":51,"value":631},"Always use a time window for log searches. Default to the last hour for \"right now\" incidents and the last 24 hours for retrospective deployment investigations.",{"type":45,"tag":76,"props":633,"children":634},{},[635,637,642],{"type":51,"value":636},"Prefer JSON output for ",{"type":45,"tag":80,"props":638,"children":640},{"className":639},[],[641],{"type":51,"value":85},{"type":51,"value":643}," when parsing or summarizing.",{"type":45,"tag":76,"props":645,"children":646},{},[647],{"type":51,"value":648},"Keep page sizes small. Start with 20 log lines or fewer unless the user asked for more.",{"type":45,"tag":76,"props":650,"children":651},{},[652],{"type":51,"value":653},"Quote only the minimum log text needed as evidence. Vercel logs may contain customer data, secrets, request headers, or other sensitive payloads.",{"type":45,"tag":318,"props":655,"children":657},{"start":656},4,[658],{"type":45,"tag":76,"props":659,"children":660},{},[661],{"type":51,"value":662},"Report the result:",{"type":45,"tag":72,"props":664,"children":665},{},[666,671,676],{"type":45,"tag":76,"props":667,"children":668},{},[669],{"type":51,"value":670},"Answer the user first with deployment status, error pattern, top failing route\u002Ffunction, or the absence of matching logs.",{"type":45,"tag":76,"props":672,"children":673},{},[674],{"type":51,"value":675},"Include the project, environment, deployment, time window, and filters used.",{"type":45,"tag":76,"props":677,"children":678},{},[679],{"type":51,"value":680},"Include Vercel deployment or dashboard URLs when the CLI output provides them. Do not fabricate URLs from incomplete IDs.",{"type":45,"tag":60,"props":682,"children":684},{"id":683},"failure-handling",[685],{"type":51,"value":686},"Failure handling",{"type":45,"tag":72,"props":688,"children":689},{},[690,709,720,731,749,754],{"type":45,"tag":76,"props":691,"children":692},{},[693,695,700,702,707],{"type":51,"value":694},"Missing ",{"type":45,"tag":80,"props":696,"children":698},{"className":697},[],[699],{"type":51,"value":413},{"type":51,"value":701},": tell the operator to add ",{"type":45,"tag":80,"props":703,"children":705},{"className":704},[],[706],{"type":51,"value":413},{"type":51,"value":708}," to the Junior deployment environment and redeploy.",{"type":45,"tag":76,"props":710,"children":711},{},[712,718],{"type":45,"tag":80,"props":713,"children":715},{"className":714},[],[716],{"type":51,"value":717},"401",{"type":51,"value":719},", invalid token, expired token, or revoked token: report that the configured Vercel token cannot authenticate.",{"type":45,"tag":76,"props":721,"children":722},{},[723,729],{"type":45,"tag":80,"props":724,"children":726},{"className":725},[],[727],{"type":51,"value":728},"403",{"type":51,"value":730}," or permission denied: report that the configured Vercel token or service account cannot read the requested project\u002Fdeployment\u002Flogs. Do not guess missing Vercel permission scopes.",{"type":45,"tag":76,"props":732,"children":733},{},[734,736,741,742,747],{"type":51,"value":735},"Project not found: confirm ",{"type":45,"tag":80,"props":737,"children":739},{"className":738},[],[740],{"type":51,"value":349},{"type":51,"value":122},{"type":45,"tag":80,"props":743,"children":745},{"className":744},[],[746],{"type":51,"value":357},{"type":51,"value":748},", and the user-provided project name or scope.",{"type":45,"tag":76,"props":750,"children":751},{},[752],{"type":51,"value":753},"Rate limiting or transient network failure: retry the same bounded read command once. If it still fails, report the throttle or network failure and stop.",{"type":45,"tag":76,"props":755,"children":756},{},[757],{"type":51,"value":758},"Mutation request: decline briefly and explain this skill is limited to read-only Vercel logs, deployment inspection, and deployment listing.",{"items":760,"total":933},[761,784,796,811,825,842,858,872,882,892,902,920],{"slug":762,"name":762,"fn":763,"description":764,"org":765,"tags":766,"stars":781,"repoUrl":782,"updatedAt":783},"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},[767,768,771,774,775,778],{"name":26,"slug":27,"type":16},{"name":769,"slug":770,"type":16},"iOS","ios",{"name":772,"slug":773,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":776,"slug":777,"type":16},"Testing","testing",{"name":779,"slug":780,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":785,"name":785,"fn":786,"description":787,"org":788,"tags":789,"stars":781,"repoUrl":782,"updatedAt":795},"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},[790,791,792,793,794],{"name":20,"slug":21,"type":16},{"name":769,"slug":770,"type":16},{"name":772,"slug":773,"type":16},{"name":776,"slug":777,"type":16},{"name":779,"slug":780,"type":16},"2026-04-06T18:13:36.13414",{"slug":797,"name":797,"fn":798,"description":799,"org":800,"tags":801,"stars":808,"repoUrl":809,"updatedAt":810},"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},[802,805],{"name":803,"slug":804,"type":16},"Documentation","documentation",{"name":806,"slug":807,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":812,"name":812,"fn":813,"description":814,"org":815,"tags":816,"stars":808,"repoUrl":809,"updatedAt":824},"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},[817,820,821],{"name":818,"slug":819,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":822,"slug":823,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":826,"name":826,"fn":827,"description":828,"org":829,"tags":830,"stars":808,"repoUrl":809,"updatedAt":841},"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},[831,834,837,838],{"name":832,"slug":833,"type":16},"Branding","branding",{"name":835,"slug":836,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":839,"slug":840,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":843,"name":843,"fn":844,"description":845,"org":846,"tags":847,"stars":808,"repoUrl":809,"updatedAt":857},"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},[848,851,854],{"name":849,"slug":850,"type":16},"Claude Code","claude-code",{"name":852,"slug":853,"type":16},"Configuration","configuration",{"name":855,"slug":856,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":859,"name":859,"fn":860,"description":861,"org":862,"tags":863,"stars":808,"repoUrl":809,"updatedAt":871},"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},[864,866,867,870],{"name":865,"slug":859,"type":16},"Code Review",{"name":806,"slug":807,"type":16},{"name":868,"slug":869,"type":16},"Performance","performance",{"name":855,"slug":856,"type":16},"2026-05-15T06:16:35.824864",{"slug":873,"name":873,"fn":874,"description":875,"org":876,"tags":877,"stars":808,"repoUrl":809,"updatedAt":881},"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},[878],{"name":879,"slug":880,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":883,"name":883,"fn":884,"description":885,"org":886,"tags":887,"stars":808,"repoUrl":809,"updatedAt":891},"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},[888,890],{"name":889,"slug":238,"type":16},"Git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":893,"name":893,"fn":894,"description":895,"org":896,"tags":897,"stars":808,"repoUrl":809,"updatedAt":901},"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},[898,899,900],{"name":806,"slug":807,"type":16},{"name":889,"slug":238,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":903,"name":903,"fn":904,"description":905,"org":906,"tags":907,"stars":808,"repoUrl":809,"updatedAt":919},"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},[908,911,912,915,918],{"name":909,"slug":910,"type":16},"Access Control","access-control",{"name":879,"slug":880,"type":16},{"name":913,"slug":914,"type":16},"Django","django",{"name":916,"slug":917,"type":16},"Python","python",{"name":855,"slug":856,"type":16},"2026-05-15T06:16:43.098698",{"slug":921,"name":921,"fn":922,"description":923,"org":924,"tags":925,"stars":808,"repoUrl":809,"updatedAt":932},"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},[926,927,930,931],{"name":865,"slug":859,"type":16},{"name":928,"slug":929,"type":16},"Database","database",{"name":913,"slug":914,"type":16},{"name":868,"slug":869,"type":16},"2026-05-15T06:16:24.832813",88,{"items":935,"total":1022},[936,955,969,984,1001,1014],{"slug":937,"name":937,"fn":938,"description":939,"org":940,"tags":941,"stars":28,"repoUrl":29,"updatedAt":954},"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},[942,945,948,951],{"name":943,"slug":944,"type":16},"Analytics","analytics",{"name":946,"slug":947,"type":16},"Charts","charts",{"name":949,"slug":950,"type":16},"Dashboards","dashboards",{"name":952,"slug":953,"type":16},"Reporting","reporting","2026-07-11T05:53:26.659115",{"slug":956,"name":956,"fn":957,"description":958,"org":959,"tags":960,"stars":28,"repoUrl":29,"updatedAt":968},"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},[961,963,964,967],{"name":962,"slug":956,"type":16},"Cloudflare",{"name":23,"slug":24,"type":16},{"name":965,"slug":966,"type":16},"Monitoring","monitoring",{"name":14,"slug":15,"type":16},"2026-07-01T07:46:37.892035",{"slug":970,"name":970,"fn":971,"description":972,"org":973,"tags":974,"stars":28,"repoUrl":29,"updatedAt":983},"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},[975,977,978,979,980],{"name":976,"slug":970,"type":16},"Datadog",{"name":26,"slug":27,"type":16},{"name":965,"slug":966,"type":16},{"name":14,"slug":15,"type":16},{"name":981,"slug":982,"type":16},"SRE","sre","2026-04-18T04:45:22.733842",{"slug":985,"name":985,"fn":986,"description":987,"org":988,"tags":989,"stars":28,"repoUrl":29,"updatedAt":1000},"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},[990,993,994,997],{"name":991,"slug":992,"type":16},"Automation","automation",{"name":806,"slug":807,"type":16},{"name":995,"slug":996,"type":16},"MCP","mcp",{"name":998,"slug":999,"type":16},"Plugin Development","plugin-development","2026-07-31T06:23:36.591638",{"slug":1002,"name":1002,"fn":1003,"description":1004,"org":1005,"tags":1006,"stars":28,"repoUrl":29,"updatedAt":1013},"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},[1007,1008,1009,1012],{"name":26,"slug":27,"type":16},{"name":806,"slug":807,"type":16},{"name":1010,"slug":1011,"type":16},"QA","qa",{"name":776,"slug":777,"type":16},"2026-07-31T06:23:35.910415",{"slug":4,"name":4,"fn":5,"description":6,"org":1015,"tags":1016,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1017,1018,1019,1020,1021],{"name":20,"slug":21,"type":16},{"name":26,"slug":27,"type":16},{"name":23,"slug":24,"type":16},{"name":14,"slug":15,"type":16},{"name":18,"slug":4,"type":16},6]