diff --git a/MARKS.md b/MARKS.md
new file mode 100644
index 0000000..f8de1a4
--- /dev/null
+++ b/MARKS.md
@@ -0,0 +1,959 @@
+# Frontmatter Marks: Specification
+
+A two-part visual identity for essay and research frontmatter, designed
+to extend (not replace) the existing epistemic profile system.
+
+The mark system has two pieces:
+
+ 1. **Monogram** — a hand-authored SVG glyph per piece, abstracted from
+ the work's central concept. The author's statement of *what* the
+ piece is about.
+ 2. **Epistemic figure** — a build-time SVG generated deterministically
+ from existing frontmatter fields. The site's statement of *where
+ the piece stands*.
+
+The two are paired in the frontmatter: monogram on the left, title and
+abstract in the middle, epistemic figure on the right. Either can be
+present alone; both can be absent. When a field that drives the
+epistemic figure is missing, the figure is omitted entirely rather
+than rendered with empty axes.
+
+This document specifies the authoring interface, the field schema
+(extending the existing one in `WRITING.md`), the visual contract,
+the build-time rendering pipeline, and the migration plan.
+
+It is written to slot in alongside `WRITING.md` as a sibling reference,
+and to live as a section in the colophon once shipped.
+
+---
+
+## 1. Scope and non-goals
+
+### In scope
+
+- A monogram convention (location, dimensions, line-weight, palette)
+ that any author or generator can produce SVGs for.
+- Two new optional frontmatter fields (`peer-status`, `result-shape`)
+ that surface useful information for both essays and formal research,
+ with a colophon-glossed interpretation that adapts to genre.
+- One narrow exception (`confidence: proved`) that lets formal proofs
+ honestly opt out of a numeric credence without forcing false precision.
+- A new Pandoc filter (`Filters/Mark.hs`) that emits the epistemic
+ figure SVG inline in the essay header at build time.
+- Template changes in `templates/essay.html` and `templates/blog-post.html`
+ to provide three-column frontmatter slots (monogram | title | figure).
+- A `make audit-marks` build target and an addition to `/build/`
+ surfacing which essays are missing one or both marks.
+
+### Out of scope
+
+- A separate "research badge" figure type. The single radial figure
+ handles both essays and formal research; see §3.4.
+- A unified mode-switched figure with axes that change meaning based on
+ a `claim-mode` flag. Visual grammar should be unambiguous; one figure
+ type, stable axis semantics. See §11 for the rejected alternatives.
+- Per-portal iconographic systems (the Approach 5 idea from earlier
+ exploration). Not ruled out for the future, but not specified here.
+- Author UI for generating monograms. Authors may use any tool —
+ hand-drawn, prompt-driven, traced from references — provided the
+ output meets §2.
+
+---
+
+## 2. The monogram
+
+### 2.1 Authoring contract
+
+A monogram is a single SVG file at:
+
+ content/essays/{slug}/mark.svg ← directory-form essays
+ content/essays/{slug}.mark.svg ← flat-file essays
+ content/blog/{slug}.mark.svg
+ content/poetry/{slug}.mark.svg
+ content/fiction/{slug}.mark.svg
+ content/music/{slug}/mark.svg
+ content/{slug}.mark.svg ← standalone pages
+ content/drafts/essays/{slug}.mark.svg ← drafts
+
+The build picks up the file by the same slug-resolution rules already
+used for score fragments and page-local JS. No frontmatter key is
+required to opt in; the file's presence is the opt-in. To opt out
+(suppress an inherited or stale mark), delete the file.
+
+### 2.2 Visual contract
+
+Monograms must satisfy the following constraints. These are enforced
+by `tools/audit-marks.py` and by `make audit-marks` (§9), not at
+build-fail level — violations warn but do not break the build.
+
+| # | Constraint | Rationale |
+|---|---|---|
+| M1 | `viewBox="0 0 280 280"` (or proportional, square) | Renders at 130–280 px equally. |
+| M2 | All strokes use `stroke="currentColor"`; all fills use `fill="none"` except small filled point-marks which use `fill="currentColor"` | Inverts cleanly under Light, Dark, Cappuccino without per-theme assets. The score-fragment filter already does this substitution; monograms must be authored this way from the start. |
+| M3 | Outer roundel: `` | The unifying frame. Without it, marks read as illustrations, not as a system. |
+| M4 | Stroke widths within {0.3, 0.5, 0.6, 0.8, 1.0, 1.2, 1.4} | Limits visual rhythm to a small palette. |
+| M5 | `stroke-linecap="round"` and `stroke-linejoin="round"` everywhere | Spectral-compatible terminals. |
+| M6 | No ``, no ``, no gradients, no filters, no embedded fonts, no rasters | Letterforms and color belong to the page, not the mark. Note: `` and `` for accessibility are required (§2.3), not forbidden. |
+| M7 | No XML prologue, no `` element as the first child of
+`