1 00:00:00,550 --> 00:00:04,290 When you build with AI, what is the real source of truth: the code, 2 00:00:04,300 --> 00:00:06,088 or what you wrote about what you want? 3 00:00:07,282 --> 00:00:11,444 Daniel Miessler’s October 2026 essay argues for the writing. 4 00:00:12,646 --> 00:00:16,898 His claim: written intent sits closer to human thought than code can, 5 00:00:16,908 --> 00:00:19,496 so it should be the center of an AI project. 6 00:00:20,698 --> 00:00:23,126 We’ll follow his argument step by step, 7 00:00:23,136 --> 00:00:28,013 then turn it into a document you can use. These are Miessler’s opinions, 8 00:00:28,023 --> 00:00:29,723 presented as he argues them. 9 00:00:31,990 --> 00:00:36,740 The essay grows out of an almost-debate with Matt Pocock about spec-driven development. 10 00:00:37,954 --> 00:00:41,919 Miessler calls Pocock a brilliant, old-school software engineer, 11 00:00:41,929 --> 00:00:45,704 whose skills repo is one of the most-starred skills repos on GitHub. 12 00:00:46,894 --> 00:00:49,697 Pocock’s position: the code, not the spec, 13 00:00:49,707 --> 00:00:55,594 should be the center of your universe. As he put it, code is executable; a spec is not. 14 00:00:56,794 --> 00:01:00,184 Miessler disagrees strongly. For him, 15 00:01:00,194 --> 00:01:05,182 what matters most is how completely and accurately you articulate exactly what you want. 16 00:01:07,462 --> 00:01:12,552 There’s a second disagreement underneath. Pocock’s workflow has many skills and 17 00:01:12,562 --> 00:01:15,337 commands he encourages people to run by hand. 18 00:01:16,522 --> 00:01:21,500 Miessler sees him at the top of the mountain for the old way of doing things. Heavy 19 00:01:21,510 --> 00:01:25,060 human-in-the-loop steering, he says, is now an anti-pattern. 20 00:01:26,254 --> 00:01:31,319 He doesn’t say remove people entirely. We should still be in the loop sometimes, 21 00:01:31,329 --> 00:01:32,929 just not nearly as much. 22 00:01:34,138 --> 00:01:38,916 And he’s clear that you can still crush your projects with Pocock’s tools. The 23 00:01:38,926 --> 00:01:41,538 question is where your effort pays off most. 24 00:01:43,822 --> 00:01:50,300 Here’s the core diagnosis. Miessler thinks most of the problems we see with AI in 2026 25 00:01:50,310 --> 00:01:51,485 are misattributed. 26 00:01:52,666 --> 00:01:58,718 AI is extraordinary at execution. More and more often, it does the job perfectly, 27 00:01:58,728 --> 00:02:01,554 and the result still differs from what was in our mind. 28 00:02:02,734 --> 00:02:07,249 That isn’t an execution problem. It’s a communication problem: 29 00:02:07,259 --> 00:02:08,859 an articulation problem. 30 00:02:10,042 --> 00:02:13,670 So his rule of thumb: when an AI builds the wrong thing, 31 00:02:13,680 --> 00:02:16,080 check what you told it before you blame the model. 32 00:02:18,358 --> 00:02:23,870 Writers know this trap. It’s called writer’s blindness, or the curse of knowledge. 33 00:02:25,066 --> 00:02:27,181 You believe you’ve captured what’s in your head, 34 00:02:27,191 --> 00:02:30,231 but you haven’t. Once you know something, 35 00:02:30,241 --> 00:02:32,854 it’s hard to imagine reading it without knowing it. 36 00:02:34,054 --> 00:02:39,206 Take an illustrative request: add a notifications page. In your head, 37 00:02:39,216 --> 00:02:43,404 it’s unread items only, newest first, with a mark-all-as-read button. 38 00:02:44,602 --> 00:02:48,392 None of that is on the page, so the reader, human or AI, 39 00:02:48,402 --> 00:02:53,064 fills the gaps differently. The fix is more complete articulation. 40 00:02:55,342 --> 00:03:00,854 Miessler offers a simple model. The source is the idea itself: human thought. 41 00:03:02,050 --> 00:03:05,015 Its first derivative is articulation: writing, 42 00:03:05,025 --> 00:03:08,902 and images. That’s the closest thing we have to thought, 43 00:03:08,912 --> 00:03:12,812 by a wide margin. For him, writing is thinking. 44 00:03:14,014 --> 00:03:17,514 Code is a second derivative: an implementation of the writing. 45 00:03:18,706 --> 00:03:23,008 Like a painting of what the painter wanted to convey, code is an execution, 46 00:03:23,018 --> 00:03:27,081 a facsimile, a representation. Not the source. 47 00:03:28,270 --> 00:03:33,235 Each step away from thought loses fidelity. That’s why he rejects code as the 48 00:03:33,245 --> 00:03:34,882 authoritative artifact. 49 00:03:37,162 --> 00:03:41,012 Miessler grants that code does have more of one thing: precision. 50 00:03:42,214 --> 00:03:47,251 But writing has more accuracy. Picture an archer aiming at a bullseye. 51 00:03:48,466 --> 00:03:52,806 Accuracy without precision: every arrow lands close around the center, 52 00:03:52,816 --> 00:03:55,966 each in a different spot. That’s writing. 53 00:03:57,166 --> 00:04:01,243 Precision without accuracy: one tight group, but out near the edge, 54 00:04:01,253 --> 00:04:04,791 far from what you were trying to hit. That’s code. 55 00:04:05,986 --> 00:04:09,463 We want both. But when building with AI, 56 00:04:09,473 --> 00:04:12,463 Miessler argues accuracy matters far more, 57 00:04:12,473 --> 00:04:15,686 and nothing captures the bullseye in our heads better than writing. 58 00:04:17,950 --> 00:04:23,365 So what do you actually do? You treat written articulation as the most important thing 59 00:04:23,375 --> 00:04:25,650 you can do for any AI project. 60 00:04:26,842 --> 00:04:31,954 Not just a rigid spec or PRD format, but something more holistic and creative. 61 00:04:33,166 --> 00:04:37,643 Since the end of 2025, Miessler has used what he calls an Ideal State Artifact, 62 00:04:37,653 --> 00:04:41,941 or ISA: a deeper capture of what you’re trying to build. 63 00:04:43,138 --> 00:04:47,328 It has four sections: the Ideal State, Constraints, Decisions, 64 00:04:47,338 --> 00:04:51,388 and Ideal State Criteria. Let’s take them in turn. 65 00:04:53,662 --> 00:04:59,489 The Ideal State comes first and matters most. It’s prose, potentially lots of it: 66 00:04:59,499 --> 00:05:04,462 a few paragraphs, or four thousand words of stream of consciousness and introspection. 67 00:05:05,674 --> 00:05:09,976 His harness, LifeOS, uses a Discuss skill to help fill it in, 68 00:05:09,986 --> 00:05:12,061 similar to Pocock’s grill-me skill. 69 00:05:13,246 --> 00:05:16,533 Constraints capture what you don’t want: things not to build. 70 00:05:17,722 --> 00:05:23,324 Decisions record the choices made as the ideal state is updated. You rarely start with 71 00:05:23,334 --> 00:05:29,272 a perfect ideal state. Sometimes it only becomes clear as you build, and that’s okay. 72 00:05:31,558 --> 00:05:37,783 After the ideal state, the most important section is the Ideal State Criteria, or ISCs. 73 00:05:38,986 --> 00:05:42,901 These are what you actually build and test for: extremely atomic, 74 00:05:42,911 --> 00:05:44,911 testable pieces of functionality. 75 00:05:46,126 --> 00:05:50,816 Each criterion has its own eval. That can be a basic assert, 76 00:05:50,826 --> 00:05:55,616 or a multi-phase chain: code, then assert, then a System 1 question set, 77 00:05:55,626 --> 00:05:59,201 up to a rubric, a tournament, or an LLM as judge. 78 00:06:00,394 --> 00:06:04,869 The higher you climb, the more judgment the check involves, and the more it costs. 79 00:06:07,150 --> 00:06:14,325 Here’s what makes this powerful. The evals are defined right alongside the criteria, inside the ISA. 80 00:06:15,538 --> 00:06:18,928 So the criteria are simultaneously what you build from, 81 00:06:18,938 --> 00:06:21,376 and the testing harness that checks the result. 82 00:06:22,558 --> 00:06:25,408 Intent and verification live in one document. 83 00:06:26,602 --> 00:06:29,530 And while the ideal state at the top matters most, 84 00:06:29,540 --> 00:06:34,365 the whole document becomes the closest possible representation of the idea in your mind. 85 00:06:36,646 --> 00:06:41,309 Here’s Miessler’s own small example: an ISA for a family meal planner. 86 00:06:42,490 --> 00:06:47,643 The ideal state reads like a scene. Sunday night, in under five minutes, 87 00:06:47,653 --> 00:06:50,430 there’s a week of dinners everyone is excited about, 88 00:06:50,440 --> 00:06:55,803 and the groceries are already in the cart. Nobody argues about dinner on a Tuesday. 89 00:06:56,998 --> 00:06:59,676 The constraints: nothing with peanuts, ever, 90 00:06:59,686 --> 00:07:04,761 because of Maya’s allergy. And weeknight dinners take forty minutes or less. 91 00:07:05,962 --> 00:07:08,765 One decision is logged with its date and its reason: 92 00:07:08,775 --> 00:07:12,650 calorie tracking was dropped, because it made planning feel like a chore. 93 00:07:13,846 --> 00:07:17,196 Then come five criteria, each paired with an eval. 94 00:07:19,474 --> 00:07:22,937 Now look at how each criterion gets an eval that fits it. 95 00:07:24,142 --> 00:07:28,745 No peanuts, a complete grocery list, and weeknight dinners under forty minutes are 96 00:07:28,755 --> 00:07:32,442 plain facts. A simple code assert checks them. 97 00:07:33,658 --> 00:07:38,573 Would a ten-year-old want to eat each dinner? That goes to a fast model answering a 98 00:07:38,583 --> 00:07:40,208 yes-or-no question set. 99 00:07:41,422 --> 00:07:46,250 Does the week feel varied, never repetitive? That’s a matter of taste, 100 00:07:46,260 --> 00:07:49,847 so a stronger model acts as the judge, at the highest cost. 101 00:07:51,034 --> 00:07:55,734 Notice that even the fuzzy, human parts of the idea become something you can check. 102 00:07:58,006 --> 00:08:03,431 Why does this matter more over time? Miessler points to Richard Sutton’s Bitter Lesson. 103 00:08:04,618 --> 00:08:09,308 Sutton’s point: general methods that ride on more computation keep beating methods 104 00:08:09,318 --> 00:08:11,643 built on human cleverness about the problem. 105 00:08:12,838 --> 00:08:17,866 Miessler’s takeaway: the smarter AI gets, the more it can do exactly what we want, 106 00:08:17,876 --> 00:08:19,363 in a way that delights us. 107 00:08:20,578 --> 00:08:23,343 So over-rotating on spec-driven development, 108 00:08:23,353 --> 00:08:26,618 or on the exact form code takes on any given day, 109 00:08:26,628 --> 00:08:29,028 puts effort in precisely the wrong place. 110 00:08:30,214 --> 00:08:34,742 The smarter the AI, the more effort should go into making sure it knows exactly what 111 00:08:34,752 --> 00:08:37,989 we want, and the less into micromanaging the steps. 112 00:08:40,258 --> 00:08:44,658 Keep Pocock’s objection in view: code is executable, a spec is not. 113 00:08:45,862 --> 00:08:51,740 The ISA’s answer is its criteria. Each one carries an eval that does run, 114 00:08:51,750 --> 00:08:53,925 so the written intent can check the code. 115 00:08:55,138 --> 00:09:01,803 Prose sets the direction, and the evals make it verifiable. The code is still there. 116 00:09:01,813 --> 00:09:04,688 It’s the implementation, not the source of truth. 117 00:09:05,902 --> 00:09:12,052 Which view fits your work is your call. This lesson presents Miessler’s side, as he argues it. 118 00:09:14,338 --> 00:09:19,853 Here’s a way to practice on your next AI task. This exercise is our addition, 119 00:09:19,863 --> 00:09:21,551 built from the essay’s structure. 120 00:09:22,750 --> 00:09:27,703 First, write one paragraph describing the ideal state as a scene: who it’s for, 121 00:09:27,713 --> 00:09:29,525 and what feels right when it works. 122 00:09:30,730 --> 00:09:35,118 Next, list two or three constraints, and start a dated decisions log. 123 00:09:36,310 --> 00:09:38,938 Then write three to five atomic criteria, 124 00:09:38,948 --> 00:09:42,185 and give each the cheapest eval that can honestly check it. 125 00:09:43,378 --> 00:09:47,568 And when the result is wrong, reread your ISA as a stranger would, 126 00:09:47,578 --> 00:09:49,053 before you blame the model. 127 00:09:51,334 --> 00:09:52,472 Let’s recap. 128 00:09:53,674 --> 00:09:59,074 Most AI failures today are articulation failures, not execution failures. 129 00:10:00,286 --> 00:10:05,651 Writing sits closest to thought. Code is precise, but it’s a representation, 130 00:10:05,661 --> 00:10:07,011 further from the idea. 131 00:10:08,194 --> 00:10:13,096 An Ideal State Artifact captures intent in prose, constraints, decisions, 132 00:10:13,106 --> 00:10:16,219 and testable criteria that double as the test harness. 133 00:10:17,422 --> 00:10:21,049 And as AI gets smarter, the work that matters most is saying, 134 00:10:21,059 --> 00:10:24,109 completely and accurately, exactly what you want. 135 00:10:26,386 --> 00:10:29,388 This lesson adapts Daniel Miessler’s essay, 136 00:10:29,398 --> 00:10:34,401 Writing Is Closer to Thought Than Code, published October 23rd, 2026, 137 00:10:34,411 --> 00:10:36,223 on danielmiessler.com. 138 00:10:37,438 --> 00:10:42,940 It’s an independent teaching adaptation. The notifications example and the practice 139 00:10:42,950 --> 00:10:47,688 exercise are our additions, and the narration and graphics are AI-generated. 140 00:10:48,874 --> 00:10:51,701 For the full argument, read the original essay, 141 00:10:51,711 --> 00:10:55,061 and its companion piece on articulating the ideal state.