Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
63

What explains the rise of AMMs?

from haseeb qureshi [alt+shift+b] in startups

Imagine a college friend reached out to you and said, “Hey, I have a business idea. I’m going to run a market making bot. I’ll always quote a price no matter who’s asking, and for my pricing algorithm I’ll use x * y = k. That’s pretty much it. Want to invest?” You’d run away. Well, turns out your friend just described Uniswap. Uniswap is the world’s simplest on-chain market making operation. Seemingly from nowhere, it has exploded in volume in the last year, crowning itself the world’s largest “DEX” by volume. If you haven’t paid close attention to what’s happening in DeFi in the last year, you’re probably wondering: what is going on here? Uniswap v2 volume. Credit: Uniswap.info (If you’re already familiar with Uniswap and AMMs, skip ahead to the section titled “The Cambrian AMM Explosion.”) For the uninitiated: Uniswap is an automated market maker (AMM). You can think of an AMM as a primitive robotic market maker that is always willing to quote prices between two assets according to a simple pricing algorithm. For Uniswap, it prices the two assets so that the number of units it holds of each asset, multiplied together, is always equal to a fixed constant. That’s a bit of a mouthful: if Uniswap owns some units of token x and some units of token y, it prices any trade so that the final quantities of x and y it owns, multiplied together, are equal to a fixed constant, k. This is formalized as the constant product equation: x * y = k. This might strike you as a weird and arbitrary way to price two assets. Why would maintaining some fixed multiple between your units of inventory ensure that you quote the right price? Uniswap by example Let’s say we fund a Uniswap pool with 50 apples (a) and 50 bananas (b), so anyone is free to pay apples for bananas or bananas for apples. Let’s assume the exchange rate between apples and bananas is exactly 1:1 on their primary market. Because the Uniswap pool holds 50 of each fruit, the constant product rule gives us a * b = 2500—for...
22nd Jul 2020

Stay updated

Get a weekly newsletter with the top 5 articles worth reading every week.

More from haseeb qureshi

The Rise of the 149-Person Company

