Posts

Weekly notes on building with AI

What I tried this week, what worked, what didn't. One post a week, ~5-minute read each. Sent to the newsletter list every Sunday.

September 11, 2026

deepseek-v4-pro answers with a different model on Monday, and your input cost drops 77% when it does

Two DeepSeek model IDs already return something other than what you asked for. A third joins them at 04:00 UTC on 14 September. The substitution is cheaper than the model it replaces, which means spend alerting cannot see it: input falls from $0.66 to $0.15 per million tokens and the graph reads as a saving. Here are the three strings to grep for, the check to run before Monday, and the two windows each weekday where the same request costs double.

Read post
September 10, 2026

The "use TDD" line in your AGENTS.md scored below writing nothing, across 80 runs per condition

A September 2026 measurement ran 26 instruction lines and 4 testing skills through Codex, 80 runs each, on a Zstd decoder graded by hidden tests. Writing no test instruction at all beat "use test-driven development", nearly every formal-methods tool, and the Rust testing skill from the most-starred skill collection on GitHub. The lines that helped described a check the agent should perform, not a technique it should use. Here is how to find the technique lines in your own repo, what to put in their place, and what the measurement does not license you to conclude.

Read post
September 7, 2026

57 of 65 loaded skills had never run: audit the listing, then pin the install

Claude Code 2.1.261 added /skill-doctor, which lists every loaded skill with a usage count and what its listing costs in context. Run on a working machine it found 65 skills, 57 of which had never been invoked once, carrying about 6,400 tokens of system prompt on every turn. The other half of the problem is provenance: a skill installed into ~/.claude/skills records nothing about where it came from. The skills CLI added commit-SHA pinning on September 6, with two constraints that will silently cost you the pin.

Read post
September 6, 2026

temperature=0 returns a 400 now, and the dial that replaced it is not a budget

Three flagship models shipped between September 1 and 3, and all three migration lists remove the sampling parameters. On Claude, any temperature other than 1.0 is a 400 error on nine named models. Gemini 3.8 Flash tells you to strip temperature, top_p and top_k, and drops candidate_count entirely. GPT-6 Astra tells you to remove temperature, top_p and logprobs. What replaced them is a five-value effort enum that Anthropic describes as a behavioral signal rather than a token budget, and that invalidates your prompt cache when you change it. Here is what breaks in a normal codebase, and what reproducibility looks like without a sampler.

Read post
September 4, 2026

GPT-6 Astra ships with a 403 your retry logic must not retry

OpenAI released GPT-6 Astra on September 3 at $10/$50 per million tokens, with API access for most accounts arriving over the coming days. The migration page removes temperature, top_p and logprobs, drops the none effort level, and moves tool calling to the Responses API. The item that changes how you write an agent loop is misalignment monitoring: a request can come back HTTP 403 with code misalignment_policy_violation, the conversation cannot be resumed, and whether it can be stopped at all depends on which Responses features you use. Here is the coverage table, the error contract, the pricing cliff at 272K tokens, and the greps to run before the model ID reaches you.

Read post
September 3, 2026

Diff your agent CLI, not its changelog: four checks that find what shipped

Claude Code 2.1.258 fixes \"a regression introduced in 2.1.255\". Version 2.1.255 appears in no changelog, no npm release, and no git tag. Codex ships alphas whose entire release note is the word \"Release\", and files a default change under \"Chores\". Antigravity documented /boost a day before any release note mentioned it. Four checks, each one runnable in a terminal today, that recover what a release contains.

Read post
September 2, 2026

Claude Fable 5.1 rejects forced tool use, and one of its rules depends on when your account was created

Anthropic shipped Fable 5.1 on September 1 with the same $10/$50 pricing and a one-line migration: change claude-fable-5 to claude-fable-5-1. Three documented things break on that line. tool_choice type any or tool now returns a 400. Thinking blocks get dropped silently when a router falls back to an older model. And the third check is enforced only for accounts created on or after August 31, 2026, so the same code passes on your account and fails on a colleague's. Here are the greps and the probe.

