Skip to content

IR V1: The corpus, inventoried - #39

Open
afogel wants to merge 1 commit into
mainfrom
claude/focused-allen-h1d4u6
Open

IR V1: The corpus, inventoried#39
afogel wants to merge 1 commit into
mainfrom
claude/focused-allen-h1d4u6

Conversation

@afogel

@afogel afogel commented Sep 13, 2026

Copy link
Copy Markdown
Owner

First slice of the Normative IR work stream (docs/shaping/normative-ir-slices.md §V1), and the base of the IR stack. V2 will be opened against this branch.

Demo: bun run ir census prints the source census and the provision census for the pinned spec, and writes ir/census/provisions.yaml. CI holds that file in sync with the submodule (bun run ir census --check).

What it delivers

  • The corpus is declared, not grepped (R1.1). ir/census/sources.yaml classifies all 38 documents under spec/acs/docs/ as normative, informative or editorial and says what makes each normative one so. The census fails when the tree and the declaration disagree in either direction.
  • Every RFC 2119 occurrence is in exactly one state (R1.6): bound, excluded with a machine-readable reason, or unbound. At v0.1.2: 208 occurrences in 134 blocks, 197 unbound in normative sources, 11 excluded by source status.
  • The scan reproduces the X3 spike exactly at c259f57 (203 in 132 blocks; 145 paragraph, 33 list item, 17 table cell, 8 blockquote), which is the acceptance test the slices doc set. The five additions at v0.1.2 are table cells in two identity pages that describe themselves as not yet normative.
  • Callouts and footers. The ten (normative) callouts and the other tag shapes the spec uses are listed as candidates (type is editorial, E1.4). The eight Referenced by footers are parsed into 22 candidate depends_on edges, none dangling, none yet matched by a provision (U33).

Shaping doc re-survey at v0.1.2

docs/shaping/normative-ir-shaping.md was surveyed at c259f57. This PR adds a re-survey at 6fce2a0:

  • The missing ## 9. heading is fixed upstream (daf81ac). Upstream Finding 1 is closed, and Fact 1's consequence is now demonstrated: three provisions' section anchors changed while their text did not.
  • Corpus total is 208, not 203; the source census declares the two new identity pages informative.
  • The schema count was 44, not 48, at either commit.
  • response-envelope.json now carries the ServerHello union, so the structural specimen has a JSON Pointer to cite.

Boundary

ir/ is its own workspace. It reads spec/acs and nothing else in the repository (R8.2). No import crosses in either direction.

Verification

  • bun run typecheck passes.
  • bun test ir: 68 tests pass, including the pinned corpus held to the reference numbers above and the committed census compared byte for byte with a fresh run.
  • The full bun test fails 27 tests locally in packages/conformance and one in packages/guardian, all because the sandbox has no trash binary and no network; CI installs trash-cli, and none of those files are touched here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BX56nQPAsqYihopWfWy1xm


Generated by Claude Code

…v0.1.2

The first slice of the Normative IR (V1 in docs/shaping/normative-ir-slices.md):
`bun run ir census` prints the source census and the provision census for the
pinned spec, and writes ir/census/provisions.yaml, which CI now holds in sync
with the submodule.

The corpus is declared, not grepped. ir/census/sources.yaml classifies all 38
documents under spec/acs/docs/ as normative, informative or editorial, and says
what makes each normative one so; the census fails when the tree and the
declaration disagree in either direction. Every RFC 2119 occurrence lands in
exactly one state: bound, excluded with a reason, or unbound. At v0.1.2 that is
208 occurrences in 134 blocks, 197 unbound in normative sources and 11 excluded
by source status. Pointed at c259f57, the scan reproduces the X3 spike's numbers
exactly (203 in 132 blocks; 145 paragraph, 33 list item, 17 table cell, 8
blockquote), which is the acceptance test the slices doc set for it.

The scan also lists the ten (normative) callouts and the other tag shapes the
spec uses, and seeds candidate depends_on edges from the eight Referenced-by
footers: 22 pillar entries, none dangling, none yet matched by a provision.

The shaping doc's Verified ground is re-surveyed at 6fce2a0 (v0.1.2): the
missing `## 9.` heading is fixed upstream, which closes upstream Finding 1 and
demonstrates Fact 1's consequence; two informative identity pages account for
the five new occurrences; the schema count was 44, not 48; and the response
envelope now carries the ServerHello union the structural specimen can cite.

The ir/ workspace reads spec/acs and nothing else in the repository.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BX56nQPAsqYihopWfWy1xm
@afogel
afogel added this pull request to stack #48 September 14, 2026 14:18
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.

2 participants