workflows-brainstorm
Shape a feature through collaborative R/S/fit-check dialogue before planning implementation
What this skill does
# Shape a Feature or Improvement
## Runtime Tools
When this skill needs user questions, todo/progress tracking, subagents, or another skill, use the active runtime equivalents in [RUNTIME_TOOLS.md](../RUNTIME_TOOLS.md).
Adhere to the Builder Ethos (ETHOS.md): Boil the Lake, Search Before Building, User Sovereignty.
**Note: The current year is 2026.** Use this when dating brainstorm documents.
Shaping answers **WHAT** to build through structured R/S/fit-check dialogue. It precedes `/workflows-plan`, which answers **HOW** to build it.
You MUST load `skill: shaping` as methodology reference throughout this workflow.
## Feature Description
<feature_description> $ARGUMENTS </feature_description>
**If the feature description above is empty, ask the user:** "What would you like to explore? Please describe the feature, problem, or improvement you're thinking about."
Do not proceed until you have a feature description from the user.
## Execution Flow
### Phase 0: Assess Requirements Clarity
Evaluate whether brainstorming is needed based on the feature description.
**Clear requirements indicators:**
- Specific acceptance criteria provided
- Referenced existing patterns to follow
- Described exact expected behavior
- Constrained, well-defined scope
**If requirements are already clear:**
Use **structured user-question tool** to suggest: "Your requirements seem detailed enough to proceed directly to planning. Should I run `/workflows-plan` instead, or would you like to shape the idea further?"
### Phase 1: Frame the Problem
#### 1.1 Repository Research (Lightweight)
You MUST run a repo scan to understand existing patterns before proceeding:
- Launch subagent `repo-research-analyst` with prompt ("Understand existing patterns related to: <feature_description>")
Do not skip this.
Focus on: similar features, established patterns, active project instruction guidance.
#### 1.2 Collaborative Framing
Use the **structured user-question tool** to gather the Frame — one question at a time; interview me relentlessly until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one
**Capture verbatim:**
- **Source** — Original requests, quotes, or material that prompted the work (preserve exact wording)
**Distill collaboratively:**
- **Problem** — What's broken, what pain exists (distilled from source)
- **Outcome** — What success looks like (high-level, not solution-specific)
This is the shaping "Frame" — the "why" before any solution work begins.
### Phase 2: Populate R (Requirements)
Gather requirements via **structured user-question tool**, one at a time.
**Rules:**
- Each R gets an ID: R0, R1, R2...
- Each R gets a description and status: Core goal, Must-have, Nice-to-have, Undecided, Out
- Max 9 top-level Rs — chunk with sub-reqs (R3.1, R3.2) if exceeding
- **R states the need, NOT the solution** — satisfaction is shown in fit check
- Requirements MUST be testable — no vague verbs like "manage", "handle", "support" without specifics
**Requirement types** (use these IDs where they add clarity):
- **FR** — Functional requirements (what the system does)
- **BR** — Business rules (invariants, constraints, calculations)
- **NFR** — Non-functional requirements (security, performance, compatibility)
These supplement the R table — use them when the requirement fits a clear type. Not every R needs a type prefix.
**Exit condition:** Continue until user says "proceed" or requirements feel complete.
Display the full R table after each addition:
```markdown
| ID | Requirement | Type | Status |
|----|-------------|------|--------|
| R0 | ... | FR | Core goal |
| R1 | ... | BR | Must-have |
```
#### 2.1 Separate Confirmed vs Assumed vs Open
After gathering requirements, explicitly separate:
- **Confirmed** — Directly stated by the user or source material
- **Assumptions** — Reasonable defaults you're using. Label clearly: "Assumed: [X] unless told otherwise"
- **Open Questions** — Things that need answers before planning. Flag whether they're blocking or non-blocking
```markdown
## Assumptions
- A1: [assumption] — reasonable default, confirm before implementation
- A2: [assumption]
## Open Questions
- Q1: [question] — BLOCKING (cannot plan without answer)
- Q2: [question] — non-blocking (can proceed with assumption)
```
### Phase 3: Sketch Shapes
Propose **2-3 shapes** (A, B, C) with parts tables.
**Rules:**
- Each shape gets a short descriptive title
- Each part = mechanism (what we BUILD), not intention
- Parts should be vertical slices, not horizontal layers
- Flag unknowns with ! in the Flag column
- **You MUST diagram each shape's data flow** — ASCII inline while discussing, Mermaid in the final doc. Drawing exposes gaps that prose hides. If you can't diagram it, you don't understand it yet.
**Format per shape:**
```markdown
## A: [Short descriptive title]
| Part | Mechanism | Flag |
|------|-----------|:----:|
| A1 | [concrete mechanism] | |
| A2 | [mechanism with unknown] | ! |
```
Lead with your recommendation and explain why.
### Phase 4: Fit Check
Build a single R x S matrix — binary pass/fail only.
**Rules:**
- Always show full requirement text, never abbreviate
- Flagged unknowns (!) → fail in fit check (can't claim what you don't know)
- No inline commentary in shape columns — explanations go in Notes
- If shape passes all checks but feels wrong → missing R, add it
```markdown
## Fit Check
| Req | Requirement | Status | A | B | C |
|-----|-------------|--------|---|---|---|
| R0 | [full text] | Core goal | pass | pass | pass |
| R1 | [full text] | Must-have | pass | fail | pass |
**Notes:**
- B fails R1: [brief explanation]
```
### Phase 5: Select Shape
Use **structured user-question tool** to pick winning shape based on fit check.
**Options to present:**
- Pick one of the proposed shapes
- Compose from prior parts (e.g., "Shape D = A1 + B2 + C3-A")
- Refine further before deciding
**After selection:**
- Call out remaining flagged unknowns (!) in the selected shape
- Suggest spikes if unknowns need investigation before planning
### Phase 6: Folder Name
Before writing the brainstorm document, determine the plan folder name:
- [ ] Determine type: feat, fix, refactor
- [ ] Create folder name: `YYYY-MM-DD-<type>-<descriptive-kebab-name>`
- Example: `feat: Add User Authentication` → `2026-01-21-feat-user-authentication/`
- Keep it descriptive (3-5 words) so plans are findable by context
This folder will later contain spec.md and prd.json when `/workflows-plan` runs.
### Phase 6.5: Requirements Quality Gate
Before writing the document, review all requirements critically. Check for:
- Vague verbs ("manage", "handle", "support") without concrete specifics
- Hidden implementation details disguised as requirements
- Missing permissions / ownership rules (who can do what?)
- Missing edge cases and failure scenarios
- Missing acceptance criteria
- Contradictions between requirements
- Requirements that are really design decisions (belongs in shapes, not R table)
Revise any issues found before proceeding.
### Phase 7: Capture the Shaping
Write brainstorm document to `docs/plans/YYYY-MM-DD-<type>-<name>/brainstorm.md`.
**Create the folder first:**
```bash
mkdir -p docs/plans/YYYY-MM-DD-<type>-<name>
```
**Document structure:**
```markdown
---
shaping: true
title: [Feature Title]
type: [feat|fix|refactor]
date: YYYY-MM-DD
status: brainstorm
---
# [Feature Title]
## Frame
### Source
> [Verbatim source material — user requests, quotes, messages]
### Problem
[What's broken, what pain exists]
### Outcome
[What success looks like]
## Requirements (R)
| ID | Requirement | Type | Status |
|----|-------------|------|--------|
| R0 | [requirement text] | FR | Core goal |
| R1 | [requirement text] | BR | Must-have |
| R2 | [requirement text] | NFR | Nice-to-have |
## Assumptions
- A1: [assumption] — reasonable default, confirm before implementaRelated 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.