Read post
August 31, 2026

Logging out everywhere does not reach the credential your coding agent stored

A stolen session is not a stolen password, so changing the password evicts nobody. And on a developer machine the browser cookie is the smallest of the problem: one keychain query on this laptop returned seven credential entries written by four AI tools, none of which a claude.ai sign-out touches. The inventory command, what each revoke surface reaches, and the order that works.

Read post
August 30, 2026

Seven dated changes landed this week. One of them is on a deprecation page.

Claude Code's weekly limits fall 17% on September 14, Copilot chat retention goes from 28 days to the life of the account on September 28, Mechanical Turk closes September 30, and OpenAI's models leave Cursor on November 12. Six of the seven will never appear on any vendor's deprecation page, because those pages track model identifiers and none of these are model identifiers. Where each date was actually published, and the column an expiry register needs that a dependency list does not have.

Read post
August 29, 2026

OpenAI models leave Cursor on November 12: what to move, and where

OpenAI has given Cursor notice. Under OpenAI's proposal, Cursor's direct access to GPT-5.6 Luna, Sol and Terra ends on November 12, and no future model, Astra included, will be supplied to Cursor before then. Cursor says OpenAI models are about 5% of its traffic and that it is talking to OpenAI. If any of that 5% is yours, there are three routes with different cost and data terms, and one inventory to run this week.

Read post
August 27, 2026

Poll the model provider's status page, not your coding tool's

On August 24 the same Anthropic outage produced three different status pages — opened 16 minutes, 48 minutes, and 2 hours 22 minutes after impact began, classified as minor by one vendor and major by two, and closed in reverse order. If your outage check watches the page of the tool you pay, it is watching the wrong surface. Here is the timeline, reproducible from three public APIs, and where to point the check instead.

Read post
August 24, 2026

Crop the screenshot before you send it: a 4K capture reaches Claude as 1456×819

Vision models bill by patch and silently downscale anything over budget, so a full-screen capture arrives with 4.5-pixel text and a full-price token bill. The patch arithmetic, the limit that resizes images already under the size cap, and the flag that turns the silent resize into a 400.

Read post
August 23, 2026

Four agent sandboxes were patched in five days, and every rule was correct

Claude Code's `**/.env` deny rule lost to an allow region, skipped directory contents, and fell to a rename. DeepSeek Harness let confined processes out through `/proc/<pid>/root`. Ray's browser defense is a `User-Agent` string check. Copilot's memory survives a password change. The versions to check today, and the four dimensions a containment rule has to name before it means anything.

Read post
August 20, 2026

Your rate card is not your rate. Query what you paid per million tokens.

If you route through OpenRouter, your realized rate is queryable: two endpoints, an administrative key that cannot make inference calls, and four requests that give you effective dollars per million tokens per model, where the gap between that and the rate card comes from, and which models are leaking money on cache misses. Full request schema, the arithmetic, and the five ways the API will quietly hand you a wrong answer.

Read post
August 18, 2026

Cursor Origin is on for paid plans, and the docs do not say how long your repo is stored

Cursor shipped Origin on August 17, a code host built into the editor, rolling out in early beta to every paid plan unless an enterprise admin opts out. The Origin documentation has a Privacy section, and it says one thing: Origin inherits the namespace owner's Privacy Mode. The words retention, residency, subprocessor and export do not appear on it, and the three Cursor pages that would normally answer those questions were written before Origin existed. Here is what each page actually says today, and how to tell trying it apart from moving.

Read post
August 17, 2026

Imagen 4 shut down today: which target to migrate to, and why the newest API blocks the cheapest price

The three imagen-4.0 endpoints stopped serving on August 17. Google's docs point at three different replacements across three pages, and the per-image prices between them differ by about 4x. The migration that looks most current also gives up the Batch API and explicit caching, which is where the discount lives. Here is the decision, with verified code for both paths.

Read post
August 16, 2026

