Skip to content

Record how JavaScript reaches the schema prose - #3

Merged
samuelduchesne merged 1 commit into
mainfrom
006-expose-the-prose-pool
Sep 4, 2026
Merged

Record how JavaScript reaches the schema prose#3
samuelduchesne merged 1 commit into
mainfrom
006-expose-the-prose-pool

Conversation

@samuelduchesne

Copy link
Copy Markdown
Contributor

Two register entries for SchemaBundle.loadProse and SchemaBundle.prose, the pair that lets a consumer of the shared name obtain the prose pool.

Why the entries

The divergence is the one SchemaBundle.load already carries against get_schema. JavaScript deduplicates every memo and note of the seventeen schemas into one side file the manifests index into, and reads it on demand. Python ships the full schemas on disk and reads note and memo off the record it already holds, so there is nothing to load and no moment at which to load it.

Not a capability difference. describe_object_type reports the same prose in both languages and the corpus compares a digest over every memo and note of all 858 types in 26.1.0. Only the moment of loading differs, which is what divergent is for.

Why they are here at all

The naming gate does not require them. Its coverage reaches the names an entry point exports at the top level, and a method on an exported class sits outside that reach, as check-naming-register.mjs says in its own header: caught by review, not here. They are registered because Principle I is about the vocabulary rather than about what the gate happens to see, and because omitting them is how a Python counterpart gets added later without the difference having been decided.

Sequencing

This does not block the code. Because the gate cannot see class members, the implementation in idfkit-js passes check:naming with or without this PR, so the two can land in either order and no new governance tag is needed before the code. That is different from feature 005, where the names were top-level exports and the tag was a hard prerequisite.

A governance-2026.12 tag is still wanted so the rendered naming map carries these rows, but nothing is red while it waits.

Verification

node scripts/check-naming-register.mjs --register <this branch>  ->  exit 0, PASS 136 of 136
node scripts/check-parity-ledger.mjs                             ->  exit 0, PASS

The parity ledger is untouched: this adds no capability. The corpus level does not move.

@idfkit/schemas gains SchemaBundle.loadProse and SchemaBundle.prose, so a
consumer holding the shared name can obtain the prose pool that describeObjectType
and the language service already accept. Two names, both divergent, both recorded
here before review rather than after.

The divergence is the same one SchemaBundle.load already carries against
get_schema, and for the same reason. JavaScript deduplicates every memo and note
of all seventeen schemas into one side file the manifests index into, and reads
it on demand; Python ships the full schemas on disk and reads note and memo off
the record it already holds. There is nothing for Python to load and no moment at
which to load it.

This is not a capability difference and must not be read as one. describe_object_type
reports the same prose in both languages, and the corpus compares a digest over
every memo and note of all 858 types in 26.1.0. Only the moment of loading differs,
which is what `divergent` is for.

The gate does not require these. Its coverage reaches the names an entry point
exports at the top level, and a method on an exported class sits outside that, as
check-naming-register.mjs says in its own header: caught by review, not by the
gate. They are registered because Principle I is about the vocabulary rather than
about what the gate can see, and because leaving them out is how a Python
counterpart gets added later without anyone noticing the difference was decided.
@samuelduchesne
samuelduchesne requested review from a team as code owners September 4, 2026 19:54
@samuelduchesne
samuelduchesne merged commit 96cd3fe into main Sep 4, 2026
1 check passed
@samuelduchesne
samuelduchesne deleted the 006-expose-the-prose-pool branch September 4, 2026 19:58
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