[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GGE713AV8XB89WDZGBCKHT":3,"skill-same:01M6GGE713AV8XB89WDZGBCKHT":71},{"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":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M6GGE713AV8XB89WDZGBCKHT","test-driven-development",null,"When implementing logic changes during develop-feature or implement-task. Use the Red-Green-Refactor cycle to write a failing test before any production code.","ahmadulhoq\u002Fagentskel","ahmadulhoq","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3884252?v=4","01M6GGC32SQTQ52FY4JB14FYSY","Ahmadul Hoq","01M6GGC37CJEYM63V3WEHY4Y8V",13,"MIT","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"test","test driven development","development","driven","red","implement","feature","logic","green","cycle","task","red-green-refactor","use","write","develop","refactor","Production","code","2026-11-10 10:12:30",false,"---\nname: test-driven-development\nlicense: MIT\ndescription: When implementing logic changes during develop-feature or implement-task. Use the Red-Green-Refactor cycle to write a failing test before any production code.\n---\n\n# Test-Driven Development Skill\n\n**Cycle: RED → GREEN → REFACTOR**\n\nHighly recommended during any logic implementation. Do not write production code before a failing test exists.\n\n## RED Phase — Write a Failing Test\n1. Identify the smallest unit of behavior to implement next.\n2. Write a test that asserts the expected output or behavior.\n3. Run the test. **Confirm it fails.**\n   - If it passes before any implementation, the test is wrong — fix it.\n   - Record: `[RED] \u003Ctest name> — fails as expected`\n\n## GREEN Phase — Minimum Code to Pass\n4. Write the minimum production code to make the test pass.\n   - No premature abstractions. No extra features. Bare minimum only.\n5. Run the test. **Confirm it passes.**\n   - Record: `[GREEN] \u003Ctest name> — passes`\n\n## REFACTOR Phase — Clean Without Changing Behavior\n6. Refactor implementation if needed (remove duplication, improve names, simplify).\n7. Run the full test suite. **All tests must still pass.**\n   - Record: `[REFACTOR] \u003Ctest name> — clean, all pass`\n\n## Rules\n- Never skip RED. A test that was never failing proves nothing.\n- Refactor only when GREEN — never while RED.\n- One cycle = one behavior unit. Do not batch multiple behaviors into one RED-GREEN.\n- Note failing test evidence in RESUME.md before moving to the next unit.\n\n## Exemptions\nSkip this cycle only for: trivial config\u002Fboilerplate, pure UI layout with no logic,\nor when the user explicitly opts out. Document the exemption reason.\n\n---\n\n**Gate:** Do not write production code for a behavior unit without first having a failing test for that unit.\n","# Test-Driven Development Skill\n\n**Cycle: RED → GREEN → REFACTOR**\n\nHighly recommended during any logic implementation. Do not write production code before a failing test exists.\n\n## RED Phase — Write a Failing Test\n1. Identify the smallest unit of behavior to implement next.\n2. Write a test that asserts the expected output or behavior.\n3. Run the test. **Confirm it fails.**\n   - If it passes before any implementation, the test is wrong — fix it.\n   - Record: `[RED] \u003Ctest name> — fails as expected`\n\n## GREEN Phase — Minimum Code to Pass\n4. Write the minimum production code to make the test pass.\n   - No premature abstractions. No extra features. Bare minimum only.\n5. Run the test. **Confirm it passes.**\n   - Record: `[GREEN] \u003Ctest name> — passes`\n\n## REFACTOR Phase — Clean Without Changing Behavior\n6. Refactor implementation if needed (remove duplication, improve names, simplify).\n7. Run the full test suite. **All tests must still pass.**\n   - Record: `[REFACTOR] \u003Ctest name> — clean, all pass`\n\n## Rules\n- Never skip RED. A test that was never failing proves nothing.\n- Refactor only when GREEN — never while RED.\n- One cycle = one behavior unit. Do not batch multiple behaviors into one RED-GREEN.\n- Note failing test evidence in RESUME.md before moving to the next unit.\n\n## Exemptions\nSkip this cycle only for: trivial config\u002Fboilerplate, pure UI layout with no logic,\nor when the user explicitly opts out. Document the exemption reason.\n\n---\n\n**Gate:** Do not write production code for a behavior unit without first having a failing test for that unit.\n",{"name":5,"license":15,"description":7},"main","d94c109a4fad51623dc6048315860e53b32673fb",".agents\u002Fskills\u002Ftest-driven-development",3,"https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel","https:\u002F\u002Fgithub.com\u002Fahmadulhoq","2026-11-07 00:53:22",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add ahmadulhoq\u002Fagentskel --skill test-driven-development",{"tool":63,"command":64},"bunx","bunx skills add ahmadulhoq\u002Fagentskel --skill test-driven-development",{"tool":66,"command":67},"pnpm","pnpm dlx skills add ahmadulhoq\u002Fagentskel --skill test-driven-development","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",true,[],[72,91,116,137,144,158],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":45},"01M6GGSN2D57Y8BR50X08Y695H","setup-project","When setting up agentskel on a new project that does not yet have .memory\u002F or .agents\u002F. Use when the user says \"set up agentskel\", \"install agentskel\", or \"add agent memory to this project\".","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-project\u002FSKILL.md",[],[79,80,81,82,83,84,39,85,86,87,88,89,90],"setup project","project","setup","memory","add","up","install","add agent","user","new project","SET","agent memory",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":45},"01M6GGSJ6HD2DFVZQTESJ81GYM","using-git-worktrees","When running long feature implementations, parallel branch work, or build\u002Ftest scripts that must not interfere with the user's active working directory. Creates isolated execution environments via git worktrees in sibling directories.","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Froles\u002Fdev\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",[],[98,99,100,101,102,27,103,104,105,106,107,108,109,110,111,112,113,33,114,115],"git worktrees","worktrees","git","using git worktrees","Using git","directory","execution","parallel","work","branch","directories","environments","with","via","long","scripts","active","build",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":45},"01M6GGSCFPK7MDSZH96XTNZR9B","test-engineer","When designing test strategy, analysing coverage, or writing tests outside the TDD cycle. Also use when working with CI pipelines or validating changes end-to-end.","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Froles\u002Fdev\u002Fskills\u002Ftest-engineer\u002FSKILL.md",[122],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[124,125,27,126,127,36,128,129,130,39,131,110,132,133,134,135,136],"test engineer","engineer","tests","tdd cycle","end","test strategy","pipelines","tdd","strategy","ci","writing tests","writing","coverage",{"skillNo":138,"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":139,"categories":140,"keywords":143,"publishedAt":45},"01M6GGS8YA9XZB6DWV22JC0YTB","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Froles\u002Fdev\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[141,142],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[29,28,27,30,37,31,33,34,35,36,38,39,40,41,42,43,44,32],{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":45},"01M6GGS61D41ZJG4D8XAS97H62","task-planner","When decomposing a feature or spec into implementable subtasks, estimating scope, or orchestrating multi-step work across subagents.","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Froles\u002Fdev\u002Fskills\u002Ftask-planner\u002FSKILL.md",[],[151,37,152,33,153,154,106,155,156,157],"task planner","planner","across","subagents","spec","scope","multi",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":45},"01M6GGS30NJW4Q7QN4KVT0CV08","systematic-debugger","When applying debugging techniques during any investigation — root cause tracing, bisect, defense-in-depth. Enforces hypothesis-first analysis and prohibits guess-and-check changes. Use standalone or inside the debug-issue workflow.","https:\u002F\u002Fgithub.com\u002Fahmadulhoq\u002Fagentskel\u002Fblob\u002Fmain\u002Froles\u002Fdev\u002Fskills\u002Fsystematic-debugger\u002FSKILL.md",[],[165,166,167,168,169,170,171,172,39,173,174,175,176,177,178,179,180,181,182,183],"systematic debugger","systematic","debugger","check","standalone","root","issue workflow","issue","bisect","investigation","analysis","first","defense","hypothesis","defense-in-depth","tracing","debugging","debug","workflow"]