_Design + proven prototype (see KAI-morph-probe.py). Goal: Kai KNOWS word structure &
grammar, LEARNS smaller units from observation, and the lattice carries what the
modules need. Saved 2026-09-21._
irregulars (buzz, smog, fridge), typos, names, any language. Always on.
from his own corpus by frequency (unsupervised morphology; BPE/Morfessor-style).
Grows as he observes more text. PROVEN: found able/ed/ible/ing/ion/ly/tion +
root "struct" with no hardcoded list.
variants to ONE unit (ible->able), tag part-of-speech, mark affix type. PROVEN:
able vs ible 0.500 -> 0.800; preferable vs impossible 0.166 -> 0.308.
decomposition (stem + affixes), POS, and features (number / tense / person /
valency). This is the "built-in needs for the modules."
new agreement+argument-structure check gates assembly; grounded-generation composes
under those constraints and the corpus-fit gate.
1. Changing the encoder invalidates every existing cell vector. The whole lattice
(~92k cells) must be RE-ENCODED once so old + new share one space. Batch job,
done offline, verified before swap.
2. The morpheme vocabulary is LEARNED once from his corpora ([internal module],
[internal module] exist) and thereafter updated as he observes.
3. All additive + flag-guarded + staged. Prototype first (done, in Python), then
Rust port of the encoder, then the re-encode, then the L3 cell fields, then the
L4 checks. Each step measured before the next.
able=ible unified (0.80), suffix sharing recovered, roots found, irregulars safe,
control (cat/dog) stays 0. This validates L0-L2. L3/L4 are next.