The corpus on this site is produced by an agent pipeline I’m building on top of Claude Code. Every note is drafted by the agent, validated by me before publication, and structured to the same template. This page describes how the pipeline works and what it does and doesn’t do well.

The pipeline

Each topic moves through five stages:

  1. Scoping — I pick a topic from an ontology I maintain (~177 topics across alignment, training, evaluation, interpretability, agents, foundations). The ontology has explicit dependencies so foundational topics are written first.
  2. Research — the agent runs a multi-pass research process against an arxiv-anchored bibliography, building a papers: list and a resources: list in YAML front matter. Every claim in the note is sourced.
  3. Drafting — the agent writes the note against a fixed 15-section template (Definition, Mechanism, Historical lineage, State of the art, Key papers, Key people, Practical applications, Limitations, Open questions, Sources, etc.).
  4. Validation — I read the draft against the source papers, fix factual errors, write the Personal Synthesis section in my own voice, and mark coverage_status: validated once the note is publishable. Notes that fail validation stay in the private vault until they pass.
  5. Publishingpublish.py strips pipeline-internal YAML, converts inline (paper_id: X) references into IEEE numbered citations, drops local-only Zotero links, and copies the cleaned note into this site’s content directory.

What works

What fails, specifically

Why publish this

Tools

  • Source vault: Obsidian
  • Research agent: Claude Code with custom skills
  • Bibliography manager: Zotero (Zotero links are stripped during publishing)
  • Static site generator: Quartz 4
  • Hosting: Cloudflare Pages
  • Citation style: IEEE numbered, in-document anchors