Scaffold a unit test file using the Swift Testing framework. Use when the user asks to create tests, add unit tests, write tests for a manager/presenter/interactor, or scaffold a test file. Mirrors the app's folder structure with _Tests naming convention.
Add a new navigation module to the app. Modules are top-level navigation contexts that replace the entire screen hierarchy (e.g., onboarding, tabbar, admin). Use when the user asks to add a new module, create a new app section that replaces the current flow, or add a new top-level navigation context. Modules use router.showModule and require ModuleWrapperView wrapping.
Scaffold a custom SwiftUI ViewModifier in Components/ViewModifiers/. Use when the user asks to create a view modifier, add a reusable modifier, create a custom modifier, or build a View extension that wraps behavior. ViewModifiers encapsulate reusable view transformations (appearance, behavior, layout) and always include a View extension for ergonomic usage.
Scaffold a new paywall variant view in Core/Paywall/Paywalls/ and wire it into the AB test switch. Use when the user asks to add a new paywall, create a paywall variant, add a subscription screen, or build a purchase flow. Covers custom paywalls (most common), StoreKit native paywalls, and RevenueCat paywalls. Every new paywall must be behind an AB test flag.
Rename a VIPER screen across all files including View, Presenter, Interactor, Router, Delegate, CoreBuilder extension, CoreRouter extension, event name strings, and cross-references from other screens. Use when the user asks to rename, refactor, or change the name of a screen.
Add a Swift package dependency to the project and wire it in. Use when the user asks to add a package, library, SDK, or third-party dependency. Covers Xcode SPM setup, Alias file creation, logger conformance, and when to use the creating-manager skill for service implementations.
Add deep link or push notification handling logic to ModuleWrapperPresenter. Use when the user asks to handle a deep link, URL route, universal link, push notification action, or notification tap. Both deep links and push notifications are handled in ModuleWrapperPresenter.swift.
Add a new AB test by wiring it through ActiveABTests, all ABTestService implementations, DevSettingsPresenter, DevSettingsView, and CoreInteractor. Use when the user asks to add an AB test, feature flag, remote config test, or experiment. Supports both Bool and enum-based tests.