Development record
2026-09-26 — The lab store is keyed `~/.abcd/lab/<root-sha>/<lab-id>/`, with one `index.jsonl` registry per root-sha lane beside the lab homes (lane implementer, autonomous run A, on review-lab's third finding against spc-2609212141418943 for itd-2609212137128014). This supersedes two recorded texts: the spec's literal `~/.abcd/lab/<lab-id>/` (scope item 1), and the 2026-08-31 lab-convention entry's hand-run keying `~/.abcd/lab/<timestamp>-<source-sha7>/` with a single top-level `~/.abcd/lab/index.jsonl`, whose stated divergence from root-sha keying is withdrawn. Why: the intent's scope condition keys the store "as the other machine-scoped stores are", and the worktree and transcript stores key on the repository's root commit, because a checkout moves, is renamed and is cloned twice on one machine while its root commit does none of that; a lab's identity is still its intention, carried by its id `lab-<yymmddHHMMSS>-<pin7>` (the UTC mint time and the pin), so several labs share one baseline inside one lane. The hand-run labs that predate the verb stay where they are, beside the root-sha lanes, and the verb neither reads nor writes them or the top-level registry, so no real lab is moved or migrated by the change. A later text naming `~/.abcd/lab/<lab-id>/` (the open spc-2609221011151661's `pairs.jsonl` among them) means the lab home inside its root-sha lane.
2026-09-26 — The lab store is keyed ~/.abcd/lab/<root-sha>/<lab-id>/, with one index.jsonl registry per root-sha lane beside the lab homes (lane implementer, autonomous run A, on review-lab's third finding against spc-2609212141418943 for itd-2609212137128014). This supersedes two recorded texts: the spec's literal ~/.abcd/lab/<lab-id>/ (scope item 1), and the 2026-08-31 lab-convention entry's hand-run keying ~/.abcd/lab/<timestamp>-<source-sha7>/ with a single top-level ~/.abcd/lab/index.jsonl, whose stated divergence from root-sha keying is withdrawn. Why: the intent's scope condition keys the store "as the other machine-scoped stores are", and the worktree and transcript stores key on the repository's root commit, because a checkout moves, is renamed and is cloned twice on one machine while its root commit does none of that; a lab's identity is still its intention, carried by its id lab-<yymmddHHMMSS>-<pin7> (the UTC mint time and the pin), so several labs share one baseline inside one lane. The hand-run labs that predate the verb stay where they are, beside the root-sha lanes, and the verb neither reads nor writes them or the top-level registry, so no real lab is moved or migrated by the change. A later text naming ~/.abcd/lab/<lab-id>/ (the open spc-2609221011151661's pairs.jsonl among them) means the lab home inside its root-sha lane.
Frontmatter
| id | dcn-2609260000000004 |
|---|---|
| type | decision |
| date | 2026-09-26 |
.abcd/work/decisions/dcn-2609260000000004-the-lab-store-is-keyed-abcd-lab-root-sha.md
open on GitHub ↗ · commit history ↗
mentions3
- itd-2609212137128014abcd lab mechanises the lab conventions three hand-run experiments proved
- spc-2609212141418943abcd-lab-mechanises-the-lab-conventions-three-hand-run
- spc-2609221011151661abcd-s-typed-judgements-can-run-through-a-decision-adapter