[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-pr-writer":3,"mdc--pv5k10-key":33,"related-org-sentry-pr-writer":1355,"related-repo-sentry-pr-writer":1532},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":28,"sourceUrl":31,"mdContent":32},"pr-writer","write and update pull requests","Create or refresh reviewer-facing PR titles and descriptions. Use when opening a PR, updating its title or body, or preparing branch changes for review.",{"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,18],{"name":14,"slug":15,"type":16},"GitHub","github","tag",{"name":9,"slug":8,"type":16},{"name":19,"slug":20,"type":16},"Pull Requests","pull-requests",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-07-18T05:15:09.780549",null,45,[27],"tag-production",{"repoUrl":22,"stars":21,"forks":25,"topics":29,"description":30},[27],"Agent Skills used by the Sentry team for development.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fpr-writer","---\nname: pr-writer\ndescription: Create or refresh reviewer-facing PR titles and descriptions. Use when opening a PR, updating its title or body, or preparing branch changes for review.\n---\n\n# PR Writer\n\nWrite the PR body as a cover note for reviewers, not a changelog, template,\nvalidation log, or file-by-file summary.\n\n## Inspect the Change\n\nRequires authenticated `gh`. Inspect the current branch, working tree, PR,\nbase branch, commits, and full diff:\n\n```bash\ngit branch --show-current\ngit status --porcelain\ngh pr view --json number,title,body,url,baseRefName,headRefName\ngh repo view --json defaultBranchRef\n```\n\nIf `gh pr view` reports that no PR exists, continue with first-time PR\ncreation. For an existing PR, use its `baseRefName`; otherwise use the\nrepository default branch. Set `BASE`, then inspect:\n\n```bash\ngit log \"$BASE\"..HEAD --oneline\ngit diff \"$BASE\"...HEAD\n```\n\nIf on `main` or `master`, create a feature branch first. Ensure intended\nchanges are committed and review the whole branch diff, not only the latest\ncommit or existing PR text.\n\n## Core Rules\n\n- Describe concrete changed behavior, affected surfaces, and reviewer impact\n  before implementation detail.\n- Explain motivation, risk, tradeoffs, migration, or review focus only when\n  useful.\n- Use the smallest structure that makes the change easier to review.\n- Replace internal prompt or process terminology with specific behavior.\n- When refreshing a PR, rewrite around the current full diff without narrating\n  review history.\n\n## Titles\n\nUse `\u003Ctype>(\u003Cscope>): \u003Csubject>` or `\u003Ctype>: \u003Csubject>`.\n\nAllowed types: `feat`, `fix`, `ref`, `perf`, `docs`, `test`, `build`,\n`ci`, `chore`, `style`, `meta`, `license`, and `revert`.\n\n- Describe the dominant full-branch change with the narrowest accurate type\n  and scope.\n- Use `!` only when the change breaks an external contract, and explain the\n  affected surface in the body.\n- Avoid vague subjects such as `update`, `cleanup`, `misc`, `fix stuff`,\n  or `address feedback`. Do not add a trailing period.\n- Keep an existing title only when it still describes the whole diff.\n\n## Body Shape\n\nChoose the minimum useful shape:\n\n| Change | Include |\n|--------|---------|\n| Small or obvious | One concise paragraph without headings. |\n| Feature, bug fix, or refactor | Changed behavior and effect; add root cause, unchanged behavior, or non-obvious approach when relevant. |\n| Contract or breaking change | Affected API, schema, payload, config, permission, storage, or CLI surface; include compatibility and migration guidance. |\n| Operational, visual, or workflow change | User\u002Foperator effect, measured impact, failure modes, or flow when useful. |\n| Broad, generated, or cross-cutting change | Organizing principle, why the breadth is necessary, and where review should start. |\n\nDefault:\n\n```markdown\n\u003CWhat changed and what effect it has.>\n\n\u003CWhy the approach, risk, migration, or review focus matters, if not obvious.>\n```\n\nFor review-feedback updates, describe the resulting PR as a whole rather than\nthe sequence of revisions.\n\n## Reviewer Aids\n\nUse an aid only when it reduces reviewer reconstruction work:\n\n- A compact before\u002Fafter or interface example for changed contracts.\n- A small Mermaid diagram for async flows or state transitions.\n- A screenshot or recording note when visual evidence exists.\n- A rollout, compatibility, risk, or review-order note when reviewers or\n  adopters need it.\n\nIntroduce an artifact with one sentence explaining what reviewers should\nnotice. Omit it when prose is clearer.\n\n## Boundaries\n\n- Do not add default `Summary`, `Changes`, or `Test Plan` sections.\n- Omit routine validation unless it changes risk assessment or explains\n  meaningful regression coverage. For docs, skills, copy, or config changes,\n  omit it by default.\n- Do not paste commands, CI logs, validation dumps, commit logs, placeholders,\n  or exhaustive file lists.\n- Never include customer or organization names, user emails, support ticket\n  contents, secrets, or PII.\n- Use issue references only when verified from user input, branch names,\n  commits, PR discussion, or tracker output. `Fixes \u003Cissue>` closes;\n  `Refs \u003Cissue>` only links.\n\n## Create or Update\n\nCreate new PRs as drafts. Write the body to a temporary Markdown file, then run:\n\n```bash\ngh pr create --draft --title '\u003Ctitle>' --body-file \u002Ftmp\u002Fpr-body.md\n```\n\nUpdate existing PRs with `gh api`:\n\n```bash\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER \\\n  -f title='\u003Ctitle>' \\\n  -F body=@\u002Ftmp\u002Fpr-body.md\n```\n\nRefresh the title and body when follow-up commits materially change scope,\napproach, breaking behavior, risk, migration, or review expectations. Skip\ntypo-only, formatting-only, and rename-only follow-ups.\n\n## Examples\n\nSmall change:\n\n```markdown\nThe AI Customizations section now starts collapsed so it does not consume\nsidebar space before users need it. Expanding it preserves the existing saved\npreference behavior.\n```\n\nBreaking contract:\n\n````markdown\nRun logs now emit chunk-level records instead of one skill-level record.\nConsumers that read top-level `findings` must iterate over\n`chunk.findings` for each record.\n\nBefore:\n\n```json\n{\"skill\": \"security-review\", \"findings\": [...]}\n```\n\nAfter:\n\n```json\n{\"schemaVersion\": 1, \"chunk\": {\"index\": 1, \"findings\": [...]}}\n```\n````\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,46,52,59,73,179,208,283,304,310,340,346,366,465,532,538,543,636,641,675,680,686,691,714,719,725,792,798,803,861,874,955,960,966,971,1002,1007,1350],{"type":39,"tag":40,"props":41,"children":42},"element","h1",{"id":4},[43],{"type":44,"value":45},"text","PR Writer",{"type":39,"tag":47,"props":48,"children":49},"p",{},[50],{"type":44,"value":51},"Write the PR body as a cover note for reviewers, not a changelog, template,\nvalidation log, or file-by-file summary.",{"type":39,"tag":53,"props":54,"children":56},"h2",{"id":55},"inspect-the-change",[57],{"type":44,"value":58},"Inspect the Change",{"type":39,"tag":47,"props":60,"children":61},{},[62,64,71],{"type":44,"value":63},"Requires authenticated ",{"type":39,"tag":65,"props":66,"children":68},"code",{"className":67},[],[69],{"type":44,"value":70},"gh",{"type":44,"value":72},". Inspect the current branch, working tree, PR,\nbase branch, commits, and full diff:",{"type":39,"tag":74,"props":75,"children":80},"pre",{"className":76,"code":77,"language":78,"meta":79,"style":79},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git branch --show-current\ngit status --porcelain\ngh pr view --json number,title,body,url,baseRefName,headRefName\ngh repo view --json defaultBranchRef\n","bash","",[81],{"type":39,"tag":65,"props":82,"children":83},{"__ignoreMap":79},[84,107,125,153],{"type":39,"tag":85,"props":86,"children":89},"span",{"class":87,"line":88},"line",1,[90,96,102],{"type":39,"tag":85,"props":91,"children":93},{"style":92},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[94],{"type":44,"value":95},"git",{"type":39,"tag":85,"props":97,"children":99},{"style":98},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[100],{"type":44,"value":101}," branch",{"type":39,"tag":85,"props":103,"children":104},{"style":98},[105],{"type":44,"value":106}," --show-current\n",{"type":39,"tag":85,"props":108,"children":110},{"class":87,"line":109},2,[111,115,120],{"type":39,"tag":85,"props":112,"children":113},{"style":92},[114],{"type":44,"value":95},{"type":39,"tag":85,"props":116,"children":117},{"style":98},[118],{"type":44,"value":119}," status",{"type":39,"tag":85,"props":121,"children":122},{"style":98},[123],{"type":44,"value":124}," --porcelain\n",{"type":39,"tag":85,"props":126,"children":128},{"class":87,"line":127},3,[129,133,138,143,148],{"type":39,"tag":85,"props":130,"children":131},{"style":92},[132],{"type":44,"value":70},{"type":39,"tag":85,"props":134,"children":135},{"style":98},[136],{"type":44,"value":137}," pr",{"type":39,"tag":85,"props":139,"children":140},{"style":98},[141],{"type":44,"value":142}," view",{"type":39,"tag":85,"props":144,"children":145},{"style":98},[146],{"type":44,"value":147}," --json",{"type":39,"tag":85,"props":149,"children":150},{"style":98},[151],{"type":44,"value":152}," number,title,body,url,baseRefName,headRefName\n",{"type":39,"tag":85,"props":154,"children":156},{"class":87,"line":155},4,[157,161,166,170,174],{"type":39,"tag":85,"props":158,"children":159},{"style":92},[160],{"type":44,"value":70},{"type":39,"tag":85,"props":162,"children":163},{"style":98},[164],{"type":44,"value":165}," repo",{"type":39,"tag":85,"props":167,"children":168},{"style":98},[169],{"type":44,"value":142},{"type":39,"tag":85,"props":171,"children":172},{"style":98},[173],{"type":44,"value":147},{"type":39,"tag":85,"props":175,"children":176},{"style":98},[177],{"type":44,"value":178}," defaultBranchRef\n",{"type":39,"tag":47,"props":180,"children":181},{},[182,184,190,192,198,200,206],{"type":44,"value":183},"If ",{"type":39,"tag":65,"props":185,"children":187},{"className":186},[],[188],{"type":44,"value":189},"gh pr view",{"type":44,"value":191}," reports that no PR exists, continue with first-time PR\ncreation. For an existing PR, use its ",{"type":39,"tag":65,"props":193,"children":195},{"className":194},[],[196],{"type":44,"value":197},"baseRefName",{"type":44,"value":199},"; otherwise use the\nrepository default branch. Set ",{"type":39,"tag":65,"props":201,"children":203},{"className":202},[],[204],{"type":44,"value":205},"BASE",{"type":44,"value":207},", then inspect:",{"type":39,"tag":74,"props":209,"children":211},{"className":76,"code":210,"language":78,"meta":79,"style":79},"git log \"$BASE\"..HEAD --oneline\ngit diff \"$BASE\"...HEAD\n",[212],{"type":39,"tag":65,"props":213,"children":214},{"__ignoreMap":79},[215,254],{"type":39,"tag":85,"props":216,"children":217},{"class":87,"line":88},[218,222,227,233,239,244,249],{"type":39,"tag":85,"props":219,"children":220},{"style":92},[221],{"type":44,"value":95},{"type":39,"tag":85,"props":223,"children":224},{"style":98},[225],{"type":44,"value":226}," log",{"type":39,"tag":85,"props":228,"children":230},{"style":229},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[231],{"type":44,"value":232}," \"",{"type":39,"tag":85,"props":234,"children":236},{"style":235},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[237],{"type":44,"value":238},"$BASE",{"type":39,"tag":85,"props":240,"children":241},{"style":229},[242],{"type":44,"value":243},"\"",{"type":39,"tag":85,"props":245,"children":246},{"style":98},[247],{"type":44,"value":248},"..HEAD",{"type":39,"tag":85,"props":250,"children":251},{"style":98},[252],{"type":44,"value":253}," --oneline\n",{"type":39,"tag":85,"props":255,"children":256},{"class":87,"line":109},[257,261,266,270,274,278],{"type":39,"tag":85,"props":258,"children":259},{"style":92},[260],{"type":44,"value":95},{"type":39,"tag":85,"props":262,"children":263},{"style":98},[264],{"type":44,"value":265}," diff",{"type":39,"tag":85,"props":267,"children":268},{"style":229},[269],{"type":44,"value":232},{"type":39,"tag":85,"props":271,"children":272},{"style":235},[273],{"type":44,"value":238},{"type":39,"tag":85,"props":275,"children":276},{"style":229},[277],{"type":44,"value":243},{"type":39,"tag":85,"props":279,"children":280},{"style":98},[281],{"type":44,"value":282},"...HEAD\n",{"type":39,"tag":47,"props":284,"children":285},{},[286,288,294,296,302],{"type":44,"value":287},"If on ",{"type":39,"tag":65,"props":289,"children":291},{"className":290},[],[292],{"type":44,"value":293},"main",{"type":44,"value":295}," or ",{"type":39,"tag":65,"props":297,"children":299},{"className":298},[],[300],{"type":44,"value":301},"master",{"type":44,"value":303},", create a feature branch first. Ensure intended\nchanges are committed and review the whole branch diff, not only the latest\ncommit or existing PR text.",{"type":39,"tag":53,"props":305,"children":307},{"id":306},"core-rules",[308],{"type":44,"value":309},"Core Rules",{"type":39,"tag":311,"props":312,"children":313},"ul",{},[314,320,325,330,335],{"type":39,"tag":315,"props":316,"children":317},"li",{},[318],{"type":44,"value":319},"Describe concrete changed behavior, affected surfaces, and reviewer impact\nbefore implementation detail.",{"type":39,"tag":315,"props":321,"children":322},{},[323],{"type":44,"value":324},"Explain motivation, risk, tradeoffs, migration, or review focus only when\nuseful.",{"type":39,"tag":315,"props":326,"children":327},{},[328],{"type":44,"value":329},"Use the smallest structure that makes the change easier to review.",{"type":39,"tag":315,"props":331,"children":332},{},[333],{"type":44,"value":334},"Replace internal prompt or process terminology with specific behavior.",{"type":39,"tag":315,"props":336,"children":337},{},[338],{"type":44,"value":339},"When refreshing a PR, rewrite around the current full diff without narrating\nreview history.",{"type":39,"tag":53,"props":341,"children":343},{"id":342},"titles",[344],{"type":44,"value":345},"Titles",{"type":39,"tag":47,"props":347,"children":348},{},[349,351,357,358,364],{"type":44,"value":350},"Use ",{"type":39,"tag":65,"props":352,"children":354},{"className":353},[],[355],{"type":44,"value":356},"\u003Ctype>(\u003Cscope>): \u003Csubject>",{"type":44,"value":295},{"type":39,"tag":65,"props":359,"children":361},{"className":360},[],[362],{"type":44,"value":363},"\u003Ctype>: \u003Csubject>",{"type":44,"value":365},".",{"type":39,"tag":47,"props":367,"children":368},{},[369,371,377,379,385,386,392,393,399,400,406,407,413,414,420,422,428,429,435,436,442,443,449,450,456,458,464],{"type":44,"value":370},"Allowed types: ",{"type":39,"tag":65,"props":372,"children":374},{"className":373},[],[375],{"type":44,"value":376},"feat",{"type":44,"value":378},", ",{"type":39,"tag":65,"props":380,"children":382},{"className":381},[],[383],{"type":44,"value":384},"fix",{"type":44,"value":378},{"type":39,"tag":65,"props":387,"children":389},{"className":388},[],[390],{"type":44,"value":391},"ref",{"type":44,"value":378},{"type":39,"tag":65,"props":394,"children":396},{"className":395},[],[397],{"type":44,"value":398},"perf",{"type":44,"value":378},{"type":39,"tag":65,"props":401,"children":403},{"className":402},[],[404],{"type":44,"value":405},"docs",{"type":44,"value":378},{"type":39,"tag":65,"props":408,"children":410},{"className":409},[],[411],{"type":44,"value":412},"test",{"type":44,"value":378},{"type":39,"tag":65,"props":415,"children":417},{"className":416},[],[418],{"type":44,"value":419},"build",{"type":44,"value":421},",\n",{"type":39,"tag":65,"props":423,"children":425},{"className":424},[],[426],{"type":44,"value":427},"ci",{"type":44,"value":378},{"type":39,"tag":65,"props":430,"children":432},{"className":431},[],[433],{"type":44,"value":434},"chore",{"type":44,"value":378},{"type":39,"tag":65,"props":437,"children":439},{"className":438},[],[440],{"type":44,"value":441},"style",{"type":44,"value":378},{"type":39,"tag":65,"props":444,"children":446},{"className":445},[],[447],{"type":44,"value":448},"meta",{"type":44,"value":378},{"type":39,"tag":65,"props":451,"children":453},{"className":452},[],[454],{"type":44,"value":455},"license",{"type":44,"value":457},", and ",{"type":39,"tag":65,"props":459,"children":461},{"className":460},[],[462],{"type":44,"value":463},"revert",{"type":44,"value":365},{"type":39,"tag":311,"props":466,"children":467},{},[468,473,485,527],{"type":39,"tag":315,"props":469,"children":470},{},[471],{"type":44,"value":472},"Describe the dominant full-branch change with the narrowest accurate type\nand scope.",{"type":39,"tag":315,"props":474,"children":475},{},[476,477,483],{"type":44,"value":350},{"type":39,"tag":65,"props":478,"children":480},{"className":479},[],[481],{"type":44,"value":482},"!",{"type":44,"value":484}," only when the change breaks an external contract, and explain the\naffected surface in the body.",{"type":39,"tag":315,"props":486,"children":487},{},[488,490,496,497,503,504,510,511,517,519,525],{"type":44,"value":489},"Avoid vague subjects such as ",{"type":39,"tag":65,"props":491,"children":493},{"className":492},[],[494],{"type":44,"value":495},"update",{"type":44,"value":378},{"type":39,"tag":65,"props":498,"children":500},{"className":499},[],[501],{"type":44,"value":502},"cleanup",{"type":44,"value":378},{"type":39,"tag":65,"props":505,"children":507},{"className":506},[],[508],{"type":44,"value":509},"misc",{"type":44,"value":378},{"type":39,"tag":65,"props":512,"children":514},{"className":513},[],[515],{"type":44,"value":516},"fix stuff",{"type":44,"value":518},",\nor ",{"type":39,"tag":65,"props":520,"children":522},{"className":521},[],[523],{"type":44,"value":524},"address feedback",{"type":44,"value":526},". Do not add a trailing period.",{"type":39,"tag":315,"props":528,"children":529},{},[530],{"type":44,"value":531},"Keep an existing title only when it still describes the whole diff.",{"type":39,"tag":53,"props":533,"children":535},{"id":534},"body-shape",[536],{"type":44,"value":537},"Body Shape",{"type":39,"tag":47,"props":539,"children":540},{},[541],{"type":44,"value":542},"Choose the minimum useful shape:",{"type":39,"tag":544,"props":545,"children":546},"table",{},[547,566],{"type":39,"tag":548,"props":549,"children":550},"thead",{},[551],{"type":39,"tag":552,"props":553,"children":554},"tr",{},[555,561],{"type":39,"tag":556,"props":557,"children":558},"th",{},[559],{"type":44,"value":560},"Change",{"type":39,"tag":556,"props":562,"children":563},{},[564],{"type":44,"value":565},"Include",{"type":39,"tag":567,"props":568,"children":569},"tbody",{},[570,584,597,610,623],{"type":39,"tag":552,"props":571,"children":572},{},[573,579],{"type":39,"tag":574,"props":575,"children":576},"td",{},[577],{"type":44,"value":578},"Small or obvious",{"type":39,"tag":574,"props":580,"children":581},{},[582],{"type":44,"value":583},"One concise paragraph without headings.",{"type":39,"tag":552,"props":585,"children":586},{},[587,592],{"type":39,"tag":574,"props":588,"children":589},{},[590],{"type":44,"value":591},"Feature, bug fix, or refactor",{"type":39,"tag":574,"props":593,"children":594},{},[595],{"type":44,"value":596},"Changed behavior and effect; add root cause, unchanged behavior, or non-obvious approach when relevant.",{"type":39,"tag":552,"props":598,"children":599},{},[600,605],{"type":39,"tag":574,"props":601,"children":602},{},[603],{"type":44,"value":604},"Contract or breaking change",{"type":39,"tag":574,"props":606,"children":607},{},[608],{"type":44,"value":609},"Affected API, schema, payload, config, permission, storage, or CLI surface; include compatibility and migration guidance.",{"type":39,"tag":552,"props":611,"children":612},{},[613,618],{"type":39,"tag":574,"props":614,"children":615},{},[616],{"type":44,"value":617},"Operational, visual, or workflow change",{"type":39,"tag":574,"props":619,"children":620},{},[621],{"type":44,"value":622},"User\u002Foperator effect, measured impact, failure modes, or flow when useful.",{"type":39,"tag":552,"props":624,"children":625},{},[626,631],{"type":39,"tag":574,"props":627,"children":628},{},[629],{"type":44,"value":630},"Broad, generated, or cross-cutting change",{"type":39,"tag":574,"props":632,"children":633},{},[634],{"type":44,"value":635},"Organizing principle, why the breadth is necessary, and where review should start.",{"type":39,"tag":47,"props":637,"children":638},{},[639],{"type":44,"value":640},"Default:",{"type":39,"tag":74,"props":642,"children":646},{"className":643,"code":644,"language":645,"meta":79,"style":79},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CWhat changed and what effect it has.>\n\n\u003CWhy the approach, risk, migration, or review focus matters, if not obvious.>\n","markdown",[647],{"type":39,"tag":65,"props":648,"children":649},{"__ignoreMap":79},[650,658,667],{"type":39,"tag":85,"props":651,"children":652},{"class":87,"line":88},[653],{"type":39,"tag":85,"props":654,"children":655},{"style":235},[656],{"type":44,"value":657},"\u003CWhat changed and what effect it has.>\n",{"type":39,"tag":85,"props":659,"children":660},{"class":87,"line":109},[661],{"type":39,"tag":85,"props":662,"children":664},{"emptyLinePlaceholder":663},true,[665],{"type":44,"value":666},"\n",{"type":39,"tag":85,"props":668,"children":669},{"class":87,"line":127},[670],{"type":39,"tag":85,"props":671,"children":672},{"style":235},[673],{"type":44,"value":674},"\u003CWhy the approach, risk, migration, or review focus matters, if not obvious.>\n",{"type":39,"tag":47,"props":676,"children":677},{},[678],{"type":44,"value":679},"For review-feedback updates, describe the resulting PR as a whole rather than\nthe sequence of revisions.",{"type":39,"tag":53,"props":681,"children":683},{"id":682},"reviewer-aids",[684],{"type":44,"value":685},"Reviewer Aids",{"type":39,"tag":47,"props":687,"children":688},{},[689],{"type":44,"value":690},"Use an aid only when it reduces reviewer reconstruction work:",{"type":39,"tag":311,"props":692,"children":693},{},[694,699,704,709],{"type":39,"tag":315,"props":695,"children":696},{},[697],{"type":44,"value":698},"A compact before\u002Fafter or interface example for changed contracts.",{"type":39,"tag":315,"props":700,"children":701},{},[702],{"type":44,"value":703},"A small Mermaid diagram for async flows or state transitions.",{"type":39,"tag":315,"props":705,"children":706},{},[707],{"type":44,"value":708},"A screenshot or recording note when visual evidence exists.",{"type":39,"tag":315,"props":710,"children":711},{},[712],{"type":44,"value":713},"A rollout, compatibility, risk, or review-order note when reviewers or\nadopters need it.",{"type":39,"tag":47,"props":715,"children":716},{},[717],{"type":44,"value":718},"Introduce an artifact with one sentence explaining what reviewers should\nnotice. Omit it when prose is clearer.",{"type":39,"tag":53,"props":720,"children":722},{"id":721},"boundaries",[723],{"type":44,"value":724},"Boundaries",{"type":39,"tag":311,"props":726,"children":727},{},[728,756,761,766,771],{"type":39,"tag":315,"props":729,"children":730},{},[731,733,739,740,746,748,754],{"type":44,"value":732},"Do not add default ",{"type":39,"tag":65,"props":734,"children":736},{"className":735},[],[737],{"type":44,"value":738},"Summary",{"type":44,"value":378},{"type":39,"tag":65,"props":741,"children":743},{"className":742},[],[744],{"type":44,"value":745},"Changes",{"type":44,"value":747},", or ",{"type":39,"tag":65,"props":749,"children":751},{"className":750},[],[752],{"type":44,"value":753},"Test Plan",{"type":44,"value":755}," sections.",{"type":39,"tag":315,"props":757,"children":758},{},[759],{"type":44,"value":760},"Omit routine validation unless it changes risk assessment or explains\nmeaningful regression coverage. For docs, skills, copy, or config changes,\nomit it by default.",{"type":39,"tag":315,"props":762,"children":763},{},[764],{"type":44,"value":765},"Do not paste commands, CI logs, validation dumps, commit logs, placeholders,\nor exhaustive file lists.",{"type":39,"tag":315,"props":767,"children":768},{},[769],{"type":44,"value":770},"Never include customer or organization names, user emails, support ticket\ncontents, secrets, or PII.",{"type":39,"tag":315,"props":772,"children":773},{},[774,776,782,784,790],{"type":44,"value":775},"Use issue references only when verified from user input, branch names,\ncommits, PR discussion, or tracker output. ",{"type":39,"tag":65,"props":777,"children":779},{"className":778},[],[780],{"type":44,"value":781},"Fixes \u003Cissue>",{"type":44,"value":783}," closes;\n",{"type":39,"tag":65,"props":785,"children":787},{"className":786},[],[788],{"type":44,"value":789},"Refs \u003Cissue>",{"type":44,"value":791}," only links.",{"type":39,"tag":53,"props":793,"children":795},{"id":794},"create-or-update",[796],{"type":44,"value":797},"Create or Update",{"type":39,"tag":47,"props":799,"children":800},{},[801],{"type":44,"value":802},"Create new PRs as drafts. Write the body to a temporary Markdown file, then run:",{"type":39,"tag":74,"props":804,"children":806},{"className":76,"code":805,"language":78,"meta":79,"style":79},"gh pr create --draft --title '\u003Ctitle>' --body-file \u002Ftmp\u002Fpr-body.md\n",[807],{"type":39,"tag":65,"props":808,"children":809},{"__ignoreMap":79},[810],{"type":39,"tag":85,"props":811,"children":812},{"class":87,"line":88},[813,817,821,826,831,836,841,846,851,856],{"type":39,"tag":85,"props":814,"children":815},{"style":92},[816],{"type":44,"value":70},{"type":39,"tag":85,"props":818,"children":819},{"style":98},[820],{"type":44,"value":137},{"type":39,"tag":85,"props":822,"children":823},{"style":98},[824],{"type":44,"value":825}," create",{"type":39,"tag":85,"props":827,"children":828},{"style":98},[829],{"type":44,"value":830}," --draft",{"type":39,"tag":85,"props":832,"children":833},{"style":98},[834],{"type":44,"value":835}," --title",{"type":39,"tag":85,"props":837,"children":838},{"style":229},[839],{"type":44,"value":840}," '",{"type":39,"tag":85,"props":842,"children":843},{"style":98},[844],{"type":44,"value":845},"\u003Ctitle>",{"type":39,"tag":85,"props":847,"children":848},{"style":229},[849],{"type":44,"value":850},"'",{"type":39,"tag":85,"props":852,"children":853},{"style":98},[854],{"type":44,"value":855}," --body-file",{"type":39,"tag":85,"props":857,"children":858},{"style":98},[859],{"type":44,"value":860}," \u002Ftmp\u002Fpr-body.md\n",{"type":39,"tag":47,"props":862,"children":863},{},[864,866,872],{"type":44,"value":865},"Update existing PRs with ",{"type":39,"tag":65,"props":867,"children":869},{"className":868},[],[870],{"type":44,"value":871},"gh api",{"type":44,"value":873},":",{"type":39,"tag":74,"props":875,"children":877},{"className":76,"code":876,"language":78,"meta":79,"style":79},"gh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER \\\n  -f title='\u003Ctitle>' \\\n  -F body=@\u002Ftmp\u002Fpr-body.md\n",[878],{"type":39,"tag":65,"props":879,"children":880},{"__ignoreMap":79},[881,913,942],{"type":39,"tag":85,"props":882,"children":883},{"class":87,"line":88},[884,888,893,898,903,908],{"type":39,"tag":85,"props":885,"children":886},{"style":92},[887],{"type":44,"value":70},{"type":39,"tag":85,"props":889,"children":890},{"style":98},[891],{"type":44,"value":892}," api",{"type":39,"tag":85,"props":894,"children":895},{"style":98},[896],{"type":44,"value":897}," -X",{"type":39,"tag":85,"props":899,"children":900},{"style":98},[901],{"type":44,"value":902}," PATCH",{"type":39,"tag":85,"props":904,"children":905},{"style":98},[906],{"type":44,"value":907}," repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER",{"type":39,"tag":85,"props":909,"children":910},{"style":235},[911],{"type":44,"value":912}," \\\n",{"type":39,"tag":85,"props":914,"children":915},{"class":87,"line":109},[916,921,926,930,934,938],{"type":39,"tag":85,"props":917,"children":918},{"style":98},[919],{"type":44,"value":920},"  -f",{"type":39,"tag":85,"props":922,"children":923},{"style":98},[924],{"type":44,"value":925}," title=",{"type":39,"tag":85,"props":927,"children":928},{"style":229},[929],{"type":44,"value":850},{"type":39,"tag":85,"props":931,"children":932},{"style":98},[933],{"type":44,"value":845},{"type":39,"tag":85,"props":935,"children":936},{"style":229},[937],{"type":44,"value":850},{"type":39,"tag":85,"props":939,"children":940},{"style":235},[941],{"type":44,"value":912},{"type":39,"tag":85,"props":943,"children":944},{"class":87,"line":127},[945,950],{"type":39,"tag":85,"props":946,"children":947},{"style":98},[948],{"type":44,"value":949},"  -F",{"type":39,"tag":85,"props":951,"children":952},{"style":98},[953],{"type":44,"value":954}," body=@\u002Ftmp\u002Fpr-body.md\n",{"type":39,"tag":47,"props":956,"children":957},{},[958],{"type":44,"value":959},"Refresh the title and body when follow-up commits materially change scope,\napproach, breaking behavior, risk, migration, or review expectations. Skip\ntypo-only, formatting-only, and rename-only follow-ups.",{"type":39,"tag":53,"props":961,"children":963},{"id":962},"examples",[964],{"type":44,"value":965},"Examples",{"type":39,"tag":47,"props":967,"children":968},{},[969],{"type":44,"value":970},"Small change:",{"type":39,"tag":74,"props":972,"children":974},{"className":643,"code":973,"language":645,"meta":79,"style":79},"The AI Customizations section now starts collapsed so it does not consume\nsidebar space before users need it. Expanding it preserves the existing saved\npreference behavior.\n",[975],{"type":39,"tag":65,"props":976,"children":977},{"__ignoreMap":79},[978,986,994],{"type":39,"tag":85,"props":979,"children":980},{"class":87,"line":88},[981],{"type":39,"tag":85,"props":982,"children":983},{"style":235},[984],{"type":44,"value":985},"The AI Customizations section now starts collapsed so it does not consume\n",{"type":39,"tag":85,"props":987,"children":988},{"class":87,"line":109},[989],{"type":39,"tag":85,"props":990,"children":991},{"style":235},[992],{"type":44,"value":993},"sidebar space before users need it. Expanding it preserves the existing saved\n",{"type":39,"tag":85,"props":995,"children":996},{"class":87,"line":127},[997],{"type":39,"tag":85,"props":998,"children":999},{"style":235},[1000],{"type":44,"value":1001},"preference behavior.\n",{"type":39,"tag":47,"props":1003,"children":1004},{},[1005],{"type":44,"value":1006},"Breaking contract:",{"type":39,"tag":74,"props":1008,"children":1010},{"className":643,"code":1009,"language":645,"meta":79,"style":79},"Run logs now emit chunk-level records instead of one skill-level record.\nConsumers that read top-level `findings` must iterate over\n`chunk.findings` for each record.\n\nBefore:\n\n```json\n{\"skill\": \"security-review\", \"findings\": [...]}\n```\n\nAfter:\n\n```json\n{\"schemaVersion\": 1, \"chunk\": {\"index\": 1, \"findings\": [...]}}\n```\n",[1011],{"type":39,"tag":65,"props":1012,"children":1013},{"__ignoreMap":79},[1014,1022,1049,1070,1077,1086,1094,1109,1185,1194,1202,1211,1219,1231,1342],{"type":39,"tag":85,"props":1015,"children":1016},{"class":87,"line":88},[1017],{"type":39,"tag":85,"props":1018,"children":1019},{"style":235},[1020],{"type":44,"value":1021},"Run logs now emit chunk-level records instead of one skill-level record.\n",{"type":39,"tag":85,"props":1023,"children":1024},{"class":87,"line":109},[1025,1030,1035,1040,1044],{"type":39,"tag":85,"props":1026,"children":1027},{"style":235},[1028],{"type":44,"value":1029},"Consumers that read top-level ",{"type":39,"tag":85,"props":1031,"children":1032},{"style":229},[1033],{"type":44,"value":1034},"`",{"type":39,"tag":85,"props":1036,"children":1037},{"style":98},[1038],{"type":44,"value":1039},"findings",{"type":39,"tag":85,"props":1041,"children":1042},{"style":229},[1043],{"type":44,"value":1034},{"type":39,"tag":85,"props":1045,"children":1046},{"style":235},[1047],{"type":44,"value":1048}," must iterate over\n",{"type":39,"tag":85,"props":1050,"children":1051},{"class":87,"line":127},[1052,1056,1061,1065],{"type":39,"tag":85,"props":1053,"children":1054},{"style":229},[1055],{"type":44,"value":1034},{"type":39,"tag":85,"props":1057,"children":1058},{"style":98},[1059],{"type":44,"value":1060},"chunk.findings",{"type":39,"tag":85,"props":1062,"children":1063},{"style":229},[1064],{"type":44,"value":1034},{"type":39,"tag":85,"props":1066,"children":1067},{"style":235},[1068],{"type":44,"value":1069}," for each record.\n",{"type":39,"tag":85,"props":1071,"children":1072},{"class":87,"line":155},[1073],{"type":39,"tag":85,"props":1074,"children":1075},{"emptyLinePlaceholder":663},[1076],{"type":44,"value":666},{"type":39,"tag":85,"props":1078,"children":1080},{"class":87,"line":1079},5,[1081],{"type":39,"tag":85,"props":1082,"children":1083},{"style":235},[1084],{"type":44,"value":1085},"Before:\n",{"type":39,"tag":85,"props":1087,"children":1089},{"class":87,"line":1088},6,[1090],{"type":39,"tag":85,"props":1091,"children":1092},{"emptyLinePlaceholder":663},[1093],{"type":44,"value":666},{"type":39,"tag":85,"props":1095,"children":1097},{"class":87,"line":1096},7,[1098,1103],{"type":39,"tag":85,"props":1099,"children":1100},{"style":98},[1101],{"type":44,"value":1102},"```",{"type":39,"tag":85,"props":1104,"children":1106},{"style":1105},"--shiki-light:#90A4AE90;--shiki-default:#EEFFFF90;--shiki-dark:#BABED890",[1107],{"type":44,"value":1108},"json\n",{"type":39,"tag":85,"props":1110,"children":1112},{"class":87,"line":1111},8,[1113,1118,1122,1128,1132,1136,1140,1145,1149,1154,1158,1162,1166,1170,1175,1180],{"type":39,"tag":85,"props":1114,"children":1115},{"style":229},[1116],{"type":44,"value":1117},"{",{"type":39,"tag":85,"props":1119,"children":1120},{"style":229},[1121],{"type":44,"value":243},{"type":39,"tag":85,"props":1123,"children":1125},{"style":1124},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1126],{"type":44,"value":1127},"skill",{"type":39,"tag":85,"props":1129,"children":1130},{"style":229},[1131],{"type":44,"value":243},{"type":39,"tag":85,"props":1133,"children":1134},{"style":229},[1135],{"type":44,"value":873},{"type":39,"tag":85,"props":1137,"children":1138},{"style":229},[1139],{"type":44,"value":232},{"type":39,"tag":85,"props":1141,"children":1142},{"style":98},[1143],{"type":44,"value":1144},"security-review",{"type":39,"tag":85,"props":1146,"children":1147},{"style":229},[1148],{"type":44,"value":243},{"type":39,"tag":85,"props":1150,"children":1151},{"style":229},[1152],{"type":44,"value":1153},",",{"type":39,"tag":85,"props":1155,"children":1156},{"style":229},[1157],{"type":44,"value":232},{"type":39,"tag":85,"props":1159,"children":1160},{"style":1124},[1161],{"type":44,"value":1039},{"type":39,"tag":85,"props":1163,"children":1164},{"style":229},[1165],{"type":44,"value":243},{"type":39,"tag":85,"props":1167,"children":1168},{"style":229},[1169],{"type":44,"value":873},{"type":39,"tag":85,"props":1171,"children":1172},{"style":229},[1173],{"type":44,"value":1174}," [",{"type":39,"tag":85,"props":1176,"children":1177},{"style":235},[1178],{"type":44,"value":1179},"...",{"type":39,"tag":85,"props":1181,"children":1182},{"style":229},[1183],{"type":44,"value":1184},"]}\n",{"type":39,"tag":85,"props":1186,"children":1188},{"class":87,"line":1187},9,[1189],{"type":39,"tag":85,"props":1190,"children":1191},{"style":98},[1192],{"type":44,"value":1193},"```\n",{"type":39,"tag":85,"props":1195,"children":1197},{"class":87,"line":1196},10,[1198],{"type":39,"tag":85,"props":1199,"children":1200},{"emptyLinePlaceholder":663},[1201],{"type":44,"value":666},{"type":39,"tag":85,"props":1203,"children":1205},{"class":87,"line":1204},11,[1206],{"type":39,"tag":85,"props":1207,"children":1208},{"style":235},[1209],{"type":44,"value":1210},"After:\n",{"type":39,"tag":85,"props":1212,"children":1214},{"class":87,"line":1213},12,[1215],{"type":39,"tag":85,"props":1216,"children":1217},{"emptyLinePlaceholder":663},[1218],{"type":44,"value":666},{"type":39,"tag":85,"props":1220,"children":1222},{"class":87,"line":1221},13,[1223,1227],{"type":39,"tag":85,"props":1224,"children":1225},{"style":98},[1226],{"type":44,"value":1102},{"type":39,"tag":85,"props":1228,"children":1229},{"style":1105},[1230],{"type":44,"value":1108},{"type":39,"tag":85,"props":1232,"children":1234},{"class":87,"line":1233},14,[1235,1239,1243,1248,1252,1256,1262,1266,1270,1275,1279,1283,1288,1292,1297,1301,1305,1309,1313,1317,1321,1325,1329,1333,1337],{"type":39,"tag":85,"props":1236,"children":1237},{"style":229},[1238],{"type":44,"value":1117},{"type":39,"tag":85,"props":1240,"children":1241},{"style":229},[1242],{"type":44,"value":243},{"type":39,"tag":85,"props":1244,"children":1245},{"style":1124},[1246],{"type":44,"value":1247},"schemaVersion",{"type":39,"tag":85,"props":1249,"children":1250},{"style":229},[1251],{"type":44,"value":243},{"type":39,"tag":85,"props":1253,"children":1254},{"style":229},[1255],{"type":44,"value":873},{"type":39,"tag":85,"props":1257,"children":1259},{"style":1258},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1260],{"type":44,"value":1261}," 1",{"type":39,"tag":85,"props":1263,"children":1264},{"style":229},[1265],{"type":44,"value":1153},{"type":39,"tag":85,"props":1267,"children":1268},{"style":229},[1269],{"type":44,"value":232},{"type":39,"tag":85,"props":1271,"children":1272},{"style":1124},[1273],{"type":44,"value":1274},"chunk",{"type":39,"tag":85,"props":1276,"children":1277},{"style":229},[1278],{"type":44,"value":243},{"type":39,"tag":85,"props":1280,"children":1281},{"style":229},[1282],{"type":44,"value":873},{"type":39,"tag":85,"props":1284,"children":1285},{"style":229},[1286],{"type":44,"value":1287}," {",{"type":39,"tag":85,"props":1289,"children":1290},{"style":229},[1291],{"type":44,"value":243},{"type":39,"tag":85,"props":1293,"children":1294},{"style":92},[1295],{"type":44,"value":1296},"index",{"type":39,"tag":85,"props":1298,"children":1299},{"style":229},[1300],{"type":44,"value":243},{"type":39,"tag":85,"props":1302,"children":1303},{"style":229},[1304],{"type":44,"value":873},{"type":39,"tag":85,"props":1306,"children":1307},{"style":1258},[1308],{"type":44,"value":1261},{"type":39,"tag":85,"props":1310,"children":1311},{"style":229},[1312],{"type":44,"value":1153},{"type":39,"tag":85,"props":1314,"children":1315},{"style":229},[1316],{"type":44,"value":232},{"type":39,"tag":85,"props":1318,"children":1319},{"style":92},[1320],{"type":44,"value":1039},{"type":39,"tag":85,"props":1322,"children":1323},{"style":229},[1324],{"type":44,"value":243},{"type":39,"tag":85,"props":1326,"children":1327},{"style":229},[1328],{"type":44,"value":873},{"type":39,"tag":85,"props":1330,"children":1331},{"style":229},[1332],{"type":44,"value":1174},{"type":39,"tag":85,"props":1334,"children":1335},{"style":235},[1336],{"type":44,"value":1179},{"type":39,"tag":85,"props":1338,"children":1339},{"style":229},[1340],{"type":44,"value":1341},"]}}\n",{"type":39,"tag":85,"props":1343,"children":1345},{"class":87,"line":1344},15,[1346],{"type":39,"tag":85,"props":1347,"children":1348},{"style":98},[1349],{"type":44,"value":1193},{"type":39,"tag":441,"props":1351,"children":1352},{},[1353],{"type":44,"value":1354},"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":1356,"total":1531},[1357,1382,1396,1409,1423,1440,1456,1470,1480,1490,1500,1518],{"slug":1358,"name":1358,"fn":1359,"description":1360,"org":1361,"tags":1362,"stars":1379,"repoUrl":1380,"updatedAt":1381},"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},[1363,1366,1369,1372,1373,1376],{"name":1364,"slug":1365,"type":16},"Debugging","debugging",{"name":1367,"slug":1368,"type":16},"iOS","ios",{"name":1370,"slug":1371,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":1374,"slug":1375,"type":16},"Testing","testing",{"name":1377,"slug":1378,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":1383,"name":1383,"fn":1384,"description":1385,"org":1386,"tags":1387,"stars":1379,"repoUrl":1380,"updatedAt":1395},"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},[1388,1391,1392,1393,1394],{"name":1389,"slug":1390,"type":16},"CLI","cli",{"name":1367,"slug":1368,"type":16},{"name":1370,"slug":1371,"type":16},{"name":1374,"slug":1375,"type":16},{"name":1377,"slug":1378,"type":16},"2026-04-06T18:13:36.13414",{"slug":1397,"name":1397,"fn":1398,"description":1399,"org":1400,"tags":1401,"stars":21,"repoUrl":22,"updatedAt":1408},"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},[1402,1405],{"name":1403,"slug":1404,"type":16},"Documentation","documentation",{"name":1406,"slug":1407,"type":16},"Engineering","engineering","2026-05-15T06:16:29.695991",{"slug":1410,"name":1410,"fn":1411,"description":1412,"org":1413,"tags":1414,"stars":21,"repoUrl":22,"updatedAt":1422},"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},[1415,1418,1419],{"name":1416,"slug":1417,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":1420,"slug":1421,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":1424,"name":1424,"fn":1425,"description":1426,"org":1427,"tags":1428,"stars":21,"repoUrl":22,"updatedAt":1439},"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},[1429,1432,1435,1436],{"name":1430,"slug":1431,"type":16},"Branding","branding",{"name":1433,"slug":1434,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":1437,"slug":1438,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":1441,"name":1441,"fn":1442,"description":1443,"org":1444,"tags":1445,"stars":21,"repoUrl":22,"updatedAt":1455},"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},[1446,1449,1452],{"name":1447,"slug":1448,"type":16},"Claude Code","claude-code",{"name":1450,"slug":1451,"type":16},"Configuration","configuration",{"name":1453,"slug":1454,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":1457,"name":1457,"fn":1458,"description":1459,"org":1460,"tags":1461,"stars":21,"repoUrl":22,"updatedAt":1469},"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},[1462,1464,1465,1468],{"name":1463,"slug":1457,"type":16},"Code Review",{"name":1406,"slug":1407,"type":16},{"name":1466,"slug":1467,"type":16},"Performance","performance",{"name":1453,"slug":1454,"type":16},"2026-05-15T06:16:35.824864",{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1474,"tags":1475,"stars":21,"repoUrl":22,"updatedAt":1479},"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},[1476],{"name":1477,"slug":1478,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":1481,"name":1481,"fn":1482,"description":1483,"org":1484,"tags":1485,"stars":21,"repoUrl":22,"updatedAt":1489},"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},[1486,1488],{"name":1487,"slug":95,"type":16},"Git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":1491,"name":1491,"fn":1492,"description":1493,"org":1494,"tags":1495,"stars":21,"repoUrl":22,"updatedAt":1499},"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},[1496,1497,1498],{"name":1406,"slug":1407,"type":16},{"name":1487,"slug":95,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":1501,"name":1501,"fn":1502,"description":1503,"org":1504,"tags":1505,"stars":21,"repoUrl":22,"updatedAt":1517},"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},[1506,1509,1510,1513,1516],{"name":1507,"slug":1508,"type":16},"Access Control","access-control",{"name":1477,"slug":1478,"type":16},{"name":1511,"slug":1512,"type":16},"Django","django",{"name":1514,"slug":1515,"type":16},"Python","python",{"name":1453,"slug":1454,"type":16},"2026-05-15T06:16:43.098698",{"slug":1519,"name":1519,"fn":1520,"description":1521,"org":1522,"tags":1523,"stars":21,"repoUrl":22,"updatedAt":1530},"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},[1524,1525,1528,1529],{"name":1463,"slug":1457,"type":16},{"name":1526,"slug":1527,"type":16},"Database","database",{"name":1511,"slug":1512,"type":16},{"name":1466,"slug":1467,"type":16},"2026-05-15T06:16:24.832813",88,{"items":1533,"total":1574},[1534,1539,1545,1552,1558,1565,1569],{"slug":1397,"name":1397,"fn":1398,"description":1399,"org":1535,"tags":1536,"stars":21,"repoUrl":22,"updatedAt":1408},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1537,1538],{"name":1403,"slug":1404,"type":16},{"name":1406,"slug":1407,"type":16},{"slug":1410,"name":1410,"fn":1411,"description":1412,"org":1540,"tags":1541,"stars":21,"repoUrl":22,"updatedAt":1422},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1542,1543,1544],{"name":1416,"slug":1417,"type":16},{"name":9,"slug":8,"type":16},{"name":1420,"slug":1421,"type":16},{"slug":1424,"name":1424,"fn":1425,"description":1426,"org":1546,"tags":1547,"stars":21,"repoUrl":22,"updatedAt":1439},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1548,1549,1550,1551],{"name":1430,"slug":1431,"type":16},{"name":1433,"slug":1434,"type":16},{"name":9,"slug":8,"type":16},{"name":1437,"slug":1438,"type":16},{"slug":1441,"name":1441,"fn":1442,"description":1443,"org":1553,"tags":1554,"stars":21,"repoUrl":22,"updatedAt":1455},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1555,1556,1557],{"name":1447,"slug":1448,"type":16},{"name":1450,"slug":1451,"type":16},{"name":1453,"slug":1454,"type":16},{"slug":1457,"name":1457,"fn":1458,"description":1459,"org":1559,"tags":1560,"stars":21,"repoUrl":22,"updatedAt":1469},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1561,1562,1563,1564],{"name":1463,"slug":1457,"type":16},{"name":1406,"slug":1407,"type":16},{"name":1466,"slug":1467,"type":16},{"name":1453,"slug":1454,"type":16},{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1566,"tags":1567,"stars":21,"repoUrl":22,"updatedAt":1479},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1568],{"name":1477,"slug":1478,"type":16},{"slug":1481,"name":1481,"fn":1482,"description":1483,"org":1570,"tags":1571,"stars":21,"repoUrl":22,"updatedAt":1489},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1572,1573],{"name":1487,"slug":95,"type":16},{"name":9,"slug":8,"type":16},28]