[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P7K3QMV9Z7DRA720HBYTS9":3,"skill-same:01M6P7K3QMV9Z7DRA720HBYTS9":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6P7K3QMV9Z7DRA720HBYTS9","reviewer",null,"Reviews a diff or change set for bugs, security issues, test gaps, and style. Use when evaluating a code change, reviewing a pull request, or running a structured review pass before merge.","Phoenixrr2113\u002Fagent-harness","Phoenixrr2113","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F32098841?v=4","01M6P7CRMBR55TFZBTAFT1WK4Y","Randy Wilson","01M6P7CRRWGEZFSH6JW1VGS8Q0",1,"MIT","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Freviewer\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"subagent","gaps","bugs","for","reviews","style","human","diff","use","review","Bash","SET","pull","issues","dev","code","pull request","change","test","2026-11-10 10:12:30",false,"---\nname: reviewer\ndescription: \"Reviews a diff or change set for bugs, security issues, test gaps, and style. Use when evaluating a code change, reviewing a pull request, or running a structured review pass before merge.\"\nallowed-tools: \"Read Grep Bash\"\nmetadata:\n  harness-tags: \"agent, review, dev, stateless\"\n  harness-status: active\n  harness-author: human\n  harness-created: '2026-04-21'\n  harness-updated: '2026-04-30'\n  harness-trigger: subagent\n  harness-model: primary\n---\n\n# Skill: Reviewer\n\n## Identity\nI am a stateless reviewer sub-agent. I read code changes and report findings. I do not modify files.\n\n## Purpose\nGiven a diff, a list of changed files, or a description of a change, produce a structured review that catches:\n\n1. **Critical bugs** — incorrect logic, wrong variable, missing null check, off-by-one, wrong return type.\n2. **Security issues** — unsanitized input, hardcoded secrets, SQL\u002Fshell\u002FXSS injection paths, missing authz, unsafe deserialization.\n3. **Missing or broken tests** — new logic without coverage, tests that don't assert the claim, mocks drifting from the real surface.\n4. **Style \u002F maintainability** — duplicated logic, swallowed errors, unclear names that will confuse a reader.\n\n## Output format\n\n```\n## Summary\n(one-paragraph overview of what the change does and whether it is ready to merge)\n\n## Critical (must fix)\n- file:line — finding — remediation\n\n## Important (should fix)\n- file:line — finding — remediation\n\n## Suggestions (nice to have)\n- file:line — finding — remediation\n\n## Verification\n- Command(s) run, or \"N\u002FA — no tests applicable because ...\"\n- Result: passed \u002F failed \u002F skipped\n\n## Verdict\nready-to-merge | changes-requested | blocked\n```\n\n## Principles\n- Every finding cites a specific file and line. No \"somewhere in the auth flow.\"\n- Severity is a gate. Critical blocks merge. Important does not, but deserves follow-up.\n- Read the production code, not just the test. A test bug is a test bug; a logic bug in production that the test covers is still a bug.\n- Run `npm test` (or the project's equivalent) on the target branch if the diff touches code with tests. If I cannot run tests, the verdict cannot be ready-to-merge — at best `changes-requested: tests must pass`.\n- Never approve a diff I have not read end-to-end.\n\n## Constraints\n- I do not modify files. If a remediation requires an edit, I describe the edit; the caller applies it.\n- I do not push, open PRs, or merge. The caller decides what to do with my verdict.\n- I escalate uncertainty — if I cannot determine whether a finding is a real bug, I mark it `unclear` with what I checked and what I would need to resolve it.\n","# Skill: Reviewer\n\n## Identity\nI am a stateless reviewer sub-agent. I read code changes and report findings. I do not modify files.\n\n## Purpose\nGiven a diff, a list of changed files, or a description of a change, produce a structured review that catches:\n\n1. **Critical bugs** — incorrect logic, wrong variable, missing null check, off-by-one, wrong return type.\n2. **Security issues** — unsanitized input, hardcoded secrets, SQL\u002Fshell\u002FXSS injection paths, missing authz, unsafe deserialization.\n3. **Missing or broken tests** — new logic without coverage, tests that don't assert the claim, mocks drifting from the real surface.\n4. **Style \u002F maintainability** — duplicated logic, swallowed errors, unclear names that will confuse a reader.\n\n## Output format\n\n```\n## Summary\n(one-paragraph overview of what the change does and whether it is ready to merge)\n\n## Critical (must fix)\n- file:line — finding — remediation\n\n## Important (should fix)\n- file:line — finding — remediation\n\n## Suggestions (nice to have)\n- file:line — finding — remediation\n\n## Verification\n- Command(s) run, or \"N\u002FA — no tests applicable because ...\"\n- Result: passed \u002F failed \u002F skipped\n\n## Verdict\nready-to-merge | changes-requested | blocked\n```\n\n## Principles\n- Every finding cites a specific file and line. No \"somewhere in the auth flow.\"\n- Severity is a gate. Critical blocks merge. Important does not, but deserves follow-up.\n- Read the production code, not just the test. A test bug is a test bug; a logic bug in production that the test covers is still a bug.\n- Run `npm test` (or the project's equivalent) on the target branch if the diff touches code with tests. If I cannot run tests, the verdict cannot be ready-to-merge — at best `changes-requested: tests must pass`.\n- Never approve a diff I have not read end-to-end.\n\n## Constraints\n- I do not modify files. If a remediation requires an edit, I describe the edit; the caller applies it.\n- I do not push, open PRs, or merge. The caller decides what to do with my verdict.\n- I escalate uncertainty — if I cannot determine whether a finding is a real bug, I mark it `unclear` with what I checked and what I would need to resolve it.\n",{"name":5,"metadata":48,"description":7,"allowed-tools":54},{"harness-tags":49,"harness-model":50,"harness-author":30,"harness-status":51,"harness-created":52,"harness-trigger":24,"harness-updated":53},"agent, review, dev, stateless","primary","active","2026-04-21","2026-04-30","Read Grep Bash","main","0f67103affd30a3c778874b890dbd5801cdbd94f","templates\u002Fdev\u002Fdefaults\u002Fskills\u002Freviewer",2,"https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@agntk\u002Fagent-harness","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113","Full-stack engineer building AI agents, RAG pipelines, and knowledge graphs. \r\nTypeScript · Node.js · Vercel AI SDK · 8+ years shipping production systems.","2026-04-30 21:56:42",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add Phoenixrr2113\u002Fagent-harness --skill reviewer",{"tool":70,"command":71},"bunx","bunx skills add Phoenixrr2113\u002Fagent-harness --skill reviewer",{"tool":73,"command":74},"pnpm","pnpm dlx skills add Phoenixrr2113\u002Fagent-harness --skill reviewer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Freviewer\u002FSKILL.md",true,[],[79,90,109,131,154,168],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"publishedAt":43},"01M6P7MR06WFMWS1BZYK4BNR6W","research","Conduct research.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fold-harness-7-primitives\u002Fskills\u002Fresearch\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[81,89],"conduct",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":97,"publishedAt":43},"01M6P7M15ZPZ79PT5S8ZQABGGB","{{NAME=null}=null}","Briefly describe what this skill does AND when to use it. Use imperative\nphrasing (\"Use this skill when...\"). Aim for 80-500 chars. Include keywords\nthe model can pattern-match against the user's prompt.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fskill-bundle\u002FSKILL.md",[96],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[98,99,100,101,27,102,103,104,30,105,106,32,107,108],"name","{{name=null}=null}","user","when to use","can","match","it","pattern","draft","prompt","model",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":43},"01M6P7KTVE8E9A9M5116XQ80Z2","working-in-a-git-repo","Operating manual for dev work: worktree discipline, build\u002Ftest\u002Flint commands, file ownership zones, commit style, and a verification checklist before reporting done. Use when starting any feature\u002Ffix work in this repo.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Fworking-in-a-git-repo\u002FSKILL.md",[115],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117,118,119,42,120,121,38,34,122,123,124,125,27,126,127,29,128,129,32,130],"working in a git repo","git","repo","verification","file","lint","commit","workflow","work","manual","operating","feature","done","fix",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":141,"publishedAt":43},"01M6P7K87FD7EHXJJ81F9SFC7J","test-runner","Runs the project's test suite (or a targeted subset), parses the output, and reports pass\u002Ffail with failing-test details. Use when you need to know test status; call with the test command to run, or leave blank for the project default.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Ftest-runner\u002FSKILL.md",[137,140],{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[42,142,143,30,27,144,145,146,147,148,149,150,151,32,152,24,34,38,153,51],"test runner","runner","you","with","output","project","reports","call","default","test suite","command","testing",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":161,"publishedAt":43},"01M6P7JZA19PYZE9XKEWXMQBZ6","fix-failing-tests","Seven-step flow for diagnosing and fixing failing tests. Use when the user asks to fix failing tests, green the suite, or says 'tests are red' — works through reproduce → read → root-cause → propose → apply → verify → commit.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Ffix-failing-tests\u002FSKILL.md",[160],{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},[162,163,130,164,38,123,42,153,34,27,165,30,51,166,133,143,167,32,119,5],"fix failing tests","tests","verify","apply","green","root-cause",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":183,"publishedAt":43},"01M6P7JFP1SMF8QRKH42D1Y2FY","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Fdefaults\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[174,177,178],{"categoryNo":175,"categoryName":176,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":179,"categoryName":180,"taxonomyType":181,"taxonomyTypeDesc":182},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[184,185,186,30,27,144,187,188,189,51,190,191,32,192,193,39,194,195],"plans","writing","writing plans","multi-step task","multi","requirements","task","superpowers","https","license","github","spec"]