ring:planning-delivery
Planning a dated delivery roadmap by turning tasks.md epics into a schedule: critical-path analysis, capacity and velocity estimation, sprint/cycle breakdown honoring plan-phase ordering, and risk buffers, emitting delivery-roadmap.md and .json. Mandatory Gate 9 (Full Track) / Gate 4 (Small Track); feeds ring:tracking-delivery. Use once phases and epics are validated. Skip for proofs-of-concept or research with no delivery deadline.
What this skill does
# Delivery Planning — Realistic Roadmap with Critical Path
## When to use
- Phased plan passed Gate 7 validation (Full Track) OR Gate 3 (Small Track); Phase 1 detailed (Gate 8, Full Track)
- Need realistic delivery timeline with dates
- Ready to convert epics into delivery schedule
- Team composition known or determinable
## Skip when
- Phased plan not validated → complete phases & epics first
- Proof-of-concept without delivery commitment
- Research/exploration work without delivery deadline
## Sequence
**Runs before:** ring:running-dev-cycle
**Runs after:** ring:decomposing-phases-and-epics, ring:detailing-tasks
Every roadmap must be grounded in reality, not optimism. Epics not validated, team composition unknown, or start date absent → STOP and gather the missing input before proceeding.
Scheduling unit is the **epic** (rows of the `## Summary` table in tasks.md). Plan phases are hard sequencing constraints: an epic never starts before its phase's predecessor phase completes. Only Phase 1 carries task-level detail — later-phase epic estimates are coarser by design (rolling wave); reflect that in confidence, not in false precision.
## Workflow Steps
| Step | Activities |
|------|------------|
| **1. Input Gathering** | Load tasks.md (phased plan); ask user for start date, team composition, delivery cadence, period configuration, velocity multiplier |
| **2. Dependency Analysis** | Build dependency graph from epics (phase order + epic dependencies), identify critical path, find parallelization opportunities within phases |
| **3. Capacity Planning** | Calculate team velocity (custom multiplier), allocate resources, identify bottlenecks |
| **4. Delivery Breakdown** | Group epics by cadence (sprint/cycle/continuous), align milestones to plan phases where the cadence allows, calculate period boundaries, identify spill overs, map parallel streams |
| **5. Risk Analysis** | Flag high-risk dependencies, add contingency buffer (10-20%), define mitigations |
| **6. Gate Validation** | Verify all epics scheduled, phase ordering respected, critical path correct, dates achievable, period boundaries respected |
## Mandatory User Questions
### Q1: Start Date
When will the team start? Format: YYYY-MM-DD
### Q2: Team Composition
How many developers? Options: 1 (solo), 2 (pair), 3-4 (squad), 5+ (large team)
### Q3: Delivery Cadence
Options: Sprints (1-2 weeks), Cycles (1-3 months), Continuous (no fixed intervals)
### Q4 (if Sprints/Cycles): Period Configuration
- Duration: 1w, 2w, 1mo, 2mo, 3mo
- Start date: YYYY-MM-DD
### Q5: Human Validation Overhead (velocity multiplier)
| Option | Multiplier | Example |
|--------|-----------|---------|
| Minimal validation | 1.2x | 4h AI → 4.8h adjusted |
| Standard validation ← recommended | 1.5x | 4h AI → 6.0h adjusted |
| Deep validation | 2.0x | 4h AI → 8.0h adjusted |
| Heavy rework | 2.5x | 4h AI → 10.0h adjusted |
| Custom | user-specified | — |
## Velocity Calculation Formula
```
adjusted_hours = ai_estimate × multiplier
calendar_hours = adjusted_hours ÷ 0.90
calendar_days = calendar_hours ÷ 8 ÷ team_size
task_days = calendar_days + taura_days
Where:
ai_estimate = per epic, from tasks.md Summary table (AI-agent-hours)
0.90 = capacity utilization (AI Agent standard)
taura_days = 0 (Development/Delivery) | 5 (Quality) | 10 (Quality integration)
```
## Period Boundary Rules (Sprint/Cycle)
For each task, check: `task_end_date <= period_end_date`
- If yes → fits completely (✅)
- If no → spill over (⚠️): allocate days split across periods
Continuous delivery: no period boundaries — tasks scheduled by dependency and capacity only.
## Critical Path Analysis
1. Build dependency graph from tasks.md (epic dependencies + plan-phase ordering)
2. Calculate Earliest Start Date (ESD) per epic
3. Calculate Latest Start Date (LSD) without delaying project
4. Epics where ESD = LSD → on critical path (zero slack)
## Output Files
MUST generate both:
- `docs/pre-dev/{feature}/delivery-roadmap.md` — human-readable
- `docs/pre-dev/{feature}/delivery-roadmap.json` — machine-readable (see schema below)
**Topology-aware paths:**
| Structure | Files Generated |
|-----------|-----------------|
| single-repo | `docs/pre-dev/{feature}/delivery-roadmap.{md,json}` |
| monorepo | Index + per-module `{module.path}/docs/pre-dev/{feature}/delivery-roadmap.{md,json}` |
| multi-repo | Per-repo `{repo.path}/docs/pre-dev/{feature}/delivery-roadmap.{md,json}` |
## JSON Output Schema
> Schema note: `tasks[]` rows are the plan's **epics** (IDs `E-X.Y`). The field name
> is retained for schema stability (`version 1.0.0`); `tasks[].phase` remains the
> work-type classifier (development|quality|delivery) — it is NOT the plan phase.
> Plan phases surface through `milestones[]`, which SHOULD align to phase boundaries
> when the cadence allows.
```json
{
"version": "1.0.0",
"gate": 9,
"feature": "{feature-name}",
"generatedAt": "ISO-8601",
"dates": {
"startDate": "YYYY-MM-DD",
"endDate": "YYYY-MM-DD",
"mvpEndDate": "YYYY-MM-DD or null",
"totalDuration": "5.5 weeks"
},
"velocity": {
"teamSize": 2,
"utilizationRate": 0.9,
"humanValidationMultiplier": 1.5,
"multiplierSource": "default | custom"
},
"deliveryCadence": {
"type": "sprint | cycle | continuous",
"periodDuration": "2 weeks | 1 month | null",
"periodStartDate": "YYYY-MM-DD or null"
},
"tasks": [{
"id": "T-001",
"description": "...",
"aiEstimate": "4.5h",
"adjusted": "6.75h",
"calendar": "7.5h",
"days": 0.94,
"phase": "development | quality | delivery",
"tauraDays": 0,
"dependencies": [],
"assignee": "Backend | Frontend | DevOps | QA",
"status": "ready | blocked | in_progress | completed",
"onCriticalPath": true
}],
"milestones": [{
"name": "Sprint 1",
"type": "sprint | cycle | milestone",
"startDate": "YYYY-MM-DD",
"targetDate": "YYYY-MM-DD",
"taskIds": ["T-001"],
"deliverable": "...",
"spillOvers": []
}],
"criticalPath": {
"taskIds": ["T-001", "T-002"],
"totalDuration": "5.5 weeks",
"minimumProjectDuration": "5.5 weeks"
},
"risks": [{"taskIds": ["T-001"], "level": "high", "impact": "...", "mitigation": "..."}],
"cycleCapacity": {
"grossDays": 28,
"bugBufferDays": 5.6,
"availableDays": 22.4,
"allocatedDays": 19.2,
"slackDays": 3.2
},
"contingencyBuffer": {"percentage": 15, "days": 4},
"confidenceScore": 85
}
```
### JSON Validation Rules
1. `dates.startDate` and `dates.endDate` REQUIRED — not null
2. `tasks` array MUST have ≥1 item
3. Every task MUST have `id`, `description`, `aiEstimate`, `adjusted`, `calendar`, `days`
4. `confidenceScore` MUST be 0-100
5. `milestones` MUST have ≥1 item
6. `criticalPath.taskIds` MUST reference valid task IDs
7. `version` MUST be `"1.0.0"`
8. `milestones[].taskIds` and `spillOvers` MUST reference valid task IDs
9. `velocity.teamSize` > 0
10. `cycleCapacity` MUST be present with all 5 fields
11. `cycleCapacity.availableDays` = `grossDays - bugBufferDays`
12. `cycleCapacity.slackDays` = `availableDays - allocatedDays` (negative = over-committed → add risk)
13. `tasks[].phase` ∈ `{development, quality, delivery}`; `tauraDays` must match: 0 for dev/delivery, 5 or 10 for quality
14. Continuous cadence: `periodDuration` = null, `periodStartDate` = null, milestones type = `milestone`, spillOvers = `[]`
## Gate Validation Checklist
| Category | Requirements |
|----------|--------------|
| **Input Completeness** | Start date, team composition, cadence, period config (if sprint/cycle), velocity multiplier all confirmed |
| **Dependency Analysis** | Graph built, plan-phase ordering respected, critical path identified, parallel streams defined, no circular deps |
| **Capacity Planning** | Velocity calculated, resources allocated, bottlenecks identified, ≤80% utilization |
| **Delivery Breakdown** | Periods match cadence, boundaries calculatedRelated in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.