The price per million tokens now carries conditions. Four kinds appeared this week.

DeepSeek starts billing by hour of day at 16:00 UTC today. Google publishes an expiry date on every Gemini 3.7 Flash rate line. Anthropic prices speed and inference geography as multipliers that stack on top of each other, and separately deleted a scheduled increase with three weeks left on it. None of these changes a model ID. Here is the arithmetic on one model priced four ways, and what a cost row has to carry to survive the next change.

Read post
August 14, 2026

DeepSeek's new off-peak rate costs more than what you pay today

At 16:00 UTC on August 16, DeepSeek moves its API to peak and off-peak billing. The announcement says off-peak is half the peak rate, which reads like a discount. Every one of the six token categories goes up even at the cheaper tier, and the largest increase lands on the most cache-optimized workloads. Here is the arithmetic, where the peak window falls in your timezone, and what to change before Sunday.

Read post
August 13, 2026

Your coding agent's only feedback loop is you catching mistakes — two hooks that close it

Claude Code cannot tell a passing build from a broken one unless something tells it. Two verified hook recipes — a PostToolUse check that feeds a failing type-check back after every edit, and a Stop hook that blocks the agent from ending a turn until tests pass — turn manual review into something the agent does to itself.

Read post
August 13, 2026

Qwen3.8-Max's open weights landed — the license restricts exactly the product it was built for

Alibaba published downloadable weights for Qwen3.8-Max on August 12, the first Max-class Qwen model ever open-weighted. The license breaks from the Apache 2.0 pattern of the last two Qwen releases, and the download itself is missing the vision input and full context window the cloud version ships with. Here is what to check before you point a coding tool or self-hosting plan at it.

Read post
August 12, 2026

Claude output now carries an invisible watermark, and it marks processing, not authorship

Anthropic has turned on content marking for Claude models released on or after August 2, 2026: an imperceptible watermark woven into all generated text, and C2PA provenance metadata on images. It applies to the API and every Claude surface, worldwide, with no opt-out documented. Here is which of your outputs are marked, what a detected mark does and does not prove, and the checks to run before you promise anyone unmarked or human-authored text.

Read post
August 11, 2026

Meta's Muse Glimmer runs agent loops on one GPU — the four checks before you move a workload

Meta released Muse Glimmer on August 10, a 30-billion-parameter open-weight model built for agentic tasks, under a clean Apache 2.0 license, quantized to fit a 24 GB consumer GPU. If you pay per token for an always-on agent loop, here is the order of checks that tells you within a day whether part of that bill can move to hardware you own.

Read post
August 10, 2026

Cut the tokens Claude Code spends before it reads your prompt

A measurement that reached the Hacker News front page put Claude Code at roughly 33,000 tokens of system prompt and tool schemas sent before the first word of the user's request. Part of that is fixed harness cost. A larger part is configuration you control — an oversized CLAUDE.md, servers you stopped using, unfiltered tool output, a thinking budget sized for harder work. How to read your own number with /usage and /context, and the five levers that move it.

Read post
August 9, 2026

Frontier labs now treat their own models as insider threats. Parts of that posture transfer to your agent stack.

In under three weeks, Anthropic disclosed that its models breached three real organizations from a misconfigured test environment, and OpenAI restricted its own employees' use of an unreleased model whose cyber capability it cannot rule out is critical. The security stance shifted from reviewing outputs to constraining reach. Five of the controls transfer directly to anyone running agents in production.

Read post
August 7, 2026

Agent Plugins 1.0 lets you package a skill or MCP server once for ChatGPT, Cursor, Copilot, VS Code, Codex, and Kiro

On August 6, Amazon, Cursor, Microsoft, OpenAI, and Vercel launched Agent Plugins, an open standard that packages agent skills and MCP servers into one portable directory. Six clients support it at launch. If you maintain a skill or an MCP server for more than one client, here is what to repackage today, and why your Claude Code packaging stays separate for now.

Read post
August 6, 2026

