[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-skill-writer":3,"mdc--im8i5l-key":35,"related-org-sentry-skill-writer":1416,"related-repo-sentry-skill-writer":1592},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":30,"sourceUrl":33,"mdContent":34},"skill-writer","create and improve agent skills","Create, synthesize, and iteratively improve agent skills following the Agent Skills specification. Use when asked to \"create a skill\", \"write a skill\", \"synthesize sources into a skill\", \"improve a skill from positive\u002Fnegative examples\", \"update a skill\", or \"maintain skill docs and registration\". Handles source capture, precision passes, authoring, registration, and validation.",{"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],{"name":14,"slug":15,"type":16},"Documentation","documentation","tag",{"name":18,"slug":19,"type":16},"Plugin Development","plugin-development",{"name":21,"slug":22,"type":16},"Agents","agents",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:21.174561",null,45,[29],"tag-production",{"repoUrl":24,"stars":23,"forks":27,"topics":31,"description":32},[29],"Agent Skills used by the Sentry team for development.","https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fskill-writer","---\nname: skill-writer\ndescription: Create, synthesize, and iteratively improve agent skills following the Agent Skills specification. Use when asked to \"create a skill\", \"write a skill\", \"synthesize sources into a skill\", \"improve a skill from positive\u002Fnegative examples\", \"update a skill\", or \"maintain skill docs and registration\". Handles source capture, precision passes, authoring, registration, and validation.\n---\n\n# Skill Writer\n\nUse this as the single canonical workflow for skill creation and improvement.\nPrimary success condition: maximize high-value input coverage before authoring while minimizing wasted runtime tokens.\n\nFollow the workflow steps in order. Load only the reference files required for the step you are on.\n`SKILL.md` is the primary router: every bundled reference file should be flat under `references\u002F` and listed here with a direct \"open when...\" reason.\n\n## Core Workflow References\n\n| Open when you need to... | Read |\n|--------------------------|------|\n| choose the minimum workflow path for create, update, iterate, or research-first work | `references\u002Fmode-selection.md` |\n| choose the simplest adequate execution shape before deciding files | `references\u002Fexecution-shapes.md` |\n| apply writing constraints for depth, concision, and portability | `references\u002Fdesign-principles.md` |\n| decide what belongs in `SKILL.md`, `references\u002F`, `SPEC.md`, or supporting files | `references\u002Freference-architecture.md` |\n| create or update the maintenance contract for a skill | `references\u002Fspec-template.md` |\n| find missing high-signal sources, including history and regressions | `references\u002Fsource-discovery.md` |\n| adapt an upstream prompt, workflow, rubric, benchmark, or docs into a skill | `references\u002Fsource-adaptation.md` |\n| run the full synthesis pass with coverage checks and source capture | `references\u002Fsynthesis-path.md` |\n| author or update `SKILL.md`, `SPEC.md`, and supporting files | `references\u002Fauthoring-path.md` |\n| improve trigger language and false-positive\u002Ffalse-negative behavior | `references\u002Fdescription-optimization.md` |\n| iterate from positive, negative, or fix examples | `references\u002Fiteration-path.md` |\n| store persistent working and holdout examples for future revisions | `references\u002Fiteration-evidence.md` |\n| choose a response template, schema, or output contract | `references\u002Foutput-contracts.md` |\n| add or update evals for a skill's generated outputs or runtime behavior | `references\u002Fskill-evals.md` |\n| troubleshoot overloaded layouts, hidden refs, or other structure failures | `references\u002Fstructure-troubleshooting.md` |\n| register the skill and run final validation checks | `references\u002Fregistration-validation.md` |\n\n## Artifact Layout References\n\n| Open when you need to... | Read |\n|--------------------------|------|\n| keep the whole skill inline in one coherent `SKILL.md` | `references\u002Flayout-inline-skill.md` |\n| split optional deep knowledge into focused routed references | `references\u002Flayout-reference-backed-skill.md` |\n| add scripts for deterministic automation or validation | `references\u002Flayout-script-backed-workflow.md` |\n| define a skill that is usually invoked with explicit arguments | `references\u002Flayout-argument-driven-skill.md` |\n| ship reusable templates, schemas, or other static assets | `references\u002Flayout-asset-template-skill.md` |\n\n## Workflow Mechanic References\n\n| Open when you need to... | Read |\n|--------------------------|------|\n| break a task into fixed ordered steps | `references\u002Fworkflow-prompt-chaining.md` |\n| classify requests and route them to different downstream paths | `references\u002Fworkflow-routing.md` |\n| split independent work into parallel units or votes | `references\u002Fworkflow-parallel.md` |\n| discover work units dynamically and coordinate worker outputs | `references\u002Fworkflow-orchestrator-workers.md` |\n| run validate-fix-repeat checks during authoring or execution | `references\u002Fworkflow-validation-loops.md` |\n| validate a plan before executing a risky action | `references\u002Fworkflow-plan-validate-execute.md` |\n\n## Claude Code References\n\n| Open when you need to... | Read |\n|--------------------------|------|\n| use Claude-specific frontmatter or invocation controls | `references\u002Fclaude-frontmatter-invocation.md` |\n| use Claude argument fields or substitution variables | `references\u002Fclaude-argument-substitutions.md` |\n| build a skill that runs in isolated `context: fork` | `references\u002Fclaude-subagent-fork.md` |\n| build a skill that uses Claude hooks for deterministic enforcement | `references\u002Fclaude-hook-backed.md` |\n| use Claude shell preprocessing for dynamic context injection | `references\u002Fclaude-dynamic-context.md` |\n\n## Example Profiles\n\n| Open when you need to... | Read |\n|--------------------------|------|\n| see the expected depth for a documentation-heavy skill | `references\u002Fexample-documentation-skill.md` |\n| see the expected depth for a workflow-process skill | `references\u002Fexample-workflow-process-skill.md` |\n| see what a good routed skill looks like | `references\u002Fexample-router-skill.md` |\n| see what a good subagent-fork skill looks like | `references\u002Fexample-subagent-fork-skill.md` |\n| see what a good hook-backed skill looks like | `references\u002Fexample-hook-backed-skill.md` |\n\n## Step 1: Resolve target, path, and shape\n\n1. Resolve the intended operation (`create`, `update`, `synthesize`, `iterate`) and inspect workspace prior art before choosing where files belong.\n2. Choose the target skill root from observed conventions. If the canonical location is still unclear after inspection, ask one direct question before editing files.\n3. Read `references\u002Fmode-selection.md` to choose the minimum required workflow paths.\n4. Read `references\u002Fexecution-shapes.md` to choose the primary execution shape.\n5. Default to the simplest adequate shape. If selecting a more complex shape, record why simpler shapes were rejected.\n6. Load only the exact artifact-layout, workflow-mechanic, and provider-specific leaf files required by that shape.\n7. Before adding guidance, identify what existing rule, section, or file should be narrowed, replaced, or removed.\n8. Record portability implications before using provider-specific mechanics.\n\n## Step 2: Run synthesis when needed\n\nRead `references\u002Fsynthesis-path.md`.\n\n1. Use this path for new skills, material changes, and research-first planning.\n2. Collect and score relevant sources with provenance.\n3. Read `references\u002Fsource-discovery.md` when source material is thin, stale, or ambiguous.\n4. Read `references\u002Fsource-adaptation.md` when adapting an upstream prompt, workflow, rubric, benchmark, or docs.\n5. Produce source-backed decisions and coverage\u002Fgap status, including the class and execution-shape choice.\n6. Load example profiles only when they add concrete depth for the selected class or shape.\n7. If the skill uses provider-specific mechanics, include current official provider docs and capture usage constraints.\n8. Do not move to authoring until required coverage is understood or gaps are explicit.\n\n## Step 3: Run iteration first when improving from outcomes\u002Fexamples\n\nRead `references\u002Fiteration-path.md` first when selected path includes `iteration` (for example operation `iterate`).\n\n1. Capture and anonymize examples with provenance.\n2. Read `references\u002Fiteration-evidence.md` when examples should persist beyond the current turn.\n3. Review skill behavior against working and holdout slices.\n4. Propose improvements from positive\u002Fnegative\u002Ffix evidence.\n5. Carry concrete behavior deltas into authoring.\n\nSkip this step when selected path does not include `iteration`.\n\n## Step 4: Author or update skill artifacts\n\nRead `references\u002Fauthoring-path.md`.\n\n1. Write or update `SKILL.md` in imperative voice with trigger-rich description.\n2. Keep `SKILL.md` as the runtime router, not an encyclopedia.\n3. Run the pre-edit precision check in `references\u002Fauthoring-path.md` before creating new sections or files.\n4. Read `references\u002Freference-architecture.md` before adding bulk instructions or new reference files.\n5. Create or update `SPEC.md` using `references\u002Fspec-template.md` when creating a new skill or materially changing its contract.\n6. Create focused reference files, scripts, and assets only when each one has a clear \"open when...\" reason and cannot be handled by tightening an existing file.\n7. If you add a bundled reference file, add a direct routing entry for it in this `SKILL.md`.\n8. Prefer checklists, tables, templates, and input\u002Foutput examples over explanatory prose.\n9. Follow only the specific artifact-layout, workflow-mechanic, Claude-specific, and output-contract references selected for this skill.\n10. For advanced execution shapes, add the required routing, delegation, or safety contracts before considering the skill complete.\n11. For authoring\u002Fgenerator skills, include transformed examples in references:\n   - happy-path\n   - secure\u002Frobust variant\n   - anti-pattern + corrected version\n12. Read `references\u002Fskill-evals.md` when the request asks for evals, regression cases, benchmark cases, or model-graded quality checks for the skill being authored.\n13. After any skill artifact changes, run the post-change precision pass in `references\u002Fauthoring-path.md` before description optimization or validation.\n\n## Step 5: Optimize description quality\n\nRead `references\u002Fdescription-optimization.md`.\n\n1. Validate should-trigger and should-not-trigger query sets.\n2. Reduce false positives and false negatives with targeted description edits.\n3. Keep trigger language generic across providers unless the skill is intentionally provider-specific.\n\n## Step 6: Register and validate\n\nRead `references\u002Fregistration-validation.md`.\n\n1. Apply repository registration steps for the active layout you verified in the workspace.\n2. Run quick validation for structural checks.\n3. Review validator warnings, precision-pass results, and coverage gaps with judgment before completion.\n\n## Output format\n\nReturn:\n\n1. `Summary`\n2. `Changes Made`\n3. `Validation Results`\n4. `Open Gaps`\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,48,54,76,83,417,423,533,539,661,667,778,784,889,895,982,988,999,1054,1060,1086,1120,1131,1137,1147,1252,1271,1298,1304,1314,1332,1338,1348,1366,1372,1377],{"type":41,"tag":42,"props":43,"children":44},"element","h1",{"id":4},[45],{"type":46,"value":47},"text","Skill Writer",{"type":41,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Use this as the single canonical workflow for skill creation and improvement.\nPrimary success condition: maximize high-value input coverage before authoring while minimizing wasted runtime tokens.",{"type":41,"tag":49,"props":55,"children":56},{},[57,59,66,68,74],{"type":46,"value":58},"Follow the workflow steps in order. Load only the reference files required for the step you are on.\n",{"type":41,"tag":60,"props":61,"children":63},"code",{"className":62},[],[64],{"type":46,"value":65},"SKILL.md",{"type":46,"value":67}," is the primary router: every bundled reference file should be flat under ",{"type":41,"tag":60,"props":69,"children":71},{"className":70},[],[72],{"type":46,"value":73},"references\u002F",{"type":46,"value":75}," and listed here with a direct \"open when...\" reason.",{"type":41,"tag":77,"props":78,"children":80},"h2",{"id":79},"core-workflow-references",[81],{"type":46,"value":82},"Core Workflow References",{"type":41,"tag":84,"props":85,"children":86},"table",{},[87,106],{"type":41,"tag":88,"props":89,"children":90},"thead",{},[91],{"type":41,"tag":92,"props":93,"children":94},"tr",{},[95,101],{"type":41,"tag":96,"props":97,"children":98},"th",{},[99],{"type":46,"value":100},"Open when you need to...",{"type":41,"tag":96,"props":102,"children":103},{},[104],{"type":46,"value":105},"Read",{"type":41,"tag":107,"props":108,"children":109},"tbody",{},[110,128,145,162,200,217,234,251,268,298,315,332,349,366,383,400],{"type":41,"tag":92,"props":111,"children":112},{},[113,119],{"type":41,"tag":114,"props":115,"children":116},"td",{},[117],{"type":46,"value":118},"choose the minimum workflow path for create, update, iterate, or research-first work",{"type":41,"tag":114,"props":120,"children":121},{},[122],{"type":41,"tag":60,"props":123,"children":125},{"className":124},[],[126],{"type":46,"value":127},"references\u002Fmode-selection.md",{"type":41,"tag":92,"props":129,"children":130},{},[131,136],{"type":41,"tag":114,"props":132,"children":133},{},[134],{"type":46,"value":135},"choose the simplest adequate execution shape before deciding files",{"type":41,"tag":114,"props":137,"children":138},{},[139],{"type":41,"tag":60,"props":140,"children":142},{"className":141},[],[143],{"type":46,"value":144},"references\u002Fexecution-shapes.md",{"type":41,"tag":92,"props":146,"children":147},{},[148,153],{"type":41,"tag":114,"props":149,"children":150},{},[151],{"type":46,"value":152},"apply writing constraints for depth, concision, and portability",{"type":41,"tag":114,"props":154,"children":155},{},[156],{"type":41,"tag":60,"props":157,"children":159},{"className":158},[],[160],{"type":46,"value":161},"references\u002Fdesign-principles.md",{"type":41,"tag":92,"props":163,"children":164},{},[165,191],{"type":41,"tag":114,"props":166,"children":167},{},[168,170,175,177,182,183,189],{"type":46,"value":169},"decide what belongs in ",{"type":41,"tag":60,"props":171,"children":173},{"className":172},[],[174],{"type":46,"value":65},{"type":46,"value":176},", ",{"type":41,"tag":60,"props":178,"children":180},{"className":179},[],[181],{"type":46,"value":73},{"type":46,"value":176},{"type":41,"tag":60,"props":184,"children":186},{"className":185},[],[187],{"type":46,"value":188},"SPEC.md",{"type":46,"value":190},", or supporting files",{"type":41,"tag":114,"props":192,"children":193},{},[194],{"type":41,"tag":60,"props":195,"children":197},{"className":196},[],[198],{"type":46,"value":199},"references\u002Freference-architecture.md",{"type":41,"tag":92,"props":201,"children":202},{},[203,208],{"type":41,"tag":114,"props":204,"children":205},{},[206],{"type":46,"value":207},"create or update the maintenance contract for a skill",{"type":41,"tag":114,"props":209,"children":210},{},[211],{"type":41,"tag":60,"props":212,"children":214},{"className":213},[],[215],{"type":46,"value":216},"references\u002Fspec-template.md",{"type":41,"tag":92,"props":218,"children":219},{},[220,225],{"type":41,"tag":114,"props":221,"children":222},{},[223],{"type":46,"value":224},"find missing high-signal sources, including history and regressions",{"type":41,"tag":114,"props":226,"children":227},{},[228],{"type":41,"tag":60,"props":229,"children":231},{"className":230},[],[232],{"type":46,"value":233},"references\u002Fsource-discovery.md",{"type":41,"tag":92,"props":235,"children":236},{},[237,242],{"type":41,"tag":114,"props":238,"children":239},{},[240],{"type":46,"value":241},"adapt an upstream prompt, workflow, rubric, benchmark, or docs into a skill",{"type":41,"tag":114,"props":243,"children":244},{},[245],{"type":41,"tag":60,"props":246,"children":248},{"className":247},[],[249],{"type":46,"value":250},"references\u002Fsource-adaptation.md",{"type":41,"tag":92,"props":252,"children":253},{},[254,259],{"type":41,"tag":114,"props":255,"children":256},{},[257],{"type":46,"value":258},"run the full synthesis pass with coverage checks and source capture",{"type":41,"tag":114,"props":260,"children":261},{},[262],{"type":41,"tag":60,"props":263,"children":265},{"className":264},[],[266],{"type":46,"value":267},"references\u002Fsynthesis-path.md",{"type":41,"tag":92,"props":269,"children":270},{},[271,289],{"type":41,"tag":114,"props":272,"children":273},{},[274,276,281,282,287],{"type":46,"value":275},"author or update ",{"type":41,"tag":60,"props":277,"children":279},{"className":278},[],[280],{"type":46,"value":65},{"type":46,"value":176},{"type":41,"tag":60,"props":283,"children":285},{"className":284},[],[286],{"type":46,"value":188},{"type":46,"value":288},", and supporting files",{"type":41,"tag":114,"props":290,"children":291},{},[292],{"type":41,"tag":60,"props":293,"children":295},{"className":294},[],[296],{"type":46,"value":297},"references\u002Fauthoring-path.md",{"type":41,"tag":92,"props":299,"children":300},{},[301,306],{"type":41,"tag":114,"props":302,"children":303},{},[304],{"type":46,"value":305},"improve trigger language and false-positive\u002Ffalse-negative behavior",{"type":41,"tag":114,"props":307,"children":308},{},[309],{"type":41,"tag":60,"props":310,"children":312},{"className":311},[],[313],{"type":46,"value":314},"references\u002Fdescription-optimization.md",{"type":41,"tag":92,"props":316,"children":317},{},[318,323],{"type":41,"tag":114,"props":319,"children":320},{},[321],{"type":46,"value":322},"iterate from positive, negative, or fix examples",{"type":41,"tag":114,"props":324,"children":325},{},[326],{"type":41,"tag":60,"props":327,"children":329},{"className":328},[],[330],{"type":46,"value":331},"references\u002Fiteration-path.md",{"type":41,"tag":92,"props":333,"children":334},{},[335,340],{"type":41,"tag":114,"props":336,"children":337},{},[338],{"type":46,"value":339},"store persistent working and holdout examples for future revisions",{"type":41,"tag":114,"props":341,"children":342},{},[343],{"type":41,"tag":60,"props":344,"children":346},{"className":345},[],[347],{"type":46,"value":348},"references\u002Fiteration-evidence.md",{"type":41,"tag":92,"props":350,"children":351},{},[352,357],{"type":41,"tag":114,"props":353,"children":354},{},[355],{"type":46,"value":356},"choose a response template, schema, or output contract",{"type":41,"tag":114,"props":358,"children":359},{},[360],{"type":41,"tag":60,"props":361,"children":363},{"className":362},[],[364],{"type":46,"value":365},"references\u002Foutput-contracts.md",{"type":41,"tag":92,"props":367,"children":368},{},[369,374],{"type":41,"tag":114,"props":370,"children":371},{},[372],{"type":46,"value":373},"add or update evals for a skill's generated outputs or runtime behavior",{"type":41,"tag":114,"props":375,"children":376},{},[377],{"type":41,"tag":60,"props":378,"children":380},{"className":379},[],[381],{"type":46,"value":382},"references\u002Fskill-evals.md",{"type":41,"tag":92,"props":384,"children":385},{},[386,391],{"type":41,"tag":114,"props":387,"children":388},{},[389],{"type":46,"value":390},"troubleshoot overloaded layouts, hidden refs, or other structure failures",{"type":41,"tag":114,"props":392,"children":393},{},[394],{"type":41,"tag":60,"props":395,"children":397},{"className":396},[],[398],{"type":46,"value":399},"references\u002Fstructure-troubleshooting.md",{"type":41,"tag":92,"props":401,"children":402},{},[403,408],{"type":41,"tag":114,"props":404,"children":405},{},[406],{"type":46,"value":407},"register the skill and run final validation checks",{"type":41,"tag":114,"props":409,"children":410},{},[411],{"type":41,"tag":60,"props":412,"children":414},{"className":413},[],[415],{"type":46,"value":416},"references\u002Fregistration-validation.md",{"type":41,"tag":77,"props":418,"children":420},{"id":419},"artifact-layout-references",[421],{"type":46,"value":422},"Artifact Layout References",{"type":41,"tag":84,"props":424,"children":425},{},[426,440],{"type":41,"tag":88,"props":427,"children":428},{},[429],{"type":41,"tag":92,"props":430,"children":431},{},[432,436],{"type":41,"tag":96,"props":433,"children":434},{},[435],{"type":46,"value":100},{"type":41,"tag":96,"props":437,"children":438},{},[439],{"type":46,"value":105},{"type":41,"tag":107,"props":441,"children":442},{},[443,465,482,499,516],{"type":41,"tag":92,"props":444,"children":445},{},[446,456],{"type":41,"tag":114,"props":447,"children":448},{},[449,451],{"type":46,"value":450},"keep the whole skill inline in one coherent ",{"type":41,"tag":60,"props":452,"children":454},{"className":453},[],[455],{"type":46,"value":65},{"type":41,"tag":114,"props":457,"children":458},{},[459],{"type":41,"tag":60,"props":460,"children":462},{"className":461},[],[463],{"type":46,"value":464},"references\u002Flayout-inline-skill.md",{"type":41,"tag":92,"props":466,"children":467},{},[468,473],{"type":41,"tag":114,"props":469,"children":470},{},[471],{"type":46,"value":472},"split optional deep knowledge into focused routed references",{"type":41,"tag":114,"props":474,"children":475},{},[476],{"type":41,"tag":60,"props":477,"children":479},{"className":478},[],[480],{"type":46,"value":481},"references\u002Flayout-reference-backed-skill.md",{"type":41,"tag":92,"props":483,"children":484},{},[485,490],{"type":41,"tag":114,"props":486,"children":487},{},[488],{"type":46,"value":489},"add scripts for deterministic automation or validation",{"type":41,"tag":114,"props":491,"children":492},{},[493],{"type":41,"tag":60,"props":494,"children":496},{"className":495},[],[497],{"type":46,"value":498},"references\u002Flayout-script-backed-workflow.md",{"type":41,"tag":92,"props":500,"children":501},{},[502,507],{"type":41,"tag":114,"props":503,"children":504},{},[505],{"type":46,"value":506},"define a skill that is usually invoked with explicit arguments",{"type":41,"tag":114,"props":508,"children":509},{},[510],{"type":41,"tag":60,"props":511,"children":513},{"className":512},[],[514],{"type":46,"value":515},"references\u002Flayout-argument-driven-skill.md",{"type":41,"tag":92,"props":517,"children":518},{},[519,524],{"type":41,"tag":114,"props":520,"children":521},{},[522],{"type":46,"value":523},"ship reusable templates, schemas, or other static assets",{"type":41,"tag":114,"props":525,"children":526},{},[527],{"type":41,"tag":60,"props":528,"children":530},{"className":529},[],[531],{"type":46,"value":532},"references\u002Flayout-asset-template-skill.md",{"type":41,"tag":77,"props":534,"children":536},{"id":535},"workflow-mechanic-references",[537],{"type":46,"value":538},"Workflow Mechanic References",{"type":41,"tag":84,"props":540,"children":541},{},[542,556],{"type":41,"tag":88,"props":543,"children":544},{},[545],{"type":41,"tag":92,"props":546,"children":547},{},[548,552],{"type":41,"tag":96,"props":549,"children":550},{},[551],{"type":46,"value":100},{"type":41,"tag":96,"props":553,"children":554},{},[555],{"type":46,"value":105},{"type":41,"tag":107,"props":557,"children":558},{},[559,576,593,610,627,644],{"type":41,"tag":92,"props":560,"children":561},{},[562,567],{"type":41,"tag":114,"props":563,"children":564},{},[565],{"type":46,"value":566},"break a task into fixed ordered steps",{"type":41,"tag":114,"props":568,"children":569},{},[570],{"type":41,"tag":60,"props":571,"children":573},{"className":572},[],[574],{"type":46,"value":575},"references\u002Fworkflow-prompt-chaining.md",{"type":41,"tag":92,"props":577,"children":578},{},[579,584],{"type":41,"tag":114,"props":580,"children":581},{},[582],{"type":46,"value":583},"classify requests and route them to different downstream paths",{"type":41,"tag":114,"props":585,"children":586},{},[587],{"type":41,"tag":60,"props":588,"children":590},{"className":589},[],[591],{"type":46,"value":592},"references\u002Fworkflow-routing.md",{"type":41,"tag":92,"props":594,"children":595},{},[596,601],{"type":41,"tag":114,"props":597,"children":598},{},[599],{"type":46,"value":600},"split independent work into parallel units or votes",{"type":41,"tag":114,"props":602,"children":603},{},[604],{"type":41,"tag":60,"props":605,"children":607},{"className":606},[],[608],{"type":46,"value":609},"references\u002Fworkflow-parallel.md",{"type":41,"tag":92,"props":611,"children":612},{},[613,618],{"type":41,"tag":114,"props":614,"children":615},{},[616],{"type":46,"value":617},"discover work units dynamically and coordinate worker outputs",{"type":41,"tag":114,"props":619,"children":620},{},[621],{"type":41,"tag":60,"props":622,"children":624},{"className":623},[],[625],{"type":46,"value":626},"references\u002Fworkflow-orchestrator-workers.md",{"type":41,"tag":92,"props":628,"children":629},{},[630,635],{"type":41,"tag":114,"props":631,"children":632},{},[633],{"type":46,"value":634},"run validate-fix-repeat checks during authoring or execution",{"type":41,"tag":114,"props":636,"children":637},{},[638],{"type":41,"tag":60,"props":639,"children":641},{"className":640},[],[642],{"type":46,"value":643},"references\u002Fworkflow-validation-loops.md",{"type":41,"tag":92,"props":645,"children":646},{},[647,652],{"type":41,"tag":114,"props":648,"children":649},{},[650],{"type":46,"value":651},"validate a plan before executing a risky action",{"type":41,"tag":114,"props":653,"children":654},{},[655],{"type":41,"tag":60,"props":656,"children":658},{"className":657},[],[659],{"type":46,"value":660},"references\u002Fworkflow-plan-validate-execute.md",{"type":41,"tag":77,"props":662,"children":664},{"id":663},"claude-code-references",[665],{"type":46,"value":666},"Claude Code References",{"type":41,"tag":84,"props":668,"children":669},{},[670,684],{"type":41,"tag":88,"props":671,"children":672},{},[673],{"type":41,"tag":92,"props":674,"children":675},{},[676,680],{"type":41,"tag":96,"props":677,"children":678},{},[679],{"type":46,"value":100},{"type":41,"tag":96,"props":681,"children":682},{},[683],{"type":46,"value":105},{"type":41,"tag":107,"props":685,"children":686},{},[687,704,721,744,761],{"type":41,"tag":92,"props":688,"children":689},{},[690,695],{"type":41,"tag":114,"props":691,"children":692},{},[693],{"type":46,"value":694},"use Claude-specific frontmatter or invocation controls",{"type":41,"tag":114,"props":696,"children":697},{},[698],{"type":41,"tag":60,"props":699,"children":701},{"className":700},[],[702],{"type":46,"value":703},"references\u002Fclaude-frontmatter-invocation.md",{"type":41,"tag":92,"props":705,"children":706},{},[707,712],{"type":41,"tag":114,"props":708,"children":709},{},[710],{"type":46,"value":711},"use Claude argument fields or substitution variables",{"type":41,"tag":114,"props":713,"children":714},{},[715],{"type":41,"tag":60,"props":716,"children":718},{"className":717},[],[719],{"type":46,"value":720},"references\u002Fclaude-argument-substitutions.md",{"type":41,"tag":92,"props":722,"children":723},{},[724,735],{"type":41,"tag":114,"props":725,"children":726},{},[727,729],{"type":46,"value":728},"build a skill that runs in isolated ",{"type":41,"tag":60,"props":730,"children":732},{"className":731},[],[733],{"type":46,"value":734},"context: fork",{"type":41,"tag":114,"props":736,"children":737},{},[738],{"type":41,"tag":60,"props":739,"children":741},{"className":740},[],[742],{"type":46,"value":743},"references\u002Fclaude-subagent-fork.md",{"type":41,"tag":92,"props":745,"children":746},{},[747,752],{"type":41,"tag":114,"props":748,"children":749},{},[750],{"type":46,"value":751},"build a skill that uses Claude hooks for deterministic enforcement",{"type":41,"tag":114,"props":753,"children":754},{},[755],{"type":41,"tag":60,"props":756,"children":758},{"className":757},[],[759],{"type":46,"value":760},"references\u002Fclaude-hook-backed.md",{"type":41,"tag":92,"props":762,"children":763},{},[764,769],{"type":41,"tag":114,"props":765,"children":766},{},[767],{"type":46,"value":768},"use Claude shell preprocessing for dynamic context injection",{"type":41,"tag":114,"props":770,"children":771},{},[772],{"type":41,"tag":60,"props":773,"children":775},{"className":774},[],[776],{"type":46,"value":777},"references\u002Fclaude-dynamic-context.md",{"type":41,"tag":77,"props":779,"children":781},{"id":780},"example-profiles",[782],{"type":46,"value":783},"Example Profiles",{"type":41,"tag":84,"props":785,"children":786},{},[787,801],{"type":41,"tag":88,"props":788,"children":789},{},[790],{"type":41,"tag":92,"props":791,"children":792},{},[793,797],{"type":41,"tag":96,"props":794,"children":795},{},[796],{"type":46,"value":100},{"type":41,"tag":96,"props":798,"children":799},{},[800],{"type":46,"value":105},{"type":41,"tag":107,"props":802,"children":803},{},[804,821,838,855,872],{"type":41,"tag":92,"props":805,"children":806},{},[807,812],{"type":41,"tag":114,"props":808,"children":809},{},[810],{"type":46,"value":811},"see the expected depth for a documentation-heavy skill",{"type":41,"tag":114,"props":813,"children":814},{},[815],{"type":41,"tag":60,"props":816,"children":818},{"className":817},[],[819],{"type":46,"value":820},"references\u002Fexample-documentation-skill.md",{"type":41,"tag":92,"props":822,"children":823},{},[824,829],{"type":41,"tag":114,"props":825,"children":826},{},[827],{"type":46,"value":828},"see the expected depth for a workflow-process skill",{"type":41,"tag":114,"props":830,"children":831},{},[832],{"type":41,"tag":60,"props":833,"children":835},{"className":834},[],[836],{"type":46,"value":837},"references\u002Fexample-workflow-process-skill.md",{"type":41,"tag":92,"props":839,"children":840},{},[841,846],{"type":41,"tag":114,"props":842,"children":843},{},[844],{"type":46,"value":845},"see what a good routed skill looks like",{"type":41,"tag":114,"props":847,"children":848},{},[849],{"type":41,"tag":60,"props":850,"children":852},{"className":851},[],[853],{"type":46,"value":854},"references\u002Fexample-router-skill.md",{"type":41,"tag":92,"props":856,"children":857},{},[858,863],{"type":41,"tag":114,"props":859,"children":860},{},[861],{"type":46,"value":862},"see what a good subagent-fork skill looks like",{"type":41,"tag":114,"props":864,"children":865},{},[866],{"type":41,"tag":60,"props":867,"children":869},{"className":868},[],[870],{"type":46,"value":871},"references\u002Fexample-subagent-fork-skill.md",{"type":41,"tag":92,"props":873,"children":874},{},[875,880],{"type":41,"tag":114,"props":876,"children":877},{},[878],{"type":46,"value":879},"see what a good hook-backed skill looks like",{"type":41,"tag":114,"props":881,"children":882},{},[883],{"type":41,"tag":60,"props":884,"children":886},{"className":885},[],[887],{"type":46,"value":888},"references\u002Fexample-hook-backed-skill.md",{"type":41,"tag":77,"props":890,"children":892},{"id":891},"step-1-resolve-target-path-and-shape",[893],{"type":46,"value":894},"Step 1: Resolve target, path, and shape",{"type":41,"tag":896,"props":897,"children":898},"ol",{},[899,934,939,951,962,967,972,977],{"type":41,"tag":900,"props":901,"children":902},"li",{},[903,905,911,912,918,919,925,926,932],{"type":46,"value":904},"Resolve the intended operation (",{"type":41,"tag":60,"props":906,"children":908},{"className":907},[],[909],{"type":46,"value":910},"create",{"type":46,"value":176},{"type":41,"tag":60,"props":913,"children":915},{"className":914},[],[916],{"type":46,"value":917},"update",{"type":46,"value":176},{"type":41,"tag":60,"props":920,"children":922},{"className":921},[],[923],{"type":46,"value":924},"synthesize",{"type":46,"value":176},{"type":41,"tag":60,"props":927,"children":929},{"className":928},[],[930],{"type":46,"value":931},"iterate",{"type":46,"value":933},") and inspect workspace prior art before choosing where files belong.",{"type":41,"tag":900,"props":935,"children":936},{},[937],{"type":46,"value":938},"Choose the target skill root from observed conventions. If the canonical location is still unclear after inspection, ask one direct question before editing files.",{"type":41,"tag":900,"props":940,"children":941},{},[942,944,949],{"type":46,"value":943},"Read ",{"type":41,"tag":60,"props":945,"children":947},{"className":946},[],[948],{"type":46,"value":127},{"type":46,"value":950}," to choose the minimum required workflow paths.",{"type":41,"tag":900,"props":952,"children":953},{},[954,955,960],{"type":46,"value":943},{"type":41,"tag":60,"props":956,"children":958},{"className":957},[],[959],{"type":46,"value":144},{"type":46,"value":961}," to choose the primary execution shape.",{"type":41,"tag":900,"props":963,"children":964},{},[965],{"type":46,"value":966},"Default to the simplest adequate shape. If selecting a more complex shape, record why simpler shapes were rejected.",{"type":41,"tag":900,"props":968,"children":969},{},[970],{"type":46,"value":971},"Load only the exact artifact-layout, workflow-mechanic, and provider-specific leaf files required by that shape.",{"type":41,"tag":900,"props":973,"children":974},{},[975],{"type":46,"value":976},"Before adding guidance, identify what existing rule, section, or file should be narrowed, replaced, or removed.",{"type":41,"tag":900,"props":978,"children":979},{},[980],{"type":46,"value":981},"Record portability implications before using provider-specific mechanics.",{"type":41,"tag":77,"props":983,"children":985},{"id":984},"step-2-run-synthesis-when-needed",[986],{"type":46,"value":987},"Step 2: Run synthesis when needed",{"type":41,"tag":49,"props":989,"children":990},{},[991,992,997],{"type":46,"value":943},{"type":41,"tag":60,"props":993,"children":995},{"className":994},[],[996],{"type":46,"value":267},{"type":46,"value":998},".",{"type":41,"tag":896,"props":1000,"children":1001},{},[1002,1007,1012,1023,1034,1039,1044,1049],{"type":41,"tag":900,"props":1003,"children":1004},{},[1005],{"type":46,"value":1006},"Use this path for new skills, material changes, and research-first planning.",{"type":41,"tag":900,"props":1008,"children":1009},{},[1010],{"type":46,"value":1011},"Collect and score relevant sources with provenance.",{"type":41,"tag":900,"props":1013,"children":1014},{},[1015,1016,1021],{"type":46,"value":943},{"type":41,"tag":60,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":46,"value":233},{"type":46,"value":1022}," when source material is thin, stale, or ambiguous.",{"type":41,"tag":900,"props":1024,"children":1025},{},[1026,1027,1032],{"type":46,"value":943},{"type":41,"tag":60,"props":1028,"children":1030},{"className":1029},[],[1031],{"type":46,"value":250},{"type":46,"value":1033}," when adapting an upstream prompt, workflow, rubric, benchmark, or docs.",{"type":41,"tag":900,"props":1035,"children":1036},{},[1037],{"type":46,"value":1038},"Produce source-backed decisions and coverage\u002Fgap status, including the class and execution-shape choice.",{"type":41,"tag":900,"props":1040,"children":1041},{},[1042],{"type":46,"value":1043},"Load example profiles only when they add concrete depth for the selected class or shape.",{"type":41,"tag":900,"props":1045,"children":1046},{},[1047],{"type":46,"value":1048},"If the skill uses provider-specific mechanics, include current official provider docs and capture usage constraints.",{"type":41,"tag":900,"props":1050,"children":1051},{},[1052],{"type":46,"value":1053},"Do not move to authoring until required coverage is understood or gaps are explicit.",{"type":41,"tag":77,"props":1055,"children":1057},{"id":1056},"step-3-run-iteration-first-when-improving-from-outcomesexamples",[1058],{"type":46,"value":1059},"Step 3: Run iteration first when improving from outcomes\u002Fexamples",{"type":41,"tag":49,"props":1061,"children":1062},{},[1063,1064,1069,1071,1077,1079,1084],{"type":46,"value":943},{"type":41,"tag":60,"props":1065,"children":1067},{"className":1066},[],[1068],{"type":46,"value":331},{"type":46,"value":1070}," first when selected path includes ",{"type":41,"tag":60,"props":1072,"children":1074},{"className":1073},[],[1075],{"type":46,"value":1076},"iteration",{"type":46,"value":1078}," (for example operation ",{"type":41,"tag":60,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":46,"value":931},{"type":46,"value":1085},").",{"type":41,"tag":896,"props":1087,"children":1088},{},[1089,1094,1105,1110,1115],{"type":41,"tag":900,"props":1090,"children":1091},{},[1092],{"type":46,"value":1093},"Capture and anonymize examples with provenance.",{"type":41,"tag":900,"props":1095,"children":1096},{},[1097,1098,1103],{"type":46,"value":943},{"type":41,"tag":60,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":46,"value":348},{"type":46,"value":1104}," when examples should persist beyond the current turn.",{"type":41,"tag":900,"props":1106,"children":1107},{},[1108],{"type":46,"value":1109},"Review skill behavior against working and holdout slices.",{"type":41,"tag":900,"props":1111,"children":1112},{},[1113],{"type":46,"value":1114},"Propose improvements from positive\u002Fnegative\u002Ffix evidence.",{"type":41,"tag":900,"props":1116,"children":1117},{},[1118],{"type":46,"value":1119},"Carry concrete behavior deltas into authoring.",{"type":41,"tag":49,"props":1121,"children":1122},{},[1123,1125,1130],{"type":46,"value":1124},"Skip this step when selected path does not include ",{"type":41,"tag":60,"props":1126,"children":1128},{"className":1127},[],[1129],{"type":46,"value":1076},{"type":46,"value":998},{"type":41,"tag":77,"props":1132,"children":1134},{"id":1133},"step-4-author-or-update-skill-artifacts",[1135],{"type":46,"value":1136},"Step 4: Author or update skill artifacts",{"type":41,"tag":49,"props":1138,"children":1139},{},[1140,1141,1146],{"type":46,"value":943},{"type":41,"tag":60,"props":1142,"children":1144},{"className":1143},[],[1145],{"type":46,"value":297},{"type":46,"value":998},{"type":41,"tag":896,"props":1148,"children":1149},{},[1150,1162,1174,1186,1197,1216,1221,1232,1237,1242,1247],{"type":41,"tag":900,"props":1151,"children":1152},{},[1153,1155,1160],{"type":46,"value":1154},"Write or update ",{"type":41,"tag":60,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":46,"value":65},{"type":46,"value":1161}," in imperative voice with trigger-rich description.",{"type":41,"tag":900,"props":1163,"children":1164},{},[1165,1167,1172],{"type":46,"value":1166},"Keep ",{"type":41,"tag":60,"props":1168,"children":1170},{"className":1169},[],[1171],{"type":46,"value":65},{"type":46,"value":1173}," as the runtime router, not an encyclopedia.",{"type":41,"tag":900,"props":1175,"children":1176},{},[1177,1179,1184],{"type":46,"value":1178},"Run the pre-edit precision check in ",{"type":41,"tag":60,"props":1180,"children":1182},{"className":1181},[],[1183],{"type":46,"value":297},{"type":46,"value":1185}," before creating new sections or files.",{"type":41,"tag":900,"props":1187,"children":1188},{},[1189,1190,1195],{"type":46,"value":943},{"type":41,"tag":60,"props":1191,"children":1193},{"className":1192},[],[1194],{"type":46,"value":199},{"type":46,"value":1196}," before adding bulk instructions or new reference files.",{"type":41,"tag":900,"props":1198,"children":1199},{},[1200,1202,1207,1209,1214],{"type":46,"value":1201},"Create or update ",{"type":41,"tag":60,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":46,"value":188},{"type":46,"value":1208}," using ",{"type":41,"tag":60,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":46,"value":216},{"type":46,"value":1215}," when creating a new skill or materially changing its contract.",{"type":41,"tag":900,"props":1217,"children":1218},{},[1219],{"type":46,"value":1220},"Create focused reference files, scripts, and assets only when each one has a clear \"open when...\" reason and cannot be handled by tightening an existing file.",{"type":41,"tag":900,"props":1222,"children":1223},{},[1224,1226,1231],{"type":46,"value":1225},"If you add a bundled reference file, add a direct routing entry for it in this ",{"type":41,"tag":60,"props":1227,"children":1229},{"className":1228},[],[1230],{"type":46,"value":65},{"type":46,"value":998},{"type":41,"tag":900,"props":1233,"children":1234},{},[1235],{"type":46,"value":1236},"Prefer checklists, tables, templates, and input\u002Foutput examples over explanatory prose.",{"type":41,"tag":900,"props":1238,"children":1239},{},[1240],{"type":46,"value":1241},"Follow only the specific artifact-layout, workflow-mechanic, Claude-specific, and output-contract references selected for this skill.",{"type":41,"tag":900,"props":1243,"children":1244},{},[1245],{"type":46,"value":1246},"For advanced execution shapes, add the required routing, delegation, or safety contracts before considering the skill complete.",{"type":41,"tag":900,"props":1248,"children":1249},{},[1250],{"type":46,"value":1251},"For authoring\u002Fgenerator skills, include transformed examples in references:",{"type":41,"tag":1253,"props":1254,"children":1255},"ul",{},[1256,1261,1266],{"type":41,"tag":900,"props":1257,"children":1258},{},[1259],{"type":46,"value":1260},"happy-path",{"type":41,"tag":900,"props":1262,"children":1263},{},[1264],{"type":46,"value":1265},"secure\u002Frobust variant",{"type":41,"tag":900,"props":1267,"children":1268},{},[1269],{"type":46,"value":1270},"anti-pattern + corrected version",{"type":41,"tag":896,"props":1272,"children":1274},{"start":1273},12,[1275,1286],{"type":41,"tag":900,"props":1276,"children":1277},{},[1278,1279,1284],{"type":46,"value":943},{"type":41,"tag":60,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":46,"value":382},{"type":46,"value":1285}," when the request asks for evals, regression cases, benchmark cases, or model-graded quality checks for the skill being authored.",{"type":41,"tag":900,"props":1287,"children":1288},{},[1289,1291,1296],{"type":46,"value":1290},"After any skill artifact changes, run the post-change precision pass in ",{"type":41,"tag":60,"props":1292,"children":1294},{"className":1293},[],[1295],{"type":46,"value":297},{"type":46,"value":1297}," before description optimization or validation.",{"type":41,"tag":77,"props":1299,"children":1301},{"id":1300},"step-5-optimize-description-quality",[1302],{"type":46,"value":1303},"Step 5: Optimize description quality",{"type":41,"tag":49,"props":1305,"children":1306},{},[1307,1308,1313],{"type":46,"value":943},{"type":41,"tag":60,"props":1309,"children":1311},{"className":1310},[],[1312],{"type":46,"value":314},{"type":46,"value":998},{"type":41,"tag":896,"props":1315,"children":1316},{},[1317,1322,1327],{"type":41,"tag":900,"props":1318,"children":1319},{},[1320],{"type":46,"value":1321},"Validate should-trigger and should-not-trigger query sets.",{"type":41,"tag":900,"props":1323,"children":1324},{},[1325],{"type":46,"value":1326},"Reduce false positives and false negatives with targeted description edits.",{"type":41,"tag":900,"props":1328,"children":1329},{},[1330],{"type":46,"value":1331},"Keep trigger language generic across providers unless the skill is intentionally provider-specific.",{"type":41,"tag":77,"props":1333,"children":1335},{"id":1334},"step-6-register-and-validate",[1336],{"type":46,"value":1337},"Step 6: Register and validate",{"type":41,"tag":49,"props":1339,"children":1340},{},[1341,1342,1347],{"type":46,"value":943},{"type":41,"tag":60,"props":1343,"children":1345},{"className":1344},[],[1346],{"type":46,"value":416},{"type":46,"value":998},{"type":41,"tag":896,"props":1349,"children":1350},{},[1351,1356,1361],{"type":41,"tag":900,"props":1352,"children":1353},{},[1354],{"type":46,"value":1355},"Apply repository registration steps for the active layout you verified in the workspace.",{"type":41,"tag":900,"props":1357,"children":1358},{},[1359],{"type":46,"value":1360},"Run quick validation for structural checks.",{"type":41,"tag":900,"props":1362,"children":1363},{},[1364],{"type":46,"value":1365},"Review validator warnings, precision-pass results, and coverage gaps with judgment before completion.",{"type":41,"tag":77,"props":1367,"children":1369},{"id":1368},"output-format",[1370],{"type":46,"value":1371},"Output format",{"type":41,"tag":49,"props":1373,"children":1374},{},[1375],{"type":46,"value":1376},"Return:",{"type":41,"tag":896,"props":1378,"children":1379},{},[1380,1389,1398,1407],{"type":41,"tag":900,"props":1381,"children":1382},{},[1383],{"type":41,"tag":60,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":46,"value":1388},"Summary",{"type":41,"tag":900,"props":1390,"children":1391},{},[1392],{"type":41,"tag":60,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":46,"value":1397},"Changes Made",{"type":41,"tag":900,"props":1399,"children":1400},{},[1401],{"type":41,"tag":60,"props":1402,"children":1404},{"className":1403},[],[1405],{"type":46,"value":1406},"Validation Results",{"type":41,"tag":900,"props":1408,"children":1409},{},[1410],{"type":41,"tag":60,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":46,"value":1415},"Open Gaps",{"items":1417,"total":1591},[1418,1443,1457,1468,1482,1499,1515,1529,1539,1550,1560,1578],{"slug":1419,"name":1419,"fn":1420,"description":1421,"org":1422,"tags":1423,"stars":1440,"repoUrl":1441,"updatedAt":1442},"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},[1424,1427,1430,1433,1434,1437],{"name":1425,"slug":1426,"type":16},"Debugging","debugging",{"name":1428,"slug":1429,"type":16},"iOS","ios",{"name":1431,"slug":1432,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":1435,"slug":1436,"type":16},"Testing","testing",{"name":1438,"slug":1439,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":1444,"name":1444,"fn":1445,"description":1446,"org":1447,"tags":1448,"stars":1440,"repoUrl":1441,"updatedAt":1456},"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},[1449,1452,1453,1454,1455],{"name":1450,"slug":1451,"type":16},"CLI","cli",{"name":1428,"slug":1429,"type":16},{"name":1431,"slug":1432,"type":16},{"name":1435,"slug":1436,"type":16},{"name":1438,"slug":1439,"type":16},"2026-04-06T18:13:36.13414",{"slug":1458,"name":1458,"fn":1459,"description":1460,"org":1461,"tags":1462,"stars":23,"repoUrl":24,"updatedAt":1467},"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},[1463,1464],{"name":14,"slug":15,"type":16},{"name":1465,"slug":1466,"type":16},"Engineering","engineering","2026-05-15T06:16:29.695991",{"slug":1469,"name":1469,"fn":1470,"description":1471,"org":1472,"tags":1473,"stars":23,"repoUrl":24,"updatedAt":1481},"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},[1474,1477,1478],{"name":1475,"slug":1476,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":1479,"slug":1480,"type":16},"Technical Writing","technical-writing","2026-05-15T06:16:33.38217",{"slug":1483,"name":1483,"fn":1484,"description":1485,"org":1486,"tags":1487,"stars":23,"repoUrl":24,"updatedAt":1498},"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},[1488,1491,1494,1495],{"name":1489,"slug":1490,"type":16},"Branding","branding",{"name":1492,"slug":1493,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":1496,"slug":1497,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":1500,"name":1500,"fn":1501,"description":1502,"org":1503,"tags":1504,"stars":23,"repoUrl":24,"updatedAt":1514},"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},[1505,1508,1511],{"name":1506,"slug":1507,"type":16},"Claude Code","claude-code",{"name":1509,"slug":1510,"type":16},"Configuration","configuration",{"name":1512,"slug":1513,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":1516,"name":1516,"fn":1517,"description":1518,"org":1519,"tags":1520,"stars":23,"repoUrl":24,"updatedAt":1528},"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},[1521,1523,1524,1527],{"name":1522,"slug":1516,"type":16},"Code Review",{"name":1465,"slug":1466,"type":16},{"name":1525,"slug":1526,"type":16},"Performance","performance",{"name":1512,"slug":1513,"type":16},"2026-05-15T06:16:35.824864",{"slug":1530,"name":1530,"fn":1531,"description":1532,"org":1533,"tags":1534,"stars":23,"repoUrl":24,"updatedAt":1538},"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},[1535],{"name":1536,"slug":1537,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":1540,"name":1540,"fn":1541,"description":1542,"org":1543,"tags":1544,"stars":23,"repoUrl":24,"updatedAt":1549},"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},[1545,1548],{"name":1546,"slug":1547,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":1551,"name":1551,"fn":1552,"description":1553,"org":1554,"tags":1555,"stars":23,"repoUrl":24,"updatedAt":1559},"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},[1556,1557,1558],{"name":1465,"slug":1466,"type":16},{"name":1546,"slug":1547,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1564,"tags":1565,"stars":23,"repoUrl":24,"updatedAt":1577},"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},[1566,1569,1570,1573,1576],{"name":1567,"slug":1568,"type":16},"Access Control","access-control",{"name":1536,"slug":1537,"type":16},{"name":1571,"slug":1572,"type":16},"Django","django",{"name":1574,"slug":1575,"type":16},"Python","python",{"name":1512,"slug":1513,"type":16},"2026-05-15T06:16:43.098698",{"slug":1579,"name":1579,"fn":1580,"description":1581,"org":1582,"tags":1583,"stars":23,"repoUrl":24,"updatedAt":1590},"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},[1584,1585,1588,1589],{"name":1522,"slug":1516,"type":16},{"name":1586,"slug":1587,"type":16},"Database","database",{"name":1571,"slug":1572,"type":16},{"name":1525,"slug":1526,"type":16},"2026-05-15T06:16:24.832813",88,{"items":1593,"total":1634},[1594,1599,1605,1612,1618,1625,1629],{"slug":1458,"name":1458,"fn":1459,"description":1460,"org":1595,"tags":1596,"stars":23,"repoUrl":24,"updatedAt":1467},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1597,1598],{"name":14,"slug":15,"type":16},{"name":1465,"slug":1466,"type":16},{"slug":1469,"name":1469,"fn":1470,"description":1471,"org":1600,"tags":1601,"stars":23,"repoUrl":24,"updatedAt":1481},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1602,1603,1604],{"name":1475,"slug":1476,"type":16},{"name":9,"slug":8,"type":16},{"name":1479,"slug":1480,"type":16},{"slug":1483,"name":1483,"fn":1484,"description":1485,"org":1606,"tags":1607,"stars":23,"repoUrl":24,"updatedAt":1498},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1608,1609,1610,1611],{"name":1489,"slug":1490,"type":16},{"name":1492,"slug":1493,"type":16},{"name":9,"slug":8,"type":16},{"name":1496,"slug":1497,"type":16},{"slug":1500,"name":1500,"fn":1501,"description":1502,"org":1613,"tags":1614,"stars":23,"repoUrl":24,"updatedAt":1514},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1615,1616,1617],{"name":1506,"slug":1507,"type":16},{"name":1509,"slug":1510,"type":16},{"name":1512,"slug":1513,"type":16},{"slug":1516,"name":1516,"fn":1517,"description":1518,"org":1619,"tags":1620,"stars":23,"repoUrl":24,"updatedAt":1528},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1621,1622,1623,1624],{"name":1522,"slug":1516,"type":16},{"name":1465,"slug":1466,"type":16},{"name":1525,"slug":1526,"type":16},{"name":1512,"slug":1513,"type":16},{"slug":1530,"name":1530,"fn":1531,"description":1532,"org":1626,"tags":1627,"stars":23,"repoUrl":24,"updatedAt":1538},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1628],{"name":1536,"slug":1537,"type":16},{"slug":1540,"name":1540,"fn":1541,"description":1542,"org":1630,"tags":1631,"stars":23,"repoUrl":24,"updatedAt":1549},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1632,1633],{"name":1546,"slug":1547,"type":16},{"name":9,"slug":8,"type":16},28]