Collection
{% collection %} queries the entity registry for many entities and projects them into a layout. It's the plural counterpart to {% ref %} (one entity → a link) and {% expand %} (one entity → inlined content): where those consume a single entity, collection selects a set — by type, with a field:value filter, sorted/grouped/limited — and renders each item.
It's generic over entity type. Anything in the registry works the same way — plan work items, page entities, and any type a plugin registers — so a hand-maintained list that mirrors structured data becomes a live query instead.
{% collection type="work" filter="status:ready" sort="priority" limit=5 /%}<section data-rune="collection">
<meta data-field="collection-type" content="work">
<meta data-field="collection-filter" content="status:ready">
<meta data-field="collection-sort" content="priority">
<meta data-field="collection-group" content="">
<meta data-field="collection-limit" content="5">
<meta data-field="collection-fields" content="">
<meta data-field="collection-layout" content="list">
<meta data-field="collection-group-display" content="headings">
<meta data-field="collection-empty" content="">
<meta data-field="__collection-sentinel" content="true">
<div data-name="items"></div>
</section><section class="rf-collection" data-type="work" data-layout="list" data-rune="collection" data-density="full">
<div data-name="items" class="rf-collection__items rf-collection__items">
<div class="rf-collection__item" data-entity-id="WORK-101">
<a class="rf-collection__title" href="/runes/plan/examples">Content model validation errors</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-102">
<a class="rf-collection__title" href="/runes/plan/examples">Token fallback chain for nested tints</a>
</div>
<div class="rf-collection__item" data-entity-id="RF-142">
<a class="rf-collection__title" href="/runes/plan/work">Implement tint rune dark mode support</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-055">
<span class="rf-collection__title">Learning Package Pipeline Hooks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-094">
<span class="rf-collection__title">Create @refrakt-md/vite plugin — Level 1 static transform</span>
</div>
</div>
</section>That renders every registered work entity whose status is ready, highest priority first (capped at five for this preview).
Selecting entities — type + filter
type is the entity type (comma-separated for several: type="work,bug"). filter narrows the set with space-separated field:value clauses.
{% collection type="work" filter="status:ready priority:high priority:critical" /%}
The field-match grammar
This is the canonical reference for the field:value syntax — the same grammar and parser used by collection's filter, backlog's filter, and entityRoutes. The operator is chosen by the shape of the value, so the same string works in a markdoc attribute and in JSON config:
| Form | Example | Matches |
|---|---|---|
| exact | status:ready | the field equals ready |
| glob | url:/blog/* | * is any run of characters, anchored full-match (prefix, suffix, or infix) |
| regex | id:/^SPEC-\d+$/ | a value wrapped in slashes (optional trailing flags); not auto-anchored |
Rules:
- Same field repeated → OR, different fields → AND:
status:ready status:review priority:highmeans (ready or review) and high. - Quote values with spaces:
title:"Getting Started". - Matching is case-sensitive.
- A field resolves top-level first (
id,type,sourceFile) then from the entity'sdata;urlis an alias for the entity's resolved URL (sourceUrl, falling back todata.url). That's whyurl:/blog/*works — folder membership is just a URL prefix match, no special "folder" concept. - Array-valued fields (e.g.
tags) match on membership — any element matching the clause counts. - A malformed clause (no colon, empty field) is ignored with a build warning. An empty
filtermatches everything.
Sort, group, limit
{% collection type="work" sort="priority" group="status" limit=20 /%}
sort— a field name. Prefix-(or suffix-desc) for descending:sort="-date"orsort="date-desc". Numeric values sort numerically, otherwise lexically (ISO dates sort chronologically as strings).group— a field name; items are grouped under a heading per distinct value (empty values group under(none)).group-display— how groups are presented:headings(default) oraccordion. See Group display.limit— a positive integer cap, applied after sort. Withgroup, the cap is on the total item count.
Group display — headings or accordion
By default each group is a heading followed by its items. Set group-display="accordion" to render groups as collapsible native <details> panels instead — styled identically to the accordion rune, collapsed by default, with the group's item count beside its label:
{% collection type="work" group="status" group-display="accordion" /%}<section data-rune="collection">
<meta data-field="collection-type" content="work">
<meta data-field="collection-filter" content="">
<meta data-field="collection-sort" content="">
<meta data-field="collection-group" content="status">
<meta data-field="collection-limit" content="">
<meta data-field="collection-fields" content="">
<meta data-field="collection-layout" content="list">
<meta data-field="collection-group-display" content="accordion">
<meta data-field="collection-empty" content="">
<meta data-field="__collection-sentinel" content="true">
<div data-name="items"></div>
</section>blocked1
in-progress4
review3
ready27
pending14
draft7
done499
<section class="rf-collection" data-type="work" data-layout="list" data-rune="collection" data-density="full">
<div data-name="items" class="rf-collection__items rf-collection__items">
<div class="rf-accordion">
<details class="rf-accordion-item" data-group="blocked">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">blocked</span>
<span class="rf-accordion-item__count">1</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="RF-215">
<a class="rf-collection__title" href="/runes/plan/work">Alignment system migration</a>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="in-progress">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">in-progress</span>
<span class="rf-accordion-item__count">4</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-104">
<a class="rf-collection__title" href="/runes/plan/examples">Heading level auto-detection for nested runes</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-105">
<a class="rf-collection__title" href="/runes/plan/examples">Snapshot tests for identity transform output</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-051">
<span class="rf-collection__title">Editor Package Awareness</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-089">
<span class="rf-collection__title">Create @refrakt-md/astro adapter package</span>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="review">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">review</span>
<span class="rf-accordion-item__count">3</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-108">
<a class="rf-collection__title" href="/runes/plan/examples">Responsive modifier system</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-346">
<span class="rf-collection__title">Rune compositions docs category</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-380">
<span class="rf-collection__title">Surface-model showcase gallery</span>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="ready">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">ready</span>
<span class="rf-accordion-item__count">27</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-101">
<a class="rf-collection__title" href="/runes/plan/examples">Content model validation errors</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-102">
<a class="rf-collection__title" href="/runes/plan/examples">Token fallback chain for nested tints</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-103">
<a class="rf-collection__title" href="/runes/plan/examples">Interactive rune playground</a>
</div>
<div class="rf-collection__item" data-entity-id="RF-142">
<a class="rf-collection__title" href="/runes/plan/work">Implement tint rune dark mode support</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-052">
<span class="rf-collection__title">Create-Refrakt Project Type Defaults</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-053">
<span class="rf-collection__title">CSS Fallback Resolution for Third-Party Packages</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-055">
<span class="rf-collection__title">Learning Package Pipeline Hooks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-056">
<span class="rf-collection__title">Editor Background Entity Registry</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-057">
<span class="rf-collection__title">Editor Registry-Powered Autocomplete</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-058">
<span class="rf-collection__title">Pipeline Incremental Build Optimization</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-094">
<span class="rf-collection__title">Create @refrakt-md/vite plugin — Level 1 static transform</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-095">
<span class="rf-collection__title">Vite plugin — virtual CSS module and tree-shaking</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-096">
<span class="rf-collection__title">Vite plugin — dev server HMR</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-097">
<span class="rf-collection__title">Vite plugin — Level 2 cross-page pipeline</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-098">
<span class="rf-collection__title">Vite plugin — behavior init helper export</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-115">
<span class="rf-collection__title">Migrate community package postTransform uses to declarative config</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-116">
<span class="rf-collection__title">Update inspect and contracts tooling for structure slots features</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-287">
<span class="rf-collection__title">CSS tree-shake: include deferred-body rune contents in the usage analyzer</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-332">
<span class="rf-collection__title">Remove the legacy data-field engine machinery (Tier 2)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-350">
<span class="rf-collection__title">Rebuild index composability section as a bento showcase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-391">
<span class="rf-collection__title">group-order attribute on collection, aggregate, relationships</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-392">
<span class="rf-collection__title">Multi-site support in refrakt edit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-393">
<span class="rf-collection__title">Registry-aware block preview in the editor</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-394">
<span class="rf-collection__title">Close editHints coverage gaps across rune packages</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-395">
<span class="rf-collection__title">Surface pipeline warnings in the editor</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-397">
<span class="rf-collection__title">Relocate bento and bento-cell from marketing to core runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-439">
<span class="rf-collection__title">Visual-regression compare-against-base CI job</span>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="pending">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">pending</span>
<span class="rf-accordion-item__count">14</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-005">
<span class="rf-collection__title">Build stat Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-006">
<span class="rf-collection__title">Build math Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-007">
<span class="rf-collection__title">Build concept Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-008">
<span class="rf-collection__title">Build exercise Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-009">
<span class="rf-collection__title">Build quiz Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-010">
<span class="rf-collection__title">Build glossary Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-011">
<span class="rf-collection__title">Build prerequisite Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-012">
<span class="rf-collection__title">Build objective Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-013">
<span class="rf-collection__title">Build partner Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-014">
<span class="rf-collection__title">Build job Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-016">
<span class="rf-collection__title">Build album Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-017">
<span class="rf-collection__title">Build artist Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-018">
<span class="rf-collection__title">Build video Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-430">
<span class="rf-collection__title">bg sandbox guest — docs + showcase</span>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="draft">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">draft</span>
<span class="rf-accordion-item__count">7</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-107">
<a class="rf-collection__title" href="/runes/plan/examples">Theme marketplace architecture</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-334">
<span class="rf-collection__title">Chart renderer provider selection and additional providers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-343">
<span class="rf-collection__title">Schema-declared achieved status for open-world rollups</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-354">
<span class="rf-collection__title">Responsive per-cell bento spans</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-355">
<span class="rf-collection__title">Generate theme scheme stylesheet from tokens.ts (retire hand-authored dark.css + tint.css palette copies)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-441">
<span class="rf-collection__title">Gallery loads the assembled theme config (not just base + plugins)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-500">
<span class="rf-collection__title">Retirement-candidate pass over pending unbuilt runes</span>
</div>
</div>
</details>
<details class="rf-accordion-item" data-group="done">
<summary class="rf-accordion-item__header">
<span class="rf-accordion-item__title">done</span>
<span class="rf-accordion-item__count">499</span>
</summary>
<div class="rf-accordion-item__body">
<div class="rf-collection__item" data-entity-id="WORK-106">
<a class="rf-collection__title" href="/runes/plan/examples">Add copy button to code fences</a>
</div>
<div class="rf-collection__item" data-entity-id="WORK-001">
<span class="rf-collection__title">Official Rune Packages — Breakout Plan</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-002">
<span class="rf-collection__title">Batch 3: Convert Runes Using sections Resolver</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-003">
<span class="rf-collection__title">Editor Visual Polish Plan</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-004">
<span class="rf-collection__title">Build gallery Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-015">
<span class="rf-collection__title">Build track and playlist Runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-019">
<span class="rf-collection__title">Build audio Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-020">
<span class="rf-collection__title">Add Entity Registration to @refrakt-md/plan</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-021">
<span class="rf-collection__title">Update Plan Documents to Use Xref Syntax</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-022">
<span class="rf-collection__title">Build backlog Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-023">
<span class="rf-collection__title">Build decision-log Rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-024">
<span class="rf-collection__title">Add knownSections to Plan Rune Content Models</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-025">
<span class="rf-collection__title">Milestone Auto-Backlog and Checklist Progress</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-026">
<span class="rf-collection__title">Add ref as Alias for xref</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-027">
<span class="rf-collection__title">CLI Plugin Discovery Architecture</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-028">
<span class="rf-collection__title">Plan File Scanner Library</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-029">
<span class="rf-collection__title">plan init and plan create Commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-030">
<span class="rf-collection__title">plan update Command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-031">
<span class="rf-collection__title">plan next Command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-032">
<span class="rf-collection__title">plan status Command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-033">
<span class="rf-collection__title">plan validate Command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-034">
<span class="rf-collection__title">Plan Dashboard Theme</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-035">
<span class="rf-collection__title">plan serve and plan build Commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-036">
<span class="rf-collection__title">Update CLAUDE.md files for plan CLI usage</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-037">
<span class="rf-collection__title">Define planLayout in @refrakt-md/transform</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-038">
<span class="rf-collection__title">Build nav region builder for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-039">
<span class="rf-collection__title">Refactor plan render pipeline to use @refrakt-md/html</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-040">
<span class="rf-collection__title">Add syntax highlighting to plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-041">
<span class="rf-collection__title">Add client behaviors to plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-042">
<span class="rf-collection__title">Config-aware theme resolution for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-043">
<span class="rf-collection__title">Token bridging — update plan CSS to use --rf-* tokens</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-044">
<span class="rf-collection__title">Collapsible status groups in plan sidebar</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-045">
<span class="rf-collection__title">Sidebar search and filter bar for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-046">
<span class="rf-collection__title">Enhanced plan dashboard with progress and milestone scoping</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-047">
<span class="rf-collection__title">Tag-based cross-cutting view pages for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-048">
<span class="rf-collection__title">Keyboard navigation for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-049">
<span class="rf-collection__title">Dependency visualization for plan site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-050">
<span class="rf-collection__title">Converge plan site renderer with shared layout engine</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-054">
<span class="rf-collection__title">Storytelling Package Pipeline Hooks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-059">
<span class="rf-collection__title">Metadata Dimensions on StructureEntry</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-060">
<span class="rf-collection__title">Annotate Rune Configs with Metadata Dimensions</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-061">
<span class="rf-collection__title">Lumina Generic Metadata CSS</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-062">
<span class="rf-collection__title">Inspector Metadata Audit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-063">
<span class="rf-collection__title">Density Dimension</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-064">
<span class="rf-collection__title">Section Anatomy Dimension</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-065">
<span class="rf-collection__title">Interactive State Dimension</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-066">
<span class="rf-collection__title">Media Slots Dimension</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-067">
<span class="rf-collection__title">Lumina Universal Dimension CSS</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-068">
<span class="rf-collection__title">Inspector Dimensions Audit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-069">
<span class="rf-collection__title">Universal Checklist Styling</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-070">
<span class="rf-collection__title">Universal Sequential Item Styling</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-071">
<span class="rf-collection__title">Lumina Per-Rune Redundant CSS Cleanup</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-072">
<span class="rf-collection__title">Add --resolve and --resolve-file flags to plan update</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-073">
<span class="rf-collection__title">Add resolution validation checks to plan validate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-074">
<span class="rf-collection__title">Display resolution metadata in plan status and plan serve</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-075">
<span class="rf-collection__title">Update plan init CLAUDE.md template with resolution guidance</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-076">
<span class="rf-collection__title">Extract Shared Layout Meta Tag Utility</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-077">
<span class="rf-collection__title">Extract Shared Media Image Unwrap Utility</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-078">
<span class="rf-collection__title">BEM Modifier Hygiene for Storytelling Runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-079">
<span class="rf-collection__title">Align Playlist Transform to Standard Structure</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-080">
<span class="rf-collection__title">Refactor Realm and Faction Transforms to Use Shared Utilities</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-081">
<span class="rf-collection__title">Consolidate Character Transform to Single Code Path</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-082">
<span class="rf-collection__title">Shared Split Layout CSS with Two-Mode Mobile Collapse</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-083">
<span class="rf-collection__title">Create Shared Git Timestamp Utility</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-084">
<span class="rf-collection__title">Inject $file.created and $file.modified Variables into Content Pipeline</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-085">
<span class="rf-collection__title">Add Timestamp Attributes to Plan Rune Schemas</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-086">
<span class="rf-collection__title">Consolidate Plan Scanner with Shared Git Timestamp Utility</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-087">
<span class="rf-collection__title">Add Sitemap lastmod Support Using File Timestamps</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-088">
<span class="rf-collection__title">Extract shared utilities from @refrakt-md/svelte to @refrakt-md/transform</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-090">
<span class="rf-collection__title">Create @refrakt-md/nuxt adapter package</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-091">
<span class="rf-collection__title">Create @refrakt-md/next adapter package</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-092">
<span class="rf-collection__title">Create @refrakt-md/eleventy adapter package</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-093">
<span class="rf-collection__title">Add multi-framework support to create-refrakt</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-099">
<span class="rf-collection__title">Migrate simple core runes from Model to createContentModelSchema</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-100">
<span class="rf-collection__title">Migrate simple community runes from Model to createContentModelSchema</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-109">
<span class="rf-collection__title">Remove Type system — delete schema classes, registries, and old signature</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-110">
<span class="rf-collection__title">Add value mapping to modifier config</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-111">
<span class="rf-collection__title">Replace hardcoded density contexts with configurable childDensity</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-112">
<span class="rf-collection__title">Implement named slots with ordering for structure entries</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-113">
<span class="rf-collection__title">Add repeated element generation to structure entries</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-114">
<span class="rf-collection__title">Implement element projection (hide, group, relocate)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-117">
<span class="rf-collection__title">Implement framework-agnostic extraction logic for component interface</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-118">
<span class="rf-collection__title">Validate property and ref name uniqueness in createComponentRenderable</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-119">
<span class="rf-collection__title">Update Svelte renderer to pass props and snippets to component overrides</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-120">
<span class="rf-collection__title">Export generic type interfaces for rune component overrides</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-121">
<span class="rf-collection__title">Add component interface view to refrakt inspect</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-122">
<span class="rf-collection__title">Document framework-native component override interface</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-123">
<span class="rf-collection__title">Create @refrakt-md/react renderer with ADR-008 component interface</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-124">
<span class="rf-collection__title">Create @refrakt-md/vue renderer with ADR-008 component interface</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-125">
<span class="rf-collection__title">Add Astro native component override support with ADR-008 named slots</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-126">
<span class="rf-collection__title">Parse Resolution sections in the plan scanner</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-127">
<span class="rf-collection__title">Fix plan schema bugs: pending status, severity mismatch, tag filtering</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-128">
<span class="rf-collection__title">Add source, milestone, and complexity validation to plan validate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-129">
<span class="rf-collection__title">knownSections scanner integration: section-scoped refs and validation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-130">
<span class="rf-collection__title">Support attribute clearing in plan CLI update command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-131">
<span class="rf-collection__title">Update site docs and plan CLAUDE.md for plan package hardening changes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-132">
<span class="rf-collection__title">Convert plan content to machine-readable refs and adopt knownSections conventions</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-133">
<span class="rf-collection__title">Mobile plan section navigation and desktop TOC filtering</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-134">
<span class="rf-collection__title">Event model types and per-entity git history extraction</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-135">
<span class="rf-collection__title">Batch extraction and history caching</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-136">
<span class="rf-collection__title">CLI plan history single-entity mode</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-137">
<span class="rf-collection__title">CLI plan history global mode and filters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-138">
<span class="rf-collection__title">plan-history site rune — tag definition and pipeline hooks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-139">
<span class="rf-collection__title">plan-history CSS rendering</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-140">
<span class="rf-collection__title">Tab layout for plan entity pages</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-141">
<span class="rf-collection__title">Split plan entity header into primary badges, title, secondary badges</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-142">
<span class="rf-collection__title">Make plan init tool-agnostic</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-143">
<span class="rf-collection__title">Rename plan directories to plural form</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-144">
<span class="rf-collection__title">Extract pure scanner functions into scanner-core module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-145">
<span class="rf-collection__title">Extract pure diffing functions into diff module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-146">
<span class="rf-collection__title">Extract relationship builder into relationships module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-147">
<span class="rf-collection__title">Extract entity card builder and sentiments into cards module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-148">
<span class="rf-collection__title">Add edge-safe entry points to package.json exports</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-149">
<span class="rf-collection__title">Promote shared rune-reference infrastructure to packages/runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-150">
<span class="rf-collection__title">Add content-model renderer for agent-facing rune docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-151">
<span class="rf-collection__title">Add attribute preset registry for tier-aware reference output</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-152">
<span class="rf-collection__title">Migrate legacy Model-class runes and audit custom-pattern descriptions</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-153">
<span class="rf-collection__title">Rename RuneInfo.prompt → authoringHints and surface in reference output</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-154">
<span class="rf-collection__title">Drop the reinterprets field entirely</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-155">
<span class="rf-collection__title">Build refrakt reference CLI commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-156">
<span class="rf-collection__title">Generate AGENTS.md during create-refrakt scaffolding</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-157">
<span class="rf-collection__title">Add --type plan to create-refrakt</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-158">
<span class="rf-collection__title">Adopt {ID}-{slug}.md filename convention for plan items</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-159">
<span class="rf-collection__title">Unified RefraktConfig types, loader, and JSON Schema</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-160">
<span class="rf-collection__title">Add discoverPlugins() helper to @refrakt-md/cli</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-161">
<span class="rf-collection__title">Extend CliPluginCommand with inputSchema/outputSchema/mcpHandler</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-162">
<span class="rf-collection__title">Refactor runPlugin dispatch to use discoverPlugins</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-163">
<span class="rf-collection__title">refrakt --help lists installed plugins + new refrakt plugins list command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-164">
<span class="rf-collection__title">Add --site flag to site-scoped CLI commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-165">
<span class="rf-collection__title">Lint cli-plugin shape in refrakt package validate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-166">
<span class="rf-collection__title">Framework adapters accept site option</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-167">
<span class="rf-collection__title">Add inputSchema + mcpHandler to plan commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-168">
<span class="rf-collection__title">Plan package consumes unified config (init scaffolds, serve/build read paths)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-169">
<span class="rf-collection__title">Scaffold @refrakt-md/mcp package with stdio entry, auto-detect, and core tools</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-170">
<span class="rf-collection__title">MCP plugin tools (via discovery) and resources</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-171">
<span class="rf-collection__title">Add refrakt config migrate command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-172">
<span class="rf-collection__title">Migrate this repo's site config to the unified root config</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-173">
<span class="rf-collection__title">Update create-refrakt scaffolds for the unified config shape</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-174">
<span class="rf-collection__title">Site docs — configuration section</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-175">
<span class="rf-collection__title">Site docs — MCP + plugin authoring update + CLAUDE.md pointer</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-176">
<span class="rf-collection__title">v0.11.0 config follow-ups</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-177">
<span class="rf-collection__title">Security policy for transform pipeline (sandbox hardening)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-178">
<span class="rf-collection__title">Nav layout foundations — header menubar and footer columns</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-179">
<span class="rf-collection__title">Collapsible sidebar nav with URL-aware auto-open</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-180">
<span class="rf-collection__title">Cards nav layout with frontmatter enrichment</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-181">
<span class="rf-collection__title">Menubar interactive behavior — dropdowns, hamburger, keyboard</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-182">
<span class="rf-collection__title">Pagination rune for sequential page navigation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-183">
<span class="rf-collection__title">Site reference docs for new nav layouts and the pagination rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-184">
<span class="rf-collection__title">Adopt new nav layouts and pagination across refrakt.md</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-185">
<span class="rf-collection__title">Typed token contract in @refrakt-md/types</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-186">
<span class="rf-collection__title">Highlighter token rename: --shiki-* → --rf-syntax-*</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-187">
<span class="rf-collection__title">Config-driven token stylesheet generation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-188">
<span class="rf-collection__title">Dark mode as PartialTokenContract overlay</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-189">
<span class="rf-collection__title">theme.colorScheme initial state field</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-190">
<span class="rf-collection__title">Preset loading and merge order</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-191">
<span class="rf-collection__title">Migrate existing Lumina tokens to the new contract</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-192">
<span class="rf-collection__title">Author the canonical prism SVG asset</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-193">
<span class="rf-collection__title">Favicon and app icon set</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-194">
<span class="rf-collection__title">Replace brand mark on the refrakt site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-195">
<span class="rf-collection__title">Update TintTokens / TintDefinition types</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-196">
<span class="rf-collection__title">mergeThemeConfig extends support + remove deprecated RefraktConfig.tints</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-197">
<span class="rf-collection__title">Engine + tint.css rename to new --tint-* property names</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-198">
<span class="rf-collection__title">Migrate Lumina and plugin tint configs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-199">
<span class="rf-collection__title">Document the tint migration recipe</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-200">
<span class="rf-collection__title">Neutral default body palette (light + dark)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-201">
<span class="rf-collection__title">Syntax highlighting palette (five hues + comment + punctuation)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-202">
<span class="rf-collection__title">Status palette (4 sentiments × 3 tokens × 2 modes)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-203">
<span class="rf-collection__title">Configure Google Fonts loading</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-204">
<span class="rf-collection__title">Tideline preset module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-205">
<span class="rf-collection__title">Niwaki preset module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-206">
<span class="rf-collection__title">Refrakt site adopts presets: ["niwaki"]</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-207">
<span class="rf-collection__title">create-refrakt template + post-init preset surfaces</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-208">
<span class="rf-collection__title">Preset documentation pages with design-plugin runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-209">
<span class="rf-collection__title">Site screenshots refreshed against new appearance</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-210">
<span class="rf-collection__title">v0.14.0 migration note for palette and fonts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-211">
<span class="rf-collection__title">Add theme toggle to Lumina</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-212">
<span class="rf-collection__title">Cascade resolution function in @refrakt-md/content</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-213">
<span class="rf-collection__title">Frontmatter schema extension (tint, tint-mode, tint-lock)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-214">
<span class="rf-collection__title">Renderer integration + pre-paint script</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-215">
<span class="rf-collection__title">Refrakt site adopts the tint cascade</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-216">
<span class="rf-collection__title">/docs/themes/tint-cascade documentation page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-217">
<span class="rf-collection__title">Extend SyntaxTokens interface with optional roles</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-218">
<span class="rf-collection__title">Extended Shiki css-variables theme in @refrakt-md/highlight</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-219">
<span class="rf-collection__title">CSS generator fallback chains for optional syntax roles</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-220">
<span class="rf-collection__title">Nord preset module</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-221">
<span class="rf-collection__title">Nord preset documentation page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-222">
<span class="rf-collection__title">Cross-reference SPEC-056 from SPEC-048</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-223">
<span class="rf-collection__title">Scoped tint projection from preset modules</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-224">
<span class="rf-collection__title">Dracula preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-225">
<span class="rf-collection__title">Solarized preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-226">
<span class="rf-collection__title">Catppuccin preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-227">
<span class="rf-collection__title">Tokyo Night preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-228">
<span class="rf-collection__title">One Dark preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-229">
<span class="rf-collection__title">Gruvbox preset module + doc page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-230">
<span class="rf-collection__title">Themes catalog wrap-up</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-231">
<span class="rf-collection__title">Build-time slug resolution + error system</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-232">
<span class="rf-collection__title">Build-time active state + Lumina CSS</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-233">
<span class="rf-collection__title">Site nav migration + authoring docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-234">
<span class="rf-collection__title">{% badge %} core inline rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-235">
<span class="rf-collection__title">Description / icon enrichment generalised across auto layouts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-236">
<span class="rf-collection__title">Menubar enrichment, column flow, and strip layout — engine + CSS + behavior</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-237">
<span class="rf-collection__title">Rich-dropdown authoring docs + site demo</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-238">
<span class="rf-collection__title">Docs IA split: separate author handbook from developer ("extend") handbook</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-239">
<span class="rf-collection__title">Extract composeSiteTokensCss into @refrakt-md/transform/node</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-240">
<span class="rf-collection__title">Wire site-tokens CSS through the Astro adapter</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-241">
<span class="rf-collection__title">Wire site-tokens CSS through the Nuxt adapter</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-242">
<span class="rf-collection__title">Surface site-tokens CSS in Eleventy, Next.js, and HTML adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-243">
<span class="rf-collection__title">Thread SeoToHtmlOptions through every adapter's SEO surface</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-244">
<span class="rf-collection__title">Replace template-astro/src/setup.ts with createRefraktLoader</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-245">
<span class="rf-collection__title">CSS tree-shaking across non-SvelteKit adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-246">
<span class="rf-collection__title">Shared pipeline-stats output across adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-247">
<span class="rf-collection__title">Surface security and variables options on non-SvelteKit adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-248">
<span class="rf-collection__title">Content HMR for non-SvelteKit Vite adapters and Eleventy</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-249">
<span class="rf-collection__title">Page variables and $file.path</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-250">
<span class="rf-collection__title">File-roots mechanism</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-251">
<span class="rf-collection__title">Plan plugin: unconditional scan, entity registration, fileRoots opt-in</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-252">
<span class="rf-collection__title">XrefPattern config types, compilation, and validation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-253">
<span class="rf-collection__title">Decoupled entity-lookup/URL-resolution chain; per-segment encoding; data-target-type propagation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-254">
<span class="rf-collection__title">Shared lang-map module in @refrakt-md/runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-255">
<span class="rf-collection__title">Snippet rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-256">
<span class="rf-collection__title">EntityRegistration.scope: 'page' | 'site' field</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-257">
<span class="rf-collection__title">Drawer rune (schema, transform, CSS)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-258">
<span class="rf-collection__title">Drawer behaviors (progressive enhancement, <dialog>, shortcut, URL hash sync)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-259">
<span class="rf-collection__title">Generic data-outline-scope walkers (TOC isolation + heading-ID namespacing)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-260">
<span class="rf-collection__title">Expand rune (resolver, extraction, level= demotion, canonical-link affordance)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-261">
<span class="rf-collection__title">Shared field-match parser</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-262">
<span class="rf-collection__title">Deferred-body capture for per-entity templates</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-263">
<span class="rf-collection__title">Collection rune: query engine and built-in layouts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-264">
<span class="rf-collection__title">Collection heading-delimited table columns</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-265">
<span class="rf-collection__title">Shared markdoc formatter functions</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-266">
<span class="rf-collection__title">card rune (generic content card)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-267">
<span class="rf-collection__title">contributePages pipeline phase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-268">
<span class="rf-collection__title">entityRoutes config-rules adapter</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-269">
<span class="rf-collection__title">embed() embeddability contract</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-270">
<span class="rf-collection__title">Plan entity embeddability (sourceFile + extract)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-271">
<span class="rf-collection__title">create-refrakt plan-site scaffold</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-272">
<span class="rf-collection__title">refrakt plan site dogfood</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-273">
<span class="rf-collection__title">Deprecate plan build and serve commands</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-274">
<span class="rf-collection__title">Extract shared collection render and sort/group helpers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-275">
<span class="rf-collection__title">Relationship graph in the entity registry</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-276">
<span class="rf-collection__title">Domain-aware (type, field) ordering for collection sort and group</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-277">
<span class="rf-collection__title">Promote humanize to a public shared formatter</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-278">
<span class="rf-collection__title">Generic relationships rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-279">
<span class="rf-collection__title">Plan plugin: contribute edges and ordering, remove duplicated graph and sort/group</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-280">
<span class="rf-collection__title">Plan-site entity render templates: expand + relationships + plan-history</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-281">
<span class="rf-collection__title">Milestone page via collection; render progress via the generic progress rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-282">
<span class="rf-collection__title">Remove plan postProcess injection (milestone backlog + entity tabs)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-283">
<span class="rf-collection__title">Thread plan ordering override into collection; delete filter.ts sort/group</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-284">
<span class="rf-collection__title">Collapse backlog, decision-log, and plan-activity onto collection (thin sugar)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-285">
<span class="rf-collection__title">Generic progress rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-286">
<span class="rf-collection__title">Collection/relationships body zones (preamble/template/fallback) and empty state</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-288">
<span class="rf-collection__title">Theme-toggle layout chrome + behavior</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-289">
<span class="rf-collection__title">Lumina theme-toggle styling (identical look)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-290">
<span class="rf-collection__title">SvelteKit adapter no-flash theme plumbing</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-291">
<span class="rf-collection__title">Remove the Svelte-only ThemeToggle component path</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-292">
<span class="rf-collection__title">Extend theme plumbing + toggle to the remaining adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-293">
<span class="rf-collection__title">Ship the client behaviors bundle in the html scaffold</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-294">
<span class="rf-collection__title">Aggregate rune — schema, post-process resolver, tests</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-295">
<span class="rf-collection__title">Lumina styling for the aggregate rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-296">
<span class="rf-collection__title">Decompose plan-progress as sugar over aggregate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-297">
<span class="rf-collection__title">Document the aggregate rune on the site</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-298">
<span class="rf-collection__title">Drawer enhancements — footer slot, always-visible chrome</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-299">
<span class="rf-collection__title">Site config — repoUrl + repoBranch for GitHub source links</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-300">
<span class="rf-collection__title">Drawer hoist mechanism for the shared preview attribute</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-301">
<span class="rf-collection__title">file-ref rune — path-based file references with optional drawer preview</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-302">
<span class="rf-collection__title">xref preview="drawer" — mention an entity in prose, expand on demand</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-303">
<span class="rf-collection__title">Document file-ref, the shared preview attribute, and the drawer footer slot</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-304">
<span class="rf-collection__title">Fence-level annotations: line numbers, line highlight, and source-based labels for codegroup/diff</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-305">
<span class="rf-collection__title">Engine + layout primitives + composable runes + Lumina chip-universal</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-306">
<span class="rf-collection__title">Plan plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-307">
<span class="rf-collection__title">Storytelling plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-308">
<span class="rf-collection__title">Learning plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-309">
<span class="rf-collection__title">Docs plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-310">
<span class="rf-collection__title">Places plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-311">
<span class="rf-collection__title">Media plugin migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-312">
<span class="rf-collection__title">Core Budget rune migration to metaFields + zones</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-313">
<span class="rf-collection__title">Remove legacy slots + structure shim from engine</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-314">
<span class="rf-collection__title">Engine: block-and-layout projection model</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-315">
<span class="rf-collection__title">bar layout, intrinsic field shape, code metaType</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-316">
<span class="rf-collection__title">Migrate plan package to blocks/layout</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-317">
<span class="rf-collection__title">Migrate learning package to blocks/layout</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-318">
<span class="rf-collection__title">Migrate docs package to blocks/layout (api proof)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-319">
<span class="rf-collection__title">Migrate remaining rune packages to blocks/layout</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-320">
<span class="rf-collection__title">Remove legacy placement fields; finalize contract + docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-321">
<span class="rf-collection__title">Reserved fields attribute + schema dual-emit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-322">
<span class="rf-collection__title">Engine reads the fields attribute (dual-read)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-323">
<span class="rf-collection__title">Drop data-field metas; delete the side-channel cruft</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-324">
<span class="rf-collection__title">Recursive layout assembly engine</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-325">
<span class="rf-collection__title">Flatten rune transforms to flat-emit + declarative grouping</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-326">
<span class="rf-collection__title">Move semantic derivation out of postTransform (budget totals)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-327">
<span class="rf-collection__title">Surface grouped skeleton in contracts; deprecate projection.group/relocate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-328">
<span class="rf-collection__title">Migrate pre-engine field consumers to the fields bag</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-329">
<span class="rf-collection__title">Untangle schema.org SEO metas from the data channel</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-330">
<span class="rf-collection__title">Stabilize the plan-site dogfood test under parallel load</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-331">
<span class="rf-collection__title">Drop dual-emitted data-field metas from rune output (Tier 1)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-333">
<span class="rf-collection__title">Chart seam: semantic table IR + rf-chart web component (svg only)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-335">
<span class="rf-collection__title">Move structural building out of postTransform into rune transforms (embed/diagram/sandbox/mockup/comparison)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-336">
<span class="rf-collection__title">Audit and rationalize rune context modifiers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-337">
<span class="rf-collection__title">Enforce parent nesting at build time</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-338">
<span class="rf-collection__title">Composability authoring contract + CLI coverage audit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-339">
<span class="rf-collection__title">Media-zone guest adaptation (any visual rune sits cleanly in a media zone)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-340">
<span class="rf-collection__title">Token hygiene: phantom-token reconciliation + vocabulary cleanup</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-341">
<span class="rf-collection__title">Dark-mode token parity audit</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-342">
<span class="rf-collection__title">Modernize plan card-sugars to compose with the bar rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-344">
<span class="rf-collection__title">Expose group metadata in collection item templates</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-345">
<span class="rf-collection__title">Bento cell adopts card's zone contract; bento becomes a grid primitive</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-347">
<span class="rf-collection__title">Explicit bento-cell authoring</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-348">
<span class="rf-collection__title">Bento sizing model, size-derived media placement, and link tiles</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-349">
<span class="rf-collection__title">Aggregate chart layout</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-351">
<span class="rf-collection__title">Theme-aware global chrome: selection, scrollbars, color-scheme</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-352">
<span class="rf-collection__title">Focus-visible and reduced-motion consistency</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-353">
<span class="rf-collection__title">Chart theming contract and SVG reference implementation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-356">
<span class="rf-collection__title">Bento levels — heading→footprint ladder</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-357">
<span class="rf-collection__title">Per-group sentiment projection in aggregate (colour plan-progress badges)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-358">
<span class="rf-collection__title">Engine config variants: RuneConfig.variants type + axis validation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-359">
<span class="rf-collection__title">Per-instance variant resolution and merge over base config</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-360">
<span class="rf-collection__title">Per-variant structure contracts and inspect variant selection</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-361">
<span class="rf-collection__title">Migrate card/bento-cell to flat-slot model; feature grid/stack + cover variants</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-362">
<span class="rf-collection__title">Universal elevation attribute backed by a --rf-shadow-* token scale</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-363">
<span class="rf-collection__title">frames preset registry + frame attribute and inline facet overrides</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-364">
<span class="rf-collection__title">frameTarget routing + host-owned clip + shared frame CSS layer</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-365">
<span class="rf-collection__title">Collapse showcase into the frame model with deprecated aliases + docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-366">
<span class="rf-collection__title">Tint-tracking inset surface: --rf-surface-inset-shift token + use-site color-mix</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-367">
<span class="rf-collection__title">substrate pattern attribute: engine enum + shared base gradient stylesheet</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-368">
<span class="rf-collection__title">substrateTarget routing + build validation + surfaces theme-authoring docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-369">
<span class="rf-collection__title">bg gradient fill: inline facets + structured BgPresetDefinition.gradient</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-370">
<span class="rf-collection__title">Formalize the bg raw-CSS escape hatch + project-config backgrounds merge</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-371">
<span class="rf-collection__title">Structured overlay/scrim facets + raw-string overlay deprecation path</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-372">
<span class="rf-collection__title">Soft-lint raw CSS covered by structured facets + bg reference docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-373">
<span class="rf-collection__title">media-position=cover layout + height authority (as a config variant)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-374">
<span class="rf-collection__title">content-place 2-axis logical overlay anchor + orientation-adaptive auto</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-375">
<span class="rf-collection__title">Default cover scrim bound to content-place</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-376">
<span class="rf-collection__title">Card intrinsic height/aspect knob for bg-only cards + card docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-377">
<span class="rf-collection__title">Media-guest interaction model: presentational default + capability flag + fallbacks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-378">
<span class="rf-collection__title">href demotion of media guests + cover backdrop pointer-events</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-379">
<span class="rf-collection__title">Interaction-posture build warnings + posture reference docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-381">
<span class="rf-collection__title">Sandbox lazy/poster activation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-382">
<span class="rf-collection__title">three.js sandbox composition — a live program as a media guest</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-383">
<span class="rf-collection__title">Frontmatter indexing on the page entity</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-384">
<span class="rf-collection__title">Typed page entities</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-385">
<span class="rf-collection__title">Rune-page metadata backfill</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-386">
<span class="rf-collection__title">Generated rune catalogue + index stats</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-387">
<span class="rf-collection__title">Rune-doc drift guardrail</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-388">
<span class="rf-collection__title">Data-bound sandbox core</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-389">
<span class="rf-collection__title">3D sitemap showcase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-390">
<span class="rf-collection__title">Plan relationship-graph showcase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-396">
<span class="rf-collection__title">Generic section rune (eyebrow/headline/blurb preamble + body)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-398">
<span class="rf-collection__title">Hero as a cover host</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-399">
<span class="rf-collection__title">Cover guest fill and sandbox fill height mode</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-400">
<span class="rf-collection__title">Build warning for non-eager sandbox in a cover media zone</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-401">
<span class="rf-collection__title">Prism scene — the niwaki-refraction hero backdrop</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-402">
<span class="rf-collection__title">Docs — hero cover reference and animated prism background showcase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-403">
<span class="rf-collection__title">Nested-density title sizing — full-density runes in compact hosts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-404">
<span class="rf-collection__title">Typography token contract</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-405">
<span class="rf-collection__title">Lumina typography refactor onto tokens</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-406">
<span class="rf-collection__title">Generate Lumina token CSS from tokens.ts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-407">
<span class="rf-collection__title">Gallery generator — rune subject</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-408">
<span class="rf-collection__title">Gallery generator — layout fixtures</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-409">
<span class="rf-collection__title">Visual-regression harness</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-410">
<span class="rf-collection__title">Skeleton/skin split — spike</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-411">
<span class="rf-collection__title">Fixture format, loader & generated manifest</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-412">
<span class="rf-collection__title">Complete the standardised fixture corpus</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-413">
<span class="rf-collection__title">AI write mode draws fixtures as few-shot exemplars</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-414">
<span class="rf-collection__title">Fixture validation in CI</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-415">
<span class="rf-collection__title">Fixture-authoring docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-416">
<span class="rf-collection__title">Gallery: bundle behaviors so interactive/lifecycle runes render</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-417">
<span class="rf-collection__title">data rune preprocessor + CSV/TSV adapter + projection core</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-418">
<span class="rf-collection__title">Image-src scheme registry + resolver hook</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-419">
<span class="rf-collection__title">icon: image-src resolver</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-420">
<span class="rf-collection__title">placeholder: image-src resolver</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-421">
<span class="rf-collection__title">Migrate fixtures to placeholder: (drop the base64-PNG interim)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-422">
<span class="rf-collection__title">Image-scheme authoring docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-423">
<span class="rf-collection__title">elevation depth-ladder axis</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-424">
<span class="rf-collection__title">prominence axis (page-section family)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-425">
<span class="rf-collection__title">Lumina: map the axes + retire the static surface groups</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-426">
<span class="rf-collection__title">Migration + docs for the surface axes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-427">
<span class="rf-collection__title">Demonstrate the axes: full-bleed hero recipe / playlist</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-428">
<span class="rf-collection__title">bg guest body + engine relocation + bare-surface guardrail</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-429">
<span class="rf-collection__title">sandbox bg preset (transform-resolved)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-431">
<span class="rf-collection__title">reveal/stagger engine facet</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-432">
<span class="rf-collection__title">Motion dimension CSS + tokens</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-433">
<span class="rf-collection__title">reveal IntersectionObserver behaviour + enhancement gating</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-434">
<span class="rf-collection__title">Motion dimension — docs + showcase</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-435">
<span class="rf-collection__title">Spacing token contract + Lumina refactor</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-436">
<span class="rf-collection__title">@refrakt-md/skeleton package + @layer infrastructure</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-437">
<span class="rf-collection__title">Icon-from-config: lift embedded data-URI glyphs out of CSS</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-438">
<span class="rf-collection__title">Skeleton/skin re-bucketing of the Lumina CSS</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-440">
<span class="rf-collection__title">Proof skin — validate the skeleton is theme-agnostic</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-442">
<span class="rf-collection__title">Promote reveal motion physics into the theme TokenContract</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-443">
<span class="rf-collection__title">Directional dependency model + cycle-check fix + migration</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-444">
<span class="rf-collection__title">Implement frame-overflow facet with sandbox as first consumer</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-445">
<span class="rf-collection__title">Shared install resolver: tarball name, registry passthrough, source-type detection</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-446">
<span class="rf-collection__title">Multi-site --site targeting and config read/write helpers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-447">
<span class="rf-collection__title">create-refrakt --type plugin|template|preset-pack dispatch</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-448">
<span class="rf-collection__title">Bake ADR-023 peerDeps, compat range, devDeps and build wiring into scaffolds</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-449">
<span class="rf-collection__title">create-refrakt plugin scaffold</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-450">
<span class="rf-collection__title">Framework-agnostic theme scaffold default with --target opt-in</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-451">
<span class="rf-collection__title">Template package format and template.json manifest type</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-452">
<span class="rf-collection__title">create-refrakt framework x purpose axis (--framework and --template)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-453">
<span class="rf-collection__title">Template apply as add-a-site: copy content, derive dirs, pin deps</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-454">
<span class="rf-collection__title">Template asset seeding and bundled sandboxes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-455">
<span class="rf-collection__title">Reference template fixture and scaffold-build CI</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-456">
<span class="rf-collection__title">Preset-pack format and presets.json manifest (capability not kind)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-457">
<span class="rf-collection__title">JSON preset carrier: loader extension detection</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-458">
<span class="rf-collection__title">Token-contract JSON Schema for preset authoring</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-459">
<span class="rf-collection__title">Preset scope and tunedFor metadata with pack-manifest validation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-460">
<span class="rf-collection__title">Preset-pack install apply and refrakt theme presets list</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-461">
<span class="rf-collection__title">kind-keyed install apply with framework-aware and compat validation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-462">
<span class="rf-collection__title">refrakt theme list command</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-463">
<span class="rf-collection__title">Rename sandbox runtime directory examples to sandboxes with migration</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-464">
<span class="rf-collection__title">Authoring docs for distributables (template, theme, plugin, preset-pack)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-465">
<span class="rf-collection__title">ADR-023 manifest compatibility fields and shared refrakt-range check</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-466">
<span class="rf-collection__title">Canonical layout vocabulary const (seed grid/list)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-467">
<span class="rf-collection__title">Feature layout axis + transform-level default resolution</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-468">
<span class="rf-collection__title">Retire the media-position → definitions-grid coupling</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-469">
<span class="rf-collection__title">Feature grid collapse reflow + tests + docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-470">
<span class="rf-collection__title">Carousel canonical token + shared DOM contract</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-471">
<span class="rf-collection__title">Attribute-triggered behavior dispatch path</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-472">
<span class="rf-collection__title">Lift the carousel behavior out of gallery (block-agnostic)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-473">
<span class="rf-collection__title">Collapse-to-carousel target (CSS-only)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-474">
<span class="rf-collection__title">feature adopts layout="carousel" (first Phase B adopter)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-475">
<span class="rf-collection__title">Second rune adopts carousel + carousel docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-476">
<span class="rf-collection__title">Reading-register engine resolver + data-reading emission</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-477">
<span class="rf-collection__title">Reading per-rune + layout/region defaults</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-478">
<span class="rf-collection__title">Lumina prose interpretation + generalised dropcap</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-479">
<span class="rf-collection__title">Editor dropcap affordance derived from the register</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-480">
<span class="rf-collection__title">Reading-role gallery subject + docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-481">
<span class="rf-collection__title">ProjectFiles interface + fs/memory providers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-482">
<span class="rf-collection__title">Migrate sandbox reads to ProjectFiles + close the src traversal gap</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-483">
<span class="rf-collection__title">snippet / expand / file-ref readers delegate I/O to ProjectFiles</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-484">
<span class="rf-collection__title">fileRoots + plan scan + loadContentFromTree plumbs; in-memory full-build test</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-485">
<span class="rf-collection__title">Docs — ProjectFiles contract + fetch-then-build materialization</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-486">
<span class="rf-collection__title">data rune — JSON + NDJSON adapters</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-487">
<span class="rf-collection__title">datatable — data-value-aware sort</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-488">
<span class="rf-collection__title">data rune — docs page</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-489">
<span class="rf-collection__title">Container-query collapse-to-carousel + responsive-preview simulation</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-490">
<span class="rf-collection__title">Container-query beside-layout collapse (split.css) + preview frame container</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-491">
<span class="rf-collection__title">Fix plan status/severity vocabulary drift in MCP and renderer config</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-492">
<span class="rf-collection__title">Consolidate plan status vocabulary into a single source of truth</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-493">
<span class="rf-collection__title">Add cancelled and superseded terminal work statuses</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-494">
<span class="rf-collection__title">Document terminal work statuses and consolidated vocabulary</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-495">
<span class="rf-collection__title">Add spec implemented/shipped and ADR rejected statuses</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-496">
<span class="rf-collection__title">Add pr attribute to work and bug runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-497">
<span class="rf-collection__title">plan status PR rollups and implemented-flip suggestion</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-498">
<span class="rf-collection__title">refrakt plan migrate pr-attrs — git backfill of PR references</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-499">
<span class="rf-collection__title">CLAUDE.md pr checklist bullet and spec-lifecycle docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-501">
<span class="rf-collection__title">General status-correctness audit of the plan corpus</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-502">
<span class="rf-collection__title">i18n resolution foundation — locale config, LocaleContext, resolvers, fallback</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-503">
<span class="rf-collection__title">Thread LocaleContext into the engine label renderers</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-504">
<span class="rf-collection__title">Localize structure & meta-field labels (Zone 1) with auto-derived keys</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-505">
<span class="rf-collection__title">Localize layout chrome (Zone 3) and computed transforms (Zone 4)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-506">
<span class="rf-collection__title">refrakt i18n extract command (+ --check + MCP)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-507">
<span class="rf-collection__title">Localize behavior strings (Zone 5) — inline delivery</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-508">
<span class="rf-collection__title">Localize programmatic (Zone 2) and enum-as-text (Zone 6) display values</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-509">
<span class="rf-collection__title">Plugin translation bundles + mergePlugins() wiring</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-510">
<span class="rf-collection__title">knownSections canonicalSlug + i18nAliases — stable-slug follow-up</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-511">
<span class="rf-collection__title">Cross-adapter lang attribute (Zone 8) + Intl number/duration/currency formatting</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-512">
<span class="rf-collection__title">First-party translation bundles (phased, demand-driven)</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-513">
<span class="rf-collection__title">Lifecycle-drift validation — spec-status checks and shared suggestImplemented predicate</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-514">
<span class="rf-collection__title">Lifecycle-drift validation — work-dependency and milestone-completion checks</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-515">
<span class="rf-collection__title">One-time lifecycle-drift cleanup pass over plan/</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-516">
<span class="rf-collection__title">Remove bespoke plan build/serve render stack</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-517">
<span class="rf-collection__title">Facet registry foundation and first universal axes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-518">
<span class="rf-collection__title">Migrate the cover/scrim coupling — two-phase facets and seeded dependencies</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-519">
<span class="rf-collection__title">Migrate the tint axis to a facet</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-520">
<span class="rf-collection__title">Migrate the background axis to a facet and exercise the layers channel</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-521">
<span class="rf-collection__title">Migrate the remaining scalar axes to facets</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-522">
<span class="rf-collection__title">Migrate frame and substrate chrome to postAssemble facets</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-523">
<span class="rf-collection__title">Migrate the config-modifier loop and retire seedAxes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-524">
<span class="rf-collection__title">Consolidate warn-once diagnostics onto the facet collector</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-525">
<span class="rf-collection__title">Derive structure contracts from facets</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-526">
<span class="rf-collection__title">Let facets declare their own author attributes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-527">
<span class="rf-collection__title">Universal axes are absent from structure contracts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-528">
<span class="rf-collection__title">Enforce identity fields on theme overrides</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-529">
<span class="rf-collection__title">Correct section roles — core and marketing runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-530">
<span class="rf-collection__title">Correct section roles — storytelling runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-531">
<span class="rf-collection__title">Correct section roles — media and places runes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-532">
<span class="rf-collection__title">Lint slot/role mismatches</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-533">
<span class="rf-collection__title">Declare join tables in tag modules</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-534">
<span class="rf-collection__title">Narrow rune schemas to applicable universal attributes</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-535">
<span class="rf-collection__title">Report a rune's actual universal attributes in refrakt reference</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-536">
<span class="rf-collection__title">Warn when reading, content-place or cover scrim are dropped</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-537">
<span class="rf-collection__title">Separate the prose capability from the body role</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-538">
<span class="rf-collection__title">Make prominence effective on runes whose stylesheet pins its title size</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-539">
<span class="rf-collection__title">Close refrakt.config.json schema drift and fix config migrate field list</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-540">
<span class="rf-collection__title">Move author-facing pages out of the Extend handbook into Docs</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-541">
<span class="rf-collection__title">Split the config types out of theme.ts</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-542">
<span class="rf-collection__title">Backfill the missing descriptions in refrakt.config.schema.json</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-543">
<span class="rf-collection__title">Per-row templates for the data rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-544">
<span class="rf-collection__title">Generate the configuration reference</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-545">
<span class="rf-collection__title">Add a frontmatter schema</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-546">
<span class="rf-collection__title">Generate the frontmatter reference and trim the configuration prose pages</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-547">
<span class="rf-collection__title">Decide which rune pages should carry an attribute table</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-548">
<span class="rf-collection__title">Generate rune attribute tables</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-549">
<span class="rf-collection__title">A pre-transform include rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-550">
<span class="rf-collection__title">data body as a table row</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-551">
<span class="rf-collection__title">An inline code rune</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-552">
<span class="rf-collection__title">Suppress an accordion's schema.org emission</span>
</div>
<div class="rf-collection__item" data-entity-id="WORK-553">
<span class="rf-collection__title">Nested data queries</span>
</div>
</div>
</details>
</div>
</div>
</section>Panels are independent (open as many as you like) and need no JavaScript — the disclosure is the browser's. The count is shown because collapsed panels hide their contents, so the size cue is genuinely useful there. For arbitrary per-group chrome beyond headings or accordion, render one filtered collection per group value, stacked.
Domain-aware ordering
Enum fields don't sort alphabetically. For a field whose values are a fixed set — a work item's priority (critical/high/medium/low), a status, a severity — sort and group order by the field's declared order, not lexically, so sort="priority" runs critical→low and group="status" lists statuses in a sensible sequence. The order is taken from each rune's attribute definition; a plugin may register an explicit override when a dashboard order differs from the declaration order. Across mixed types (type="work,bug"), each entity is ranked within its own type's ordering, so the groups still compose. Fields with no declared order fall back to numeric/lexical.
Layouts
layout controls arrangement only — item chrome comes from the item (see Per-item templates).
layout | Arrangement | With no body template |
|---|---|---|
list (default) | stacked | a compact title link per entity |
grid | responsive multi-column | a generic auto-card (title link + projected fields) |
table | aligned columns | columns from fields (or heading-delimited columns) |
There is no
cardslayout — a card gallery isgridplus{% card %}items (see below).layoutnever auto-wraps your content in a card; you choose the chrome.
Field projection — fields
fields is the zero-template shorthand for the no-body case: a comma-separated list of data fields rendered with humanized headers and default per-type formatting.
{% collection type="work" filter="status:ready" layout="table" fields="status,priority" limit=5 /%}<section data-rune="collection">
<meta data-field="collection-type" content="work">
<meta data-field="collection-filter" content="status:ready">
<meta data-field="collection-sort" content="">
<meta data-field="collection-group" content="">
<meta data-field="collection-limit" content="5">
<meta data-field="collection-fields" content="status,priority">
<meta data-field="collection-layout" content="table">
<meta data-field="collection-group-display" content="headings">
<meta data-field="collection-empty" content="">
<meta data-field="__collection-sentinel" content="true">
<div data-name="items"></div>
</section>| Title | Status | Priority |
|---|---|---|
| Content model validation errors | ready | critical |
| Token fallback chain for nested tints | ready | high |
| Interactive rune playground | ready | medium |
| Implement tint rune dark mode support | ready | high |
| Create-Refrakt Project Type Defaults | ready | medium |
<section class="rf-collection" data-type="work" data-layout="table" data-rune="collection" data-density="full">
<div data-name="items" class="rf-collection__items rf-collection__items">
<table class="rf-collection__table">
<thead>
<tr>
<th>Title</th>
<th>Status</th>
<th>Priority</th>
</tr>
</thead>
<tbody>
<tr data-entity-id="WORK-101">
<td>
<a class="rf-collection__title" href="/runes/plan/examples">Content model validation errors</a>
</td>
<td data-field="status">ready</td>
<td data-field="priority">critical</td>
</tr>
<tr data-entity-id="WORK-102">
<td>
<a class="rf-collection__title" href="/runes/plan/examples">Token fallback chain for nested tints</a>
</td>
<td data-field="status">ready</td>
<td data-field="priority">high</td>
</tr>
<tr data-entity-id="WORK-103">
<td>
<a class="rf-collection__title" href="/runes/plan/examples">Interactive rune playground</a>
</td>
<td data-field="status">ready</td>
<td data-field="priority">medium</td>
</tr>
<tr data-entity-id="RF-142">
<td>
<a class="rf-collection__title" href="/runes/plan/work">Implement tint rune dark mode support</a>
</td>
<td data-field="status">ready</td>
<td data-field="priority">high</td>
</tr>
<tr data-entity-id="WORK-052">
<td>
<span class="rf-collection__title">Create-Refrakt Project Type Defaults</span>
</td>
<td data-field="status">ready</td>
<td data-field="priority">medium</td>
</tr>
</tbody>
</table>
</div>
</section>For anything richer than raw values (formatting, combining fields, a designed card), use a body template.
Per-item templates
Give collection a body and it becomes the per-item template: the body is transformed once per entity with $item bound to that entity. The body is raw output arranged by layout — add a rune like {% card %} for chrome.
data has the same contract for rows read from a file, binding $row. The name differs because the shape does: an $item is an entity with id / type / url / data, a $row is flat.
{% collection type="work" filter="status:ready" sort="priority" layout="grid" %}
{% card href=$item.url %}
### {% $item.data.title %}
Status: {% $item.data.status %} · Priority: {% $item.data.priority %}
{% /card %}
{% /collection %}
The $item variable
$item is a read-only bound variable (like $page / $file), not a contract any rune implements:
| Field | Always present? | Notes |
|---|---|---|
$item.id | yes | the entity id |
$item.identifier | yes | id, or name for name-keyed types (e.g. milestones) — a universal identifier |
$item.type | yes | the entity type |
$item.url | yes | resolved URL (sourceUrl ?? data.url); empty string, never undefined, when there's no on-site URL |
$item.data.* | type-specific | the entity's payload. A missing field renders nothing (no warning) |
$item.sentiment | when mapped | the entity's status sentiment (positive / negative / caution / neutral), e.g. to colour a badge; empty when unmapped |
$item.mixed | yes | true when the set spans more than one type (and isn't grouped by type) — useful for a conditional type chip |
$item.group | grouped only | the item's group key (the value of the group field); empty when ungrouped |
$item.groupCount | grouped only | the number of items in this item's group; 0 when ungrouped |
Payload fields are accessed under .data (e.g. $item.data.title) — there's no hoisting to $item.title, so a payload field can never shadow id/type/url.
$item.group / $item.groupCount let a grouped collection's per-item template render group context inline (e.g. {% if $item.groupCount %}{% $item.group %} ({% $item.groupCount %}){% /if %}) without dropping to aggregate.
Cards are plain runes
The card in the example above ({% card %}) knows nothing about $item, the registry, or collection — the template wires entity fields into its attributes/body. So card stays a self-contained component you can also use standalone, and there's no per-entity *-card proliferation: a designed item is {% card %} (or another rune) fed by $item, not a bespoke work-card.
Reusable templates — a partial in the body
When the same template is reused across collections, put a partial in the collection body instead of repeating it:
{% collection type="page" filter="url:/blog/*" sort="date-desc" %}
{% partial file="post-card.md" /%}
{% /collection %}
…where _partials/post-card.md contains the template:
{% card href=$item.url %}
# {% $item.data.title %}
{% /card %}
$item is bound inside the partial exactly as it is in an inline body, so the partial is the per-item template — no collection-specific mechanism, and the same file works in any collection.
Table columns
In table layout, an empty body uses the fields shorthand. For labels, formatting, or combined columns, give the body heading-delimited columns — each heading is a column (label = heading text, in order), and the markdoc beneath it is that column's per-cell template with $item bound:
{% collection type="product" layout="table" sort="price" %}
## Product
{% link href=$item.url %}**{% $item.data.title %}**{% /link %}
## Price
{% currency($item.data.price, $item.data.currency) %}
## Stock
{% if $item.data.stock %}{% $item.data.stock %} in stock{% else %}Out{% /if %}
{% /collection %}
Collection owns the <table> and header row; each <td> is the cell template rendered per entity. Column headings are static labels — $item belongs in the cell body, not the heading.
Linking from a cell — use
{% link %}. Markdown link syntax can't interpolate a variable into its destination:[{% $item.data.title %}]({% $item.url %})renders as literal text, because a markdown link's href is fixed at parse time. The{% link href=$item.url %}…{% /link %}tag takes a dynamic href (as in the Product column above), and works in any body template, partial, or table cell where$itemis bound. Thefieldsshorthand's auto-generated Title column also links each entity automatically.
Formatter functions
Value formatting is done with shared markdoc functions, usable anywhere markdoc runs — collection cells, body templates, entityRoutes render strings, ordinary content:
| Function | Example | Output |
|---|---|---|
currency(amount, code?) | {% currency($item.data.price, "EUR") %} | €1,234.00 |
date(value) | {% date($item.data.published) %} | Jan 15, 2024 |
number(value) | {% number($item.data.views) %} | 1,234,567 |
join(array, sep?) | {% join($item.data.tags, " · ") %} | a · b · c |
humanize(value) | {% humanize($item.data.status) %} | In Progress |
Formatting lives in these functions, not in fields or a projection mini-language.
Attributes
| Attribute | Type | Required | Description |
|---|---|---|---|
type | string | — | Entity type(s), comma-separated. |
filter | string | — | field:value clauses (SPEC-070 grammar). |
sort | string | — | Sort field (prefix - for descending). |
group | string | — | Group-by field. |
limit | string | — | Max items. |
show | string | — | Alias for type (entity types to include). |
fields | string | — | Comma-separated data fields to project. |
layout | string | — | Arrangement: list (stacked) | grid (multi-column) | table (aligned columns). Item chrome comes from the item — the no-body built-in, or a rune like {% card %} in the body template. |
group-display | "headings" | "accordion" | — | How groups are presented when `group` is set: headings (default) or accordion (collapsible native <details> panels, styled like the accordion rune, with a per-group count). |
empty | string | — | Fallback text shown when the query yields nothing (no-body form; body-template form uses a fallback zone). Absent → render nothing. |
Universal attributes
bg
The background layer (SPEC-088): image, video, gradient, flat overlay wash and legibility scrim, in a single injected layer behind the rune's content.
| Attribute | Type | Required | Description |
|---|---|---|---|
bg | string | — | Background preset applied to this block |
bg-from | string | — | Gradient start colour — a semantic token name (→ var(--rf-color-*)) |
bg-gradient | "to-t" | "to-b" | "to-l" | "to-r" | "to-tr" | "to-br" | "to-bl" | "to-tl" | — | Gradient direction (bounded named set) |
bg-gradient-type | "linear" | "radial" | "conic" | — | Gradient type |
bg-to | string | — | Gradient end colour — a semantic token name |
bg-via | string | — | Optional middle gradient stop — a semantic token name |
scrim | "top" | "bottom" | "left" | "right" | "none" | — | Scrim direction (heaviest edge); presence turns the scrim on, "none" opts out of the default cover scrim |
scrim-blur | "none" | "sm" | "md" | "lg" | — | Frost scrim blur amount |
scrim-strength | "sm" | "md" | "lg" | — | Gradient scrim strength |
scrim-tone | "dark" | "light" | — | Whether the scrim darkens (for light text) or lightens (for dark text) |
scrim-type | "gradient" | "frost" | — | Scrim treatment: gradient (default) or frost (backdrop blur) |
elevation
The chrome/depth ladder (SPEC-107). The skin maps each rung to a chrome bundle by attribute, so there is no BEM class.
| Attribute | Type | Required | Description |
|---|---|---|---|
elevation | "sunken" | "flush" | "flat" | "raised" | "floating" | "overlay" | "none" | "sm" | "md" | "lg" | — | Surface depth on the SPEC-107 ladder (sunken→overlay); none/sm/md/lg are deprecated aliases |
inset
Internal padding override.
| Attribute | Type | Required | Description |
|---|---|---|---|
inset | "flush" | "tight" | "default" | "loose" | "breathe" | — | Inner padding of this block |
motion
Scroll-reveal entrance (SPEC-105). The author declares the character, the theme owns the choreography, a behaviour owns the timing.
| Attribute | Type | Required | Description |
|---|---|---|---|
reveal | "none" | "fade" | "slide" | "scale" | "blur" | — | Scroll-reveal entrance character (none|fade|slide|scale|blur); the theme owns the choreography |
stagger | boolean | — | Cascade this block's items in as it reveals (no-op on single-child runes) |
spacing
Block-level rhythm override.
| Attribute | Type | Required | Description |
|---|---|---|---|
spacing | "flush" | "tight" | "default" | "loose" | "breathe" | — | Vertical spacing above and below this block |
substrate
Generated pattern fills (SPEC-087). Markers only — the engine sets the attributes and cell/opacity custom properties, CSS draws the pattern.
| Attribute | Type | Required | Description |
|---|---|---|---|
substrate | "dots" | "grid" | "lines" | "cross" | "checker" | "none" | — | Generated surface pattern |
substrate-fill | "inherit" | "inset" | — | Surface fill the pattern sits on (full colour stays with tint) |
substrate-opacity | "sm" | "md" | "lg" | — | Pattern ink strength |
substrate-size | "sm" | "md" | "lg" | — | Pattern cell size |
substrate-target | "self" | "media" | — | Which surface the pattern fills (overrides the rune/theme default) |
tint
Per-rune colour override (SPEC-053): a named tint from the theme registry, with inline per-token overrides layered on top.
| Attribute | Type | Required | Description |
|---|---|---|---|
tint | string | — | Color tint preset applied to this block |
tint-mode | "auto" | "dark" | "light" | — | Whether the tint adapts to auto, dark, or light mode |
width
The track a block rune occupies.
| Attribute | Type | Required | Description |
|---|---|---|---|
width | "compact" | "narrow" | "content" | "wide" | "full" | — | Maximum width constraint for this block |
| Not available | Why |
|---|---|
| dropcap, reading | this rune declares no prose body |
| frame | this rune declares neither a `frameTarget` nor a media section |
| prominence | this rune has no page-section header |
Body zones — preamble, template, fallback
When you give collection a body, split it on a top-level --- (horizontal rule) into up to three zones — the same convention as card:
{% collection type="work" filter="status:blocked" group="status" %}
## Blocked
Work that can't progress.
---
{% card href=$item.url %}### {% $item.data.title %}{% /card %}
---
Nothing blocked — nice.
{% /collection %}
- preamble (optional, leading) — rendered once, above the items, only when the query is non-empty. Put the section heading here so the whole section (heading + items) appears or vanishes together — something
{% if %}can't do, since emptiness is resolved at build time. - template — the per-item template (today's single-zone body).
- fallback (optional, trailing) — rendered once, in place of the items, only when the query is empty.
Zones are positional: 1 zone → template; 2 → preamble + template; 3 → preamble + template + fallback. A --- inside a nested rune (a {% card %}'s own zones) is never a delimiter — only top-level rules split. For the self-closing form (no body), use the empty attribute for the fallback.
Count variables — $count and $shown
The preamble and fallback zones can read two bound variables describing the match set:
| Variable | Value |
|---|---|
$count | total entities matched, before limit |
$shown | entities actually rendered, after limit |
{% collection type="work" filter="status:ready" limit=5 %}
## Ready work
Showing {% $shown %} of {% $count %}.
---
{% card href=$item.url %}### {% $item.data.title %}{% /card %}
{% /collection %}
They're list-scoped (the whole query), not per-group — a group's own count appears in its accordion summary automatically. In the fallback zone both are 0.
Output contract
<section class="rf-collection" data-rune="collection" data-type="work" data-layout="grid">
<div class="rf-collection__items">
<!-- grid / list built-in items -->
<article class="rf-collection__card" data-entity-id="W-1">
<a class="rf-collection__title" href="/work/W-1/">…</a>
<span class="rf-collection__field" data-field="status">ready</span>
</article>
<!-- …or, with a body template, each item is the template's own output -->
<div class="rf-collection__item" data-entity-id="W-1">…</div>
</div>
</section>
When group is set, items are wrapped in div.rf-collection__group[data-group] with a h3.rf-collection__group-title. With group-display="accordion" the groups are instead a div.rf-accordion of details.rf-accordion-item[data-group] panels — reusing the accordion rune's classes (__header / __title / __count / __body). The table layout emits a table.rf-collection__table with <thead> + one <tr data-entity-id> per entity.