Help us improve
Share bugs, ideas, or general feedback.
From jaan-to
Generates production-ready frontend task breakdowns from UX design handoffs, Figma links, screenshots, or PRDs. Includes component inventory and state matrices for planning frontend work.
npx claudepluginhub parhumm/jaan-to --plugin jaan-toHow this skill is triggered — by the user, by Claude, or both
Slash command
/jaan-to:frontend-task-breakdownThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Transform UX design handoffs into production-ready frontend task breakdowns.
Converts PRDs into structured backend development tasks with data model notes, reliability patterns, and error taxonomy. Use for planning backend work from requirements.
Breaks down requirements into tasks via 4 researching AI agents (PM, UX, Tech, QA) for multi-perspective analysis. Quick parallel mode (~3min) or Deep serial mode (~8min) with iterative Q&A.
Implements UI components and frontend architecture. Breaks down designs into component trees, manages state, integrates with backend APIs, ensures accessibility and responsive behavior.
Share bugs, ideas, or general feedback.
Transform UX design handoffs into production-ready frontend task breakdowns.
$JAAN_CONTEXT_DIR/tech.md - Tech stack context (optional, auto-imported if exists)
#current-stack, #frameworks, #constraints$JAAN_CONTEXT_DIR/config.md - Project configuration$JAAN_TEMPLATES_DIR/jaan-to-frontend-task-breakdown.template.md - Output template$JAAN_LEARN_DIR/jaan-to-frontend-task-breakdown.learn.md - Past lessons (loaded in Pre-Execution)${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocolUX Handoff: $ARGUMENTS
Accepts any of:
Contract parsing: If --contract present, extract path first, validate file exists and contains openapi: or swagger: key, then parse remaining positional argument as UX handoff description or Figma link.
If no input provided, ask: "What feature or UX handoff should I break down?"
MANDATORY — Read and execute ALL steps in: ${CLAUDE_PLUGIN_ROOT}/docs/extending/pre-execution-protocol.md
Skill name: frontend-task-breakdown
Execute: Step 0 (Init Guard) → A (Load Lessons) → B (Resolve Template) → C (Offer Template Seeding)
Also read tech context if available:
$JAAN_CONTEXT_DIR/tech.md - Know the tech stack for framework-specific patternsRead and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md
Override field for this skill: language_frontend-task-breakdown
ultrathink
Use extended reasoning for:
Analyze the provided input to extract:
If Figma link:
If design description / feature name:
If screenshot path:
If PRD reference:
Build an initial understanding:
INPUT SUMMARY
─────────────
Type: {figma/description/screenshot/prd}
Screens: {list of identified screens}
Flows: {list of user flows}
Data: {data requirements identified}
Unknown: {areas needing clarification}
Ask up to 5 smart questions based on what's unclear from Step 1. Skip questions already answered by the input.
Scope questions (ask if ambiguous):
Framework questions (ask if tech.md unavailable or incomplete): 3. "Any specific framework constraints? (React, Vue, Next.js, etc.)" — if not in tech.md
Depth question (always ask): 4. Use AskUserQuestion:
Coverage question (ask if scope is Production or In between): 5. Use AskUserQuestion:
For each screen/flow, identify components using Atomic Design taxonomy:
Reference: Full taxonomy table with estimate bands in
docs/extending/frontend-task-breakdown-reference.md→ Atomic Design Taxonomy.
For each component, record:
Present component inventory:
COMPONENT INVENTORY
───────────────────
Atoms: {count} ({reusable}/{new})
Molecules: {count} ({reusable}/{new})
Organisms: {count} ({reusable}/{new})
Templates: {count}
Pages: {count}
Total: {total_count} components
When an API contract is available:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/openapi-integration-reference.mdfor code generation decision tree.
For every component at molecule level and above, enumerate states:
| State | What to Define | UI Element |
|---|---|---|
| Default | Initial render appearance | Standard view |
| Loading | During data fetch | Skeleton shimmer or spinner |
| Success | Happy path with data | Populated view |
| Error | API failure or validation error | Error message + retry action |
| Empty | No data available | Illustration + CTA |
| Partial | Cached data while refreshing | Stale data + refresh indicator |
For screens/pages, also enumerate:
Edge cases:
Browser compatibility (if scope includes it):
Build a state matrix:
STATE MATRIX (screens x states)
───────────────────────────────
Default Loading Success Error Empty Partial
Screen A: [x] [x] [x] [x] [x] [ ]
Screen B: [x] [x] [x] [x] [ ] [x]
...
Apply the coverage checklist based on scope selected in Step 2.
Reference: Full coverage checklist (53 items across 7 domains: Accessibility, Responsive, Interaction, Performance, SEO, Infrastructure, Testing) in
docs/extending/frontend-task-breakdown-reference.md→ Coverage Checklist.
For each item, mark: Included / Not applicable / Deferred
Count coverage:
COVERAGE SUMMARY
────────────────
Included: {n} tasks
Not applicable: {n} items
Deferred: {n} items (list reasons)
Build the dependency graph for all identified components:
Standard dependency chains:
Identify:
Format as Mermaid:
graph TD
A[Design Tokens] --> B[Atom Components]
B --> C[Molecule Components]
C --> D[Organism Components]
E[API Client] --> F[Data Hooks]
F --> D
D --> G[Page Assembly]
G --> H[Integration Testing]
Categorize and rate risks:
Technical risks:
Integration risks:
UX risks:
Rate each: Likelihood (Low/Medium/High) x Impact (Low/Medium/High)
Propose mitigation for every Medium+ impact risk.
Present the complete analysis summary:
TASK BREAKDOWN PLAN
═══════════════════
COMPONENTS
──────────
Atoms: {count} (XS) Molecules: {count} (S)
Organisms: {count} (M) Templates: {count} (L)
Pages: {count} (XL) Total: {total}
ESTIMATES
─────────
Total tasks: {task_count}
Critical path: {n} sequential tasks
Parallel tracks: {n} independent streams
COVERAGE
────────
Scope: {MVP/Production/In between}
Included: {n} coverage items
Deferred: {n} items
TOP RISKS
─────────
1. {risk_1} — {likelihood}/{impact} — {mitigation_summary}
2. {risk_2} — {likelihood}/{impact} — {mitigation_summary}
3. {risk_3} — {likelihood}/{impact} — {mitigation_summary}
Use AskUserQuestion:
Do NOT proceed to Phase 2 without explicit approval.
Read template: $JAAN_TEMPLATES_DIR/jaan-to-frontend-task-breakdown.template.md
If tech stack needed, extract sections from tech.md:
#current-stack#frameworks#constraintsFill all template sections with analysis from Phase 1:
Overview section:
Component Inventory section:
 alongside relevant component groupsTask naming convention:
