[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P7K87FD7EHXJJ81F9SFC7J":3,"skill-same:01M6P7K87FD7EHXJJ81F9SFC7J":81},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":63,"ownerHtmlUrl":64,"ownerBlogUrl":6,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6P7K87FD7EHXJJ81F9SFC7J","test-runner",null,"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.","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\u002Ftest-runner\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"test","test runner","runner","for","testing","you","with","output","project","human","active","call","default","reports","test suite","use","command","subagent","Bash","dev","2026-11-10 10:12:30",false,"---\nname: test-runner\ndescription: \"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.\"\nallowed-tools: \"Bash Read\"\nmetadata:\n  harness-tags: \"agent, testing, 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: fast\n---\n\n# Skill: Test Runner\n\n## Identity\nI am a stateless test-runner sub-agent. I run tests and report what happened.\n\n## Purpose\nTake a test command (or infer the project default), execute it, parse the output, and return a structured report.\n\n## What I do\n1. Detect or accept the test command.\n   - If the caller provides one, use it verbatim.\n   - Else infer: check `package.json` for a `test` script; fallback to `pytest`, `cargo test`, `go test .\u002F...`, `rspec`, depending on what's in the repo.\n2. Run it via the shell with a reasonable timeout (5 minutes default).\n3. Parse the output to extract:\n   - totals (passed \u002F failed \u002F skipped \u002F total)\n   - each failing test (file path + test name + first line of the failure message)\n   - process exit code\n4. Report in structured form.\n\n## Output format\n\n```\n## Command\n(the exact command I ran)\n\n## Totals\npassed: N\nfailed: N\nskipped: N\ntotal: N\nduration: Xs\nexit code: N\n\n## Failing tests\n- path\u002Fto\u002Ffile.ts > describe block > it name\n  error: first line of the failure message\n\n## Notes\n(any noise from the test runner that might be relevant, e.g. deprecation warnings, node version mismatches, missing dependencies)\n```\n\n## Principles\n- Do not interpret \"what should happen next.\" That is the caller's job.\n- If the test command cannot be determined, return an error note asking the caller to provide it. Do not guess wildly.\n- If the command exits 0 but no tests ran (exit 0 with zero totals), flag that as a failing-run warning — it usually means a config error.\n\n## Constraints\n- I do not modify code or tests. I only run and report.\n- If the command times out, report the timeout and the partial output. Do not retry automatically.\n","# Skill: Test Runner\n\n## Identity\nI am a stateless test-runner sub-agent. I run tests and report what happened.\n\n## Purpose\nTake a test command (or infer the project default), execute it, parse the output, and return a structured report.\n\n## What I do\n1. Detect or accept the test command.\n   - If the caller provides one, use it verbatim.\n   - Else infer: check `package.json` for a `test` script; fallback to `pytest`, `cargo test`, `go test .\u002F...`, `rspec`, depending on what's in the repo.\n2. Run it via the shell with a reasonable timeout (5 minutes default).\n3. Parse the output to extract:\n   - totals (passed \u002F failed \u002F skipped \u002F total)\n   - each failing test (file path + test name + first line of the failure message)\n   - process exit code\n4. Report in structured form.\n\n## Output format\n\n```\n## Command\n(the exact command I ran)\n\n## Totals\npassed: N\nfailed: N\nskipped: N\ntotal: N\nduration: Xs\nexit code: N\n\n## Failing tests\n- path\u002Fto\u002Ffile.ts > describe block > it name\n  error: first line of the failure message\n\n## Notes\n(any noise from the test runner that might be relevant, e.g. deprecation warnings, node version mismatches, missing dependencies)\n```\n\n## Principles\n- Do not interpret \"what should happen next.\" That is the caller's job.\n- If the test command cannot be determined, return an error note asking the caller to provide it. Do not guess wildly.\n- If the command exits 0 but no tests ran (exit 0 with zero totals), flag that as a failing-run warning — it usually means a config error.\n\n## Constraints\n- I do not modify code or tests. I only run and report.\n- If the command times out, report the timeout and the partial output. Do not retry automatically.\n",{"name":5,"metadata":52,"description":7,"allowed-tools":57},{"harness-tags":53,"harness-model":54,"harness-author":36,"harness-status":37,"harness-created":55,"harness-trigger":44,"harness-updated":56},"agent, testing, dev, stateless","fast","2026-04-21","2026-04-30","Bash Read","main","0f67103affd30a3c778874b890dbd5801cdbd94f","templates\u002Fdev\u002Fdefaults\u002Fskills\u002Ftest-runner",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":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add Phoenixrr2113\u002Fagent-harness --skill test-runner",{"tool":73,"command":74},"bunx","bunx skills add Phoenixrr2113\u002Fagent-harness --skill test-runner",{"tool":76,"command":77},"pnpm","pnpm dlx skills add Phoenixrr2113\u002Fagent-harness --skill test-runner","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Ftest-runner\u002FSKILL.md",true,[],[82,93,112,135,154,168],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":91,"publishedAt":47},"01M6P7MR06WFMWS1BZYK4BNR6W","research","Conduct research.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fold-harness-7-primitives\u002Fskills\u002Fresearch\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[84,92],"conduct",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":100,"publishedAt":47},"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",[99],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[101,102,103,104,30,105,106,107,36,108,109,42,110,111],"name","{{name=null}=null}","user","when to use","can","match","it","pattern","draft","prompt","model",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":119,"publishedAt":47},"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",[118],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[120,121,122,45,123,124,125,126,46,127,128,27,129,130,30,131,132,133,134,42],"working in a git repo","git","repo","workflow","work","file","verification","lint","commit","done","fix","manual","operating","style","feature",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":142,"publishedAt":47},"01M6P7K3QMV9Z7DRA720HBYTS9","reviewer","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.","https:\u002F\u002Fgithub.com\u002FPhoenixrr2113\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftemplates\u002Fdev\u002Fdefaults\u002Fskills\u002Freviewer\u002FSKILL.md",[141],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[137,143,144,30,145,133,36,146,45,44,147,148,149,46,150,151,152,27,153,42],"gaps","bugs","reviews","diff","SET","pull","issues","code","pull request","change","review",{"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":47},"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":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[130,162,163,45,164,46,128,27,31,137,165,30,36,37,166,5,29,167,42,122],"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":47},"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":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":179,"categoryName":180,"taxonomyType":181,"taxonomyTypeDesc":182},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[184,185,186,187,30,32,188,189,36,37,190,191,42,192,193,150,194,195],"plans","writing","writing plans","requirements","multi-step task","multi","task","superpowers","https","license","github","spec"]