Skip to main content

Posts

Showing posts from July, 2026

Don't Trust the Fluent Report

Don't Trust the Fluent Report The first time my pipeline embarrassed me, the report looked perfect. It was a weekly competitive brief: five pages, clean structure, confident prose, a chart caption, three bulleted takeaways. I skimmed it, thought this is good , and almost shipped it. Then I clicked through to one of the sources it cited, and the number wasn't there. Not misquoted. Not paraphrased. Invented. The report had pulled a statistic out of thin air and dressed it in a citation to make it look load-bearing. That's the specific failure mode of generated reports, and it's worse than a typo. A typo you catch. A fluent, well-structured, confidently-cited claim slips past you, because the prose is doing its job: it reads like something a competent analyst wrote. Your eyes relax. You rubber-stamp it. And at scale, fifty reports a week, a hundred, eyeballing isn't a validation strategy. It's a prayer. Why the obvious checks don't catch this The first t...

Stop Vibe Coding. Start Budgeting.

Stop Vibe Coding. Start Budgeting. For a while my favorite way to use a coding agent was to paste in a giant file, type "make this better," and accept whatever came back. It felt like superpowers. The agent would refactor, rename, restructure, and I'd nod along, merge it, and move on. A week later I'd open the same file and not recognize it. I hadn't written it. I hadn't even read it carefully. I'd vibes-coded it: given in to the feeling of progress and forgotten to actually understand the code. And when something broke, I was debugging text I'd never truly read. That's the trap of vibe coding, and it has two costs people don't count. The obvious one is that you ship code you can't explain or fix. The less obvious one, the one I want to talk about, is that it's expensive . Not just in money. In the one resource the agent actually runs on: its context window. The agent is a budget, not a magic box Here's the mental model that c...

Stop Prompting. Start Looping.

Stop Prompting. Start Looping. For a year I used AI the way you use a calculator. I typed, it answered, I typed again. Every useful thing the model did depended on me being there to ask the next question. The model wasn't working for me. I was operating it, one pull of the lever at a time. That's the default way most people use these tools, and it has a ceiling: your throughput. One prompt, one judgment, one revision per turn. You become a very fast reference desk, and you're the one standing between the model and anything it might do on its own. Then I started building loops, and the ceiling moved. The idea, in one sentence Write down what "good" means as something a program can check. Then let the model keep trying, score each attempt, keep the winners, throw out the rest, and try again. No you in the middle. You walk away. It runs. That's the whole pattern. People have started calling it "the Karpathy Loop" after Andrej Karpathy, who's ...