Iteration Plan
Purpose
Iteration Plan is the commitment artifact of the iterate loop. Its unique job is to convert the improvement backlog’s next-iteration selection and the roadmap’s current slot into one time-boxed commitment: a falsifiable goal, one Good / one Better / one Best outcome per participating workstream with owners and acceptance evidence, deterministic trade rules, and stable-ID task tables.
It is not the live tracker. The plan owns commitment membership: task rows select existing work items by ID where they exist, and rows without one are the source from which the runtime creates items, back-referencing each new ID in the plan. The runtime’s tracker (work items, boards, issues) owns live status, assignment churn, and execution history. Scope changes route back through the plan — hand-added tracker items never silently widen the commitment.
Example
Show a worked example of this artifact
---
ddx:
id: example.iteration-plan.depositmatch
authoring:
home: repo
depends_on:
- example.roadmap.depositmatch
- example.improvement-backlog.depositmatch
---
# Iteration Plan
| | |
|---|---|
| **Iteration** | IT-05 |
| **Dates** | Mon 1 Jun → Fri 12 Jun 2026 |
| **Review** | Fri 12 Jun, 30-minute demo with pilot-bank operations lead |
| **Lead** | Delivery Lead |
| **Roadmap Slot** | Roadmap order 1 — CSV import validated against real pilot-bank exports |
## Iteration Goal
> By 12 Jun, a pilot-bank operations user imports a real deposit export and
> sees validated rows with actionable errors — shown live in the review demo
> against an anonymized pilot fixture, with the import test suite green.
## Committed Outcomes
Each participating workstream commits exactly one Good, one Better, and one
Best outcome. Good is the protected floor; Best drops first, then Better.
Tiers: 🟢 Good = committed for the review · 🔵 Better = first traded under
pressure · 🟣 Best = only if the iteration runs clean.
| ID | Workstream | Tier | Outcome | Owner | Governing Artifact | Acceptance Evidence |
|----|------------|------|---------|-------|--------------------|---------------------|
| WS-1-good | WS-1 | 🟢 Good | A real anonymized pilot export imports with validated rows — fixtures collected, anonymization documented, all fixture error classes handled | Priya | Improvement backlog rank 1; FEAT-001; story test plan US-003 | Fixture set committed; tests citing US-003 ACs pass; live demo at review |
| WS-1-better | WS-1 | 🔵 Better | Upload p95 latency watch item on the pilot dashboard | Priya | Improvement backlog rank 2 | Dashboard panel live with alert threshold |
| WS-1-best | WS-1 | 🟣 Best | Per-row error messages include remediation hints | Sam | FEAT-001 | Hint text reviewed by operations lead; shown in demo |
**Not participating this iteration**: WS-2 (matching starts IT-06 per
roadmap order 2), WS-3 (reporting gated on matching)
## Trade Rules
- Best drops first, then Better — the Delivery Lead calls trades and records
them in the status report.
- WS-1-good is never traded: without it the review demo has no honest data
and the iteration fails. A Good at risk is an escalation, not a trade.
## Tasks
The plan owns membership; the tracker owns live state. Existing work items
are selected by ID in the Work Item column; rows marked `—` are created by
the runtime from this table and back-referenced here. Status records
planning-time state and is not maintained after derivation. Workstream
aliases come from the roadmap's registry; work items carry the alias as a
label (`ws:WS-1`).
### WS-1 · Data Intake — fixtures
| ID | Task | Outcome | Owner | Due | Status | Work Item |
|----|------|---------|-------|-----|--------|-----------|
| 1.1 | Collect three real pilot-bank exports under the data agreement | WS-1-good | Priya | Wed 3 Jun | Backlog | wi-231 (existing) |
| 1.2 | Script and document the anonymization pass | WS-1-good | Priya | Fri 5 Jun | Backlog | — |
### WS-1 · Data Intake — import validation
| ID | Task | Outcome | Owner | Due | Status | Work Item |
|----|------|---------|-------|-----|--------|-----------|
| 2.1 | Enumerate fixture error classes into US-003 test cases | WS-1-good | Sam | Fri 5 Jun | Backlog | — |
| 2.2 | Implement per-row validation error messages | WS-1-good | Sam | Wed 10 Jun | Backlog | — |
| 2.3 | Add remediation hints to error messages | WS-1-best | Sam | Thu 11 Jun | Backlog | — |
### WS-1 · Data Intake — pilot dashboard
| ID | Task | Outcome | Owner | Due | Status | Work Item |
|----|------|---------|-------|-----|--------|-----------|
| 3.1 | Add upload p95 latency panel with alert threshold to the pilot dashboard | WS-1-better | Priya | Tue 9 Jun | Backlog | — |
## Risks
| Risk | Impact | Response |
|------|--------|----------|
| Pilot bank delays export delivery | H | Escalate through the pilot sponsor by 3 Jun; fall back to synthetic fixtures and flag confidence in the review |
| Anonymization strips fields validation depends on | M | Review field list with operations lead before scripting |
## Review Checklist
- [x] Goal is falsifiable at the review date
- [x] Every participating workstream has exactly one Good, one Better, and one Best outcome
- [x] Every committed outcome has an owner, acceptance evidence, and at least one task
- [x] Workstream aliases match the roadmap's registry — none minted here
- [x] Trade rules make the drop order deterministic (Best, then Better; Good never)
- [x] Every task has a stable ID, maps to a committed outcome, and names its work item or is marked for creation
- [x] Runtime work items can derive from the task tables without inventing scopeReference
| Activity | Iterate — Measure, align, and improve. Close the feedback loop back into the planning strand. |
|---|---|
| Default location | docs/helix/06-iterate/iteration-plan-[iteration-id].md |
| Requires | None |
| Enables | None |
| Informs | Status Report |
| Generation prompt | Show the full generation prompt |
| Template | Show the template structure |
Innsigle seal: model-primary by HELIX
The signature covers the markdown source of this page, not these HTML bytes. This page quotes that seal; verify it against the source file.
- Composition
- model-primary
- Issuer
- HELIX
helix - Signing key
ed25519:b0865d76d834a52c48506414d16f4e5a(build key)- Signed source
artifact-types/iterate/iteration-plan.md- Signed
- 2026-09-23T14:11:58Z
- Content digest
sha256:156fe974…e62d1257
This build key is endorsed by the human key for build signing; the signature is not a detector and not a truth guarantee.
Raw attestation JSON
{
"payload": {
"innsigle": "1",
"type": "https://innsigle.dev/claim/colophon/v1",
"issued_at": "2026-09-23T14:11:58Z",
"issuer": {
"id": "helix",
"name": "HELIX",
"key_id": "ed25519:b0865d76d834a52c48506414d16f4e5a",
"key_url": "https://documentdrivendx.github.io/helix/.well-known/innsigle/keys.json"
},
"subjects": [
{
"uri": "https://documentdrivendx.github.io/helix/artifact-types/iterate/iteration-plan/",
"digest": {
"alg": "sha256",
"value": "156fe9741f289194ce9ce289526f1e3befdc1a8bec8e7fc49c72bc6ae62d1257"
}
}
],
"colophon": {
"schema_version": "1",
"composition": "model-primary",
"ingredients": [
{
"kind": "model",
"name": "Claude",
"role": "draft"
},
{
"kind": "tool",
"name": "sloptimizer",
"role": "rewrite"
},
{
"kind": "human",
"name": "operator",
"role": "structure-edit"
}
],
"notes": null
}
},
"payload_encoding": "json",
"signatures": [
{
"key_id": "ed25519:b0865d76d834a52c48506414d16f4e5a",
"alg": "ed25519",
"sig": "nOE1oHM68CaBp-8x-97O-_MmUhxs68F9q0inCgcXwePbbiC79KOAPCl5rrBMwgVjFm0ZVagZFDxY7Tx0aQs3DQ",
"signed_at": "2026-09-23T14:11:58Z"
}
]
}