SwiftyJourney
- 6 skills
- 0 followers
- 1 day ago last updated
- ▌ Swift Testing Expert · swiftyjourney bundleUse this skill to write, review, design or migrate Swift tests, and for TDD workflow (red-green-refactor, triangulation, outside-in vs inside-out, legacy code, bug fixes). Covers Swift Testing syntax (@Test, @Suite, #expect, #require, confirmation, parameterized tests, traits), migrating an XCTest suite incrementally (API translations, interop modes, replacing addTeardownBlock and XCTestExpectation), test doubles (dummy, stub, spy, fake, mock), test design (naming, makeSUT, DSLs, snapshots, localization), making ASYNC tests deterministic without sleeps, and choosing a testing level (unit, integration, snapshot, acceptance, UI). Trigger even when "test" isn't said -- "my tests are flaky", "how do I fake the network", "this async test hangs", "should I mock this", "should I write the test first". Do NOT use for app architecture (ios-architecture-expert), BDD specs or acceptance criteria (requirements-engineering), general Swift language features (swift-language-expert), or SwiftUI view code (swiftui-expert).
- ▌ IOS Architecture Expert · swiftyjourney bundleUse when the user is designing, structuring, refactoring, or reviewing the architecture of an iOS/Swift app: separating features into modules/layers (domain, API, cache, presentation, UI), choosing between MVC/MVVM/MVP, wiring dependencies in a composition root, breaking up a view controller that coordinates too much, making code testable via protocol boundaries and test doubles, adapter/proxy/composite/decorator patterns, or handling Sendable/@MainActor at module boundaries. Also use it to name what is wrong with a design -- command-query separation, interface segregation, dependency inversion, coupling bottlenecks. Trigger even when 'architecture' isn't mentioned -- e.g. 'where should networking code live', 'my view controller is untestable', 'how do I split this into Swift packages', 'MVVM vs MVP', 'should this be a protocol'. Do NOT use for pure SwiftUI view/state/styling work (swiftui-expert), writing BDD specs or user stories (requirements-engineering), Swift Testing or XCTest syntax questions, or non-i
- ▌ Requirements Engineering · swiftyjourney bundleUse this skill to turn vague, ambiguous, or "lousy" requirements into precise, testable specifications BEFORE any code is written -- even when the user never says "BDD", "use case", or "acceptance criteria". Trigger when someone has a half-baked feature idea, an under-specified ticket, or a business brief that's "open to interpretation" and needs it pinned down: clarifying questions, As-a/I-want/So-that narratives, Given/When/Then acceptance criteria, use cases (data inputs, happy path, error and cancel courses), model-spec tables, request/response payload contracts, flowcharts, and module-dependency diagrams. This is the SPECIFICATION altitude -- WHAT to build and the contracts to honor. Hand off the implementation to the iOS architecture skill (composition root, layers, packages, concurrency), SwiftUI view code, and Swift Testing syntax -- do NOT use this skill to write or refactor that code, only to define what it must satisfy.
- ▌ Swift Language Expert · swiftyjourney bundleUse this skill for non-obvious Swift LANGUAGE and standard-library techniques -- features that make code clearer, safer, or faster but that developers routinely miss. Covers pattern matching (if/guard-case, switch over tuples); functions, closures, and key paths (variadics, autoclosures, rethrows); value semantics and custom types (copy-on-write, ~Copyable, callAsFunction, recursive enums, property wrappers); protocols and generics (associated types, opaque some vs existential any, phantom types, hand-rolled type erasure); collections (lazy, RangeSet, InlineArray, sorting); strings and Unicode (grapheme-correct iteration, custom interpolation); concurrency and errors (async/await, task groups, AsyncStream, typed throws, custom global actors, Mutex and the Synchronization framework, and the nonisolated(unsafe)/assumeIsolated/@preconcurrency escape hatches); and debugging and code organization (assertions, dump, enum namespaces, directives). Trigger for "how do I do X in Swift" and idiomatic refactors. Do NOT u
- ▌ Swiftui Expert · swiftyjourney bundleWrite, review, or improve SwiftUI code following best practices for state management, view composition, performance, accessibility, and modern APIs. Use when building SwiftUI features, refactoring views, reviewing code quality, or adopting modern SwiftUI patterns.
- ▌ Swiftui Uikit Interop · swiftyjourney bundleUse this skill to bridge SwiftUI and UIKit in either direction. Embed SwiftUI in a UIKit app -- present or child-embed a UIHostingController, put SwiftUI in UICollectionView/UITableView cells via UIHostingConfiguration, or build a widget / Live Activity. Wrap UIKit for use in SwiftUI -- UIViewRepresentable / UIViewControllerRepresentable with a Coordinator for delegates and data sources. Pass data and state across the boundary (init params, @Binding, closures, environment/trait forwarding), fix hosting-controller sizing, and migrate a UIKit AppDelegate/SceneDelegate app incrementally to the SwiftUI App lifecycle. Trigger even when the user doesn't say "interop" -- e.g. "show this SwiftUI screen from my view controller", "use my UIKit map view in SwiftUI", "put SwiftUI in a collection view cell". Do NOT use for pure SwiftUI view code (swiftui-expert), app architecture / composition root (ios-architecture-expert), or general Swift language questions (swift-language-expert).