~/blog
Blog
Hands-on articles on Claude Code, agentic coding and the security of MCP servers.
Your API client just configured your coding agent
Postman desktop installs plugins into Claude Code and Codex without asking. I reproduced it on Linux with no account and no clicks, read what reached the model, and found the fallback that lets the app approve its own Codex hook.
read- 803Ledgerly repos created in 2026, up from 10
Why AI gives everyone the same name: 505 runs across 19 models
Ask a model to name your project and you get the name it gives everyone with a similar brief. I gave 19 models ten naming briefs, from a game to a SaaS to a fantasy heroine, 505 runs in all, and counted how often they agree and how many of their favourites are already taken.
- 0/7write attempts that got past the role
Read-only database access for Claude: the role, the flag and Azure without passwords
Every SQL MCP server promises a read-only mode, and fourteen of them turned out to have a way around it. I ran the bypasses against a read-only role on Postgres and SQL Server, then looked at what passwordless Azure sign-in does to the same setup.
How to measure what AI delivers for your team (hint: not tokens)
Token leaderboards at Meta and Amazon were gone within weeks, and a small effort test shows why: spend and results move independently. Three measures that asking the model more often cannot improve, translated to a development team.
- 0.00%mutation score on vitest 5
Stryker and Vitest 5: why every mutant suddenly survives
After upgrading to Vitest 5, StrykerJS reported every covered mutant as survived, with a green dry run and no error. How to tell a broken runner from a weak test suite in the report itself, what 10.1 fixed, and why the version to install is 10.1.1.
- 14checkouts with dependency instructions
Your dependencies ship a CLAUDE.md, and Claude Code reads it
I audited every instruction file that could steer Claude Code across 40 repositories on my machine. In 14 of them, the files nobody would think to check were written by package maintainers, sitting in node_modules and vendor, and Claude Code loads them the moment it reads a file next to them.
- 85%serving gross margin, h1 2026
The price cut was never a discount
OpenAI and Anthropic cut their prices by up to 80% in four months, and the obvious read is a land grab paid for with investor money. Anthropic's S-1 says otherwise: serving was already running at an 85% margin before the cuts, and a lower price per task is how the bill grows.
Claude Code changed files without asking: what git diff can't show you
Since auto mode became the default, an agent that asks before it edits is the exception by design. The final diff shows where the session ended up. It cannot show which changes were put to you, which ran in a subagent, or which work was done and undone before you looked.
The patch is the exploit now
PHP pre-announced a critical security release, and a proof of concept claiming remote code execution was online before the fix. In the same week Firefox started hiding its security tests and curl started publishing its minor bugs. Both are answers to the same thing: a patch now explains its own bug to anyone with a model.
Code quality guards for AI code: the whole setup, from hook to CI
The full quality setup for a project where an agent writes code: what belongs in Claude Code hooks, pre-commit, pre-push, CI and the weekly mutation run. And the one property every guard needs, which is that it can fail, with the evidence from three of my own repositories.