Skip to content
cccskills
FreePublished on GitHub

swift-architecture-skill

Swift architecture patterns and playbooks for MVVM, TCA, Clean Architecture, and more.

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (10)

  • SKILL.md3.8 KB
  • references/clean-architecture.md8.4 KB
  • references/coordinator.md14.3 KB
  • references/mvi.md16.1 KB
  • references/mvp.md12.6 KB
  • references/mvvm.md21.1 KB
  • references/reactive.md10.0 KB
  • references/selection-guide.md6.6 KB
  • references/tca.md10.2 KB
  • references/viper.md14.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Swift Architecture Skill

Overview

Use this skill to pick the best Swift architecture playbook for SwiftUI/UIKit codebases and apply it to the user’s task.

Workflow

Step 1: Analyze the Request Context

Before selecting an architecture, capture:

  • task type (new feature, refactor, PR review, debugging)
  • UI stack (SwiftUI, UIKit, or mixed)
  • scope (single screen, multi-screen, app-wide)
  • existing conventions to preserve

Step 2: Select the Architecture

If the user explicitly names an architecture, treat it as the initial candidate and run a fit check before committing:

  • validate against UI stack fit (SwiftUI/UIKit/mixed), state complexity, effect orchestration needs, team familiarity, and existing codebase conventions
  • if it fits, proceed with the requested architecture
  • if it mismatches key constraints, explicitly explain the mismatch and recommend the closest-fit alternative from references/selection-guide.md
  • if the user still insists on a mismatched architecture, proceed with a risk-mitigated plan and state the risks up front

When no architecture is named, load references/selection-guide.md and infer the best fit from stated constraints (state complexity, team familiarity, testing goals, effect orchestration needs, and framework preferences). Explain the recommendation briefly.

Architecture reference mapping:

  • MVVM → references/mvvm.md
  • MVI → references/mvi.md
  • TCA → references/tca.md
  • Clean Architecture → references/clean-architecture.md
  • VIPER → references/viper.md
  • Reactive → references/reactive.md
  • MVP → references/mvp.md
  • Coordinator → references/coordinator.md

Step 3: Analyze Existing Codebase (When Applicable)

When code already exists:

  • detect current architecture and DI style
  • note concurrency model (async/await, Combine, GCD, mixed)
  • align recommendations to local conventions

Step 4: Produce Concrete Deliverables

Read the selected architecture reference and convert its guidance into deliverables tailored to the user's request:

  • File and module structure: directory layout with file names specific to the feature
  • State and dependency boundaries: concrete types, protocols, and injection points
  • Async strategy: cancellation, actor isolation, and error paths
  • Testing strategy: what to test, how to stub dependencies, and example test structure
  • Migration path (for refactors): incremental steps to move from current to target architecture
  • UI stack adaptation: where SwiftUI and UIKit guidance should differ for the chosen architecture

Step 5: Validate with Checklist

End with the architecture-specific PR review checklist from the reference file, adapted to the user's feature.

Output Requirements

  • Keep recommendations scoped to the requested feature or review task.
  • Prefer protocol-based dependency injection and explicit state modeling.
  • Flag anti-patterns found in existing code and provide direct fixes.
  • Include cancellation and error handling in all async flows.
  • For explicit architecture requests, include a short fit result (fit or mismatch) with 1-2 reasons.
  • For mismatch cases, include one closest-fit alternative and why it better matches the stated constraints.
  • When writing code, include only the patterns relevant to the task — do not dump entire playbooks.
  • Treat reference snippets as illustrative by default; add full compile scaffolding only if the user asks for runnable code.
  • Ask only minimum blocking questions; otherwise proceed with explicit assumptions stated up front.
  • When reviewing PRs, use the architecture-specific checklist and call out specific violations with line-level fixes.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

Discover and configure Bluetooth and Wi-Fi accessories using AccessorySetupKit. Use when presenting a privacy-preserving accessory picker, defining discovery descriptors for BLE or Wi-Fi devices, handling accessory session events, migrating from CoreBluetooth permission-based scanning, or setting up accessories without requiring broad Bluetooth permissions.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit. Use when building real-time updating widgets for the Lock Screen and Dynamic Island — delivery tracking, sports scores, ride-sharing status, workout timers, media playback, or any time-sensitive information that updates in real time. Also use when working with ActivityKit, ActivityAttributes, Activity lifecycle (request/update/end), Dynamic Island layouts (compact/minimal/expanded), push-to-update Live Activities, or Lock Screen live widgets.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

Measure ad effectiveness with privacy-preserving attribution using AdAttributionKit. Use when registering ad impressions, handling attribution postbacks, updating conversion values, implementing re-engagement attribution, configuring publisher or advertiser apps, or replacing SKAdNetwork with AdAttributionKit for ad measurement.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, and Apple Watch system UI. Covers AlarmManager scheduling, AlarmAttributes and AlarmPresentation, AlarmButton stop and snooze actions, authorization, state observation, and Live Activity integration. Use when building wake-up alarms, countdown timers, or alarm-style alerts that need Apple's system alarm experience.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features. Use when the user mentions "Google Play", "Android", "Play Store", "Play Console", "short description", "full description indexed", "Google Play ASO", or wants Google Play-specific keyword, creative, or ratings strategy. For iOS App Store optimization, see aso-audit and metadata-optimization.

The English summary is being prepared. Showing the original description.

JordanCoin/ios-skills-collection6Updated Sep 10, 2026

See all skills by JordanCoin

Report a problem with this skill