[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-uniswap-migrate-config-to-opus-5":3,"mdc-o2sm68-key":36,"related-repo-uniswap-migrate-config-to-opus-5":496,"related-org-uniswap-migrate-config-to-opus-5":590},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"migrate-config-to-opus-5","migrate Claude Code configuration for Opus 5","Audit and migrate a Claude Code configuration (CLAUDE.md, rules, skills, commands, agents, settings.json, hooks, statusline, CI scripts) for Claude Opus 5's behavioral changes. Use when the user asks to migrate or audit their config for Opus 5 \u002F the Claude 5 family, says their setup was written for Opus 4.x or an older Claude model, or reports post-upgrade symptoms like over-verification, over-delegation to subagents, code reviewers missing real findings, or noticeably longer output. Always interview for scope first — the global setup (~\u002F.claude) or an individual project (the cwd).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"uniswap","Uniswap","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Funiswap.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Configuration","configuration","tag",{"name":17,"slug":18,"type":15},"Claude Code","claude-code",{"name":20,"slug":21,"type":15},"Migration","migration",{"name":23,"slug":24,"type":15},"Engineering","engineering",39,"https:\u002F\u002Fgithub.com\u002FUniswap\u002Fai-toolkit","2026-08-08T04:19:15.51846",null,10,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"🤖 AI Toolkit - Standardized setup for Claude Code AI workflows. Nx monorepo with reusable agents, commands, and generators for enhanced AI-assisted development.","https:\u002F\u002Fgithub.com\u002FUniswap\u002Fai-toolkit\u002Ftree\u002FHEAD\u002Fpackages\u002Fplugins\u002Fskill-management\u002Fskills\u002Fmigrate-config-to-opus-5","---\nname: migrate-config-to-opus-5\ndescription: Audit and migrate a Claude Code configuration (CLAUDE.md, rules, skills, commands, agents, settings.json, hooks, statusline, CI scripts) for Claude Opus 5's behavioral changes. Use when the user asks to migrate or audit their config for Opus 5 \u002F the Claude 5 family, says their setup was written for Opus 4.x or an older Claude model, or reports post-upgrade symptoms like over-verification, over-delegation to subagents, code reviewers missing real findings, or noticeably longer output. Always interview for scope first — the global setup (~\u002F.claude) or an individual project (the cwd).\n---\n\n# Migrate a Claude Code Config to Opus 5\n\nOpus 5 changed what good config looks like. Config written for Opus 4.x often _compensated_ for that era's failure modes (under-verification, under-delegation, under-triggering on instructions). Opus 5 inverts those defaults, so the old compensations now actively fight the model.\n\nGround rule: the harness (Claude Code's own system prompt) is re-tuned by Anthropic per model. Config should carry only what the harness can't know — the user's policies, environment facts, and preferences. Anything duplicating harness behavior is dead weight; anything compensating for a pre-Opus-5 failure mode is now harmful.\n\n## Step 0 — Scope interview (required, before touching anything)\n\nAsk the user which surface to migrate, via AskUserQuestion:\n\n- **Global setup** — `~\u002F.claude`: CLAUDE.md, `rules\u002F**`, `skills\u002F**`, `commands\u002F`, `agents\u002F`, `settings.json` (+ hooks), statusline script, plugin registrations. Affects every session on the machine (and, if the directory syncs via git, every machine).\n- **This project** — the cwd: `.\u002FCLAUDE.md`, `.claude\u002F` (settings, skills, agents, commands, rules), plus project scripts\u002FCI workflows that embed Claude model IDs or API params.\n\nIf the user picked global and `~\u002F.claude` is a git repo shared across machines, every path fix must be machine-agnostic (`$HOME`, `~\u002F`, resolver scripts) — a literal home-dir path that is correct on this machine is silently wrong on the others.\n\nIn the same interview, ask one execution question: apply edits directly with granular commits (the default), or propose the full diff for review first. For project scope on a shared repo, apply the edits on a new branch off the repo's default branch (`origin\u002Fmain` or equivalent, not the current checkout) and deliver them as a PR — matching this plugin's skill-doctor delivery rule.\n\n## Step 1 — Inventory\n\nEnumerate the chosen surface before judging any of it. For a large surface, dispatch a read-only Explore agent; for a small project config, do it inline. Collect:\n\n- Every file that loads into context (always-on rules vs path-scoped vs on-demand).\n- Prompt text embedded in skills\u002Fcommands\u002Fagents — reviewer prompts especially.\n- Scripts and CI that mention `claude-*` model IDs, pricing, context-window sizes, or API params.\n- Hooks and their target paths.\n\nEnvironment note: in Claude Code's Bash, bare `grep` is an embedded ugrep that silently skips gitignored files and any file with invalid UTF-8. Use `\u002Fusr\u002Fbin\u002Fgrep` for every search whose result drives a decision.\n\n## Step 2 — Audit against the Opus 5 deltas (subagent fan-out)\n\nRead `references\u002Faudit-patterns.md` first. It covers the four behavioral deltas (verification, delegation, literal instruction-following, output length), the mechanical checks (stale model IDs and pricing, API params, dead weight), and the settings that need a user decision (effortLevel), with search patterns and fix shapes.\n\nThe audit itself is read-every-file, not search. Grep finds only what a pattern anticipates (model IDs, API params); the behavioral deltas live in prose that no regex matches — a reviewer prompt's confidence filter, a rule's verification ceremony, a delegation nudge. Deploy subagents to do the reading:\n\n- Partition the Step 1 inventory into batches of related files (a rules directory, one plugin's skills, the CI scripts) — one subagent per batch, sized so each agent reads every assigned file in full.\n- Give each subagent its file list, the full text of `references\u002Faudit-patterns.md`, the four classification buckets defined below, and this contract: read each file completely, audit it against the reference's deltas, mechanical checks, and user-decision settings, and report back per-file structured findings — file, location, quoted current text, proposed specific change (replacement text, \"delete\", or \"keep as policy\"), classification (one of the four buckets), and a one-line rationale. A file with no findings is reported as audited-clean, not skipped. No subagent may judge a file it did not read.\n- Run the reference's mechanical grep sweeps in the main thread as a completeness cross-check: a hit in a file no subagent reported on means a batch was missed — re-dispatch that batch; never patch a file straight from a grep hit.\n- The main thread verifies before acting: spot-check each proposed edit against the actual file, dedupe overlapping findings, then carry them into Steps 3–4. Subagent findings are evidence, not conclusions.\n\nFor a tiny surface (a project config of a handful of files), one subagent — or inline reading — is fine; the contract stays the same: every file read in full, every file accounted for.\n\nClassify every finding as one of:\n\n- **Fix mechanically** — stale facts with one correct answer (model IDs, pricing, dead entries). No interview needed.\n- **Rewrite** — model-compensation text with a clear Opus 5 replacement (verification ceremony → grounding language; delegation nudges → caps; confidence filters → coverage-first).\n- **User decision** — anything that might be _policy_ rather than compensation. The test: would the user still want this behavior from a perfectly-calibrated model? A review-before-merge gate, a cost-routing table, a secrets rule — those are policy; keep them and say so. When unsure, ask rather than assume.\n- **Leave alone, note why** — pressure language (CRITICAL\u002FMUST) that guards a genuinely fragile workflow or a hard policy line (secrets, destructive git). Deleting emphasis there trades a model-fit win for a real safety loss.\n\n## Step 3 — Decision interview\n\nPresent the \"user decision\" findings via AskUserQuestion (batch related ones; recommendation first). Do not fold policy questions into the mechanical edits — a silently removed gate is the worst outcome of this migration.\n\n## Step 4 — Execute\n\n- One granular commit per logical change (if the surface is a git repo). Never one big migration commit — the user needs to be able to revert a single decision.\n- For shared\u002Fsynced files, apply the machine-agnostic path rule from Step 0.\n- When editing `settings.json`, validate with `python3 -c \"import json; json.load(open('...'))\"` after every edit, and check `git diff` first so pre-existing drift from other sessions is named in the commit message rather than silently swept in.\n- Delete dead things outright (superseded commands, archives, backup files) when the surface is a git repo with a clean tree — git history is the recovery path, and \"kept for recovery\" copies keep loading into context. Uncommitted or untracked dead weight has no history to fall back on: commit it first, or hold it for a follow-up AskUserQuestion. On a non-git surface, deletion is unrecoverable: ask the user (a follow-up AskUserQuestion listing the candidates) or confirm an external backup (Time Machine, sync) before deleting. Ideally these candidates were already surfaced in Step 3 — this is the fallback for ones discovered mid-execution.\n\n## Step 5 — Verify and set a checkpoint\n\n- Run a fresh probe: `claude -p --model haiku '\u003Cask it to quote a changed line and confirm a removed one is gone>'` from the relevant directory. This proves the edited config actually loads, hooks don't error, and removals took.\n- If a statusline or script was changed, test it directly with synthetic payloads.\n- Log a one-week checkpoint list of what to watch (response depth at the new effort level, delegation volume, reviewer recall, deliverable length) wherever the user keeps such notes, and say where you put it.\n\n## Output\n\nEnd with: scope migrated, a per-commit list of what changed and why, findings deliberately left alone (with the policy reason), anything out of reach (other machines, external repos), and the checkpoint date.\n\nKeep it to what the user has to act on — one line per commit, one line per left-alone finding. No restated summary of the audit, no filler sections.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,64,69,76,81,168,195,208,214,219,250,271,277,290,295,325,330,335,385,391,396,402,448,454,480,486,491],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"migrate-a-claude-code-config-to-opus-5",[47],{"type":48,"value":49},"text","Migrate a Claude Code Config to Opus 5",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54,56,62],{"type":48,"value":55},"Opus 5 changed what good config looks like. Config written for Opus 4.x often ",{"type":42,"tag":57,"props":58,"children":59},"em",{},[60],{"type":48,"value":61},"compensated",{"type":48,"value":63}," for that era's failure modes (under-verification, under-delegation, under-triggering on instructions). Opus 5 inverts those defaults, so the old compensations now actively fight the model.",{"type":42,"tag":51,"props":65,"children":66},{},[67],{"type":48,"value":68},"Ground rule: the harness (Claude Code's own system prompt) is re-tuned by Anthropic per model. Config should carry only what the harness can't know — the user's policies, environment facts, and preferences. Anything duplicating harness behavior is dead weight; anything compensating for a pre-Opus-5 failure mode is now harmful.",{"type":42,"tag":70,"props":71,"children":73},"h2",{"id":72},"step-0-scope-interview-required-before-touching-anything",[74],{"type":48,"value":75},"Step 0 — Scope interview (required, before touching anything)",{"type":42,"tag":51,"props":77,"children":78},{},[79],{"type":48,"value":80},"Ask the user which surface to migrate, via AskUserQuestion:",{"type":42,"tag":82,"props":83,"children":84},"ul",{},[85,143],{"type":42,"tag":86,"props":87,"children":88},"li",{},[89,95,97,104,106,112,114,120,121,127,128,134,135,141],{"type":42,"tag":90,"props":91,"children":92},"strong",{},[93],{"type":48,"value":94},"Global setup",{"type":48,"value":96}," — ",{"type":42,"tag":98,"props":99,"children":101},"code",{"className":100},[],[102],{"type":48,"value":103},"~\u002F.claude",{"type":48,"value":105},": CLAUDE.md, ",{"type":42,"tag":98,"props":107,"children":109},{"className":108},[],[110],{"type":48,"value":111},"rules\u002F**",{"type":48,"value":113},", ",{"type":42,"tag":98,"props":115,"children":117},{"className":116},[],[118],{"type":48,"value":119},"skills\u002F**",{"type":48,"value":113},{"type":42,"tag":98,"props":122,"children":124},{"className":123},[],[125],{"type":48,"value":126},"commands\u002F",{"type":48,"value":113},{"type":42,"tag":98,"props":129,"children":131},{"className":130},[],[132],{"type":48,"value":133},"agents\u002F",{"type":48,"value":113},{"type":42,"tag":98,"props":136,"children":138},{"className":137},[],[139],{"type":48,"value":140},"settings.json",{"type":48,"value":142}," (+ hooks), statusline script, plugin registrations. Affects every session on the machine (and, if the directory syncs via git, every machine).",{"type":42,"tag":86,"props":144,"children":145},{},[146,151,153,159,160,166],{"type":42,"tag":90,"props":147,"children":148},{},[149],{"type":48,"value":150},"This project",{"type":48,"value":152}," — the cwd: ",{"type":42,"tag":98,"props":154,"children":156},{"className":155},[],[157],{"type":48,"value":158},".\u002FCLAUDE.md",{"type":48,"value":113},{"type":42,"tag":98,"props":161,"children":163},{"className":162},[],[164],{"type":48,"value":165},".claude\u002F",{"type":48,"value":167}," (settings, skills, agents, commands, rules), plus project scripts\u002FCI workflows that embed Claude model IDs or API params.",{"type":42,"tag":51,"props":169,"children":170},{},[171,173,178,180,186,187,193],{"type":48,"value":172},"If the user picked global and ",{"type":42,"tag":98,"props":174,"children":176},{"className":175},[],[177],{"type":48,"value":103},{"type":48,"value":179}," is a git repo shared across machines, every path fix must be machine-agnostic (",{"type":42,"tag":98,"props":181,"children":183},{"className":182},[],[184],{"type":48,"value":185},"$HOME",{"type":48,"value":113},{"type":42,"tag":98,"props":188,"children":190},{"className":189},[],[191],{"type":48,"value":192},"~\u002F",{"type":48,"value":194},", resolver scripts) — a literal home-dir path that is correct on this machine is silently wrong on the others.",{"type":42,"tag":51,"props":196,"children":197},{},[198,200,206],{"type":48,"value":199},"In the same interview, ask one execution question: apply edits directly with granular commits (the default), or propose the full diff for review first. For project scope on a shared repo, apply the edits on a new branch off the repo's default branch (",{"type":42,"tag":98,"props":201,"children":203},{"className":202},[],[204],{"type":48,"value":205},"origin\u002Fmain",{"type":48,"value":207}," or equivalent, not the current checkout) and deliver them as a PR — matching this plugin's skill-doctor delivery rule.",{"type":42,"tag":70,"props":209,"children":211},{"id":210},"step-1-inventory",[212],{"type":48,"value":213},"Step 1 — Inventory",{"type":42,"tag":51,"props":215,"children":216},{},[217],{"type":48,"value":218},"Enumerate the chosen surface before judging any of it. For a large surface, dispatch a read-only Explore agent; for a small project config, do it inline. Collect:",{"type":42,"tag":82,"props":220,"children":221},{},[222,227,232,245],{"type":42,"tag":86,"props":223,"children":224},{},[225],{"type":48,"value":226},"Every file that loads into context (always-on rules vs path-scoped vs on-demand).",{"type":42,"tag":86,"props":228,"children":229},{},[230],{"type":48,"value":231},"Prompt text embedded in skills\u002Fcommands\u002Fagents — reviewer prompts especially.",{"type":42,"tag":86,"props":233,"children":234},{},[235,237,243],{"type":48,"value":236},"Scripts and CI that mention ",{"type":42,"tag":98,"props":238,"children":240},{"className":239},[],[241],{"type":48,"value":242},"claude-*",{"type":48,"value":244}," model IDs, pricing, context-window sizes, or API params.",{"type":42,"tag":86,"props":246,"children":247},{},[248],{"type":48,"value":249},"Hooks and their target paths.",{"type":42,"tag":51,"props":251,"children":252},{},[253,255,261,263,269],{"type":48,"value":254},"Environment note: in Claude Code's Bash, bare ",{"type":42,"tag":98,"props":256,"children":258},{"className":257},[],[259],{"type":48,"value":260},"grep",{"type":48,"value":262}," is an embedded ugrep that silently skips gitignored files and any file with invalid UTF-8. Use ",{"type":42,"tag":98,"props":264,"children":266},{"className":265},[],[267],{"type":48,"value":268},"\u002Fusr\u002Fbin\u002Fgrep",{"type":48,"value":270}," for every search whose result drives a decision.",{"type":42,"tag":70,"props":272,"children":274},{"id":273},"step-2-audit-against-the-opus-5-deltas-subagent-fan-out",[275],{"type":48,"value":276},"Step 2 — Audit against the Opus 5 deltas (subagent fan-out)",{"type":42,"tag":51,"props":278,"children":279},{},[280,282,288],{"type":48,"value":281},"Read ",{"type":42,"tag":98,"props":283,"children":285},{"className":284},[],[286],{"type":48,"value":287},"references\u002Faudit-patterns.md",{"type":48,"value":289}," first. It covers the four behavioral deltas (verification, delegation, literal instruction-following, output length), the mechanical checks (stale model IDs and pricing, API params, dead weight), and the settings that need a user decision (effortLevel), with search patterns and fix shapes.",{"type":42,"tag":51,"props":291,"children":292},{},[293],{"type":48,"value":294},"The audit itself is read-every-file, not search. Grep finds only what a pattern anticipates (model IDs, API params); the behavioral deltas live in prose that no regex matches — a reviewer prompt's confidence filter, a rule's verification ceremony, a delegation nudge. Deploy subagents to do the reading:",{"type":42,"tag":82,"props":296,"children":297},{},[298,303,315,320],{"type":42,"tag":86,"props":299,"children":300},{},[301],{"type":48,"value":302},"Partition the Step 1 inventory into batches of related files (a rules directory, one plugin's skills, the CI scripts) — one subagent per batch, sized so each agent reads every assigned file in full.",{"type":42,"tag":86,"props":304,"children":305},{},[306,308,313],{"type":48,"value":307},"Give each subagent its file list, the full text of ",{"type":42,"tag":98,"props":309,"children":311},{"className":310},[],[312],{"type":48,"value":287},{"type":48,"value":314},", the four classification buckets defined below, and this contract: read each file completely, audit it against the reference's deltas, mechanical checks, and user-decision settings, and report back per-file structured findings — file, location, quoted current text, proposed specific change (replacement text, \"delete\", or \"keep as policy\"), classification (one of the four buckets), and a one-line rationale. A file with no findings is reported as audited-clean, not skipped. No subagent may judge a file it did not read.",{"type":42,"tag":86,"props":316,"children":317},{},[318],{"type":48,"value":319},"Run the reference's mechanical grep sweeps in the main thread as a completeness cross-check: a hit in a file no subagent reported on means a batch was missed — re-dispatch that batch; never patch a file straight from a grep hit.",{"type":42,"tag":86,"props":321,"children":322},{},[323],{"type":48,"value":324},"The main thread verifies before acting: spot-check each proposed edit against the actual file, dedupe overlapping findings, then carry them into Steps 3–4. Subagent findings are evidence, not conclusions.",{"type":42,"tag":51,"props":326,"children":327},{},[328],{"type":48,"value":329},"For a tiny surface (a project config of a handful of files), one subagent — or inline reading — is fine; the contract stays the same: every file read in full, every file accounted for.",{"type":42,"tag":51,"props":331,"children":332},{},[333],{"type":48,"value":334},"Classify every finding as one of:",{"type":42,"tag":82,"props":336,"children":337},{},[338,348,358,375],{"type":42,"tag":86,"props":339,"children":340},{},[341,346],{"type":42,"tag":90,"props":342,"children":343},{},[344],{"type":48,"value":345},"Fix mechanically",{"type":48,"value":347}," — stale facts with one correct answer (model IDs, pricing, dead entries). No interview needed.",{"type":42,"tag":86,"props":349,"children":350},{},[351,356],{"type":42,"tag":90,"props":352,"children":353},{},[354],{"type":48,"value":355},"Rewrite",{"type":48,"value":357}," — model-compensation text with a clear Opus 5 replacement (verification ceremony → grounding language; delegation nudges → caps; confidence filters → coverage-first).",{"type":42,"tag":86,"props":359,"children":360},{},[361,366,368,373],{"type":42,"tag":90,"props":362,"children":363},{},[364],{"type":48,"value":365},"User decision",{"type":48,"value":367}," — anything that might be ",{"type":42,"tag":57,"props":369,"children":370},{},[371],{"type":48,"value":372},"policy",{"type":48,"value":374}," rather than compensation. The test: would the user still want this behavior from a perfectly-calibrated model? A review-before-merge gate, a cost-routing table, a secrets rule — those are policy; keep them and say so. When unsure, ask rather than assume.",{"type":42,"tag":86,"props":376,"children":377},{},[378,383],{"type":42,"tag":90,"props":379,"children":380},{},[381],{"type":48,"value":382},"Leave alone, note why",{"type":48,"value":384}," — pressure language (CRITICAL\u002FMUST) that guards a genuinely fragile workflow or a hard policy line (secrets, destructive git). Deleting emphasis there trades a model-fit win for a real safety loss.",{"type":42,"tag":70,"props":386,"children":388},{"id":387},"step-3-decision-interview",[389],{"type":48,"value":390},"Step 3 — Decision interview",{"type":42,"tag":51,"props":392,"children":393},{},[394],{"type":48,"value":395},"Present the \"user decision\" findings via AskUserQuestion (batch related ones; recommendation first). Do not fold policy questions into the mechanical edits — a silently removed gate is the worst outcome of this migration.",{"type":42,"tag":70,"props":397,"children":399},{"id":398},"step-4-execute",[400],{"type":48,"value":401},"Step 4 — Execute",{"type":42,"tag":82,"props":403,"children":404},{},[405,410,415,443],{"type":42,"tag":86,"props":406,"children":407},{},[408],{"type":48,"value":409},"One granular commit per logical change (if the surface is a git repo). Never one big migration commit — the user needs to be able to revert a single decision.",{"type":42,"tag":86,"props":411,"children":412},{},[413],{"type":48,"value":414},"For shared\u002Fsynced files, apply the machine-agnostic path rule from Step 0.",{"type":42,"tag":86,"props":416,"children":417},{},[418,420,425,427,433,435,441],{"type":48,"value":419},"When editing ",{"type":42,"tag":98,"props":421,"children":423},{"className":422},[],[424],{"type":48,"value":140},{"type":48,"value":426},", validate with ",{"type":42,"tag":98,"props":428,"children":430},{"className":429},[],[431],{"type":48,"value":432},"python3 -c \"import json; json.load(open('...'))\"",{"type":48,"value":434}," after every edit, and check ",{"type":42,"tag":98,"props":436,"children":438},{"className":437},[],[439],{"type":48,"value":440},"git diff",{"type":48,"value":442}," first so pre-existing drift from other sessions is named in the commit message rather than silently swept in.",{"type":42,"tag":86,"props":444,"children":445},{},[446],{"type":48,"value":447},"Delete dead things outright (superseded commands, archives, backup files) when the surface is a git repo with a clean tree — git history is the recovery path, and \"kept for recovery\" copies keep loading into context. Uncommitted or untracked dead weight has no history to fall back on: commit it first, or hold it for a follow-up AskUserQuestion. On a non-git surface, deletion is unrecoverable: ask the user (a follow-up AskUserQuestion listing the candidates) or confirm an external backup (Time Machine, sync) before deleting. Ideally these candidates were already surfaced in Step 3 — this is the fallback for ones discovered mid-execution.",{"type":42,"tag":70,"props":449,"children":451},{"id":450},"step-5-verify-and-set-a-checkpoint",[452],{"type":48,"value":453},"Step 5 — Verify and set a checkpoint",{"type":42,"tag":82,"props":455,"children":456},{},[457,470,475],{"type":42,"tag":86,"props":458,"children":459},{},[460,462,468],{"type":48,"value":461},"Run a fresh probe: ",{"type":42,"tag":98,"props":463,"children":465},{"className":464},[],[466],{"type":48,"value":467},"claude -p --model haiku '\u003Cask it to quote a changed line and confirm a removed one is gone>'",{"type":48,"value":469}," from the relevant directory. This proves the edited config actually loads, hooks don't error, and removals took.",{"type":42,"tag":86,"props":471,"children":472},{},[473],{"type":48,"value":474},"If a statusline or script was changed, test it directly with synthetic payloads.",{"type":42,"tag":86,"props":476,"children":477},{},[478],{"type":48,"value":479},"Log a one-week checkpoint list of what to watch (response depth at the new effort level, delegation volume, reviewer recall, deliverable length) wherever the user keeps such notes, and say where you put it.",{"type":42,"tag":70,"props":481,"children":483},{"id":482},"output",[484],{"type":48,"value":485},"Output",{"type":42,"tag":51,"props":487,"children":488},{},[489],{"type":48,"value":490},"End with: scope migrated, a per-commit list of what changed and why, findings deliberately left alone (with the policy reason), anything out of reach (other machines, external repos), and the checkpoint date.",{"type":42,"tag":51,"props":492,"children":493},{},[494],{"type":48,"value":495},"Keep it to what the user has to act on — one line per commit, one line per left-alone finding. No restated summary of the audit, no filler sections.",{"items":497,"total":589},[498,518,531,550,569,576],{"slug":499,"name":499,"fn":500,"description":501,"org":502,"tags":503,"stars":25,"repoUrl":26,"updatedAt":517},"backtest-change","backtest data-driven changes against historical data","Validate a data-driven change against LIVE historical data before it ships — replay old-vs-new over a real window, report whether it achieves its goal, and refuse to ship when the data disproves the premise. Fires whenever someone proposes a measurable change and names a number: \"add a monitor at 700MB\", \"set the threshold to N\", \"warn at X \u002F critical at Y\", \"alert when it exceeds N\", \"raise the timeout to 5s\", \"change the sampling rate\", \"bump the cache TTL\", \"tighten this alert\", \"loosen the threshold\", \"this should reduce the noise\", \"that will fix the p95\" — and before opening any PR for a monitor threshold, alert routing or renotify cadence, metric\u002Flog\u002Ftrace query, sampling rate, rate limit, autoscaling parameter, or a perf change with a latency or throughput target. A proposed number is a hypothesis, not a decision: backtest it and let the data override it. Always report old N vs new M with the window and data source. The \u002Fbacktest-change command loads this same skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[504,507,508,511,514],{"name":505,"slug":506,"type":15},"Data Analysis","data-analysis",{"name":23,"slug":24,"type":15},{"name":509,"slug":510,"type":15},"Finance","finance",{"name":512,"slug":513,"type":15},"Performance","performance",{"name":515,"slug":516,"type":15},"Testing","testing","2026-08-04T05:59:09.77515",{"slug":519,"name":519,"fn":520,"description":521,"org":522,"tags":523,"stars":25,"repoUrl":26,"updatedAt":530},"debug-issue","debug code errors and crashes","Systematic debugging workflow for any code error, crash, test failure, or unexpected behavior. Use this skill whenever a user mentions an error, bug, exception, crash, test failure, or says something \"isn't working\", \"is broken\", \"keeps failing\", or \"isn't behaving as expected\" — even if they haven't used the word \"debug\". Also trigger when the user pastes a stack trace, error message, or unexpected output and asks why. Don't wait for the user to say \"debug\"; if they're describing a problem with running code, this skill applies. Trigger phrases include: \"getting an error\", \"this crashes\", \"why is this failing\", \"help me fix this\", \"it broke\", \"not working\", \"exception thrown\", \"stack trace\", \"test is failing\", \"something is wrong with\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[524,527],{"name":525,"slug":526,"type":15},"Code Analysis","code-analysis",{"name":528,"slug":529,"type":15},"Debugging","debugging","2026-08-08T03:54:45.354284",{"slug":532,"name":532,"fn":533,"description":534,"org":535,"tags":536,"stars":25,"repoUrl":26,"updatedAt":549},"generate-document","generate professional documents in multiple formats","Generate professional documents in multiple formats (PDF, DOCX, HTML, ODT, EPUB, RTF). Use when the user says \"make a PDF\", \"generate a report\", \"create a document\", \"export to Word\", \"make a Word doc\", \"convert to PDF\", \"export findings\", \"create documentation\", or wants to save analysis results as a formatted document.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[537,540,543,546],{"name":538,"slug":539,"type":15},"Documents","documents",{"name":541,"slug":542,"type":15},"DOCX","docx",{"name":544,"slug":545,"type":15},"HTML","html",{"name":547,"slug":548,"type":15},"PDF","pdf","2026-07-17T06:07:16.218183",{"slug":551,"name":551,"fn":552,"description":553,"org":554,"tags":555,"stars":25,"repoUrl":26,"updatedAt":568},"mermaid-diagram","generate Mermaid.js diagrams for visualization","Generate syntactically valid Mermaid.js diagrams. Use when user says \"create a mermaid diagram\", \"generate a flowchart\", \"draw a sequence diagram\", \"visualize with mermaid\", \"mermaid architecture diagram\", \"create a class diagram\", \"make a state diagram\", \"ER diagram\", \"Gantt chart\", \"gitGraph\", or when generating any Mermaid code block in markdown. Also use when asked to fix or debug a broken Mermaid diagram.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[556,559,562,565],{"name":557,"slug":558,"type":15},"Design","design",{"name":560,"slug":561,"type":15},"Diagrams","diagrams",{"name":563,"slug":564,"type":15},"Documentation","documentation",{"name":566,"slug":567,"type":15},"Visualization","visualization","2026-08-08T03:54:46.316416",{"slug":4,"name":4,"fn":5,"description":6,"org":570,"tags":571,"stars":25,"repoUrl":26,"updatedAt":27},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[572,573,574,575],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":23,"slug":24,"type":15},{"name":20,"slug":21,"type":15},{"slug":577,"name":577,"fn":578,"description":579,"org":580,"tags":581,"stars":25,"repoUrl":26,"updatedAt":588},"skill-doctor","audit and optimize agent skills","Audit, map, and improve your Claude Code skills, agents, and slash commands — and mine the current session for new ones worth creating. Use this whenever the user says \"review my skills\", \"optimize my skills\", \"update my skills\", \"update all my skills\", \"maintain my skills\", \"audit my agents\", \"map my skills\", \"what skills do I have\", \"suggest skill improvements\", \"are any of my skills redundant\", \"clean up my skills\", \"turn this into a skill\", \"should this be a skill or an agent\", \"codify this workflow\", or invokes \u002Fskill-map, \u002Fskill-mine, or \u002Fskill-new. Also applies after finishing a multi-step workflow the user is likely to repeat (especially right after opening a PR), to ask whether it should become a skill or agent. It inventories every skill\u002Fagent\u002Fcommand across the user's own dirs AND all installed marketplaces, flags overlaps \u002F gaps \u002F weak triggering descriptions, and — when there's real prior work in the session — proposes new or edited skills\u002Fagents grounded in what actually happened.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[582,585],{"name":583,"slug":584,"type":15},"Agents","agents",{"name":586,"slug":587,"type":15},"Plugin Development","plugin-development","2026-08-08T03:54:44.326101",6,{"items":591,"total":748},[592,611,626,639,652,665,678,691,705,716,727,738],{"slug":593,"name":593,"fn":594,"description":595,"org":596,"tags":597,"stars":608,"repoUrl":609,"updatedAt":610},"configurator","configure auction smart contract parameters","Configure CCA (Continuous Clearing Auction) smart contract parameters through an interactive bulk form flow. Use when user says \"configure auction\", \"cca auction\", \"setup token auction\", \"auction configuration\", \"continuous auction\", or mentions CCA contracts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[598,599,602,605],{"name":13,"slug":14,"type":15},{"name":600,"slug":601,"type":15},"Ethereum","ethereum",{"name":603,"slug":604,"type":15},"Smart Contracts","smart-contracts",{"name":606,"slug":607,"type":15},"Web3","web3",215,"https:\u002F\u002Fgithub.com\u002FUniswap\u002Funiswap-ai","2026-07-17T06:08:08.974641",{"slug":612,"name":612,"fn":613,"description":614,"org":615,"tags":616,"stars":608,"repoUrl":609,"updatedAt":625},"copy-trade","copy trades from crypto wallets","This skill should be used when the user asks to \"copy trades from\" a wallet, \"mirror a wallet\", \"follow this address\", set up \"copy trading\", \"track and replicate a trader\", or mirror another account's swaps bounded by guardrails. Watches a target wallet and mirrors its trades, filtered by chain, asset match, position size, and the follower's own portfolio state.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[617,620,621,624],{"name":618,"slug":619,"type":15},"Automation","automation",{"name":600,"slug":601,"type":15},{"name":622,"slug":623,"type":15},"Trading","trading",{"name":606,"slug":607,"type":15},"2026-07-17T06:04:21.974052",{"slug":627,"name":627,"fn":628,"description":629,"org":630,"tags":631,"stars":608,"repoUrl":609,"updatedAt":638},"dca-bot","automate dollar cost average token purchases","This skill should be used when the user wants to \"dca into\" a token, \"buy X every day\", set up a \"recurring buy\", \"dollar cost average\" into an asset, \"schedule a buy\", or \"auto-buy on a dip\". Buys a fixed amount into a token on a schedule, optionally only when a condition holds (for example only when ETH is below a price threshold). The host agent's scheduler wakes the skill on a cadence; each wake is one self-contained run.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[632,633,636,637],{"name":618,"slug":619,"type":15},{"name":634,"slug":635,"type":15},"DeFi","defi",{"name":622,"slug":623,"type":15},{"name":606,"slug":607,"type":15},"2026-07-17T06:05:37.160647",{"slug":640,"name":640,"fn":641,"description":642,"org":643,"tags":644,"stars":608,"repoUrl":609,"updatedAt":651},"deployer","deploy Uniswap CCA smart contracts","Deploy CCA (Continuous Clearing Auction) smart contracts using the Factory pattern. Use when user says \"deploy auction\", \"deploy cca\", \"factory deployment\", or wants to deploy a configured auction.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[645,648,649,650],{"name":646,"slug":647,"type":15},"Deployment","deployment",{"name":600,"slug":601,"type":15},{"name":603,"slug":604,"type":15},{"name":606,"slug":607,"type":15},"2026-07-17T06:08:09.661977",{"slug":653,"name":653,"fn":654,"description":655,"org":656,"tags":657,"stars":608,"repoUrl":609,"updatedAt":664},"index-bot","create and rebalance asset portfolios","This skill should be used when the user asks to \"create an index\", \"build a basket of top assets\", \"buy a weighted basket\", \"make a portfolio of assets\", \"equal-weight basket\", \"rebalance my portfolio\", \"track the top N tokens\", or wants an automated, weighted multi-asset basket that buys in one pass and rebalances on a cadence. Builds the basket spec, delegates each buy and rebalance swap to the swap-integration Trading API flow, and records target weights in state.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[658,659,662,663],{"name":600,"slug":601,"type":15},{"name":660,"slug":661,"type":15},"Portfolio Management","portfolio-management",{"name":622,"slug":623,"type":15},{"name":606,"slug":607,"type":15},"2026-07-17T06:04:22.328253",{"slug":666,"name":666,"fn":667,"description":668,"org":669,"tags":670,"stars":608,"repoUrl":609,"updatedAt":677},"liquidity-planner","plan and create liquidity positions","This skill should be used when the user asks to \"provide liquidity\", \"create LP position\", \"add liquidity to pool\", \"become a liquidity provider\", \"create v3 position\", \"create v4 position\", \"concentrated liquidity\", \"set price range\", or mentions providing liquidity, LP positions, or liquidity pools on Uniswap. Generates deep links to create positions in the Uniswap interface.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[671,672,673,676],{"name":634,"slug":635,"type":15},{"name":600,"slug":601,"type":15},{"name":674,"slug":675,"type":15},"Liquidity","liquidity",{"name":606,"slug":607,"type":15},"2026-08-08T03:55:37.214112",{"slug":679,"name":679,"fn":680,"description":681,"org":682,"tags":683,"stars":608,"repoUrl":609,"updatedAt":690},"lp-integration","integrate Uniswap liquidity provisioning","Integrate Uniswap liquidity provisioning (LP) into applications via the LP REST API. Use when the user says \"LP API\", \"liquidity provisioning API\", \"provide liquidity programmatically\", \"create LP position via API\", \"add liquidity via API\", \"increase liquidity\", \"decrease liquidity\", \"remove liquidity\", \"claim LP fees\", \"collect LP fees\", \"manage LP positions in code\", or mentions building a backend, bot, or frontend that creates or manages Uniswap v2\u002Fv3\u002Fv4 liquidity positions through an API. Also use when debugging LP API calls (e.g. \u002Flp\u002Fcreate, \u002Flp\u002Fcheck_approval, \u002Flp\u002Fincrease, \u002Flp\u002Fdecrease, \u002Flp\u002Fclaim_fees), unexpected response fields, the approval or EIP-712 permit flow, or transaction-building errors for liquidity positions. For generating deep links to the Uniswap web app instead of calling the API, use the liquidity-planner skill; for using the Uniswap v4 SDK directly rather than the REST API, use the v4-sdk-integration skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[684,687,688,689],{"name":685,"slug":686,"type":15},"API Development","api-development",{"name":634,"slug":635,"type":15},{"name":674,"slug":675,"type":15},{"name":606,"slug":607,"type":15},"2026-08-08T03:55:34.112025",{"slug":692,"name":692,"fn":693,"description":694,"org":695,"tags":696,"stars":608,"repoUrl":609,"updatedAt":704},"pay-with-any-token","pay HTTP 402 challenges with Uniswap","Pay HTTP 402 payment challenges using tokens via the Tempo CLI and Uniswap Trading API. Use when the user encounters a 402 Payment Required response, needs to fulfill a machine payment, mentions \"MPP\", \"Tempo payment\", \"pay for API access\", \"HTTP 402\", \"x402\", \"machine payment protocol\", \"pay-with-any-token\", \"use tempo\", \"tempo request\", or \"tempo wallet\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[697,698,701,702],{"name":634,"slug":635,"type":15},{"name":699,"slug":700,"type":15},"Payments","payments",{"name":622,"slug":623,"type":15},{"name":703,"slug":703,"type":15},"x402","2026-08-08T03:55:36.210847",{"slug":706,"name":706,"fn":707,"description":708,"org":709,"tags":710,"stars":608,"repoUrl":609,"updatedAt":715},"pay-with-app","pay 402 payment challenges","Pay HTTP 402 payment challenges issued by OKX's Agent Payments Protocol (APP) on X Layer using tokens from any chain via the Uniswap Trading API. Use this skill whenever the user encounters a 402 challenge whose network resolves to X Layer (chain 196), mentions \"APP\", \"Agent Payments Protocol\", \"OKX agent payment\", \"OKX Onchain OS\", \"OKX agentic wallet\", \"x402 on X Layer\", \"USDT0\", \"x42\", \"Instant Payment\", \"Batch Payment\", \"pay for X Layer API\", or wants to pay an OKX-backed merchant. Even when the user does not explicitly say APP, prefer this skill for any 402 challenge whose network resolves to X Layer (chain 196). For 402 challenges on other chains (Ethereum, Base, Arbitrum, Tempo) use pay-with-any-token instead.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[711,712,713,714],{"name":685,"slug":686,"type":15},{"name":699,"slug":700,"type":15},{"name":606,"slug":607,"type":15},{"name":703,"slug":703,"type":15},"2026-08-08T03:55:32.164995",{"slug":717,"name":717,"fn":718,"description":719,"org":720,"tags":721,"stars":608,"repoUrl":609,"updatedAt":726},"swap-integration","integrate Uniswap swap functionality","Integrate Uniswap swaps into applications. Use when user says \"integrate swaps\", \"uniswap\", \"trading api\", \"add swap functionality\", \"build a swap frontend\", \"create a swap script\", \"smart contract swap integration\", \"use Universal Router\", \"Trading API\", or mentions swapping tokens via Uniswap.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[722,723,724,725],{"name":685,"slug":686,"type":15},{"name":634,"slug":635,"type":15},{"name":622,"slug":623,"type":15},{"name":606,"slug":607,"type":15},"2026-08-08T03:55:33.189242",{"slug":728,"name":728,"fn":729,"description":730,"org":731,"tags":732,"stars":608,"repoUrl":609,"updatedAt":737},"swap-planner","plan and execute token swaps","This skill should be used when the user asks to \"swap tokens\", \"trade ETH for USDC\", \"exchange tokens on Uniswap\", \"buy tokens\", \"sell tokens\", \"convert ETH to stablecoins\", \"find memecoins\", \"discover tokens\", \"research tokens\", \"tokens to buy\", \"find tokens to swap\", \"what should I buy\", or mentions swapping, trading, researching, discovering, buying, or exchanging tokens on any Uniswap-supported chain. Supports both known token swaps and token discovery workflows (discovery uses keyword search and web search — there is no live \"trending\" feed). Generates deep links to execute swaps in the Uniswap interface.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[733,734,735,736],{"name":634,"slug":635,"type":15},{"name":674,"slug":675,"type":15},{"name":622,"slug":623,"type":15},{"name":606,"slug":607,"type":15},"2026-08-08T03:55:35.104047",{"slug":739,"name":739,"fn":740,"description":741,"org":742,"tags":743,"stars":608,"repoUrl":609,"updatedAt":747},"v4-hook-generator","generate Uniswap v4 hook contracts","Generate Uniswap v4 hook contracts via OpenZeppelin MCP. Use when building custom swap logic, async swaps, hook-owned liquidity, custom curves, dynamic fees, MEV protection, limit orders, or oracle hooks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[744,745,746],{"name":600,"slug":601,"type":15},{"name":603,"slug":604,"type":15},{"name":606,"slug":607,"type":15},"2026-07-17T06:04:19.17669",21]