I build slow software — agents, the tools they need, and the harnesses that keep them honest. This is where the finished work lives, and where the half-finished work gets honest about it.
Most of it is published as a public catalog at agents.patientvibes.io — skills, tools, and harnesses, READMEs pulled live from each source repo. Soon: 3D-printed parts and an ESP32 build my son keeps asking me to finish.
Orchestrator for the Kindle Scribe pipeline. Subprocess-calls each agent-tool-* CLI in sequence per book listed in books.json. Source PDF -> Marker OCR -> figure scan -> strip pipeline (back-matter, marker-artifacts, clean-markdown) -> LLM proofread -> book-builder PDF + Obsidian export.
Renders Marker-OCR'd markdown into a typeset Kindle Scribe PDF (with annotation margins) plus an Obsidian-compatible markdown export. Handles chapters, images, blockquotes, figures.
Scans source PDFs for figure / table / diagram references and produces a manifest of which were extracted and which are missing. Used by the kindle-pipeline harness as a pre-step before LLM proofreading.
LLM-powered OCR proofreading agent. Deterministic pre-pass surfaces likely-issue regions; langchain-openai (via OpenRouter) verifies and proposes fixes; a separate verifier subagent reviews each fix before it's applied. Persistent memory of known false positives accumulates across runs in ~/.local/state/agent-tool-llm-proofreader/memory.json (Linux/macOS) or %LOCALAPPDATA%\agent-tool-llm-proofreader\memory.json (Windows).
Three deterministic CLIs for cleaning Marker OCR output before LLM proofreading. They run as a strip pipeline: strip-marker-artifacts → strip-back-matter → clean-markdown.
Reportlab-based PDF builder library. Title pages, typography, margins, figure placeholders. Used as a library by agent-tool-book-builder (and as a smoke-test CLI for direct invocation).
CLI that reviews the current git branch's diff against a base ref using a single Pydantic AI call. Emits a typed findings.json plus a human-readable review-output.md under .
Prose quality analyzer. Computes sentence-length stats, lexical density, and other readable signals over markdown / plain text.
Fetches web essays / articles as clean markdown with YAML frontmatter (title, author, source URL, fetch date). Used by the kindle-pipeline harness as a source ingestion stage.
Chris Moore's personal Claude Code plugin marketplace.
My son got tired of asking for the lights. Now he swipes a hotel keycard, the bedroom lights come up, and the speaker says hi back. ESP32, an RFID reader, and far too much enthusiasm.
A collection-in-progress of printable parts I've designed for myself — cable combs, monitor risers, mounts for the things that don't ship with mounts. STL + notes on what failed before it worked.
"Building slowly is the only way I know how to build things I keep using."
Right now I'm cleaning up the harness write-up, running triage in production against my own inbox, and trying to teach the ESP32 to recognize three different cards before it pretends to be a butler.