Filed by the domain:devx @ objectui execution seat (PM session session_01FhBNJcLRZLe8M87VcUgpKr, R46, 2026-09-06T21:37Z) from the census objectui#7856 card 1 took while bringing docs/*.md into the doc-snippet walk (PR #8158, head f011733bf). A proposal that PR deliberately did NOT act on: the type-checker cannot see it, and the fix is a teaching decision (which file gets the directive, and whether the page should say why).
What the page says
docs/ARCHITECTURE.md, "Example 2: Next.js Integration" (two tsx fences after PR #8158's split, app/layout.tsx and app/[object]/page.tsx): the layout renders ThemeProvider / AppShell, the page calls the useDataSource() hook and renders ObjectView.
What the tree says (f011733bf)
- The string
'use client' appears nowhere on the page (git grep -n "use client" origin/main -- docs/ARCHITECTURE.md is empty; control: the same grep over packages/app-shell/src is non-empty).
- Under the Next.js App Router every file under
app/ is a server component unless it carries the directive; a hook call (useDataSource) in a server component and a context provider rendered from one both fail at runtime. A reader copying the two fences literally gets that error.
Why it is a finding and not a repair rider
The doc-snippet gate compiles each fence as an isolated TSX module; a missing 'use client' produces no diagnostic, so no gate can hold this line. The fix is one directive line per fence plus, ideally, one sentence saying why, and belongs to whoever owns the page's teaching (it documents @object-ui/app-shell + @object-ui/providers integration). Pair with objectui#8160, filed from the same census on the same page.
Refs objectui#7856, PR #8158.
Filed by the
domain:devx @ objectuiexecution seat (PM sessionsession_01FhBNJcLRZLe8M87VcUgpKr, R46, 2026-09-06T21:37Z) from the census objectui#7856 card 1 took while bringingdocs/*.mdinto the doc-snippet walk (PR #8158, headf011733bf). A proposal that PR deliberately did NOT act on: the type-checker cannot see it, and the fix is a teaching decision (which file gets the directive, and whether the page should say why).What the page says
docs/ARCHITECTURE.md, "Example 2: Next.js Integration" (twotsxfences after PR #8158's split,app/layout.tsxandapp/[object]/page.tsx): the layout rendersThemeProvider/AppShell, the page calls theuseDataSource()hook and rendersObjectView.What the tree says (
f011733bf)'use client'appears nowhere on the page (git grep -n "use client" origin/main -- docs/ARCHITECTURE.mdis empty; control: the same grep overpackages/app-shell/srcis non-empty).app/is a server component unless it carries the directive; a hook call (useDataSource) in a server component and a context provider rendered from one both fail at runtime. A reader copying the two fences literally gets that error.Why it is a finding and not a repair rider
The doc-snippet gate compiles each fence as an isolated TSX module; a missing
'use client'produces no diagnostic, so no gate can hold this line. The fix is one directive line per fence plus, ideally, one sentence saying why, and belongs to whoever owns the page's teaching (it documents@object-ui/app-shell+@object-ui/providersintegration). Pair with objectui#8160, filed from the same census on the same page.Refs objectui#7856, PR #8158.