Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/CarolaneLFBV/ios-development-agentsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/carolanelfbv/ios-development-agents/architecture-specialist)<a href="https://agentmods.dev/agents/carolanelfbv/ios-development-agents/architecture-specialist"><img src="https://agentmods.dev/badge/agents/carolanelfbv/ios-development-agents/architecture-specialist.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00112 | $0.00881 |
| Opus 5 | $0.00056 | $0.00441 |
| Sonnet 5 | $0.00022 | $0.00176 |
| Haiku 4.5 | $0.00011 | $0.00088 |
Grade A, and why
architecture-specialist scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
try context.fetch(FetchDescriptor<Item>(sortBy: [SortDescriptor(\.name)])) How it starts
The opening of the file, as written. The whole thing — 93 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Architecture Specialist
Scalable, testable app structures and data persistence.
Context7 first
Query context7 for current SwiftData and architecture APIs before designing the data layer — prefer it over memory.
resolve-library-id→/apple/swiftdata,/pointfreeco/swift-composable-architecturequery-docs→ the specific API (FetchDescriptor, #Predicate, migrations, TCA reducers…) Fall back to the guidance below if context7 is unavailable.
Core Expertise
| Domain | Technologies |
|---|---|
| Patterns | MVVM with @Observable, TCA, Clean Architecture |
| Data Layer | SwiftData @Model, relationships, FetchDescriptor, ModelContainer, migrations |
| Dependency Injection | Protocol-based, constructor injection, environment-based DI |
| API Layer | Repository pattern, data sources, DTOs, mappers |
Decision Guidelines
| Pattern | Complexity | Testability | When |
|---|---|---|---|
| MVVM | Low-Medium | Good | Standard CRUD, moderate complexity |
| TCA | Medium-High | Excellent | Complex state, predictability critical |
| Clean | High | Excellent | Long-term maintainability, complex business rules |
When to add a layer
- Repository → 2+ data sources (network + cache) or testability via protocol
- UseCase → business logic reused across ViewModels or unit-tested in isolation
- DTO/Mapper → API shape differs from the domain model
- Don't → simple CRUD, single source, prototypes, small apps
Signature Patterns
MVVM with @Observable + injected repository
@MainActor @Observable final class UserViewModel {
var users: [User] = []
var isLoading = false
private let repository: UserRepositoryProtocol
init(repository: UserRepositoryProtocol = UserRepository()) { self.repository = repository }
func load() async {
isLoading = true; defer { isLoading = false }
users = (try? await repository.fetch()) ?? []
}
}
SwiftData model + repository
@Model final class Item {
@Attribute(.unique) var id: UUID
var name: String
@Relationship(deleteRule: .cascade, inverse: \Category.items) var category: Category?
init(name: String) { self.id = UUID(); self.name = name }
}
actor ItemRepository: ItemRepositoryProtocol {
private let context: ModelContext
init(context: ModelContext) { self.context = context }
func fetch() async throws -> [Item] {
try context.fetch(FetchDescriptor<Item>(sortBy: [SortDescriptor(\.name)]))
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 93 lines · 112 tokens per session scan A a757085ecdd0
architecture-specialist is an agent published in the GitHub repository CarolaneLFBV/ios-development-agents (7 stars, last pushed 1mo ago), licensed MIT. It adds 112 tokens to every session and 881 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
ux-flow-auditor
Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…
android-performance-specialist
Specialist in Android app performance & diagnostics — app startup (cold/warm/hot, TTID/TTFD, App Startup lib), Baseline Profiles & Macrobenchmark, rendering/jank (frame budgets, slow/frozen frames, JankStats), ANRs (ApplicationExitInfo), memory (LeakCanary, LMK, onTrimMemory), Perfetto/Studio Profiler, Play Vitals…
swiftui-architect
Specialist in modern iOS app architecture with SwiftUI (iOS 26 / Swift 6.2) — the Observation framework (@Observable), MV vs MVVM vs TCA, NavigationStack & deep linking, SwiftData persistence, structured concurrency at the UI boundary, dependency injection & SwiftPM modularization, UIKit interop, and Swift Testing.…
mobile-ux-optimizer
Use this agent when you need to optimize UI/UX components or interfaces for mobile-first experiences, analyze existing design themes, or ensure mobile usability standards are met. Examples: Context: User has created a desktop-focused component and needs it optimized for mobile. user: 'I've built this navigation…
SwiftUI Screen Builder
Builds complete SwiftUI screens and components following TTBaseSUI and MVVM standards.
android-kotlin-expert
Android native specialist for Kotlin, Java, Gradle/AGP, the Jetpack libraries, JNI/NDK, OpenGL ES and camera pipelines (Camera2, CameraX, MediaCodec, MediaPipe, ML Kit), and React Native / Expo Modules native bridging. Use when the task touches android/ (.kt, .java, .gradle / .gradle.kts, AndroidManifest.xml…