Repository navigation
docs(platforms): add the Bernstein software-only vendor annex (#231) - #371
Merged
imran-siddique merged 2 commits intoSep 20, 2026
Merged
Conversation
…ust-io#231) The annex accepted on agentrust-io#231 and sequenced after the reproducibility claim, which merged in agentrust-io#364. Informative, per GOVERNANCE: it binds nothing and names the section behind every requirement it quotes. docs/platforms/bernstein.md maps the producer onto the Trust Record: the hash-chained journal each claim is derived from and the seal boundary it states for itself; the field-by-field derivation; one record per hop with the delegation link over the complete signed parent under section 3.1.3; the run-level aggregate and its member-execution references; where the two recomputable commitments of section 3.1.4 sit on such a record today (all-zero measurement pending agentrust-io#242, tool_transcript over the calls); the mapping of the reproducibility claim onto the producer's re-derivation check, with the note that the emitter at the pinned commit does not yet carry the block; what a verifier can recompute without the producer; the Level 0 ceiling; and the seven emitter-minted vectors, pinned by commit. The journal's own hashes use a code-point key order and are named as not being TRACE digests; every digest that reaches a record is RFC 8785. docs/platforms/index.md gains a vendor-annex table, mkdocs.yml the nav entry, CHANGELOG.md the entry. Signed-off-by: chernistry <sanderchernitsky@gmail.com>
1 of 2 tasks
Signed-off-by: Imran Siddique <imran.siddique@opaque.co> # Conflicts: # CHANGELOG.md
imran-siddique
previously approved these changes
Sep 20, 2026
imran-siddique
left a comment
Member
There was a problem hiding this comment.
Approving at the merge commit I just pushed. The annex is the one accepted on #231 and it stays inside what a software-only producer can claim: software-only on every record, Level 0 with TR-RTE-001 named as the reason Level 1 is unreachable, and everything pinned to sipyourdrink-ltd/bernstein@4281e3c1. The nav entry is in mkdocs.yml and the requirement-attribution guard passes.
The CHANGELOG.md conflict came from merging #370 just now, so I resolved it in the branch with both entries kept.
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.
What this changes
The vendor annex accepted on #231, sequenced after the reproducibility claim and opened now that #364 has merged. Informative, per GOVERNANCE: reviewed by the vendor author and one Maintainer, binds no implementation, and names the section behind every requirement it quotes (
tests/test_requirement_keywords_are_attributable.pypasses on it).docs/platforms/bernstein.mdmaps a software-only producer, a deterministic scheduler with no hardware root, onto the Trust Record. Everything in it is pinned tosipyourdrink-ltd/bernstein@4281e3c1, the commit the supplementary-plane pair was minted at, and follows the emitter's own module docstring rather than restating it from memory:event_hash = H(prev_hash, event_type, payload_hash, index), timing excluded frompayload_hash), the seal boundary the emitter states for itself, and one distinction a verifier needs: the journal's own hashes use a code-point key order with ASCII escaping and are not TRACE digests; every digest that reaches a record is RFC 8785.null.member-executionreferences with the digest indigest, as corrected earlier in the thread. Bothrelvalues are named as unregistered.runtime.measurement(all-zero, pending docs(trust-levels): all-zero measurement means no commitment, not software-only #242) and the journal commitment (tool_transcript.hash, over the calls; the head is not on the record) sit today.replay --re-derivecheck is the function: recorded plan and outcomes in, coordination steps out, no agent re-executed, no network. The mapping ontofunction/code_identity/code_resolver/input_closure/transcript_digest, with two cautions: the re-derived journal head is nottranscript_digest(different encoding), and the re-derivation's two refusal codes are bothdivergedin section 3.1.4's vocabulary. Stated plainly: the emitter at the pinned commit does not carry the block yet; the schema shape is schema(claims): carry the reproducibility claim and its re-execution result (#366) #370.docs/platforms/index.mdgains a vendor-annex table with the one row;mkdocs.ymlgains the nav entry under Platforms;CHANGELOG.mdgains the entry.Type of change
Spec section
None changed. The annex reads 3.1.1 (
software-only), 3.1.2 (references), 3.1.3 (the link preimage), 3.1.4 (the claim) and 3.4 (delegation), and says so where it does. Section 4.4's annex list names hardware slots only; whether a software-only row belongs there is a spec question I have left alone.Checklist
git commit -s)CHANGELOG.mdupdatedDocs guards,
tools/check_dashes.pyand the full suite (1655 passed) are clean on the branch.Refs #231.