npx claudepluginhub parhumm/jaan-to --plugin jaan-toThis skill uses the workspace's default tool permissions.
> Convert PRDs into structured backend development tasks with data model notes, reliability patterns, and error taxonomy.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Convert PRDs into structured backend development tasks with data model notes, reliability patterns, and error taxonomy.
$JAAN_CONTEXT_DIR/tech.md - Tech stack context (CRITICAL: determines framework patterns)
#current-stack, #frameworks, #constraints, #patterns$JAAN_CONTEXT_DIR/config.md - Project configuration$JAAN_TEMPLATES_DIR/jaan-to-backend-task-breakdown.template.md - Output template$JAAN_LEARN_DIR/jaan-to-backend-task-breakdown.learn.md - Past lessons (loaded in Pre-Execution)${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocol${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.md - Reference: task card template, export formats, sizing benchmarks, quality checklistsPRD/Feature: $ARGUMENTS
Accepts any of:
/jaan-to:dev-tech-planIf no input provided, ask: "What PRD or feature should I break down into backend tasks?"
MANDATORY — Read and execute ALL steps in: ${CLAUDE_PLUGIN_ROOT}/docs/extending/pre-execution-protocol.md
Skill name: backend-task-breakdown
Execute: Step 0 (Init Guard) → A (Load Lessons) → B (Resolve Template) → C (Offer Template Seeding)
Also read tech context (CRITICAL for this skill):
$JAAN_CONTEXT_DIR/tech.md - Determines framework (Laravel, FastAPI, Django, etc.), constraints, patternsRead and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md
Override field for this skill: language_backend-task-breakdown
Language exception: Generated code output (variable names, code blocks, schemas, SQL, API specs) is NOT affected by this setting and remains in the project's programming language.
ultrathink
Use extended reasoning for:
Analyze the provided input to extract requirements:
If PRD file path:
If tech plan path:
If feature description:
Build an initial understanding:
INPUT SUMMARY
─────────────
Type: {prd/tech-plan/description}
Entities: {list of identified entities}
Actions: {list of user actions}
Integrations: {external systems}
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 or tech.md.
Slicing strategy (always ask):
"What task breakdown approach? [1] Vertical — Each task delivers complete functionality through all layers (recommended) [2] Horizontal — Separate by layer (migrations, models, controllers) [3] Hybrid — Foundation layer + vertical feature slices"
Framework questions (ask if tech.md unavailable): 2. "What backend framework?" — only if not in tech.md
Team context (ask if relevant): 3. "Team size and sprint duration?" — for sizing calibration
Data model defaults (ask if entities identified): 4. "Delete strategy per entity?" — with defaults suggested
API conventions (ask if not in tech.md): 5. "API conventions?" — pagination, versioning, error format
Apply the PRD-to-Task Mapping Engine:
| PRD Content Pattern | Recognition Signal | Task Type | Example |
|---|---|---|---|
| Nouns (stored data) | "user profile", "order history", "subscription" | Migration + Model | "users table", "User.php" |
| Verbs (user actions) | "create", "submit", "approve", "cancel" | Controller/Action | "OrderController@store" |
| Temporal indicators | "later", "scheduled", "async", "background" | Queue Job | "ProcessOrderJob.php" |
| Authorization language | "only if admin", "requires permission", "owner can" | Policy/Middleware | "OrderPolicy@update" |
| Relationship phrases | "belongs to", "has many", "associated with" | Model relationships | "belongsTo(User::class)" |
| Integration mentions | Third-party APIs, webhooks, external services | Service class + Job | "StripePaymentService" |
For each entity identified, record:
For each action identified, record:
Present extraction results:
ENTITY EXTRACTION
═════════════════
Entities: {count}
─────────
1. User → users (registration, profile, auth)
2. Order → orders (create, update, cancel, fulfill)
3. Payment → payments (process, refund, void)
Actions: {count}
────────
1. POST /api/orders → OrderController@store
2. PUT /api/orders/{id}/cancel → OrderController@cancel
3. POST /api/payments → PaymentController@process
Relationships:
──────────────
- Order belongsTo User
- Order hasMany OrderItems
- Payment belongsTo Order
Automated scan for tasks the PRD doesn't explicitly mention but are required for production:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Implicit Tasks Detection Checklists" for the full checklists across all 4 categories (Database, Error Handling, Security, Observability) with signals and task patterns.
Scan for implicit tasks across all 4 categories. For each detected task, record the signal that triggered it.
Present detected implicit tasks:
IMPLICIT TASKS DETECTED
═══════════════════════
Database (4 tasks):
- Add index on users.email (search/login)
- Add soft deletes to orders (restoration requirement)
- Add cascade delete orders→order_items
- Add unique constraint on subscriptions (user_id, status='active')
Error Handling (3 tasks):
- Add circuit breaker for Stripe API calls
- Configure retry logic for ProcessPaymentJob (3 attempts, exponential backoff)
- Set 30s timeout for webhook deliveries
Security (2 tasks):
- Create OrderPolicy for ownership checks
- Add rate limiting to /api/auth/* endpoints (5 req/min)
Observability (2 tasks):
- Add audit log for order cancellations
- Configure error monitoring for payment failures
Organize all extracted and implicit tasks into a structured breakdown:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Slicing Strategy Examples" for Vertical and Horizontal slicing patterns with examples.
Vertical (default): Group by user-facing feature — each slice delivers end-to-end functionality. Horizontal: Group by technical layer — requires careful dependency management. Hybrid: Foundation layer + vertical feature slices.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "T-shirt Sizing" for size benchmarks (XS through XXL) and escalation factors.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Dependency Notation Format" for blocked-by, needs, and parallel-with marker syntax with examples.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Critical Path Calculation" for identification method and example.
Identify the longest chain of sequential dependencies — this determines minimum project duration.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Anti-pattern Detection Rules" for the 5 anti-patterns (too granular, too coarse, missing error handling, orphan tasks, hero tasks) with fix strategies.
Flag issues before HARD STOP.
Present planned structure:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Task Breakdown Plan Display Template" for the full display format.
Present the complete analysis summary:
TASK BREAKDOWN PLAN
═══════════════════
SUMMARY
───────
PRD: {title}
Framework: {from tech.md}
Slicing: {Vertical/Horizontal/Hybrid}
Total Tasks: {count}
Critical Path: {n} tasks ({duration estimate})
Parallel Tracks: {n} independent streams
ENTITIES ({count})
──────────────────
{table with entity → table → task count → key notes}
TASKS ({count})
───────────────
{numbered list with: [ID] Type: Description (Size, duration)}
{with dependency markers}
IMPLICIT TASKS ({count})
─────────────────────────
{auto-detected tasks with rationale}
VALIDATION
──────────
✓ Coverage: All PRD requirements mapped
✓ Structure: No XXL tasks, clear dependencies
✓ Technical: Idempotency, errors, security checked
✗ Anti-pattern: {any warnings flagged}
"Proceed with generating the full task breakdown? [y/n/edit]"
Do NOT proceed to Phase 2 without explicit approval.
Read template: $JAAN_TEMPLATES_DIR/jaan-to-backend-task-breakdown.template.md
If tech stack needed, extract sections from tech.md:
#current-stack#frameworks#constraints#patternsFill all template sections with analysis from Phase 1:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Master Task Card Template" for the full task card format including: Size/Priority/Complexity fields, File paths, Dependencies, Acceptance Criteria, Data Model Notes (YAML schema), Idempotency, Error Scenarios, Reliability Notes, Security Checklist, and Test Requirements.
Generate a text-based dependency graph showing critical path, parallel tracks, and integration points.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Dependency Graph Format" for the full graph template.
Document all defaults applied where PRD was ambiguous (delete strategy, pagination, timestamps, status fields, error format).
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Ambiguity Defaults Table" for the standard defaults table.
Append export-ready formats to the document: Jira CSV Import, Linear Markdown, and JSON Export.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Export Formats" for full templates of all three formats (Jira CSV, Linear Markdown, JSON).
Before preview, validate the breakdown against all four checklists: Coverage, Structure, Technical, and Anti-pattern validation.
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/backend-export-formats.mdsection "Quality Checklists" for the complete validation checklists.
If any check fails, fix before preview.
Show the complete task breakdown document.
"Here's the task breakdown preview. Write to
$JAAN_OUTPUTS_DIR/backend/task-breakdown/{id}-{slug}/{id}-{slug}.md? [y/n]"
If approved, set up the output structure:
source "${CLAUDE_PLUGIN_ROOT}/scripts/lib/id-generator.sh"
# Define subdomain directory
SUBDOMAIN_DIR="$JAAN_OUTPUTS_DIR/backend/task-breakdown"
mkdir -p "$SUBDOMAIN_DIR"
# Generate next ID
NEXT_ID=$(generate_next_id "$SUBDOMAIN_DIR")
# Create folder and file paths
slug="{lowercase-hyphenated-from-prd-title-max-50-chars}"
OUTPUT_FOLDER="${SUBDOMAIN_DIR}/${NEXT_ID}-${slug}"
MAIN_FILE="${OUTPUT_FOLDER}/${NEXT_ID}-${slug}.md"
Output Configuration
- ID: {NEXT_ID}
- Folder: $JAAN_OUTPUTS_DIR/backend/task-breakdown/{NEXT_ID}-{slug}/
- Main file: {NEXT_ID}-{slug}.md
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: backend task breakdown for feature}"
✓ Task breakdown written to: $JAAN_OUTPUTS_DIR/backend/task-breakdown/{NEXT_ID}-{slug}/{NEXT_ID}-{slug}.md ✓ Index updated: $JAAN_OUTPUTS_DIR/backend/task-breakdown/README.md
"Backend task breakdown complete."
Recommended next step: For comprehensive data model documentation with constraints, indexes, migration playbooks, and retention policies:
/jaan-to:backend-data-model "{entity-list-from-extraction}"
"Any feedback or improvements needed? [y/n]"
If yes:
"How should I handle this? [1] Fix now - Update the breakdown [2] Learn - Save for future runs [3] Both - Fix now AND save lesson"
/jaan-to:learn-add backend-task-breakdown "{feedback}"tech.md detection$JAAN_OUTPUTS_DIR path$JAAN_OUTPUTS_DIR/backend/task-breakdown/{id}-{slug}/{id}-{slug}.md