Price the import-edge identity key at 232 novel leads and refuse it, pinned to the live tree (#13126) - #13247
Open
os-elon wants to merge 1 commit into
Open
Price the import-edge identity key at 232 novel leads and refuse it, pinned to the live tree (#13126)#13247os-elon wants to merge 1 commit into
os-elon wants to merge 1 commit into
Conversation
…e live tree (#13126) Measure the fifth `coveringKey` key the card asks for — a gate's first-party IMPORT edge as an identity key — and record the refusal with the measurement that earns it, plus live self-test cases that re-derive the price every run. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPrUz21stTFhJRUirdc4yw
This was referenced Aug 29, 2026
os-elon
marked this pull request as ready for review
August 29, 2026 17:52
os-elon
enabled auto-merge
August 29, 2026 17:52
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.
Fixes #13126
The card's first deliverable is a PRICE, and the price says do not add the key. This PR
ships the measurement and the refusal, pinned to the live tree so it cannot go stale — no
widening of
coveringKey.The measurement (re-run on today's tree, not the card's)
The card measured 228 at
8b4156139f. On this tree (183 families, 7347 tracked files) theclass is 234 raw edges / 232 deduped (family, imported module) pairs. The card's count
was a claim about a moved tree; this is the input.
The split the card asked for, with the method that separates the halves — every
(family, imported module)pair, classified by whethercoveringKeyanswers it today:scripts/**-declaring gates already reach many ofthese modules by another route" is falsified at pair granularity: only 15% are already
covered. The novel half is not a fraction of 232 — it is 232.
Swept over the whole corpus with the candidate key consulted LAST, exactly the way #13000's
was built:
Additive by construction, and still refused.
Why it is refused: precision, and the numbers are not close
#13000 bought its class for 5 novel leads on this same corpus. This one costs 232,
and 201 of the 232 (87%) land on five shared utilities nearly every gate links:
scripts/invoked-as.mjsscripts/import-prerequisite.mjsscripts/js-comment-mask.mjsscripts/ts-parse.mjsscripts/workspace-enumerator.mjsEvery one of those leads is TRUE — editing
invoked-as.mjsreally can turn all 118 red. A118-gate list is still the failure this file's header names: the dev who gets one stops
reading it, which ends exactly where a list omitting the one gate that matters ends. The
tail is the opposite shape and is the half worth having: 21 modules carrying 31 pairs, the
median card moving from 14 families to 15.
The only property separating the two halves is fan-in. This file draws its lines on
provenance rather than on volume, and a fan-in cut has no provenance to state:
invoked-as.mjsanddispatch-gates.mjsare the same KIND of edge, one link apart.Two narrowings measured, neither earns it either:
--self-testfamily — 12 novel pairs, but 8 of the 12 areimport of invoked-as.mjs, and the line is the INHERITANCE narrowing borrowed for thequestion [finding] dispatch-gates.mjs is a followable non-gate module, so its join bases and tier globs are inheritable — 2553 fabricated pairs for the next gate that imports it #11556 / [finding] Two gates import their shared glob helper and their shared declaration table OUT OF a gate script, which costs check:ci-filter-parity a 595-pair derivation lead #11511 settled separately. Identity is not that.
import-prerequisite.mjscard to 55.The Zone-3 route does not close the card's own witness
Measured, then proven by ablation: a fifth key over
entry.importsreaches 61 of the 232pairs and misses the witness.
entry.importsis empty for a--self-testfamily(
discoverFamiliesshort-circuits before the import follow), andscripts/pm/bare-root-worklist.mjs --self-testis exactly that. The remaining 171: 12 fromself-test importers, 159 whose target is itself a gate file.
What the refusal costs, stated rather than implied
The witness holds on today's tree, reproduced in the real dispatch output for THIS card:
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstackderives 14 familiesfor a card editing
scripts/pm/dispatch-gates.mjs, andbare-root-worklist --self-test—which statically imports that file — appears 0 times. That gate is run by hand. The miss
costs one CI round, the side this file's header errs on everywhere, and it is far smaller
than the 118-lead card the general key prints for the module all 118 import.
What lands
scripts/pm/dispatch-gates.mjsonly, 139 lines added, no behaviour change:coveringKey's docblock, in the register this file alreadyuses for
firstPartyImportTargets' andhintCovers' refusals.tree flattening under it, so the refusal is asserted rather than argued: the class is
real and novel, the 41/232 split is real, the witness holds, the worst card would still
name more than 44 families, and the class is still concentrated in 5 modules. A red
there is not a broken derivation — it says the refusal is due a re-pricing.
a dynamic
import()of ascripts/module (3 live family-module pairs) and a relativetarget outside
scripts/(3, alleslint.config.mjs). Declared, not hidden.#13232is not addressed here — those two stale docblock sites sit inCONVENTION_GATES,which this PR does not touch.
Verification, all at
9ae9cfbd78node scripts/pm/dispatch-gates.mjs --self-test—884 cases pass, the 5 new ones amongthem, and every number they print matches an independent out-of-tree measurement of the
same corpus.
check:agent-test-spelling,check:bash32-floor,check:cli-command-ids,check:cross-package-test-inputs,check:entry-guard,check:parse-guard,check:pm-dispatch-gates,check:pnpm-filter-targets,check:watch-hint-literal,check-ci-filter-parity.mjs,check-cross-package-test-inputs.mjs,check-self-test-wired.mjs,check-shard-attestation.mjs. Pluscheck:nul-bytesand the convention pair(
bare-root-worklist.mjs --self-test:OK self-test: 50 live rows).check-test-completeness.mjsexits 3 — the [finding]check-test-completeness.mjsanswers a standalone run with exit 1 + a usage line, so the derived gate family reads one false red — three independent devs paid for it in one session #13110 argument-less refusal, not a red.covered 41 to 102) — implemented the Zone-3 route on disk, mutation proven by decomposed
grep counts plus
git hash-object(63161a12to9ef1e80c), restored under anabsolute-path
trapand proven back to the HEAD blob. Observed: exactly that. This is themechanical proof that the route as written misses the witness.
green at 273) — implemented the full raw-edge key, mutation proven the same way
(
63161a12to7b171364), restored and proven byte-identical to HEAD. Observed:5 of 884 cases failed— my 4, plus dispatch-gates cannot see runtime staging dependencies between gate scripts (digest sandbox broke on a staged gate's new import) #13000's own additivity pin naming the single pairwhere the two classes overlap (
check:template-version-syncandscripts/invoked-as.mjs).The pins are falsifiable, not green-over-nothing.
No changeset: internal PM tooling, nothing published.
skip-changesetapplies.Generated by Claude Code
Generated by Claude Code