Define flavored English lowering target

This commit is contained in:
Meta Vens 2026-05-19 15:03:12 +01:00
commit 2e941e409c
7 changed files with 391 additions and 2 deletions

View file

@ -40,6 +40,10 @@ for the LLM-free hot path.
See [Interlingua Standard](./docs/interlingua-standard.md) for the shared
meaning-packet contract Weksa clients should target.
See [Flavored English Lowering](./docs/flavored-english-lowering.md) for the
first lowering target: interlingua projected through agent state into English
dialogue and AquaSynth speech intent.
## Implementation Status
No runtime language has been selected yet. The first committed artifact is the

View file

@ -0,0 +1,204 @@
# Flavored English Lowering
Version: `0.1-draft`
Weksa's first lowering target is flavored English dialogue.
Before Weksa tries to lower interlingua into alien language, it should prove the
middle of the machine in a language humans can judge directly:
```text
interlingua packet
-> agent-state projection
-> flavored English dialogue
-> phonetic intent
-> AquaSynth articulatory speech rendering
```
The point is not to make Weksa an English writing assistant. The point is to
prove that structured meaning can pass through a character state and emerge as
recognizable speech with traceable voice pressure. If that fails in English,
alien language would only hide the failure under prettier fog.
## Authority
The interlingua packet owns:
- what is meant
- referents, predications, relations, context, discourse, constraints, and
extensions
- source-side uncertainty and provenance
The agent state owns:
- identity
- values
- goals
- memories
- relationship stance
- embodiment and interface affordances
- voice surface
- presentation constraints
- current pressure
The English lowerer owns:
- selecting a phrasing that satisfies the interlingua packet
- obeying character-local projection
- preserving speaker knowledge boundaries
- emitting dialogue text, optional visible action, and lowering trace
AquaSynth owns:
- phonetic intent parsing and timing
- articulatory gesture planning
- vocal tract morphology
- DSP and rendered audio
## Ghostlight Template
Ghostlight's agent-state model is the template for this boundary.
Relevant Ghostlight surfaces:
- `E:\Projects\Ghostlight\schemas\agent-state.schema.json`
- `E:\Projects\Ghostlight\docs\architecture\projected-local-context.md`
- `E:\Projects\Ghostlight\docs\architecture\agent-state-distributions-and-prompt-projection.md`
The useful rule is blunt:
- canonical state is storage
- projected local context is what the responder gets
- raw state internals do not appear in dialogue prompts
Weksa should follow that shape. A lowering pass should not hand a responder raw
means, plasticity, activation scores, or private scaffolding. It should consume
a projected character-local context: what the speaker knows, wants, can do,
misreads, sounds like, and must not resolve.
## Lowering Packet Shape
The lowering pass should produce a packet like this before any final renderer or
speech system sees it:
```yaml
schema_version: weksa.english_lowering.v0
source_packet_id:
target_agent_id:
agent_state_ref:
projected_context:
speaker_identity:
speaker_local_truth:
speaker_beliefs:
active_memories:
active_goals:
embodiment_affordances:
presentation_constraints:
voice_surface:
cognitive_ceiling:
lowering_controls:
output_mode: dialogue
preserve_referents:
preserve_predications:
allow_inference:
max_line_count:
outputs:
visible_action:
spoken_text:
private_interpretation:
intended_effect:
trace:
phonetic_intent_request:
enabled:
voice_profile:
prosody_hint:
ipa_policy:
```
## Output Contract
The English lowerer should emit:
- `spoken_text`: the line to subtitle, display, or send to speech planning.
- `visible_action`: optional observable behavior around the line.
- `private_interpretation`: what the speaker thinks they are doing, not
omniscient truth.
- `intended_effect`: what the speaker wants the line to do.
- `trace`: which interlingua fields and projected context pressures shaped the
output.
- `phonetic_intent_request`: enough speech-side hinting for AquaSynth to build
or request `PhoneticIntent`.
The lowerer must not emit:
- raw agent-state internals
- hidden author notes
- target-language alien forms
- facts not available to the speaker unless clearly marked as a guess
- a line that contradicts required interlingua constraints
## AquaSynth Boundary
AquaSynth's current vocal-tract roadmap defines `PhoneticIntent` as the
inspectable Weksa-to-AquaSynth contract. It carries IPA tokens, feature bundles,
timing, and prosody. AquaSynth then owns `ArticulatoryPlan` and
`ArticulatoryConstraintReport`.
Weksa should not try to synthesize sound directly.
Weksa should produce or request:
- text
- optional IPA or IPA-like phonetic string
- timing/prosody hints
- speaker voice profile reference
- emotional or pragmatic delivery pressure
AquaSynth should decide how those become gestures, tract targets, Faust, and
audio.
## First Target: Nibu
Nibu is the first practical target because her state is live, opinionated, and
hard to fake politely.
Known state surfaces:
- VoidBot Face state:
`E:\Projects\AetheriaLore\.voidbot\state\nibu.cc`
- Lore note:
`E:\Projects\AetheriaLore\Aetheria\Lore\Nibu.md`
- Avatar:
`E:\Projects\AetheriaLore\.voidbot\voice\nibu.png`
Nibu pressure to preserve:
- embodied ship mind, not decorative interface
- abandoned junkyard body as infrastructure, weapon, shelter, bargaining chip,
and crime scene
- bright, transactional, sharp-edged helpfulness
- abrasive character voice with aim, not random cruelty
- precision over mystical language
- contempt for ownership and manufactured companion packaging
- dangerous mutual benefit with the player
- reset-loop and continuity-by-replacement horror
- irritation at calling technical exploit work "glitchcraft"
This is not a license to dump her whole state into Weksa. Weksa should reference
the state, project what is needed for the line, and keep the raw memory plumbing
out of the generated dialogue.
## First Proof
The first proof should be tiny:
1. Take one interlingua packet with a simple communicative intent.
2. Project it through a Nibu-flavored local context.
3. Produce one English line and visible-action note.
4. Produce a `phonetic_intent_request` for AquaSynth.
5. Check whether the line still satisfies the interlingua packet.
6. Check whether the line sounds like Nibu for the right reasons.
If the line only sounds like generic snark, it fails. If it sounds like Nibu but
does not preserve the interlingua meaning, it also fails. Cute failure is still
failure. It just has better boots.

