Skip to content

Commit 24b6635

Browse files
claude[bot]claude
andauthored
Derive the gates that re-derive from a package's export surface (#14207)
Six gates re-derive their population from `@objectstack/spec`'s public export surface, and every one was absent from the derivation for `packages/spec/src/index.ts` -- the entry point that IS their subject. One shape, one hole. None of them spells that subject as a path. Each reads the package manifest, walks its `exports` map, and resolves each subpath into a built `dist/` that is untracked by construction. The derivation models three follows and all three end at a PROGRAM whose declared population it can inherit; a manifest is not a program, so the whole class ended at a read that contributed nothing. Adds the fourth follow -- the manifest edge -- routed through the same pieces as the other three: the followed file's own declaration decides what a caller inherits (here the `exports` map), `hintOrigin`/`hintEdge` label it so it never travels as a claim the gate made itself, and it is appended last so it can only fill a hole. A gate must READ the exports map to follow it: three live gates read a manifest for `.version` or the `scripts` map and inherit nothing. Also reads a package root held in a PARAMETER (one call site, one value), consulted only where nothing binds the name -- the branch that returned `unknown` before -- which is the spelling one of the six uses. Measured over 199 families x 7762 files: 166173 -> 172797 pairs (+6624), 0 lost, 0 re-attributed, 6 verdicts changed. A seventh live gate the card never named, `check:dual-build-cjs-loads`, is covered by the same edge, and the self-test pins an eighth that exists nowhere but the case. Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV Co-authored-by: Claude <noreply@anthropic.com>
1 parent f7be03f commit 24b6635

1 file changed

Lines changed: 603 additions & 7 deletions

File tree

0 commit comments

Comments
 (0)