skills/epic/SKILL.md
--- name: epic version: 1.7.0 description: Transform a PRD's user stories into Linear epics and sub-issues. Use whenever the user wants to break down a PRD, create Linear tickets, plan a sprint, decompose a feature into tasks, set up an epic, or convert a user story into implementation work — even if they don't say "epic" explicitly. Common triggers include "create issues", "break down PRD", "set up epic", "epic from VIB-XXX", "create Linear tasks", "plan sprint", "decompose this feature", "sub-
npx skillsauth add ash4180/vorbit skills/epicInstall 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.
Transform User Stories (from PRD) into executable Engineering Tasks (Epics/Issues) in Linear.
Linear MCP namespace: All Linear calls in this skill use
mcp__plugin_linear_linear__*(the namespace shipped with the vorbit plugin). Bare verb names below (get_user,list_teams,list_issues, etc.) refer to the correspondingmcp__plugin_linear_linear__<verb>tool.
Locate
_shared/: This skill ships as a plugin, so_shared/files live in the plugin cache, not your project. Before reading any_shared/...path below, runls -d ~/.claude/plugins/cache/local/vorbit/*/skills/_shared 2>/dev/null | head -1and use the output as the absolute base for every_shared/...reference.
Templates and standards: All issue body templates, validation rules, the Parallel-label criteria, TDD requirements, and E2E test quality rules live in
./output-schema.md(sibling of this file). Read it before Step 7 (Plan Epics) and Step 8 (Traceability Gate). Skipping causes a known failure mode — the agent invents its own issue templates, drops the Required Sections table, or fabricates validation rules that don't match the team's standards. The schema is what makes tickets reviewable.
IF Linear ticket URL or ID provided:
get_issue to fetch the parent ticket/vorbit:design:prd):
US-* IDs)AC-* IDs, numbered globally across the PRD)F*-S* IDs and [AC-X] tags per step (Notion-doc format). These become "Related Flow Steps" in sub-issues.IF feature name provided (no ticket ID):
list_issues scoped to the team with a title-based filterAskUserQuestionget_issue and extract as aboveIF no PRD ticket exists:
/vorbit:design:prd — recommend that path so the source of truth lives in LinearTraceability pre-flight (lightweight check, not the gate):
The authoritative validation runs in Step 8 against the matrix in ./output-schema.md → Validation Rules. Here, just catch obvious gaps as you extract — so broken data doesn't carry through Step 3:
AC-* at allTBD-design markerIf any surface, raise immediately with AskUserQuestion rather than proceeding.
PRD-first sequencing rule:
US-* → AC-* → FlowDesign-source extraction (required for UI work):
Adapt to the team's existing patterns with reliable, scoped calls.
Use Linear MCP in this order:
get_user with query: "me" to verify auth/sessionlist_teams (scoped limit, e.g. 10-20) to get candidateslist_issue_statuses with selected teamlist_issue_labels with selected team and scoped limitlist_projects with selected team and scoped limitReliability rules:
team and limit; page only when neededAsk user if unclear: "Which team/project?"
After the Step 1 requirement baseline is locked, analyze the codebase. Cover all of the following before moving on.
Build search terms from PRD (US titles, AC nouns, flow surfaces):
rg -n "<term1>|<term2>|<term3>" .
Note file structure patterns, naming conventions, and test patterns.
Pattern-first, paths-second:
src/utils/, src/lib/, src/helpers/, shared/, packages/*; UI in src/components/ui/, src/components/common/, feature-local folders. If paths don't exist, continue with repo-wide search.Reuse, Adapt, or Do not use; include confidence and search gaps.Before creating UI/component/composition sub-issues, build the blueprint following the structure in _shared/frontend-knowledge/architecture-blueprint.md. It defines the six required areas (reuse/create matrix, component hierarchy, data/API contract, state ownership, design-system mapping, test seams) and explains why each one matters.
Seed the Reuse/Create matrix from /figma's approved mapping_table[] (see Step 3.7). Each row in the mapping_table — block_name → DS resolution (concrete component) — becomes a row in the Reuse/Create matrix with status Reuse. Blocks marked propose new DS component in the mapping_table become Create rows. This eliminates the failure mode where /epic re-derives components from the lo-fi or hi-fi mockup and reaches for generic names instead of the DS-resolved ones the user already signed off on.
If the blueprint cannot be filled from Figma's mapping_table + PRD + codebase search, ask the user before creating implementation-ready issues. A "needs user input" entry is more useful than a confident wrong guess.
find . -name "constants*" -o -name "config*" | head -20
List relevant constants. Identify where new constants should go. Rule: every hardcoded value must reference a constant.
If a prototype exists with mock data, list all mock locations (mocks/ folders) and include "Swap mock to real API" as a sub-issue.
If the feature includes UI components, queue these reads for the implementing agent:
_shared/frontend-knowledge/ui-patterns.mdreact is in package.json: also _shared/frontend-knowledge/react-best-practices/index.md for performance rulesIdentify existing UI patterns to follow.
For UI, layout, component, composition, or block build-up work, read references/figma-source-of-truth.md (in this skill folder) before creating issues. It covers:
output-schema.md → Design Source of Truth)Consume /figma v1.6.0+ structured outputs (the redesigned Figma chain produces these):
mapping_table[] — the user-approved block→DS-component resolution from /figma's Phase 2 mapping gate. This is the source of truth for concrete DS names; use it to seed the FE Architecture Blueprint Reuse/Create matrix (see Step 3.3). NOT re-derived from frame inspection — that's how the v1.5.0 ignore-DS failure leaked.Flow (or Flow Page) listing the canonical journey with [AC-X] tags per step. Read it via mcp__figma__get_metadata and use the steps directly as "Related Flow Steps" in sub-issues (instead of inferring from frame names or page hierarchy).implements: AC-X annotations — every interactive element in the Figma file should have one. Read them via get_metadata's annotations field (per [[reference_figma_metadata_authoritative_fields]]). Use them to populate sub-issue "Design Source of Truth → states / target surface / conflicts" — annotations are the ground truth for which frame implements which AC. Pin-style canvas annotations don't work; only Dev Mode does.Apply every step in figma-source-of-truth.md. If any element is unclear from Figma + PRD, ask the user before creating UI sub-issues.
Before creating any ticket, identify files that must change together.
A "coupled pair" is any two files where one file's output/format is consumed by the other. If one changes without the other, the system breaks.
Examples of coupling:
For each coupled pair:
Rule: Never split tightly coupled file changes across separate tickets without explicitly documenting the shared contract in both.
For large codebases: If the dependency graph is unclear, spawn a team or use /vorbit:review to map it before planning tickets.
If any requirement is unclear at this point, stop and use AskUserQuestion — the SDD doc is downstream of clear requirements, not a way to make vague ones concrete.
Create the SDD following the structure in ./output-schema.md → SDD Document Structure. It lists every required section (Technical Overview, Flow Impact Matrix, Design Evidence Matrix, FE Architecture Blueprint, PRD Compliance Check, Data Model Changes, API Changes, Component Breakdown, Testing Strategy, Risks & Unknowns) and where each one draws its content from.
CRITICAL: Get approval before creating issues.
Present the plan and ask:
DO NOT proceed until the user confirms.
Read ./output-schema.md now. It holds the Title Format table, the Epic (Parent) and Sub-issue (Child) description templates, the Required Sections table, the Priority Mapping, the Parallel Label Criteria, the TDD Requirement, and the E2E Test Quality Rules. Populate templates from there.
1 User Story = 1 Epic.
For each User Story, prepare:
output-schema.mdEpic planning inputs per story (required):
US-*)AC-*)F1-S3, API /orders)Ticket derivation rule: Use flow steps to identify concrete technical work — UI/component changes, API/service changes, data/state changes, error-path handling.
Mapping Epic AC to Sub-issues:
AC-*)F*-S*)Read ./output-schema.md → Validation Rules and check every link in the matrix:
US-* → AC-*AC-* → flow steps F*-S* (or explicit non-journey reason)TBD-designIf any link is missing, stop and resolve via AskUserQuestion before Step 9.
Using the plan from Steps 7 + 8:
parentId = epic IDPresent the following:
output-schema.md → Implementation Order Format (Phase 1/2/3 tree with blocked by: lines)Next: Start with Phase 1 issues using /vorbit:implement:implement ABC-101
development
Sync design tokens and components from a codebase to a Pencil canvas (`.pen` files), or set up a Pencil canvas from a style guide when no codebase exists. Use when the user says "sync pencil", "setup pencil", "configure pencil", "pencil sync", "sync tokens to pencil", "build pencil component library", or names Pencil/`.pen` files explicitly. Also triggers when mockups generated by Pencil don't match project conventions.
development
--- name: figma version: 1.6.0 description: Use when user says "figma", "figma it", "sync figma", "figma mockup", "create figma file", "design to figma", "figma from PRD", "figma from journey", "build in figma", or "figma design system" — anything that creates, syncs, or updates Figma design systems, components, variables, mockups, or front-end-ready screens. Always enumerates the linked Figma library FIRST (library-driven discovery, not per-need search), produces a block→DS mapping table for us
development
Use when the user wants to build Webflow pages, templates, or components, with or without Figma designs as reference.
testing
Use when the user wants to verify an implementation, validate acceptance criteria, or run a Vorbit-style post-change check using shared project rules.