Write the loader fixture suite, valid and malformed

18 golden fixture boards as real on-disk trees under Fixtures/ — ten
valid/tolerated cases (rich board, interrupted create, non-UUID strays,
stray files, tombstones, tie-breaks, unknown-key order, coercion,
last-wins duplicates, board-level deleted) and eight fail-fast cases,
each pinned to its exact error reason and path; the rich board's whole
tree round-trips byte-identically. Pins two contract subtleties now
recorded in the design: tombstone flags are not inherited (renderers
walk ancestors) and last-wins resolves before order strictness. README
gains the storage-foundation feature entry. 146 tests total.

Claude-Session: https://claude.ai/code/session_018BjQRYBR6jQja3jCRi5S3A
This commit is contained in:
2026-07-26 16:20:47 -04:00
parent e6c34c0ccf
commit 7470255886
73 changed files with 900 additions and 4 deletions
@@ -0,0 +1,12 @@
---
schema: 1
labels: [bug, urgent]
order: 1024
assignees: [bob, carol]
title: Card With Unknowns
due: 2026-08-15
remote: {system: github, id: 42}
agent-scratch: notes here
---
Card body describing the bug. Unknown/reserved keys are interleaved with
schema-owned ones on purpose, to prove ordering survives the interleave.
@@ -0,0 +1,9 @@
---
schema: 1
order: 1024
remote-state: syncing
title: Lane With Unknowns
assignees: [alice]
due: 2026-08-01
custom: xyz
---