[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2F7KCCGSTC1K97DS1K896":3,"skill-same:01M6C2F7KCCGSTC1K97DS1K896":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6C2F7KCCGSTC1K97DS1K896","tdd",null,"Develop features and fixes test-first with public-interface tests, a Superpowers TDD plan, and the 4layer minimal-repro ladder for blockers.","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftdd\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"superpowers","test-first","features","fixes","for","ladder","interface","with","tests","minimal","repro","4layer","tdd plan","public","develop","plan","first","test","2026-11-10 10:12:30",false,"---\nname: tdd\ndescription: Develop features and fixes test-first with public-interface tests, a Superpowers TDD plan, and the 4layer minimal-repro ladder for blockers.\n---\n\n# Test-Driven Development\n\nUse this workflow for behavior changes. Read the project instructions, `CONTEXT.md` when present, relevant ADRs and tests, and the documented runner before choosing interfaces or commands. Preserve the approved plan, constraints, execution method, and requested endpoint.\n\n## Required companions\n\nBefore preparing a TDD plan or reproducing a blocker, read these definitions completely:\n- [superpowers-writing-plans](..\u002Fsuperpowers-writing-plans\u002FSKILL.md)\n- [4layer](..\u002F4layer\u002FSKILL.md)\n\nIn Hermes or a catalog-only runtime, resolve those exact registered names and read their returned definitions; do not assume repository-relative paths exist. If a definition is missing, report it and pause only dependent planning or reproduction. Independent read-only inspection may continue. Loading a skill does not authorize provider calls, publication, or shared-state changes.\n\n## Plan and test design\n\nReuse an existing approved plan. For a new multi-step request, use `superpowers-writing-plans`; for one small change, keep its per-task checklist in the working plan instead of creating a document. Respect the requested plan location, scope, checkpoints, and execution choice. Do not restart brainstorming or replace an approved plan merely because TDD was invoked.\n\nEach behavior-changing task must be independently testable and specify:\n1. One meaningful test through the public interface, with its exact path and requirement-based assertions.\n2. The exact command and the expected behavioral failure.\n3. The minimum implementation and its production interface.\n4. The same test rerun plus relevant regression checks and the expected pass.\n5. A commit for the verified slice when committing is within the requested endpoint.\n\nSelf-review the saved plan against the requirements, interfaces, and project constraints. Fix missing, reordered, or vague test steps before implementation. Cover high-risk input classes in their owning tasks. Planning-only requests end with the plan; unchecked steps are intended work, not tests already run.\n\nTests should describe observable behavior, use independent expected values, and survive internal refactors. Use public seams; avoid private methods, internal mocks, and database side channels. Read [tests.md](tests.md) and [mocking.md](mocking.md) for design examples. Work one behavior slice at a time; do not demand unrelated valid tests fail or build an exhaustive risk matrix before implementation. Name the public seam under test. An explicit seam in an approved plan is already agreed; ask only when the seam is genuinely ambiguous.\n\n## RED, GREEN, and reproduction\n\nFor each behavior slice:\n- **RED:** Write one minimal test and run it against the unfixed behavior. Confirm it fails for the expected assertion, not a typo, import error, or broken fixture. If it already passes, investigate the missing case; never weaken an assertion or change production code to manufacture failure. Historical CI is context, not RED evidence.\n- **GREEN:** Implement only that behavior, rerun the same test, then run relevant regressions. Keep expectations honest; do not rewrite one merely to pass.\n- **Refactor:** Keep unrelated cleanup out of the cycle. Follow the current review-stage refactoring policy, use the available `code-review` skill when that stage requires review, and rerun affected checks after an approved refactor.\n\nFor a bug or PR blocker, follow [4layer](..\u002F4layer\u002FSKILL.md) in order: unit, end-to-end, MCP\u002FHTTP, then browser. Move upward only when the current layer passes; stop at the first conclusive reproduction. Discover the project's runner instead of copying example commands blindly. A missing runner, fixture, credential, or execution capability is `UNSUPPORTED ENVIRONMENT \u002F NO REPRO`, never a pass or permission to skip a layer. Keep provider and user state isolated, respect existing spend\u002Faccess limits, and treat layer labels as triage hints rather than root-cause proof. Follow the companion's evidence and integration-claim requirements.\n\n## Scope and completion\n\nFor a genuinely non-behavioral task, record `TDD: N\u002FA`, why, and a concrete verification command; do not manufacture a failing test. Keep checks proportional to the changed behavior. Do not run an unfiltered local suite when repository policy assigns it to CI or prohibits it. Report each attempted check as passed, failed, unsupported, skipped, or not run; include observed failures, including pre-existing ones. Do not fix unrelated failures. A focused pass proves only its stated claim.\n\nRecord the revision, command, working directory, environment, and paths to fresh RED\u002FGREEN evidence. State each attempted reproduction layer and leave unexecuted layers explicitly not run. Packaging, planning, or skipped checks alone do not prove completion or activation.\n\n## Upstream reference\n\nRefreshed against Superpowers v7.0.0 at\n`bb92a77741419a4ab5f06e711a283343f1ada0c3`:\n[writing-plans](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers\u002Fblob\u002Fbb92a77741419a4ab5f06e711a283343f1ada0c3\u002Fskills\u002Fwriting-plans\u002FSKILL.md)\nand [test-driven-development](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers\u002Fblob\u002Fbb92a77741419a4ab5f06e711a283343f1ada0c3\u002Fskills\u002Ftest-driven-development\u002FSKILL.md).\nThese links provide provenance and rationale; local companions and explicit user constraints govern execution.\n","# Test-Driven Development\n\nUse this workflow for behavior changes. Read the project instructions, `CONTEXT.md` when present, relevant ADRs and tests, and the documented runner before choosing interfaces or commands. Preserve the approved plan, constraints, execution method, and requested endpoint.\n\n## Required companions\n\nBefore preparing a TDD plan or reproducing a blocker, read these definitions completely:\n- [superpowers-writing-plans](..\u002Fsuperpowers-writing-plans\u002FSKILL.md)\n- [4layer](..\u002F4layer\u002FSKILL.md)\n\nIn Hermes or a catalog-only runtime, resolve those exact registered names and read their returned definitions; do not assume repository-relative paths exist. If a definition is missing, report it and pause only dependent planning or reproduction. Independent read-only inspection may continue. Loading a skill does not authorize provider calls, publication, or shared-state changes.\n\n## Plan and test design\n\nReuse an existing approved plan. For a new multi-step request, use `superpowers-writing-plans`; for one small change, keep its per-task checklist in the working plan instead of creating a document. Respect the requested plan location, scope, checkpoints, and execution choice. Do not restart brainstorming or replace an approved plan merely because TDD was invoked.\n\nEach behavior-changing task must be independently testable and specify:\n1. One meaningful test through the public interface, with its exact path and requirement-based assertions.\n2. The exact command and the expected behavioral failure.\n3. The minimum implementation and its production interface.\n4. The same test rerun plus relevant regression checks and the expected pass.\n5. A commit for the verified slice when committing is within the requested endpoint.\n\nSelf-review the saved plan against the requirements, interfaces, and project constraints. Fix missing, reordered, or vague test steps before implementation. Cover high-risk input classes in their owning tasks. Planning-only requests end with the plan; unchecked steps are intended work, not tests already run.\n\nTests should describe observable behavior, use independent expected values, and survive internal refactors. Use public seams; avoid private methods, internal mocks, and database side channels. Read [tests.md](tests.md) and [mocking.md](mocking.md) for design examples. Work one behavior slice at a time; do not demand unrelated valid tests fail or build an exhaustive risk matrix before implementation. Name the public seam under test. An explicit seam in an approved plan is already agreed; ask only when the seam is genuinely ambiguous.\n\n## RED, GREEN, and reproduction\n\nFor each behavior slice:\n- **RED:** Write one minimal test and run it against the unfixed behavior. Confirm it fails for the expected assertion, not a typo, import error, or broken fixture. If it already passes, investigate the missing case; never weaken an assertion or change production code to manufacture failure. Historical CI is context, not RED evidence.\n- **GREEN:** Implement only that behavior, rerun the same test, then run relevant regressions. Keep expectations honest; do not rewrite one merely to pass.\n- **Refactor:** Keep unrelated cleanup out of the cycle. Follow the current review-stage refactoring policy, use the available `code-review` skill when that stage requires review, and rerun affected checks after an approved refactor.\n\nFor a bug or PR blocker, follow [4layer](..\u002F4layer\u002FSKILL.md) in order: unit, end-to-end, MCP\u002FHTTP, then browser. Move upward only when the current layer passes; stop at the first conclusive reproduction. Discover the project's runner instead of copying example commands blindly. A missing runner, fixture, credential, or execution capability is `UNSUPPORTED ENVIRONMENT \u002F NO REPRO`, never a pass or permission to skip a layer. Keep provider and user state isolated, respect existing spend\u002Faccess limits, and treat layer labels as triage hints rather than root-cause proof. Follow the companion's evidence and integration-claim requirements.\n\n## Scope and completion\n\nFor a genuinely non-behavioral task, record `TDD: N\u002FA`, why, and a concrete verification command; do not manufacture a failing test. Keep checks proportional to the changed behavior. Do not run an unfiltered local suite when repository policy assigns it to CI or prohibits it. Report each attempted check as passed, failed, unsupported, skipped, or not run; include observed failures, including pre-existing ones. Do not fix unrelated failures. A focused pass proves only its stated claim.\n\nRecord the revision, command, working directory, environment, and paths to fresh RED\u002FGREEN evidence. State each attempted reproduction layer and leave unexecuted layers explicitly not run. Packaging, planning, or skipped checks alone do not prove completion or activation.\n\n## Upstream reference\n\nRefreshed against Superpowers v7.0.0 at\n`bb92a77741419a4ab5f06e711a283343f1ada0c3`:\n[writing-plans](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers\u002Fblob\u002Fbb92a77741419a4ab5f06e711a283343f1ada0c3\u002Fskills\u002Fwriting-plans\u002FSKILL.md)\nand [test-driven-development](https:\u002F\u002Fgithub.com\u002Fobra\u002Fsuperpowers\u002Fblob\u002Fbb92a77741419a4ab5f06e711a283343f1ada0c3\u002Fskills\u002Ftest-driven-development\u002FSKILL.md).\nThese links provide provenance and rationale; local companions and explicit user constraints govern execution.\n",{"name":5,"description":7},"main","d57b06df00b496fc5debe2002b49987696f02a8c",".claude\u002Fskills\u002Ftdd",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-12 14:45:07",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill tdd",{"tool":54,"command":55},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill tdd",{"tool":57,"command":58},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill tdd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftdd\u002FSKILL.md",true,[62,68,72],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"agents\u002Fopenai.yaml","REFERENCE","参考文档",98,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftdd\u002Fagents\u002Fopenai.yaml",{"path":69,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":70,"sourceHtmlUrl":71},"mocking.md",1481,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftdd\u002Fmocking.md",{"path":73,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":74,"sourceHtmlUrl":75},"tests.md",2214,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ftdd\u002Ftests.md",[77,95,116,130,144,160],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":36},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[79,84,85,86,87,88,89,90,91,92,93,94],"user","when","replies","check","use","identity","whatsapp","gmail","read","message","ask",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":106,"publishedAt":36},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[97,107,108,109,22,110,111,112,113,114,115],"resume","compatibility","provenance","history","produce","alias","briefing","state","fresh",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":36},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[122],{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[110,107,124,125,84,126,113,127,22,128,129,114,115],"history resume","branch","analysis","repository","worktree","sources",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":36},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[132,137,138,139,22,140,112,141,142,143],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":36},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[151,152,153,88,154,22,155,156,157,158,159],"codexa bench","work","split","default","duplicate","task","compare","normal","codex",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":164,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":179,"publishedAt":36},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[168,173,176],{"categoryNo":169,"categoryName":170,"taxonomyType":171,"taxonomyTypeDesc":172},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":174,"categoryName":175,"taxonomyType":171,"taxonomyTypeDesc":172},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":177,"categoryName":178,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000032","设计师",[180,181,182,88,183,184,185,84,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,25,201,202,85,203],"frontend","design","frontend design","generic","ui design","react","html","components","code","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","react components","web ui","pages"]