[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F034NRBGMVTWYDF4V2Q0TH":3,"skill-same:01M6F034NRBGMVTWYDF4V2Q0TH":80},{"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":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6F034NRBGMVTWYDF4V2Q0TH","tdd-workflow",null,"Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Ftdd-workflow\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","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],"workflow","tdd","tdd workflow","principles","red","driven","green","cycle","development workflow","red-green-refactor","edit","write","read","grep","Bash","refactor","development","test","2026-11-10 10:12:30",false,"---\nname: tdd-workflow\ndescription: Test-Driven Development workflow principles. RED-GREEN-REFACTOR cycle.\nallowed-tools: Read, Write, Edit, Glob, Grep, Bash\n---\n\n# TDD Workflow\n\n> Write tests first, code second.\n\n---\n\n## 1. The TDD Cycle\n\n```\n? RED → Write failing test\n    ↓\n? GREEN → Write minimal code to pass\n    ↓\n? REFACTOR → Improve code quality\n    ↓\n   Repeat...\n```\n\n---\n\n## 2. The Three Laws of TDD\n\n1. Write production code only to make a failing test pass\n2. Write only enough test to demonstrate failure\n3. Write only enough code to make the test pass\n\n---\n\n## 3. RED Phase Principles\n\n### What to Write\n\n| Focus | Example |\n|-------|---------|\n| Behavior | \"should add two numbers\" |\n| Edge cases | \"should handle empty input\" |\n| Error states | \"should throw for invalid data\" |\n\n### RED Phase Rules\n\n- Test must fail first\n- Test name describes expected behavior\n- One assertion per test (ideally)\n\n---\n\n## 4. GREEN Phase Principles\n\n### Minimum Code\n\n| Principle | Meaning |\n|-----------|---------|\n| **YAGNI** | You Aren't Gonna Need It |\n| **Simplest thing** | Write the minimum to pass |\n| **No optimization** | Just make it work |\n\n### GREEN Phase Rules\n\n- Don't write unneeded code\n- Don't optimize yet\n- Pass the test, nothing more\n\n---\n\n## 5. REFACTOR Phase Principles\n\n### What to Improve\n\n| Area | Action |\n|------|--------|\n| Duplication | Extract common code |\n| Naming | Make intent clear |\n| Structure | Improve organization |\n| Complexity | Simplify logic |\n\n### REFACTOR Rules\n\n- All tests must stay green\n- Small incremental changes\n- Commit after each refactor\n\n---\n\n## 6. AAA Pattern\n\nEvery test follows:\n\n| Step | Purpose |\n|------|---------|\n| **Arrange** | Set up test data |\n| **Act** | Execute code under test |\n| **Assert** | Verify expected outcome |\n\n---\n\n## 7. When to Use TDD\n\n| Scenario | TDD Value |\n|----------|-----------|\n| New feature | High |\n| Bug fix | High (write test first) |\n| Complex logic | High |\n| Exploratory | Low (spike, then TDD) |\n| UI layout | Low |\n\n---\n\n## 8. Test Prioritization\n\n| Priority | Test Type |\n|----------|-----------|\n| 1 | Happy path |\n| 2 | Error cases |\n| 3 | Edge cases |\n| 4 | Performance |\n\n---\n\n## 9. Anti-Patterns\n\n| ❌ Don't | ✅ Do |\n|----------|-------|\n| Skip the RED phase | Watch test fail first |\n| Write tests after | Write tests before |\n| Over-engineer initial | Keep it simple |\n| Multiple asserts | One behavior per test |\n| Test implementation | Test behavior |\n\n---\n\n## 10. AI-Augmented TDD\n\n### Multi-Agent Pattern\n\n| Agent | Role |\n|-------|------|\n| Agent A | Write failing tests (RED) |\n| Agent B | Implement to pass (GREEN) |\n| Agent C | Optimize (REFACTOR) |\n\n---\n\n> **Remember:** The test is the specification. If you can't write a test, you don't understand the requirement.\n","# TDD Workflow\n\n> Write tests first, code second.\n\n---\n\n## 1. The TDD Cycle\n\n```\n? RED → Write failing test\n    ↓\n? GREEN → Write minimal code to pass\n    ↓\n? REFACTOR → Improve code quality\n    ↓\n   Repeat...\n```\n\n---\n\n## 2. The Three Laws of TDD\n\n1. Write production code only to make a failing test pass\n2. Write only enough test to demonstrate failure\n3. Write only enough code to make the test pass\n\n---\n\n## 3. RED Phase Principles\n\n### What to Write\n\n| Focus | Example |\n|-------|---------|\n| Behavior | \"should add two numbers\" |\n| Edge cases | \"should handle empty input\" |\n| Error states | \"should throw for invalid data\" |\n\n### RED Phase Rules\n\n- Test must fail first\n- Test name describes expected behavior\n- One assertion per test (ideally)\n\n---\n\n## 4. GREEN Phase Principles\n\n### Minimum Code\n\n| Principle | Meaning |\n|-----------|---------|\n| **YAGNI** | You Aren't Gonna Need It |\n| **Simplest thing** | Write the minimum to pass |\n| **No optimization** | Just make it work |\n\n### GREEN Phase Rules\n\n- Don't write unneeded code\n- Don't optimize yet\n- Pass the test, nothing more\n\n---\n\n## 5. REFACTOR Phase Principles\n\n### What to Improve\n\n| Area | Action |\n|------|--------|\n| Duplication | Extract common code |\n| Naming | Make intent clear |\n| Structure | Improve organization |\n| Complexity | Simplify logic |\n\n### REFACTOR Rules\n\n- All tests must stay green\n- Small incremental changes\n- Commit after each refactor\n\n---\n\n## 6. AAA Pattern\n\nEvery test follows:\n\n| Step | Purpose |\n|------|---------|\n| **Arrange** | Set up test data |\n| **Act** | Execute code under test |\n| **Assert** | Verify expected outcome |\n\n---\n\n## 7. When to Use TDD\n\n| Scenario | TDD Value |\n|----------|-----------|\n| New feature | High |\n| Bug fix | High (write test first) |\n| Complex logic | High |\n| Exploratory | Low (spike, then TDD) |\n| UI layout | Low |\n\n---\n\n## 8. Test Prioritization\n\n| Priority | Test Type |\n|----------|-----------|\n| 1 | Happy path |\n| 2 | Error cases |\n| 3 | Edge cases |\n| 4 | Performance |\n\n---\n\n## 9. Anti-Patterns\n\n| ❌ Don't | ✅ Do |\n|----------|-------|\n| Skip the RED phase | Watch test fail first |\n| Write tests after | Write tests before |\n| Over-engineer initial | Keep it simple |\n| Multiple asserts | One behavior per test |\n| Test implementation | Test behavior |\n\n---\n\n## 10. AI-Augmented TDD\n\n### Multi-Agent Pattern\n\n| Agent | Role |\n|-------|------|\n| Agent A | Write failing tests (RED) |\n| Agent B | Implement to pass (GREEN) |\n| Agent C | Optimize (REFACTOR) |\n\n---\n\n> **Remember:** The test is the specification. If you can't write a test, you don't understand the requirement.\n",{"name":5,"description":7,"allowed-tools":50},"Read, Write, Edit, Glob, Grep, Bash","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Ftdd-workflow",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill tdd-workflow",{"tool":66,"command":67},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill tdd-workflow",{"tool":69,"command":70},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill tdd-workflow","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Ftdd-workflow\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"skill-report.json","REFERENCE","参考文档",8604,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fsickn33\u002Ftdd-workflow\u002Fskill-report.json",[81,91,101,110,116,123],{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":45},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[86],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[88,89,90],"model","model hierarchy","model hierarchy skill",{"skillNo":92,"name":93,"nameZh":6,"description":6,"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":45},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[96],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[98,99,100],"MCP","zoom","zoom mcp",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":45},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[107,108,109,99],"sdk","zoom apps sdk","apps",{"skillNo":111,"name":112,"nameZh":6,"description":6,"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":115,"publishedAt":45},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[112],{"skillNo":117,"name":118,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":45},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[121],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[118],{"skillNo":124,"name":125,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":45},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[125]]