[Action Verb] + [Component/Feature] + [Specific Detail]
Estimate bands (T-shirt sizes, not hours):
Reference: Full estimate bands table (XS–XL with meanings and typical work) in
docs/extending/frontend-task-breakdown-reference.md→ Estimate Bands.
State Machine stubs (for organisms and above):
Reference: State machine stub template (states, events, transitions format) in
docs/extending/frontend-task-breakdown-reference.md→ State Machine Stubs.
Dependency Graph — Mermaid diagram from Step 6
Performance Budget (if scope = Production or In between):
Reference: Performance budget table (LCP, INP, CLS, Bundle targets and optimization tasks) in
docs/extending/frontend-task-breakdown-reference.md→ Performance Budget.
Risk Register — table from Step 7
Coverage Checklist — applicable items from Step 5
Definition of Ready / Definition of Done:
Reference: Full checklists (6 Ready items, 8 Done items) in
docs/extending/frontend-task-breakdown-reference.md→ Definition of Ready / Definition of Done.
Before preview, verify:
$JAAN_* variables) syntax and URL-encoded pathsIf any check fails, fix before preview.
Show the complete task breakdown document.
Use AskUserQuestion:
If approved, set up the output structure:
source "${CLAUDE_PLUGIN_ROOT}/scripts/lib/id-generator.sh"
# Define subdomain directory
SUBDOMAIN_DIR="$JAAN_OUTPUTS_DIR/frontend/task-breakdown"
mkdir -p "$SUBDOMAIN_DIR"
# Generate next ID
NEXT_ID=$(generate_next_id "$SUBDOMAIN_DIR")
# Create folder and file paths (slug from feature name)
slug="{lowercase-hyphenated-feature-name}"
OUTPUT_FOLDER="${SUBDOMAIN_DIR}/${NEXT_ID}-${slug}"
MAIN_FILE="${OUTPUT_FOLDER}/${NEXT_ID}-${slug}.md"
Output Configuration
- ID: {NEXT_ID}
- Folder: $JAAN_OUTPUTS_DIR/frontend/task-breakdown/{NEXT_ID}-{slug}/
- Main file: {NEXT_ID}-{slug}.md
If screenshot paths were provided as input:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/asset-embedding-reference.mdfor the asset resolution protocol (path detection, copy rules, markdown embedding).
Source ${CLAUDE_PLUGIN_ROOT}/scripts/lib/asset-handler.sh. For each screenshot: check is_jaan_path — if inside $JAAN_*, reference in-place; if external, ask user before copying. Use resolve_asset_path for markdown-relative paths.
mkdir -p "$OUTPUT_FOLDER"
cat > "$MAIN_FILE" <<'EOF'
{generated task breakdown with Executive Summary}
EOF
source "${CLAUDE_PLUGIN_ROOT}/scripts/lib/index-updater.sh"
add_to_index \
"$SUBDOMAIN_DIR/README.md" \
"$NEXT_ID" \
"${NEXT_ID}-${slug}" \
"{Feature Title}" \
"{1-2 sentence summary: frontend task breakdown for feature}"
✓ Task breakdown written to: $JAAN_OUTPUTS_DIR/frontend/task-breakdown/{NEXT_ID}-{slug}/{NEXT_ID}-{slug}.md ✓ Index updated: $JAAN_OUTPUTS_DIR/frontend/task-breakdown/README.md
"Task breakdown complete."
Note: For detailed state machine definitions skill (
/jaan-to:frontend-state-machine), see roadmap - coming in future release.
Use AskUserQuestion:
Question: "Any feedback on the task breakdown?"
Header: "Feedback"
Options:
Fix now: Update the output file, re-preview, re-write
Learn: Run /jaan-to:learn-add frontend-task-breakdown "{feedback}"
Both: Do both
tech.md detection$JAAN_OUTPUTS_DIR path$JAAN_OUTPUTS_DIR/frontend/task-breakdown/{id}-{slug}/{id}-{slug}.md