[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-prompt-optimizer":3,"mdc--vhegkt-key":39,"related-repo-sentry-prompt-optimizer":850,"related-org-sentry-prompt-optimizer":948},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":27,"repoUrl":28,"updatedAt":29,"license":30,"forks":31,"topics":32,"repo":34,"sourceUrl":37,"mdContent":38},"prompt-optimizer","optimize and refine agent prompts","Creates, optimizes, and iteratively refines agent prompts, system prompts, developer prompts, and reusable prompt templates. Use when asked to improve a prompt, optimize a system prompt, rewrite an agent prompt, tune prompt wording, make a prompt more reliable, port prompts between OpenAI, Claude, or Gemini, or build prompt evals.",{"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,26],{"name":14,"slug":15,"type":16},"LLM","llm","tag",{"name":18,"slug":19,"type":16},"Writing","writing",{"name":21,"slug":22,"type":16},"AI Context","ai-context",{"name":24,"slug":25,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-04-20T05:27:14.436238",null,45,[33],"tag-production",{"repoUrl":28,"stars":27,"forks":31,"topics":35,"description":36},[33],"Agent Skills used by the Sentry team for development.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fprompt-optimizer","---\nname: prompt-optimizer\ndescription: Creates, optimizes, and iteratively refines agent prompts, system prompts, developer prompts, and reusable prompt templates. Use when asked to improve a prompt, optimize a system prompt, rewrite an agent prompt, tune prompt wording, make a prompt more reliable, port prompts between OpenAI, Claude, or Gemini, or build prompt evals.\n---\n\n# Prompt Optimizer\n\nOptimize prompts with evals. Keep every instruction, example, and external context reference causal.\n\n## Load Only What You Need\n\n| Need | Read |\n|------|------|\n| New prompt | `references\u002Fcore-patterns.md`, `references\u002Fmodel-family-notes.md`, `references\u002Ftransformed-examples.md` |\n| Existing prompt | `references\u002Fmeta-optimization-loop.md`, `references\u002Fcore-patterns.md`, `references\u002Fmodel-family-notes.md` |\n| Model-family port | `references\u002Fmodel-family-notes.md`, `references\u002Fcore-patterns.md` |\n| Repeated failures | `references\u002Fmeta-optimization-loop.md`, `references\u002Fcore-patterns.md` |\n| Weak or ambiguous draft | `references\u002Ftransformed-examples.md` |\n| Provenance | `SOURCES.md` |\n\n## Step 1: Capture Contract\n\nRecord before editing:\n\n- task type: new, refine, port, or debug\n- target model family and snapshot, if known\n- prompt surface: `system`, `developer`, `user`, tool descriptions, examples, schemas\n- layer owners: platform, deployer\u002Fpersona, retrieved context, user payload\n- objective and non-goals\n- inputs, tools, and external files available\n- required output shape\n- success criteria and failure cases\n- hard constraints: latency, verbosity, safety, budget, tool use, style\n\nIf success criteria or examples are missing, create a small eval set first.\nIf the bottleneck is model choice, retrieval, tool schema, or missing evals, say so before rewriting.\n\n## Step 2: Inventory External Context\n\nFor repo or agent prompts, list stable context by exact path:\n\n| Context type | Examples |\n|--------------|----------|\n| Agent rules | `AGENTS.md`, `CLAUDE.md` |\n| Specs | `specs\u002F*.md`, `docs\u002Fapi.md` |\n| Policies | `SECURITY.md`, `docs\u002Freleasing.md` |\n| Examples | `examples\u002F`, `tests\u002Ffixtures\u002F` |\n\nRules:\n\n- Reference stable files by repo-relative path instead of copying them.\n- Paste only excerpts needed for the prompt or eval case.\n- Mark whether a file is `loaded`, `referenced`, or `out of scope`.\n- Avoid vague context pointers such as \"read the docs\".\n\n## Step 3: Choose Model Strategy\n\nRead `references\u002Fmodel-family-notes.md`.\n\n- Known family: optimize for that family.\n- Unknown family: write a portable base plus short adapter notes.\n- Snapshot changes: rerun evals.\n- Cross-family divergence: specialize only the failing layer.\n\n## Step 4: Shape Prompt\n\nRead `references\u002Fcore-patterns.md`.\n\n- Put stable policy in `system` or `developer`.\n- Put task-local facts, retrieved context, and variables in user-facing sections.\n- Keep one owner per behavior rule.\n- Use headings or tags only to separate content types.\n- Put tool policy in prompt text; keep schemas in provider-native tools.\n- Keep persona light unless it changes behavior.\n- Use the shortest wording that preserves the constraint.\n- Cut filler, repeated reminders, dead examples, and rationale that does not affect evals.\n\n## Step 5: Optimize\n\nRead `references\u002Fmeta-optimization-loop.md` for refinements.\n\n1. Baseline the current prompt on the same eval slice.\n2. Cluster failures by root cause.\n3. Write concrete edit criticisms.\n4. Generate two to four candidates:\n   - minimal-diff repair\n   - structure-first rewrite\n   - examples-first or tool-rule variant\n   - provider adapter when needed\n5. Compare candidates on the same cases.\n6. Keep a short optimization log.\n7. Validate the winner on holdout cases.\n8. Stop on plateau, oscillation, overfit, excessive cost, or non-prompt bottleneck.\n\n## Step 6: Return Package\n\nReturn:\n\n1. `Target`\n2. `Success Criteria`\n3. `External Context`\n4. `Optimized Prompt`\n5. `Adapter Notes`\n6. `Eval Set`\n7. `Optimization Log`\n8. `Residual Risks`\n\nFor existing prompts, include a concise diff-style note of the main behavioral changes.\n\n## Failure Modes\n\n- editing before defining the eval target\n- mixing policy, examples, and raw context without boundaries\n- duplicating rules across layers\n- putting durable policy in user payloads\n- asking for chain-of-thought\n- keeping contradictory legacy instructions\n- overfitting to one or two examples\n- retaining examples that no longer improve evals\n- fixing tool-use failures only in prompt text when tool descriptions or schemas are weak\n- adding markup that does not reduce ambiguity\n- using persona as a substitute for behavior rules\n",{"data":40,"body":41},{"name":4,"description":6},{"type":42,"children":43},"root",[44,52,58,65,232,238,243,315,320,326,331,448,453,499,505,516,539,545,555,611,617,628,695,701,706,781,786,792],{"type":45,"tag":46,"props":47,"children":48},"element","h1",{"id":4},[49],{"type":50,"value":51},"text","Prompt Optimizer",{"type":45,"tag":53,"props":54,"children":55},"p",{},[56],{"type":50,"value":57},"Optimize prompts with evals. Keep every instruction, example, and external context reference causal.",{"type":45,"tag":59,"props":60,"children":62},"h2",{"id":61},"load-only-what-you-need",[63],{"type":50,"value":64},"Load Only What You Need",{"type":45,"tag":66,"props":67,"children":68},"table",{},[69,88],{"type":45,"tag":70,"props":71,"children":72},"thead",{},[73],{"type":45,"tag":74,"props":75,"children":76},"tr",{},[77,83],{"type":45,"tag":78,"props":79,"children":80},"th",{},[81],{"type":50,"value":82},"Need",{"type":45,"tag":78,"props":84,"children":85},{},[86],{"type":50,"value":87},"Read",{"type":45,"tag":89,"props":90,"children":91},"tbody",{},[92,126,155,177,199,215],{"type":45,"tag":74,"props":93,"children":94},{},[95,101],{"type":45,"tag":96,"props":97,"children":98},"td",{},[99],{"type":50,"value":100},"New prompt",{"type":45,"tag":96,"props":102,"children":103},{},[104,111,113,119,120],{"type":45,"tag":105,"props":106,"children":108},"code",{"className":107},[],[109],{"type":50,"value":110},"references\u002Fcore-patterns.md",{"type":50,"value":112},", ",{"type":45,"tag":105,"props":114,"children":116},{"className":115},[],[117],{"type":50,"value":118},"references\u002Fmodel-family-notes.md",{"type":50,"value":112},{"type":45,"tag":105,"props":121,"children":123},{"className":122},[],[124],{"type":50,"value":125},"references\u002Ftransformed-examples.md",{"type":45,"tag":74,"props":127,"children":128},{},[129,134],{"type":45,"tag":96,"props":130,"children":131},{},[132],{"type":50,"value":133},"Existing prompt",{"type":45,"tag":96,"props":135,"children":136},{},[137,143,144,149,150],{"type":45,"tag":105,"props":138,"children":140},{"className":139},[],[141],{"type":50,"value":142},"references\u002Fmeta-optimization-loop.md",{"type":50,"value":112},{"type":45,"tag":105,"props":145,"children":147},{"className":146},[],[148],{"type":50,"value":110},{"type":50,"value":112},{"type":45,"tag":105,"props":151,"children":153},{"className":152},[],[154],{"type":50,"value":118},{"type":45,"tag":74,"props":156,"children":157},{},[158,163],{"type":45,"tag":96,"props":159,"children":160},{},[161],{"type":50,"value":162},"Model-family port",{"type":45,"tag":96,"props":164,"children":165},{},[166,171,172],{"type":45,"tag":105,"props":167,"children":169},{"className":168},[],[170],{"type":50,"value":118},{"type":50,"value":112},{"type":45,"tag":105,"props":173,"children":175},{"className":174},[],[176],{"type":50,"value":110},{"type":45,"tag":74,"props":178,"children":179},{},[180,185],{"type":45,"tag":96,"props":181,"children":182},{},[183],{"type":50,"value":184},"Repeated failures",{"type":45,"tag":96,"props":186,"children":187},{},[188,193,194],{"type":45,"tag":105,"props":189,"children":191},{"className":190},[],[192],{"type":50,"value":142},{"type":50,"value":112},{"type":45,"tag":105,"props":195,"children":197},{"className":196},[],[198],{"type":50,"value":110},{"type":45,"tag":74,"props":200,"children":201},{},[202,207],{"type":45,"tag":96,"props":203,"children":204},{},[205],{"type":50,"value":206},"Weak or ambiguous draft",{"type":45,"tag":96,"props":208,"children":209},{},[210],{"type":45,"tag":105,"props":211,"children":213},{"className":212},[],[214],{"type":50,"value":125},{"type":45,"tag":74,"props":216,"children":217},{},[218,223],{"type":45,"tag":96,"props":219,"children":220},{},[221],{"type":50,"value":222},"Provenance",{"type":45,"tag":96,"props":224,"children":225},{},[226],{"type":45,"tag":105,"props":227,"children":229},{"className":228},[],[230],{"type":50,"value":231},"SOURCES.md",{"type":45,"tag":59,"props":233,"children":235},{"id":234},"step-1-capture-contract",[236],{"type":50,"value":237},"Step 1: Capture Contract",{"type":45,"tag":53,"props":239,"children":240},{},[241],{"type":50,"value":242},"Record before editing:",{"type":45,"tag":244,"props":245,"children":246},"ul",{},[247,253,258,285,290,295,300,305,310],{"type":45,"tag":248,"props":249,"children":250},"li",{},[251],{"type":50,"value":252},"task type: new, refine, port, or debug",{"type":45,"tag":248,"props":254,"children":255},{},[256],{"type":50,"value":257},"target model family and snapshot, if known",{"type":45,"tag":248,"props":259,"children":260},{},[261,263,269,270,276,277,283],{"type":50,"value":262},"prompt surface: ",{"type":45,"tag":105,"props":264,"children":266},{"className":265},[],[267],{"type":50,"value":268},"system",{"type":50,"value":112},{"type":45,"tag":105,"props":271,"children":273},{"className":272},[],[274],{"type":50,"value":275},"developer",{"type":50,"value":112},{"type":45,"tag":105,"props":278,"children":280},{"className":279},[],[281],{"type":50,"value":282},"user",{"type":50,"value":284},", tool descriptions, examples, schemas",{"type":45,"tag":248,"props":286,"children":287},{},[288],{"type":50,"value":289},"layer owners: platform, deployer\u002Fpersona, retrieved context, user payload",{"type":45,"tag":248,"props":291,"children":292},{},[293],{"type":50,"value":294},"objective and non-goals",{"type":45,"tag":248,"props":296,"children":297},{},[298],{"type":50,"value":299},"inputs, tools, and external files available",{"type":45,"tag":248,"props":301,"children":302},{},[303],{"type":50,"value":304},"required output shape",{"type":45,"tag":248,"props":306,"children":307},{},[308],{"type":50,"value":309},"success criteria and failure cases",{"type":45,"tag":248,"props":311,"children":312},{},[313],{"type":50,"value":314},"hard constraints: latency, verbosity, safety, budget, tool use, style",{"type":45,"tag":53,"props":316,"children":317},{},[318],{"type":50,"value":319},"If success criteria or examples are missing, create a small eval set first.\nIf the bottleneck is model choice, retrieval, tool schema, or missing evals, say so before rewriting.",{"type":45,"tag":59,"props":321,"children":323},{"id":322},"step-2-inventory-external-context",[324],{"type":50,"value":325},"Step 2: Inventory External Context",{"type":45,"tag":53,"props":327,"children":328},{},[329],{"type":50,"value":330},"For repo or agent prompts, list stable context by exact path:",{"type":45,"tag":66,"props":332,"children":333},{},[334,350],{"type":45,"tag":70,"props":335,"children":336},{},[337],{"type":45,"tag":74,"props":338,"children":339},{},[340,345],{"type":45,"tag":78,"props":341,"children":342},{},[343],{"type":50,"value":344},"Context type",{"type":45,"tag":78,"props":346,"children":347},{},[348],{"type":50,"value":349},"Examples",{"type":45,"tag":89,"props":351,"children":352},{},[353,377,401,425],{"type":45,"tag":74,"props":354,"children":355},{},[356,361],{"type":45,"tag":96,"props":357,"children":358},{},[359],{"type":50,"value":360},"Agent rules",{"type":45,"tag":96,"props":362,"children":363},{},[364,370,371],{"type":45,"tag":105,"props":365,"children":367},{"className":366},[],[368],{"type":50,"value":369},"AGENTS.md",{"type":50,"value":112},{"type":45,"tag":105,"props":372,"children":374},{"className":373},[],[375],{"type":50,"value":376},"CLAUDE.md",{"type":45,"tag":74,"props":378,"children":379},{},[380,385],{"type":45,"tag":96,"props":381,"children":382},{},[383],{"type":50,"value":384},"Specs",{"type":45,"tag":96,"props":386,"children":387},{},[388,394,395],{"type":45,"tag":105,"props":389,"children":391},{"className":390},[],[392],{"type":50,"value":393},"specs\u002F*.md",{"type":50,"value":112},{"type":45,"tag":105,"props":396,"children":398},{"className":397},[],[399],{"type":50,"value":400},"docs\u002Fapi.md",{"type":45,"tag":74,"props":402,"children":403},{},[404,409],{"type":45,"tag":96,"props":405,"children":406},{},[407],{"type":50,"value":408},"Policies",{"type":45,"tag":96,"props":410,"children":411},{},[412,418,419],{"type":45,"tag":105,"props":413,"children":415},{"className":414},[],[416],{"type":50,"value":417},"SECURITY.md",{"type":50,"value":112},{"type":45,"tag":105,"props":420,"children":422},{"className":421},[],[423],{"type":50,"value":424},"docs\u002Freleasing.md",{"type":45,"tag":74,"props":426,"children":427},{},[428,432],{"type":45,"tag":96,"props":429,"children":430},{},[431],{"type":50,"value":349},{"type":45,"tag":96,"props":433,"children":434},{},[435,441,442],{"type":45,"tag":105,"props":436,"children":438},{"className":437},[],[439],{"type":50,"value":440},"examples\u002F",{"type":50,"value":112},{"type":45,"tag":105,"props":443,"children":445},{"className":444},[],[446],{"type":50,"value":447},"tests\u002Ffixtures\u002F",{"type":45,"tag":53,"props":449,"children":450},{},[451],{"type":50,"value":452},"Rules:",{"type":45,"tag":244,"props":454,"children":455},{},[456,461,466,494],{"type":45,"tag":248,"props":457,"children":458},{},[459],{"type":50,"value":460},"Reference stable files by repo-relative path instead of copying them.",{"type":45,"tag":248,"props":462,"children":463},{},[464],{"type":50,"value":465},"Paste only excerpts needed for the prompt or eval case.",{"type":45,"tag":248,"props":467,"children":468},{},[469,471,477,478,484,486,492],{"type":50,"value":470},"Mark whether a file is ",{"type":45,"tag":105,"props":472,"children":474},{"className":473},[],[475],{"type":50,"value":476},"loaded",{"type":50,"value":112},{"type":45,"tag":105,"props":479,"children":481},{"className":480},[],[482],{"type":50,"value":483},"referenced",{"type":50,"value":485},", or ",{"type":45,"tag":105,"props":487,"children":489},{"className":488},[],[490],{"type":50,"value":491},"out of scope",{"type":50,"value":493},".",{"type":45,"tag":248,"props":495,"children":496},{},[497],{"type":50,"value":498},"Avoid vague context pointers such as \"read the docs\".",{"type":45,"tag":59,"props":500,"children":502},{"id":501},"step-3-choose-model-strategy",[503],{"type":50,"value":504},"Step 3: Choose Model Strategy",{"type":45,"tag":53,"props":506,"children":507},{},[508,510,515],{"type":50,"value":509},"Read ",{"type":45,"tag":105,"props":511,"children":513},{"className":512},[],[514],{"type":50,"value":118},{"type":50,"value":493},{"type":45,"tag":244,"props":517,"children":518},{},[519,524,529,534],{"type":45,"tag":248,"props":520,"children":521},{},[522],{"type":50,"value":523},"Known family: optimize for that family.",{"type":45,"tag":248,"props":525,"children":526},{},[527],{"type":50,"value":528},"Unknown family: write a portable base plus short adapter notes.",{"type":45,"tag":248,"props":530,"children":531},{},[532],{"type":50,"value":533},"Snapshot changes: rerun evals.",{"type":45,"tag":248,"props":535,"children":536},{},[537],{"type":50,"value":538},"Cross-family divergence: specialize only the failing layer.",{"type":45,"tag":59,"props":540,"children":542},{"id":541},"step-4-shape-prompt",[543],{"type":50,"value":544},"Step 4: Shape Prompt",{"type":45,"tag":53,"props":546,"children":547},{},[548,549,554],{"type":50,"value":509},{"type":45,"tag":105,"props":550,"children":552},{"className":551},[],[553],{"type":50,"value":110},{"type":50,"value":493},{"type":45,"tag":244,"props":556,"children":557},{},[558,576,581,586,591,596,601,606],{"type":45,"tag":248,"props":559,"children":560},{},[561,563,568,570,575],{"type":50,"value":562},"Put stable policy in ",{"type":45,"tag":105,"props":564,"children":566},{"className":565},[],[567],{"type":50,"value":268},{"type":50,"value":569}," or ",{"type":45,"tag":105,"props":571,"children":573},{"className":572},[],[574],{"type":50,"value":275},{"type":50,"value":493},{"type":45,"tag":248,"props":577,"children":578},{},[579],{"type":50,"value":580},"Put task-local facts, retrieved context, and variables in user-facing sections.",{"type":45,"tag":248,"props":582,"children":583},{},[584],{"type":50,"value":585},"Keep one owner per behavior rule.",{"type":45,"tag":248,"props":587,"children":588},{},[589],{"type":50,"value":590},"Use headings or tags only to separate content types.",{"type":45,"tag":248,"props":592,"children":593},{},[594],{"type":50,"value":595},"Put tool policy in prompt text; keep schemas in provider-native tools.",{"type":45,"tag":248,"props":597,"children":598},{},[599],{"type":50,"value":600},"Keep persona light unless it changes behavior.",{"type":45,"tag":248,"props":602,"children":603},{},[604],{"type":50,"value":605},"Use the shortest wording that preserves the constraint.",{"type":45,"tag":248,"props":607,"children":608},{},[609],{"type":50,"value":610},"Cut filler, repeated reminders, dead examples, and rationale that does not affect evals.",{"type":45,"tag":59,"props":612,"children":614},{"id":613},"step-5-optimize",[615],{"type":50,"value":616},"Step 5: Optimize",{"type":45,"tag":53,"props":618,"children":619},{},[620,621,626],{"type":50,"value":509},{"type":45,"tag":105,"props":622,"children":624},{"className":623},[],[625],{"type":50,"value":142},{"type":50,"value":627}," for refinements.",{"type":45,"tag":629,"props":630,"children":631},"ol",{},[632,637,642,647,675,680,685,690],{"type":45,"tag":248,"props":633,"children":634},{},[635],{"type":50,"value":636},"Baseline the current prompt on the same eval slice.",{"type":45,"tag":248,"props":638,"children":639},{},[640],{"type":50,"value":641},"Cluster failures by root cause.",{"type":45,"tag":248,"props":643,"children":644},{},[645],{"type":50,"value":646},"Write concrete edit criticisms.",{"type":45,"tag":248,"props":648,"children":649},{},[650,652],{"type":50,"value":651},"Generate two to four candidates:\n",{"type":45,"tag":244,"props":653,"children":654},{},[655,660,665,670],{"type":45,"tag":248,"props":656,"children":657},{},[658],{"type":50,"value":659},"minimal-diff repair",{"type":45,"tag":248,"props":661,"children":662},{},[663],{"type":50,"value":664},"structure-first rewrite",{"type":45,"tag":248,"props":666,"children":667},{},[668],{"type":50,"value":669},"examples-first or tool-rule variant",{"type":45,"tag":248,"props":671,"children":672},{},[673],{"type":50,"value":674},"provider adapter when needed",{"type":45,"tag":248,"props":676,"children":677},{},[678],{"type":50,"value":679},"Compare candidates on the same cases.",{"type":45,"tag":248,"props":681,"children":682},{},[683],{"type":50,"value":684},"Keep a short optimization log.",{"type":45,"tag":248,"props":686,"children":687},{},[688],{"type":50,"value":689},"Validate the winner on holdout cases.",{"type":45,"tag":248,"props":691,"children":692},{},[693],{"type":50,"value":694},"Stop on plateau, oscillation, overfit, excessive cost, or non-prompt bottleneck.",{"type":45,"tag":59,"props":696,"children":698},{"id":697},"step-6-return-package",[699],{"type":50,"value":700},"Step 6: Return Package",{"type":45,"tag":53,"props":702,"children":703},{},[704],{"type":50,"value":705},"Return:",{"type":45,"tag":629,"props":707,"children":708},{},[709,718,727,736,745,754,763,772],{"type":45,"tag":248,"props":710,"children":711},{},[712],{"type":45,"tag":105,"props":713,"children":715},{"className":714},[],[716],{"type":50,"value":717},"Target",{"type":45,"tag":248,"props":719,"children":720},{},[721],{"type":45,"tag":105,"props":722,"children":724},{"className":723},[],[725],{"type":50,"value":726},"Success Criteria",{"type":45,"tag":248,"props":728,"children":729},{},[730],{"type":45,"tag":105,"props":731,"children":733},{"className":732},[],[734],{"type":50,"value":735},"External Context",{"type":45,"tag":248,"props":737,"children":738},{},[739],{"type":45,"tag":105,"props":740,"children":742},{"className":741},[],[743],{"type":50,"value":744},"Optimized Prompt",{"type":45,"tag":248,"props":746,"children":747},{},[748],{"type":45,"tag":105,"props":749,"children":751},{"className":750},[],[752],{"type":50,"value":753},"Adapter Notes",{"type":45,"tag":248,"props":755,"children":756},{},[757],{"type":45,"tag":105,"props":758,"children":760},{"className":759},[],[761],{"type":50,"value":762},"Eval Set",{"type":45,"tag":248,"props":764,"children":765},{},[766],{"type":45,"tag":105,"props":767,"children":769},{"className":768},[],[770],{"type":50,"value":771},"Optimization Log",{"type":45,"tag":248,"props":773,"children":774},{},[775],{"type":45,"tag":105,"props":776,"children":778},{"className":777},[],[779],{"type":50,"value":780},"Residual Risks",{"type":45,"tag":53,"props":782,"children":783},{},[784],{"type":50,"value":785},"For existing prompts, include a concise diff-style note of the main behavioral changes.",{"type":45,"tag":59,"props":787,"children":789},{"id":788},"failure-modes",[790],{"type":50,"value":791},"Failure Modes",{"type":45,"tag":244,"props":793,"children":794},{},[795,800,805,810,815,820,825,830,835,840,845],{"type":45,"tag":248,"props":796,"children":797},{},[798],{"type":50,"value":799},"editing before defining the eval target",{"type":45,"tag":248,"props":801,"children":802},{},[803],{"type":50,"value":804},"mixing policy, examples, and raw context without boundaries",{"type":45,"tag":248,"props":806,"children":807},{},[808],{"type":50,"value":809},"duplicating rules across layers",{"type":45,"tag":248,"props":811,"children":812},{},[813],{"type":50,"value":814},"putting durable policy in user payloads",{"type":45,"tag":248,"props":816,"children":817},{},[818],{"type":50,"value":819},"asking for chain-of-thought",{"type":45,"tag":248,"props":821,"children":822},{},[823],{"type":50,"value":824},"keeping contradictory legacy instructions",{"type":45,"tag":248,"props":826,"children":827},{},[828],{"type":50,"value":829},"overfitting to one or two examples",{"type":45,"tag":248,"props":831,"children":832},{},[833],{"type":50,"value":834},"retaining examples that no longer improve evals",{"type":45,"tag":248,"props":836,"children":837},{},[838],{"type":50,"value":839},"fixing tool-use failures only in prompt text when tool descriptions or schemas are weak",{"type":45,"tag":248,"props":841,"children":842},{},[843],{"type":50,"value":844},"adding markup that does not reduce ambiguity",{"type":45,"tag":248,"props":846,"children":847},{},[848],{"type":50,"value":849},"using persona as a substitute for behavior rules",{"items":851,"total":947},[852,865,879,896,912,926,936],{"slug":853,"name":853,"fn":854,"description":855,"org":856,"tags":857,"stars":27,"repoUrl":28,"updatedAt":864},"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},[858,861],{"name":859,"slug":860,"type":16},"Documentation","documentation",{"name":862,"slug":863,"type":16},"Engineering","engineering","2026-05-15T06:16:29.695991",{"slug":866,"name":866,"fn":867,"description":868,"org":869,"tags":870,"stars":27,"repoUrl":28,"updatedAt":878},"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},[871,874,875],{"name":872,"slug":873,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":876,"slug":877,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":880,"name":880,"fn":881,"description":882,"org":883,"tags":884,"stars":27,"repoUrl":28,"updatedAt":895},"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},[885,888,891,892],{"name":886,"slug":887,"type":16},"Branding","branding",{"name":889,"slug":890,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":893,"slug":894,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":897,"name":897,"fn":898,"description":899,"org":900,"tags":901,"stars":27,"repoUrl":28,"updatedAt":911},"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},[902,905,908],{"name":903,"slug":904,"type":16},"Claude Code","claude-code",{"name":906,"slug":907,"type":16},"Configuration","configuration",{"name":909,"slug":910,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":913,"name":913,"fn":914,"description":915,"org":916,"tags":917,"stars":27,"repoUrl":28,"updatedAt":925},"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},[918,920,921,924],{"name":919,"slug":913,"type":16},"Code Review",{"name":862,"slug":863,"type":16},{"name":922,"slug":923,"type":16},"Performance","performance",{"name":909,"slug":910,"type":16},"2026-05-15T06:16:35.824864",{"slug":927,"name":927,"fn":928,"description":929,"org":930,"tags":931,"stars":27,"repoUrl":28,"updatedAt":935},"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},[932],{"name":933,"slug":934,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":937,"name":937,"fn":938,"description":939,"org":940,"tags":941,"stars":27,"repoUrl":28,"updatedAt":946},"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},[942,945],{"name":943,"slug":944,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",28,{"items":949,"total":1070},[950,975,989,994,1000,1007,1013,1020,1024,1029,1039,1057],{"slug":951,"name":951,"fn":952,"description":953,"org":954,"tags":955,"stars":972,"repoUrl":973,"updatedAt":974},"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},[956,959,962,965,966,969],{"name":957,"slug":958,"type":16},"Debugging","debugging",{"name":960,"slug":961,"type":16},"iOS","ios",{"name":963,"slug":964,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":967,"slug":968,"type":16},"Testing","testing",{"name":970,"slug":971,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":976,"name":976,"fn":977,"description":978,"org":979,"tags":980,"stars":972,"repoUrl":973,"updatedAt":988},"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},[981,984,985,986,987],{"name":982,"slug":983,"type":16},"CLI","cli",{"name":960,"slug":961,"type":16},{"name":963,"slug":964,"type":16},{"name":967,"slug":968,"type":16},{"name":970,"slug":971,"type":16},"2026-04-06T18:13:36.13414",{"slug":853,"name":853,"fn":854,"description":855,"org":990,"tags":991,"stars":27,"repoUrl":28,"updatedAt":864},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[992,993],{"name":859,"slug":860,"type":16},{"name":862,"slug":863,"type":16},{"slug":866,"name":866,"fn":867,"description":868,"org":995,"tags":996,"stars":27,"repoUrl":28,"updatedAt":878},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[997,998,999],{"name":872,"slug":873,"type":16},{"name":9,"slug":8,"type":16},{"name":876,"slug":877,"type":16},{"slug":880,"name":880,"fn":881,"description":882,"org":1001,"tags":1002,"stars":27,"repoUrl":28,"updatedAt":895},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1003,1004,1005,1006],{"name":886,"slug":887,"type":16},{"name":889,"slug":890,"type":16},{"name":9,"slug":8,"type":16},{"name":893,"slug":894,"type":16},{"slug":897,"name":897,"fn":898,"description":899,"org":1008,"tags":1009,"stars":27,"repoUrl":28,"updatedAt":911},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1010,1011,1012],{"name":903,"slug":904,"type":16},{"name":906,"slug":907,"type":16},{"name":909,"slug":910,"type":16},{"slug":913,"name":913,"fn":914,"description":915,"org":1014,"tags":1015,"stars":27,"repoUrl":28,"updatedAt":925},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1016,1017,1018,1019],{"name":919,"slug":913,"type":16},{"name":862,"slug":863,"type":16},{"name":922,"slug":923,"type":16},{"name":909,"slug":910,"type":16},{"slug":927,"name":927,"fn":928,"description":929,"org":1021,"tags":1022,"stars":27,"repoUrl":28,"updatedAt":935},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1023],{"name":933,"slug":934,"type":16},{"slug":937,"name":937,"fn":938,"description":939,"org":1025,"tags":1026,"stars":27,"repoUrl":28,"updatedAt":946},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1027,1028],{"name":943,"slug":944,"type":16},{"name":9,"slug":8,"type":16},{"slug":1030,"name":1030,"fn":1031,"description":1032,"org":1033,"tags":1034,"stars":27,"repoUrl":28,"updatedAt":1038},"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},[1035,1036,1037],{"name":862,"slug":863,"type":16},{"name":943,"slug":944,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":1040,"name":1040,"fn":1041,"description":1042,"org":1043,"tags":1044,"stars":27,"repoUrl":28,"updatedAt":1056},"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},[1045,1048,1049,1052,1055],{"name":1046,"slug":1047,"type":16},"Access Control","access-control",{"name":933,"slug":934,"type":16},{"name":1050,"slug":1051,"type":16},"Django","django",{"name":1053,"slug":1054,"type":16},"Python","python",{"name":909,"slug":910,"type":16},"2026-05-15T06:16:43.098698",{"slug":1058,"name":1058,"fn":1059,"description":1060,"org":1061,"tags":1062,"stars":27,"repoUrl":28,"updatedAt":1069},"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},[1063,1064,1067,1068],{"name":919,"slug":913,"type":16},{"name":1065,"slug":1066,"type":16},"Database","database",{"name":1050,"slug":1051,"type":16},{"name":922,"slug":923,"type":16},"2026-05-15T06:16:24.832813",88]