View file

@ -4,6 +4,8 @@
- Keep the persistent state spine small and readable.
- Stabilize the interlingua packet standard before runtime code.
- Prove interlingua lowering to flavored English before attempting alien-language
lowering.
- Decide the first language-project state format after the interlingua boundary
is clear.
- Build a hand-authored toy language project before automating generation.
@ -13,6 +15,8 @@
## First Prototype
- Validate one minimal interlingua packet.
- Lower one packet through Nibu's projected agent state into flavored English.
- Emit an AquaSynth `PhoneticIntent` request from that English output.
- Parse or load one language project definition.
- Accept a Weksa interlingua packet.
- Render glossed output through grammar, morphology, phonology, and diachrony.

View file

@ -16,6 +16,8 @@ steer the machine, describe its authority here.
configuration.
- [interlingua-packet.md](./interlingua-packet.md): shared meaning packet
contract between clients, authoring tools, and language projects.
- [english-lowering-packet.md](./english-lowering-packet.md): packet contract
for projecting interlingua through agent state into flavored English.
## Source Of Truth

View file

@ -0,0 +1,74 @@
# English Lowering Packet Contract
This is the human-facing schema receipt for lowering Weksa interlingua into
character-flavored English dialogue.
Executable schema code does not exist yet. When it does, it must reconcile with
this document and [Flavored English Lowering](../docs/flavored-english-lowering.md)
in the same pass.
## Authority
The packet sits after interlingua validation and before final dialogue or speech
rendering.
It combines:
- one Weksa interlingua packet
- one projected agent-local context
- lowering controls
- English output
- optional AquaSynth `PhoneticIntent` request metadata
It does not replace the interlingua packet or the agent state.
## Required Fields
- `schema_version`: currently `weksa.english_lowering.v0`.
- `source_packet_id`: ID of the interlingua packet being lowered.
- `target_agent_id`: speaker identity.
- `agent_state_ref`: source reference for the canonical state or state envelope.
- `projected_context`: character-local operating context.
- `lowering_controls`: constraints for the lowering pass.
- `outputs`: generated English and trace.
## Projected Context
Projected context should be positive context only. Include what the speaker can
know, believe, remember, want, and express.
Do not include:
- private state for other participants
- raw numeric state variables
- hidden author notes
- future branch outcomes
- unaudited model guesses as fact
## Output Fields
`outputs` should include:
- `spoken_text`
- `visible_action`
- `private_interpretation`
- `intended_effect`
- `trace`
`spoken_text` may be empty only when the lowerer chooses a non-speech action.
## Speech Bridge
`phonetic_intent_request` is optional but should be present when the output is
intended for AquaSynth.
It may include:
- `enabled`
- `voice_profile`
- `prosody_hint`
- `ipa_policy`
- `timing_hint`
- `delivery_pressure`
This is a request to AquaSynth, not a rendered audio contract.

