skills/feature-lifecycle/SKILL.md
Full-lifecycle guide for implementing a feature end-to-end in a London-school DDD Swift/iOS codebase (or any layered Domain/Infrastructure/App project that uses protocol + concrete impl aggregates, narrow infrastructure ports, and Chicago-school state-based TDD). Use this skill whenever the user asks to **build**, **implement**, **add**, **ship**, or **develop** a feature — including vague asks like "let's add X", "build me Y", "implement Z", or "wire up the W flow". Strongly prefer this skill over jumping straight to code whenever a new domain concept is in play. Each lifecycle phase has its own focused sub-guide so the agent loads only the instructions for the current task, not a 600-line monolith.
npx skillsauth add tddworks/claude-skills feature-lifecycleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
One skill, eight focused phases. Each phase tells the agent exactly what to do for that step — inputs, steps, outputs, and a gate to know it's done.
1. Discovery → what already exists, what the user means
2. Domain design → ASCII architecture + naming + user approval
3. Domain TDD → value tests + aggregate tests + protocol + impl class (Red → Green)
4. Composition → plug the aggregate onto parent + facade forwarders
5. Infrastructure → port conformance + push routing + wire format
6. Views → SwiftUI bind to the facade; no ViewModel layer
7. Docs → feature doc + aggregate audit + visual artifacts
8. Verify → pre-commit checklist + tests + build
The phases are sequential. Don't skip ahead. If a phase's gate isn't met, go back.
Load only the reference for the phase you're in. Don't read the full set up front.
| Phase | Load | Output when you're done |
|---|---|---|
| 1. Discovery | references/01-discovery.md | A short "discovery note" listing existing docs, drift, user's words |
| 2. Domain design | references/02-domain-design.md | Approved ASCII architecture + component table + file map |
| 3. Domain TDD | references/03-domain-tdd.md | Protocol + <NounImpl> + port + tests all green |
| 4. Composition | references/04-composition.md | Aggregate plugged into parent entity + facade forwarders on the composition root |
| 5. Infrastructure | references/05-infrastructure.md | Port conformance + push routing wired; infra layer green |
| 6. Views | references/06-views.md | Views binding to the facade; UI builds |
| 7. Docs | references/07-docs.md | Feature doc + audit update + visual artifacts |
| 8. Verify | references/08-verify.md | Checklist green, tests green, release build green |
// 1. Domain noun — protocol
@MainActor @Mockable
public protocol <Aggregate>: Observable {
var items: [<Value>] { get }
// ... rich computed queries + business-intent commands + apply/upsert/remove
}
// 2. Concrete implementation class
@Observable @MainActor
public final class <AggregateImpl>: <Aggregate> {
public init(port: (any <AggregatePort>)? = nil) { … }
}
// 3. Narrow internal port (infra seam)
@Mockable
public protocol <AggregatePort>: Sendable {
// async throws methods the infra client / DB / API implements
}
Every phase assumes this shape. Deviations (protocol-less classes, legacy xxxBackend glue, role protocols named as collections) are smells — see references/02-domain-design.md for the naming playbook.
as? <concrete impl>? Protocol surface too minimal. Grow it.XxxBackend, XxxRegistry, XxxManager, XxxService. Infrastructure words in the domain.@Observable reactions.@Observable indirection (e.g. root.something?.child?.more). Expose a facade on the root; never leak composition detail to views.verify(mock).method.called(...)). This skill uses Chicago-school state/return-value tests only.Load the next sub-guide when you're ready for the phase. One at a time.
tools
Replace with description of the skill and when Claude should use it.
development
iOS/macOS app localization management for Tuist-based projects with .strings files. Use when: (1) Adding new translation keys to modules, (2) Validating .strings files for missing/duplicate keys, (3) Syncing translations across languages, (4) AI-powered translation from English to other locales, (5) Checking placeholder consistency (%@, %d), (6) Generating localization reports, (7) Updating Swift code to use localized strings instead of hardcoded text.
development
Guide for building SwiftUI components using Brad Frost's Atomic Design methodology — organizing views into Atoms, Molecules, Organisms, Templates, and Pages with Design Tokens for theming. Use this skill whenever building new SwiftUI UI components, refactoring existing views into reusable pieces, creating a design system, or organizing a component library. Also trigger when the user mentions "atomic design", "design system", "component hierarchy", "reusable components", "atoms and molecules", "design tokens", or wants to decompose a complex SwiftUI view into smaller, composable parts, or needs to implement theming/customization across a SwiftUI app.
development
Create interactive iOS/mobile app UX flow prototypes as HTML documents with realistic phone mockups. Use when: (1) Visualizing user journeys and navigation flows, (2) Creating mobile app wireframes, (3) Documenting screen-to-screen navigation patterns, (4) Presenting iOS UI designs with annotations, (5) Prototyping app architecture before implementation. Generates self-contained HTML files with iOS-native styling, phone frames, flow arrows, and callout annotations.