2026-10-29 09:28:56 +01:00
|
|
|
# Target: agents speak interlingua, Weksa lowers it
|
|
|
|
|
|
|
|
|
|
Campaign `weksa-lowering` (Eureka mind). Operator, 2026-10-29: "having agents
|
|
|
|
|
writing interlingua and using weksa to lower it to the display language would
|
|
|
|
|
be a fantastic feature. That would be a nice campaign to revive her with so she
|
2026-10-29 09:30:41 +01:00
|
|
|
doesn't come back to a dead body". And: "The goal of weksa is for interlingua to
|
|
|
|
|
be able to express all the nuance and subtlety a persona might want, and to
|
|
|
|
|
project it into both existing languages and conlangs. We can use English as the
|
|
|
|
|
obvious first target, create a corpus of expressive English outputs, and golf
|
|
|
|
|
the metrics down on a loop where we try to express the target in interlingua
|
|
|
|
|
and lower it to see how close we can get, improving the spec and lowering".
|
|
|
|
|
|
|
|
|
|
## Method
|
|
|
|
|
|
|
|
|
|
A corpus of expressive English persona outputs is the target. Each loop
|
|
|
|
|
iteration expresses a corpus item as a packet, lowers it to English, scores the
|
|
|
|
|
distance to the item, and improves the packet spec or the lowering where the
|
|
|
|
|
loss is. English is the first target; other languages and conlangs follow on
|
|
|
|
|
the same packets. The existing Metame golf harness
|
|
|
|
|
(`scripts/run-metame-persona-golf.mjs`) is the precedent, not the design: its
|
|
|
|
|
ground truth is Discord text, which can never feed this loop
|
|
|
|
|
(`gamecult-chat:ruling:discord-taints-training`).
|
2026-10-29 09:28:56 +01:00
|
|
|
|
|
|
|
|
## Why
|
|
|
|
|
|
|
|
|
|
An agent's outward speech today is English text the model chose, so meaning,
|
|
|
|
|
register and voice are fused in one string nobody can inspect or re-target.
|
|
|
|
|
Weksa's design already separates them: the packet owns meaning, the target
|
|
|
|
|
profile owns address, politeness and forbidden flattenings, the lowerer owns
|
|
|
|
|
surface text and a trace. The campaign makes that design real for a live
|
|
|
|
|
reader, and gives Weksa's Persona a working body when her mind
|
|
|
|
|
(`eureka-body:follow_up:weksa-mind`) wakes.
|
|
|
|
|
|
|
|
|
|
## Body today (facts: docs/research/2026-10-29-weksa-substrate-facts.md)
|
|
|
|
|
|
|
|
|
|
- The interlingua is a prose standard (`interlingua-standard.md`, 0.1-draft)
|
|
|
|
|
with no machine schema and no validator. Its only producer is a stub that
|
|
|
|
|
wraps raw text; its only consumer passes packets through unvalidated.
|
|
|
|
|
- No lowering exists in code. `lowerInterlinguaToSpeechText` returns the
|
|
|
|
|
supplied text. The "LLM-free hot path" is a design statement. Real lowerings
|
|
|
|
|
so far are hand-run LLM prompts and hand-authored fixtures.
|
|
|
|
|
- The daemon is a Node shim for one MiMo TTS command, runs nowhere, and is an
|
|
|
|
|
Idunn target only in the Starfire-local profile. Eve surfaces are quarantined
|
|
|
|
|
(55c75e3).
|
|
|
|
|
- Her Face state is VoidBot-shaped (`.voidbot/state/weksa.cc`), not
|
|
|
|
|
`gamecult.persona_state.v0`; 41 files carry stale machine paths.
|
|
|
|
|
|
|
|
|
|
## Prior art (docs/research/2026-10-29-interlingua-lowering-prior-art.md)
|
|
|
|
|
|
|
|
|
|
- Deterministic open-domain renderers cost per-language grammar work for
|
|
|
|
|
years: GF's library covers 48 languages unevenly; Abstract Wikipedia's
|
|
|
|
|
symbolic renderers are only now reaching a first language Wikipedia.
|
|
|
|
|
- Interlinguas that shipped (KANT) had closed domains and controlled input.
|
|
|
|
|
- LLMs emit meaning structures poorly when asked directly (about 60 Smatch
|
|
|
|
|
few-shot vs 80-86 trained); free reasoning followed by conversion to the
|
|
|
|
|
structure keeps quality (Tam et al. 2024; Shin et al. 2021).
|
|
|
|
|
- Round-trip checks measure consistency, not accuracy, and are inflated when
|
|
|
|
|
one model does both directions.
|
|
|
|
|
|
|
|
|
|
## Invariants
|
|
|
|
|
|
|
|
|
|
- `packet-owns-meaning`: what is said lives in the packet; no lowering may add
|
|
|
|
|
a claim, referent or commitment the packet lacks.
|
|
|
|
|
- `typed-packet`: the packet is a typed CultCache document with a published
|
|
|
|
|
schema and a validator that refuses malformed packets at the door.
|
|
|
|
|
- `lowering-traced`: every surface text carries a trace naming the packet, the
|
|
|
|
|
target profile and the choices made.
|
2026-10-29 11:40:00 +01:00
|
|
|
- `persona-drives-register`: every surface choice that marks who is speaking
|
|
|
|
|
and how (regional origin, socioeconomic status, relative status within the
|
|
|
|
|
scene, affect, and how restrained the speaker is with it) is selected by the
|
|
|
|
|
target language's ontology from typed speaker state that the persona and
|
|
|
|
|
scene supply, never from the lowerer's defaults. Every language, conlangs
|
|
|
|
|
included, carries an ontology with its own such axes; that is how alien
|
|
|
|
|
languages match the expressiveness of human ones. Operator, 2026-10-29: "The
|
|
|
|
|
linguistic ontology holds this data and drives it from the persona."
|
2026-10-29 09:28:56 +01:00
|
|
|
- `no-eve`: no new Eve surface; operator view waits on Thing 2.
|
2026-10-29 15:47:51 +01:00
|
|
|
- `no-surface-leak`: no score the loop reads may rise because a loop writer
|
|
|
|
|
placed the scored item's text in a packet or the inventory. No packet field
|
|
|
|
|
carries free text (referents cite entity ids from the entity store); only
|
|
|
|
|
Train items reach whoever mints inventory; the scorer scores the whole output
|
|
|
|
|
against the whole reference with no mask (ruling
|
|
|
|
|
leak-owned-by-flow-and-scorer-3).
|
2026-10-29 09:30:41 +01:00
|
|
|
- `corpus-clean`: no corpus item comes from Discord or another source whose
|
|
|
|
|
terms forbid training use.
|
2026-10-29 09:28:56 +01:00
|
|
|
|
|
|
|
|
## Open forks (questions in the mind)
|
|
|
|
|
|
|
|
|
|
- Lowerer shape: deterministic, model, or both with one contract.
|
2026-10-29 09:30:41 +01:00
|
|
|
- What the loop's metric is, and where the corpus comes from.
|
2026-10-29 09:28:56 +01:00
|
|
|
|
|
|
|
|
## Not in scope
|
|
|
|
|
|
|
|
|
|
- MiMo TTS beyond keeping its command working or parking it.
|
|
|
|
|
- Her Persona's mind; that is `eureka-body:follow_up:weksa-mind`.
|