Weksa/state/map.yaml
2026-05-25 00:27:21 +01:00

265 lines
13 KiB
YAML

project:
name: Weksa
status: scaffolded
phase: state_spine
premise: >
Build a procedural language engine that generates alien languages from
explicit concepts, cultural constraints, grammar, phonology, morphology,
and diachronic history instead of direct English word substitution.
objective:
primary: >
Create a durable workspace where Weksa can develop from a persistent map
before runtime architecture decisions are made.
current: >
Emit concrete v0.1 utterance handoff artifacts for AquaSynth's first
speech-training curriculum while keeping Weksa's ownership limited to
inspected inputs.
constraints:
- Runtime implementation language is undecided.
- Do not add framework, package, build, CLI, or service scaffolding until the
architecture earns it.
- Neural models may decompose, suggest, generate, and critique; they do not
own the canonical language state.
- Runtime should accept interlingua packets and compiled project data;
required hot-path rendering must not depend on arbitrary English
interpretation or live LLM calls.
- Setting-specific projects may pressure the engine, but their ontology must
not become generic Weksa doctrine.
- Zyphos / Eusocial Interbeing canon belongs to the Eusocial Interbeing vault;
Weksa should consume it through explicit naming and language-design briefs.
- Explicit project state must distinguish durable decisions from scratch.
- Avoid direct English-to-alien word replacement as the core design.
- The interlingua must stay language-neutral. Setting-specific pressure starts
in namespaced extensions and only becomes standard when multiple clients or
language projects need it.
- Flavored English is the first lowering target. Alien-language lowering waits
until Weksa can preserve meaning through a character voice humans can judge.
- Agent state is projected context, not prompt prose storage. Raw state
internals must not leak into generated dialogue.
- AquaSynth owns IPA, phoneme, reference-synth, vocal-tract, and speech parity
work. Weksa owns interlingua-to-English projection.
- Weksa still owns English pronunciation planning: tokenization, word
pronunciations, phrase grouping, stress, and broad IPA stringing.
- Long-term speech handoff should use Weksa-provided speech text embeddings,
prosody/emphasis hints, and Ghostlight/Epiphany-shaped character-state
vectors; AquaSynth owns the learned utterance embedding encoder, gradient
descent, and synth-control decoding.
- Large offline text-embedding jobs should use `bge-m3` on the neighboring
Ollama inference box documented in `E:\Projects\gamecult-ops` rather than
running on the local Weksa workspace by default.
invariants:
- Ontology owns meaning.
- Grammar owns required expression.
- Phonology owns sound shape.
- Morphology owns derivation, inflection, compounding, and root families.
- Diachrony owns historical distortion, semantic drift, register split, loan
strata, and irregularity.
- Renderer owns surface text and glosses from already-structured meaning.
- Persistent state owns durable maps, accepted decisions, open questions,
evidence, and working memory.
- Scratch is disposable; the map is slow-changing.
data_flow:
observe:
- source utterance
- interlingua packet
- translation context
- world model
- existing language project state
process:
- accept or decompose source into a Weksa interlingua packet
- optionally project the packet through an agent-local state context
- lower projected meaning into flavored English dialogue
- optionally produce an English pronunciation plan for the lowered dialogue
- optionally encode the line as a learned expression vector for downstream
synth control
- apply alien ontology and cultural salience
- select grammatical commitments
- derive morphology and lexical families
- apply phonological constraints
- apply diachronic history
- render surface alien text, gloss, and explanation
cut:
- remove stages that do not own a clear invariant
- reject generic adapters until a real external boundary exists
- keep model prompts as replaceable tools, not hidden sources of truth
pipeline:
stages:
- id: source-input
title: Source Input
owns: raw utterance and context
emits: source packet
invariant: input text remains recoverable as evidence
- id: interlingua
title: Meaning Interlingua
owns: structured semantic representation
emits: concept/event graph
invariant: meaning is explicit before alien rendering
- id: ontology
title: Alien Ontology
owns: concept splits, collapses, salience, and worldview pressure
emits: alien concept frame
invariant: alien worldview decides which distinctions matter
- id: grammar
title: Grammar
owns: required expression, syntax, agreement, and clause structure
emits: grammatical plan
invariant: surface output carries required commitments
- id: morphology
title: Morphology
owns: roots, derivation, inflection, compounds, and families
emits: morpheme plan
invariant: related forms remain related for a reason
- id: phonology
title: Phonology
owns: legal sounds, syllables, phonotactics, and prosody
emits: legal proto-forms
invariant: generated forms belong to one sound system
- id: diachrony
title: Diachrony
owns: historical sound change, semantic drift, registers, loans, scars
emits: attested forms
invariant: plausible irregularity comes from history, not decoration
- id: renderer
title: Renderer
owns: surface alien text, glosses, and analysis output
emits: final translation packet
invariant: rendering does not invent meaning
edges:
- source: source-input
target: interlingua
carries: source packet
- source: interlingua
target: ontology
carries: concept/event graph
- source: ontology
target: grammar
carries: alien concept frame
- source: grammar
target: morphology
carries: grammatical plan
- source: morphology
target: phonology
carries: morpheme plan
- source: phonology
target: diachrony
carries: legal proto-forms
- source: diachrony
target: renderer
carries: attested forms
accepted_design:
- Weksa starts with a language-neutral persistent state spine rather than a
runtime scaffold.
- The EpiphanyAgent pattern is ported as architecture discipline, not as Rust
code or product-specific organs.
- The first model is concept-first translation through an explicit
interlingua, ontology, grammar, morphology, phonology, diachrony, and
renderer pipeline.
- The interlingua packet is the client-facing meaning contract. It owns
referents, predications, relations, discourse, context, provenance,
constraints, extensions, and trace data before ontology projection.
- English lowering through agent state is the first proof target before alien
language rendering.
- Nibu is the first target for flavored-English lowering, using her VoidBot
state and Aetheria lore note as source context.
- Weksa is the engine. A language project owns one constructed language.
Setting docs own story, species, culture, and use cases.
- Rust to Dust is an earlier proving ground, not engine doctrine.
- Zyphos / Eusocial Interbeing is now the higher-priority setting target for
Weksa naming and language-design work.
- Time-sensitive runtime paths should be deterministic and LLM-free.
Model-assisted decomposition, generation, and critique belong in authoring
or offline workflows.
- `docs/best-modern-approach.md` is the current doctrine for conceptual
ontology, root generation, morphology, syntax, lexical semantics,
interlingua, diachrony, and model-assisted consistency.
- Eusocial Interbeing is a second setting collaboration surface. It needs
inhabitant-language names derived from speaker ontology, register,
phonology, morphology, diachrony, and setting context rather than direct
English label translation.
- Airawa first-contact work should begin with social mechanics rather than
scenery vocabulary: identity, formal naming, origin, approach permission,
border-right, peace claim, obligation, gratitude/debt, witness, authority,
guest status, mother-tree access, nutrient gift, and taboo delivery.
- The current Airawa starter forms are provisional seed evidence, not canon.
They must be promoted through a language-project state that explains their
morphology, phonology, grammar, and allowed usage before Weksa claims clean
full translation.
open_questions:
- Which implementation language best serves the first usable engine?
- What format should language projects use for ontology, grammar, phonology,
morphology, and diachrony definitions?
- What compiled runtime bundle format keeps game-time rendering fast and
inspectable?
- How should Weksa persist or cache speech text embeddings generated by
`bge-m3` on the neighboring Ollama box before AquaSynth turns them into
utterance embeddings?
- How much deterministic validation belongs in v0?
- What is the minimal Rust to Dust language-project slice that proves the
engine without hard-coding the setting into it?
- What minimal Eusocial Interbeing language-project slice can prove naming for
Airawa, Sa'auei'a, ecological partner, and imperial registers without
collapsing them into one universal language?
- Which Zyphos language project should be first: Airawa, imperial Airawa,
Sa'auei'a, or a narrow naming-brief interlingua?
- What is the minimal Airawa starter lexicon and permission model needed to
translate the first chieftain/visitor/mother-tree scene honestly?
- How should Airawa encode honorable scars: bodily evidence, honor claim, debt
marker, warrior-status signal, or a split among those meanings?
- What Weksa naming brief schema best serves nation-scale interbeings,
ecological memory networks, and mobile family-unit civilizations?
- Which interlingua fields should be promoted from namespaced extensions after
the first real Zyphos and Rust to Dust packets?
- What exact projected-context subset should Weksa accept from Ghostlight-style
agent state for English lowering?
- What exact pass/fail rubric proves a Nibu-flavored English line preserves
interlingua meaning instead of merely sounding sharp?
- What English G2P path should become executable first: CMUdict lookup plus
ARPABET-to-IPA conversion, eSpeak NG oracle comparison, or a trained OOV
model?
- What training corpus should the first AquaSynth-owned utterance embedding
encoder use now that the v0.1 handoff fixes Weksa inputs at 1024 + 32 + 64
floats and AquaSynth output at 64 floats?
landed_baseline:
- Language-neutral state spine.
- Canonical pipeline map.
- Scratch surface.
- Schema receipt docs.
- Rust to Dust setting documentation skeleton.
- Eusocial Interbeing naming surface at settings/eusocial-interbeing.
- Zyphos language-design pressure note.
- Airawa first-contact slice recording room consensus on strong sound,
introduction vocabulary, permission-bound dialogue, and the boundary against
direct English-to-Airawa substitution.
- Draft Weksa interlingua standard and packet schema receipt.
- Draft flavored-English lowering contract.
- Nibu lowering target note.
- First English pronunciation plan fixture for Nibu proof output.
- First toy utterance embedding handoff fixture for Nibu proof output.
- First executable utterance handoff emitter at
`tools/emit_tiny_panphon_handoffs.py`.
- First machine-readable AquaSynth speech-training seed batch at
`examples/speech-training/tiny-panphon-v0.1/batch.json`, covering pure IPA
`a`, `pa`, `ta`, `ka`, `sa`, and `ma` with fixed v0.1 vector widths and
PanPhon's 22-feature basis.
- Weksa-to-AquaSynth utterance embedding handoff v0.1 fixes the training
vector contract: 1024-float `bge-m3:latest` speech text embedding,
variable-length PanPhon sequence evidence, a 256-float AquaSynth-owned
phonetic realization embedding, 32-float prosody/emphasis hints, 64-float
projected character state, and 64-float AquaSynth-owned utterance embedding
output. Toy fixtures are marked non-training if they do not use those
dimensions.
- Speech text embedding and phonetic realization are separate channels.
English text semantics may use `bge-m3`; IPA strings and alien phonetic
material belong in PanPhon sequence evidence that AquaSynth compresses into
the phonetic realization embedding.
- First Nibu interlingua-to-English lowering fixture.
- `bge-m3:latest` installed on neighboring Ollama box `192.168.1.84` and
verified through a 1024-dimensional utterance embedding.