Why this matters
AI-assisted development is moving to usage-based cost models where:
-
Cost scales with model choice and interaction patterns
-
Long-running sessions and iterative loops increase spend
-
Higher-capability models are significantly more expensive
At the same time, AI enables:
-
Rapid exploration of designs
-
Large-scale code generation
-
Parallel execution of implementation work
Without structure, this leads to:
-
Unpredictable cost
-
Inconsistent quality
-
Unnecessary rework
This pattern defines a structured way of working that maximizes value while controlling cost and complexity.
Core pattern
Use powerful models to define the solution. Use cheaper models to implement the solution.
The goal is to:
-
Concentrate reasoning effort once
-
Avoid repeated re-evaluation
-
Execute implementation in small, independent units
Step 1 — Use AI for solution design
Use the most capable model available to:
-
Explore solution options
-
Evaluate trade-offs
-
Validate architecture
-
Identify risks and edge cases
-
Define architecturally significant requirements (ASRs)
Output:
-
Solution design document
-
Clear constraints and assumptions
-
Agreed direction
This step should remove as much ambiguity as possible.
Step 2 — Make the solution executable
Translate the design into structured work:
-
Break into epics and issues
-
Define scope and expected outcome for each
-
Ensure each unit is:
-
Scoped
-
Unambiguous
-
Testable
-
Good decomposition is the primary control mechanism.
Well-defined units enable:
-
Predictable AI execution
-
Minimal context per task
-
Independent implementation
Step 3 — Execute with clean context
For each issue:
-
Start with a fresh context
-
Provide only:
-
The issue description
-
Relevant constraints
-
Local code context
-
Avoid:
-
Long-running chat sessions
-
Accumulated conversation history
-
Repeated "compaction" of context
Treat every task as a clean execution.
Step 4 — Use cheaper models for implementation
Once tasks are well-defined:
-
Use faster, lower-cost models
-
Focus on:
-
Implementation
-
Test generation
-
Applying patterns
-
If a task requires a high-end model:
The issue is likely underspecified.
Step 5 — Execute in parallel where possible
When issues are independent:
-
Use subagents or worktrees
-
Implement in parallel
-
Rely on:
-
Clear boundaries
-
Well-defined contracts
-
This enables:
-
Faster delivery
-
Better utilization of AI
-
Consistent results
Step 6 — Avoid long-context degradation
AI performance degrades in extended sessions:
-
Context grows
-
Signal-to-noise decreases
-
Output quality drops
Common anti-pattern:
-
Iterate continuously in one session
-
Compact context
-
Continue
This accumulates errors over time.
Recommended approach:
-
Keep interactions short
-
Reset frequently
-
Reintroduce clean inputs
Step 7 — Store state in artifacts
Do not rely on the model to maintain system state.
State should be captured in:
-
Design documents
-
Specifications
-
Epics and issues
This ensures:
-
Reproducibility
-
Consistency
-
Independence between tasks
The model executes — artifacts define the system.
Step 8 — Keep feedback loops controlled
Even with strong design:
-
Issues will evolve
-
Edge cases will appear
Handle this by:
-
Updating artifacts (not conversations)
-
Refining issues
-
Re-running tasks with clean context
Summary
This pattern enables:
-
Predictable cost
-
Consistent quality
-
Scalable execution
By:
-
Separating reasoning from implementation
-
Minimizing context
-
Structuring work into independent units
-
Executing with clean, repeatable inputs
Solve once. Structure clearly. Execute repeatedly.
