testing · rshankras — Claude Code skill: TDD and tests for iOS/macOS
A set of TDD workflows and test infrastructure for Apple platform apps. Useful when an agent writes the code and you want tests around it.
npx skills add rshankras/claude-code-apple-skills --skill testing -a claude-codeWhat testing does
The skill splits into separate sub-skills. On existing code, characterization-test-generator captures current behavior before a refactor, and tdd-bug-fix writes a failing test for the bug first, then fixes it. tdd-refactor-guard checks that coverage exists before the agent touches old code.
For new code there is tdd-feature with the red-green-refactor cycle, and test-contract, which defines an interface contract and generates a suite every implementation must pass. The infrastructure side covers snapshot-test-setup on swift-snapshot-testing, test-data-factory for fixtures, integration-test-scaffold with mock servers, and flow-walkthrough for driving user flows in the Simulator.
A third group is deterministic gates. fitness-functions turns project rules into tests, coverage-ratchet holds a coverage floor, and mutation-testing is marked experimental and advisory-only. The skill asks for Read, Write, Edit, Glob, Grep, Bash and AskUserQuestion, so without Bash some steps will not run.
What it helps with
- capture current behavior before refactoring
- write a failing test for a bug so it never regresses
- check coverage before letting an agent touch old code
- generate contract tests for a protocol or interface
- set up SwiftUI snapshot tests and Simulator flow runs
Example prompts for the agent
- I want to TDD this new Swift feature — start with a failing test
- Add characterization tests to this class before I refactor it
- Set up snapshot tests for this SwiftUI screen and wire them into CI
How to install testing
1Skills CLI (Vercel)
npx skills add rshankras/claude-code-apple-skills --skill testing -a claude-code2Manually: put the files in place
~/.claude/skills/testing/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/testing/
1Skills CLI (Vercel)
npx skills add rshankras/claude-code-apple-skills --skill testing -a codex2Manually: put the files in place
.agents/skills/testing/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add rshankras/claude-code-apple-skills --skill testing -a cursor2Manually: put the files in place
.cursor/skills/testing/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install rshankras/claude-code-apple-skills testing2Manually: put the files in place
.github/skills/testing/SKILL.md1Skills CLI (Vercel)
npx skills add rshankras/claude-code-apple-skills --skill testing -a gemini-cli2Platform CLI
gemini skills install https://github.com/rshankras/claude-code-apple-skills --path skills/testingManually: put the files in place
.devin/skills/testing/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add rshankras/claude-code-apple-skills --skill testing -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about testing
How do I install testing in Claude?
Run npx skills add rshankras/claude-code-apple-skills --skill testing -a claude-code. The skill file then lands at ~/.claude/skills/testing/SKILL.md.
What does the testing skill do?
It gives the agent TDD workflows and test infrastructure for iOS and macOS: characterization tests, red-green-refactor, contracts, snapshot tests and deterministic gates such as the coverage ratchet.
How is testing different from test-generator?
generators/test-generator/ produces test boilerplate, while this skill is about methodology — the TDD cycle, characterization testing and contracts. Use the first for "add tests to this class", the second for "I want to TDD".
Source text
SKILL.md · MIT
--- name: testing description: TDD and testing skills for iOS/macOS apps. Covers characterization tests, TDD workflows, test contracts, snapshot tests, test infrastructure, and deterministic quality gates (fitness functions, coverage ratchet, mutation testing). Use for test-driven development, adding tests to existing code, or building test infrastructure. allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion] last_verified: 2026-07-24 review_by: 2027-06-22 --- # Testing & TDD Skills Test-driven development workflows and testing infrastructure for Apple platform apps. Works with both new and existing codebases. ## When This Skill Activates Use this skill when the user: - Wants to do TDD (test-driven development) with AI-generated code - Needs to add tests before refactoring existing code - Wants to fix a bug using the red-green-refactor cycle - Needs test infrastructure (factories, mocks, contracts) - Asks about snapshot/visual regression testing - Wants to ensure AI-generated code is correct via tests - Wants deterministic gates around agent-written code (architecture invariants, coverage floors, mutation audits) ## Available Skills ### For Existing Codebases **characterization-test-generator/** Capture current behavior of existing code before refactoring. Generates tests that document what code actually does (not what it should do), giving you a safety net for AI-assisted refactoring. **tdd-bug-fix/** Reproduce-first bug fix workflow. Write a failing test that demonstrates the bug, then fix it. Ensures the bug never regresses — critical when AI generates fixes. **tdd-refactor-guard/** Pre-refactor safety checklist. Verifies test coverage exists before allowing AI to touch existing code. Prevents the "refactor without a safety net" problem. ### For New Code **tdd-feature/** Red-green-refactor scaffold for new features. Generates the failing test first, then guides implementation to make it pass, then refactors. The core TDD workflow. **test-contract/** Protocol/interface test suites. Define the contract (e.g., "any DataStore must handle empty state, single item, 100 items, and errors"), and it generates a test suite any implementation must pass. ### Infrastructure **snapshot-test-setup/** SwiftUI visual regression testing using swift-snapshot-testing. Generates snapshot test boilerplate, configuration, and CI integration. **test-data-factory/** Test fixture factories for your models. Makes writing tests faster by eliminating boilerplate data setup. Supports Builder pattern and static factory methods. **integration-test-scaffold/** Cross-module test harness with mock servers, in-memory stores, and test configuration. For testing networking + persistence + business logic together. **flow-walkthrough/** Drive each user flow in the Simulator (XCUITest + per-step screenshots), audit the navigation graph for dead-ends, and run a human discoverability check. ### Deterministic Gates **fitness-functions/** Architecture fitness functions — tests that enforce a project's hard rules (module import boundaries, offline guarantees, count/copy contracts) from inside its own test target. Turns prose constraints into exit codes. **coverage-ratchet/** Coverage floor that only rises: a committed baseline the app target's line coverage may never drop below, gated by a generated xccov script. Includes an advisory CRAP report (complexity × uncovered). **mutation-testing/** EXPERIMENTAL, advisory-only muter setup scoped to engine targets — surviving mutants reveal covered-but-unasserted code. Never a merge gate; includes the manual deliberate-break fallback. ## How to Use 1. Identify whether user is working on **new code** or **existing code** 2. Read the relevant skill's SKILL.md for detailed workflow 3. Detect project context (testing framework, architecture, existing tests) 4. Generate tests following the skill's workflow 5. Verify tests compile and run ## Relationship to test-generator The `generators/test-generator/` skill generates test boilerplate (unit, integration, UI tests). These testing skills are complementary — they focus on **workflows and methodology** (TDD cycle, characterization testing, contracts) rather than just test file generation. Cross-reference: - Use `test-generator` for "add tests to this class" - Use `testing/tdd-feature` for "I want to TDD this new feature" - Use `testing/characterization-test-generator` for "I need to safely refactor this" - Use `testing/tdd-bug-fix` for "fix this bug and make sure it never comes back"
© rshankras · MIT · rshankras/claude-code-apple-skills
Similar skills
Everything for Testing and QA →testing by other authors comes first.