[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RNDC1QQXWBY49FN7QBDHT":3,"skill-same:01M71RNDC1QQXWBY49FN7QBDHT":84},{"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":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":56,"commitSha":57,"skillDirectory":58,"forksCount":59,"repositoryHtmlUrl":60,"repositoryHomepageUrl":61,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M71RNDC1QQXWBY49FN7QBDHT","tdd",null,"Test-driven development workflow using the Red-Green-Refactor cycle.","saero-ai\u002Fxcaffold","saero-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F241489281?v=4","01M71RMYW2D3N082K45EVG587N","Saero AI","01M71RMYWM3Q1HRJWM7X6K0F7B",8,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Ftdd\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"red-green-refactor","new","when","test-driven","implementing","false","feature","green","cycle","development workflow","use","new feature","write","read","Bash","first","development","test","workflow","2026-11-10 13:02:02",false,"---\nname: tdd\ndescription: \"Test-driven development workflow using the Red-Green-Refactor cycle.\"\nallowed-tools: [Bash, Read, Write, Edit]\nwhen-to-use: \"Use when implementing any new feature or fixing a bug. Write the test first.\"\ndisable-model-invocation: false\n---\n## Red Phase\n\nWrite a test that describes the expected behavior. The test must fail before any implementation code is written. Run the test and confirm the failure message is clear and specific.\n\n```bash\ngo test .\u002Fpath\u002Fto\u002Fpackage -run TestNew -v\n```\n\nVerify the test fails with a meaningful message, not a compile error.\n\n## Green Phase\n\nWrite the minimal code required to make the failing test pass. Do not add extra functionality, error handling for hypothetical cases, or premature abstractions. Run the test and confirm it passes.\n\n## Refactor Phase\n\nImprove the code structure without changing behavior. Extract functions, rename variables, remove duplication. Run the full test suite after each refactoring step to ensure nothing breaks.\n\n## Rules\n\n- Never skip the red phase. If the test passes before implementation, the test is wrong.\n- One assertion per test when possible. Multiple assertions obscure which behavior failed.\n- Test names describe the scenario: `TestCompile_MissingField_ReturnsError`.\n- Use `t.Helper()` in all test helper functions so failures report the caller's line number.\n","## Red Phase\n\nWrite a test that describes the expected behavior. The test must fail before any implementation code is written. Run the test and confirm the failure message is clear and specific.\n\n```bash\ngo test .\u002Fpath\u002Fto\u002Fpackage -run TestNew -v\n```\n\nVerify the test fails with a meaningful message, not a compile error.\n\n## Green Phase\n\nWrite the minimal code required to make the failing test pass. Do not add extra functionality, error handling for hypothetical cases, or premature abstractions. Run the test and confirm it passes.\n\n## Refactor Phase\n\nImprove the code structure without changing behavior. Extract functions, rename variables, remove duplication. Run the full test suite after each refactoring step to ensure nothing breaks.\n\n## Rules\n\n- Never skip the red phase. If the test passes before implementation, the test is wrong.\n- One assertion per test when possible. Multiple assertions obscure which behavior failed.\n- Test names describe the scenario: `TestCompile_MissingField_ReturnsError`.\n- Use `t.Helper()` in all test helper functions so failures report the caller's line number.\n",{"name":5,"description":7,"when-to-use":51,"allowed-tools":52,"disable-model-invocation":47},"Use when implementing any new feature or fixing a bug. Write the test first.",[41,53,54,55],"Read","Write","Edit","main","0df0dc742a84eea7155aa004cfcdf95cc68ae5d8","test\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Ftdd",0,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold","https:\u002F\u002Fwww.xcaffold.com","https:\u002F\u002Fgithub.com\u002Fsaero-ai","2026-10-14 02:35:40",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add saero-ai\u002Fxcaffold --skill tdd",{"tool":70,"command":71},"bunx","bunx skills add saero-ai\u002Fxcaffold --skill tdd",{"tool":73,"command":74},"pnpm","pnpm dlx skills add saero-ai\u002Fxcaffold --skill tdd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Ftdd\u002FSKILL.md",true,[78],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Ftemplate.md","REFERENCE","参考文档",1382,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Ftdd\u002Freferences\u002Ftemplate.md",[85,94,109,115,137,148],{"skillNo":86,"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":87,"categories":88,"keywords":90,"publishedAt":46},"01M71RNEYFEN3VQXP7F85YRKQC","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.gemini\u002Fskills\u002Ftdd\u002FSKILL.md",[89],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[5,30,45,44,43,91,92,27,93,34,36,35],"red","refactor","driven",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":46},"01M71RNBVSGGXFV2RQPZH2EP6W","debugging","Systematic debugging workflow for isolating root causes before applying fixes.","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Fdebugging\u002FSKILL.md",[],[96,29,41,101,40,102,37,103,104,32,105,106,107,108,45,44],"grep","behavior","bug","systematic","root","for","fixes","systematic debugging",{"skillNo":110,"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":111,"categories":112,"keywords":114,"publishedAt":46},"01M71RNAABH3059V7WQFZQ9ND9","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.agents\u002Fskills\u002Ftdd\u002FSKILL.md",[113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[5,45,44,43,92,27,36,35,34,93,91,30],{"skillNo":116,"name":117,"nameZh":6,"description":118,"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":127,"publishedAt":46},"01M71RN7YDQ5EAXNR9EJJWTYN9","code-review","Structured code review process covering correctness, security, and performance.","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.agents\u002Fskills\u002Fcode-review\u002FSKILL.md",[121,122],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[128,129,130,131,132,133,134,135,136],"code","review","code review","security","performance","process","review process","structured","correctness",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":46},"01M71RN70XQ9EH5ZXSPHVNHS3P","web-search","Search the web","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fproviders\u002Fgemini\u002Ftestdata\u002Finput\u002Fskills\u002Fsearch\u002FSKILL.md",[],[144,145,146,147],"web search","search","web","websearch",{"skillNo":149,"name":117,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":155,"publishedAt":46},"01M71RN60W13SFX2E93CN6RF5S","Systematic code review workflow","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fproviders\u002Fcursor\u002Ftestdata\u002Finput\u002Fskills\u002Fcode-review\u002FSKILL.md",[153,154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":123,"categoryName":124,"taxonomyType":125,"taxonomyTypeDesc":126},[129,128,130,45,101,40,104,156],"code review workflow"]