Current scope amendment (2026-09-07): ADR-0152 / #1341 supersedes former train and ownership policy.
[beta.2.2] Introduce a thin resolved Document boundary
Part of #1321. Release: beta.2.2. Depends on: accepted Beta.2.1 route contract and integration evidence; an intermediate publication is not required for development.
Problem
Page meaning is currently assembled across definePage() descriptors, route head metadata, Content Graph, wrapInDocument, adapter SSG/request-time paths, and www SEO projections — no single resolved boundary.
Ownership target
- App owns page/document meaning: status; headers; head; title; description; locale; canonical; alternates; body/rendered-content identity. Do not prematurely freeze an oversized public API — internal semantic seam first is acceptable.
- Rendering integration owns serialization: Native reuses
wrapInDocument; Lit uses its qualified serializer/hydration. No duplicate pipeline within an integration.
- Adapter owns execution: build, SSG, request-time orchestration, deployment integration. It does not redefine Document meaning.
- Content Graph supplies content metadata: an input to Document resolution, not a CMS and not a page renderer.
Inspection points
definePage() descriptor; route head metadata; Content Graph; wrapInDocument; adapter SSG/request-time paths; www SEO; sitemap; search; canonical; hreflang.
Non-goals
See umbrella hard non-goals. No oversized public API freeze; no second renderer; no Document-owned fetching/caching.
Tests
SSG + request-time + static + dynamic pages; locale; title; description; canonical; hreflang; status; headers; deterministic output; packed consumer smoke.
Release
beta.2.2.
Accepted scope clarification
Router Framework Mode owns page meaning; the existing app package may host it during migration. Page/form execution is #1339. Do not fetch independently inside Document. SSG may read build-time external data; private per-user renders must not become public static outputs. Delete each displaced page-meaning owner in the same change.
Accepted refinement — 2026-09-08 (supersedes conflicting earlier scope)
Governing plan (2026-09-08)
Maintainer-approved: ADR-0152, docs/current/VERSION_PLAN.md and #1341. Execution: https://github.com/orgs/open-element/projects/3. Acceptance checkpoints replace the three-day schedule. No automatic beta.2.4. Native/Lit are formal Framework Mode targets, not already-shipped support. Existing release records/versions remain unchanged; no closure without final-SHA evidence. examples/** stays frozen.
[beta.2.2] Introduce a thin resolved Document boundary
Part of #1321. Release:
beta.2.2. Depends on: accepted Beta.2.1 route contract and integration evidence; an intermediate publication is not required for development.Problem
Page meaning is currently assembled across
definePage()descriptors, route head metadata, Content Graph,wrapInDocument, adapter SSG/request-time paths, and www SEO projections — no single resolved boundary.Ownership target
wrapInDocument; Lit uses its qualified serializer/hydration. No duplicate pipeline within an integration.Inspection points
definePage()descriptor; route head metadata; Content Graph;wrapInDocument; adapter SSG/request-time paths; www SEO; sitemap; search; canonical; hreflang.Non-goals
See umbrella hard non-goals. No oversized public API freeze; no second renderer; no Document-owned fetching/caching.
Tests
SSG + request-time + static + dynamic pages; locale; title; description; canonical; hreflang; status; headers; deterministic output; packed consumer smoke.
Release
beta.2.2.Accepted scope clarification
Router Framework Mode owns page meaning; the existing app package may host it during migration. Page/form execution is #1339. Do not fetch independently inside Document. SSG may read build-time external data; private per-user renders must not become public static outputs. Delete each displaced page-meaning owner in the same change.
Accepted refinement — 2026-09-08 (supersedes conflicting earlier scope)
Governing plan (2026-09-08)
Maintainer-approved: ADR-0152, docs/current/VERSION_PLAN.md and #1341. Execution: https://github.com/orgs/open-element/projects/3. Acceptance checkpoints replace the three-day schedule. No automatic beta.2.4. Native/Lit are formal Framework Mode targets, not already-shipped support. Existing release records/versions remain unchanged; no closure without final-SHA evidence. examples/** stays frozen.