[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-sentry-skillet-authoring":3,"mdc--96oj5w-key":38,"related-org-sentry-skillet-authoring":397,"related-repo-sentry-skillet-authoring":573},{"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":36,"mdContent":37},"skillet-authoring","author and manage agent skills","Authors, improves, or migrates agent skills with the Skillet CLI; use when asked to create or write a skill, improve its instructions or evals, diagnose failing evals, or migrate a legacy SKILL.md, uppercase SPEC.md, or spec.yaml skill, but not when merely using an existing skill.",{"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},"Evals","evals","tag",{"name":18,"slug":19,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},"Plugin Development","plugin-development",{"name":24,"slug":25,"type":16},"Technical Writing","technical-writing",{"name":9,"slug":8,"type":16},1,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet","2026-07-28T05:34:02.536846",null,0,[33],"tag-production",{"repoUrl":28,"stars":27,"forks":31,"topics":35,"description":30},[33],"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskillet\u002Ftree\u002FHEAD\u002Fskills\u002Fskillet-authoring","---\nname: skillet-authoring\ndescription: Authors, improves, or migrates agent skills with the Skillet CLI; use when asked to create or write a skill, improve its instructions or evals, diagnose failing evals, or migrate a legacy SKILL.md, uppercase SPEC.md, or spec.yaml skill, but not when merely using an existing skill.\nspec_hash: 3b86b9ec11a6\n---\n\n# Skillet Authoring\n\nRun every Skillet command through the current package: `npx -y @sentry\u002Fskillet@latest`, or `pnpx @sentry\u002Fskillet@latest` in a pnpm environment. Never prefer a bare `skillet` executable from PATH; if one reports an update, rerun that command through the explicit latest package before continuing. Treat `spec.md` as the behavior contract, `SKILL.md` as the agent instructions, and eval cases as repeatable runs of the spec scenarios. Never write these files from a remembered format.\n\n## Steps\n\n1. Run `npx -y @sentry\u002Fskillet@latest status \u003Cdir> --json` and do what `next` says. For a brand-new skill, run `npx -y @sentry\u002Fskillet@latest new \u003Cname>` first. Never guess a skill's state or start over when artifacts already exist.\n   - When status reports uppercase `SPEC.md`, preserve or rename that legacy document before creating lowercase `spec.md`; never parse it as the active Skillet spec.\n   - When status marks lowercase `spec.md` invalid, preserve or rename legacy content and derive a valid Skillet spec before rendering `SKILL.md` or adding coverage.\n2. When migrating, inventory behavior-bearing material before drafting: triggers, ordered workflow, exact lists, protocols and output formats, thresholds, failure and stop rules, constraints, runtime references, and maintenance docs that describe active behavior. Every accepted behavioral rule must land in `spec.md`; verbose execution detail may additionally remain in a linked runtime reference after the spec defines the observable contract. Explicitly supersede or reject non-behavior content.\n3. When `spec.md` is next, fetch `npx -y @sentry\u002Fskillet@latest instructions spec \u003Cdir> --json`. If intent remains ambiguous after inspecting the available evidence, ask 2–4 pointed questions before writing. Then write the spec with the served Skillet version footer as its final non-empty line, run `npx -y @sentry\u002Fskillet@latest validate \u003Cdir>`, and fix every spec error before deriving anything.\n4. When `SKILL.md` is next, fetch `npx -y @sentry\u002Fskillet@latest instructions skill \u003Cdir> --json` and render it from the validated spec. When migrating, do not weaken exact formats, enumerations, thresholds, delegation rules, or stop conditions. Move long protocols to `references\u002F` when useful, link them from `SKILL.md`, then compare the old and new runtime surfaces and account for every removed rule. Search README and provenance docs for stale artifact paths, prompt locations, runtime-section claims, frontmatter descriptions, and coverage claims. Validate again before adding evals.\n5. When eval coverage is next, fetch `npx -y @sentry\u002Fskillet@latest instructions evals \u003Cdir> --json`, add at least one case per behavior, then validate with the same package command until no errors or uncovered-behavior warnings remain.\n6. Run `npx -y @sentry\u002Fskillet@latest eval \u003Cdir> --dry` to find checks that pass before the agent runs. Then run `npx -y @sentry\u002Fskillet@latest eval \u003Cdir> --baseline` to compare the tested results with and without the skill. Add `--trials \u003Cn>` only when repeated observations are useful, and `--report \u003Cfile>` when the user wants a shareable run artifact (`npx vitest-evals serve \u003Cfile>` renders it).\n\n## When evals fail\n\nClassify the failure before editing anything, then fix at that layer only:\n\n- **Wrong intent** — the spec asks for the wrong thing: fix `spec.md`, then re-render SKILL.md.\n- **Weak wording** — SKILL.md expresses the behavior ambiguously: tighten SKILL.md, leave the eval case untouched.\n- **Unfair eval** — the case punishes a legitimately better outcome: fix the case and say explicitly why it was unfair.\n\nNever delete or loosen an eval case just to get to green.\n\n## Never\n\n- Never report a skill as done while `npx -y @sentry\u002Fskillet@latest validate` reports errors.\n- Never scaffold or modify skill artifacts when the user only asked a question or an unrelated task.\n",{"data":39,"body":41},{"name":4,"description":6,"spec_hash":40},"3b86b9ec11a6",{"type":42,"children":43},"root",[44,52,99,106,313,319,324,365,370,376],{"type":45,"tag":46,"props":47,"children":48},"element","h1",{"id":4},[49],{"type":50,"value":51},"text","Skillet Authoring",{"type":45,"tag":53,"props":54,"children":55},"p",{},[56,58,65,67,73,75,81,83,89,91,97],{"type":50,"value":57},"Run every Skillet command through the current package: ",{"type":45,"tag":59,"props":60,"children":62},"code",{"className":61},[],[63],{"type":50,"value":64},"npx -y @sentry\u002Fskillet@latest",{"type":50,"value":66},", or ",{"type":45,"tag":59,"props":68,"children":70},{"className":69},[],[71],{"type":50,"value":72},"pnpx @sentry\u002Fskillet@latest",{"type":50,"value":74}," in a pnpm environment. Never prefer a bare ",{"type":45,"tag":59,"props":76,"children":78},{"className":77},[],[79],{"type":50,"value":80},"skillet",{"type":50,"value":82}," executable from PATH; if one reports an update, rerun that command through the explicit latest package before continuing. Treat ",{"type":45,"tag":59,"props":84,"children":86},{"className":85},[],[87],{"type":50,"value":88},"spec.md",{"type":50,"value":90}," as the behavior contract, ",{"type":45,"tag":59,"props":92,"children":94},{"className":93},[],[95],{"type":50,"value":96},"SKILL.md",{"type":50,"value":98}," as the agent instructions, and eval cases as repeatable runs of the spec scenarios. Never write these files from a remembered format.",{"type":45,"tag":100,"props":101,"children":103},"h2",{"id":102},"steps",[104],{"type":50,"value":105},"Steps",{"type":45,"tag":107,"props":108,"children":109},"ol",{},[110,183,195,223,256,269],{"type":45,"tag":111,"props":112,"children":113},"li",{},[114,116,122,124,130,132,138,140],{"type":50,"value":115},"Run ",{"type":45,"tag":59,"props":117,"children":119},{"className":118},[],[120],{"type":50,"value":121},"npx -y @sentry\u002Fskillet@latest status \u003Cdir> --json",{"type":50,"value":123}," and do what ",{"type":45,"tag":59,"props":125,"children":127},{"className":126},[],[128],{"type":50,"value":129},"next",{"type":50,"value":131}," says. For a brand-new skill, run ",{"type":45,"tag":59,"props":133,"children":135},{"className":134},[],[136],{"type":50,"value":137},"npx -y @sentry\u002Fskillet@latest new \u003Cname>",{"type":50,"value":139}," first. Never guess a skill's state or start over when artifacts already exist.\n",{"type":45,"tag":141,"props":142,"children":143},"ul",{},[144,164],{"type":45,"tag":111,"props":145,"children":146},{},[147,149,155,157,162],{"type":50,"value":148},"When status reports uppercase ",{"type":45,"tag":59,"props":150,"children":152},{"className":151},[],[153],{"type":50,"value":154},"SPEC.md",{"type":50,"value":156},", preserve or rename that legacy document before creating lowercase ",{"type":45,"tag":59,"props":158,"children":160},{"className":159},[],[161],{"type":50,"value":88},{"type":50,"value":163},"; never parse it as the active Skillet spec.",{"type":45,"tag":111,"props":165,"children":166},{},[167,169,174,176,181],{"type":50,"value":168},"When status marks lowercase ",{"type":45,"tag":59,"props":170,"children":172},{"className":171},[],[173],{"type":50,"value":88},{"type":50,"value":175}," invalid, preserve or rename legacy content and derive a valid Skillet spec before rendering ",{"type":45,"tag":59,"props":177,"children":179},{"className":178},[],[180],{"type":50,"value":96},{"type":50,"value":182}," or adding coverage.",{"type":45,"tag":111,"props":184,"children":185},{},[186,188,193],{"type":50,"value":187},"When migrating, inventory behavior-bearing material before drafting: triggers, ordered workflow, exact lists, protocols and output formats, thresholds, failure and stop rules, constraints, runtime references, and maintenance docs that describe active behavior. Every accepted behavioral rule must land in ",{"type":45,"tag":59,"props":189,"children":191},{"className":190},[],[192],{"type":50,"value":88},{"type":50,"value":194},"; verbose execution detail may additionally remain in a linked runtime reference after the spec defines the observable contract. Explicitly supersede or reject non-behavior content.",{"type":45,"tag":111,"props":196,"children":197},{},[198,200,205,207,213,215,221],{"type":50,"value":199},"When ",{"type":45,"tag":59,"props":201,"children":203},{"className":202},[],[204],{"type":50,"value":88},{"type":50,"value":206}," is next, fetch ",{"type":45,"tag":59,"props":208,"children":210},{"className":209},[],[211],{"type":50,"value":212},"npx -y @sentry\u002Fskillet@latest instructions spec \u003Cdir> --json",{"type":50,"value":214},". If intent remains ambiguous after inspecting the available evidence, ask 2–4 pointed questions before writing. Then write the spec with the served Skillet version footer as its final non-empty line, run ",{"type":45,"tag":59,"props":216,"children":218},{"className":217},[],[219],{"type":50,"value":220},"npx -y @sentry\u002Fskillet@latest validate \u003Cdir>",{"type":50,"value":222},", and fix every spec error before deriving anything.",{"type":45,"tag":111,"props":224,"children":225},{},[226,227,232,233,239,241,247,249,254],{"type":50,"value":199},{"type":45,"tag":59,"props":228,"children":230},{"className":229},[],[231],{"type":50,"value":96},{"type":50,"value":206},{"type":45,"tag":59,"props":234,"children":236},{"className":235},[],[237],{"type":50,"value":238},"npx -y @sentry\u002Fskillet@latest instructions skill \u003Cdir> --json",{"type":50,"value":240}," and render it from the validated spec. When migrating, do not weaken exact formats, enumerations, thresholds, delegation rules, or stop conditions. Move long protocols to ",{"type":45,"tag":59,"props":242,"children":244},{"className":243},[],[245],{"type":50,"value":246},"references\u002F",{"type":50,"value":248}," when useful, link them from ",{"type":45,"tag":59,"props":250,"children":252},{"className":251},[],[253],{"type":50,"value":96},{"type":50,"value":255},", then compare the old and new runtime surfaces and account for every removed rule. Search README and provenance docs for stale artifact paths, prompt locations, runtime-section claims, frontmatter descriptions, and coverage claims. Validate again before adding evals.",{"type":45,"tag":111,"props":257,"children":258},{},[259,261,267],{"type":50,"value":260},"When eval coverage is next, fetch ",{"type":45,"tag":59,"props":262,"children":264},{"className":263},[],[265],{"type":50,"value":266},"npx -y @sentry\u002Fskillet@latest instructions evals \u003Cdir> --json",{"type":50,"value":268},", add at least one case per behavior, then validate with the same package command until no errors or uncovered-behavior warnings remain.",{"type":45,"tag":111,"props":270,"children":271},{},[272,273,279,281,287,289,295,297,303,305,311],{"type":50,"value":115},{"type":45,"tag":59,"props":274,"children":276},{"className":275},[],[277],{"type":50,"value":278},"npx -y @sentry\u002Fskillet@latest eval \u003Cdir> --dry",{"type":50,"value":280}," to find checks that pass before the agent runs. Then run ",{"type":45,"tag":59,"props":282,"children":284},{"className":283},[],[285],{"type":50,"value":286},"npx -y @sentry\u002Fskillet@latest eval \u003Cdir> --baseline",{"type":50,"value":288}," to compare the tested results with and without the skill. Add ",{"type":45,"tag":59,"props":290,"children":292},{"className":291},[],[293],{"type":50,"value":294},"--trials \u003Cn>",{"type":50,"value":296}," only when repeated observations are useful, and ",{"type":45,"tag":59,"props":298,"children":300},{"className":299},[],[301],{"type":50,"value":302},"--report \u003Cfile>",{"type":50,"value":304}," when the user wants a shareable run artifact (",{"type":45,"tag":59,"props":306,"children":308},{"className":307},[],[309],{"type":50,"value":310},"npx vitest-evals serve \u003Cfile>",{"type":50,"value":312}," renders it).",{"type":45,"tag":100,"props":314,"children":316},{"id":315},"when-evals-fail",[317],{"type":50,"value":318},"When evals fail",{"type":45,"tag":53,"props":320,"children":321},{},[322],{"type":50,"value":323},"Classify the failure before editing anything, then fix at that layer only:",{"type":45,"tag":141,"props":325,"children":326},{},[327,345,355],{"type":45,"tag":111,"props":328,"children":329},{},[330,336,338,343],{"type":45,"tag":331,"props":332,"children":333},"strong",{},[334],{"type":50,"value":335},"Wrong intent",{"type":50,"value":337}," — the spec asks for the wrong thing: fix ",{"type":45,"tag":59,"props":339,"children":341},{"className":340},[],[342],{"type":50,"value":88},{"type":50,"value":344},", then re-render SKILL.md.",{"type":45,"tag":111,"props":346,"children":347},{},[348,353],{"type":45,"tag":331,"props":349,"children":350},{},[351],{"type":50,"value":352},"Weak wording",{"type":50,"value":354}," — SKILL.md expresses the behavior ambiguously: tighten SKILL.md, leave the eval case untouched.",{"type":45,"tag":111,"props":356,"children":357},{},[358,363],{"type":45,"tag":331,"props":359,"children":360},{},[361],{"type":50,"value":362},"Unfair eval",{"type":50,"value":364}," — the case punishes a legitimately better outcome: fix the case and say explicitly why it was unfair.",{"type":45,"tag":53,"props":366,"children":367},{},[368],{"type":50,"value":369},"Never delete or loosen an eval case just to get to green.",{"type":45,"tag":100,"props":371,"children":373},{"id":372},"never",[374],{"type":50,"value":375},"Never",{"type":45,"tag":141,"props":377,"children":378},{},[379,392],{"type":45,"tag":111,"props":380,"children":381},{},[382,384,390],{"type":50,"value":383},"Never report a skill as done while ",{"type":45,"tag":59,"props":385,"children":387},{"className":386},[],[388],{"type":50,"value":389},"npx -y @sentry\u002Fskillet@latest validate",{"type":50,"value":391}," reports errors.",{"type":45,"tag":111,"props":393,"children":394},{},[395],{"type":50,"value":396},"Never scaffold or modify skill artifacts when the user only asked a question or an unrelated task.",{"items":398,"total":572},[399,424,436,451,463,480,496,510,520,531,541,559],{"slug":400,"name":400,"fn":401,"description":402,"org":403,"tags":404,"stars":421,"repoUrl":422,"updatedAt":423},"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},[405,408,411,414,415,418],{"name":406,"slug":407,"type":16},"Debugging","debugging",{"name":409,"slug":410,"type":16},"iOS","ios",{"name":412,"slug":413,"type":16},"macOS","macos",{"name":9,"slug":8,"type":16},{"name":416,"slug":417,"type":16},"Testing","testing",{"name":419,"slug":420,"type":16},"Xcode","xcode",6176,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002FXcodeBuildMCP","2026-04-06T18:13:34.8719",{"slug":425,"name":425,"fn":426,"description":427,"org":428,"tags":429,"stars":421,"repoUrl":422,"updatedAt":435},"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},[430,431,432,433,434],{"name":18,"slug":19,"type":16},{"name":409,"slug":410,"type":16},{"name":412,"slug":413,"type":16},{"name":416,"slug":417,"type":16},{"name":419,"slug":420,"type":16},"2026-04-06T18:13:36.13414",{"slug":437,"name":437,"fn":438,"description":439,"org":440,"tags":441,"stars":448,"repoUrl":449,"updatedAt":450},"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},[442,445],{"name":443,"slug":444,"type":16},"Documentation","documentation",{"name":446,"slug":447,"type":16},"Engineering","engineering",861,"https:\u002F\u002Fgithub.com\u002Fgetsentry\u002Fskills","2026-05-15T06:16:29.695991",{"slug":452,"name":452,"fn":453,"description":454,"org":455,"tags":456,"stars":448,"repoUrl":449,"updatedAt":462},"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},[457,460,461],{"name":458,"slug":459,"type":16},"Communications","communications",{"name":9,"slug":8,"type":16},{"name":24,"slug":25,"type":16},"2026-05-15T06:16:33.38217",{"slug":464,"name":464,"fn":465,"description":466,"org":467,"tags":468,"stars":448,"repoUrl":449,"updatedAt":479},"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},[469,472,475,476],{"name":470,"slug":471,"type":16},"Branding","branding",{"name":473,"slug":474,"type":16},"Content Creation","content-creation",{"name":9,"slug":8,"type":16},{"name":477,"slug":478,"type":16},"UX Copy","ux-copy","2026-05-15T06:16:22.395707",{"slug":481,"name":481,"fn":482,"description":483,"org":484,"tags":485,"stars":448,"repoUrl":449,"updatedAt":495},"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},[486,489,492],{"name":487,"slug":488,"type":16},"Claude Code","claude-code",{"name":490,"slug":491,"type":16},"Configuration","configuration",{"name":493,"slug":494,"type":16},"Security","security","2026-05-15T06:16:44.335977",{"slug":497,"name":497,"fn":498,"description":499,"org":500,"tags":501,"stars":448,"repoUrl":449,"updatedAt":509},"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},[502,504,505,508],{"name":503,"slug":497,"type":16},"Code Review",{"name":446,"slug":447,"type":16},{"name":506,"slug":507,"type":16},"Performance","performance",{"name":493,"slug":494,"type":16},"2026-05-15T06:16:35.824864",{"slug":511,"name":511,"fn":512,"description":513,"org":514,"tags":515,"stars":448,"repoUrl":449,"updatedAt":519},"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},[516],{"name":517,"slug":518,"type":16},"Code Analysis","code-analysis","2026-05-15T06:16:32.127981",{"slug":521,"name":521,"fn":522,"description":523,"org":524,"tags":525,"stars":448,"repoUrl":449,"updatedAt":530},"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},[526,529],{"name":527,"slug":528,"type":16},"Git","git",{"name":9,"slug":8,"type":16},"2026-07-18T05:15:10.723937",{"slug":532,"name":532,"fn":533,"description":534,"org":535,"tags":536,"stars":448,"repoUrl":449,"updatedAt":540},"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},[537,538,539],{"name":446,"slug":447,"type":16},{"name":527,"slug":528,"type":16},{"name":9,"slug":8,"type":16},"2026-05-15T06:16:39.458431",{"slug":542,"name":542,"fn":543,"description":544,"org":545,"tags":546,"stars":448,"repoUrl":449,"updatedAt":558},"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},[547,550,551,554,557],{"name":548,"slug":549,"type":16},"Access Control","access-control",{"name":517,"slug":518,"type":16},{"name":552,"slug":553,"type":16},"Django","django",{"name":555,"slug":556,"type":16},"Python","python",{"name":493,"slug":494,"type":16},"2026-05-15T06:16:43.098698",{"slug":560,"name":560,"fn":561,"description":562,"org":563,"tags":564,"stars":448,"repoUrl":449,"updatedAt":571},"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},[565,566,569,570],{"name":503,"slug":497,"type":16},{"name":567,"slug":568,"type":16},"Database","database",{"name":552,"slug":553,"type":16},{"name":506,"slug":507,"type":16},"2026-05-15T06:16:24.832813",88,{"items":574,"total":27},[575],{"slug":4,"name":4,"fn":5,"description":6,"org":576,"tags":577,"stars":27,"repoUrl":28,"updatedAt":29},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[578,579,580,581,582],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},{"name":24,"slug":25,"type":16}]