Sanitism

Built for autists to communicate their work, sanely.

Autistic on the inside. Sanitistic on the outside.

Inside · manifest.yaml

variables:
  num_samples:
    value: 12453
    format: ","
    source: data/results.csv
    command: python scripts/fit.py
    updated: 2026-04-29
# every number lives here, once

Outside · the paper, the deck, the blog

After quality control we analyzed 12,453 samples across four cohorts.

12,453 ← data/results.csv ← python scripts/fit.py

The packages

document-sanity

Papers, proposals, reports

One markdown source becomes a LaTeX PDF, a Word document and an interactive HTML viewer where every number opens its provenance.

presentation-sanity

Talks and blog posts

One manifest feeds Slidev decks, VitePress posts and PowerPoint with playable manim scenes. A new version of a talk is a folder.

The sanitistic method

  1. One manifest. Everything else is generated.Configuration lives in one file; outputs are build products you never hand-edit.
  2. Every number has a source.Values carry the file and command that produced them, and the reader can click through.
  3. Versions are folders. Obviously.Not branches, not copies of the repo, not final_v3_REAL.docx.
  4. One repo per obsession.Papers, proposals and talks about the same project share their figures and numbers.
  5. Same input, same output.Builds are deterministic, so a rebuild never surprises your co-authors.

Start one

Today: open a template and click Use this template — for documents or for presentations.

Soon, without git: uvx sanitism new paper · uvx sanitism new talk