docs(g-track): tick rate as ground, and the act-indexed validity horizon - #52
Merged
Conversation
Applies Emil's 2026-08-20 addendum to the ground-as-ontology PRD. The correction it carries: rate of change is a property of the thing, not of a storage concern, so it belongs on the registry entity where every consumer can read it — and "data" stops being a separate specification domain. - New §5.6 "Tick rate and the validity horizon": the computation and where each input lives (as_of on the Reading, rate on the entity/axis, tolerance on the act, horizon computed per pair); the tick rate as a Reading itself, declared at design time and superseded by observation; §5.6.1's three constraints (distribution not scalar, ground not tuning knob, bootstrap honestly); §5.6.2's replacement of the data layer. - The existing Guard section renumbers 5.6 -> 5.7, with its three in-text cross-references repointed. - §3's vocabulary row records that the registry vocabulary gains tick rate, outside the tuning path. - Open items 18-20: vocabulary shape, where tolerance is declared, and the limit on observation for arrangements that are not event-sourced. Specified, not scheduled — nothing in §5.6 is built until 18-20 are ruled. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VfQpchmTnrGzxgxQF4CLaH
…alue §5.6's stage table gives declared rates `provenance = declared`, which is not in §4.1's value set (controlled / observed / inferred / institutional). A defect in the addendum itself, of the same class as the G-1 mis-pin: a value used from conversation as though it were filed. Filed as its own item rather than folded into 18. Item 18 is the rate's shape and stays inside the G-track; 21 is whether the provenance value set gains a fifth member, which is track-owned vocabulary under g-dec-01 pending the Q25/Q27/Q30 wave and therefore carries a canon consequence. Folding them would hide a filing decision inside an implementation detail. Three candidates recorded for the ruling: a fifth value; `inferred` with the assumption in `assurance`; or a distinct axis for assumed-versus-measured, on the grounds that it may be orthogonal to where a value came from. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VfQpchmTnrGzxgxQF4CLaH
§5.6's stage table carried `declared` unmarked, so a reader who reaches §5.6 without reaching §12 reproduces the error the item was filed to catch. An unmarked wrong value in a specification is a stale projection waiting to be cited. The marker is a pointer, not a resolution: it flags that the question is open without hinting at its answer. The ruling stays with item 21 and the wave's context. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VfQpchmTnrGzxgxQF4CLaH
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.
Applies Emil's 2026-08-20 addendum to
docs/g-track/prd-ground-as-ontology.md, as merged through #51. Docs-only.The correction it carries: rate of change is a property of the thing, not of a storage concern. It belongs on the registry entity, where every consumer of that entity can read it — and "data" stops being a separate specification domain.
Specified, not scheduled. Nothing in §5.6 is built until items 18–21 are ruled and the work is phased. The addendum exists so the model is written down before it is implemented, and so the "data as a separate domain" framing stops propagating in the meantime.
What changed
as_ofon the Reading (§4.1), tick rate on the entity or axis, tolerance τ on the act, horizon computed per pair. Tolerance on the act is the load-bearing part — a reading is fresh for an act, not fresh in general (v5.7.0's act-indexed discharge,DDD-frame-16, applied to freshness). The tick rate is itself a Reading, declared at design time and superseded when observation arrives, so design-time assumptions are the same field at lower assurance rather than a separate mode of the system.Two judgement calls
§5.6 was already occupied by Guard, so
5.6 Guardrenumbers to §5.7 and its three in-text cross-references are repointed (prd-ground-as-ontology.md:547,:580,:581). Guard sits where it did, at the end of §5. The alternative — giving the addendum a different number — would have broken the §5.6 references in Edits 2 and 3.A defect in the addendum itself, filed as item 21. §5.6's stage table gives declared rates
provenance = declared, which is not in §4.1's value set (controlled/observed/inferred/institutional). Same class as the G-1 mis-pin: a value used from conversation as though it were filed. The addendum's wording is left intact and the question is recorded rather than quietly reconciled — the value set is track-owned underg-dec-01pending the Q25/Q27/Q30 wave, so a fifth member is a filing decision, not an edit.Item 21 is deliberately not folded into 18: 18 is the rate's shape and stays inside the G-track; 21 carries a canon consequence. Folding them would hide a filing decision inside an implementation detail. Three candidates are recorded for the ruling — a fifth value;
inferredwith the assumption inassurance; or a distinct axis for assumed-versus-measured, on the grounds that "assumed at design time" and "inferred by rule" may be genuinely different things.Verification
Docs-only, +90/−5 in one file. Nothing in the test suite reads this PRD — the only code references under
docs/g-track/are toregistry-template/, which this PR does not touch.Generated by Claude Code