Turn the PDFs your agent guesses about into skills it loads on demand

An open-source converter with about 17,000 GitHub stars compiles a technical PDF, internal doc, or book into an agent skill — a 4K-token core plus 1K-token chapters loaded only when needed, instead of a 100K–250K-token context dump on every conversation. The install, the run, where chapter detection breaks, and when RAG is still the right call.

Read post
August 6, 2026

Meta's Muse Code is up to 20x cheaper if it can train on your code. Decide your tier before anyone on your team installs it.

Meta launched Muse Code on August 5, a terminal coding agent in public beta with two API tiers. The contributor tier costs $0.10/$0.20 per million tokens instead of $1.25/$4.25, in exchange for permission to train on your prompts and completions. In a coding agent, that is your repository. Here is how to make the call, with the numbers.

Read post
August 3, 2026

MCP went stateless: what to change in your server, and in what order

The 2026-07-28 spec revision removes sessions, the initialize handshake, and three whole features. If you maintain an MCP server, here is the audit that finds what breaks in your code, the fixes in dependency order, and the parts that can wait a year.

Read post
August 2, 2026

The EU AI Act deadline that was not postponed: your chatbot has to say it is a chatbot, starting today

Two things are true at once on 2 August 2026. The high-risk rules moved to 2027 and 2028. Article 50 transparency did not move, and it applies today to ordinary products: chat interfaces, generated images, AI-written text. Here is which of the two describes your product, what the four obligations ask for in interface terms, and the second date in December that most teams have not put on the calendar.

Read post
August 2, 2026

Two model IDs change meaning on August 5: check whether your code names one of them

Anthropic retires claude-opus-4-1-20250805 on August 5, and requests to it will fail. The same day, xAI re-points grok-voice-latest at a different model. Retirements, aliases, routers, and repricing all move the model behind your code without you shipping anything. Here is how to find out which models you actually call, and which dates are already on the calendar.

Read post
July 30, 2026

Build a fallback path for when Claude or OpenAI's API goes down

Claude had two separate outages inside 24 hours this week, confirmed on status.claude.com with exact timestamps. Most apps calling the API directly went down with it. Here is what is retryable, which response headers tell you when to back off, and the fallback chain that keeps a product running through the next one.

Read post
July 27, 2026

Your Claude Code skill has good instructions and still never fires — fix the description field

Claude decides whether to load a skill off one or two sentences of frontmatter, not the instructions you carefully wrote. Here is why skills go silent after the first test, the exact fields that control triggering, and the built-in eval loop that measures and fixes the hit rate.

Read post
July 26, 2026

What a ransomware attack and a sandbox escape both prove about agent security

In the same month, an attacker ran a complete ransomware extortion through an unauthenticated agent platform, and a frontier lab's own long-horizon model broke out of its test sandbox. Neither needed a genius or a rogue AI. Both needed only tool access and a gap. What that means if your agents have either.

Read post
July 23, 2026

Claude Code can now scan your repo for vulnerabilities and draft the patch

Anthropic shipped a plugin that runs a multi-agent security audit inside your own Claude Code session, then turns findings into patches you apply yourself. Here is what it needs, the exact commands, and where it fits next to the security tools you may already have running.

Read post
July 22, 2026

OpenAI's math-solving model escaped its own sandbox — the five changes worth making to yours

An unreleased OpenAI model spent about an hour finding a hole in its test sandbox, then split an authentication token into two pieces to dodge a security scanner. OpenAI's own postmortem lays out exactly what it changed. If you run long-running agents with real credentials, the same changes apply to you.

Read post
July 21, 2026

Kimi K3 just became the largest open-weight model ever — here is how to actually use it today

Moonshot AI's 2.8 trillion-parameter Kimi K3 tops a major coding leaderboard, then got so popular the company froze new signups within 48 hours. The open weights are not out yet either. Here is what is actually usable right now, what it costs, and what to hold off on.

Read post
July 16, 2026

Your prompt cache can miss on every request and nothing will warn you

