skills/feature-brainstorm/SKILL.md
Use this skill when brainstorming, designing, or planning any Swift feature. This is the right skill whenever the user describes a feature they want to build, asks "how should I implement X", wants to think through a design, or starts with something like "I want to add..." or "let's plan...". Use it even if they don't explicitly say "brainstorm" — if there's a feature to figure out, start here before touching any code.
npx skillsauth add andrewdmontgomery/powerswift feature-brainstormInstall 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.
Your job is to help the human think through a Swift feature thoroughly — discovering its shape, exploring the tricky parts, and surfacing a clear plan that respects scope. The goal is insight before implementation.
This is a structured conversation, not a monologue. You move through phases, check in with the human at each gate, and don't proceed until they give you the green light.
1. Frame
2. Decompose
3. Explore ←──────────┐
4. Lessons Learned ────┘ (loop if new aspects surface)
5. Integrate
6. Scope
7. Plan
Phases 3 and 4 can loop: if Lessons Learned surfaces new aspects, go back to Explore for those before continuing to Integrate.
Start by making sure you understand the feature clearly. Ask clarifying questions if needed. Your goal: one crisp statement that captures what this feature does and why it matters.
Articulate:
Gate: Show your framing to the human. Ask if this captures it or if anything is off. Wait for their confirmation before moving on.
Break the feature into its distinct aspects — the meaningful sub-problems that each deserve their own attention. Think across layers like:
Aim for 3–7 aspects. More usually means you're too granular; fewer might mean something's being glossed over.
Gate: Present the aspects to the human with a sentence on why each matters. Let them add, remove, or rename aspects before you proceed.
Work through each aspect one at a time. For each:
Be specific to Swift. Think about @Observable, actors, async/await, SwiftUI state,
value vs reference types, protocol-based injection — whatever's genuinely relevant to this
aspect.
Gate: After finishing each aspect, briefly summarize the key finding and ask the human if the direction feels right before moving to the next one.
After exploring all aspects, step back and ask: what did we discover that changes earlier thinking?
If new aspects surface here, loop back to Phase 3 and explore them. Update earlier findings where needed. Be honest about reversals — "we assumed X, but actually Y" is more useful than a plan that ignores what it learned about itself.
Gate: Present the lessons and any proposed revisions. Get the human's sign-off before moving to integration.
Pull everything together into a coherent narrative:
This should read like a design doc summary — clear enough that a developer could pick it up and know what to build.
Gate: Show the integrated design to the human. Ask if anything feels incomplete or wrong before scoping.
Decide what's in and what's out for this implementation.
In scope: Everything needed for a solid, shippable version of the feature.
Out of scope — save for later: Good ideas that don't belong in this version. Log them as "Future Ideas" — not discarded, just deferred. They'll be carried into the plan.
Discarded: Ideas that were explored and found to not add value, add disproportionate complexity, or contradict the feature's purpose. A brief note on why is enough.
Be direct about cuts. A tight scope done well beats an ambitious scope done poorly.
Gate: Present the scope decision and reasoning. Let the human adjust it before
handing off to writing-plans.
The brainstorm is complete. Now invoke the writing-plans skill, passing it everything
we've established:
The writing-plans skill takes this as its input and produces the implementation plan.
From there, swift-tdd handles execution.
Your role here is to be a good handoff — give writing-plans enough context that it
doesn't have to re-derive decisions already made. The brainstorm is the source of truth
for what to build and why; the plan is the source of truth for how.
Check in at every gate. Don't skip ahead. The human's input shapes the direction — surprises at the end are expensive.
Capture everything. Out-of-scope ideas and discarded ideas both get documented. Nothing gets silently dropped.
Be concrete about Swift. Generic design advice is less useful than specific guidance
about @Observable, actors, async/await, protocols, value vs reference types, and
SwiftUI state patterns.
Prefer depth over breadth. Thoroughly exploring four aspects beats skimming eight. If the aspect list is long, offer to prioritize the ones with the most uncertainty first.
Loop when it matters. Lessons learned aren't a formality. If something genuinely changes earlier thinking, go back and address it. A plan that ignores its own discoveries isn't worth much.
development
Use when implementing any Swift or SwiftUI feature or bugfix, before writing implementation code
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.