ai/dot-agents/skills/manuscript/SKILL.md
ONLY INVOKE IF I EXPLICITLY TELL YOU TO INVOKE THIS. Build in the Manuscript visual language — a design system that presents digital content through the grammar of Renaissance natural philosophy treatises, woodblock-printed codices, and scholarly manuscripts. Use when the user asks for 'manuscript design', 'treatise style', 'codex aesthetic', or anything that should feel like a printed document from a world where code and scholarship coexist.
npx skillsauth add lolwierd/dotfiles manuscriptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A visual language for presenting digital content as if it were typeset on handmade paper, printed from woodblocks, and annotated by a scholar who couldn't stop writing in the margins.
This is not a retro filter or a period costume. It is a way of asserting that content has weight, history, and physical presence in a medium (the screen) that usually has none. When you build in Manuscript, you are saying: this was worth printing.
The language emerges from the observation that the visual grammar of pre-modern printed texts — treatises on natural philosophy, woodblock-printed codices, annotated manuscripts — carries an inherent authority that digital media lacks. When GLSL code sits alongside the geometric forms it produces on a page that looks like it was pulled from a sixteenth-century treatise, something changes. The code stops being "a snippet" and becomes a theorem. The ornamental friezes that separate sections aren't decoration — they're the same mathematics rendered as border art.
The key insight: the form claims the content is serious. By presenting code (or any subject) through the apparatus of scholarship — section numbers, figure labels, ornamental initials, margin notes, horizontal rules — you give it the gravity of a theorem. You say: this is knowledge, not content.
A page torn from a book that shouldn't exist. A medieval optics text that contains fragment shaders. A natural philosophy treatise on Pokémon types. A cartographic survey of a video game world. The subject is contemporary or fictional; the form insists it is ancient and serious. That tension — between the gravity of the presentation and the nature of the content — is the soul of Manuscript.
It feels like:
It does NOT feel like:
The background is not white. It is paper — and paper has texture.
#ddd8cf to #dfd9d0. Cooler and greyer than most "parchment" defaults.mix-blend-mode: multiply) is far better than procedural noise. Do NOT generate per-pixel random noise via canvas — this reads as TV static, not paper. Real paper has low-frequency tonal variation with sparse directional fibers, not high-frequency uncorrelated randomness. If you cannot make the grain look convincingly physical, omit it entirely — a clean flat paper tone is always better than bad fake texture.The paper is the most important element. If the paper feels digital, nothing else matters. An honest flat tone with gentle mottling is always preferable to a dishonest texture.
Text color is not #000000. It is ink — a warm, deep brown-black (#151210 to #1c1917). On heavy text (titles, section numbers, drop caps), apply a very subtle text-shadow to simulate slight ink spread/bleed: 0 0 0.5px rgba(21,18,16,0.3). This tiny imperfection makes type feel printed rather than rendered.
The body text is in a proper book serif — warm, readable, with the cadence of scholarly writing. This is non-negotiable. Manuscript does not use monospace for body text. Monospace is reserved strictly for code.
Recommended: Cormorant Garamond (Google Fonts) — a display Garamond with sharp contrast and elegant hairlines that works beautifully at body sizes too.
1.5em (the book convention)Section titles and the main title are set in uppercase serif with extreme letter-spacing (0.2em–0.3em). Each letter breathes. This signals formality and gravitas — the typographic equivalent of a title page in a printed volume.
Subtitles are lowercase italic, also letterspaced (0.08em–0.12em), functioning as thesis statements: "being a treatise on the divine mathematics of illumination".
Full-width horizontal bands of dense geometric pattern, drawn in ink on a dark ground. These are the woodblock borders of the treatise — they separate major sections and announce transitions.
Because in Manuscript the code IS the art, friezes should be generated from signed distance functions (SDFs). Mathematical functions evaluate the distance from each pixel to geometric shapes; the boundaries between inside and outside become the paper-colored channels carved into the dark ink mass. The ornament emerges from mathematics, not from hand-placed vertices.
Fixed for every Manuscript design (part of the language grammar):
createPatternVaries per design (the creative decision for each project):
The goal: each Manuscript design should have friezes that feel like they belong to that specific document — as if a scholar-printer carved woodblocks specifically for this treatise's subject. The SDF approach makes this natural: change the functions, change the ornament.
A signed distance function returns the shortest distance from a point to the boundary of a shape (negative inside, positive outside). By evaluating SDFs per-pixel and drawing paper-colored channels where |sdf| is small, you produce intricate geometric patterns that are:
min() (union) and max() (intersection)These are the building blocks. Mix and compose them to create the motif for each design:
sdCircle(p, r) — circlesdBox(p, b) — axis-aligned rectanglesdSegment(p, a, b) — line segmentmin(d1, d2) — union (combine shapes)max(d1, d2) — intersection (overlap of shapes)-sdf — inversion (inside becomes outside)fmod(p, cell) — tiling repetitionmat2(cos, sin, -sin, cos) * p — rotationFrom these primitives, you can derive any geometric motif:
| Construction | Formula | Use case |
|---|---|---|
| 8-pointed star | min(sdBox(p,s), sdBox(rot45(p),s)) | Islamic geometric tiling |
| Regular octagon | max(sdBox(p,s), sdBox(rot45(p),s)) | Concentric rings, frames |
| N-pointed star | min(sdBox(p,s), sdBox(rotN(p),s)) for various N | Varied star lattices |
| Rose curve | length(p) - r*cos(n*atan2(y,x)) | Floral/petal motifs |
| Diamond/rhombus | abs(x) + abs(y) - r (L1 norm) | Corner ornaments, chain links |
| Wave ribbon | abs(y - A*sin(ωx)) | Guilloche, interlace patterns |
| Gear/cog | sdCircle - amplitude*cos(n*angle) | Mechanical/technical subjects |
| Trefoil/quatrefoil | sdCircle unions at rotated offsets | Botanical, Gothic motifs |
ctx.createPattern(tile, 'repeat')This is efficient — the SDF evaluation happens once per tile, and the browser's native pattern compositor handles the tiling.
Each pixel starts as dark ink. Paper-colored channels are drawn where |sdf| < halfWidth, using smoothstep for anti-aliasing. Layers are composited with alpha blending at varying opacities to create depth:
// For each SDF layer:
distance = abs(sdf) - halfWidth
opacity = smoothstep(0.5, -0.5, distance) * layerOpacity
color = lerp(currentColor, PAPER, opacity)
Heavier layers (primary outline) use higher opacity (~0.7) and wider channels (~1.0px halfWidth). Detail layers use lower opacity (~0.2–0.3) and thinner channels. This creates the visual hierarchy of a woodblock print: bold primary carving with fine secondary detail.
Every frieze has structural hierarchy beyond the motif:
This makes each frieze feel like a designed border strip, not a pattern in a rectangle.
The burnt umber accent (#6b260b) appears as small filled dots at pattern intersections and crossing nodes — never as the dominant color. This evokes the costly second pass of ink in a hand-printed text.
The first letter of each major section sits inside a square frame with ornamental corner decoration — like an illuminated manuscript initial rendered as a woodblock print.
The drop cap is the signature move. It says: a human composed this page.
Small italic text in the right margin, providing scholarly commentary, cross-references, citations, or wry asides. This is the most characterful element of the language.
#767066)Margin notes do several things at once: they add information density without cluttering the main text, they create the feeling of an annotated document, and they allow a secondary voice (the scholar's personal observations) to coexist with the primary text.
On mobile/narrow screens, margin notes can be hidden (the main text should be self-sufficient) or folded inline as parentheticals.
The page uses a two-column grid: a main text column (~38rem) and a margin column (~11rem) on the right, with a gap (~3rem) between them. This is the defining layout of a scholarly printed page.
┌─────────────────────────────────────────┐
│ [text column, ~65%] │ gap │ [margin] │
│ Body prose flows │ │ notes, │
│ here in serif at │ │ citations│
│ comfortable width │ │ asides │
└─────────────────────────────────────────┘
Sections are numbered with the § symbol (§1, §2.1, §3) in a large serif, positioned before or above the section title. This is the folio convention — it makes the document feel structured and navigable, like a real text with a table of contents.
When code appears, it sits below a thin horizontal rule, with line numbers on the left, in monospace at a smaller size than body text. It is not a "code block" in a README — it is a mathematical demonstration, like the geometric construction that proves a theorem.
Diagrams and illustrations are labeled with italic figure captions: fig. 1 — Diagrammatic projection of the known waters. The italic "fig." prefix is the academic convention. Figures are centered in the text column.
Thin (1px), in a muted color (var(--mid-light)), at reduced opacity. They separate thoughts and delineate code from prose. They are the paragraph marks of a printed page — structural, not decorative.
A colophon at the end of the document, featuring a printer's mark — a small geometric device that serves as the maker's signature. The default Manuscript mark is a four-petal glyph: two elongated horizontal petals, two shorter vertical petals, with dots at the tips. But like the frieze motif, the printer's mark can be adapted per design — derived from the same SDF family as the friezes, or from the subject matter of the document. It is the stamp that says: this was composed with intention.
| Token | Value | Purpose |
|-------|-------|---------|
| --paper | #ddd8cf | Background — handmade linen stock |
| --paper-light | #e4dfd7 | Lighter paper variant |
| --paper-dark | #ccc6bb | Darker paper variant |
| --ink | #151210 | Primary text — warm brown-black |
| --ink-soft | #262220 | Secondary text, code |
| --mid | #767066 | Margin notes, labels, comments |
| --mid-light | #a9a198 | Rules, separators, line numbers |
| --accent | #6b260b | Burnt umber — friezes, marks, sparing emphasis |
The palette is almost monochromatic. The accent appears only in the friezes and the printer's mark — a single color that says this was hand-printed with a second pass of ink.
The writing voice in Manuscript is that of a scholar who is precise and wondering in equal measure. Not dry, not cold — but never casual. Sentences have the structure of formal prose. The author uses "it is observed that" and "the mechanism remains unknown" but also, in the margins, writes "the author declines to offer a rational explanation."
Think: the way Robert Hooke described cells in Micrographia. The way Darwin described barnacles. Clinical attention to detail, married to quiet awe at what's being described.
Use Manuscript when building:
Before delivering a Manuscript design, verify:
development
Present visual options for architecture, UI, and code decisions with high-fidelity side-by-side previews. For comparing approaches visually — code diffs, diagrams, UI mockups, images — not for gathering structured input (use interview for that). Supports previewBlocks (code, mermaid, image, html), previewHtml, generate-more loops, and plan/PRD-driven flows.
development
Generate beautiful, self-contained HTML pages that visually explain systems, code changes, plans, and data. Use when the user asks for a diagram, architecture overview, diff review, plan review, project recap, comparison table, or any visual explanation of technical concepts. Also use proactively when you are about to render a complex ASCII table (4+ rows or 3+ columns) — present it as a styled HTML page instead.
development
Use when the task asks for a visually strong landing page, website, app, prototype, demo, or game UI. This skill enforces restrained composition, image-led hierarchy, cohesive content structure, and tasteful motion while avoiding generic cards, weak branding, and UI clutter.
devops
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.