You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
content: both apps were built from single-sentence prompts
Clarifies the strongest claim, which the articles were undercutting:
the founding PRD, architecture and plan documents were drafted by the
agent, not the author — from reference context the agent fetched for
itself (GnuCash's source and manual; Obsidian and Bear feature lists).
The author approved documents, and did not write them.
Both descriptions now say "built from a single-sentence prompt", the
FinvestLens ground-truth passage no longer claims the agent could not
have obtained the source it in fact cloned, and both articles close on
the point: a complete, shipping application, from a single sentence.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: src/content/blog/2026-07-27-finvestlens-1-0.md
+36-29Lines changed: 36 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: 'FinvestLens 1.0: 56,000 lines of accounting software in fourteen days'
3
-
description: A native Apple double-entry accounting app, verified against a real 46,000-transaction GnuCash book to the cent — built by writing specifications and issuing prompts. What the method got right, and what real data found that no test suite would.
3
+
description: A native Apple double-entry accounting app, verified against a real 46,000-transaction GnuCash book to the cent — built from a single-sentence prompt, with the agent drafting its own specifications. What the method got right, and what real data found that no test suite would.
4
4
author: chris-tham
5
5
publishDate: 2026-07-27T07:00:00.000Z
6
6
featuredpost: true
@@ -29,12 +29,14 @@ The first commit landed on 12 July 2026. This one is 26 July. In between: 325
29
29
commits, ten Swift packages, 56,611 lines across 221 files, 1,179 tests, and a
30
30
phase plan taken from P0 through P10.
31
31
32
-
I typed very little of it, and less than you would guess. The instructions were
33
-
mostly of two shapes — _"implement the next phase"_ and _"audit the implemented
34
-
codebase against the plan and fix what you find"_ — issued to **Claude Code**,
35
-
Anthropic's coding agent, running in an agentic loop. The specification said what
36
-
done meant. The audits found the mistakes. That division of labour is the more
37
-
interesting story.
32
+
I typed very little of it, and less than you would guess. The whole project
33
+
began as a single sentence — reimplement GnuCash as a native app for Apple
34
+
platforms — and after that the instructions were mostly of two shapes:
35
+
_"implement the next phase"_ and _"audit the implemented codebase against the
36
+
plan and fix what you find"_, issued to **Claude Code**, Anthropic's coding
37
+
agent, running in an agentic loop. The specification said what done meant. The
38
+
audits found the mistakes. That division of labour is the more interesting
39
+
story.
38
40
39
41
The method was not improvised. It is the one I set out in Chapters 2 and 3 of my
40
42
book [_AI-dō_](https://christham.net/aidou/) — the practice and the craft — and
@@ -48,13 +50,13 @@ on whether the Way holds up.
48
50
Nothing here is exotic, and I'd rather state it plainly than let anyone imagine
Copy file name to clipboardExpand all lines: src/content/blog/2026-07-27-hellonotes-1-0.md
+7-6Lines changed: 7 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: 'HelloNotes 1.0: a Markdown knowledge base that is actually a Mac app'
3
-
description: Fifteen days, 220 commits and 32,000 lines of Swift — a local-first knowledge base whose database is a folder, built by prompting. What the method got right, and the four traps that ate real hours.
3
+
description: Fifteen days, 220 commits and 32,000 lines of Swift — a local-first knowledge base whose database is a folder, built from a single-sentence prompt. What the method got right, and the four traps that ate real hours.
4
4
author: chris-tham
5
5
publishDate: 2026-07-27T06:00:00.000Z
6
6
featuredpost: true
@@ -145,7 +145,7 @@ Both the app and its website follow your Mac, or pin to one appearance:
145
145
146
146
## How this was actually built
147
147
148
-
I wrote very little of this code by hand. I built HelloNotes by prompting [Claude Code](https://claude.com/claude-code), and the git history is co-authored throughout.
148
+
I wrote very little of this code by hand. I built HelloNotes by prompting [Claude Code](https://claude.com/claude-code), the git history is co-authored throughout — and the whole thing began as one sentence.
149
149
150
150
It wasn't improvised, either. I published **[AI-dō — The Way of AI](https://christham.net/aidou/)** — a book arguing that working with AI is a discipline rather than a vibe — on **8 July**. The first commit in this repository is dated **11 July**. HelloNotes is the first thing I've built start-to-finish under a method I'd finished writing down three days earlier — specifically [Chapter 2, _Personal Productivity_](https://christham.net/aidou/productivity.html) and [Chapter 3, _Software Development_](https://christham.net/aidou/software.html).
151
151
@@ -162,9 +162,10 @@ Before any code existed, I asked Claude to generate three documents based on my
162
162
That intent could afford to be vague because the anchors were strong.
163
163
HelloNotes sits in a category that existing products have already mapped —
164
164
Obsidian for the linking model, Bear for what native ought to feel like — and
165
-
the PRD was drafted against those reference points. The four-way gap in "The
166
-
bet" above _is_ the specification: name what to keep and what to refuse from
167
-
each anchor, and the requirements largely write themselves. A vague prompt over
165
+
the PRD was drafted against those reference points — feature lists the agent
166
+
researched and fetched for itself, not ones I wrote out. The four-way gap in
167
+
"The bet" above _is_ the specification: name what to keep and what to refuse
168
+
from each anchor, and the requirements largely write themselves. A vague prompt over
168
169
strong references beats a precise prompt over none.
169
170
170
171
The plan is the part that made this work. Each milestone wasn't a wish, it was a table — task, target file, and an **acceptance criterion**:
@@ -185,7 +186,7 @@ as one of those passes. Extending something that already runs is an easier
185
186
conversation than specifying everything up front, because the app itself
186
187
becomes part of the reference context.
187
188
188
-
Why this works is worth being exact about, because the book states it as a caution: _"A model is a next-token predictor, not a compiler: it does not execute a specification, it produces the most plausible continuation of everything in its context."_ A spec doesn't help by being run — nothing runs it. It helps by putting the definition of _right_ into that context before the work starts, so that afterwards there is something other than plausibility to judge the output against. Commissioning that plan, and stating what "done" meant in it, was the highest-leverage work of the fortnight. Everything after it was "do Milestone 3".
189
+
Why this works is worth being exact about, because the book states it as a caution: _"A model is a next-token predictor, not a compiler: it does not execute a specification, it produces the most plausible continuation of everything in its context."_ A spec doesn't help by being run — nothing runs it. It helps by putting the definition of _right_ into that context before the work starts, so that afterwards there is something other than plausibility to judge the output against. Commissioning that plan — and insisting the work be judged against the acceptance criteria in it — was the highest-leverage thing I did all fortnight. The heading above is not a paraphrase: one sentence went in, and the PRD, the architecture and the plan came out, drafted by the agent from context it had gathered itself. Everything after that was "do Milestone 3".
189
190
190
191
(That plan has since been folded into [`implemented.md`](https://github.com/hellotham/hellonotes/blob/main/docs/implemented.md), which is the honest engineering log — milestones, fixes, and a lot of what _didn't_ work. It's still in git history if you want the original.)
0 commit comments