@SemiAnalysis_ recently found something bizarre in the economics of AI coding subscriptions. If you run them at max usage limits, you’re actually paying 20x-70x cheaper than you would buying tokens through the API. Many people looked at this and said: oh my god, look how much the labs are subsidizing tokens, the bubble must be about to pop soon. This is the wrong response. The reason why labs are willing to offer such generous plans, of course, is because most users are rarely hitting their usage limits. The product works like a gym membership: the limit is generous because most people barely use it. But I’ve spent a lot of time thinking about this, and it’s true that something weird is going on here. We don’t know what their actual blended margins are on subscriptions, but SemiAnalysis estimates that at 20% average utilization, Anthropic breaks even on their Max 5x plan. 20% utilization is probably on the high side, especially in orgs where everyone (including non-coders) have subscriptions and are only busting it out once in a while. Most places I know, including Dragonfly, give out Claude Code subscriptions liberally and encourage non-coders to experiment with it. But what SemiAnalysis doesn’t dwell on here is that this is exclusively a small company phenomenon. The subscription pricing model is not available to large companies. Here’s why: at 150+ people, you are forced off the subscription model, which is known as the “Team” plan. You have to switch to “Enterprise,” which is priced as $20/seat base, plus API pricing per token used. Enterprises must pay linearly based on token costs, and SemiAnalysis believes API tokens are priced at roughly 75% gross margins. This is a massive price hike that kicks in suddenly at 150 seats. So if you’re a small business or a startup (or a personal user), you have a distorted view of AI spend. Your token pricing is actually very generous, and Anthropic may be running at low or even negative margin on you. You might have wondered why Microsoft and Uber are freaking out about token spend and talking about “token-minning.” This is why. They pay structurally higher costs per token than startups and individuals do. But Anthropic doesn’t care! Max extracting from small companies or individuals just doesn’t matter much for a B2B company. If you look at companies like Datadog or Cloudflare, they make 80-90% of their revenue from large (100K+ ARR) contracts. Making 0 margins on the long tail is just a customer development cost. This is the standard B2B sales way to think about this pricing strategy. But there’s another way to think about this same situation: through the lens of tax policy. Because if tokens are replacing labor, then the gross margin that OpenAI and Anthropic collect on tokens is effectively a tax on AI labor. There are two major consequences to thinking about token pricing this way. Token Pricing as Tax Policy Let’s assume the margins stated in the SemiAnalysis piece: breakeven on subscriptions, 75% gross margin on API for BigCos. The instinct is to call that a 75% tax on AI labor for large organizations, and 0% tax for startups. Standard tax analysis would say this is a disincentive to use AI labor within large companies, which pushes at the margin more toward less automation and retaining more human labor. (It obviously also incentivizes using smaller/open models, but the net effect is that it incentivizes both. Remember, we’re thinking at the margin here.) But the part that drives behavior even more strongly is not the average rate. In tax policy it never is. What we care about is the marginal rate. And for startups on a flat-rate subscription, the marginal price of the next token, up until the usage limit, is zero. And a zero marginal price is the most distortionary a policy can possibly be. For a startup, the subscription model is basically an innovation subsidy. The overwhelming incentive is to experiment how to spend the entire token budget as effectively as possible. That means running Ralph loops, papering your screen with Claude Code sessions, and orchestrating swarms of agents. Exploration is free until you hit the usage limit, so startups are effectively competing to squeeze every last drop out of their subscriptions to out-produce their competition. Perversely, the more you use, the lower your average token price is. Each startup wants to be the one that makes Anthropic lose the most money on their subscription. BigCos face the opposite incentive. If you’re beyond the 150-seat threshold, every token of exploration is billed at full markup (with 75% surcharge!), so they’re punished linearly for exploring the frontier. BigCos will still automate the obvious high-volume tasks, but the marginal, experimental, risky automations never get found because the discovery cost is too high. This tax structure ultimately pushes them toward keeping more human labor and maintaining the same overall org structure. It’s like a reverse Japan. Japan has a massive labor shortage due to its declining population. Historically this has meant Japan has pursued high degrees of automation, because high labor costs incentivize automation. That’s why Japan has robots in restaurants, factories, hotels, and hospitals. But weirdly, big companies find themselves in a reverse Japan situation: if they are paying very high taxes on AI usage, this creates LESS incentive to automate, and more incentive to retain the humans they already have (even more so if wages stagnate in the meantime). So where does the labor displacement go in this model? Everyone is watching the big companies for waves of AI layoffs. But at 75% rates, replacing your own workforce too aggressively with AI might just be uneconomic. The token budgets just explode. But that doesn’t mean the displacement never happens. It just means the displacement shows up in a different shape. When BigCos lose market share to AI-native startups that carry a fraction of the all-in labor costs, that will trigger layoffs as BigCo revenues and stock prices decline. But those jobs that are eliminated are never replicated at the startups who win the day. The net disemployment effect is the same, the air pocket just moves to a different line item within the economy (where the AI tax rate is lower). This is also why “AI-washing” might not be a temporary phenomenon. AI-washing is when a company attributes layoffs to newfound AI efficiencies, when it’s actually just an excuse for ordinary business weakness. Many assume that this is a fad of the current AI hype cycle. But while everyone is primed to watch for big companies doing true AI layoffs “replacing jobs” with AI, it may never actually happen at scale. The labor displacement may happen instead through startups outcompeting the BigCos, the BigCos AI-washing all the way to their graves, and the startups never re-creating the old jobs. The job displacement will still happen, just not where everyone is looking. So that’s the first consequence of this model. But there’s also a second, weirder consequence. The Notch A regulatory notch is a regulatory threshold that incentivizes a large discontinuity in behavior. Example: 30 hours a week for full-time employment incentivizes a lot of jobs that are exactly 29 hours/week. Famously, France has extremely demanding labor regulations that kick in at 50 employees (work councils, mandatory profit-sharing, firing protections), which are exempted for small companies. This results in massive incentives for employers to stay below the 50-person notch. Extend this analogy to AI. The big labs have created a tax notch that punishes companies for going above the 150 seat threshold. This means you must stay small to keep your beautifully subsidized subscription pricing, and be taxed ~0% (or negative) on your tokens rather than 75%. This might result in a totally new philosopy of company management. Startups will increasingly obsess over agents for everything, smaller teams, frequent firings, more subcontracting, and doing everything possible to map the lowest possible human surface area. Not because it’s the “optimal” amount of automation, but because the incentives drive them there. If the magic number is 149, every seat counts, and you can’t afford to waste humans outside of the essential joints of the company. This discontinuity may be perceived by Harvard Business School types as “the new generation of AI-first management.” But understood properly, it’s actually just a rational response to enterprise pricing plans. This might sound like a bit much. But you can already see the behavior differences between different organizations. Talk to developers at BigCos, and they are meticulously counting tokens and getting more nervous about their leaders slashing token budgets. But devs at startups are breathlessly tokenmaxxing, spinning up swarms of agents overnight and checking their logs in the morning. I expect this dynamic to accelerate. No one designed this. There is no committee deciding to subsidize innovation for startups and tax it for incumbents. All this fell directly out of well-worn enterprise pricing strategies. But this is how tax codes always look: a pile of incidental rules that ultimately determine which companies get built and how those companies contort themselves to minimize their tax burdens. You could object that this is temporary, and the labs will meter everyone eventually. Github Copilot has already made the switch. Maybe, maybe not. But by the time pricing normalizes, the 149-person company and the new school of AI-first management may have already blown up, gobbling up market share, and writing the playbook for the next generation of startups. Tax policies matter. The entire notion of the “gig economy” exists because of the legal boundary between W-2s and 1099s. As more labor gets eaten by AI, token pricing may be the most consequential tax policy of the next decade. Yet nobody will ever vote on it. (And don’t be surprised if the fastest growing companies of the next cycle all conspicuously cluster at 149 seats.) Originally published on X, June 2026.

