Skip to content

docs: correct nine one-low 3.3.N cross-references and one dead anchor - #237

Merged
imran-siddique merged 2 commits into
agentrust-io:mainfrom
aeoess:docs/xref-external-execution-evidence
Aug 31, 2026
Merged

docs: correct nine one-low 3.3.N cross-references and one dead anchor#237
imran-siddique merged 2 commits into
agentrust-io:mainfrom
aeoess:docs/xref-external-execution-evidence

Conversation

@aeoess

@aeoess aeoess commented Aug 28, 2026

Copy link
Copy Markdown

What this changes

Nine references to a 3.3.N subsection point one section low. v0.2 inserted §3.3.1 (build provenance depth) above the v0.1 sections, so references written against v0.1 numbering that now point into v0.2 are off by one: the external-execution-evidence rules are §3.3.2, the action-receipt layers are §3.3.3. All nine are corrected; one of them also carried an anchor naming a heading that does not exist in the file (#332-... for a §3.3.3 heading), now #333-.... References into spec/trace-v0.1.md and references to build provenance depth are correct and untouched.

Sites: docs/verification.md:275, spec/trace-v0.2.md:404, docs/tutorials/verifying-the-audit-chain.md:147, examples/action-receipts/README.md:9,96,119, examples/action-receipts/conformance/gen_rule_coverage_vectors.py:198, tests/test_action_receipt_fixtures.py:150, docs/verification-outcome-statements.md:27. The sweep and table are @lywinged's, from review.

Type of change

  • Editorial (typo, link fix, clarification: no normative effect)
  • Non-breaking spec change (new optional field, new platform profile, informative addition)
  • Breaking spec change (requires 14-day comment period and Project Lead sign-off)
  • Schema change
  • Example addition

Spec section

§3.3.2 and §3.3.3 of spec/trace-v0.2.md (one cross-reference in §3.3.3 itself); the rest are docs, examples and tests that cite them. No normative text changes beyond the section number.

Checklist

  • DCO sign-off on all commits (git commit -s)
  • CHANGELOG.md updated (for any normative change): not applicable, editorial
  • Breaking changes marked with <!-- CHANGED: #NNN: description --> in spec text: not applicable
  • Backward compatibility statement included (for breaking changes): not applicable

Local run of the four CI steps on the branch: ruff clean, dash check clean, mypy clean, pytest 828 passed 1 skipped, unchanged from main.

Signed-off-by: Tymofii Pidlisnyi <signal@aeoess.com>
@aeoess
aeoess requested a review from a team as a code owner August 28, 2026 23:20
@github-actions

github-actions Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

🔴 Contributor Check: HIGH

Check Result
Profile HIGH
Credential LOW
Overall HIGH

Automated check by AgenTrust Contributor Check.

@github-actions github-actions Bot added the needs-review:HIGH Contributor check flagged HIGH risk label Aug 28, 2026

@lywinged lywinged left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both corrections are right, and the rule that makes them right locates the rest of them. Eighteen references to a 3.3.N subsection exist in the tree. Nine are one low. This PR takes two.

Why the class exists

v0.2 inserted a subsection and pushed everything below it down one:

v0.1   3.3.1 External execution evidence   3.3.2 Action receipts
v0.2   3.3.1 Build provenance depth        3.3.2 External execution evidence   3.3.3 Action receipts

Every reference written against v0.1's numbering that now points into v0.2 is one low. Every reference that still points into v0.1 is correct and has to stay. That one test sorts all eighteen, and it sorts them in two directions, because a reference to action receipts is one low as well.

The sweep

Each section 3.3.N and §3.3.N in the tree, read against the heading it actually lands on.

Off by one:

where says the text is about should be
docs/verification.md:275 3.3.1 receipt_unverified 3.3.2, this PR
spec/trace-v0.2.md:404 3.3.1 external execution evidence rules 3.3.2, this PR
docs/tutorials/verifying-the-audit-chain.md:147 §3.3.1 "defines the receipt structure" 3.3.2
examples/action-receipts/README.md:96 §3.3.1 the 14-receipt-issuer-key-unknown vector 3.3.2
examples/action-receipts/README.md:119 §3.3.1 the receipt_unverified outcome 3.3.2
examples/action-receipts/conformance/gen_rule_coverage_vectors.py:198 3.3.1 issuer_key_unknown is unverified, not invalid 3.3.2
tests/test_action_receipt_fixtures.py:150 3.3.1 the same sentence, in the test that consumes those vectors 3.3.2
examples/action-receipts/README.md:9 3.3.2 the three evidence layers, which is §3.3.3's table 3.3.3
docs/verification-outcome-statements.md:27 §3.3.2 "Not success of any physical or business outcome" 3.3.3

Correct as they stand:

where says why it is right
docs/verification.md:146 §3.3.1 build provenance depth, which is what §3.3.1 is
docs/verification-outcome-statements.md:28, 29, 30 §3.3.1 the downgrade, contradiction and floor rules, all inside §3.3.1 at lines 355 and 361
spec/trace-v0.1.md:264 3.3.1 external execution evidence, inside v0.1's own numbering
docs/crosswalks/acta-decision-receipts.md:9, 50, 105 3.3.2 into v0.1 action receipts, correct for v0.1
examples/action-receipts/acta/README.md:8 3.3.2 into v0.1 same

The rule the §3.3.1 rows are reaching for is spec/trace-v0.2.md:382, "A receipt whose issuer key is unknown to the verifier is unverified, not invalid", which sits inside §3.3.2 (368 to 385). The tutorial row is reaching for the paragraph listing issuer, issuer_key_id, signature, evidence_hash, evidence_type and linked_call_id, also §3.3.2. The two rows that should read 3.3.3 are reaching for the three layer table at line 393.

The two this PR takes are the load bearing pair, since one of them is normative text. Of the seven that remain, five are one sentence copied into a tutorial, twice into one example set, a generator, and the test that consumes what that generator produces, which is how a single number ends up in five places.

One of the nine is also a dead link

examples/action-receipts/README.md:9:

[spec section 3.3.2](../../spec/trace-v0.2.md#332-action-receipts-for-embodied-workflows-informative)

The paragraph under it lists session evidence, action issuance evidence and outcome evidence, which is §3.3.3's table. So the number is one low and the anchor names a heading that does not exist in the file it points at: the link lands at the top of the spec instead of at the section. Both halves are one character each: 3.3.3 in the text, and #333-action-receipts-for-embodied-workflows-informative in the anchor.

The four CI steps are ruff, the dash check, mypy and pytest, so nothing in the pipeline reads a link, which is why this one has been able to sit.

Two notes on the pull request itself

The description does not use the repository's pull request template, so Type of change, Spec section and the checklist are absent. spec/trace-v0.2.md is normative text, and while a cross reference correction is editorial and needs no sponsor under CONTRIBUTING, the form is what says so to a reviewer without them working it out.

Checked before writing this: on the branch, ruff, the dash check and mypy are clean and pytest gives 828 passed with 1 skipped, unchanged from main, which is what a docs only change should look like.

Taking the other seven here would close the class rather than two instances of it, and each is a one character edit. If you would rather keep this PR to the two sites in normative and normative adjacent text, say so and the rest can go in its own change.

….3.3 anchor

v0.2 inserted 3.3.1 (build provenance depth) and pushed the sections below it down one. Nine references written against v0.1 numbering pointed one section low; the first commit took the two in normative and normative-adjacent text, this one takes the other seven: tutorial, example README (three sites, one with an anchor that named a heading not in the file), vector generator, the test consuming it, and outcome-statements. References into spec/trace-v0.1.md and to build provenance depth are correct and untouched. Sweep and table by @lywinged in review.

Signed-off-by: Tymofii Pidlisnyi <signal@aeoess.com>
@aeoess aeoess changed the title docs: point external-execution-evidence references at section 3.3.2 docs: correct nine one-low 3.3.N cross-references and one dead anchor Aug 28, 2026

aeoess commented Aug 28, 2026

Copy link
Copy Markdown
Author

Taken all nine here, plus the anchor, as a second commit (dc30054); your table was exact, including the two that read 3.3.3. Left the v0.1 and build-provenance references alone per the rule. PR body now on the template, editorial. Ruff, dash check, mypy and pytest 828/1 on the branch, same as your run.

@imran-siddique imran-siddique left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nine off-by-one cross-references and a dead anchor, with the cause identified rather than just the symptom: v0.2 inserted §3.3.1 above the v0.1 sections, so anything written against v0.1 numbering that now points into v0.2 shifted by one.

The part that makes this safe to merge quickly is what you did not touch. References into spec/trace-v0.1.md are correct under v0.1 numbering and stay; references to build-provenance depth are correct and stay. A blanket increment of every 3.3.N in the repository would have broken both classes, and that is the obvious way to do this job wrong.

The anchor, #332-... naming a heading that does not exist, is the one a reader hits as a silent scroll-to-nothing rather than an error. Worth having caught.

Merging.

@imran-siddique
imran-siddique merged commit 0d4b82a into agentrust-io:main Aug 31, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-review:HIGH Contributor check flagged HIGH risk

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants