vertical-slice-planning
Use this skill when discussing feature breakdown, PR structure, implementation ordering, or how to decompose work. Guides thinking about vertical slices (end-to-end functionality) rather than horizontal layers (all of one layer first). Triggers on "how should we break this down?", "what order should we implement?", "how many PRs?", or decomposition discussions.
What this skill does
# Vertical Slice Planning Skill
This skill guides the decomposition of features into vertical slices - thin, end-to-end pieces of functionality that can be shipped independently.
## When to Use
Apply this skill when:
- Breaking down a feature into sub-issues
- Deciding implementation order for a feature
- Planning PR structure for a feature
- Users ask "how should we break this down?"
- Discussing what to build first
- Reviewing feature decomposition plans
## What is a Vertical Slice?
A vertical slice cuts through ALL layers of the application to deliver a thin piece of complete functionality.
```
┌─────────────────────────────────────────┐
│ HORIZONTAL LAYERS │
├─────────────────────────────────────────┤
│ UI Layer │ █ │ │ │ │
├────────────────┼───┼─────┼─────┼────────┤
│ API Layer │ █ │ │ │ │
├────────────────┼───┼─────┼─────┼────────┤
│ Service Layer │ █ │ │ │ │
├────────────────┼───┼─────┼─────┼────────┤
│ Data Layer │ █ │ │ │ │
└────────────────┴───┴─────┴─────┴────────┘
↑
Vertical Slice
(Complete feature)
```
## Vertical vs Horizontal
### Horizontal Approach (Avoid)
Building all of one layer before moving to the next:
1. Build all database models
2. Build all API endpoints
3. Build all UI components
4. Wire everything together
**Problems:** Nothing works until everything is done, late integration issues, hard to show progress.
### Vertical Approach (Prefer)
Building thin, complete features:
1. User can view empty product list (UI → API → DB)
2. User can add a product (UI → API → DB)
3. User can edit a product (UI → API → DB)
**Benefits:** Each slice is shippable, continuous integration, visible progress.
## How to Identify Vertical Slices
### 1. Start with User Actions
What can the user DO? Each action is often a slice.
### 2. Find the Thinnest Version
For each action, what's the minimal implementation?
- Skip validation (add later)
- Skip edge cases (add later)
- Skip optimization (add later)
### 3. Order by Dependency
Which slices enable other slices?
- "View list" before "Filter list"
- "Create item" before "Edit item"
## Slice Sizing Guidelines
| Size | Indicators |
|------|------------|
| **Too Big** | Multiple user actions, >2 days work, many acceptance criteria |
| **Too Small** | Just infrastructure, just types, <1 hour work |
| **Just Right** | One capability, 1-2 days, 3-5 acceptance criteria |
## Naming Convention for Issues
Use prefixes to show slice relationships:
```
SLICE 1: Basic product list display
SLICE 1.1: Add product image support
SLICE 2: Product search functionality
```
## Questions to Guide Slicing
1. What's the first thing a user should be able to do? → First slice
2. What's the simplest version of this action? → Strip nice-to-haves
3. What do we need to learn before building more? → Early slices
4. If we had to ship tomorrow, what would we cut? → Later slices
## Integration with Linear Workflow
When creating Linear issues:
- Parent issue = Full feature context
- Direct sub-issues = Vertical slices (potential PRs)
Each slice should be independently deployable, testable, and valuable.
Remember: **Ship working software frequently. Slices make this possible.**
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.