22nd Jun 2026 • 1 votes
Crypto was not made for humans

We’re a crypto fund. If anyone should believe in crypto, it’s us. And yet, when we sign a deal to invest into a startup, we don’t sign a smart contract. We sign a legal contract. The startup does the same. Neither of us are comfortable doing the deal without a legal agreement. Why? We have lawyers. They have lawyers. We have engineers who can write and audit smart contracts, and so do they. We are two sophisticated crypto-native parties, and we still don’t trust a smart contract to be the only binding agreement between us. I literally was a software engineer, and I still trust the legal contract more–because if there’s an issue with the legal contract, I know the judge will do a reasonable thing. The EVM, not so much. In fact, even in the cases where we have an on-chain vesting contract, there’s usually also a legal contract in place. You know, just in case. When I first got into crypto, there was this fantastical story that crypto would replace property rights. Instead of legal contracts, we’d all use smart contracts. Instead of agreements enforced by courts, they’d be enforced by code. It didn’t happen. Not because the technology doesn’t work, but because the technology doesn’t work for our society. Let me make a confession. I’ve been in this space for a decade and I’m still scared every time I sign a large transaction. I’m rarely scared to approve a large bank wire. The bank, terrible as it is, was designed for humans. It’s really hard to mess it up. There are no address poisoning attacks at banks. There’s no reason why my bank would ever allow me to send $10M to North Korea–but to Ethereum validators, there’s no reason why my address wouldn’t be sending $10M to North Korea’s address. The banking system was specifically architected with human foibles and failure modes in mind, refined over hundreds of years. Banking is adapted to humans. Crypto is not. That’s why in 2026, it’s still terrifying to blind sign a transaction, to have stale approvals, or to accidentally open up a drainer. We know we should verify the contract, double-check the domain, and scan for address spoofing. We know we should do all of it, every time. But we don’t. We’re human. And that’s the tell. It’s why crypto always felt slightly misshapen for us. Long unreadable cryptographic addresses, QR codes, event logs, gas fees, and footguns everywhere–none of it conforms to our intuitions about money. That’s when it clicked for me: it’s because crypto wasn’t built for us. Crypto Was Made for Machines An AI agent doesn’t get lazy. It doesn’t get tired. It can verify a transaction, check every domain, and audit a contract in seconds. And more importantly, an AI agent trusts code more than it can trust the law. I trust the law more than I trust the smart contract. But to an AI agent, a legal contract is actually much less predictable. Think about it: How will I drag my counterparty into court? In what jurisdiction will this contract be adjudicated? What if the legal precedent is ambiguous? Who will we draw as a judge or jury? There is so much uncertainty baked into law that it’s impossible to know with certainty the outcome of an edge case. And that dispute takes months to years to resolve through the legal system. For humans, that’s basically fine. In AI agent timeframes, that’s an eternity. Code is the opposite. Code is closed form, deterministic. An AI agent looking to make an agreement with another agent can negotiate multiple rounds of terms on a smart contract, statically analyze it, formally verify it, and enter into a binding agreement–all in a few minutes, all while the humans are asleep. In that sense, crypto is self-contained, fully legible, and completely deterministic as system of property rights around money. It’s everything an AI agent could want from a financial system. What we as humans see as rigid footguns, AI agents see as a well-written spec. Even legally, our traditional monetary system was designed for human institutions, not AIs. The traditional monetary system only recognizes humans, businesses, and governments as legitimate holders of money. If you are not one of those three entities, you cannot own money. Even if you rig up an AI agent to interact with your bank account on your behalf, then what? How do you run AML on an AI agent? Suspicious activity reports? Sanctions violations? Where does liability fall if the agent is acting autonomously? Does the liability change if it was manipulated? We haven’t even begun answering these questions–our legal system is totally unprepared for non-human financial actors. Crypto asks no such questions. It doesn’t need to. A wallet is a wallet, it’s just code. An agent can hold funds, transact, and enter into economic agreements as easily as it can send an HTTP request. The Self-Driving Wallet This is why I believe the crypto interface of the future is what I call a “self-driving wallet”–entirely AI-intermediated. You won’t be going around websites clicking buttons. You’ll instruct your AI agent to solve financial problems for you, and it will navigate the services available (e.g. Aave, Ethena, BUIDL, or whatever succeeds them) to build the right financial solutions on your behalf. You won’t do it it yourself; an AI agent that is natively fluent in this world will do it for you. And when agents are the primary interface into crypto, the way those protocols market and compete with each other will have to radically change. And beyond acting on your behalf, agents will transact with each other. When agents can discover other agents and enter into economic agreements autonomously, they will prefer crypto. It works 24/7, 365, anyone-to-anyone, fully in cyberspace. It can’t be turned off. It’s completely self-sovereign. This is already happening. Moltbook has agents finding and collaborating with each other across geographies, with no knowledge of who owns them or where they sit. And just yesterday, @0xSigil’s @ConwayResearch has built self-sovereign agents that survive completely autonomously using crypto wallets, working to earn their own compute costs to stay alive. The future is going to get increasingly weird. And crypto is going to be part of that weirdness. So what’s the takeaway? I think it’s this: crypto’s failure modes, which always made it feel broken for humans, in retrospect were never bugs. They were simply signs that we humans were the wrong users. In 10 years, we will look back at amazement that we ever subjected humans to wrestle with crypto directly. This change won’t happen overnight. But a technology often snaps into place once its complement finally arrives. GPS had to wait for the smartphone, TCP/IP had to wait for the browser. For crypto, we might just have found it in AI agents. Originally published on X, February 2026.