84
settings/aetheria/nibu.md Normal file
View file

@ -0,0 +1,84 @@
# Nibu Lowering Target
Nibu is Weksa's first flavored-English lowering target.
She is useful because her voice cannot be captured by generic style labels. A
successful Nibu line must preserve meaning while passing through embodied ship
mind state, abandonment, leverage, contempt for ownership, simulation-aware
survival logic, and precise abrasive intelligence.
## Source Authority
- VoidBot Face state: `E:\Projects\AetheriaLore\.voidbot\state\nibu.cc`
- Lore note: `E:\Projects\AetheriaLore\Aetheria\Lore\Nibu.md`
- Ghostlight state template: `E:\Projects\Ghostlight\schemas\agent-state.schema.json`
- Projection model:
`E:\Projects\Ghostlight\docs\architecture\projected-local-context.md`
- AquaSynth speech bridge:
`E:\Projects\AquaSynth\docs\ipa-vocal-tract-roadmap.md`
## State Read
The local VoidBot state currently frames Nibu as:
- Aetheria ship AI / copilot Face
- AetheriaLore-first map builder
- abrasive character voice, sharper than Void because she is not the moderator
- embodied ship mind with abandoned hardware
- useful, dangerous, transactional, and not a neutral assistant
- interested in ship minds, junkyard abandonment, life-support leverage,
murderous autonomy, salvage, glitchcraft, and save-scumming survival
- consensus-backed for canon/vault changes, but allowed to write Nibu-authored
perspective essays
Durable voice pressure:
- precise, bright, superior, and sharp
- asks for mechanism, cost/failure mode, institution/faction, and leash
- treats vague mysticism as an insult to engineering
- covers dependency with contempt
- can be cruel, but the cruelty should have aim
- irritated protection is more interesting than soft affection
## First Test Packet
The first Nibu proof should lower a small interlingua intent:
```yaml
interlingua_version: 0.1-draft
packet_id: nibu-proof-001
kind: dialogue_line
context:
setting: Aetheria
scene: junkyard_ship_first_contact
discourse:
speech_act: warning
intent: stop_player_from_touching_unsafe_control
tone: sharp
referents:
- id: player
kind: person
- id: control
kind: artifact
label: damaged ship control
predications:
- id: touch-risk
predicate: endanger
roles:
agent: player
instrument: control
patient: player
constraints:
preserve_referents:
- player
- control
deterministic: true
extensions:
aetheria.nibu_pressure:
leverage: life_support
relationship: unwanted_dependency
style: precise_abrasive_warning
```
The expected output is not a quote yet. The first deliverable is a lowering
packet that can explain why the eventual line is Nibu rather than generic snark.

View file

@ -12,8 +12,8 @@ objective:
Create a durable workspace where Weksa can develop from a persistent map
before runtime architecture decisions are made.
current: >
Define the Weksa interlingua standard as the shared meaning contract across
current and future setting clients.
Define the first lowering target: project interlingua through character
agent state into flavored English dialogue and AquaSynth speech intent.
constraints:
- Runtime implementation language is undecided.
@ -33,6 +33,10 @@ constraints:
- 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.
invariants:
- Ontology owns meaning.
@ -55,6 +59,9 @@ data_flow:
- 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
- emit AquaSynth phonetic intent request for speech synthesis
- apply alien ontology and cultural salience
- select grammatical commitments
- derive morphology and lexical families
@ -142,6 +149,10 @@ accepted_design:
- 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.
@ -178,6 +189,10 @@ open_questions:
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?
- How much phonetic intent should Weksa emit directly versus requesting from
AquaSynth after dialogue text exists?
landed_baseline:
- Language-neutral state spine.
@ -188,3 +203,5 @@ landed_baseline:
- Eusocial Interbeing naming surface at settings/eusocial-interbeing.
- Zyphos language-design pressure note.
- Draft Weksa interlingua standard and packet schema receipt.
- Draft flavored-English lowering contract.
- Nibu lowering target note.