Case Study / Contour

Contour

Sprint Planning Copilot

I built Contour as a planning copilot that turns vague sprint goals into scoped work, priority signals, and assignment recommendations grounded in how a team actually operates.

Planning SystemsTask DecompositionPrioritizationAssignment Logic
Planning Output
Goal-to-work conversion
Assignment Logic
Skill and capacity aware
Section 01

The Problem Worth Solving

Sprint planning sounds simple until a team actually tries to translate high-level goals into concrete work. That process is usually manual, fuzzy, and heavily dependent on whoever happens to be best at turning ambiguity into a usable plan.

The business problem is consistency. Teams need a way to break down goals into scoped tasks and ownership suggestions without rebuilding the planning logic from scratch every sprint.

Section 02

Why a Simpler Version Breaks

A generic task generator can produce a long list of plausible work items, but that is not the same thing as a plan. Real planning depends on the shape of the team, current workload, expected dependencies, and the difference between a backlog item and something that is actually sprint-ready.

If the system ignores those constraints, it creates polished output that still fails operationally. Tasks come out at the wrong level of granularity, ownership recommendations feel arbitrary, and the team stops trusting the suggestions.

Section 03

How I Framed the System

I framed Contour as a planning copilot, not an autonomous planner. Its job is to convert intent into structure and make allocation logic explicit enough that a team can review, adjust, and adopt it.

That meant the core product was not text generation. The core product was structured allocation logic: decompose the goal, prioritize the work, match it against real team context, and return a plan that looks like something an engineering lead would actually refine.

Section 04

Core Architecture

Input Parsing

Normalizes sprint goals, backlog context, and planning constraints so the system is working from structured intent rather than raw prose alone.

Decomposition Engine

Breaks high-level goals into actionable work items while preserving scope boundaries, sequencing, and the difference between discovery work and execution work.

Prioritization Module

Assigns ordering and urgency so the plan reflects what matters most instead of returning a flat list with no operational hierarchy.

Skill-Matching Logic

Maps scoped tasks to team capability, current workload, and fit so assignment suggestions feel grounded in how the team actually works.

Backlog Integration

Pushes the structured output into a backlog-ready shape so the system closes the gap between planning insight and execution setup.

Section 05

Critical Flow

01

Sprint goals enter the system

The planning flow starts with high-level outcomes, not fully formed tickets, because that is where most real sprint ambiguity lives.

02

Team context grounds the plan

Contour folds in skill coverage, current workload, and practical constraints so decomposition does not happen in a vacuum.

03

A decomposed task list is generated

The system converts the goal into scoped work items with clearer boundaries, dependencies, and priority signals.

04

Scoped assignments are proposed

Assignment logic recommends ownership based on fit and capacity, producing a draft sprint plan that a lead can review instead of rewrite.

Section 06

The Decisions That Shaped the Build

Separate decomposition from assignment

I kept those concerns distinct so the system could first decide what the work is before it decides who should own it.

Keep constraints explicit

Skill fit, capacity, and planning quality are not optional details. They are the difference between an impressive demo and a usable planner.

Return recommendations, not commands

The system is strongest when it helps a team reason faster, not when it pretends assignment logic should replace human judgment.

Produce backlog-shaped output

I wanted the result to be easy to operationalize, so the output needed to look like work that could move directly into team workflows.

Section 07

Failure Modes and Tradeoffs

Decomposition granularity is easy to get wrong

If the tasks are too coarse, the plan stays fuzzy. If they are too fine, the output becomes noisy and harder to execute than the original goal.

Workload estimation is inherently imperfect

Even with strong team context, capacity is a moving target. Planning logic can narrow uncertainty, but it cannot remove it.

Automated assignments can lose trust quickly

The moment ownership suggestions feel detached from team reality, the model stops being a copilot and starts feeling like an unhelpful scheduler.

Constraint quality determines output quality

If the team context is stale or incomplete, the system can still produce coherent plans that are wrong in the exact ways that matter most.

Section 08

What Changed

Contour makes sprint planning feel less like a blank page and more like a structured editing task. Teams start with a decomposed draft, clearer priorities, and assignment suggestions that already account for who can realistically take what on.

The practical outcome is better planning structure with less breakdown overhead. Instead of spending most of the session turning goals into work, the team can spend more of it refining tradeoffs and committing to execution.

Section 09

What I'd Improve Next

Historical effort calibration

I would connect the planner to prior sprint outcomes so workload estimation gets grounded in how the team actually delivered, not just how the work was described.

Scenario comparison

The next version should let teams compare multiple planning strategies, such as speed-first versus risk-first, before they lock in a sprint shape.

Closed-loop feedback

I want the system to learn from post-sprint adjustments, scope creep, and reassignment patterns so the planner improves from real team behavior over time.