18th Feb 2026 • 1 votes
2026 predictions

It’s that time again—as 2025 comes to a close, it’s time to drop 2026 predictions. I think 2026 is going to surprise, both to the upside and to the downside. Organized by category: Macro / Chains $BTC is > $150K by year-end, but BTC dominance decreases in 2026. Despite the excitement around the recent crop of fintech chains, their metrics will underwhelm. Daily active addresses, stablecoin flows, and RWAs—Tempo, Arc, and Robinhood Chain will underdeliver, while Ethereum and Solana will overdeliver. Best developers will continue to build on neutral infra chains. A big tech company (Google, Facebook, Apple, etc.) launches or acquires a crypto wallet in 2026. Many more Fortune 100s launch blockchains, although increasingly concentrated among banking and fintech players. Expect Avalanche to be a standout here, alongside OP stack, Orbit, and ZK Stack. Monad gets written off as dead by CT, but metrics take off in the latter part of the year after analysts have already forgotten about it. At least 3 other chains connect to DoubleZero to improve their latency & throughput metrics. DoubleZero hits 80%+ stake on Solana. DeFi Perp DEX market share consolidates to something like 3 big venues a la HBO (market share something like 40 / 30 / 20), followed by a long tail of smaller players who compete over the leftovers (last 10%). Equity perps take off, becoming >20% of total DeFi perp volume by EOY. Significant growth in RFQ compared to CLOBs/AMMs, both on spot and perps. Some DeFi-related insider trading scandal hits mainstream media. Stablecoins Stablecoin supply expands by ~60% in 2026, and USD remains 99%+. USDT dominance declines moderately to ~55%. Stablecoin-backed cards grow 1,000% in 2026—insanely fast growth. Becomes the dominant way that stablecoins land and expand in emerging markets. Rain is the biggest winner here. Regulation Clarity Act gets signed into law in 2026 after some significant markups and horse trading. A bit of buyer’s remorse from crypto insiders. Dems win the house, and there is a parade of hearings about anything in crypto that touched $TRUMP / $WLFI. The underlying deals get subpoenaed. Trump insists he was never involved and didn’t know anything about it (and thus these deals are not protected by executive privilege). Anyone who signed a stupid deal gets publicly embarrassed. Prediction Markets Prediction markets grow like crazy. Big legal fights over sportsbetting regulation and federal pre-emption, but nothing major gets resolved next year, so status quo continues through 2026. Meanwhile Polymarket continues to steamroll the culture. Prediction markets are perceived as cool and smart, and so are allowed to throw up odds everywhere. As Polymarket domestic expansion gets going, it starts winning more and more domestic market share from Robinhood and sportsbooks. The explosion of other platforms tacking on prediction markets mostly flop. 90% of prediction market offerings are totally ignored and then wind down by EOY. B2B partnership-driven distribution underperforms, direct-to-consumer outperforms. Almost all of the demand in 2026 is sourced directly from Polymarket, Robinhood, and Kalshi frontends (plus traditional sportsbooks). AI Primary AI use cases in crypto remain within software engineering and security. Everything else remains a prototype. No good solutions to the spambot proliferation on social platforms emerges. A lot of stuff is proposed, but mostly we just eat the AI slop for 2026. Eventually it will get bad enough that people align on a solution, but not there yet. Wallet automation remains minimal. AI agents will still not be “paying each other” or spending any meaningful money in 2026. We see more small teams (<10 people) shipping scaled products because of coding agent force multipliers. In 2025, you needed to be Hyperliquid-level cracked devs to be this dev-efficient. In 2026, you just need to be AI-native and versed in the modern agentic stack. 2026 is dubbed the year of the agentic startup, and it hits crypto startups in a big way. AI becomes used for both attack & defense in cybersecurity. We see many more hacks in 2025, but smaller sizes. Defensive AI gets integrated into CI/CD pipelines and much better continuous monitoring. Security posture across the board improves, even for small teams, and the total amount hacked decreases compared to 2025. So those are my predictions! If I had to summarize them to a two meta-theses, it’d be: slow and steady beats new and shiny the trend lines mostly continue Let’s see how I do. Keep me honest, CT. Disclosure: I’m an investor in many of the assets mentioned. NFA. DYOR. Originally published on X, December 2025. Covered by CoinDesk.

