Skip to content

Write plan templates with conditional sections that activate by task type — so every plan the agent receives contains exactly what applies and nothing it doesn't.

Guide

How to Use Adaptive Templates

Why flat templates fail

A bugfix plan doesn't need a migration section.

one flat template

Bugfix task — same shape as a feature

##Contextkept

##Acceptancekept

##Data Migrationnoise

##API Contractnoise

##Rollout Plannoise

##Test Plankept

Agent reads five irrelevant sections before reaching the one that matters — context diluted, token budget spent, signal buried.

adaptive

Bugfix task — template prunes itself

##Contextkept

##Acceptancekept

##Data Migrationskip

##API Contractskip

##Rollout Planskip

##Test Plankept

Only what applies appears. The same template source produces a different plan shape per task type — nothing hand-pruned.

Unused sections aren't neutral — they're pollution. The plan is the prompt.

The reading path

Five nodes — principle down to enforcement.

Read in this order to build up the "why" before the "how".

1

Principle

The Plan is the Prompt

A plan is not documentation — it's the prompt the implementing agent operates from. Every structural decision is an agent-performance decision.

2

Principle

Avoid Context Pollution

Sections that don't apply are noise. They dilute relevant context and spend token budget on nothing. Conditional sections become a correctness requirement — not a style choice.

3

Pattern

Adaptive Template Activation

The architectural response. Sections carry activation conditions — task type, complexity tier, classification label — and are included or suppressed accordingly.

4

Primitive

Plan

The artifact adaptive templates produce. Grounds every template decision in what the downstream agent actually consumes — its required fields, its shape, its contract.

5

Enforcement

Template-Declared Contracts

Makes the conditional structure verifiable: if a section is present, its required fields must be present. Converts the template from suggestion into enforceable gate.

Skip any node and you're guessing at a downstream layer — the motivation won't carry.

What a section looks like

Activation condition on top. Required fields underneath.

templates/plan.md

adaptive

## Context— always present —## Acceptance— always present —if: task_type == "feature"## API Contractrequiredendpoint, request, response, errorsif: touches_schema == true## Data Migrationrequiredforward, rollback, data-loss-riskif: complexity >= "high"## Rollout Planrequiredflag, cohort, abort-signal## Test Plan— always present —

Condition decides presence. Once a section is present, its required fields become non-negotiable — that's the contract.

Which sections fire per task

Same template. Four task shapes.

bugfix

Context

Acceptance

Test Plan

API Contract

Data Migration

Rollout Plan

feature (low)

Context

Acceptance

API Contract

Test Plan

Data Migration

Rollout Plan

feature (high)

Context

Acceptance

API Contract

Rollout Plan

Test Plan

Data Migration

schema change

Context

Acceptance

Data Migration

Test Plan

API Contract

Rollout Plan

One template source — four distinct plan shapes. The classification label is the only thing the author has to get right.

The discipline

A template is a function of task type — not a fixed shape every plan must wear.

Tag sections with activation conditions. Declare required fields per section. Let the contract reject malformed plans before they reach the implementing agent. The plan the agent reads is the plan it was designed for.