Guide
Frontmatter
The typed frontmatter contract every superlore page carries — title, icon, description, summary, tags — and what each field powers.
Every superlore page opens with a YAML frontmatter block. It's based on Fumadocs' schema and
extended with the knowledge-envelope fields (summary, tags) that power search and the
MCP. You set the schema in source.config.ts from
superloreFrontmatterSchema — see Getting started.
---
title: Q3 Roadmap
icon: Rocket
description: What ships this quarter and when.
summary: The Q3 plan — kickoff in July, GA in late Q3 — as a typed timeline.
tags: [roadmap, planning]
---Fields
| Field | Required | Purpose |
|---|---|---|
| title | yes | Page title; the H1, the nav label, and the unit of MCP get_page |
| icon | no | lucide icon name (PascalCase) shown in the sidebar and on the page |
| description | no | Rendered under the title; falls back to summary if unset |
| summary | no | Plain-text gloss for search ranking and the snippet an agent sees first |
| tags | no | Faceting in the UI and MCP list filters (list by tag) |
Write the summary first
summary is the single highest-leverage field. It feeds search ranking and is the first thing an
agent reads about a page over the MCP. One plain, specific line beats a vague one.
Conventions
iconuses lucide names in PascalCase (e.g.Rocket,LayoutTemplate) — the same names the lucide plugin resolves inmeta.json.titlebecomes the page's address root; section ids derive from headings. Keep both stable so inbound links and MCPnavigatetargets hold.- Anything beyond these is your own — extend the schema with
.extend({ ... })and the extra fields ride along into the page object.