LifeLab · root node · the title is a self-lens

Yes. And the reason it looks unresolved today is that the header has four left edges.

Your instinct is right, and it's more than a tidy analogy: the page view already is ![[writing/the agency]]{} — a page transcluding itself. So the title line and a lens mount line should be the same line, drawn by the same renderer. Everything floating in the header is a term of that expression: the filter is the lens's terms, the properties are its drawer, the breadcrumb is its parent path. Right now each one is positioned by hand, so nothing agrees on a left edge.

the diagnosisfour left edges, none of them the block gutter

today each piece placed by hand

1
2
3
4

writing

the agency

+ :PROPERTIES:

{filter}

*
description

a time traveling agency that…

1title2properties3filter4block gutter

Three problems, one cause. The filter reads as a sibling of the properties rather than a term of the title. The properties sit at an edge nothing else uses. And the block gutter — the strongest vertical line on the page — starts to the right of the title, so the title floats outside the document instead of being its first line.

proposed one grid, gutter column shared

1
2

writing/

*
the agency{filter+}
+ :PROPERTIES:
*
description

a time traveling agency that…

1gutter — one edge for every node2content column

One grid-template-columns: 16px 1fr for every node, root included. The title's * occupies the gutter column, its filter sits inline as the expression's terms, and :PROPERTIES: lands in the content column — exactly where a block's body goes. Nothing is positioned by hand anymore.

every node: grid-template-columns: 16px 1fr; gap: 0 9px gutter glyph in col 1, content in col 2 root node gets NO special layout — only a larger type size for its headline and a fold caret. :PROPERTIES: and {filter} are the ROOT BLOCK's drawer and terms. they inherit the content column for free.

the title is literally a lenssame expression, same renderer, two positions

as the view's root

writing/

*
the agency{todo+}
+ :PROPERTIES:
*
description

a time traveling agency that…

the same lens, mounted inside another page

*
reading list
*
the agency{todo}writing/ · 3
*
description

a time traveling agency that…

what's actually stored — identical in both

* ![[writing/the agency]]{todo} :PROPERTIES: :era: 1920s :END:

The only differences between the two renders are type size, breadcrumb, and where the source name goes. At the root, the name is the title and the parent path sits above as a breadcrumb; mounted, the name is inline and the parent path goes in the rail. Same expression, same drawer, same fold, same filter chips — so editing the root's filter and editing a mount's filter are one code path, and zooming into a mount produces a view bit-identical to opening the page directly.

how big should the root bethe one genuine judgement call · everything else is derivable

a · 26px — a title that happens to be a block

writing/

*
the agency{filter}
*
description

Keeps the anchor. The filter at 13px beside a 26px headline sits below the cap height — needs baseline alignment, not centre, or it drifts.

b · 19px — a block that happens to be first

writing/

*
the agency{filter}
*
description

My pick. Still unmistakably the root, but the filter chips sit on its baseline naturally and the header occupies one line instead of a region.

c · 15px — fully flat

*
writing/the agency{filter}
*
description

Most honest, and worth keeping as a debugging mode — but the root competes with its children and the "where am I" glance is gone.

Size is the only exception the root needs, and it's a rendering property of depth 0, not a structural one. Two details decide whether it looks intentional: align the filter chips to the headline's baseline (not centre), and optically align the gutter * to the cap height of the large text rather than its line box — otherwise it floats low and gives away that two systems are being reconciled.

what this settlesconsequences, not extras

thingbecomes
the page headerGone as a surface. It's the first block of the document. One renderer, one grid, one left edge.
{filter}The root block's lens terms, inline on its line — where they already are for every mount. Never a line of its own.
:PROPERTIES:The root block's drawer, in the content column. Same collapse affordance as any block's properties.
the breadcrumbThe lens's parent path, small, above, aligned to the same left edge. At depth 0 a breadcrumb; mounted, the rail.
the caretThe root block's fold. Folding the root collapses the page to its title — what a folded mount already does.
zoomBit-identical to opening the page, because there was never a second renderer.

One thing to decide alongside it: whether the root block's headline is editable text or the page name. If the title is the name, typing in it is a rename — fine, but the field should say so (a slug-style affordance, per the naming spec) rather than behaving like ordinary prose. That's the only place the root's block-ness is genuinely a lie.