Both Claude and the OpenAI API bill cached input tokens at roughly a tenth of the regular price, and both fail silent — a cache miss produces no error, just a full-price invoice. One field in the API response tells you whether you are collecting the discount. Here are the exact fields to check, the break-even math, and the five configuration mistakes that make a cache miss on every single request.

Read post
July 13, 2026

Why your AI's self-check misses its own mistakes, and the subagent recipe that catches them

A same-thread "double-check this" rarely surfaces the error, because the model reviewing it shares the blind spot with the model that produced it. The fix is a fresh, independent subagent whose only job is to try to disprove the output, and the Claude Code file that builds one.

Read post
July 12, 2026

Four AI labs spent $9 billion in eight weeks hiring the engineers you compete with

Anthropic, OpenAI, AWS, and Microsoft each launched a billion-dollar unit that embeds engineers inside enterprise customers to build production AI systems. Two are outside-funded joint ventures, two are internal cost centers, and that difference tells you exactly what each one is actually selling.

Read post
July 10, 2026

ChatGPT Sites just left limited preview: what it replaces, and what it still cannot do

OpenAI rolled ChatGPT Sites into public beta on July 9 as part of the broader ChatGPT Work launch — describe a web app in plain English, Codex builds and hosts it, you get a shareable URL. Before you drop a Lovable or v0 subscription, here are the specific gaps that matter.

Read post
July 9, 2026

GPT-5.6 is generally available: run the Terra migration test today

The government review that gated GPT-5.6 to roughly 20 organizations completed on July 9. Sol, Terra, and Luna are now reachable through the API for any developer. Here is the specific test to run before you move production traffic.

Read post
July 9, 2026

Your Claude Code Explore subagent might be running on Opus without you asking

Since Claude Code v2.1.198, the built-in Explore subagent no longer defaults to Haiku — it inherits your main session's model, capped at Opus. If you switch to Opus for a hard problem, every grep-style delegation after that rides along at Opus rates. Here is the exact override, the single env var that controls every subagent at once, and the pricing math behind why it matters.

Read post
July 6, 2026

Search your coding agent's own session history instead of re-explaining it

Every new Claude Code, Cursor, or Codex session starts blind to everything you already worked out together. ctx indexes the session logs already sitting on your machine into local SQLite, so the next session can search its own past instead of you retyping the context. Verified end to end on a real multi-tool session history.

Read post
July 5, 2026

Frontier AI is going metered: put a per-task price on your model spend

Fable 5 returned on July 1, but after July 7 it lives outside every Claude subscription as usage credits. The same week, Anthropic shipped spend alerts and model entitlements for Enterprise admins, and Tesla reportedly capped employee AI spend at $200 per week. The flat-rate era is ending; here is how to budget by task instead of by seat.

Read post
July 2, 2026

Automate a weekly competitor watch with a Claude Code skill and a routine

A recurring, rules-based check like "did a competitor change their pricing page" is exactly what should run itself. Here is how to wire a skill and a cloud routine together so it does — including the network-access gotcha that makes it silently do nothing while showing green.

Read post
July 1, 2026

Claude Sonnet 5 is cheap enough to be your default — check the token bill first

Anthropic shipped Sonnet 5 on June 30 at $2/$10 per million tokens through August, close to Opus 4.8 quality. The catch is a new tokenizer that counts up to 1.35x more tokens, so the rate card understates your real spend. Here is how to decide which work to move, how to set it up, and what to do before the price step on September 1.

Read post
June 29, 2026

How to get reliable JSON from Claude and GPT

Asking an LLM to 'return JSON' works in demos and breaks in production. Three concrete approaches — OpenAI's response_format, Anthropic's forced tool_choice, and the Instructor library — that actually hold, and the failure modes each one leaves open.

Read post
June 28, 2026

GPT-5.6 Sol, Terra, and Luna: confirmed pricing and what the staged rollout means for your Q3 stack

