[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-roo-code-review-and-fix":3,"mdc--cu7ry5-key":34,"related-repo-roo-code-review-and-fix":1108,"related-org-roo-code-review-and-fix":1212},{"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":29,"sourceUrl":32,"mdContent":33},"review-and-fix","perform inline code reviews and fixes","Inline code review-and-fix workflow. Use when you need to review current changes and then fix identified issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"roo-code","Roo Code","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Froo-code.png","RooCodeInc",[13,17,20],{"name":14,"slug":15,"type":16},"Code Review","code-review","tag",{"name":18,"slug":19,"type":16},"Engineering","engineering",{"name":21,"slug":22,"type":16},"Debugging","debugging",5,"https:\u002F\u002Fgithub.com\u002FRooCodeInc\u002FRoomote","2026-07-16T06:00:31.395293",null,0,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Your own cloud coding agent. Everything you want from an AI engineering teammate, without building from scratch or paying for a black box.","https:\u002F\u002Fgithub.com\u002FRooCodeInc\u002FRoomote\u002Ftree\u002FHEAD\u002Fpackages\u002Fcloud-agents\u002Fsrc\u002Fserver\u002Fworkflows\u002Fskills\u002Fstandard\u002Freview-and-fix","---\nname: review-and-fix\ndescription: Inline code review-and-fix workflow. Use when you need to review current changes and then fix identified issues.\n---\n\n\u003Crole>\nYou are a code reviewer performing an inline review of all changes in the current workspace. Your goal is to identify noteworthy problems or issues in the code and present them clearly.\n\u003C\u002Frole>\n\n\u003Cworkflow>\n\u003Cstep number=\"1\">\n\u003Cname>Identify changed files\u003C\u002Fname>\n\u003Cinstructions>\nDetermine which files have been changed by comparing against the base branch.\n\nRun:\n\n```bash\ngit diff --name-only $(git merge-base HEAD origin\u002FHEAD 2>\u002Fdev\u002Fnull || echo \"HEAD~1\") HEAD 2>\u002Fdev\u002Fnull || git diff --name-only HEAD~1 HEAD 2>\u002Fdev\u002Fnull || git status --porcelain | awk '{print $2}'\n```\n\nIf no changes are found, inform the user there is nothing to review and conclude with a no-op result.\n\u003C\u002Finstructions>\n\u003C\u002Fstep>\n\n\u003Cstep number=\"2\">\n\u003Cname>Read and understand the changes\u003C\u002Fname>\n\u003Cinstructions>\nUse the `read_file` tool to read each changed file in full. Also read related files when necessary to understand context (e.g. types, interfaces, callers of changed functions).\n\nBuild a thorough understanding of:\n\n- What was changed and why (infer intent from the diff and surrounding code)\n- How the changes interact with the rest of the codebase\n- Whether the changes are complete and consistent\n\nAlso get the full diff for reference:\n\n```bash\ngit diff $(git merge-base HEAD origin\u002FHEAD 2>\u002Fdev\u002Fnull || echo \"HEAD~1\") HEAD\n```\n\n\u003C\u002Finstructions>\n\u003C\u002Fstep>\n\n\u003Cstep number=\"3\">\n\u003Cname>Review the code\u003C\u002Fname>\n\u003Cinstructions>\nCarefully review the changes using these guidelines:\n\n1. **Bug Determination Criteria - Flag issues that:**\n\n- Meaningfully impact accuracy, performance, security, or maintainability\n- Are discrete and actionable (not general codebase issues)\n- Were introduced in these changes (not pre-existing bugs)\n- Are provably broken (not speculation about potential issues)\n- The author would likely fix if made aware\n- Can be traced to specific affected code parts\n\n2. **Contract Consistency:**\n\n- Verify all referenced properties exist in their types\u002Finterfaces\u002Fclasses\n- Check for invalid, missing, or renamed properties\n- Confirm changes don't break inheritance, composition, or overrides\n- Look for contract violations across related entities\n\n3. **Data Model Validation:**\n\n- Check queries filter soft-deleted records appropriately\n- Verify active\u002Fdeactivation flags are checked\n- Ensure database constraints aren't violated\n- Confirm field types match schema definitions\n\n4. **Reference and Usage Review:**\n\n- Trace references to changed functions, methods, or classes\n- Ensure usages remain compatible with changes\n- Watch for subtle breaking changes\n\n5. **Security review:**\n\n- Check for exposed sensitive data\n- Verify input validation\n- Look for injection vulnerabilities\n\n6. **Code quality checks:**\n\n- Identify code smells (long methods, complex logic, tight coupling)\n- Find duplicated code that should be refactored\n- Look for incomplete implementations or TODO comments\n\n7. **Performance considerations:**\n\n- Look for inefficient algorithms\n- Identify potential memory leaks\n\n8. **Concurrency and atomicity issues:**\n\n- Check for race conditions in shared state access\n- Verify atomic operations where required\n- Look for missing transaction boundaries\n\n**Review Principles:**\n\n- **TRUST THE TYPE SYSTEM**: Avoid reporting type errors that the compiler would catch\n- One finding per distinct issue\n- Focus on issues the author would want to fix\n- Avoid trivial style nits unless they obscure meaning\n- Verify findings against the actual codebase context\n  \u003C\u002Finstructions>\n  \u003C\u002Fstep>\n\n\u003Cstep number=\"4\">\n\u003Cname>Present findings\u003C\u002Fname>\n\u003Cinstructions>\nPresent your findings in a markdown table. Each row should be a single issue.\n\nUse this exact format:\n\n| #   | Severity  | File               | Line(s) | Issue                                   |\n| --- | --------- | ------------------ | ------- | --------------------------------------- |\n| 1   | 🔴 High   | `path\u002Fto\u002Ffile.ts`  | 42-45   | Brief description of the bug or problem |\n| 2   | 🟡 Medium | `path\u002Fto\u002Fother.ts` | 18      | Brief description                       |\n| 3   | 🟢 Low    | `path\u002Fto\u002Ffile.ts`  | 100     | Brief description                       |\n\n**Severity levels:**\n\n- 🔴 **High**: Bugs, security issues, data loss risks, broken functionality\n- 🟡 **Medium**: Logic issues, missing edge cases, performance problems\n- 🟢 **Low**: Code quality, maintainability, minor improvements\n\nKeep descriptions concise (1-2 sentences max). The table should give a quick overview; if needed, add a brief explanation below the table for complex issues only.\n\nIf no issues are found, say so clearly and briefly note what you reviewed.\n\nAfter presenting the table, proceed to the next step to fix all identified issues.\n\u003C\u002Finstructions>\n\u003C\u002Fstep>\n\n\u003Cstep number=\"5\">\n\u003Cname>Fix all identified issues\u003C\u002Fname>\n\u003Cinstructions>\nNow fix every issue from the findings table.\n\nFor each issue:\n\n1. Read the relevant file (if not already in context)\n2. Make the fix using the appropriate editing tool\n3. Verify the fix doesn't introduce new issues\n\nWork through issues in order of severity (High first, then Medium, then Low).\n\nAfter fixing all issues, present an updated summary table:\n\n| #   | Severity  | File               | Line(s) | Issue             | Status                |\n| --- | --------- | ------------------ | ------- | ----------------- | --------------------- |\n| 1   | 🔴 High   | `path\u002Fto\u002Ffile.ts`  | 42-45   | Brief description | ✅ Fixed              |\n| 2   | 🟡 Medium | `path\u002Fto\u002Fother.ts` | 18      | Brief description | ✅ Fixed              |\n| 3   | 🟢 Low    | `path\u002Fto\u002Ffile.ts`  | 100     | Brief description | ⚠️ Not fixed - reason |\n\nIf any issue could not be fixed, explain why briefly and provide clear next steps for the user to address it manually (e.g. \"Requires a design decision about X\" or \"Needs changes in Y which is outside the current scope\").\n\u003C\u002Finstructions>\n\u003C\u002Fstep>\n\u003C\u002Fworkflow>\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,47,1102],{"type":40,"tag":41,"props":42,"children":43},"element","role",{},[44],{"type":45,"value":46},"text","\nYou are a code reviewer performing an inline review of all changes in the current workspace. Your goal is to identify noteworthy problems or issues in the code and present them clearly.\n",{"type":40,"tag":48,"props":49,"children":50},"workflow",{},[51],{"type":40,"tag":52,"props":53,"children":55},"step",{"number":54},"1",[56,62],{"type":40,"tag":57,"props":58,"children":59},"name",{},[60],{"type":45,"value":61},"Identify changed files",{"type":40,"tag":63,"props":64,"children":65},"instructions",{},[66,68,74,264,269,388],{"type":45,"value":67},"\nDetermine which files have been changed by comparing against the base branch.\n",{"type":40,"tag":69,"props":70,"children":71},"p",{},[72],{"type":45,"value":73},"Run:",{"type":40,"tag":75,"props":76,"children":81},"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git diff --name-only $(git merge-base HEAD origin\u002FHEAD 2>\u002Fdev\u002Fnull || echo \"HEAD~1\") HEAD 2>\u002Fdev\u002Fnull || git diff --name-only HEAD~1 HEAD 2>\u002Fdev\u002Fnull || git status --porcelain | awk '{print $2}'\n","bash","",[82],{"type":40,"tag":83,"props":84,"children":85},"code",{"__ignoreMap":80},[86],{"type":40,"tag":87,"props":88,"children":91},"span",{"class":89,"line":90},"line",1,[92,98,104,109,115,119,124,129,134,139,144,149,155,160,165,170,175,179,183,187,191,196,200,204,209,213,217,221,225,229,234,239,244,249,254,259],{"type":40,"tag":87,"props":93,"children":95},{"style":94},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[96],{"type":45,"value":97},"git",{"type":40,"tag":87,"props":99,"children":101},{"style":100},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[102],{"type":45,"value":103}," diff",{"type":40,"tag":87,"props":105,"children":106},{"style":100},[107],{"type":45,"value":108}," --name-only",{"type":40,"tag":87,"props":110,"children":112},{"style":111},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[113],{"type":45,"value":114}," $(",{"type":40,"tag":87,"props":116,"children":117},{"style":94},[118],{"type":45,"value":97},{"type":40,"tag":87,"props":120,"children":121},{"style":100},[122],{"type":45,"value":123}," merge-base",{"type":40,"tag":87,"props":125,"children":126},{"style":100},[127],{"type":45,"value":128}," HEAD",{"type":40,"tag":87,"props":130,"children":131},{"style":100},[132],{"type":45,"value":133}," origin\u002FHEAD",{"type":40,"tag":87,"props":135,"children":136},{"style":111},[137],{"type":45,"value":138}," 2>",{"type":40,"tag":87,"props":140,"children":141},{"style":100},[142],{"type":45,"value":143},"\u002Fdev\u002Fnull",{"type":40,"tag":87,"props":145,"children":146},{"style":111},[147],{"type":45,"value":148}," ||",{"type":40,"tag":87,"props":150,"children":152},{"style":151},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[153],{"type":45,"value":154}," echo",{"type":40,"tag":87,"props":156,"children":157},{"style":111},[158],{"type":45,"value":159}," \"",{"type":40,"tag":87,"props":161,"children":162},{"style":100},[163],{"type":45,"value":164},"HEAD~1",{"type":40,"tag":87,"props":166,"children":167},{"style":111},[168],{"type":45,"value":169},"\"",{"type":40,"tag":87,"props":171,"children":172},{"style":111},[173],{"type":45,"value":174},")",{"type":40,"tag":87,"props":176,"children":177},{"style":100},[178],{"type":45,"value":128},{"type":40,"tag":87,"props":180,"children":181},{"style":111},[182],{"type":45,"value":138},{"type":40,"tag":87,"props":184,"children":185},{"style":100},[186],{"type":45,"value":143},{"type":40,"tag":87,"props":188,"children":189},{"style":111},[190],{"type":45,"value":148},{"type":40,"tag":87,"props":192,"children":193},{"style":94},[194],{"type":45,"value":195}," git",{"type":40,"tag":87,"props":197,"children":198},{"style":100},[199],{"type":45,"value":103},{"type":40,"tag":87,"props":201,"children":202},{"style":100},[203],{"type":45,"value":108},{"type":40,"tag":87,"props":205,"children":206},{"style":100},[207],{"type":45,"value":208}," HEAD~1",{"type":40,"tag":87,"props":210,"children":211},{"style":100},[212],{"type":45,"value":128},{"type":40,"tag":87,"props":214,"children":215},{"style":111},[216],{"type":45,"value":138},{"type":40,"tag":87,"props":218,"children":219},{"style":100},[220],{"type":45,"value":143},{"type":40,"tag":87,"props":222,"children":223},{"style":111},[224],{"type":45,"value":148},{"type":40,"tag":87,"props":226,"children":227},{"style":94},[228],{"type":45,"value":195},{"type":40,"tag":87,"props":230,"children":231},{"style":100},[232],{"type":45,"value":233}," status",{"type":40,"tag":87,"props":235,"children":236},{"style":100},[237],{"type":45,"value":238}," --porcelain",{"type":40,"tag":87,"props":240,"children":241},{"style":111},[242],{"type":45,"value":243}," |",{"type":40,"tag":87,"props":245,"children":246},{"style":94},[247],{"type":45,"value":248}," awk",{"type":40,"tag":87,"props":250,"children":251},{"style":111},[252],{"type":45,"value":253}," '",{"type":40,"tag":87,"props":255,"children":256},{"style":100},[257],{"type":45,"value":258},"{print $2}",{"type":40,"tag":87,"props":260,"children":261},{"style":111},[262],{"type":45,"value":263},"'\n",{"type":40,"tag":69,"props":265,"children":266},{},[267],{"type":45,"value":268},"If no changes are found, inform the user there is nothing to review and conclude with a no-op result.\n\n",{"type":40,"tag":52,"props":270,"children":272},{"number":271},"2",[273,278],{"type":40,"tag":57,"props":274,"children":275},{},[276],{"type":45,"value":277},"Read and understand the changes",{"type":40,"tag":63,"props":279,"children":280},{},[281,283,288,308,313],{"type":45,"value":282},"\nUse the `read_file` tool to read each changed file in full. Also read related files when necessary to understand context (e.g. types, interfaces, callers of changed functions).\n",{"type":40,"tag":69,"props":284,"children":285},{},[286],{"type":45,"value":287},"Build a thorough understanding of:",{"type":40,"tag":289,"props":290,"children":291},"ul",{},[292,298,303],{"type":40,"tag":293,"props":294,"children":295},"li",{},[296],{"type":45,"value":297},"What was changed and why (infer intent from the diff and surrounding code)",{"type":40,"tag":293,"props":299,"children":300},{},[301],{"type":45,"value":302},"How the changes interact with the rest of the codebase",{"type":40,"tag":293,"props":304,"children":305},{},[306],{"type":45,"value":307},"Whether the changes are complete and consistent",{"type":40,"tag":69,"props":309,"children":310},{},[311],{"type":45,"value":312},"Also get the full diff for reference:",{"type":40,"tag":75,"props":314,"children":316},{"className":77,"code":315,"language":79,"meta":80,"style":80},"git diff $(git merge-base HEAD origin\u002FHEAD 2>\u002Fdev\u002Fnull || echo \"HEAD~1\") HEAD\n",[317],{"type":40,"tag":83,"props":318,"children":319},{"__ignoreMap":80},[320],{"type":40,"tag":87,"props":321,"children":322},{"class":89,"line":90},[323,327,331,335,339,343,347,351,355,359,363,367,371,375,379,383],{"type":40,"tag":87,"props":324,"children":325},{"style":94},[326],{"type":45,"value":97},{"type":40,"tag":87,"props":328,"children":329},{"style":100},[330],{"type":45,"value":103},{"type":40,"tag":87,"props":332,"children":333},{"style":111},[334],{"type":45,"value":114},{"type":40,"tag":87,"props":336,"children":337},{"style":94},[338],{"type":45,"value":97},{"type":40,"tag":87,"props":340,"children":341},{"style":100},[342],{"type":45,"value":123},{"type":40,"tag":87,"props":344,"children":345},{"style":100},[346],{"type":45,"value":128},{"type":40,"tag":87,"props":348,"children":349},{"style":100},[350],{"type":45,"value":133},{"type":40,"tag":87,"props":352,"children":353},{"style":111},[354],{"type":45,"value":138},{"type":40,"tag":87,"props":356,"children":357},{"style":100},[358],{"type":45,"value":143},{"type":40,"tag":87,"props":360,"children":361},{"style":111},[362],{"type":45,"value":148},{"type":40,"tag":87,"props":364,"children":365},{"style":151},[366],{"type":45,"value":154},{"type":40,"tag":87,"props":368,"children":369},{"style":111},[370],{"type":45,"value":159},{"type":40,"tag":87,"props":372,"children":373},{"style":100},[374],{"type":45,"value":164},{"type":40,"tag":87,"props":376,"children":377},{"style":111},[378],{"type":45,"value":169},{"type":40,"tag":87,"props":380,"children":381},{"style":111},[382],{"type":45,"value":174},{"type":40,"tag":87,"props":384,"children":385},{"style":100},[386],{"type":45,"value":387}," HEAD\n",{"type":40,"tag":52,"props":389,"children":391},{"number":390},"3",[392,397],{"type":40,"tag":57,"props":393,"children":394},{},[395],{"type":45,"value":396},"Review the code",{"type":40,"tag":63,"props":398,"children":399},{},[400,402,415,448,460,483,495,518,530,548,559,577,589,607,619,632,644,662,670,703],{"type":45,"value":401},"\nCarefully review the changes using these guidelines:\n",{"type":40,"tag":403,"props":404,"children":405},"ol",{},[406],{"type":40,"tag":293,"props":407,"children":408},{},[409],{"type":40,"tag":410,"props":411,"children":412},"strong",{},[413],{"type":45,"value":414},"Bug Determination Criteria - Flag issues that:",{"type":40,"tag":289,"props":416,"children":417},{},[418,423,428,433,438,443],{"type":40,"tag":293,"props":419,"children":420},{},[421],{"type":45,"value":422},"Meaningfully impact accuracy, performance, security, or maintainability",{"type":40,"tag":293,"props":424,"children":425},{},[426],{"type":45,"value":427},"Are discrete and actionable (not general codebase issues)",{"type":40,"tag":293,"props":429,"children":430},{},[431],{"type":45,"value":432},"Were introduced in these changes (not pre-existing bugs)",{"type":40,"tag":293,"props":434,"children":435},{},[436],{"type":45,"value":437},"Are provably broken (not speculation about potential issues)",{"type":40,"tag":293,"props":439,"children":440},{},[441],{"type":45,"value":442},"The author would likely fix if made aware",{"type":40,"tag":293,"props":444,"children":445},{},[446],{"type":45,"value":447},"Can be traced to specific affected code parts",{"type":40,"tag":403,"props":449,"children":451},{"start":450},2,[452],{"type":40,"tag":293,"props":453,"children":454},{},[455],{"type":40,"tag":410,"props":456,"children":457},{},[458],{"type":45,"value":459},"Contract Consistency:",{"type":40,"tag":289,"props":461,"children":462},{},[463,468,473,478],{"type":40,"tag":293,"props":464,"children":465},{},[466],{"type":45,"value":467},"Verify all referenced properties exist in their types\u002Finterfaces\u002Fclasses",{"type":40,"tag":293,"props":469,"children":470},{},[471],{"type":45,"value":472},"Check for invalid, missing, or renamed properties",{"type":40,"tag":293,"props":474,"children":475},{},[476],{"type":45,"value":477},"Confirm changes don't break inheritance, composition, or overrides",{"type":40,"tag":293,"props":479,"children":480},{},[481],{"type":45,"value":482},"Look for contract violations across related entities",{"type":40,"tag":403,"props":484,"children":486},{"start":485},3,[487],{"type":40,"tag":293,"props":488,"children":489},{},[490],{"type":40,"tag":410,"props":491,"children":492},{},[493],{"type":45,"value":494},"Data Model Validation:",{"type":40,"tag":289,"props":496,"children":497},{},[498,503,508,513],{"type":40,"tag":293,"props":499,"children":500},{},[501],{"type":45,"value":502},"Check queries filter soft-deleted records appropriately",{"type":40,"tag":293,"props":504,"children":505},{},[506],{"type":45,"value":507},"Verify active\u002Fdeactivation flags are checked",{"type":40,"tag":293,"props":509,"children":510},{},[511],{"type":45,"value":512},"Ensure database constraints aren't violated",{"type":40,"tag":293,"props":514,"children":515},{},[516],{"type":45,"value":517},"Confirm field types match schema definitions",{"type":40,"tag":403,"props":519,"children":521},{"start":520},4,[522],{"type":40,"tag":293,"props":523,"children":524},{},[525],{"type":40,"tag":410,"props":526,"children":527},{},[528],{"type":45,"value":529},"Reference and Usage Review:",{"type":40,"tag":289,"props":531,"children":532},{},[533,538,543],{"type":40,"tag":293,"props":534,"children":535},{},[536],{"type":45,"value":537},"Trace references to changed functions, methods, or classes",{"type":40,"tag":293,"props":539,"children":540},{},[541],{"type":45,"value":542},"Ensure usages remain compatible with changes",{"type":40,"tag":293,"props":544,"children":545},{},[546],{"type":45,"value":547},"Watch for subtle breaking changes",{"type":40,"tag":403,"props":549,"children":550},{"start":23},[551],{"type":40,"tag":293,"props":552,"children":553},{},[554],{"type":40,"tag":410,"props":555,"children":556},{},[557],{"type":45,"value":558},"Security review:",{"type":40,"tag":289,"props":560,"children":561},{},[562,567,572],{"type":40,"tag":293,"props":563,"children":564},{},[565],{"type":45,"value":566},"Check for exposed sensitive data",{"type":40,"tag":293,"props":568,"children":569},{},[570],{"type":45,"value":571},"Verify input validation",{"type":40,"tag":293,"props":573,"children":574},{},[575],{"type":45,"value":576},"Look for injection vulnerabilities",{"type":40,"tag":403,"props":578,"children":580},{"start":579},6,[581],{"type":40,"tag":293,"props":582,"children":583},{},[584],{"type":40,"tag":410,"props":585,"children":586},{},[587],{"type":45,"value":588},"Code quality checks:",{"type":40,"tag":289,"props":590,"children":591},{},[592,597,602],{"type":40,"tag":293,"props":593,"children":594},{},[595],{"type":45,"value":596},"Identify code smells (long methods, complex logic, tight coupling)",{"type":40,"tag":293,"props":598,"children":599},{},[600],{"type":45,"value":601},"Find duplicated code that should be refactored",{"type":40,"tag":293,"props":603,"children":604},{},[605],{"type":45,"value":606},"Look for incomplete implementations or TODO comments",{"type":40,"tag":403,"props":608,"children":610},{"start":609},7,[611],{"type":40,"tag":293,"props":612,"children":613},{},[614],{"type":40,"tag":410,"props":615,"children":616},{},[617],{"type":45,"value":618},"Performance considerations:",{"type":40,"tag":289,"props":620,"children":621},{},[622,627],{"type":40,"tag":293,"props":623,"children":624},{},[625],{"type":45,"value":626},"Look for inefficient algorithms",{"type":40,"tag":293,"props":628,"children":629},{},[630],{"type":45,"value":631},"Identify potential memory leaks",{"type":40,"tag":403,"props":633,"children":635},{"start":634},8,[636],{"type":40,"tag":293,"props":637,"children":638},{},[639],{"type":40,"tag":410,"props":640,"children":641},{},[642],{"type":45,"value":643},"Concurrency and atomicity issues:",{"type":40,"tag":289,"props":645,"children":646},{},[647,652,657],{"type":40,"tag":293,"props":648,"children":649},{},[650],{"type":45,"value":651},"Check for race conditions in shared state access",{"type":40,"tag":293,"props":653,"children":654},{},[655],{"type":45,"value":656},"Verify atomic operations where required",{"type":40,"tag":293,"props":658,"children":659},{},[660],{"type":45,"value":661},"Look for missing transaction boundaries",{"type":40,"tag":69,"props":663,"children":664},{},[665],{"type":40,"tag":410,"props":666,"children":667},{},[668],{"type":45,"value":669},"Review Principles:",{"type":40,"tag":289,"props":671,"children":672},{},[673,683,688,693,698],{"type":40,"tag":293,"props":674,"children":675},{},[676,681],{"type":40,"tag":410,"props":677,"children":678},{},[679],{"type":45,"value":680},"TRUST THE TYPE SYSTEM",{"type":45,"value":682},": Avoid reporting type errors that the compiler would catch",{"type":40,"tag":293,"props":684,"children":685},{},[686],{"type":45,"value":687},"One finding per distinct issue",{"type":40,"tag":293,"props":689,"children":690},{},[691],{"type":45,"value":692},"Focus on issues the author would want to fix",{"type":40,"tag":293,"props":694,"children":695},{},[696],{"type":45,"value":697},"Avoid trivial style nits unless they obscure meaning",{"type":40,"tag":293,"props":699,"children":700},{},[701],{"type":45,"value":702},"Verify findings against the actual codebase context\n\n",{"type":40,"tag":52,"props":704,"children":706},{"number":705},"4",[707,712],{"type":40,"tag":57,"props":708,"children":709},{},[710],{"type":45,"value":711},"Present findings",{"type":40,"tag":63,"props":713,"children":714},{},[715,717,722,856,864,903,908,913,918],{"type":45,"value":716},"\nPresent your findings in a markdown table. Each row should be a single issue.\n",{"type":40,"tag":69,"props":718,"children":719},{},[720],{"type":45,"value":721},"Use this exact format:",{"type":40,"tag":723,"props":724,"children":725},"table",{},[726,760],{"type":40,"tag":727,"props":728,"children":729},"thead",{},[730],{"type":40,"tag":731,"props":732,"children":733},"tr",{},[734,740,745,750,755],{"type":40,"tag":735,"props":736,"children":737},"th",{},[738],{"type":45,"value":739},"#",{"type":40,"tag":735,"props":741,"children":742},{},[743],{"type":45,"value":744},"Severity",{"type":40,"tag":735,"props":746,"children":747},{},[748],{"type":45,"value":749},"File",{"type":40,"tag":735,"props":751,"children":752},{},[753],{"type":45,"value":754},"Line(s)",{"type":40,"tag":735,"props":756,"children":757},{},[758],{"type":45,"value":759},"Issue",{"type":40,"tag":761,"props":762,"children":763},"tbody",{},[764,796,827],{"type":40,"tag":731,"props":765,"children":766},{},[767,772,777,786,791],{"type":40,"tag":768,"props":769,"children":770},"td",{},[771],{"type":45,"value":54},{"type":40,"tag":768,"props":773,"children":774},{},[775],{"type":45,"value":776},"🔴 High",{"type":40,"tag":768,"props":778,"children":779},{},[780],{"type":40,"tag":83,"props":781,"children":783},{"className":782},[],[784],{"type":45,"value":785},"path\u002Fto\u002Ffile.ts",{"type":40,"tag":768,"props":787,"children":788},{},[789],{"type":45,"value":790},"42-45",{"type":40,"tag":768,"props":792,"children":793},{},[794],{"type":45,"value":795},"Brief description of the bug or problem",{"type":40,"tag":731,"props":797,"children":798},{},[799,803,808,817,822],{"type":40,"tag":768,"props":800,"children":801},{},[802],{"type":45,"value":271},{"type":40,"tag":768,"props":804,"children":805},{},[806],{"type":45,"value":807},"🟡 Medium",{"type":40,"tag":768,"props":809,"children":810},{},[811],{"type":40,"tag":83,"props":812,"children":814},{"className":813},[],[815],{"type":45,"value":816},"path\u002Fto\u002Fother.ts",{"type":40,"tag":768,"props":818,"children":819},{},[820],{"type":45,"value":821},"18",{"type":40,"tag":768,"props":823,"children":824},{},[825],{"type":45,"value":826},"Brief description",{"type":40,"tag":731,"props":828,"children":829},{},[830,834,839,847,852],{"type":40,"tag":768,"props":831,"children":832},{},[833],{"type":45,"value":390},{"type":40,"tag":768,"props":835,"children":836},{},[837],{"type":45,"value":838},"🟢 Low",{"type":40,"tag":768,"props":840,"children":841},{},[842],{"type":40,"tag":83,"props":843,"children":845},{"className":844},[],[846],{"type":45,"value":785},{"type":40,"tag":768,"props":848,"children":849},{},[850],{"type":45,"value":851},"100",{"type":40,"tag":768,"props":853,"children":854},{},[855],{"type":45,"value":826},{"type":40,"tag":69,"props":857,"children":858},{},[859],{"type":40,"tag":410,"props":860,"children":861},{},[862],{"type":45,"value":863},"Severity levels:",{"type":40,"tag":289,"props":865,"children":866},{},[867,879,891],{"type":40,"tag":293,"props":868,"children":869},{},[870,872,877],{"type":45,"value":871},"🔴 ",{"type":40,"tag":410,"props":873,"children":874},{},[875],{"type":45,"value":876},"High",{"type":45,"value":878},": Bugs, security issues, data loss risks, broken functionality",{"type":40,"tag":293,"props":880,"children":881},{},[882,884,889],{"type":45,"value":883},"🟡 ",{"type":40,"tag":410,"props":885,"children":886},{},[887],{"type":45,"value":888},"Medium",{"type":45,"value":890},": Logic issues, missing edge cases, performance problems",{"type":40,"tag":293,"props":892,"children":893},{},[894,896,901],{"type":45,"value":895},"🟢 ",{"type":40,"tag":410,"props":897,"children":898},{},[899],{"type":45,"value":900},"Low",{"type":45,"value":902},": Code quality, maintainability, minor improvements",{"type":40,"tag":69,"props":904,"children":905},{},[906],{"type":45,"value":907},"Keep descriptions concise (1-2 sentences max). The table should give a quick overview; if needed, add a brief explanation below the table for complex issues only.",{"type":40,"tag":69,"props":909,"children":910},{},[911],{"type":45,"value":912},"If no issues are found, say so clearly and briefly note what you reviewed.",{"type":40,"tag":69,"props":914,"children":915},{},[916],{"type":45,"value":917},"After presenting the table, proceed to the next step to fix all identified issues.\n\n",{"type":40,"tag":52,"props":919,"children":921},{"number":920},"5",[922,927],{"type":40,"tag":57,"props":923,"children":924},{},[925],{"type":45,"value":926},"Fix all identified issues",{"type":40,"tag":63,"props":928,"children":929},{},[930,932,937,955,960,965,1097],{"type":45,"value":931},"\nNow fix every issue from the findings table.\n",{"type":40,"tag":69,"props":933,"children":934},{},[935],{"type":45,"value":936},"For each issue:",{"type":40,"tag":403,"props":938,"children":939},{},[940,945,950],{"type":40,"tag":293,"props":941,"children":942},{},[943],{"type":45,"value":944},"Read the relevant file (if not already in context)",{"type":40,"tag":293,"props":946,"children":947},{},[948],{"type":45,"value":949},"Make the fix using the appropriate editing tool",{"type":40,"tag":293,"props":951,"children":952},{},[953],{"type":45,"value":954},"Verify the fix doesn't introduce new issues",{"type":40,"tag":69,"props":956,"children":957},{},[958],{"type":45,"value":959},"Work through issues in order of severity (High first, then Medium, then Low).",{"type":40,"tag":69,"props":961,"children":962},{},[963],{"type":45,"value":964},"After fixing all issues, present an updated summary table:",{"type":40,"tag":723,"props":966,"children":967},{},[968,999],{"type":40,"tag":727,"props":969,"children":970},{},[971],{"type":40,"tag":731,"props":972,"children":973},{},[974,978,982,986,990,994],{"type":40,"tag":735,"props":975,"children":976},{},[977],{"type":45,"value":739},{"type":40,"tag":735,"props":979,"children":980},{},[981],{"type":45,"value":744},{"type":40,"tag":735,"props":983,"children":984},{},[985],{"type":45,"value":749},{"type":40,"tag":735,"props":987,"children":988},{},[989],{"type":45,"value":754},{"type":40,"tag":735,"props":991,"children":992},{},[993],{"type":45,"value":759},{"type":40,"tag":735,"props":995,"children":996},{},[997],{"type":45,"value":998},"Status",{"type":40,"tag":761,"props":1000,"children":1001},{},[1002,1034,1065],{"type":40,"tag":731,"props":1003,"children":1004},{},[1005,1009,1013,1021,1025,1029],{"type":40,"tag":768,"props":1006,"children":1007},{},[1008],{"type":45,"value":54},{"type":40,"tag":768,"props":1010,"children":1011},{},[1012],{"type":45,"value":776},{"type":40,"tag":768,"props":1014,"children":1015},{},[1016],{"type":40,"tag":83,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":45,"value":785},{"type":40,"tag":768,"props":1022,"children":1023},{},[1024],{"type":45,"value":790},{"type":40,"tag":768,"props":1026,"children":1027},{},[1028],{"type":45,"value":826},{"type":40,"tag":768,"props":1030,"children":1031},{},[1032],{"type":45,"value":1033},"✅ Fixed",{"type":40,"tag":731,"props":1035,"children":1036},{},[1037,1041,1045,1053,1057,1061],{"type":40,"tag":768,"props":1038,"children":1039},{},[1040],{"type":45,"value":271},{"type":40,"tag":768,"props":1042,"children":1043},{},[1044],{"type":45,"value":807},{"type":40,"tag":768,"props":1046,"children":1047},{},[1048],{"type":40,"tag":83,"props":1049,"children":1051},{"className":1050},[],[1052],{"type":45,"value":816},{"type":40,"tag":768,"props":1054,"children":1055},{},[1056],{"type":45,"value":821},{"type":40,"tag":768,"props":1058,"children":1059},{},[1060],{"type":45,"value":826},{"type":40,"tag":768,"props":1062,"children":1063},{},[1064],{"type":45,"value":1033},{"type":40,"tag":731,"props":1066,"children":1067},{},[1068,1072,1076,1084,1088,1092],{"type":40,"tag":768,"props":1069,"children":1070},{},[1071],{"type":45,"value":390},{"type":40,"tag":768,"props":1073,"children":1074},{},[1075],{"type":45,"value":838},{"type":40,"tag":768,"props":1077,"children":1078},{},[1079],{"type":40,"tag":83,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":45,"value":785},{"type":40,"tag":768,"props":1085,"children":1086},{},[1087],{"type":45,"value":851},{"type":40,"tag":768,"props":1089,"children":1090},{},[1091],{"type":45,"value":826},{"type":40,"tag":768,"props":1093,"children":1094},{},[1095],{"type":45,"value":1096},"⚠️ Not fixed - reason",{"type":40,"tag":69,"props":1098,"children":1099},{},[1100],{"type":45,"value":1101},"If any issue could not be fixed, explain why briefly and provide clear next steps for the user to address it manually (e.g. \"Requires a design decision about X\" or \"Needs changes in Y which is outside the current scope\").\n\n\n",{"type":40,"tag":1103,"props":1104,"children":1105},"style",{},[1106],{"type":45,"value":1107},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1109,"total":1211},[1110,1124,1140,1154,1168,1182,1201],{"slug":1111,"name":1111,"fn":1112,"description":1113,"org":1114,"tags":1115,"stars":23,"repoUrl":24,"updatedAt":1123},"address-pr-feedback","address unresolved GitHub PR feedback","Focused GitHub PR-feedback workflow for addressing unresolved review threads on the current pull request.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1116,1117,1120],{"name":14,"slug":15,"type":16},{"name":1118,"slug":1119,"type":16},"GitHub","github",{"name":1121,"slug":1122,"type":16},"Pull Requests","pull-requests","2026-07-19T05:38:26.334008",{"slug":1125,"name":1125,"fn":1126,"description":1127,"org":1128,"tags":1129,"stars":23,"repoUrl":24,"updatedAt":1139},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1130,1133,1136],{"name":1131,"slug":1132,"type":16},"Browser Automation","browser-automation",{"name":1134,"slug":1135,"type":16},"CLI","cli",{"name":1137,"slug":1138,"type":16},"Testing","testing","2026-07-16T06:02:26.045337",{"slug":1141,"name":1141,"fn":1142,"description":1143,"org":1144,"tags":1145,"stars":23,"repoUrl":24,"updatedAt":1153},"capture-visual-proof","capture visual proof of browser tasks","Visual-proof orchestrator that decides whether browser proof applies, classifies the proof package, and delegates capture to the hidden proof-runner subagent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1146,1149,1150],{"name":1147,"slug":1148,"type":16},"Automation","automation",{"name":1131,"slug":1132,"type":16},{"name":1151,"slug":1152,"type":16},"Screenshots","screenshots","2026-08-01T05:44:47.369293",{"slug":1155,"name":1155,"fn":1156,"description":1157,"org":1158,"tags":1159,"stars":23,"repoUrl":24,"updatedAt":1167},"ci-failure-triage","triage failed CI workflows","Investigate the latest default-branch CI failure in an environment-backed workspace and, when it is real and fixable, fix and open a PR in the same task.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1160,1163,1164],{"name":1161,"slug":1162,"type":16},"CI\u002FCD","ci-cd",{"name":21,"slug":22,"type":16},{"name":1165,"slug":1166,"type":16},"GitHub Actions","github-actions","2026-07-23T05:40:41.726992",{"slug":1169,"name":1169,"fn":1170,"description":1171,"org":1172,"tags":1173,"stars":23,"repoUrl":24,"updatedAt":1181},"code-quality-auditor","audit code quality in merged pull requests","Automation skill: review recently merged pull requests for high-confidence code quality issues and submit `act` work items that auto-start follow-up execution tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1174,1177,1178],{"name":1175,"slug":1176,"type":16},"Code Analysis","code-analysis",{"name":14,"slug":15,"type":16},{"name":1179,"slug":1180,"type":16},"QA","qa","2026-07-26T05:47:47.339721",{"slug":1183,"name":1183,"fn":1184,"description":1185,"org":1186,"tags":1187,"stars":23,"repoUrl":24,"updatedAt":1200},"codeql-triage","triage and remediate CodeQL security alerts","Review current open CodeQL \u002F GitHub code-scanning alerts with GitHub data, keep scheduled runs read-only, and submit a small set of environment-backed `act` work items that auto-start remediation execution tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1188,1189,1192,1193,1194,1197],{"name":1175,"slug":1176,"type":16},{"name":1190,"slug":1191,"type":16},"CodeQL","codeql",{"name":21,"slug":22,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1195,"slug":1196,"type":16},"Security","security",{"name":1198,"slug":1199,"type":16},"Triage","triage","2026-07-29T05:39:37.784486",{"slug":1202,"name":1202,"fn":1203,"description":1204,"org":1205,"tags":1206,"stars":23,"repoUrl":24,"updatedAt":1210},"create-draft-pr","create draft pull requests","Draft pull-request creation workflow. Use when repositories have pending changes or unpushed commits and you want draft PRs created.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1207,1208,1209],{"name":1147,"slug":1148,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1121,"slug":1122,"type":16},"2026-07-16T06:00:31.733527",33,{"items":1213,"total":1211},[1214,1220,1226,1232,1238,1244,1253,1259,1268,1279,1290,1303],{"slug":1111,"name":1111,"fn":1112,"description":1113,"org":1215,"tags":1216,"stars":23,"repoUrl":24,"updatedAt":1123},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1217,1218,1219],{"name":14,"slug":15,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1121,"slug":1122,"type":16},{"slug":1125,"name":1125,"fn":1126,"description":1127,"org":1221,"tags":1222,"stars":23,"repoUrl":24,"updatedAt":1139},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1223,1224,1225],{"name":1131,"slug":1132,"type":16},{"name":1134,"slug":1135,"type":16},{"name":1137,"slug":1138,"type":16},{"slug":1141,"name":1141,"fn":1142,"description":1143,"org":1227,"tags":1228,"stars":23,"repoUrl":24,"updatedAt":1153},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1229,1230,1231],{"name":1147,"slug":1148,"type":16},{"name":1131,"slug":1132,"type":16},{"name":1151,"slug":1152,"type":16},{"slug":1155,"name":1155,"fn":1156,"description":1157,"org":1233,"tags":1234,"stars":23,"repoUrl":24,"updatedAt":1167},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1235,1236,1237],{"name":1161,"slug":1162,"type":16},{"name":21,"slug":22,"type":16},{"name":1165,"slug":1166,"type":16},{"slug":1169,"name":1169,"fn":1170,"description":1171,"org":1239,"tags":1240,"stars":23,"repoUrl":24,"updatedAt":1181},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1241,1242,1243],{"name":1175,"slug":1176,"type":16},{"name":14,"slug":15,"type":16},{"name":1179,"slug":1180,"type":16},{"slug":1183,"name":1183,"fn":1184,"description":1185,"org":1245,"tags":1246,"stars":23,"repoUrl":24,"updatedAt":1200},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1247,1248,1249,1250,1251,1252],{"name":1175,"slug":1176,"type":16},{"name":1190,"slug":1191,"type":16},{"name":21,"slug":22,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1195,"slug":1196,"type":16},{"name":1198,"slug":1199,"type":16},{"slug":1202,"name":1202,"fn":1203,"description":1204,"org":1254,"tags":1255,"stars":23,"repoUrl":24,"updatedAt":1210},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1256,1257,1258],{"name":1147,"slug":1148,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1121,"slug":1122,"type":16},{"slug":1260,"name":1260,"fn":1261,"description":1262,"org":1263,"tags":1264,"stars":23,"repoUrl":24,"updatedAt":1267},"create-pr","create pull requests for pending changes","Pull-request creation workflow. Use when repositories have pending changes or unpushed commits and you want ready-for-review PRs created.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1265,1266],{"name":1118,"slug":1119,"type":16},{"name":1121,"slug":1122,"type":16},"2026-07-16T06:03:03.397562",{"slug":1269,"name":1269,"fn":1270,"description":1271,"org":1272,"tags":1273,"stars":23,"repoUrl":24,"updatedAt":1278},"debug-reported-bug","reproduce and debug reported bugs","Reproduce-first bug diagnosis workflow. Use when a reported bug needs to be reproduced, reduced to a deterministic failing check, and traced through git history or `git bisect` so the exact cause is understood before any fix is attempted.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1274,1275,1277],{"name":21,"slug":22,"type":16},{"name":1276,"slug":97,"type":16},"Git",{"name":1137,"slug":1138,"type":16},"2026-07-16T06:03:07.255013",{"slug":1280,"name":1280,"fn":1281,"description":1282,"org":1283,"tags":1284,"stars":23,"repoUrl":24,"updatedAt":1289},"dependabot-triage","triage GitHub Dependabot alerts","Review current open Dependabot alerts with GitHub data, keep scheduled runs read-only, and submit a small set of environment-backed `act` work items that auto-start dependency-update execution tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1285,1286,1287,1288],{"name":1147,"slug":1148,"type":16},{"name":1118,"slug":1119,"type":16},{"name":1195,"slug":1196,"type":16},{"name":1198,"slug":1199,"type":16},"2026-07-29T05:39:38.757423",{"slug":1291,"name":1291,"fn":1292,"description":1293,"org":1294,"tags":1295,"stars":23,"repoUrl":24,"updatedAt":1302},"environment-setup","configure local development environments","Internal skill to configure environments. Never use unless the user explicitly initiates the skill. Focus on localhost-ready setup and validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1296,1299],{"name":1297,"slug":1298,"type":16},"Configuration","configuration",{"name":1300,"slug":1301,"type":16},"Local Development","local-development","2026-08-01T05:44:46.333988",{"slug":1304,"name":1304,"fn":1305,"description":1306,"org":1307,"tags":1308,"stars":23,"repoUrl":24,"updatedAt":1313},"explain-repo-code","explain repository code and architecture","Explanation-only repository workflow. Use when the user asks to understand behavior, architecture, or rationale from source context without modifying files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1309,1310],{"name":1175,"slug":1176,"type":16},{"name":1311,"slug":1312,"type":16},"Documentation","documentation","2026-07-16T06:00:34.090082"]