Things I've built to solve real problems.
Every project here started with a constraint I couldn't work around — significant hearing loss, unverifiable code changes, unchecked daily drift. The pattern is the same: measure the problem, build the tool, prove it works.

vocal-tools
High-precision vocal analysis pipeline built to compensate for partial hearing loss. Measures pitch accuracy, formant structure, tone clarity, and 70+ metrics at 44.1 kHz using Praat and librosa.

ReignIn
macOS menubar app that enforces daily accountability across 7 repositories. Locks a daily plan, generates AI-scoped next actions, and records every decision in an append-only JSONL audit trail with SHA-256 input hashing.

Shipwright
Local-first CLI turning tickets into verified, traceable changesets. Every run is sandboxed in a git worktree, gated by deterministic PreToolUse hooks, scanned for secrets, and bundled with SHA256 integrity. 32K LOC across 73 modules with 88 test files.

audit-stack
Platform orchestration layer wiring Shipwright, PacketPilot, and n8n into automated audit pipelines with a Homepage dashboard, HITL review queue, full observability stack, and 248-page MkDocs documentation site.

PacketPilot
Evidence mapping and human-in-the-loop validation CLI for audit workflows. Maps evidence artifacts to compliance requirements, validates engagement completeness, and surfaces gaps before review. 18.6K LOC with 31 test files.

FlowForge
CLI testing and repair framework for n8n workflows. Validates workflow definitions, diagnoses configuration issues, and provides automated repair suggestions. Includes Docker support and MkDocs documentation.

OS-HUB
Local process lifecycle management dashboard for developer tools. FastAPI backend with subprocess orchestration, health monitoring with circuit breakers, and automatic restart policies. React frontend with real-time WebSocket updates and tool discovery.

ConvergeRead
iPad reading accessibility app for convergence insufficiency. Five adjustable layout parameters adapt progressively toward normal reading through a nudge algorithm with regression detection.

MJX PDF Graph Extractor
Entity extraction and correlation engine for PDF reports. Parses people, phones, emails, and addresses into a 10-table DuckDB schema and surfaces cross-report connections via SQL correlation and graph centrality analysis.