agent-instructions
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what…
Use when building native iOS applications. Covers SwiftUI architecture, state management, navigation, networking, persistence, background behavior, and App Store submission requirements. Trigger on "structure my swiftui app", "deep links open the wrong screen", "background fetch
Claude Code
$ npx -y skills add nimadorostkar/Claude-Skills-collection --skill ios --agent claude-code
Codex
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a codex -y
Cursor
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a cursor -y
Gemini CLI
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a gemini-cli -y
GitHub Copilot
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a github-copilot -y
OpenCode
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a opencode -y
Windsurf
$ npx skills add nimadorostkar/Claude-Skills-collection --skill ios -a windsurf -y
name: ios description: Use when building native iOS applications. Covers SwiftUI architecture, state management, navigation, networking, persistence, background behavior, and App Store submission requirements. Trigger on "structure my swiftui app", "deep links open the wrong screen", "background fetch isn't running". Do not use for Swift language issues like concurrency or optionals — see the swift skill; for signing and rollout, see the mobile-release skill. metadata: category: mobile version: 1.0.0 tags: [ios, swiftui, mvvm, app-store, swift]
Build iOS applications with a single source of truth for state, correct lifecycle handling, and an architecture that survives the App Review process without surprises.
1. **Model the state** — One `@Observable` model per screen or feature. The view derives everything it displays from it; it holds no duplicate copies. 2. **Make navigation data-driven** — `NavigationStack(path:)` with an enumerated route type. Deep linking then becomes "append to the path", not a second navigation system. 3. **Handle the lifecycle** — Work started in the foreground is suspended when the app is backgrounded. Anything that must complete needs a background task assertion or a background URL session. 4. **Design for offline** — Assume the network fails. Cache, queue writes, and reconcile. On mobile this is the normal case, not the edge case. 5. **Prepare for review** — Every permission needs a purpose string that says what the app does with it. A privacy manifest is mandatory. Rejections are almost always about permissions, purchases, or metadata.
**Type-safe, deep-linkable navigation:**
enum Route: Hashable {
case orderList
case order(id: String)
case refund(orderID: String)
}
@Observable
final class Router {
var path: [Route] = []
func handle(_ url: URL) {
// myapp://orders/ord_123/refund
guard url.host == "orders" else { return }
let parts = url.pathComponents.filter { $0 != "/" }
guard let orderID = parts.first else { return path = [.orderList] }
path = parts.contains("refund")
? [.orderList, .order(id: orderID), .refund(orderID: orderID)]
: [.orderList, .order(id: orderID)]
}
}
struct AppView: View {
@State private var router = Router()
var body: some View {
NavigationStack(path: $router.path) {
OrderListView()
.navigationDestination(for: Route.self) { route in
switch route {
case .orderList: OrderListView()
case .order(let id): OrderDetailView(orderID: id)
case .refund(let orderID): RefundView(orderID: orderID)
}
}
}
.environment(router)
.onOpenURL { router.handle($0) }
}
}Deep links reconstruct the full back stack, so the user can navigate up naturally — a detail most hand-rolled routers get wrong.
A curated library of 137 production-grade skills for Claude and other AI coding agents. Every skill follows one structure, speaks with one voice, and earns its place by changing what the agent does.
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what…
Use when an agent needs state that survives a session or a context compaction. Covers what to persist, file-based memory,…
Use when automating agent behavior with lifecycle hooks. Covers hook events, deterministic enforcement of rules the model should…
Use when packaging skills, commands, hooks, and MCP servers into a distributable plugin. Covers manifest structure, bundling,…
Use when writing a new skill for an AI agent. Covers scoping, description writing for reliable triggering, progressive…
Use when reviewing or improving an existing agent skill. Covers triggering accuracy, content quality, redundancy with the base…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.