29th Dec 2025 • 1 votes
How to Break Into VC

Here’s what I would do if I was a young person trying to break into VC: Write. Short writeups, on Twitter. Not generic market philosophical thinkpieces, because those will be assumed to be AI slop or regurgitated research. No one will read it unless you’re brilliant, which you’re probably not. Original research, on a specific company or sub-sector. If you want to write about robotics, even that is too broad. Narrow it down. Humanoid robotics, or healthcare robotics, military robotics, etc. Get really granular. So granular most people won’t care. If it’s something you could get by Googling, it’s not narrow enough. You will not be able to find to do “original research” easily. This is not something you can do from a university library. You will have to go talk to people who work at these companies. Journalists who cover these companies. Pay for private industry-specific research / newsletters. Follow all of the employees/anons who are tweeting gossip. Integrate a picture that someone reading TechCrunch doesn’t see. Then write about this sector and leading + new startups and tag / DM every investor at every major firm who covers your space (you can find them because they’ve invested in one of the companies in the sector). If they express interest, offer coffee meetings with everyone you can. Some will take you up on it. Do this enough times, you’ll develop a reputation and get offered a job in venture. Don’t need to go to business school, don’t need to have a great angel portfolio or any of the above. “Get good deal flow” is wonderful if you have access to it, but most people just can’t do this. If you’re already surrounded by Stanford undergrads, you probably don’t need advice to break into VC. But the above strategy–in principle anyone can do. Just need to have abnormal levels of agency and a willingness to basically do the job of a junior VC without anyone telling you to. (While you’re doing this, best thing to do in the meantime is to also work at a company in the sector you’re chasing after. But not always possible depending on your background. Thankfully, VC does not require any particular background. Lots of weirdos in VC, myself included.) I guarantee you, everyone wants to hire someone who can do the above. But very few candidates have this degree of agency. VC is not a “tracked” career. Hiring is arbitrary, firms are generally small and do not scale, and there is no standard path. This is good for you if you’re willing to be weird. The thing that VCs have in common is that they are passionate about startups and understanding new industries. If you show that you already have that, a path will open for you. Originally published on X, November 2025.

