Task: Scaffold story: Let the plan state domain rows, not a bag

Table of Contents

This page documents a task in the Let the plan state domain rows, not a bag story. It captures the goal, current status, acceptance, and any notes or results.

1. Goal

Create the story through compass story new so it carries an identity the document index can resolve, wire it into sprint 29, and put its reasoning back into the file the tool owns.

2. Status

Field Value
State DONE
Parent story Let the plan state domain rows, not a bag
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-28

3. Acceptance

  • The story carries a properties drawer with its ID and every header field, so compass task new --story resolves it.
  • Sprint 29's stories table names the story by its real ID, with no dangling link.
  • The story states the model, the defect and the decisions, and points at the design note.

4. Plan

Write the story body as prose first, then create the story with compass story new, passing the goal and the acceptance bullets so the generated file starts from the real text rather than a placeholder. Splice the remaining sections — decisions, why, what the bag is, the defect underneath, the model, the design record — into the generated file, and never touch the header.

5. Measurements

Every number this task claims about a tree, with the command that produced it and the commit it was measured at. A number without both is not a measurement, because a clean-up record describes a tree and trunk moves under a branch: a consumer count, a gate's component count and a suite's size all change with no code changing, and the reader of a bare number cannot tell which tree it came from. Where the raw output matters, put it in an evidence/ file beside the task and name that file in the Command column.

What Value Command Commit
       

6. Notes

7. Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

8. PRs

PR Title
#4018 [agile] Let the plan state domain rows, not a bag

9. Review

Comment summary File Decision Notes
       

10. Result

The story exists at 9BB217A3-C60C-482C-9384-DC2E7DF8E322 and compass task new --story 9BB217A3-C60C-482C-9384-DC2E7DF8E322 resolves it, which it could not do before.

The first attempt was hand-written and had no header at all: no properties drawer, no #+title, no #+type, no ID. The index therefore never saw it, and the sprint row added by hand named 6D920523, an ID that existed nowhere on disk, so sprint 29 carried a dangling reference. Both are gone. The branch was reset onto origin/main (it was fifteen commits behind) and the story was created through the tool.

Emacs 29.3 (Org mode 9.6.15)