Skill

/migrate wbs — Generate Work Breakdown Structure

Generate an actionable work breakdown structure (Epics/Stories/Tasks) from the refined migration estimate. Output is suitable for import into Jira, Azure DevOps, or other project management tools.

From migration-planner
Install
1
Run in your terminal
$
npx claudepluginhub twofoldtech-dakota/plugin-migration-planner
Tool Access

This skill uses the workspace's default tool permissions.

Skill Content

/migrate wbs — Generate Work Breakdown Structure

Generate an actionable work breakdown structure (Epics/Stories/Tasks) from the refined migration estimate. Output is suitable for import into Jira, Azure DevOps, or other project management tools.

Instructions

1. Load All Data

Load data from MCP tools first, falling back to JSON files:

  1. Call get_assessment with project_path (current working directory). Fall back to .migration/assessment.json.
  2. Call get_estimate with the assessment ID. Fall back to .migration/estimate.json.
  3. Call get_analysis with the assessment ID. Fall back to .migration/analysis.json. This includes risks, assumptions, and dependency chains.
  4. Optionally load scope exclusions if available (for filtering out excluded components).

If estimate data is unavailable from both MCP and JSON, inform the user and suggest running /migrate estimate first.

2. Generate the Work Breakdown

Map the estimate data into a hierarchical work item tree:

Mapping Rules

SourceWork Item TypeDetails
PhaseEpicTitle = phase name, hours = sum of component hours
In-scope componentStory under EpicTitle = component name, hours = final_hours, acceptance criteria from component description
Role task (from refinements)Task under Storyhours from role breakdown, assigned role
Auto-generated role splitTask under StoryIf no explicit role tasks, split component hours by by_role breakdown
Unvalidated assumptionSpike under relevant EpicTitle = "Validate: {assumed_value}", priority = high, confidence = low
High/critical risk with mitigationStory under relevant EpicTitle = "Mitigate: {description}", hours = estimated_hours_impact
Dependency chainblocked_by/blocksCross-reference between dependent items

Item Fields

Each work item includes:

  • type: epic, story, task, or spike
  • title: Descriptive, actionable title
  • description: What needs to be done, context
  • hours: Estimated effort
  • role: Required role (for tasks)
  • priority: critical, high, medium, low
  • confidence: firm (from validated data) or assumption-dependent
  • labels: Tags for filtering (phase name, component type, etc.)
  • acceptance_criteria: Definition of done (for stories)
  • sort_order: Sequential ordering within parent
  • source: "generated" for auto-created items

3. Save to Database

Call save_wbs_snapshot with:

  • assessment_id: The assessment ID
  • estimate_version: The estimate version used as input
  • items: The flat array of work items with temporary parent references

The MCP tool handles versioning automatically (auto-increments).

4. Write Output File

Create .migration/deliverables/work-breakdown.json with the full WBS tree structure:

{
  "assessment_id": "...",
  "estimate_version": 1,
  "generated_at": "ISO timestamp",
  "summary": {
    "total_items": 0,
    "total_hours": 0,
    "by_type": { "epic": 0, "story": 0, "task": 0, "spike": 0 }
  },
  "items": [...]
}

5. Present Results

Display a summary tree to the user:

Work Breakdown Structure (v1)
═══════════════════════════════
Total: {count} items | {hours}h estimated

Epic: Phase 1 — Assessment & Planning (120h)
  ├─ Story: Azure Environment Setup (40h) [firm]
  │   ├─ Task: Provision resource groups (8h) — Cloud Architect
  │   ├─ Task: Configure networking (16h) — Cloud Architect
  │   └─ Task: Set up monitoring (16h) — DevOps Engineer
  ├─ Story: Discovery Documentation (32h) [firm]
  ├─ Spike: Validate database size assumption (8h) [HIGH]
  └─ Story: Mitigate: Legacy API incompatibility (40h)
...

Include:

  • Total item count and hours
  • Breakdown by type (epics, stories, tasks, spikes)
  • High-priority spikes that should be addressed first
  • Risk mitigation stories with their hour impact
  • Suggest viewing in the web UI at /planning/?assessment={id}&tab=wbs
  • Mention export options (CSV for Jira, JSON for Azure DevOps)

6. Export Guidance

Tell the user about export formats:

  • CSV: Jira-compatible import format with hierarchy via indentation
  • JSON: Structured format for Azure DevOps or custom tooling
  • Markdown: Human-readable for documentation or review

Exports are available via the web UI or API at /api/planning/wbs/export?assessment={id}&format=csv.

Gate Check (Pre-Step)

Before generating the WBS, check if the assessment has challenge_required: true. If so, call get_challenge_reviews for the estimate step. If no review exists with status passed or conditional_pass, inform the user:

This assessment requires challenge reviews before advancing. Run /migrate challenge estimate first to validate estimate quality, then re-run /migrate wbs.

Similar Skills
cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.

138.5k
Stats
Stars1
Forks0
Last CommitFeb 23, 2026