Blog
Thoughts on software, systems, and ideas.
- Mapping the Domain of a Personal AI Agent In the wake of OpenClaw and the proliferation of personal agent implementations, I used formal ontology engineering to map the shared architecture: 115 classes across 9 modules.Feb 23, 2026
- Recursive Language Models: Teaching LLMs to Write Code That Calls LLMs How a REPL loop, a sandbox, and 588 LLM calls turned 19 MB of articles into 1,893 structured claims — built with Effect TypeScript and Bun.Feb 11, 2026
- Agent-Native CLI: Why your next tool should talk to machines first Applying the principles of agent-native architecture to CLI design—discovery, structured errors, and the 'capabilities' pattern in Skygent.Feb 7, 2026
- Analyzing Academic Bluesky with Skygent What 48,000 paper-sharing posts reveal about how science spreads on Bluesky — the 6 AM bot spike, arXiv's dominance, and which papers went viralFeb 5, 2026
- Building a Bluesky Feed Generator with Effect and Cloudflare Recreating Paper Skygest's academic feed with a lightweight Cloudflare Workers stack—Durable Objects, Queues, D1, and Effect TypeScript, all on the free tierFeb 2, 2026
- Hello World First post on the new site built with Astro and EffectJan 12, 2026