Engineering
Building with agents, tools, and systems. Technical depth.
What is new in ChatGPT plugin apps, why a specialist app might beat a generated interface, and what Jupyter and VS Code teach us about building one.
How LLM prompt caching works, why context edits cause misses, and how Pi, Oh My Pi, Codex, and OpenCode manage changes—with Sonnet 5.5 measurements.
Suspected referrer spam gave an untrusted site exposure in my public analytics. Matomo rules and reviewed names now limit that abuse.
Cloudflare Workers bot detection without JavaScript: headers, network evidence, and an unresolved gap of 95 browser observations versus 14 script page loads.
What happened when ChatGPT, Claude, Gemini, Grok, Perplexity, Copilot, Mistral, DuckDuckGo, Claude Code and Codex were asked to fetch a page on a live Cloudflare Worker: the User-Agent, Accept and Fetch Metadata headers received, vendor IP-list matches, one verified Web Bot Auth signature, and which assistants sent no request at all.
A code-backed guide to first-party blog analytics with Cloudflare Workers and D1: edge events, privacy, migrations, and public stats.
Does llms.txt improve AI search? This live audit examines edge data, agent tools, Markdown, and GEO evidence—then shows what to build and measure.
The ghx AI-agent reconnaissance sidecar passed a 90-episode eval at 25× compression. My usage logs show a three-day burst, then silence.
AgentPort lets applications attach a user-owned AI agent with scoped grants, private transport, and no new model subscription per app.
OpenWiki validates the main idea behind backlog-mcp. It also forces me to face three problems I have not solved: where agent memory lives, how its files read, and what to call the product.
The story of how backlog-mcp grew from a task manager into local-first context and memory infrastructure for AI agents — and produced the UI framework powering this blog.
I am building ghx, a code reconnaissance CLI for AI agents, and now an agent sidecar framework around it. The hard question is whether any of it actually improves signal per token compared to plain old gh.
SA_ONSTACK is process-wide. sigaltstack is per-thread. When Go, Bun, .NET, and the JVM share a process, signals land on the wrong stack. One kernel field fixes the class.
Codemap, Aider, Gitingest, Repomix, and ghx solve different parts of agent code context: mapping, searching, packing, and deciding what to read before cloning.
On Kat Zhang's obsidian note network, the GitHub ecosystem around it, and what graph neuroscience says about the shape of minds
A CLI tool that looks simple took 23 agent sessions, 2,500+ turns, and three rewrites. This is what building with AI actually looks like.
Software engineering isn't going away — writing code without agents is. The role is expanding, not shrinking. Here's what that actually means.
Dispatch
GK-001
A note when there is signal.
Engineering records, failed experiments, and the life around the work.