LifeLab · transclusion picker
No second trigger, no new syntax to memorize. ![[ stays the only summoning gesture; what you type inside the picker decides what you get. A name transcludes a page. A comma stitches two. A facet token morphs the picker into query mode. A page plus a predicate filters a transclusion. The fork is visible inside the modal itself — the first time you type todo instead of a title, the feature teaches itself.
![[Projects]] — exactly today's behavior. One page, referenced region. Untouched.
![[Projects, Reading]] — stitched union. Each sub-river keeps its page order and write-home.
![[todo :project/lifelab:]] — picker morphs into query mode; result is an anonymous smart view pill.
![[Projects: todo]] — filtered transclusion. Still referenced; predicate only hides rows.
Typing Proj matches pages as always — ↵ transcludes exactly one. The only new chrome: a footer hint and a live view row pinned at top-of-list when your text could be a facet. Here it stays dormant; Proj is clearly a name. , is a keystroke, not syntax: it commits the highlighted page as a chip and starts a new search — recipient-field style.
Still referenced — no predicate anywhere. Each sub-river keeps its own page order, and adding inside a sub-river writes to that page. The × removes the window, never content. The block stores page IDs — Projects, Reading is display serialization, so a page literally named Projects, Reading is just one candidate row, one chip.
The moment a token parses as a facet, a live VIEW row pins to the top with a match count, and PAGES demotes below it (your text still might be a page name — both readings stay one arrow-key apart). ↵ drops an anonymous smart view pill into the block — no save dialog, name it later or never.
Top: rung 3's result — a collapsed query pill, computed badge, provenance headers, explicit write-home. Bottom: rung 4, ![[Projects: todo]] — still a transclusion: page order, page write-home, and the predicate is just a chip that hides rows (2 hidden, one shown struck for honesty). Strip the chip, get the whole page back.
The ladder in one line: ![[Projects]] → ![[Projects, Reading]] → ![[todo :project/lifelab:]] → ![[Projects: todo]] — name, union, predicate, name+predicate. One gesture, no new trigger; the picker morphs based on what parses. Commas never parse: , is a commit keystroke on the highlighted item, picks are stored as page IDs, and pasted text is searched literally — so comma-bearing page names stay unambiguous. Rungs 1–2 and 4 are referenced (page owns blocks, × removes window); rung 3 is computed (pill = anonymous smart view, promotable to views/… later via name it). Grammar stays the same five facets as the smart view editor — the pill's edit query opens exactly that editor.