existential-birds

swift-testing-code-review

15
2
# Install this skill:
npx skills add existential-birds/beagle --skill "swift-testing-code-review"

Install specific skill from multi-skill repository

# Description

Reviews Swift Testing code for proper use of #expect/#require, parameterized tests, async testing, and organization. Use when reviewing .swift files with import Testing, @Test, #expect, @Suite, or confirmation patterns.

# SKILL.md


name: swift-testing-code-review
description: Reviews Swift Testing code for proper use of #expect/#require, parameterized tests, async testing, and organization. Use when reviewing .swift files with import Testing, @Test, #expect, @Suite, or confirmation patterns.


Swift Testing Code Review

Quick Reference

Issue Type Reference
#expect vs #require, expression capture, error testing references/expect-macro.md
@Test with arguments, traits, zip() pitfalls references/parameterized.md
confirmation, async sequences, completion handlers references/async-testing.md
@Suite, tags, parallel execution, .serialized references/organization.md

Review Checklist

  • [ ] Expressions embedded directly in #expect (not pre-computed booleans)
  • [ ] #require used only for preconditions, #expect for assertions
  • [ ] Error tests check specific types (not generic (any Error).self)
  • [ ] Parameterized tests with pairs use zip() (not Cartesian product)
  • [ ] No logic mirroring implementation in parameterized expected values
  • [ ] Async sequences tested with confirmation(expectedCount:)
  • [ ] Completion handlers use withCheckedContinuation, not confirmation
  • [ ] .serialized applied only where necessary (shared resources)
  • [ ] Sibling serialized suites nested under parent if mutually exclusive
  • [ ] No assumption of state persistence between @Test functions
  • [ ] Disabled tests have explanations and bug links

When to Load References

  • Reviewing #expect or #require usage -> expect-macro.md
  • Reviewing @Test with arguments or traits -> parameterized.md
  • Reviewing confirmation or async testing -> async-testing.md
  • Reviewing @Suite or test organization -> organization.md

Review Questions

  1. Could pre-computed booleans in #expect lose diagnostic context?
  2. Is #require stopping tests prematurely instead of revealing all failures?
  3. Are multi-argument parameterized tests creating accidental Cartesian products?
  4. Could zip() silently drop test cases due to unequal array lengths?
  5. Are completion handlers incorrectly tested with confirmation?

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.