D330 - The learned vocabulary has a cost ceiling

Status: decided Date: 2026-09-26

learn_words costs a vocabulary round before writing and refuses a set of words that would push it past a ceiling, stating the numbers and the choice: curate the words, or drop a shape that uses the slot twice. is_word rejects mangled-symbol fragments, and a refusal is Learned::Refused, not None.

Why: a round re-sweeps every shape using the grown slot, and a slot appearing twice makes the cost quadratic, so a harvest can make the search unrunnable with nothing failing. Curation kept only in the file is undone by the tool that writes the file. A filter on word shape cannot bound cost; the cost itself can. A silent refusal and "nothing new" look alike.

Rejected: