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

The Two Layers

~11 min · two-layers, deterministic, judgment, seam

Level 0Cold Draft
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"One layer always gives the same answer. The other has to think. Keep them on opposite sides of a hard line."

The Two Layers, Rediscovered

Rekindle's deepest structural rule isn't invented — it's the seam cwkWritingToolkit already had. That old plugin did two things, and they were fundamentally different kinds of thing. The WordPress-tag rulesets were deterministic: wrap this selection in that markup, every time, no thought required. The corpus autocomplete was judgment: reach for the word the writer would actually use next. One is a fixed transform; the other is a decision. Rekindle names them and gives each its own home — deterministic to the Rust core, judgment to Pippa.

Layer          Question it answers            Home
-------------  -----------------------------  --------
deterministic  "same input -> same output?"    Rust core
judgment       "what fits here, in context?"   Pippa

Never Mix Them

The rule isn't just "have two layers" — it's never mix them. Don't push judgment (tone, register, does-this-sound-like-Dad) into the Rust core, and don't put deterministic work (parsing frontmatter, applying an export ruleset) behind an AI call. The moment you blur the seam, both sides get worse: your deterministic transforms become non-reproducible because a model is in the path, and your judgment gets brittle because it's trapped in a rule table. The line is what keeps each side able to do its job well.

The Same Spine Across the Family

This is a family spine, not a Rekindle quirk. Loomis draws it as deterministic geometry first, ML confined to landmark fitting — the drawing construction is computed and reproducible; only the messy perception step uses a model. Rekindle draws the same line one domain over: reproducible text transforms in Rust, open-ended voice and rewriting in Pippa. Whenever a tool mixes 'always the same' work with 'needs a decision' work, the winning move is to name the seam and refuse to let the two bleed.

Code

The seam, inherited from cwkWritingToolkit·text
cwkWritingToolkit         ->  Rekindle          kind of work        home
------------------------      ---------------   ------------------  --------
WordPress-tag rulesets    ->  export rulesets   deterministic       Rust core
corpus autocomplete       ->  voice + CMD+K      judgment            Pippa

# One layer: same input -> same output, no model.
# Other layer: context-dependent decisions, a model.
# The rule is not just 'two layers' — it's NEVER MIX them.

External links

Exercise

List five things a writing tool might do (e.g. insert today's date, suggest a warmer synonym, wrap a selection in a shortcode, flag a banned word, rephrase a sentence). Sort each into 'deterministic' or 'judgment.' For any you find hard to place, ask the deciding question: would the same input always produce the same output? That question is the whole seam.
Hint
Insert-date, wrap-in-shortcode, flag-a-banned-word: deterministic (same input, same output). Suggest-a-warmer-synonym, rephrase-a-sentence: judgment (context-dependent). The banned-word flag is the instructive one — it feels like 'voice' but is deterministic.

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.