HomeWork / Dossier Selected work

Project notes

kylebegeman/dossier

Dossier

One JSON model in, one self-contained HTML page out. Read, decide, and send it back.

GoMITv0.7.3Pre-1.0
Dossier brainstorm with a clear masthead, numbered sections, contents rail, and a decisions panel.Dossier brainstorm with a clear masthead, numbered sections, contents rail, and a decisions panel.
A real generated page, from the Tidewright example collection.

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.

  1. 01

    Write the model

    An agent fills a typed JSON model using the kind’s sections and facets.

  2. 02

    Read and decide

    A person reads the page, decides by number, and copies one reply.

  3. 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
Dossier review findings with Fix, Later, and Skip controls and a rail tracking the decisions.Dossier review findings with Fix, Later, and Skip controls and a rail tracking the decisions.
A review uses fix, later, or skip. A release uses waive or rerun. Each kind speaks its own language.

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
Dossier studio editing a review facet in place, with draft controls and a decision panel.Dossier studio editing a review facet in place, with draft controls and a decision panel.
Run dossier serve to edit locally. Share the built HTML when it is ready.

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

CLI, MCP, and skill
One command catalog keeps the binary, MCP server, and generated agent skill in agreement.
Local studio
Edit in place, reorder items, validate JSON, preview accents, and save decisions beside the model in SQLite.
Standalone documents
Searchable, responsive pages with keyboard verdicts, printable decisions, and no runtime service.
React integration
Render on the server and show a sandboxed frame that resizes and reports the reader’s decisions.

Documentation & getting started

Install and build
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%

Dossier is open source.

Browse the code and docs, or get in touch if you need a platform or developer tool built.