deepagents-architectur…
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing…
Comprehensive iOS/SwiftUI code review with optional parallel agents
$ npx -y skills add existential-birds/beagle --skill review-ios --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/review-iosContext preview
The summary Claude sees to decide when to auto-load this skill.
Comprehensive iOS/SwiftUI code review with optional parallel agents
description: Comprehensive iOS/SwiftUI code review with optional parallel agents name: review-ios disable-model-invocation: true
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:** [review-verification-protocol](../review-verification-protocol/SKILL.md) 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).
git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '\.swift$'
**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:**
# 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 # WatchKit grep -r "import WatchKit\|WKExtension\|WKInterfaceController" --include="*.swift" -l | head -3 # Animations (beyond basic withAnimation) grep -r "PhaseAnimator\|KeyframeAnimator\|matchedGeometryEffect\|navigationTransition\|scrollTransition\|CABasicAnimation\|CASpringAnimation\|CAKeyframeAnimation\|UIViewPropertyAnimator\|UIDynamicAnimator\|\.symbolEffect\|\.contentTransition\|CustomAnimation\|MeshGradient" --include="*.swift" -l | head -3
Load the [review-verification-protocol](../review-verification-protocol/SKILL.md) skill and keep its checklist in mind throughout the review.
Load each applicable skill below (read its `SKILL.md`).
**Always load:**
**Conditionally load based on detection:**
| Condition | Skill | |-----------|-------| | SwiftData detected | [swiftdata-code-review](../swiftdata-code-review/SKILL.md) | | Swift Testing detected | [swift-testing-code-review](../swift-testing-code-review/SKILL.md) | | Combine detected | [combine-code-review](../combine-code-review/SKILL.md) | | URLSession detected | [urlsession-code-review](../urlsession-code-review/SKILL.md) | | CloudKit detected | [cloudkit-code-review](../cloudkit-code-review/SKILL.md) | | WidgetKit detected | [widgetkit-code-review](../widgetkit-code-review/SKILL.md) | | App Intents detected | [app-intents-code-review](../app-intents-code-review/SKILL.md) | | HealthKit detected | [healthkit-code-review](../healthkit-code-review/SKILL.md) | | WatchKit detected | [watchos-code-review](../watchos-code-review/SKILL.md) | | Animation code detected | [ios-animation-code-review](../ios-animation-code-review/SKILL.md) |
**If the agent supports subagents** (and `--parallel` is requested), dispatch one subagent per technology area in parallel; **otherwise** run sequentially. Both paths produce identical output — the same consolidated findings.
**Sequential (default):** 1. Load applicable skills 2. Review Swift quality issues first (concurrency, memory, error handling) 3. Review SwiftUI patterns (view composition, state management, accessibility) 4. Review detected technology areas 5. Consolidate findings
**Parallel (when supported, via --parallel):** 1. Detect all technologies upfront 2. Dispatch one subagent per technology area 3. Each agent loads its skill and reviews its domain 4. Wait for all agents 5. Consolidate findings
1. **Check SwiftLint output** - don't duplicate linter findings 2. **Check code comments** for intentional patterns (// MARK:, // NOTE:, etc.) 3. **Consider Apple framework idioms** - what looks wrong generically may be correct f
Image: NASA, Public Domain. Source Beagle is an Agent Skills marketplace: framework-aware code review, documentation, testing, architectural analysis, and git workflows for any compatible coding agent.
Repo: existential-birds/beagle
Guides architectural decisions for Deep Agents applications. Use when deciding between Deep Agents vs alternatives, choosing backend strategies, designing…
Reviews Deep Agents code for bugs, anti-patterns, and improvements. Use when reviewing code that uses create_deep_agent, backends, subagents, middleware, or…
Implements agents using Deep Agents. Use when building agents with create_deep_agent, configuring backends, defining subagents, adding middleware, or setting…
Guides architectural decisions for LangGraph applications. Use when deciding between LangGraph vs alternatives, choosing state management strategies, designing…
Reviews LangGraph code for bugs, anti-patterns, and improvements. Use when reviewing code that uses StateGraph, nodes, edges, checkpointing, or other LangGraph…
Implements stateful agent graphs using LangGraph. Use when building graphs, adding nodes/edges, defining state schemas, implementing checkpointing, handling…