PageDocument call-site precision: object-literal keys match the parameter type at that position (no claim on T / Partial<T>); JSX props are top-level only and every element in the fence is checked; gap mentions include call-return bindings and heading-scoped x.member; ambiguous bare members resolve through heading ancestors.
Changelog
Every release, straight from the changesets. Newest first.
PageDocument: prose candidates, heading/cross-fence gap mentions, fence call-site rules.
- Emit
kind: 'prose'candidates for sentences, list items, and table cells that name an export orType.member. Bare-word match only for camelCase, PascalCase with 2+ humps, or names with digits/underscores; dictionary-plain names (Room,atom) still need backticks. No rule, so scan/CI unchanged. spec-not-in-claims:new Type()bindings persist across fences; under a heading that names type T, a backtickedmemberormember(...)counts asT.member.- New PageDocument fence rules (not scan):
prose-unknown-key,prose-arity-mismatch,prose-missing-required. Type arguments are not arguments. Unknown receiver = no claim.
Bump @openpkg-ts/sdk to ^0.54.5 and @openpkg-ts/spec to ^0.54.4. Extracted specs now tell undefined from null (T | undefined is no longer T | null), and a generic return type such as LiveMap<string, V> no longer comes out as an empty schema. Re-extract to pick this up; the CLI's spec cache is keyed on the CLI version, so upgrading does that for you.
PageDocument accuracy: spec-not-in-claims only for mapped types or headings that name the type/member; private/_ and docs-map internal keys are never gaps; instance calls on new Type() count as mentioned; gap locator is the type heading. prose-unresolved-member only for package-typed receivers. headingText is the written heading. TypeScript meta.name comes from the nearest package.json. Locator paths are repo-relative.
Default new Drift() no longer sets OpenPkg followExternal: true when node_modules exists. That mode expands every dependency (zod's type graph OOMs on this repo's SDK entry). Default now matches CLI extract / drift page. Bump @openpkg-ts/sdk to ^0.54.3 so explicit resolveExternalTypes: true is bounded.
Add PageDocument: page-level claims with source locators and spec slices for docs hosts. SDK buildPageDocument; CLI drift page --json. Scan/lint unchanged.