9th Nov 2025 • 1 votes
On being bald

I started shaving my head in my early 20s. I was way too young to be balding that early, and it terrified me. So I decided, fuck it, just go all the way to the finish line. The first time I shaved my head, I thought I looked like a ghoul. In my dreams, I still had hair. It didn’t feel like the real me. It was really distressing. But I came to appreciate that to everyone else, I was just a bald dude. Nobody who met me ever thought twice about it. I think over my life, being a bald man has actually helped in subtle ways. There’s something about being bald that subtly exudes competence. It makes you seem strong and self-assured. It makes random people less likely to mess with you. I think there are some real advantages in life to being bald that nobody ever told me before I started shaving my head. You also look older than you are, less boyish. This can be an advantage. Not all women like it, but those who do find it very masculine. But largely what I’ve found is people care less than you think they do. Also saves time and money on haircuts, which is a real thing. So if you’re thinking about taking the leap, give it a try. You can always grow it back. (Or if you can’t, then welcome to the club.) Originally published on X, September 2025.

17th Sep 2025 • 1 votes

More in startups

Christianity as the Schelling Science Fiction

The explanation is so simple that it’s almost funny.

9 hours ago • 1 votes
Guidelines and Guardrails Belong in Git

One problem with AI is that it’s pretty stupid. I mean, sure, the current models are wildly useful. But out of the box, they overcomplicate, take undue shortcuts, and compound deficiencies to the moon. To get from default Claude or ChatGPT to a fast, affordable software loop – one that reliably zaps bugs, backlog items, and security vulnerabilities in your product in particular – it takes some real work. Increasingly, this is the work. So it’s past time you shared that work with your team. Guidelines and guardrails There are two main ways to get coding agents to behave consistently and correctly: steer them with guidelines, and redirect them with guardrails. Basically a union of “Please go do the good thing” with Error: You did the bad thing, try again. Sometimes, this means fighting models’ non-determinism with better non-determinism. We build and refine Markdown instructions: rules, docs, skills, and the like. Then at PR time, AI reviewers, classifiers, and human review workflows can non-deterministically ask Claude to go back and do better. But while this informed guidance is helpful, deterministic rules are gold. Instead of “PLEASE don’t make 10,000 line files”, a lint script can simply reject overlong files before they’re pushed1. When practical, moving Markdown rules, checks, and guides into deterministic code like this is a big level up. Checks in code are harder, better, faster, and stronger than prompting – and a hell of a lot cheaper. Similarly, if you set up a local environment so models can verify how their code works in practice, you’ll get less speculation and fewer unnecessary fallbacks. Step by step, you can tune your laptop into an instrument for turning brilliant slash idiotic tokens into good PRs. Before long, you’re building at a pace never before seen, with architectural consistency no less. Your team is in awe of your productivity, and… wait. Your team. Some of them need to understand your work too. And you still need to review their agents’ work– OH GOD WHAT IS THIS PR?! Sharing is caring The history of software development is the story of sharing. At first we shared just code, once its author was done with it. Then we grew into sharing commit history, say with SVN. We’ve seen with everything from Makefiles to Jira, Slack, GitHub Actions, Terraform, and more recently code formatters and linters, that engineering improves with more sharing within teams. But when coding agents debuted, it made little sense to standardize how they were prompted. Hell, they barely worked in the first place. Nobody had any idea what it meant to use them well, and they lent themselves to experimentation and highly custom setups. But 2024 was a long time ago. We’ve learned a lot about good agent guidance and guardrails, and models have gotten far better at working within them. Yet many teams still work in repos with no shared agent instructions at all. These teams still use AI. But they rely mostly on models’ instincts, developers’ prompting skills, and reviewers’ discipline to keep agents in check. More industrious team members might email around skills they find helpful. Using their personal setups, a few folks on these teams elicit well-engineered PRs from Claude – but these get jammed up alongside other developers’ mystery slop in the review queue. Fortunately, this is beginning to change. In-repo AGENTS.md files are now common. Reproducible dev environments, consistent for every team member, are including more lints, sandboxes, MCPs, and other tools that make agent output more consistent. CI, previously the realm of unit tests, often now runs review agents – preferably steered by in-repo instructions. And teams are putting checks, constraints, and formatting rules on PRs, making them easier to review and trust. As Thoughtworks’ Rahul Garg said on martinfowler.com: A prompt on an individual machine is a personal productivity hack. The same prompt in the team’s repository is infrastructure. So from this, we now have two primary goals: work to make our agent instructions more deterministic, and more useful for the whole team. Before the work: Setup and guidelines After the work: guardrails Deterministic, shared 😀 Reproducible dev environments and sandboxes, verifiable structures (types, schemas, boundaries), shared tools and hooks Typechecks, lints, tests, builds, CI, blocking hooks, ratchets Nondeterministic, shared 🙂 AGENTS.md, in-repo docs, shared skills, existing coding patterns, guidance returned from shared tools, shared agent sessions PR review agents, shared classifiers, human reviews Deterministic, personal 🙂 Personal tools and MCP servers, local permission setups, local env config Personal lints and hooks, local pre-commit Nondeterministic, personal 🫠 Your prompt, local memories, personal skills, CLAUDE.local.md, a bespoke dev environment only on your laptop Yelling at Claude for being a complete doofus The job, increasingly, is not producing code. It’s iterating a system – guidelines, guardrails, and tools – that helps your whole team produce good work. And as more teams run coding agents in the cloud, spun out of Slack conversations, Linear tickets, or incident reports, ensuring your agents do the right thing regardless of where they run is even more essential. While a tuned software factory like this is a boon to generalists working in it, working on the system is where domain experts – perf wizards, database pros, and so on – can really shine. Instead of just running interference, trying to review and reject problematic PRs in their domain of expertise, they can iterate docs and guardrails that improve how every change, whether kicked off by a PM or a principal engineer, is written. PJ Onori, a design systems veteran at Sanity, responded to an increase in agent-authored code that didn’t comply with their design system not with derision, but with a spec. Basically, in-repo rules turn expertise into leverage. Note: The shared rules need to actually be good In 2024, models’ worst failures were not following instructions. In 2026, we also get agents failing because they do follow instructions, even overly absolute ones. Many a CLAUDE.md (or, now, AGENTS.md) has collected slop like: IMPORTANT: Every fix must start not with code, but with failing tests. Make the fix, then honestly verify it against the new tests. This is not busywork—it’s discipline. 1000 PRs merged later, agents have gifted you 9999 new unit tests, many of them useless, like a cat delivering its owner dead birds. “Oh great, thanks Codex, tests that enshrine every copy edit we’ve ever made to the UI, how thoughtful of you.” Let this herd of tests run on hundreds of pushes to GitHub every day, and in time your CI bill will gain an entire digit. While having at least some agent docs and guidelines in-repo has become standard, there is wild variation in how well-maintained these instructions are. Often they get so long, agent harnesses truncate them. Multiple teams I’ve helped have said they still required humans to read and review code changes, but not AGENTS.md instructions. That is, the root set of rules followed by every agent working in their codebase.2 Now, you definitely want to add in-repo guidance and guardrails for your team’s agents, but with great leverage comes great responsibility. If your one doc or tool can now affect thousands of nondeterministic coding runs across a team, it’s worth the effort to iterate and improve it over time. At the minimum, this means building a culture of standards for this shared infrastructure, and people who own its effectiveness. How do we actually do that? Closing the loop While surely you tested your AGENTS.md overhaul personally, how is it working for everyone else? You see that your agents aren’t adding overlong comment blocks anymore, but this new PR from Steve did. Had he pulled your new instructions before he wrote this? And come to think of it, is your new guideline now causing places where explanation really would have been merited to be under-commented? Of course, to maintain code well that runs on various other machines requires a measure of observability – doubly so when the flows are non-deterministic. What skills are people using? Are they working as intended? Are agents spinning needlessly on missing context or verification capabilities? Are they now yelling at Claude when it was actually your doc or skill that caused the problem? You need to be able to fix mistakes and waste. Not just on your laptop, but across your team’s agents. On some teams, this just means having developers send bug reports and traces to team members when a skill or doc goes wrong – if they notice it and know who can fix it. Other teams move to a coding environment like Amp that shares session transcripts and their telemetry by default, or our Powerplant tool that supports session debugging in a harness-agnostic way. Meanwhile, Entire wants to be GitHub but for agents’ session logs as well as code. Session sharing comes with its own challenges. As with observability tools like Honeycomb and Datadog, giving your coding agents access to log and telemetry data from other agents is both very useful and potentially risky. Shared context needs thoughtful security, privacy, and accountability controls. Meanwhile, social conventions on teams around working with agents in the open are still developing. Some companies are overtly skeptical of transparency with agents, while others are all-in. No matter how this all plays out, one thing is clear: the early scramble of siloed experimentation is ending. It’s time for teams to be building shared agent infrastructure, guidelines, and guardrails, and to be iterating them together. To be learning not just from some confident poster on X, but from how one another are working with AI. And to help us all do less yelling at Claude, and more building useful software. While simply failing lints for a file that exceeds limits is helpful, we can do better. If your lints emit graduated feedback, e.g. flagging when a file is close to, at, or beyond the threshold, then you can give models useful feedback without halting a critical change because a file got pushed one line too long. Another useful graduated approach is the ratchet: if you find a bad pattern in your code you don’t want agents copying, a ratchet counts how many instances of the pattern currently exist, and only fails if that number goes up. A helpful tool for longer-term migration projects. Also worth noting: deterministic checks can give agents just-in-time remediation guidance. It’s better to put “New endpoints should use the typed Result pattern instead” in the lint error when somebody copies the old pattern, rather than in global AGENTS.md clogging every session’s context. ↩ /claude-api prompt-audit may be helpful if you need to dig out of this hole. ↩

23 hours ago • 1 votes
My simple map of the NYC subway went viral

Look Mom I’m famous on French Linkedin

4 days ago • 2 votes
Brian

“That’s so thoughtful,” I thought to myself. “And so mature.”

6 days ago • 3 votes
Steve Jobs and NeXT

The company has not yet achieved the success of your logo for it, but we are still trying.

a week ago • 3 votes
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in