Skip to content

Context document: index view, narrowed ?model=/?terms=, census behind include=check - #46

Merged
scottypate merged 1 commit into
mainfrom
context-index-view
Sep 11, 2026
Merged

scottypate merged 1 commit into
mainfrom
context-index-view

Conversation

@scottypate

Copy link
Copy Markdown
Contributor

Why

Measured on the 42-export / 47-dataset ape cell on v0.0.29: GET /context is 429 KB compact and agents refuse it. The narrow doors were the largest responses on the server because they carried every export body alongside the requested key: ?model= 467 KB for a 38 KB model, ?terms= 431 KB for 1.4 KB of matches. Per-route documents were fine (max 23 KB).

What

  • Index projection of exports[]: route, name, version, contract, visibility, description, grain, freshness, query/binding, from, plus columns (declared names only) and semantic_datasets (model/dataset bound to the route). No schema map, check, probe, semantic[] bodies, or docs content.
  • GET /context?view=index, datamk context --view index, MCP datamk://<mount>/context/index. index_request affordance on every document. ~index ETag component. Refused on /context/<route>.
  • ?model= and ?terms= without a route carry the projection instead of the full exports[]. /context/<route>?terms= keeps the route's full export.
  • check.columns (the per-column census from verify: measure bound-export columns and warn when prose contradicts the data #42) is served only under ?include=check; the rollup stays on every record; the portable datamk context emission still inlines it; included lists check the way it lists docs. ~check ETag component.
  • Full /context, its digest and ETag are unchanged. Same schema throughout; datamk_context stays 4. ADR 0012 §4, 0017 §2 and 0018 §7 get dated amendment blocks; guides and CHANGELOG updated.

Measured

Synthetic cell, 40 exports × 30 columns × one bound Ossie dataset each (size test in serve::smoke):

Response Bytes Of full
/context 657,665 100%
/context?view=index 31,155 4.7%
/context?model=<m> 39,175 6.0%

Tests: 914 unit + 33 integration, clippy clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KLsmJHt8RwDUfoN7iaemBy

…rms=, census behind include=check

Measured on a 42-export / 47-dataset cell: GET /context was 429 KB and the
narrow doors carried every export body alongside the requested key.

- exports[] index projection: route, name, description, grain, query/binding,
  columns (names), semantic_datasets — no schema map, check, probe, semantic bodies
- ?view=index / datamk context --view index / MCP datamk://<mount>/context/index;
  index_request affordance; ~index ETag component
- ?model= and ?terms= without a route carry the projection; /context/<route>?terms= unchanged
- check.columns (per-column census) served only under ?include=check; rollup stays;
  portable emission inlines it; included lists check like docs
- full /context, its digest and ETag unchanged; datamk_context stays 4

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KLsmJHt8RwDUfoN7iaemBy
@scottypate
scottypate merged commit abe9663 into main Sep 11, 2026
2 checks passed
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