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.
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 postThe "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 post57 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 posttemperature=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 postGPT-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 postDiff 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 postClaude 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 postLogging 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 postSeven 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 postOpenAI 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 postPoll 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 postCrop 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 postFour 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 postYour 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 postCursor 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 postImagen 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 postThe 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 postDeepSeek'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 postYour 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 postQwen3.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 postClaude 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 postMeta'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 postCut 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 postFrontier 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 postAgent 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 postTurn 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 postMeta'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 postMCP 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 postThe 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 postTwo 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 postBuild 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 postYour 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 postWhat 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 postClaude 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 postOpenAI'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 postKimi 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 postYour 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 postWhy 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 postFour 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 postChatGPT 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 postGPT-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 postYour 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 postSearch 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 postFrontier 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 postAutomate 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 postClaude 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 postHow 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 postGPT-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 postOpenAI'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 postBuild 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 postClaude 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 postGemini 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 postSpaceX 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 postMCP 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 postHow 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 postHow 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 postStop 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 postThe 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 postYour 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 postBefore 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 postMost 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 postYour 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 postWelcome — 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