skills/prd/SKILL.md
--- name: prd version: 2.1.0 description: Use when user says "write PRD", "create requirements", "define feature", "document requirements", "product spec", "create ticket", or wants to capture a feature spec as a single Linear ticket. Creates a Linear ticket carrying numbered AC-* acceptance criteria, ordered flow steps with F*-S* IDs + AC tags (Notion-doc format), component mapping intent (kind-of-component per block, NOT concrete DS names — that's /figma's job), state list (empty/loading/error
npx skillsauth add ash4180/vorbit skills/prdInstall 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.
When asked to review whether sub-issues fulfill a parent PRD ticket:
get_issue) and all sub-issues (list_issues with the parent's parentId)AC-N to the sub-issue(s) covering itRead this section before drafting in Step 3. Without these required sections and validation rules, the PRD ticket doesn't carry the structure that /vorbit:implement:epic needs to break it into traceable sub-issues. A passing draft skips no required section and trips no validation rule below.
| Section | Required | Rules |
|---------|----------|-------|
| Title (H1) | Yes | 3-8 words, no jargon. Becomes Linear ticket title. |
| Description | Yes | 1-2 short sentences, no tech detail |
| Problem | Yes | 1-2 short paragraphs, user pain not tech gap |
| Design Source of Truth | If UI work | Target surface + conflict rule. Light. The visual contract lives in Figma; PRD doesn't replicate it. |
| User Stories | Yes | As a [user], I want ..., so ... plus AC-N items, numbered globally |
| User Flows | Yes | At least one flow in Notion-doc format — F*-S* step IDs + [AC-X] tags per step, Entry/Exit anchors at flow level |
| State List | Yes (UI work) | Every UI state (default/loading/empty/error/etc.) as text, tagged by governing AC. NOT mockups. |
| Component Mapping Intent | Yes (UI work) | Per block from /explore, intent only (kind of component). No concrete DS names. |
| Constraints | Yes | Limits the implementation must respect |
| Success Criteria | Yes | Measurable with numbers |
As a [user], I want [goal], so [benefit]. Each story has at least one AC-N. AC numbering is global across the PRD (AC-1 through AC-N), not per-story — so /figma annotations and /epic sub-issues can reference any AC unambiguously.F*-S* step IDs + [AC-X] tags per step. 3-8 steps per flow is the sweet spot.AC-N should appear in at least one step's [AC-X] tag AND in the State List (if it governs a state) — orphan ACs are a coverage gap caught at /verify time.TBD must have a matching AskUserQuestion attempt| Wrong | Right | Why |
|-------|-------|-----|
| "We need JWT auth" | "Users cannot access personalized features without accounts" | Problem describes user pain, not the technical fix |
| "Users should be happy with login" | "90% of users complete login in under 10 seconds" | Success criteria need real numbers |
| "OAuth2 JWT Token Auth Implementation" | "User Login and Signup" | Title avoids jargon |
| Flow as system trace (User → API → DB → API → User) | **F1-S1**: Login screen → Click Submit → Loading state → Token returned [AC-1, AC-2] | Flows describe what the user sees, with F*-S* IDs and [AC-X] tags per step |
| component_mappings: ShadcnInput + Badge | component_mapping_intent: "search input with inline filter chips, multi-select" | PRD declares intent; /figma's Phase 2 resolves to concrete DS names from the linked library |
| Empty state in Design Source of Truth as a Figma node | Empty state in State List as text + governing AC | States are PRD concerns (text); Figma stays happy-path; code renders each state per AC |
| "Match Figma" | "Example: Implement Figma node <primary-node-id> exactly for <target surface>; <reference-node-id> is reference only; <specific layout/state rule> must come from the primary node" | Agents need a concrete source of truth and conflict rule |
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.