Authoring for Agents
Writers have two frontmatter fields for controlling how their content appears to agents, a site-level config for the llms.txt preamble, and a diagnostic command for checking what an agent sees before deploying.
llm_description
Overrides the description used in llms.txt and the frontmatter-index artifact for this page.
---
title: Theme Variables
llm_description: Complete reference for all CSS custom properties and their defaults.
---
When llm_description is absent, braised resolves the description in priority order:
llm_description:— explicit override, always winsdescription:— standard meta description field, used as a fallback when no extractable paragraph exists (useful for reference pages that open with a directive block rather than prose)- First paragraph — extracted from the page body; braised descends one level into directive blocks (e.g.
:::{.synopsis},:::{.callout}) before looking for prose, so lead directives are not silently skipped
Use llm_description when the first paragraph is scene-setting prose for human readers rather than a concise statement of the page's purpose. The value does not affect chunk hashes — changing it never invalidates the RAG index.
llm_description affects two outputs: llms.txt (nav-listed pages only) and frontmatter-index (all built pages). Setting it on a page not in nav.yaml has no effect on llms.txt but is still surfaced via get_page_index().
llm_exclude
When true, excludes the page from all agent-facing outputs.
---
title: Internal Notes
llm_exclude: true
---
An excluded page is suppressed from:
llms.txt— omitted from the index entirelymanifest.jsonl— chunks not written; the page does not enter any downstream pipelinefrontmatter-indexartifact — omitted fromget_page_index()outputget_page(path)— returns the same not-found error as a genuine miss
The page is still built — HTML and companion .md are written to dist/ and accessible by direct URL. llm_exclude is an agent visibility control, not a build gate.
llms_txt.preamble in braised.yaml
Insert site-level context into llms.txt between the description line and the first section listing. Use it for facts an agent should know before reading any pages: version conventions, naming, architectural constraints.
# braised.yaml
llms_txt:
preamble: |
Config file: braised.yaml. Binary: braised.
Directive syntax: :::block-name (not shortcodes).
Theme extension uses CSS custom properties, not Sass variables.
When absent, no preamble is emitted. The value is inserted verbatim — no Markdown processing.
braised inspect --agent
Check what an agent sees for a specific page before deploying. Run braised build first — the companion .md and artifact sections require build output.
braised inspect --agent docs/theming/variables.md
Output:
FILE /site/docs/theming/variables.md
SITE DIR /site
─── AGENT DIAGNOSTICS
llms.txt
included: yes
description: llm_description (explicit)
text: Complete reference for all CSS custom properties and their defaults.
companion .md
status: present (dist/theming/variables/index.md)
size: 4.2 KB
chunks (6 total)
/theming/variables/
heading: Theme Variables (page root)
content: Theme Variables\n\nThis page lists all CSS custom properties...
hash: a3f9c2b1
...
artifacts
frontmatter-index: present
layout: page
in_nav: yes
llms.txt — Inclusion status, description source (llm_description or first_paragraph), and resolved text. Pages showing first_paragraph (fallback) are candidates for an explicit llm_description.
companion .md — Whether the file exists and its size. A very small size (under ~100 bytes) usually means the page is a section index with no body content — expected for organizational stub pages.
chunks — Every chunk the AST chunker produces: ID, heading level, first 120 characters of baked content, and hash. This is exactly what gets written to manifest.jsonl. Review this if a chunk looks wrong in your downstream pipeline.
artifacts — Whether the page appears in frontmatter-index and its resolved layout and in_nav values. Requires a prior build.
See CLI Reference for all inspect flags.