Terms are used precisely throughout the spec. Where a term is capitalised it carries exactly this meaning.

Site — one Git repository conforming to this specification, owning its content, templates, configuration, and output. A family of sites shares the spec; it does not share runtime state.

Chrome — the shared frame every page renders inside: header, footer, menus, base styles. Non-negotiable (Constitution §7).

Page — one routable unit of content: an entry in exactly one collection, rendered by exactly one template at a stable URL.

Page type (collection) — a named set of pages sharing one schema and one template. The mechanism is normative; specific types come from the reference library in spec/02 or are site-defined.

Template — the presentation component bound to a page type. Code, never data.

Block — a typed, schema-validated unit of composed-page content (hero, card grid, gallery, stats…). Blocks are the compositional vocabulary; a block is data, its rendering is code.

Composed page — a page whose body is an ordered list of blocks. The primary way to build a home page or landing page.

Blob — a freeform page: arbitrary Markdown/MDX rendered inside the chrome. The escape hatch for genuinely unique pages. Discouraged by default; audited when used (Constitution §7).

Menu — a named, ordered tree of navigation items stored as data (content/menus/), rendered by the chrome. Items carry label, href or ref, and optional children.

Token / variant — a named design value in the style layer (colour, spacing, block variant). Content may reference a token by name, validated against the registry; content never carries raw CSS.

Site config (site.yaml) — the schema-validated identity of the site: name, domain, contact, registration numbers, footer links, social links.

Projection (derived data) — data computed at build time from the content collections: aggregate stats, index pages, recent lists, sitemap. Never authored (Constitution §8).

Theme package — an optional shared npm package carrying tokens and components for a family of related sites. Optional; sites conform without it.

Requestor — the human who asked for a change (the email sender, or the person driving an agent session).

Publisher — the human (or configured rule) who authorises a change to become live by merging its PR.

Editor agent — the AI role that reads a request, drafts the content change, and opens the PR. Writes branches; never merges.

Ingest — the pipeline step that receives a request (typically an email), identifies the sender against the allowlist, and hands a structured interpretation to the editor agent.

Classify — mapping an inbound request to (change class, target page(s), proposed edit). The classification is recorded in the PR.

Change class — a risk bucket for a change: e.g. typo, content-update, new-page, structural. One axis of the trust dial.

Trust dial — the per-site, versioned configuration mapping (sender × change class) → approval requirements. Levels are: dual approval (default), requestor-approves (publisher reviews post-merge), and — never by default — auto-publish with audit.

Nonce — a random single-use token the editor agent embeds in its reply to a requestor; the approval reply must quote it. Binds an approval to a specific proposed change and thread.

Allowlist — the per-site list of email addresses (and agent principals) whose input is eligible for the pipeline. Everything else is logged and ignored.

Pull request gate — the branch protection on main: no direct pushes; PRs require a green build; merge requires the configured approval(s).

Preview — a per-PR static deployment at an unguessable URL, noindex, cleaned up on PR resolution. The surface on which the requestor reviews.

Live — the production output of main. Changed only by merge.

Build — the CI step that validates every schema and renders the static output. Red build = no merge (Constitution §2).

Conformance — a site’s status of satisfying the normative requirements of this spec at a given version. See spec/07-conformance.md.

Site adapter — the <site>/src/lib/schemas.ts module a site exposes to the tool surface (D-005): the nine normative symbols. The site’s single source of schema truth, shared by the build and the tools.

Jail — the path containment on put_theme_file: writes are refused outside themes/<active-theme>/ (spec/08 §4).

Region — a named, annotatable area of a rendered page (data-quoin-region): chrome landmarks and blocks. ?inspect outlines each region with its name so a human can give precise feedback (spec/08 §6).

Inspect mode — viewing any page with ?inspect to see labelled region outlines. Fully inert without the parameter.

Update intent — the put_page rule that editing an existing page requires an explicit update: true, keeping creation and update distinct, PR-visible intents (spec/08 §3).