app-store
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
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
Claude Code
$ npx -y skills add rshankras/claude-code-apple-skills --skill testing --agent claude-code
Codex
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a codex -y
Cursor
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a cursor -y
Gemini CLI
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a gemini-cli -y
GitHub Copilot
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a github-copilot -y
OpenCode
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a opencode -y
Windsurf
$ npx skills add rshankras/claude-code-apple-skills --skill testing -a windsurf -y
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
Test-driven development workflows and testing infrastructure for Apple platform apps. Works with both new and existing codebases.
Use this skill when the user:
**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.
**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.
**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.
**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.
Agent-written tests get slow in the same few ways, and every phase runs the suite more often, so slow tests cost time on every build. SwiftShip's `/apple:verify` times the suite each phase and warns when it gets more than 25% slower or a single test takes over 10 s. Write tests so it never has to:
1. **One test with a list of inputs, not copies.** Five near-identical tests are five setups. Use `@Test(arguments:)`:
@Test(arguments: ["", " ", "\n"])
func rejectsBlankTitle(_ title: String) throws {
#expect(throws: NoteError.blankTitle) { try Note(title: title) }
}2. **Fakes for the network, the clock and storage.** No real `URLSession` calls: inject a protocol, or a `URLProtocol` stub. No real waiting: pass a clock or a date provider instead of waiting for time to pass. SwiftData: an in-memory `ModelConfiguration(isStoredInMemoryOnly: true)`. 3. **No `sleep`, no fixed waits.** `Task.sleep`, `sleep()` and long `XCTWaiter` timeouts make every run pay the worst case. Await the result, or wait on the specific element (`waitForExistence(timeout:)` returns as soon as it appears). 4. **UI tests launch the app once per class, not per test,** when the tests don't need a fresh state: launch in `setUp` only when needed, or reset state through a launch argument instead of a relaunch. Test logic in unit tests, not through the UI; keep UI tests for flows. 5. **Unit tests touch no disk, network or Simulator.** If a unit test needs one of those, it's an integration test (`integration-test-scaffold/`); keep it in its own target or test plan so the fast suite stays fast.
A test over 10 s is a bug in the test, not a fact of life: find which of the five it breaks.
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
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 fi
A collection of Claude Code skills for iOS, macOS, watchOS, visionOS, and Apple platform development. These skills help you plan and build apps, maintain code quality, ensure HIG compliance, and guide you from idea to App Store.
App Store optimization and marketing skills for descriptions, screenshots, keywords, review responses, and comprehensive…
Privacy-preserving ad measurement with AdAttributionKit (SKAdNetwork's successor) — install and re-engagement attribution,…
Generate compelling App Store descriptions that convert browsers into users. Use when writing initial descriptions, improving…
Apple Search Ads campaign strategy for indie developers — paid acquisition, keyword bidding, budget planning, and ROAS…
Take a one-time in-app purchase from MISSING_METADATA to READY_TO_SUBMIT in App Store Connect — set its price schedule and…
Optimize app title, subtitle, and keywords for maximum App Store discoverability. Use when launching a new app, improving search…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.