shaping
Use after brainstorming to apply vanilla-rails patterns to a feature, producing structured handoff for implementation planning. Invoke with /shape.
What this skill does
# /shape **Position in workflow:** 1. `superpowers:brainstorming` → explores what, clarifies requirements 2. **`/shape` (this)** → applies patterns, defines right things to do 3. `superpowers:writing-plans` → detailed implementation steps **When invoked, execute this workflow. Do not skip phases.** --- ## Phase 1: Confirm Scope If brainstorming already happened, summarize: - Problem being solved - What's in/out of scope - Who can use this If not, ask these questions before proceeding. --- ## Phase 2: Discover Applicable Skills Check each vanilla-rails skill. For each, state whether it applies: **Always apply:** - **work-breakdown** - How to split into PRs - **testing** - Test patterns - **style** - Code style conventions - **naming** - Naming conventions **Apply if relevant:** - **routing** - Adding routes, nesting, namespaces? - **data-modeling** - Adding tables, migrations, schema decisions? - **delegated-types** - 5+ content types comingling in feeds/timelines? - **models** - Adding model behavior, state tracking, concerns? - **controllers** - Adding endpoints, state changes, resources? - **views** - ERB templates, partials, Turbo Streams? - **jobs** - Background processing needed? - **hotwire** - Dynamic UI updates? - **writing-affordances** - 3+ related methods or prefix clusters? **Say:** "These skills apply: [list]. Loading each to apply patterns." --- ## Phase 3: Apply Patterns For each applicable skill, invoke it and document the decision: ``` **data-modeling:** UUID primary key, account_id, state-as-records **models:** State as records → `has_one :pin`, not `pinned: boolean` **models:** Concern as adjective → `Card::Pinnable` **controllers:** Resource extraction → `resource :pinning` **naming:** Resource noun → `Pin` (create = pin, destroy = unpin) ``` Ask the user to confirm or adjust decisions. --- ## Phase 4: Break Down Work Using work-breakdown patterns, propose PRs: ``` PR 1: "Add pinning to cards" (migration + model + concern + tests) - 4 files PR 2: "Add UI for pinning cards" (controller + views + tests) - 4 files PR 3: "Sort pinned cards first" (scope + view + tests) - 3 files ``` **Check:** Does any PR title have "and"? Split it. --- ## Phase 5: Output Shaping Document Write to `docs/shaping/YYYY-MM-DD-feature-name.md`: ```markdown # [Feature] Shaping ## Scope - Problem: [what problem this solves] - In scope: [list] - Out of scope: [list] - Users: [who can use this] ## Pattern Decisions [from Phase 3 - which skills applied and how] ## PRs [from Phase 4 - ordered list of PRs with file counts] ## Open Questions [any unresolved items] ``` --- ## Phase 6: Handoff to Planning Ask: "Ready to create implementation plan?" If yes, invoke `superpowers:writing-plans` with the shaping document as context. The writing-plans skill will create detailed, step-by-step implementation tasks for each PR. --- ## Skill Reference | Skill | When to Apply | |-------|---------------| | routing | Routes, nesting, namespaces | | data-modeling | New tables, migrations, schema | | delegated-types | 5+ types in unified timeline/feed | | models | State tracking, concerns, associations | | controllers | Endpoints, resources, state changes | | views | ERB templates, partials, collection rendering | | jobs | Background processing | | hotwire | Dynamic UI, Turbo frames/streams | | writing-affordances | 3+ related methods, prefix clusters | | work-breakdown | Always (PR structure) | | testing | Always | | style | Always | | naming | Always (new code) | --- **Remember:** This is a command. Execute each phase in order. Do not skip to code.
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.