Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add troyjthomas/ios-agent-skills --skill testing-strategygit clone --depth 1 https://github.com/troyjthomas/ios-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/troyjthomas/ios-agent-skills/testing-strategy)<a href="https://agentmods.dev/skills/troyjthomas/ios-agent-skills/testing-strategy"><img src="https://agentmods.dev/badge/skills/troyjthomas/ios-agent-skills/testing-strategy/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/troyjthomas/ios-agent-skills/testing-strategy"><img src="https://agentmods.dev/badge/skills/troyjthomas/ios-agent-skills/testing-strategy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00082 | $0.01332 |
| Opus 5 | $0.00041 | $0.00666 |
| Sonnet 5 | $0.00016 | $0.00266 |
| Haiku 4.5 | $0.00008 | $0.00133 |
Grade B, and why
testing-strategy scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
run: sudo xcode-select -s /Applications/Xcode_26.3.app How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Testing Strategy
Three layers of testing, from fully automated to fully manual. Use all three.
Layer 1: Automated Build Verification (Claude Code Does This)
Every time Claude Code finishes work on a screen or feature:
## Build Verification (add to CLAUDE.md)
After every change:
1. Build with XcodeBuildMCP for iPhone simulator
2. If build fails, fix errors and rebuild
3. Do not present work as "done" if the build fails
This catches: syntax errors, missing imports, type mismatches, broken references.
This does NOT catch: runtime crashes, visual bugs, interaction problems.
Layer 2: Automated Unit Tests (Claude Code Writes and Runs These)
When to Add Tests
For v1, you don't need tests on every view. Focus tests on:
- Data models — Does creating, updating, deleting work correctly?
- Business logic — Does the stitch counter increment properly? Does progress calculate correctly?
- State management — Does updating a value in one place propagate everywhere?
Don't test views directly for v1. View testing in SwiftUI is complex and low-ROI for a first release.
Asking Claude Code to Write Tests
Write unit tests for the Project model. Test:
- Creating a project with all required fields
- Updating the stitch count and verifying progress calculates
- Archiving a project
- Deleting a project
Use Swift Testing framework (not XCTest).
Place tests in Tests/[AppName]Tests/
Run the tests with XcodeBuildMCP after writing them.
Test Conventions for CLAUDE.md
## Testing
- Use Swift Testing framework (@Test, #expect) not XCTest
- Test file naming: [ModelName]Tests.swift
- Test location: Tests/[AppName]Tests/
- Run tests after writing them. Fix failures before committing.
- Focus tests on models and business logic, not views.
- Every model should have tests for create, update, delete.
Running Tests
Claude Code with XcodeBuildMCP:
Run all tests. Report results. If any fail, analyze
the failure and fix the code (not the test, unless the
test expectation is wrong).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 178 lines · 82 tokens per session scan B 58a0d7c40b95
testing-strategy is a skill published in the GitHub repository troyjthomas/ios-agent-skills (2 stars, last pushed 3mo ago), licensed MIT. It adds 82 tokens to every session and 1,332 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
iOS Testing
Unit testing, UI testing, TDD patterns, mocking, and test doubles for VIP+W architecture.
swift-testing-expert
Expert guidance for Swift Testing: test structure, #expect/#require macros, traits and tags, parameterized tests, test plans, parallel execution, async waiting patterns, and XCTest migration. Use when writing new Swift tests, modernizing XCTest suites, debugging flaky tests, or improving test quality and…
go-testing
Trigger: Go tests, go test coverage, Bubbletea teatest, golden files. Apply focused Go testing patterns.
writing-tests
Write unit tests, component tests, and integration tests for AiderDesk using Vitest and React Testing Library. Use when creating new tests, adding test coverage, configuring mocks, setting up test files, or debugging failing tests.
java-unit-test
A code-generation guide for Java unit tests in Spring Boot projects. Unit tests check one small piece of code in isolation; Spring Boot is a Java framework for building web applications and services.
running-julia-test
Before running tests for a new package, make sure the test environment is already set up. If the package does not have tests yet, follow creating-julia-test-env first. Tests that use using Test must have Test available from the package or test project.