Story: Codegen improvements from the clean-up passes

Table of Contents

This page documents a story in Sprint 27. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

The codegen layer has no defect left that the component clean-up passes found. Every defect is recorded with the evidence that shows it, and every fix lands at its source with a regression test.

2. Status

Field Value
State DONE
Parent sprint Sprint 27
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-09-27

3. Acceptance

  • Every codegen defect the clean-up passes surface is recorded with the command or recipe that shows it, and with the file and line of its cause.
  • Every fix is at the source, in a template, a loader or a script, and never in the generated output.
  • Every fix carries a regression test that fails before the fix and passes after it.
  • The tree is regenerated, and the component drift gate passes with each affected component listed.

4. Tasks

Task State Start End Description
Fix the codegen defects found while cleaning the components DONE 2026-09-27 2026-10-06 Record every codegen defect the component clean-up passes surface, with its evidence, and fix each one at its source with a regression test.

5. Decisions

# Decision Why
1 Every fix lands on one long-lived branch, feature/codegen-improvements. The defects are found by every component's clean-up pass, so they accumulate across the whole programme. Merging them one at a time would regenerate the same components repeatedly, and the regeneration is exactly what makes the next pass's diff noisy. One branch merges once, when the components are clean.
2 The task is the register. A defect that is fixed without being recorded cannot be told from one that was never found, and the record is what the next pass reads.

6. Out of scope

  • Merging the branch. It merges when every component is clean, not when a defect is fixed.
  • The defects already captured in the product backlog. They stay where they are until this story pulls one in as work.

Emacs 29.3 (Org mode 9.6.15)