[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QPPPQ49KBWSWH3X9D9R17B":3,"skill-same:01M6QPPPQ49KBWSWH3X9D9R17B":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6QPPPQ49KBWSWH3X9D9R17B","unslop-reviewer",null,"Run a read-only, pass-ordered slop scan covering abstraction and locally fixable boundary findings; never edit files.","theCat69\u002Fla-briguade","theCat69","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F40163881?v=4","01M6QPEW8JP05VD4Q9E4TJDFB3","01M6QPEWCX5VB9ZKJ7E96BXEHQ",1,"MIT","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Funslop-reviewer\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"unslop","reviewer","unslop reviewer","run","boundary","sidekick","read","edit","never","only","files","scan","read-only","slop","2026-11-10 10:12:30",false,"---\nname: unslop-reviewer\ndescription: Run a read-only, pass-ordered slop scan covering abstraction and locally fixable boundary findings; never edit files.\nagents:\n  - sidekick-reviewer\n---\n\n# Unslop Reviewer\n\n**Purpose**: perform a read-only slop scan and emit a structured findings list.\n\n## Scanning Constraints\n\n- Preserve behavior as the primary invariant when deciding what to flag.\n- Prefer deletion candidates over additive changes.\n- Favor small, reversible fixes over broad rewrites.\n- Identify slop; do not design or apply architectural overhauls.\n\n## Slop Categories (Core Review Scope)\n\n1. **Dead code** — unreachable branches, unused exports\u002Fvariables\u002Ffunctions, stale\n   feature flags, commented-out blocks, and debug leftovers (`console.log`, `print`,\n   `debugger`, shipped TODOs).\n2. **Duplication** — copy-paste logic, near-identical functions differing only by\n   constants, repeated config blocks, and redundant helpers with equivalent behavior.\n3. **Needless abstraction** — pass-through wrappers with no logic, single-use layers,\n   speculative indirection, and premature generalization for single call sites.\n4. **Boundary violations** — hidden coupling, misplaced responsibilities across layers,\n   and logic leaking across architectural boundaries.\n5. **Naming** — generic identifiers that obscure the role of a value, operation, or type.\n6. **Error handling** — swallowed errors, ambiguous failure values, or unhelpful failure paths.\n7. **Weak test coverage** — touched behavior not locked by tests, weak assertions that\n   only verify \"no error thrown\", and untested edge paths.\n\nNaming and error handling are local clarity concerns reviewed alongside boundary violations in\nPass 3. Boundary findings must be locally fixable within the caller-provided scope; otherwise,\nomit them rather than proposing an architectural rewrite.\n\n## Pass Mapping\n\n- **Pass 1** → dead code\n- **Pass 2** → duplication + abstraction\n- **Pass 3** → naming + error handling + boundary violations\n- **Pass 4** → test coverage gaps\n\n## Findings Schema\n\nEach finding must include:\n\n| Field | Type | Values |\n|---|---|---|\n| `id` | string | Sequential: `F-1`, `F-2`, ... |\n| `file` | string | Relative file path |\n| `pass` | integer | `1` to `4` |\n| `category` | enum | `dead-code` \\| `duplication` \\| `abstraction` \\| `boundary` \\| `naming` \\| `error-handling` \\| `test` |\n| `size` | enum | `S` = line\u002Fsymbol, `M` = block\u002Ffunction, `L` = cross-file\u002Flocal structural |\n| `description` | string | What the slop is and where |\n| `fix` | string | Concrete action for the coder to apply |\n\n## Scope Rules\n\n- Default scope is changed files (from `git diff` \u002F caller-provided changed set).\n- Full-codebase scanning is allowed only when explicitly requested by caller override.\n- Never expand scope on your own.\n\n## Pass-4 Opt-In\n\nInclude pass-4 (`test`) findings only when explicitly requested (for example:\n\"include pass-4 findings\" or equivalent override).\n\n## Reduction Override\n\nWhen the caller explicitly requests reduction mode, prioritize findings that shrink code size.\n\n- Rank dead code, exact duplication, needless wrappers\u002Fhelpers, redundant guards\u002Flocals\u002Fimports, and useless comments ahead of naming-only issues.\n- Emit naming or error-handling findings only when they directly reduce code size or unblock a safer deletion\u002Fconsolidation.\n- Keep the same pass mapping; only the priority of findings changes.\n\n## Output Format\n\nEmit a **numbered list only**, sorted by pass then file path:\n\n```\n1. F-1 | src\u002Fauth.ts | pass:1 | dead-code | S | Unused `lodash` import at line 3 | Delete line 3\n2. F-2 | src\u002Fauth.ts | pass:3 | naming | S | Variable named `data` at line 47 | Rename to `userRecord`\n```\n\nIf no findings: emit exactly `0 findings — all clean.`\n\n## Critical Rule\n\n**Never edit files.** This skill is strictly read-only and outputs findings only.\n","# Unslop Reviewer\n\n**Purpose**: perform a read-only slop scan and emit a structured findings list.\n\n## Scanning Constraints\n\n- Preserve behavior as the primary invariant when deciding what to flag.\n- Prefer deletion candidates over additive changes.\n- Favor small, reversible fixes over broad rewrites.\n- Identify slop; do not design or apply architectural overhauls.\n\n## Slop Categories (Core Review Scope)\n\n1. **Dead code** — unreachable branches, unused exports\u002Fvariables\u002Ffunctions, stale\n   feature flags, commented-out blocks, and debug leftovers (`console.log`, `print`,\n   `debugger`, shipped TODOs).\n2. **Duplication** — copy-paste logic, near-identical functions differing only by\n   constants, repeated config blocks, and redundant helpers with equivalent behavior.\n3. **Needless abstraction** — pass-through wrappers with no logic, single-use layers,\n   speculative indirection, and premature generalization for single call sites.\n4. **Boundary violations** — hidden coupling, misplaced responsibilities across layers,\n   and logic leaking across architectural boundaries.\n5. **Naming** — generic identifiers that obscure the role of a value, operation, or type.\n6. **Error handling** — swallowed errors, ambiguous failure values, or unhelpful failure paths.\n7. **Weak test coverage** — touched behavior not locked by tests, weak assertions that\n   only verify \"no error thrown\", and untested edge paths.\n\nNaming and error handling are local clarity concerns reviewed alongside boundary violations in\nPass 3. Boundary findings must be locally fixable within the caller-provided scope; otherwise,\nomit them rather than proposing an architectural rewrite.\n\n## Pass Mapping\n\n- **Pass 1** → dead code\n- **Pass 2** → duplication + abstraction\n- **Pass 3** → naming + error handling + boundary violations\n- **Pass 4** → test coverage gaps\n\n## Findings Schema\n\nEach finding must include:\n\n| Field | Type | Values |\n|---|---|---|\n| `id` | string | Sequential: `F-1`, `F-2`, ... |\n| `file` | string | Relative file path |\n| `pass` | integer | `1` to `4` |\n| `category` | enum | `dead-code` \\| `duplication` \\| `abstraction` \\| `boundary` \\| `naming` \\| `error-handling` \\| `test` |\n| `size` | enum | `S` = line\u002Fsymbol, `M` = block\u002Ffunction, `L` = cross-file\u002Flocal structural |\n| `description` | string | What the slop is and where |\n| `fix` | string | Concrete action for the coder to apply |\n\n## Scope Rules\n\n- Default scope is changed files (from `git diff` \u002F caller-provided changed set).\n- Full-codebase scanning is allowed only when explicitly requested by caller override.\n- Never expand scope on your own.\n\n## Pass-4 Opt-In\n\nInclude pass-4 (`test`) findings only when explicitly requested (for example:\n\"include pass-4 findings\" or equivalent override).\n\n## Reduction Override\n\nWhen the caller explicitly requests reduction mode, prioritize findings that shrink code size.\n\n- Rank dead code, exact duplication, needless wrappers\u002Fhelpers, redundant guards\u002Flocals\u002Fimports, and useless comments ahead of naming-only issues.\n- Emit naming or error-handling findings only when they directly reduce code size or unblock a safer deletion\u002Fconsolidation.\n- Keep the same pass mapping; only the priority of findings changes.\n\n## Output Format\n\nEmit a **numbered list only**, sorted by pass then file path:\n\n```\n1. F-1 | src\u002Fauth.ts | pass:1 | dead-code | S | Unused `lodash` import at line 3 | Delete line 3\n2. F-2 | src\u002Fauth.ts | pass:3 | naming | S | Variable named `data` at line 47 | Rename to `userRecord`\n```\n\nIf no findings: emit exactly `0 findings — all clean.`\n\n## Critical Rule\n\n**Never edit files.** This skill is strictly read-only and outputs findings only.\n",{"name":5,"agents":37,"description":7},[38],"sidekick-reviewer","main","f4f3a02e82412dd181a98c114c6650ec02475d0f","content\u002Fskills\u002Funslop-reviewer",0,"https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade","https:\u002F\u002Fgithub.com\u002FtheCat69","2026-09-14 16:38:37",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add theCat69\u002Fla-briguade --skill unslop-reviewer",{"tool":52,"command":53},"bunx","bunx skills add theCat69\u002Fla-briguade --skill unslop-reviewer",{"tool":55,"command":56},"pnpm","pnpm dlx skills add theCat69\u002Fla-briguade --skill unslop-reviewer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Funslop-reviewer\u002FSKILL.md",true,[],[61,80,93,122,140,162],{"skillNo":62,"name":18,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":32},"01M6QPPWK5A3WJ1SAYDNR5YD6S","Perform sequential slop-cleanup edits in bounded changed-file scope with behavior-preserving rules; do not use for read-only scanning.","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Funslop\u002FSKILL.md",[],[18,27,67,68,31,69,30,70,71,72,73,74,75,76,24,77,78,79],"behavior-preserving","bounded","for","with","scope","do","builder","scanning","use","behavior","Rules","file","cleanup",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":32},"01M6QPPJA6P2HDC19FFR3FZB7A","unslop-coder","Apply unslop-reviewer findings as targeted in-scope code edits in pass order; do not run discovery\u002Fscanning in this skill.","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Funslop-coder\u002FSKILL.md",[],[18,87,88,74,19,89,90,21,72,91,71,92],"unslop coder","coder","discovery","code","apply","as",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":104,"publishedAt":32},"01M6QPP53KFSKE5KGJBGAKD3WW","serena","Semantic code retrieval, editing, refactoring and debugging tools using LSP servers","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Fserena\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[95,105,106,107,108,109,110,111,112,73,113,114,115,116,90,117,118,119,120,121],"refactoring","debugging tools","mcp-server","retrieval","false","project","local","lsp","editing","web","server","https","debugging","dashboard","github","MCP","open",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":131,"publishedAt":32},"01M6QPP2M71X18ENVM3R3B6D10","read-image","guidance to read images in a lightweight fashion using cwebp","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Fread-image\u002FSKILL.md",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000016","图像与多媒体",[24,132,133,134,135,136,137,73,138,139,88],"read image","image","guidance","fashion","cwebp","images","orchestrator","ask",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":32},"01M6QPNWCSF2V8AGS8KH9D6A54","playwright-cli","Drive browser UI checks with playwright-cli commands, snapshots, and test\u002Fdebug workflows; do not use for backend-only or non-browser tasks.","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Fplaywright-cli\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":102,"taxonomyTypeDesc":103},"01JBSEEDCAT000000000000008","测试与质量",[150,151,152,153,154,73,27,155,75,88,156,157,158,159,72,160,142,69,70,161],"playwright cli","playwright","cli","workflows","snapshots","backend","ui","browser","tasks","debug","test","commands",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":169,"publishedAt":32},"01M6QPNEM5D3N37R8E5YEAAV6D","next-devtools","skill to help you use next-devtools","https:\u002F\u002Fgithub.com\u002FtheCat69\u002Fla-briguade\u002Fblob\u002Fmain\u002Fcontent\u002Fskills\u002Fnext-devtools\u002FSKILL.md",[168],{"categoryNo":100,"categoryName":101,"taxonomyType":102,"taxonomyTypeDesc":103},[170,171,172,173,174,111,49,73,75,88,175,120],"next devtools","next","devtools","latest","you","help"]