[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K5TP1KX237V9FDZ8PMNXH5":3,"skill-same:01M6K5TP1KX237V9FDZ8PMNXH5":68},{"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":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":67},"01M6K5TP1KX237V9FDZ8PMNXH5","tdd-cat",null,"TDD workflow with subagent-driven-development — \u002Ftdd composed with \u002Fcat, plus the A\u002FB TDD execution-mode axis (split-phase vs micro-cycle) asked as a third question in \u002Fcat's combined pre-dispatch question","laurac8r\u002Fclaude-damn","laurac8r","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F23003243?v=4","01M6K5HCAJJR4Q5BCBRRZF8E5D","Laura Kaminskiy","01M6K5HCEQRFFJFK32A0VR7AS3",3,"MIT","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftdd-cat\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"tdd cat","cat","tdd","task","mode","true","split","with","driven","as","cycle","dispatch","question","subagent","tdd workflow","execution","micro","development","workflow","2026-11-10 10:12:30",false,"---\nname: tdd-cat\ndescription:\n   TDD workflow with subagent-driven-development — \u002Ftdd composed with \u002Fcat,\n   plus the A\u002FB TDD execution-mode axis (split-phase vs micro-cycle) asked as\n   a third question in \u002Fcat's combined pre-dispatch question\nargument-hint: \"\u003Ctask-description>\"\nuser-invocable: true\n---\n\n# \u002Ftdd-cat — TDD × Subagent Dispatch\n\n\u002Ftdd\n\n\u002Fcat\n\nThe two skills above are the composition: `\u002Ftdd` supplies the one-at-a-time\nRED→GREEN→refactor micro-cycle; `\u002Fcat` supplies review-gated \u002F fan-out\nsubagent dispatch behind ONE combined pre-dispatch `AskUserQuestion`.\n`\u002Ftdd-cat` adds the one thing neither defines: **how TDD phases map onto\ndispatched subagents**. That mapping is a user choice, not an inference.\n\n## TDD Execution Mode — the Third Axis\n\nAsk this as a **third question in the SAME single combined `AskUserQuestion`**\nthat `\u002Fcat` already raises (execution mode × edit approval × TDD execution\nmode) — not as a separate sequential prompt. Wait for all three answers before\nany dispatch.\n\n| Mode                | Each dispatched subagent does…                                                                | Use when…                                                                     |\n| ------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| **A — Split-phase** | exactly **one** TDD phase (RED *or* GREEN *or* REFACTOR); the main agent sequences the phases | you want per-phase review gates, max isolation, phase-level auditability      |\n| **B — Micro-cycle** | the **full `\u002Ftdd` loop** (RED→GREEN→refactor, repeat) for its slice; returns with slice green | dispatch overhead matters; slices are cohesive; discipline lives in the agent |\n\nUnder **Mode A**, the RED subagent writes ONE failing test and reports the\nfailure; the GREEN subagent writes the minimal code for that one test; the\nREFACTOR subagent cleans while green. The main agent runs the loop N times —\none behavior per cycle — dispatching fresh subagents each phase.\n\nUnder **Mode B**, each subagent invokes `\u002Ftdd` internally and owns every\nRED\u002FGREEN\u002FREFACTOR step for its assigned slice, returning only when the\nslice's suite is green. `\u002Fcat`'s two-stage spec-then-quality review still\ngates between tasks.\n\n### Orthogonality\n\nThe A\u002FB axis is **orthogonal** to both of `\u002Fcat`'s axes: it sets the *phase\ngranularity of dispatch within a task*, not how tasks sequence (execution\nmode) or who clears edits (edit approval). One hard constraint holds in every\ncombination: **within a behavior, RED must precede GREEN** — phases of the\nsame behavior never parallelize. When `\u002Fcat`'s execution mode allows\nparallelism, it is across independent behaviors\u002Ftasks only.\n\n## No Shortcut — Never Default the TDD Mode Silently\n\nThe skills' silence on phase↔subagent mapping is exactly what agents fill\nwith a unilateral pick (observed baseline: \"I decided it myself\", justified\nby \"minimal dispatch overhead\"). The mapping is the user's call. Surface the\nthird axis every time; never infer it from the task shape, the deadline, or\nthe user's other answers.\n\n**Rationalization counter:**\n\n| Excuse                                              | Reality                                                                                                                                                         |\n| --------------------------------------------------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| \"The task is too small for the question to matter\"  | Small tasks are where silent defaults calcify. The question costs one option-click in the SAME call you're already making. Ask.                                 |\n| \"There's a deadline — asking wastes a turn\"         | The axis rides the combined question; it adds zero extra turns. Time pressure is the classic trigger for the silent pick — hence this guard.                    |\n| \"The modes converge on this task anyway\"            | If they truly converge, the user picks in one second. Convergence is YOUR prediction; the choice is theirs.                                                     |\n| \"The user's execution-mode pick implies a TDD mode\" | The axes are orthogonal. Strict sequential composes with A *and* B; so does parallel. No answer on axes 1–2 answers axis 3.                                     |\n| \"B is fewer dispatches, so B\"                       | Fewer dispatches is a _reason to offer_ B, not to impose it. A's per-phase review gates are the point for high-stakes work — the user knows which work this is. |\n\n**Red flag — STOP:** if you catch yourself writing \"I'll run the micro-cycle\ninside one implementer subagent since that's obviously right here\" (or the\nsplit-phase equivalent) without having asked, you are defaulting the third\naxis. Ask the combined question.\n","# \u002Ftdd-cat — TDD × Subagent Dispatch\n\n\u002Ftdd\n\n\u002Fcat\n\nThe two skills above are the composition: `\u002Ftdd` supplies the one-at-a-time\nRED→GREEN→refactor micro-cycle; `\u002Fcat` supplies review-gated \u002F fan-out\nsubagent dispatch behind ONE combined pre-dispatch `AskUserQuestion`.\n`\u002Ftdd-cat` adds the one thing neither defines: **how TDD phases map onto\ndispatched subagents**. That mapping is a user choice, not an inference.\n\n## TDD Execution Mode — the Third Axis\n\nAsk this as a **third question in the SAME single combined `AskUserQuestion`**\nthat `\u002Fcat` already raises (execution mode × edit approval × TDD execution\nmode) — not as a separate sequential prompt. Wait for all three answers before\nany dispatch.\n\n| Mode                | Each dispatched subagent does…                                                                | Use when…                                                                     |\n| ------------------- | --------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| **A — Split-phase** | exactly **one** TDD phase (RED *or* GREEN *or* REFACTOR); the main agent sequences the phases | you want per-phase review gates, max isolation, phase-level auditability      |\n| **B — Micro-cycle** | the **full `\u002Ftdd` loop** (RED→GREEN→refactor, repeat) for its slice; returns with slice green | dispatch overhead matters; slices are cohesive; discipline lives in the agent |\n\nUnder **Mode A**, the RED subagent writes ONE failing test and reports the\nfailure; the GREEN subagent writes the minimal code for that one test; the\nREFACTOR subagent cleans while green. The main agent runs the loop N times —\none behavior per cycle — dispatching fresh subagents each phase.\n\nUnder **Mode B**, each subagent invokes `\u002Ftdd` internally and owns every\nRED\u002FGREEN\u002FREFACTOR step for its assigned slice, returning only when the\nslice's suite is green. `\u002Fcat`'s two-stage spec-then-quality review still\ngates between tasks.\n\n### Orthogonality\n\nThe A\u002FB axis is **orthogonal** to both of `\u002Fcat`'s axes: it sets the *phase\ngranularity of dispatch within a task*, not how tasks sequence (execution\nmode) or who clears edits (edit approval). One hard constraint holds in every\ncombination: **within a behavior, RED must precede GREEN** — phases of the\nsame behavior never parallelize. When `\u002Fcat`'s execution mode allows\nparallelism, it is across independent behaviors\u002Ftasks only.\n\n## No Shortcut — Never Default the TDD Mode Silently\n\nThe skills' silence on phase↔subagent mapping is exactly what agents fill\nwith a unilateral pick (observed baseline: \"I decided it myself\", justified\nby \"minimal dispatch overhead\"). The mapping is the user's call. Surface the\nthird axis every time; never infer it from the task shape, the deadline, or\nthe user's other answers.\n\n**Rationalization counter:**\n\n| Excuse                                              | Reality                                                                                                                                                         |\n| --------------------------------------------------- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| \"The task is too small for the question to matter\"  | Small tasks are where silent defaults calcify. The question costs one option-click in the SAME call you're already making. Ask.                                 |\n| \"There's a deadline — asking wastes a turn\"         | The axis rides the combined question; it adds zero extra turns. Time pressure is the classic trigger for the silent pick — hence this guard.                    |\n| \"The modes converge on this task anyway\"            | If they truly converge, the user picks in one second. Convergence is YOUR prediction; the choice is theirs.                                                     |\n| \"The user's execution-mode pick implies a TDD mode\" | The axes are orthogonal. Strict sequential composes with A *and* B; so does parallel. No answer on axes 1–2 answers axis 3.                                     |\n| \"B is fewer dispatches, so B\"                       | Fewer dispatches is a _reason to offer_ B, not to impose it. A's per-phase review gates are the point for high-stakes work — the user knows which work this is. |\n\n**Red flag — STOP:** if you catch yourself writing \"I'll run the micro-cycle\ninside one implementer subagent since that's obviously right here\" (or the\nsplit-phase equivalent) without having asked, you are defaulting the third\naxis. Ask the combined question.\n",{"name":5,"description":7,"argument-hint":43,"user-invocable":44},"\u003Ctask-description>",true,"main","9635fb649979617cf684ea860dcaeb4eb272aa7d","skills\u002Ftdd-cat",1,"https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn","https:\u002F\u002Flaurac8r.github.io\u002Fclaude-damn\u002F","https:\u002F\u002Fgithub.com\u002Flaurac8r","https:\u002F\u002Fwww.webcatgirl.com\u002F","SWE | Python, Java, Typescript, Cloud, AI, ML | Open-source, large-language model, and decision model enthusiast","2026-09-10 01:18:30",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":44},[57,60,63],{"tool":58,"command":59},"npx","npx skills add laurac8r\u002Fclaude-damn --skill tdd-cat",{"tool":61,"command":62},"bunx","bunx skills add laurac8r\u002Fclaude-damn --skill tdd-cat",{"tool":64,"command":65},"pnpm","pnpm dlx skills add laurac8r\u002Fclaude-damn --skill tdd-cat","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftdd-cat\u002FSKILL.md",[],[69,107,131,142,158,181],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":86,"publishedAt":38},"01M6K5V5PPEYZGPW80S9QAF7WZ","visual-aid","Use when the user asks for a quick visual aid, visual explainer, concept card, one-pager, poster, cheat sheet, infographic, visual summary, summary card, or mini explainer page — especially from input like a block of text, attached images, an attached song (lyrics\u002Faudio), a web link, a CSV\u002Fdataset, a math formula, a code snippet to walk through, a tutorial's steps, a timeline, or an A-vs-B comparison. Triggers include \"make me a quick visual aid\", \"turn this into a one-pager \u002F cheat sheet \u002F explainer\", \"summarize this visually\", \"give me a visual of\", \"explain this on a single page\", \"make a concept card for\", \"whip up a page about\", \"build a mini page that shows\", \"something I can paste into a doc explaining X\", or any request to render a topic\u002Ftext\u002Flink\u002Fimage-set\u002Fsong\u002Fdata into a standalone page. Prefer this skill over frontend-design when the ask is an explanatory single-file page (not a production UI), over playground when the output is static information display (not an interactive configurator), and over a Markdown\u002Fcode answer when the user explicitly wants a *page* (HTML). Produces a single self-contained HTML file that opens on double-click without a server.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-aid\u002FSKILL.md",[75,80,83],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":81,"categoryName":82,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":84,"categoryName":85,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000016","图像与多媒体",[87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106],"visual","visual aid","images","static","frontend-design","standalone","song","quick","information","render","card","click","infographic","formula","up","visual explainer","Audio","SET","design","frontend",{"skillNo":108,"name":109,"nameZh":6,"description":110,"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":113,"publishedAt":38},"01M6K5TZZ34SBMQMN2EX11XMYS","tesseract","Use when you've been poking at the same file, concept, or problem across many sessions and want to step outside time to see its whole arc — or when you want to leave a note for next-session-you. Triggers: 'I've been going in circles on X', 'what have I learned about X', 'what did past-me say about X', 'I keep rediscovering this'.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftesseract\u002FSKILL.md",[],[109,87,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,24,130],"keep","problem","learned","triggers","anchor","across","sessions","time","me","say","use","session","file","you","for","concept","morse",{"skillNo":132,"name":21,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":38},"01M6K5TSVWXGRFMQTSM8VFSRDS","Invoke test-driven development as an explicit one-at-a-time micro-cycle — one test, one piece of functionality, refactor, then repeat for the next behavior","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[],[21,137,138,128,24,28,121,29,139,140,35,36,141,27],"next","at","behavior","refactor","test",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":38},"01M6K5TGDERXT82MS7SB3ZGA3V","task-list","TaskCreate \u002F TaskUpdate \u002F render the current TaskList in response to `\u002Ftask-list` (with or without flags). The skill body executes immediately on the syntax — no permission-seeking, no echoing the list back as plain text.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Ftask-list\u002FSKILL.md",[],[149,22,150,24,151,26,96,28,152,153,154,155,156,157],"list","task list","display","permission","back","flags","syntax","text","update",{"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":38},"01M6K5T8CER0BAPJVJDG5F5GD0","sync","Sync files between two local directories, repos, or git worktrees. Five modes (plan\u002Finteractive\u002Fpush\u002Fpull\u002Fmirror), .gitignore-aware, Claude-workflow allowlist via --claude, dropbox-restore-style per-directory prompts.","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fsync\u002FSKILL.md",[],[160,165,23,24,166,167,168,169,170,171,172,173,174,175,176,177,178,179,37,180],"git worktrees","limit","yes","directories","dry","local","gitignore","restore","files","mirror","interactive","plan","push","pull","delete","modes",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":38},"01M6K5T2S3J291RE2B2GW7J43H","super","Brainstorming (alias for \u002Fbrainstorming)","https:\u002F\u002Fgithub.com\u002Flaurac8r\u002Fclaude-damn\u002Fblob\u002Fmain\u002Fskills\u002Fsuper\u002FSKILL.md",[],[183,128,24,188,22,189],"alias","brainstorming"]