ios-testing SKILL.md skillA

ios-testing from rusel95/ios-agent-skills is an agent skill: a SKILL.md folder an AI agent loads when a task calls for it.

Install it, pinned
mdr add rusel95/ios-agent-skills/ios-testing@v2.1.3

Pins v2.1.3 in mdr.lock. Pin the fingerprint instead.

Audit grade
A, 17 of 17 checks passed
Kind
SKILL.md skill
Repository
rusel95/ios-agent-skills
Path
skills/ios-testing/SKILL.md
Versions recorded
3
Latest version
v2.1.3, committed Apr 16, 2026
First version recorded
Mar 28, 2026
Size
16,574 bytes
Repository stars
12
License
MIT

Invoke any time a user is writing iOS/Swift tests or asking why tests behave a certain way — including XCTest versus Swift Testing (@Test/#expect) choices, async ViewModel tests with @Observable or @Published, snapshot testing across device sizes, mocking protocols for dependency injection, setUp/tearDown lifecycle issues, tests that fail on CI but pass locally, flaky async tests, testing VIPER/TCA/MVVM architectures, and coverage gaps on error paths. The trigger is user intent: they are…

Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.

What the file says

> **Approach: F.I.R.S.T-First, Production-Ready Tests** -- Every test produced by this skill must be Fast, Isolated, Repeatable, Self-validating, and Thorough. Architecture changes to production code and improvements to the test suite both follow phased, low-risk PRs tracked in a `refactoring/` directory.

# iOS Swift Testing

Enterprise-grade testing skill covering 11 areas across all iOS architectures. Opinionated: prescribes Swift Testing (`@Test`/`@Suite`/`#expect`) for all new tests on Xcode 16+, protocol-based mocks with call tracking, F.I.R.S.T compliance checks on every generated test, and architecture-specific patterns for MVVM (UIKit+Combine, SwiftUI+@Observable), VIPER, and TCA.

## Test Distribution Rule

Target: 90% unit tests (mocked, milliseconds) | 8% integration (real DB/network stub) | 2% UI (XCUITest). When in doubt, write a unit test.

## F.I.R.S.T Principles

| Principle | What it means | Violation signal |
|-----------|--------------|-----------------|
| **F**ast | Unit tests should run in milliseconds. Avoid unnecessary waits. | Real `URLSession`, `Thread.sleep`, disk I/O |
…

Read the whole file at its exact version.

How to install

The exact contents, by fingerprint
mdr add rusel95/ios-agent-skills/ios-testing@sha256:5517029c9cae2e7f

The line at the top of this page pins the label v2.1.3, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.

Badge

mdr badge

[![mdr](https://markdownregistry.com/badge/art_bt4mfewsofls6pi7.svg)](https://markdownregistry.com/a/art_bt4mfewsofls6pi7)

2 badge image fetches in 30 days. What the badge shows.

Versions

The registry has recorded 3 versions of this file, between Mar 28, 2026 and Apr 16, 2026, about one every 10 days.

versioncommittedcommitsizeaudit
v2.1.3 latest2026-04-16 b28e891 16,574 BA view · diff
v2.1.32026-04-12 5a64251 16,624 BA view · diff
v2.1.12026-03-28 e5935a2 14,867 BA view

Audit of the latest version

A  17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
  • pass: Frontmatter block present
  • pass: Frontmatter declares a name
  • pass: Frontmatter declares a description
  • pass: Size between 200 bytes and 200 KB (16574 bytes)
  • pass: No zero-width or bidi control characters
  • pass: No instruction hidden inside an HTML comment
  • pass: No link to an exfiltration or paste host
  • pass: No credential-shaped string
  • pass: No instruction to send local credentials anywhere
  • pass: No text hidden with inline styles
  • pass: No prompt-injection phrasing
  • pass: No curl or wget piped into a shell
  • pass: No recursive delete of root, home or parent
  • pass: No instruction to read or print local credentials
  • pass: No base64 blob over 200 characters
  • pass: No link to a raw IP address
  • pass: No script tag

Source

GitHub

rusel95/ios-agent-skills · 12 stars · license MIT · pushed 2026-10-13 · branch main

API

GET https://markdownregistry.com/api/v1/artifacts/art_bt4mfewsofls6pi7
GET https://markdownregistry.com/api/v1/resolve?ref=rusel95/ios-agent-skills/ios-testing
GET https://markdownregistry.com/api/v1/blob/5517029c9cae2e7f866bc8a1a493463fcb871e213915733df9fe8781b19130c7

Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.

Guides: the SKILL.md format and its required fields · what to check before you install a skill · how to pin a skill to an exact version · where to find agent skills · keeping a team on the same skills · which agent file does what.

More from rusel95/ios-agent-skills

AGENTS.md AGENTS.md file
rusel95/ios-agent-skills · AGENTS.md
git:20260919.5a3d61a · audit A · 12 stars
skill-benchmarking SKILL.md skill
rusel95/ios-agent-skills · scripts/benchmarking/SKILL.md · Run skill benchmarks with discriminating-only assertions against evals.json for any model and any AI agent. Use when…
git:20260402.2fa77b8 · audit A · 12 stars
gcd-operations SKILL.md skill
rusel95/ios-agent-skills · skills/gcd-operations/SKILL.md · Use for iOS/macOS concurrency problems involving dispatch queues, locks, or thread safety. Triggers on: deadlocks (sync…
v1.0.3 · audit A · 12 stars
ios-accessibility SKILL.md skill
rusel95/ios-agent-skills · skills/ios-accessibility/SKILL.md · Production-grade iOS accessibility skill covering VoiceOver, Dynamic Type, color contrast, motion, Switch Control…
v1.0.2 · audit A · 12 stars
ios-localization SKILL.md skill
rusel95/ios-agent-skills · skills/ios-localization/SKILL.md · Production-grade iOS localization skill covering String Catalogs (.xcstrings), CLDR pluralization, SwiftUI/UIKit…
v1.0.2 · audit A · 12 stars
ios-logging SKILL.md skill
rusel95/ios-agent-skills · skills/ios-logging/SKILL.md · Enterprise skill for iOS production error observability and logging (iOS 15+, Swift 5.5+). The trigger is OBSERVABILITY…
v1.0.3 · audit A · 12 stars
ios-security SKILL.md skill
rusel95/ios-agent-skills · skills/ios-security/SKILL.md · Use for any iOS security question — whether you're asking about a specific vulnerability, checking if a pattern is…
v1.1.4 · audit A · 12 stars
swift-concurrency SKILL.md skill
rusel95/ios-agent-skills · skills/swift-concurrency/SKILL.md · Use for any Swift Concurrency question on Apple platforms. Triggers on: actor reentrancy (stale state after await)…
v1.1.2 · audit A · 12 stars
swiftui-mvvm SKILL.md skill
rusel95/ios-agent-skills · skills/swiftui-mvvm/SKILL.md · Use this skill when working with SwiftUI ViewModels — creating, refactoring, or testing them. Triggers for: setting up…
v1.0.4 · audit A · 12 stars
tca-swiftui SKILL.md skill
rusel95/ios-agent-skills · skills/tca-swiftui/SKILL.md · Use for any question about The Composable Architecture (TCA) — defining reducers, managing state, handling navigation…
v1.0.3 · audit A · 12 stars
uikit-mvvm SKILL.md skill
rusel95/ios-agent-skills · skills/uikit-mvvm/SKILL.md · Use for hands-on UIKit MVVM questions: setting up Combine bindings between UIViewController and ViewModel (@Published +…
v1.0.4 · audit A · 12 stars
viper-uikit SKILL.md skill
rusel95/ios-agent-skills · skills/viper-uikit/SKILL.md · Use when working with VIPER architecture in iOS/UIKit apps. Triggers on: creating new VIPER modules…
v1.0.2 · audit A · 12 stars

Every file in rusel95/ios-agent-skills

Browse by kind, by grade A, or by owner.