Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Decomposes a goal into a work breakdown structure (WBS) with milestones, task dependencies, and effort estimates, then produces a schedule, critical path, and risk list. Use this skill when the user wants to plan a project, "break this down into tasks", build a work breakdown structure, create a project plan or roadmap, estimate effort/timeline, identify dependencies or the critical path, sequence work, or turn a goal/spec into an actionable, scheduled task list.
.claude/skills/jayrha-project-planner/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-06 | ✓→✗ | ▼ Worse | 26% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 52% | 0% |
Turns a fuzzy goal into a concrete, scheduled plan. Produces a Work Breakdown Structure (WBS), milestones, an explicit dependency graph, defensible effort estimates, a critical path, and a risk register.
Keywords: project plan, work breakdown structure, WBS, milestones, dependencies, critical path, estimation, scheduling, roadmap, task decomposition, Gantt, sequencing.
Use this skill whenever the input is a goal/spec/idea and the desired output is "what needs to happen, in what order, and roughly how long".
Follow these steps in order. Do not skip clarification.
references/clarifying-questions.md.references/wbs-method.md.references/dependencies-and-critical-path.md.te = (O + 4M + P) / 6. Record Optimistic/Most-likely/Pessimistic. Convert effort to duration using availability and parallelism. See references/estimation.md.scripts/critical_path.py to compute this automatically from your task list.templates/project-plan.md. Present the WBS, milestone table, dependency/critical-path summary, estimate table, and risk register.references/wbs-method.md — decomposition rules, numbering, 100%/8-80 rules, worked breakdown.references/estimation.md — PERT, effort vs duration, story points, calibration.references/dependencies-and-critical-path.md — dependency types, forward/backward pass, slack, crashing/fast-tracking.references/clarifying-questions.md — the question checklist for step 1.scripts/critical_path.py — computes ES/EF/LS/LF, slack, critical path, and project duration from a JSON task list.templates/project-plan.md — the output document template.examples/website-launch.md — a full worked example from goal to scheduled plan.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 24,247 | 25,586 | +6% | 1 | 1 | 0% | 4,849 | 7,547 | +56% | 0 | 0 | — |
case-02 | fail→fail | 22,109 | 29,123 | +32% | 1 | 1 | 0% | 4,627 | 7,533 | +63% | 0 | 0 | — |
case-03 | fail→pass | 21,121 | 27,592 | +31% | 1 | 1 | 0% | 4,239 | 7,526 | +78% | 0 | 0 | — |
case-04 | pass→pass | 13,556 | 13,074 | -4% | 1 | 1 | 0% | 2,085 | 3,166 | +52% | 0 | 0 | — |
case-05 | pass→pass | 15,700 | 17,783 | +13% | 1 | 1 | 0% | 2,484 | 4,079 | +64% | 0 | 0 | — |
case-06 | pass→fail | 14,136 | 10,197 | -28% | 1 | 1 | 0% | 2,443 | 3,082 | +26% | 0 | 0 | — |
case-07 | pass→pass | 11,003 | 7,342 | -33% | 1 | 1 | 0% | 1,989 | 2,572 | +29% | 0 | 0 | — |
case-08 | pass→pass | 3,751 | 2,607 | -30% | 1 | 1 | 0% | 738 | 1,837 | +149% | 0 | 0 | — |
case-09 | pass→pass | 10,140 | 7,272 | -28% | 1 | 1 | 0% | 1,788 | 2,618 | +46% | 0 | 0 | — |
case-10 | pass→pass | 13,058 | 11,131 | -15% | 1 | 1 | 0% | 2,250 | 3,215 | +43% | 0 | 0 | — |
case-11 | pass→pass | 16,811 | 5,198 | -69% | 1 | 1 | 0% | 1,085 | 2,235 | +106% | 0 | 0 | — |
case-12 | pass→pass | 12,245 | 8,527 | -30% | 1 | 1 | 0% | 2,224 | 2,767 | +24% | 0 | 0 | — |
case-13 | pass→pass | 4,897 | 5,405 | +10% | 1 | 1 | 0% | 1,039 | 2,399 | +131% | 0 | 0 | — |
case-14 | pass→pass | 8,151 | 7,896 | -3% | 1 | 1 | 0% | 1,356 | 2,544 | +88% | 0 | 0 | — |
case-15 | pass→pass | 13,198 | 43,491 | +230% | 1 | 1 | 0% | 1,921 | 2,856 | +49% | 0 | 0 | — |
case-16 | pass→pass | 11,109 | 6,033 | -46% | 1 | 1 | 0% | 2,051 | 2,495 | +22% | 0 | 0 | — |
case-17 | fail→fail | 2,877 | 2,312 | -20% | 1 | 1 | 0% | 527 | 1,702 | +223% | 0 | 0 | — |
case-18 | fail→pass | 10,035 | 6,401 | -36% | 1 | 1 | 0% | 1,761 | 2,457 | +40% | 0 | 0 | — |
case-19 | pass→pass | 12,219 | 8,056 | -34% | 1 | 1 | 0% | 2,115 | 2,772 | +31% | 0 | 0 | — |
case-20 | pass→pass | 3,423 | 1,882 | -45% | 1 | 1 | 0% | 573 | 1,554 | +171% | 0 | 0 | — |
case-21 | fail→fail | 13,196 | 7,575 | -43% | 1 | 1 | 0% | 1,990 | 2,615 | +31% | 0 | 0 | — |
case-22 | pass→pass | 8,678 | 9,572 | +10% | 1 | 1 | 0% | 1,586 | 2,960 | +87% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/3/2026 | 0% |
Other measured skills in the registry, with their headline benchmark lift.