Skip to content

Give the approver model its own section heading - #50

Merged
rocklambros merged 1 commit into
mainfrom
docs/add-missing-section-9-heading
Sep 6, 2026
Merged

rocklambros merged 1 commit into
mainfrom
docs/add-missing-section-9-heading

Conversation

@rocklambros

Copy link
Copy Markdown
Contributor

What

docs/spec/instrument/specification.md numbers every section ## N. except section 9, which had none. The approver model at what should be §9 opened directly with body prose, so it rendered as the tail of ### 8.6 Chain head publication (normative).

Adds ## 9. Approver Model ahead of that prose, matching the shape §4 already uses (a ## N. heading, body text, then ### N.1).

Why it went unnoticed

A subsection renders under whichever heading precedes it, so an orphaned ### 9.1 builds clean under --strict. Nothing failed. The effects were all silent:

  • Approver rules read as part of chain-head publication
  • Section 9 had no anchor and no table-of-contents entry
  • concepts/intent.md, concepts/identity.md, and concepts/agents.md each send readers to §9, which the page did not appear to contain

This is not a regression. No blob anywhere in the repository's history contains a line starting ## 9, so it dates to the canonical v0.1.0 import in f46d260.

Guard

tests/test_spec_structure.py asserts two things across every numbered document, not just this one:

  • every numbered subsection has a matching ## N. parent
  • the numbered section sequence runs without gaps

Both failed before the fix, naming section 9 specifically and nothing else. Both pass after.

Verification

  • uv run pytest 194 passed, 1 skipped (up from 192, the two new guards)
  • uv run mkdocs build --strict exits 0
  • Built page carries id="9-approver-model", and #92-approver-incapable-clients-normative is unchanged, so the existing §9.2 link at line 113 still resolves

Not changed

The three concept pages refer to (§9) as bare text. That matches the local convention for those "Referenced by" footers, which link the file and leave section numbers bare, so I left them alone.

Type of change

  • Specification change (schema, hooks, events, AgBOM)
  • Documentation
  • Tooling or CI
  • Governance

Security

  • This change has no security impact

Sections 1 through 8 and 10 through 17 each open with a '## N.' heading.
Section 9 never had one. No blob in the repository's history contains a
line starting '## 9', so this dates to the canonical v0.1.0 import rather
than to a later edit.

The consequence was silent. The approver rules rendered as the tail of
'8.6 Chain head publication', section 9 got no anchor and no table of
contents entry, and the three concept pages that refer a reader to §9
pointed at a section the page did not appear to contain.

The guard is structural because nothing else catches this. A subsection
renders under whichever heading precedes it, so an orphaned '### 9.1'
builds clean. The test asserts every numbered subsection has a parent
section and that the section sequence has no gaps, across every numbered
document rather than this one.

Signed-off-by: rocklambros <rock@rockcyber.com>
@rocklambros
rocklambros merged commit daf81ac into main Sep 6, 2026
3 checks passed
@rocklambros
rocklambros deleted the docs/add-missing-section-9-heading branch September 6, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant