Repository navigation
docs: ADRs on spec identity and file identity; log format, store, and retention stated - #192
Merged
Merged
Conversation
… retention stated ADR 0009: a record names its spec by name, version, and digest. A record whose spec is not bound stays in the history and its outputs read as plain scipp data; a new request cannot reference them. ADR 0010: a file the catalogue lists is identified by its catalogue identifier, any other file by its path, relative to the workspace's folder when inside it. ADR 0004: the log's format header and the starts list are decisions, and dropping an idle proposal's history applies only to a history no person holds. ADR 0002: the store is read and written through Store, and a value's file format must allow reading one array, or its metadata, alone. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This was referenced Nov 13, 2026
Merged
Member
Author
|
LGTM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 3 of #184: what a workspace keeps on disk, decided. Two new ADRs and two edited ones. Implementation follows in PRs stacked on this branch.
ADR 0009: a record names its spec by name, version, and digest, and a record of another spec stays readable. Not implemented yet. Today an outputs class can change under the same version and a stored value is read into the changed class without an error (
Centre.xrenamed tox_mm: float = 0.0reads back asx_mm=0.0), while a version bump makes old outputs unreadable. Decided: callers keep writing name and version; the log records a digest of each spec's params and outputs models (field names, types, requiredness, nested groups; not titles, descriptions, or defaults). A record whose spec is not the one bound now stays readable without its classes: params as the stored dict, outputs as plain scipp data. It cannot be referenced by a new request. A technique package's tests catch a model change without a new version.ADR 0010: a file is identified by its catalogue identifier, or else by its path. Not implemented yet. Today a folder source identifies a file by its absolute path, so a moved folder makes a trigger loop reduce its runs again, and one run seen through two file sources has two identities. Decided:
pid:<catalogue identifier>for a file the catalogue lists, formed from the identifier a raw file carries where the source has no catalogue access; otherwise the path, relative to the workspace's folder if the file is inside it.ADR 0004 (history). States the log's format header as a decision: a log reads only files of its own format, and older formats are not read. This replaces "old event formats must stay readable". Adds the list of starts. Limits the rule "a history is dropped once its proposal is idle" to a history that no person holds, such as that of the automatic reduction; the framework deletes nothing in a folder a person opened. The title changed accordingly.
ADR 0002 (values and the store). States that
Storeis the interface and that a file format belongs to each stored value, with what a format must allow so that a part of a value can be read later.Left open, and why. How a batch shows a row whose record is of another spec, together with what a batch is and how its definition is tied to its records, is #191. Whether every raw file carries the identifier, and whether a file the catalogue lists can still be unreadable, has to be asked of the teams that run the file writer and the catalogue.
Review. A fresh reviewer checked a first draft against the code with probes. Changed from it: the digest as first defined did not see a renamed field inside an outputs group, which is the motivating case; several decisions read as if implemented; the draft held five decisions in one ADR and is now split by decision.
🤖 Generated with Claude Code