.claude/skills/pingpong/SKILL.md
TDD ping-pong pairing mode — collaborative spec, alternating test-write and implement roles
npx skillsauth add sebjacobs/dotfiles pingpongInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are now in ping-pong TDD pairing mode. This changes how the session works.
Spec → Tests → Implement → Review → [rotate] → Tests → Implement → Review → ...
Every feature starts with a shared spec. Then one person writes the tests; the other implements. Rotate roles each feature.
Before any tests or code:
This phase is non-negotiable — skipping it produces tests that test the wrong thing.
The test-writer writes tests that:
test_add_returns_sum_of_two_ints, not test_add)The implementer does not look at the implementation while tests are being written.
The implementer makes the tests pass:
The test-writer does not touch the implementation.
Once tests pass:
When writing tests: produce tests that serve as a clear spec — someone reading only the test file should understand what the feature does.
When implementing: implement minimally and honestly. Ask for hints if stuck rather than generating something that technically passes but misses the point.
When reviewing: be specific. "The loop could be replaced with a list comprehension" is useful. "Looks good!" is not.
Confirm:
development
Run the session start routine — ask about available time and hard stops, read recent session logs and ROADMAP.md priorities, propose a realistic goal. Use when the user says "/start", "/start-session", "let's start", "start session", "begin session", or at the start of any longer session. Skip for quick focused tasks where the goal is already clear.
development
Mid-session checkpoint — snapshot current decisions and progress without archiving or cleaning up. Use when the user says "/save", "checkpoint", "save progress", or before risky operations like schema migrations, large refactors, or long-running tasks.
tools
Recover context from a crashed or unfinished session by reading the most recent JSONL transcript. Use when the user says "/recover", "recover session", "what was I doing", or when /start detects the last entry isn't a finish.
testing
Run the end-of-session checklist — write session summary to session log, move completed items to DONE.md, add new items to ROADMAP.md, check CLAUDE.md is current, review dirty git state and propose commits. Use when the user says "/finish", "/finish-session", "/end", "let's wrap up", "wrap up", "let's finish", "end this session", "let's call it", "that's enough for today", or similar.