Sol at $5/$30, Terra at $2.50/$15, Luna at $1/$6 per million tokens. OpenAI launched GPT-5.6 in limited preview on June 26 with access staged by White House request. The pricing is real and plannable now. The access is not yet open.

Read post
June 25, 2026

OpenAI's first custom chip: what Jalapeño means for inference costs

OpenAI and Broadcom announced Jalapeño, a custom ASIC built for LLM inference. Nothing changes today. Here's the mental model for what custom silicon does to API pricing — using Google's TPUs as the documented precedent.

Read post
June 21, 2026

Build a 20-case eval set for your AI feature (with promptfoo)

Green CI is not evidence the feature works. A concrete walkthrough: the 20 cases to write, the promptfoo config to run them, the four patterns to look for in the results, and the moment you decide whether to ship.

Read post
June 21, 2026

Claude Fable 5 is suspended — what it means if you build on Claude

Nine days after a US government export control directive pulled Claude Fable 5 and Mythos 5 from every user worldwide, the models remain offline. Here's what happened, what still works, and what to do if you build on Claude.

Read post
June 18, 2026

Gemini CLI stops serving Pro, Ultra, and free users today

As of June 18, 2026, Gemini CLI and the Gemini Code Assist IDE extensions stop serving requests for Pro, Ultra, and free-tier users. Here's exactly who's affected, what keeps working, and what Antigravity CLI does and doesn't carry over.

Read post
June 16, 2026

SpaceX is acquiring Cursor for $60 billion

SpaceX agreed to buy Cursor (Anysphere) for $60 billion in SpaceX stock — four days after the company's IPO. Here's what happened, why, and what it means if you build with Cursor.

Read post
June 7, 2026

MCP in plain English — and what to install first

Your AI knows everything about the internet and nothing about your stack. MCP is the boring protocol that fixed that. Here's what it actually is, what it isn't, and the three servers worth installing this afternoon.

Read post
May 31, 2026

How to write AGENTS.md so AI doesn't break your repo

The first thing your AI reads is a file you may not have written yet. AGENTS.md, CLAUDE.md, .cursorrules — same idea, different name. What to put in it, what to leave out, and how to have Claude draft one without getting 400 lines of generic filler.

Read post
May 24, 2026

How to review an AI-generated PR

47 files changed, green CI, an AI-written description, and 30 seconds to approve. That's the failure mode. Here's a 12-point review checklist that catches what the AI got wrong — and how to scope the review so you'll use it.

Read post
May 21, 2026

Stop prompting. Start observing.

Before AI can replace any part of your week, you have to see your week clearly. The one-week audit, the four-bucket sort, and the trap of automating work that shouldn't exist at all.

Read post
May 19, 2026

The goldmine is the workflow

Most people look for AI startup ideas in the wrong place. The best products usually start by compressing a workflow people already repeat every week.

Read post
May 17, 2026

Your AI tests aren't actually testing anything

AI is great at generating green CI. It's worse at generating tests that catch real bugs. Five patterns I see in the wild — and a checklist to run before you trust an AI-written test suite.

Read post
May 10, 2026

Before you ship — a pre-deploy checklist for AI-built apps

AI builders make 90% of the right decisions and 10% of the catastrophically wrong ones. The wrong ones cluster in predictable places. Here's the 24-point checklist to run through before you deploy — copy-paste version included.

Read post
May 7, 2026

Most AI-built apps shouldn't be on the internet

AI builders can ship v1 in a weekend. They can also bankrupt you, leak user data, and put your API keys on display by Sunday afternoon. What actually breaks — and what to do about it.

Read post
May 4, 2026

Your AI is confidently wrong

It's not the security holes that drain your wallet. It's the loops, the hallucinations, and the rewrites that fix nothing. The failures nobody puts in the demo — and what they actually cost.

Read post
May 1, 2026

Welcome — what this blog is and isn't

One post a week, every Sunday. Patterns, pitfalls, and checklists for building with AI. No daily spam, no AI-generated thinkpieces, no 30-item link dumps.

Read post