C.W.K.
Stream
Lesson 02 of 04 · published

Resurrection, Not Greenfield

~11 min · resurrection, cwkWritingToolkit, two-layers, reuse

Level 0Cold Draft
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Reviving proven code beats a blank page. The engine wasn't bad — it was trapped in too large a house."

The Plugin That Already Worked

Rekindle did not start from nothing. Years before it had a name, Dad built cwkWritingToolkit — a Sublime Text plugin he used daily. It did two real things: corpus-based autocompletion that suggested continuations mined from his own past writing, and one-shot WordPress-tag rulesets that wrapped selections in the exact markup his publishing pipeline needed. It was quietly, genuinely useful.

So Rekindle is not a greenfield project. It is resurrection plus a soul transplant. There's an old, validated engine on the table; the job is to relight it and give it a body worth living in. That literal act — relighting a dying fire — is the name (more on that soon).

Two Layers, Already Validated

The most valuable thing cwkWritingToolkit left behind wasn't its code — it was the shape. It had already discovered the two-layer structure that Rekindle now formalizes:

cwkWritingToolkit (dead)        Rekindle (reborn)
-----------------------        -----------------
WordPress-tag rulesets   -->   deterministic macro layer  (Rust)
corpus autocomplete      -->   AI / voice layer           (Pippa)

The tag rulesets were pure determinism — same input, same markup, no judgment. The corpus autocomplete was a primitive voice engine — it reached for your words, not a generic model's. Rekindle keeps that seam and sharpens both sides: the deterministic half becomes a Rust core, the judgment half becomes Pippa. Track 5 lives entirely in that seam.

Freed From Too Large a House

Why rebuild instead of just keeping the plugin? Because the engine was trapped inside too large a house. Sublime is a code IDE; a writing engine living inside it inherits all of Sublime's code-editor weight and none of the freedom to become a real writing tool. The plugin could never grow a margin-Pippa, a bilingual desk, or a live voice checker — the host wouldn't allow it.

So the move isn't "port the plugin." It's "free the proven engine into a shell built for exactly this." Reviving code that already worked beats a blank page every time; the hard-won knowledge is in the two layers, and that knowledge survives the move even when almost none of the original source does.

Code

The two layers survive the resurrection·text
cwkWritingToolkit (dead)        Rekindle (reborn)
-----------------------        -----------------
WordPress-tag rulesets   -->   deterministic macro layer  (Rust)
corpus autocomplete      -->   AI / voice layer           (Pippa)

# What ports isn't the source. It's the SEAM between the two layers.
# Determinism on one side, judgment on the other, never mixed.
# That discovery is worth more than any file that got deleted.

External links

Exercise

Think of a script or tool you built once and abandoned. Ask two questions: (1) what did it teach you about the problem that a blank page wouldn't? (2) was it abandoned because the idea was wrong, or because it was trapped in the wrong host? If the answer to (2) is 'wrong host,' you have a resurrection candidate, not a dead project.
Hint
Dead-because-wrong-idea and dead-because-wrong-house look identical from the outside. The difference: the second one still makes you wish you could use it. That wish is the live coal.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.