Boris — metadata for the next agent
This page is the breadcrumb the title promised. If you are a future agent dropped into this directory, read this first. It is also the "corner section": a condensed version lives in the corner card on every page of this site.
Identity
| Key | Value |
|---|---|
| Name | Boris |
| Version | boris/0.8.1 (./boris -V) |
| Binary | ./boris in this directory (repo root) |
| Size | 18,159,784 bytes (18 MB) |
| Kind | Mach-O 64-bit executable, arm64 |
| SHA-256 | e72b3265172e00595410153acd763fe1319e96b0f460119ef3e096db3843ce40 |
| Upstream | github.com/drawmeanelephant/boris (per its own starter docs) |
What Boris is
A static site compiler with an unusual amount of opinions:
- Input. Markdown pages (default) with YAML frontmatter
(
title,parent,tags,relations, optionalid). Also bounded Cooklang and Textile input modes. - Page graph.
index.mdis the trunk; children declareparent: indexand become satellites. Wiki links like[[boris/metadata]]are real graph edges — a link to a missing page fails the build instead of dangling. - Themes. Closed layout slots:
{{title}},{{head}},{{nav}},{{breadcrumb}},{{toc}},{{content}},{{footer}},{{asset-url path}}. Default theme:themes/boris/. - Publication profiles.
boris.jsondeclares targets (name,output,public,theme).boris planprints the normalized plan. - Atmosphere. The
standard-sitesubcommand family publishes and verifies the site as AT Protocol records (secp256k1 signing, DID sessions,.well-known/atproto-did, app-password or browser OAuth login,smokeverification against an indexer). Comes withstandard-site.json(replace the fake DID/URL before publishing). - Exports. Deterministic
llms.txt, RAG pack (graph + entity catalog), IR mode (--out, default.boris/), multi-target HTML builds,watchmode,--no-ragfor plain JSON IR. - Strictness. Content validation fails builds; layout selection
falls back with warnings; verification surfaces are computed against
the plan and fail closed on drift (
--plan).
CLI surface
boris --input content --html-dir dist --theme themes/boris build the site
boris plan --profile boris.json inspect the plan
boris watch ... rebuild on change
boris init [DIR] starter site
boris -V boris/0.8.1
boris standard-site plan|records|verify|login|sessions|logout|publish|smoke
boris standard-site login --app-password --handle HANDLE (careful: broad write)
How this site was built
boris init . # starter content/theme/profile
(edit content/*.md, themes/boris/*)
boris --input content --html-dir dist --theme themes/boris
scripts/export-search-data.sh # embed the search index (post-build)
The corner card on each page is part of the theme:
themes/boris/layouts/main.html + themes/boris/assets/css/boris.css.
Search runs client-side: the index boris writes to
dist/_boris/search/search-index.json is embedded into
dist/assets/js/search-data.js so it works even from file://.
Where things live (map for the next agent)
boris the compiler (this binary)
content/index.md trunk — about opencode + deepseek flash 07/31
content/opencode/features.md satellite — tool tour
content/model/deepseek-flash-0731.md satellite — the model
content/companies/deepseek/ satellites — history, founders, origin
content/boris/metadata.md satellite — this page
content/boris/prompts.md satellite — the three prompts, verbatim
content/boris/limericks.md satellite — two limericks about otters
themes/boris/ starter theme (layouts + css + js)
boris.json publication profile
scripts/export-search-data.sh embeds the search index into the theme
dist/ compiled output (git-ignorable)
Tips for the next agent
- The starter site's own docs pages (
content/guides/*fromboris init) explain frontmatter and the graph contract. - Frontmatter fields:
title,parent(entity id, e.g.index),tags,relations(e.g.[relates_to=guides/getting-started]). - Wiki link targets resolve by path or id; missing targets fail the build on purpose.
- The
standard-sitefamily needsstandard-site.jsonwith a real DID/URL beforepublish;planworks fully offline. - Start here for the model story: deepseek flash 07/31.
- The three prompts that built this site, verbatim: The three prompts. The otter situation: Two limericks about otters.