Posts
All the articles I've posted.
My agents' git freshness hook did nothing for at least 55 days after I moved them to Linux
A hook that fetches before my coding agents read git state returned 0 on every call for at least 55 days, because it looked for ~/Work on a Linux server that keeps repos in ~/work. On 9 November 2026, 29 of 47 local default branches were behind origin; after one run of the fixed hook, 19 were.
Claude Code prompt cache: 1 hour or 5 minutes? A replay of 49 days of my transcripts
A replay of 49 days of my Claude Code transcripts at API prices: a 5-minute cache on the main thread raises its input-side cost 48.3%, a 1-hour cache on subagents cuts theirs 4.3%. Resuming idle 300k-context workers cost more; after a hook refused it, that share fell from 3.5% to 0.38% of subagent spend.
An AI agent ran my Cloudflare account for five weeks: 184 actions, 23 approved by me
From 27 September to 1 November 2026 a coding agent ran 184 logged actions on my Cloudflare account; 23 of them carried one of 13 distinct approval quotes. The guardrails, the audit log, and the token exposure that forced a roll.
How a dotfiles auto-commit deleted three of my coding agents' rules, and the guard that blocks it now
On 23 September 2026 a 15-minute auto-commit pushed a stale copy of my agents' rule folder: 3 of 28 rules deleted, 12 rolled back. A guard now runs before every auto-commit; a replay of the failure prints BLOCKED and exits 1.
Does a Simplified Technical English prompt make LLM output shorter? Five runs each
Asking Claude Sonnet to write 80% of the way to ASD-STE100 cut words per sentence from 12.0 to 8.5 over five runs each. It did not shorten the answers: 328 prose words against 312. One earlier run had shown 20% fewer.
How to check that PHP is really patched for PHP2Shell when the version number does not change
A backported PHP2Shell fix keeps the old PHP version, so php -v proves nothing. Grep the binary for a string only the fix adds, then check that no running PHP process still uses the old, deleted binary.
How to make Claude Code follow a rule: a PreToolUse hook that refused git commit -a 40 times
A 30-line PreToolUse hook refuses git commit -a and names the safe command. From 15 to 26 October 2026 agents tried it 40 times; the hook refused all 40, and 36 times the agent's next command staged named files.
How to move a static site from Netlify to Cloudflare Workers without breaking old URLs
Serve a static site as Workers static assets, keep every old URL with a _redirects file and a test that fails when a redirect goes missing, then switch the domain and check it with curl.
File Permissions in Linux/Unix: How to translate them?
In this tutorial, I'll show you how I learn to translate file permissions in Linux.