Use after brainstorming to apply vanilla-rails patterns to a feature, producing structured handoff for implementation planning. Invoke with /shape.
View on GitHubZempTime/zemptime-marketplace
vanilla-rails
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/ZempTime/zemptime-marketplace/blob/main/vanilla-rails/skills/shaping/SKILL.md -a claude-code --skill shapingInstallation paths:
.claude/skills/shaping/# /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:** - **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" (co