"Do not write a feature list — that's how it becomes a general-purpose editor again."
Don't Write a Feature List
The architecture says it in plain words, and it's the closing discipline of the whole project: don't write a feature list. A list invites completeness for its own sake. You start ticking boxes because they're on the list, and one day you look up and you've rebuilt the greatest-common-denominator editor you fled — this time with your own name on it. The feature list is not a plan; it's the disease, wearing a plan's clothes.
Bricks, Smallest-Magic-First
What replaced the list was bricks, laid smallest-magic-first. Brick 0 was a genuinely usable local editor with no brain at all: a window, the borrowed CM6 core, open/edit/save a file, Live Preview. It proved the riskiest unknowns first (does the core survive Korean IME? does the file round-trip work? do decorations carry Live Preview?) and it stood on its own. Only then came brick 1 — the soul: bind one conversation, and let CMD+K rewrite a line in place. That's the moment it stopped being a markdown editor and became Rekindle.
Brick 0 a usable local editor, no brain
window + borrowed CM6 core + open/edit/save + Live Preview
-> proves the riskiest unknowns (IME, file round-trip, decorations)
Brick 1 the soul
bind one cwkPippa conversation + CMD+K inline rewrite
-> the moment it becomes Rekindle, not just an editor
After grown organically — only what the one real user reached for
Everything after grew the same way: the voice underline, the three-tier connection, snapshots, the corpus completion, the evidence panel. None of it came from a roadmap; each arrived because Dad hit a wall in real writing and the wall was worth removing. That's what 'concrete-first, never generalize in anticipation' means in practice — the same way Loomis grew from one experiment into a full studio, one real need at a time.
Build Your Own
Which brings this to you. Rekindle's code is private — so what's been shared here isn't a repo to clone, it's the shape of the decisions: build for a market of one, borrow the commoditized core, keep source as the model, find the single primitive your features share, split deterministic from judgment, bind rather than fork a brain, keep the files canonical, and make the soul the center. Those port to any stack, any editor, any medium. There is no git clone at the end of this lesson, and there was never going to be — because the thing worth taking was never the source. It's the reasoning, and the years are yours to spend on your own.