Development record
spec.Close on a tree with no spec store plants an empty .abcd/development/specs/ before failing 'not found': Close takes the store lock through withStoreLock, whose ensureDir creates the store to lock it, contradicting the rule the spec store states beside WithStoreLock (a verb that writes no spec must not plant an empty store). spec.Discard has the same shape. Unreachable through any in-tree verb today (both Close callers load the spec first), but the writer itself must not plant the store.
issueresolvedminoriss-2609262342345159
spec.Close on a tree with no spec store plants an empty .abcd/development/specs/ before failing 'not found': Close takes the store lock through withStoreLock, whose ensureDir creates the store to lock it, contradicting the rule the spec store states beside WithStoreLock (a verb that writes no spec must not plant an empty store). spec.Discard has the same shape. Unreachable through any in-tree verb today (both Close callers load the spec first), but the writer itself must not plant the store.
Grounds
- pursued: TestAWriterOnATreeWithNoSpecStorePlantsNone asserts that Close and Discard on a tree with no spec store leave no .abcd/development/specs/ behind, and that Close still refuses the id; a writer that plants the store, or a Close that stops refusing, turns it red.
Frontmatter
| id | iss-2609262342345159 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609262342345159-spec-close-on-a-tree-with-no-spec-store.md
open on GitHub ↗ · commit history ↗