docs(schema): remove em dashes from Trust Record descriptions - #228
Merged
Conversation
House style is no em dashes in anything we publish, and these two sentences are published three times over: in the normative schema, in the copy packaged with the SDK, and at the $id URL agentrust-io.com serves, which is what a validator fetches when it follows a Trust Record's schema reference. Two strings, rewritten rather than repunctuated: "A TRACE v0.2 Trust Record — hardware-attested governance evidence" "A TRACE v0.2 Trust Record: hardware-attested governance evidence" "Confirmation key (RFC 8747) — binds the Trust Record to the TEE-held key" "Confirmation key (RFC 8747) that binds the Trust Record to the TEE-held key" The v0.1 packaged schema carries the identical two sentences and is cleaned in the same change. Leaving one behind means the next person greps, finds a hit, and cannot tell whether it was missed or deliberate. Description text only. No constraint, property, required list or $id moves, so nothing that validates today stops validating. This is a prerequisite: agentrust-io.github.io serves schema/trace-v0.2.json and its schema-parity workflow byte-compares that file against trace-spec/schema/trace-claim.json. The published copy cannot be cleaned until this lands, and the site PR re-syncs it immediately afterwards. Unrelated, and pre-existing on a clean tree: test_safe_integer_range and the delegation-link generator fixture test fail locally on Windows because _schemas_on_disk() compares os.sep-joined paths against forward-slash literals. Green on Linux CI, untouched here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak
imran-siddique
added a commit
to agentrust-io/agentrust-io.github.io
that referenced
this pull request
Aug 27, 2026
… one (#40) * style: remove every em dash from the site, and guard against the next one The no-em-dash rule was already house style. The site carried twenty-six occurrences anyway, across seven files, and the reason is visible in where they were hiding: a page title, an image alt attribute, a JSON data file, two source comments, and four loading placeholders. None of those are places prose review looks. Twenty-four em dashes and two en dashes, rewritten rather than repunctuated, so none of them reads like a dash was swapped for a colon and left dangling: "Marketplace - Build with..." -> "Marketplace: Build with..." "Toolkit-from framework adapters" -> "Toolkit, from framework adapters" "Terminal 1 - leave running" -> "Terminal 1: leave running" "every agent action - signed by" -> "every agent action, signed by" "Name A-Z" / "Name Z-A" -> "Name A to Z" / "Name Z to A" The four in the Marketplace hero were not prose. They are the placeholder shown while the catalog loads, where an em dash stood in for a number that has not arrived yet. Replaced with an ellipsis, which reads as "still loading" rather than as punctuation. data/adoption.json was not in the original sweep because it arrived in #38 while this was in progress, which is the argument for the check rather than against it. tools/check-dashes.js runs in CI on every PR. It builds its offender table from code points rather than literals, because a checker containing the characters it bans reports itself, and the fix somebody reaches for at that point is an exemption for the checker. schema/ is exempt, deliberately: those files are byte-for-byte mirrors of trace-spec enforced by schema-parity, so a dash there is an upstream fix followed by a re-sync, and failing CI here for something CI here cannot act on only teaches people to ignore it. The same workflow now runs marketplace/marketplace.test.js, which covers the escaping and URL-scheme guards added in #31 after the catalog was found to be rendered from remote JSON without them. It was never wired to a workflow, so it has been passing or failing unobserved since. schema/trace-v0.2.json is re-synced from trace-spec rather than hand-edited, because schema-parity is a byte comparison and a partially-updated mirror is not a mirror. That pulls in more than the two descriptions: the published copy had already drifted, and the scheduled parity check has been RED since 2026-08-24. Anything fetching the canonical $id URL to validate a Trust Record has since been validating against a schema missing $defs/canonicalizableValue, the safe-integer maxima on iat, and the references block. The re-sync fixes that too. Upstream: agentrust-io/trace-spec#228. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak * fix(schema): re-sync the two revocation mirrors as well The parity job guards three published schemas as a set, and all three had drifted. Cleaning only trace-v0.2.json left the job red for the other two, which is both a broken check and a half-fix: the revocation schemas are published at the same $id pattern and fetched by the same verifiers. The drift is three "maximum": 9007199254740991 constraints, the safe-integer bounds upstream added alongside the ones in trace-v0.2.json. Until now the published copies accepted revocation records carrying integers no JSON parser round-trips reliably. No dashes in either file, which is why the original sweep did not reach them. Re-synced from upstream rather than hand-patched, for the reason in the previous commit: parity is a byte comparison and a partially-updated mirror is not a mirror. Both $id values verified unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
House style is no em dashes in anything we publish. These two sentences are published three times over: in the normative schema, in the copy packaged with the SDK, and at the
$idURLagentrust-io.comserves, which is what a validator fetches when it follows a Trust Record's schema reference.The change
A TRACE v0.2 Trust Record — hardware-attested governance evidence…A TRACE v0.2 Trust Record: hardware-attested governance evidence…Confirmation key (RFC 8747) — binds the Trust Record to the TEE-held signing key.Confirmation key (RFC 8747) that binds the Trust Record to the TEE-held signing key.Rewritten rather than repunctuated, so neither reads like a dash was swapped for a colon and left dangling.
Files:
schema/trace-claim.json(normative),src/agentrust_trace/schema/trace-v0.2.json(packaged, guarded bytest_validate.py), andsrc/agentrust_trace/schema/trace-v0.1.json, which carries the identical two sentences. Leaving v0.1 behind means the next person greps, finds a hit, and cannot tell whether it was missed or deliberate.Description text only. No constraint, property,
requiredlist or$idmoves. Nothing that validates today stops validating.Why this one goes first
agentrust-io.github.ioservesschema/trace-v0.2.json, and itsschema-parityworkflow byte-compares that file againsttrace-spec/schema/trace-claim.jsonon every PR and daily. The published copy cannot be cleaned until this lands. The site PR re-syncs it immediately afterwards.Note on two local failures
test_safe_integer_range::test_every_schema_in_the_repository_is_classifiedand thedelegation-linkgenerator fixture test fail on Windows before this change as well:_schemas_on_disk()comparesos.sep-joined paths against forward-slash literals. Green on Linux CI, untouched here, and worth a separate fix.🤖 Generated with Claude Code
https://claude.ai/code/session_014NL8o3PXq6kfs2SdmBv6ak