WEBVTT

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.
