Projects

Open-source work I've published on GitHub.

June 2026
Continuous, cross-engine reconciliation of derived data against its source of truth, built from the "trust, but verify" argument in the last chapter of Designing Data-Intensive Applications. It checks that a warehouse mirror, search index or read replica still matches the source, tolerates replication lag so it doesn't cry wolf, and reads only the rows that might be wrong (about 0.15% of a ten-million-row table). Postgres, Snowflake and DuckDB connectors, benchmarked at scale, green CI. v0.1.0.
Python Postgres + DuckDB Data reconciliation
June 2026
A Claude Code skill that teaches agents to use the Open Knowledge Format (OKF), an open spec from Google for representing knowledge as portable markdown bundles with YAML frontmatter. When loaded, the agent defaults to producing structured, typed, cross-linked knowledge instead of random markdown. One skill file, no dependencies. v0.1.0.
Skill + Plugin Claude Code OKF
June 2026
The first implementation of Peritext-semantics rich text (inline marks plus flat paragraph blocks) on the Eg-walker collaborative-editing algorithm, built to refute a published claim that it couldn't be done. The trick is a decomposition: replay stays pure and order-independent (it only places zero-width anchor ops), while every order-dependent formatting decision moves into a separate pure resolution function that runs at read time. Evidence-first: a differential fuzzer against an independent CRDT oracle (100k+ random histories, zero unclassified divergences) caught a real convergence bug twenty hand-written tests missed. Reference implementation in TypeScript, MIT.
TypeScript CRDT Differential fuzzing
May 2026
A Claude Code skill that audits its own context window. It parses your session transcripts to find which skills, subagents, and MCP servers you actually use versus which just sit loaded-but-unused on every turn, then reversibly disables the dead weight, moved aside, never deleted, with an undo command for each. A pure-stdlib analyzer emits a compact digest so the audit never bloats the context it's measuring. Ships as a plugin with its own marketplace. v0.1.2.
Python Skill + Plugin Claude Code
May 2026
Agent-first CLI for the Canva Connect API. Stable JSON/NDJSON output, structured errors with literal fix commands, OAuth 2.0 PKCE login with embedded credentials, a native MCP server (canva mcp serve), and a local SQLite cache with FTS5 search and a read-only SQL escape hatch. canva sync mirrors your account; the agent can then list, create, export, resize, search, upload assets, and manage comments, all without ever reading --help. v2.0.
Go CLI + MCP Canva API
May 2026
Local-first agent spending firewall and observability tool. Captures, attributes, and gates AI-agent spending across multiple agents and vendors via a transparent loopback proxy plus Python/TypeScript SDKs. Per-app attribution via UDS peer credentials, per-agent kill switch, hold-and-poll approvals, mid-flight 80% cap warnings, Slack/email alerts, Stripe webhook reconciliation, configurable fail-closed mode, and an MCP server that lets the agent itself ask about its remaining budget. v0.0.9 ships M1 plus M2 visibility.
Rust Proxy + SDKs MCP
March 2026
iPhone companion for Mistral's Vibe CLI agent, pair via QR, monitor tool calls, approve permission requests, and get push notifications when the agent is blocked on you. End-to-end encrypted with a blind relay.
TypeScript Expo Mistral
March 2026
Intelligent CLI wrapper for Claude Code, pre-task cost estimation, live status bar, and budget protection. Helps developers stay aware of API costs while using AI coding assistants.
TypeScript CLI Claude Code