Claude Code plans against resource version 41, but a state-bound write gate blocks execution after the resource changes to version 42

Claude Code approved one state. Its MCP write changed another

A reviewer approved a Claude Code change against resource version 41. By execution time, version 42 existed, but the MCP write replaced it anyway.

September 12, 2026 · 5 min · 1011 words · Thomas De Vos
Read Claude Code approved one state. Its MCP write changed another
An allowed Claude Code CI retry passes through build and release systems before a fresh capability gate blocks production deployment

Claude Code had no deploy permission. Its MCP tool deployed anyway

A permitted CI retry reached production through an artifact event and a more powerful release service. Tool permissions missed the effect that mattered.

September 11, 2026 · 6 min · 1077 words · Thomas De Vos
Read Claude Code had no deploy permission. Its MCP tool deployed anyway
A Claude Code transcript passes through five independent evidence checks for identity, authority, durable effect, observation, and cleanup before a reviewer accepts the run

A Claude Code audit trail needs proof beyond the transcript

A Claude Code transcript can describe an MCP action without proving who was authorized, what committed, whether an independent read saw it, or what rollback left behind.

September 9, 2026 · 6 min · 1136 words · Thomas De Vos
Read A Claude Code audit trail needs proof beyond the transcript
A Claude Code MCP write waits in a retry queue beyond its approval expiry, keeps the same operation ID, and is blocked by an execution-time authority check

Claude Code queued an approved MCP write. It ran after permission expired

A stable operation ID can stop duplicate MCP writes while still allowing an action after its approval expires. Recheck authority where the effect occurs.

September 8, 2026 · 6 min · 1067 words · Thomas De Vos
Read Claude Code queued an approved MCP write. It ran after permission expired
A new Claude Code run is blocked because its pooled MCP session still carries the previous tenant context

Claude Code changed tenants. The MCP session did not.

A new Claude Code run selected the right tenant, but its pooled MCP session kept the previous tenant context. Bind every session to the authority it carries.

September 3, 2026 · 4 min · 810 words · Thomas De Vos
Read Claude Code changed tenants. The MCP session did not.
A Claude Code request for staging is blocked when the MCP gateway reveals that an adapter default would execute it against production

Claude Code asked for staging. The MCP adapter defaulted to production

A reviewer approved a staging MCP request, but the adapter filled an omitted environment with production. Authorize the normalized payload that will actually execute.

September 2, 2026 · 4 min · 843 words · Thomas De Vos
Read Claude Code asked for staging. The MCP adapter defaulted to production
A revoked Claude Code permission is blocked when the MCP gateway compares a cached allow decision with the current policy version and revocation epoch

Claude Code lost permission. The MCP cache still said allow

Revoking Claude Code access is useless if an MCP gateway keeps serving an old allow decision. Bind cached authorization to policy version, resource state, and a short expiry.

September 1, 2026 · 5 min · 858 words · Thomas De Vos
Read Claude Code lost permission. The MCP cache still said allow
An approved Claude Code MCP call is stopped when a redirect changes the destination, then allowed only after scheme, host, port, TLS identity, and resolved network range match the transport binding

Claude Code approved one MCP server. The request went somewhere else.

An MCP approval can bind to a tool name while DNS, redirects, proxies, and service discovery send the request elsewhere. Pin the transport identity at dispatch time.

August 31, 2026 · 5 min · 918 words · Thomas De Vos
Read Claude Code approved one MCP server. The request went somewhere else.
A Claude Code call to an MCP method labelled read only fans out into a paid warehouse query, stored export, webhook, and audit-state change before an effect contract gates the call

Claude Code called a read-only MCP tool 186 times. The bill said otherwise.

An MCP method labelled read only can still start paid queries, create exports, send webhooks, and change audit state. Control the effects, not the method name.

August 30, 2026 · 5 min · 887 words · Thomas De Vos
Read Claude Code called a read-only MCP tool 186 times. The bill said otherwise.
Claude Code receives the first 100 of 8,742 records, follows every cursor against one snapshot, and produces a collection completeness receipt

Claude Code checked the first page and called the job done

An MCP tool returned 100 clean records, so Claude Code declared a migration complete. The other 8,642 records were still waiting behind a cursor.

August 29, 2026 · 5 min · 889 words · Thomas De Vos
Read Claude Code checked the first page and called the job done