Project notes
kylebegeman/dossier
Dossier
One JSON model in, one self-contained HTML page out. Read, decide, and send it back.
Overview
Agents can produce a lot of text. Dossier gives that work a shape people can read and act on: a clear masthead, numbered sections, detail behind a fold, and decisions by number. I built it as one Go binary that turns a JSON model into a self-contained HTML page, then brings the reader’s decisions back into the model.
A short loop, with a human decision.
- 01
Write the model
An agent fills a typed JSON model using the kind’s sections and facets.
- 02
Read and decide
A person reads the page, decides by number, and copies one reply.
- 03
Apply the reply
The agent writes those decisions back into the model and continues.
Decisions
Make the next step unambiguous.
Pick an idea, ask for a finding to be fixed, or waive a release gate. The decision rail follows along, marks what is settled, and points to the next open item. Every choice contributes to one reply the agent can apply.
Try the review example

The local studio
Work on the page, right where you read it.
Edit text in place, shape and reorder items, or open the validating JSON editor. Drafts stay separate until saved. Choices and notes stay in step across tabs, and a pasted reply can be written back into the model. The editing tools stay out of the built document.
Read about the studio

Highlights
- 01
Six kinds of work
Brainstorm, plan, review, release, incident, and brief have their own vocabulary and decisions. Define a custom kind in one JSON file.
- 02
One file you can send
Built pages make no external requests. Share an attachment, a CI artifact, or a static page; search, dark mode, print, and the embedded model come with it.
- 03
Decisions an agent can use
Numbered choices, verdicts, and notes become one reply line, with the same reply explained in plain words. Apply it back to the model with the CLI.
- 04
More than prose
Use tables, highlighted code, charts, timelines, figures, and DOT or Mermaid diagrams rendered as SVG at build time. Export Markdown for a pull request or wiki.
Made for both sides of the handoff
Documentation & getting started
brew install kylebegeman/tap/dossier
dossier init review --title "Tide-aware cancellations"
dossier build tide-aware-cancellations.dossier.json
dossier decisions apply tide-aware-cancellations.dossier.json --reply "rework, fix 1; later 2."
Repository snapshot
- 179Commits
- Sep 2026Last updated
- MITLicense
- Jun 2026Started
- Go 81.2%
- JavaScript 7.4%
- CSS 5.0%
- TypeScript 3.2%
- templ 3.2%
Recent commits

