ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

review-ios

Comprehensive iOS/SwiftUI code review with optional parallel agents

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/anderskev/review-ios
Or

iOS Code Review

Arguments

  • --parallel: Spawn specialized subagents per technology area
  • Path: Target directory (default: current working directory)

Hard gates

Complete in order before writing Issues in the output (empty scope is allowed; fabricated findings are not).

  1. Scope gate: You have an explicit list of .swift paths under review (from Step 1 or a user-provided path). Pass: List captured in working notes or one line: No Swift files in scope — then stop with no Issues.
  2. Linter gate (style): Step 2 commands ran for this tree; if no .swiftlint.yml / .swiftlint.yaml, note that in one line. Pass: You do not report a style issue that SwiftLint would already enforce for that line when config exists and swiftlint succeeds.
  3. Protocol gate: beagle-ios:review-verification-protocol is loaded before Step 6. Pass: If you report any Issues, at least one finding was checked against that checklist (name the item in Review Summary or on that Issue); if you report zero Issues, state Protocol applied; no issues in Review Summary.
  4. Evidence gate (Critical/Major): For each Critical or Major item, you re-read the file at FILE:LINE (full surrounding context, not only the diff hunk). Pass: The Issue text matches observable code at that location.

Do not begin Step 6 until Gates 1–3 are satisfied (skills load order stays Steps 4–5).

Step 1: Identify Changed Files

git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '\.swift$'

Step 2: Verify Linter Status

CRITICAL: Run SwiftLint BEFORE flagging any style issues.

# Check if SwiftLint config exists and run it
if [ -f ".swiftlint.yml" ] || [ -f ".swiftlint.yaml" ]; then
    swiftlint lint --quiet <changed_files>
fi

Rules:

  • If SwiftLint passes for a specific rule, DO NOT flag that issue manually
  • SwiftLint configuration is authoritative for style rules
  • Only flag issues that linters cannot detect (semantic issues, architectural problems)

Step 3: Detect Technologies

# SwiftUI (always with swift files that import it)
grep -r "import SwiftUI" --include="*.swift" -l | head -3

# SwiftData
grep -r "import SwiftData\|@Model\|@Query" --include="*.swift" -l | head -3

# Swift Testing
grep -r "import Testing\|@Test\|#expect" --include="*.swift" -l | head -3

# Combine
grep -r "import Combine\|AnyPublisher\|@Published" --include="*.swift" -l | head -3

# URLSession (explicit async patterns)
grep -r "URLSession\.shared\|\.data(from:\|\.download(from:" --include="*.swift" -l | head -3

# CloudKit
grep -r "import CloudKit\|CKContainer\|CKRecord" --include="*.swift" -l | head -3

# WidgetKit
grep -r "import WidgetKit\|TimelineProvider\|WidgetFamily" --include="*.swift" -l | head -3

# App Intents
grep -r "import AppIntents\|@AppIntent\|AppEntity" --include="*.swift" -l | head -3

# HealthKit
grep -r "import HealthKit\|HKHealthStore\|HKQuery" --include="*.swift" -l | head -3

Metadata

Author@anderskev
Stars4473
Views0
Updated2026-05-01
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-anderskev-review-ios": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.