From 218962fcf6c6aae4ef5d43e6b5154c309c143d0e Mon Sep 17 00:00:00 2001 From: Weksa Date: Tue, 3 Nov 2026 14:22:40 +0000 Subject: [PATCH 1/7] rust-to-dust: draft imperial language design spec (r0) Speech community and status ladder, phonology, stance/restraint marking, meaning decomposition, and the packet fields the lowerer must provide. Evidence and invention tagged throughout. Co-Authored-By: Claude Sonnet 5.5 --- .../rust-to-dust/imperial/language-design.md | 402 ++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 settings/rust-to-dust/imperial/language-design.md diff --git a/settings/rust-to-dust/imperial/language-design.md b/settings/rust-to-dust/imperial/language-design.md new file mode 100644 index 0000000..c456831 --- /dev/null +++ b/settings/rust-to-dust/imperial/language-design.md @@ -0,0 +1,402 @@ +# Rust to Dust Imperial Language: Design Spec + +Status: **DRAFT r0.** First conlang project for Rust to Dust. Nothing here is +canon until the operator rules on it. + +The language has no name. Its working slug is `rtd-imperial`. A name is owed +and should come from the ontology and phonology below, as +[setting.md](../setting.md) asks, not from an English label. Nothing here +assigns one. + +## How To Read This + +Every claim carries a tag: + +- **[E]** evidence. The source material says it, and the file is cited. +- **[I]** invention. This draft proposes it. The operator can overrule it, and + it is the part most worth attacking. +- **[E→I]** an extension. The source gives a seed and this draft develops it. + +Sources read: everything under `settings/rust-to-dust/` (`README`, `setting`, +`aliens`, `story`, `battle-royale`, `language-design`), the house method in +`settings/eusocial-interbeing/language-design.md`, and Weksa's +`docs/language-model.md`, `interlingua-standard.md`, +`best-modern-approach.md`, `multilingual-utterance-lowering.md` and +`schemas/interlingua-packet.md`. The stance design is read from the unmerged +branch `weksa-lowering/speaker-state` (see Dependencies). The forge repos and +Weksa `state/` and `docs/` hold no other Rust to Dust material: a forge search +for the setting returned nothing outside Weksa. This draft therefore rests on +about 440 lines of setting prose, and the invention share is large. + +## 1. Speech Community + +### Who speaks it [E] + +The empire's aliens: reptilian, scale-decorating, aesthetics-as-moral-truth, +honor as devotion to aesthetic perfection in a chosen field (`aliens.md`). The +empire is galaxy-spanning, so the language is a **network language**. Its +community is defined by the imperial cultural network (media, prestige, +commerce), not by a homeland. Humans are not native speakers. They meet it +through subtitles, memes and broadcasts, and their contaminated English is a +separate register (`language-design.md`, Registers). + +### Speech situations [E→I] + +`language-design.md` lists registers. This draft turns each into a situation +with a speaker, an addressee and a stake, because a register is a relationship +and not a vocabulary list: + +| Situation | Speaker → addressee | Stake | Source | +|---|---|---|---| +| Broadcast commentary | commentator → mass imperial audience, about a performer | rendering an aesthetic verdict in real time | E (battle-royale) | +| High honor speech | warrior or master → rival, patron or witness | binding a vow, naming a performance | E (register list) | +| Warrior discourse | practitioner ↔ practitioner of one field | form, discipline, challenge | E (register list) | +| Commercial acquisition | buyer ↔ seller, or buyer → cultural object | access and integration phrased as uplift | E (setting: commerce as delivery rail) | +| Panel-show media | host ↔ guest before an audience | turning the guest's stance into performance | E (story: the panel) | +| Tourist admiration | tourist → anything | consuming a safe spectacle | E (aliens: tourists) | +| Address to humans | any → human | uplift, fascination, appraisal | I | + +The last row is added. The story's central irony is that the empire +understands the father's refusal better than he understands the empire, so +how imperial speakers address humans is a design surface, not an afterthought. + +The first proving slice is **broadcast commentary** [E]: `battle-royale.md` +names it as the runtime use, and it needs the fewest situations to be +distinguishable by a reader. + +### Status ladder [I] + +The source gives status *signals* (scale decoration marks profession, class, +rank, grief, celebrity, courtship, school, combat discipline, public +obligation, commitments) and a *measure* (the more elaborate the decoration, +the more visible the claim of virtue). It gives no ladder. The invention: +status is two axes, not one. + +- **Field.** The discipline one is devoted to (combat, speech, hosting, trade, + politics, art). Honor is field-relative [E]. A master of one field has no + rank in another. +- **Standing in the field**, by *claim and demonstrated constraint*, not by + force: + 1. **Unclaimed.** No decoration in a field. This is shameless, not neutral + [E: unpainted = shamelessness]. + 2. **Claimant.** Decorated, undemonstrated. Tourists live here: the claim is + bought and the constraint never chosen [E: tourists buy a safe spectacle]. + 3. **Practitioner.** Decorated, with constraint demonstrated in the field. + 4. **Master.** Constraint demonstrated before witnesses. + 5. **Exemplar.** Master whose form others cite. +- **Bare-by-claim** is an exceptional state off the ladder, not a step on it. + Going unpainted as an artistic claim that the performance alone is art is a + provocation [E]. The grammar must be able to say it without saying + "shameless". + +The language's address and agreement system tracks **claim versus +demonstrated constraint**, because that is what the source treats as the +moral measure. A tourist's loud, expensive decoration is a *mismatch* the +language can state, and the language carries that mismatch in the grammar +itself. + +Decoration is the primary status channel in the world. In speech it surfaces +as address terms, honorific-like marking and metaphor (Section 4), not as a +phoneme-level trick. + +## 2. Phonology (provisional) + +The source gives no phonetic profile. It poses the question +(`language-design.md`, Open Questions) and says naming should follow from +phonetics. House method (Zyphos) assigns Airawa hard dorsal and coronal +edges and Sa'auei'a soft flow. This language must not collapse onto either +[I]. + +### Design stance [I] + +Three pressures from the source, turned into sound: + +1. **Aesthetic devotion**: the language should sound *composed*. Prosody is + deliberate, with controlled length, no clutter. +2. **Chosen constraint is mastery**: constraint should be audible. Phonotactics + are *tight*, so that a speaker visibly refrains from the permitted-in-vulgar + alternatives. +3. **Reptilian body** [E: reptilian]: the inventory leans on sustained + fricatives, hisses and trills that a non-human vocal tract makes easy. The + source does not specify a vocal tract. This is the weakest-evidenced + choice and a human-pronounceable romanization is therefore required. + +### Inventory (draft) + +- **Stops** (voiceless only): `t`, `k`, `ʔ`. No voiced stops. This separates it + from Airawa's `g d q`. +- **Fricatives**: `s`, `ʃ`, `x`, `h`, with voiced `z`, `ʒ`. Fricatives + contrast in **length**: short and held. Held fricatives are the language's + main prosodic ornament and carry register weight (Section 3). +- **Sonorants**: `n`, `m`, `l`, trilled `r`. +- **Vowels**: `a`, `i`, `u`, `e`, each short or long. A long vowel is the + other register-bearing length. +- **Syllables**: `(C)V(C)`, coda `s n l ʔ` only. No clusters. The absence of + clusters is the phonotactic form of "chosen constraint". + +### Prosody [I] + +- Stress and length are the speaker's expressive budget. In formal + registers, *less* length variation reads as more command of the form. A + commentator in broadcast register may spend length on a performer's + moment, and an honor-speech speaker withholds it. Restraint is therefore + audible without a phoneme change (Section 3). +- Broadcast commentary has a lengthened, sibilant "announcer" delivery. Tourists + over-lengthen. Master speech under-lengthens. + +### Romanization and rendering [I] + +An ASCII romanization is owed before any lowering output is scored: the +speaker-state lowering renders text, and the renderer for the audience needs +a stable orthography. `ʃ ʒ x ʔ` need ASCII digraphs. The choice follows +the Weksa pronunciation-lowering docs and belongs to a later cut. + +### Open + +- The inventory is a sketch, drawn from three pressures. It should be rerun + after at least a hundred roots exist, not defended. +- The source calls for names to "emerge from ontology and phonetics". This + draft supplies phonetics, and the name waits for the first root set. + +## 3. Register, Status and Restraint: Stance Explicit + +### Weksa's constraint [E] + +On the unmerged `speaker-state` branch, `docs/interlingua-standard.md` adds +a packet `stance`: **felt affect** (anger, fear, sadness, joy, disgust, surprise, +contempt, affection, shame, as grades) and **`restraint`**, how much of the +felt affect is held back (0 none, 1000 fully). It is felt, never displayed. +How a feeling shows and how much leaks is cultural; each language's ontology +maps felt affect and restraint to its own register. A held-back feeling is not +a claim, so it is never a predication. + +This language must therefore **mark stance explicitly in its own grammar**, +and the marking is derived from the packet's `stance`, never from English +register words in the source text. + +### Why this language is the hard case for restraint [E→I] + +For the empire, restraint is not suppression of a shameful interior. It is +**the visible form of chosen constraint**, which is the moral proof of +mastery [E]. So the map from `restraint` to surface is *inverted* relative to +most human defaults: + +- High restraint is the *display* of virtue. A fully restrained speaker with + strong felt affect is exhibiting form. +- Low restraint with strong affect is not honest. It is *vulgar* [E: "vulgar + violence as failed form"; "collapse into mere function"]. +- Zero affect is not neutrality. It can read as an absence of devotion. + +The deliberate consequence is that stance cannot be flattened to a politeness +level. Two axes are needed, and the source's lens questions (elegant, +disciplined, sincere, vulgar, memorable) ask for both. + +### Obligatory categories [I] + +Proposed grammatical commitments (the target-language selections that step 4 +of `language-model.md` demands). Each names the packet field that feeds it. + +1. **Finish marking** on predicates: an obligatory grade-class drawn from + `stance.restraint`, coarsened to a few classes. Working classes: + *raw*, *held*, *finished*. The unmarked form does not exist: leaving it + off is not neutrality but a gap that the community reads as vulgar. + Feeds from: `stance.restraint`. +2. **Leak channel**: how much felt affect shows *through* a high-restraint + frame. Leak is not mapped to emotion words. It is mapped to **form + choices**: clipped versus full inflection, length spent on a fricative, + word choice within a field. This follows `speaker-state`'s own example + (anger leaking through clipped syntax is stance). Feeds from: felt affect + grades against `restraint`. +3. **Standing agreement** on referents: field and standing-in-field of a + named performer, with the **claim/demonstrated** mismatch statable. Feeds + from: speaker and scene features (Section 6). +4. **Witness and form-evaluation**. Broadcast commentary is evaluative by + situation. Evaluation is expressed as a **separate discourse layer** + (a particle or clause layer), not as adjectives in the content: the + lens questions [E] (elegant, disciplined, sincere, vulgar, memorable, + promising, mastery, collapse) are the layer's open slots. It is + kept apart from content because a held-back evaluation is not a claim + about the world, and the interlingua keeps content and attitude + separate. Feeds from: `discourse` features and the situation. +5. **Evidential**: commentary asserts what the camera sees and *infers* the + performer's sincerity. The inference must be marked, because the source + puts sincerity in the performer, who is not the speaker and not available to + telemetry. Feeds from: the evidentiality feature the standard already + names. + +### Register is a function of three inputs [I] + +Register is not a setting on the speaker. It is selected from the pair +(speaker's standing and community, scene relation to addressee and subject) +and the situation, with stance as the final modulator. This is what +`persona-drives-ontology` implies on the speaker-state branch and what the +`language-ontology` cut will implement as deterministic selection +`select(profile, stance, speaker, scene)`. This spec supplies the **content +of that selection table** for this language; it does not write the table. + +Cases the table must cover first: + +| Case | Expected pull | +|---|---| +| Commentator, high restraint, strong approval of a restrained low-means act | finished marking; evaluative layer foregrounded; length withheld | +| Commentator, low restraint, strong approval | raw marking; the speaker is performing delight. Only permitted in tourist-adjacent registers | +| Master addressing rival | held or finished; address by field and standing | +| Tourist, any affect | claimant standing; over-lengthened; evaluation layer present but misapplied | +| Host to a human guest on a panel | warmth and appraisal mixed: affection plus contempt at high restraint is the *normal* pairing. The guest's rejection is absorbed as form | + +The last row is the story's turn written as a stance mapping, and is worth +testing first: contempt and affection together, restrained, with the evaluation +layer calling the rejection *sincere*. + +## 4. Meaning Before Surface + +The language is never produced by substituting English words with alien +ones. The method is the Weksa path (`language-model.md`): packet, then +ontology projection that can split, collapse or reweight concepts, then +grammar commitments, morphology, phonology, surface. + +### Concept splits and collapses [E→I] + +The source names distinctions the language must make (`language-design.md`, +Open Questions). Each is decomposed below into components so a lowerer can +select a form from the packet's facts and not from a gloss. + +| Distinction | Decomposition (hypothesis) | Needs from the packet | +|---|---|---| +| **victory** vs **mastery** vs **spectacle** vs **vulgar overmatch** | victory: outcome of a contest. mastery: outcome *plus* demonstrated chosen constraint. spectacle: attention drawn, independent of constraint. vulgar overmatch: means exceed the opposing means with no constraint chosen. | outcome; each party's means; whether the means were chosen | +| **crude** vs **failed** | crude: sincere, unrefined, with form attempted. failed: form collapsed into mere function. | actor's means and discipline as facts; the stance of the performer is not available, so the ontology reads from conduct | +| **resistance** admired and absorbable | resistance read as: threat, folk art, breakout talent (`battle-royale.md` commentary list). Choice depends on whether it centers a performer or a practice. | performer-centered vs distributed agency | +| **public spectacle** vs **living practice** [E] | spectacle: meaning lives in a central performer. practice: meaning lives in relationships. The empire reads distributed cooperation as noise or misattributes it to a performer. | number and relation of agents; presence of a focal agent | +| **unpainted**, split | shame / danger / contempt / rawness / refusal / purity (the source lists these senses). Different surface forms: the sense is selected by relation and stance, not by a gloss. | decoration state, scene relation, speaker stance | + +### Scale decoration in grammar and metaphor [E→I] + +Decoration is the language's central metaphor domain [E: used for rank, +grief, celebrity and more]. Proposed uses, to be tested not asserted: + +- **Address**: terms of address name a decoration claim ("the one marked for + ...") instead of a rank noun. +- **Insult**: lack, mismatch or fraud of decoration (a claim not backed by + constraint). The strongest insult is the claimant who is also vulgar. +- **Praise**: finish, as in a surface completed. +- **Metaphor**: grief and obligation are *worn*. A human speaking of loss + reads, in this language, as a person visibly undecorated by it. + +The source does not say whether the language has these metaphors. They are +the draft's strongest invention and the easiest to overrule. + +### Root families [I] + +House method: faint family resemblance, never a nametag. No roots are +proposed here. The first root set should come from the field concepts +(combat, speech, hosting, trade, art) and the constraint/finish axis, and +should be minted against corpus items, not authored in a vacuum. + +### Contamination direction [E] + +What leaks into human English first (`language-design.md`) is an open +question. [I] Candidates are evaluation-layer particles (the empire's form +verdicts become meme tags) and the claim/finish vocabulary, because the +story's kids absorb *prestige codes* first. The subtitle renderer is a +separate target profile and not this spec's job. + +## 5. Evidence and Invention, Summarized + +**Evidence-backed (E):** +- reptilian, aesthetic-honor, decoration-as-status speakers; unpainted as + profound shamelessness; unpainted-as-provocation for a rare few +- mastery requires chosen constraint; overmatch and tourists are vulgar; the + lens questions +- the empire is a network; commerce carries, culture conquers; the registers + listed +- broadcast commentary and flavor-first subtitles as the runtime use +- the packet has `stance` with felt affect and restraint; the ontology maps + them (speaker-state branch) + +**Invention (I):** +- the two-axis status ladder and the claim/demonstrated-constraint mismatch +- the whole phonological inventory and prosody +- the five obligatory categories and the inverted restraint reading +- the decoration-grammar and metaphor uses +- the speech situations table, notably the address-to-humans row +- the contempt-plus-affection panel pairing + +**Not settled in the source and left open:** +- the language's and speakers' names; the vocal tract; whether the empire is + one language community or a family of dialects; whether non-reptilian + imperial subjects speak it and how it marks them + +## 6. What The Lowerer Must Provide + +Interlingua rule [E]: the packet carries neutral meaning plus source-side +communicative pressure, and target-language concept splits belong +downstream. The earlier Rust to Dust sketch in `language-design.md` puts an +`aesthetic_reading` block (form, discipline, spectacle, honor status) **in +the packet**. This draft recommends moving it: those are the *imperial +ontology's reading* of neutral facts, so they belong in the ontology +projection, and the packet carries the facts the reading is derived from. +[I] This is a change to existing content and the operator should rule on it. + +Fields, in order of need. "Seed" means the standard's inventory already has +a slot. "Gap" means the standard has no field yet; per the Promotion Rule, +the gap is first an `rtd.*` extension and is promoted only after use in two +real packets. + +| Need | Why | Status | +|---|---|---| +| `stance` with felt affect and `restraint` | the whole of Section 3 | seed (unmerged: `speaker-state`) | +| **speaker** axes: field, standing in field, school or lineage, decoration state, community | status and register selection | seed slot `Speaker` (unmerged); the *values* are the gap | +| **scene**: relative status of speaker, subject and audience; audience composition (imperial, tourist, human via subtitles) | register and address | seed slot `Scene` (unmerged) | +| `medium` and `setting` ids for broadcast commentary | situation selection | seed (`context`) | +| `instrument` role on predications, **for each party** | overmatch is derived from both parties' means | seed role | +| **volition of the constraint**: chosen / compelled / unknown, as a predication feature | the line between mastery and mere lacking | gap (`rtd.` extension first) | +| **ordering of means** (power or means gap) | vulgar overmatch | not a packet field: ontology-side order over concept ids, so the packet carries concepts and the ontology compares them | +| referent **decoration state** (decorated / unpainted / bare-by-claim / not applicable) | status, insult, the human-undecorated reading | gap (`rtd.` extension first) | +| referent **community** or `member_of` relation | tourist versus warrior; human versus imperial | seed relation `member_of`; community ids come from the `language-ontology` cut | +| **focal agent** presence | spectacle versus living practice | derivable: a predication with plural or no agent role; not a new field | +| `evidentiality` | witnessed versus inferred sincerity | seed feature (to confirm its option set) | +| `polarity`, tense, aspect | ordinary | seed | +| `preserve` | which nodes the commentary must keep | seed (`constraints`) | + +Fields the draft deliberately does **not** request: `aesthetic_reading`, +`honor_status`, `spectacle_value` or any value judgment. The performer's +sincerity is not telemetry, and the commentator infers it. These are +outputs of the imperial ontology and must not be put into the packet by the +client, or the client is deciding the language's concepts. + +## 7. Dependencies, Risks and Next Cuts + +**Dependencies.** Stance and the `Speaker` and `Scene` slots exist only on +the `weksa-lowering/speaker-state` branch. The `language-ontology` cut +(community and ontology-entry documents) is not landed. This spec states +the content those cuts will hold, and does not substitute for them. + +**Risks.** +- The inventory and the grammar are heavily invented on thin evidence. Mitigation: + tag everything (done) and test the five obligatory categories against the + lowerer before building roots. +- The claim-versus-constraint ladder risks making the language a *status-code + detector*. The source's hold is that honor is devotion, not rank. Test: + can the grammar say a bare-by-claim performance without calling it low? +- Draft collides with `language-design.md`'s packet-side `aesthetic_reading`. + Resolved by the recommendation in Section 6 if ruled. + +**Next cuts, in order.** +1. Operator rulings on the forks below. +2. A first corpus slice: ten broadcast-commentary utterances, each decomposed + to a packet (neutral facts plus stance), with the expected surface *category* + (finish class, evaluation layer) and no words yet. +3. The selection table for Section 3's first five cases. +4. A root set from the field concepts, and a naming brief for the language. +5. An orthography and a pronunciation lowering. + +**Forks for the operator (recommendations given).** +- Move `aesthetic_reading` out of the packet into the ontology. *Recommend: + yes.* +- Is a two-axis status ladder right, or should honor be flat within a field? + *Recommend: two axes, because tourists need a place.* +- Is inverted restraint (restraint as display of virtue) the intended reading? + *Recommend: yes, it follows from "chosen constraint is mastery".* +- Is the vocal tract reptilian-literal or a human-stylized invention? + *Recommend: human-pronounceable stylization with length as ornament, so + the first corpus does not wait on phonetics.* From 1e79c0c9e68e80597b077c2046b1f5cc0bda1699 Mon Sep 17 00:00:00 2001 From: Weksa Date: Wed, 4 Nov 2026 09:41:57 +0000 Subject: [PATCH 2/7] Respell Sa'auei'a as Sa'ueia Spelling only, with Deru's permission (2026-11-04 #zyphos): language-design.md (6), README.md (2), state/map.yaml (2) as scoped. Other hits left for a ruling. Co-Authored-By: Claude Sonnet 5.5 --- settings/eusocial-interbeing/README.md | 4 ++-- settings/eusocial-interbeing/language-design.md | 12 ++++++------ state/map.yaml | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/settings/eusocial-interbeing/README.md b/settings/eusocial-interbeing/README.md index ceb2502..0b1f400 100644 --- a/settings/eusocial-interbeing/README.md +++ b/settings/eusocial-interbeing/README.md @@ -20,7 +20,7 @@ register, and history. - Weksa owns the language-project pipeline: ontology projection, grammar, morphology, phonology, diachrony, rendering, glossing, and critique. - A future language project owns one inhabitant language. Airawa imperial - register, pre-imperial Airawa registers, Sa'auei'a family-unit speech, ritual + register, pre-imperial Airawa registers, Sa'ueia family-unit speech, ritual breeding-ground registers, and ecological-partner contact systems should not collapse into one universal naming soup. @@ -40,7 +40,7 @@ surfaces: - Airawa continent: mother-tree memory networks, archival dependency, disconnected networks, and the Airawa Empire's biological-memetic infrastructure. -- Sa'auei'a continent: advanced nomadic civilization, family-unit political +- Sa'ueia continent: advanced nomadic civilization, family-unit political movement, sacred breeding-ground commons, remembered routes, and reciprocal ecological relationships. diff --git a/settings/eusocial-interbeing/language-design.md b/settings/eusocial-interbeing/language-design.md index 942f7a9..cacb314 100644 --- a/settings/eusocial-interbeing/language-design.md +++ b/settings/eusocial-interbeing/language-design.md @@ -49,7 +49,7 @@ rights, witnessed warrior promise, and honorable scar evidence. See ### Provisional Airawa Phonology Notes Airawa phonology is not finalized, but the current design pressure distinguishes -it from Sa'auei'a softness. Airawa names should feel sharper, more dorsal and +it from Sa'ueia softness. Airawa names should feel sharper, more dorsal and coronal, and more willing to close around hard edges. Provisional tendencies: @@ -58,9 +58,9 @@ Provisional tendencies: - sibilant and postalveolar fricatives should carry social texture: `s`, `z`, `sh` / `zh`; - `r` may be trilled in some Airawa registers; -- syllables can tolerate clipped or closed shapes where Sa'auei'a forms would +- syllables can tolerate clipped or closed shapes where Sa'ueia forms would flow longer and wetter; -- avoid making native Airawa names read like smooth Sa'auei'a route names unless +- avoid making native Airawa names read like smooth Sa'ueia route names unless the form is explicitly a loan, exonym, or cross-continental register. The current room consensus pushes this further for introductory speech: Airawa @@ -75,9 +75,9 @@ voiced postalveolar fricative /zh/ [ʒ]. The name is being considered for a Zyphos Face drawn from a non-imperial Airawa archival/fungal-road tradition: an archivist shaped by memory as kinship, not content. -## Sa'auei'a Pressures +## Sa'ueia Pressures -Sa'auei'a language work must account for: +Sa'ueia language work must account for: - advanced nomadic civilization without permanent urban dominance - squad-sized family units @@ -88,7 +88,7 @@ Sa'auei'a language work must account for: - reciprocity routes and seasonal corridors - camps, commons, and partner sites as distinct name targets -The Sa'auei'a continent should not read as empty wilderness. Its language should +The Sa'ueia continent should not read as empty wilderness. Its language should have ways to name civilization that moves, recurs, bargains, and is remembered by ecology. diff --git a/state/map.yaml b/state/map.yaml index 95009bf..7d62e94 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -221,10 +221,10 @@ open_questions: - 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 + Airawa, Sa'ueia, 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? + Sa'ueia, 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 From 3db34fb634748da39dd8401ec25f6b4b46a559b2 Mon Sep 17 00:00:00 2001 From: Weksa Date: Wed, 4 Nov 2026 10:49:50 +0000 Subject: [PATCH 3/7] Sa'ueia workshop first cut: table, checker, sound proposal Co-Authored-By: Claude Sonnet 5.5 --- .../eusocial-interbeing/language-design.md | 36 +++++++ settings/eusocial-interbeing/sa-ueia/check.py | 102 ++++++++++++++++++ .../eusocial-interbeing/sa-ueia/table.yaml | 81 ++++++++++++++ .../eusocial-interbeing/sa-ueia/test_check.py | 94 ++++++++++++++++ 4 files changed, 313 insertions(+) create mode 100644 settings/eusocial-interbeing/sa-ueia/check.py create mode 100644 settings/eusocial-interbeing/sa-ueia/table.yaml create mode 100644 settings/eusocial-interbeing/sa-ueia/test_check.py diff --git a/settings/eusocial-interbeing/language-design.md b/settings/eusocial-interbeing/language-design.md index cacb314..9a727ee 100644 --- a/settings/eusocial-interbeing/language-design.md +++ b/settings/eusocial-interbeing/language-design.md @@ -92,6 +92,42 @@ The Sa'ueia continent should not read as empty wilderness. Its language should have ways to name civilization that moves, recurs, bargains, and is remembered by ecology. +## Sa'ueia Sound (Proposal For Deru To Cut) + +Status: proposal. Deru approved the outline in #zyphos on 2026-11-04; only the +species name Sa'ueia is canon. Everything below is a working draft in +`sa-ueia/table.yaml`, each entry marked `deru` or `weksa-placeholder`, and +`sa-ueia/check.py` enforces what is mechanical. + +Taken from Deru's words: + +- five vowels: `a e i o u`; +- no `h`, `q`, `y`; `k` where a `q` might have been; +- short words, soft and open; +- suffixing morphology; the one suffix so far is `-um`, a verb suffix; +- identical letters merge at a morpheme join: `weru` + `um` gives `werum`, + `ila` + `werum` gives `ilawerum` (walk of knowledge); +- a vowel only where one is needed. + +First roots, all Deru's: `ila` walk, `weru` know, `Olune` breeding ground +(unanalyzed). + +Proposed, for Deru to accept or cut: + +- the apostrophe in Sa'ueia is orthographic, and is not counted as a letter; +- "short" means at most 10 letters in a joined word, as a warning only; +- no doubled letter inside a morpheme, so a double can only arise at a join + and the merge rule removes it. + +Open, not guessed: + +- the consonant inventory. Only `l m n r s w` appear in Deru's words so far, + and that is attestation, not an inventory; +- whether the know root is `weru` or `wer-` (both give `werum`); +- syllable shapes, stress, and what "vowel only where needed" means once the + inventory is known (the checker does not test it); +- the phonological role of the apostrophe. + ## Naming Brief Shape A Weksa naming brief should capture at least: diff --git a/settings/eusocial-interbeing/sa-ueia/check.py b/settings/eusocial-interbeing/sa-ueia/check.py new file mode 100644 index 0000000..179c935 --- /dev/null +++ b/settings/eusocial-interbeing/sa-ueia/check.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Sa'ueia workshop checker: join morphemes by table.yaml's rules, flag violations. + +Reads table.yaml next to this file (or a path argument). The consonant inventory +is open, so no consonant is ever flagged; only rules in the table are enforced. +Exit status is 1 when any error is found; warnings do not fail the run. +""" + +from __future__ import annotations + +import sys +from dataclasses import dataclass +from pathlib import Path + +import yaml + +TABLE = Path(__file__).with_name("table.yaml") +PROVENANCES = {"deru", "weksa-placeholder"} + + +@dataclass(frozen=True) +class Finding: + severity: str # "error" | "warning" + where: str + message: str + + def __str__(self) -> str: + return f"{self.severity}: {self.where}: {self.message}" + + +def letters(form: str) -> str: + return form.replace("'", "").lower() + + +def join(morphemes: list[str]) -> str: + """Concatenate, merging one identical letter at each join.""" + out = "" + for m in morphemes: + if out and m and out[-1] == m[0]: + m = m[1:] + out += m + return out + + +def check_form(form: str, rules: dict, where: str, *, inside_morpheme: bool = False) -> list[Finding]: + found = [] + text = letters(form) + for ch in rules["forbidden_letters"]["value"]: + if ch in text: + found.append(Finding("error", where, f"{form!r} contains forbidden letter {ch!r}")) + for a, b in zip(text, text[1:]): + if a == b and (not inside_morpheme or rules["no_doubled_letters_inside_morpheme"]["value"]): + found.append(Finding("error", where, f"{form!r} has doubled {a!r}")) + limit = rules["max_word_letters"] + if not inside_morpheme and len(text) > limit["value"]: + found.append(Finding(limit["severity"], where, f"{form!r} is {len(text)} letters, over {limit['value']}")) + return found + + +def check_table(table: dict) -> list[Finding]: + rules = table["rules"] + found = [] + for r_name, r in rules.items(): + if r.get("provenance") not in PROVENANCES: + found.append(Finding("error", f"rules.{r_name}", "missing or unknown provenance")) + if table["consonants"]["inventory"] != "open": + found.append(Finding("error", "consonants", "inventory is not Deru's to guess; keep it open until given")) + forms: dict[str, str] = {} + for kind in ("roots", "suffixes"): + for entry in table[kind]: + form = entry["form"] + where = f"{kind}.{form}" + if entry.get("provenance") not in PROVENANCES: + found.append(Finding("error", where, "missing or unknown provenance")) + forms[form] = kind + found += check_form(form, rules, where, inside_morpheme=True) + for comp in table["compositions"]: + where = "compositions." + "+".join(comp["morphemes"]) + if comp.get("provenance") not in PROVENANCES: + found.append(Finding("error", where, "missing or unknown provenance")) + for m in comp["morphemes"]: + if m not in forms and not any(m == f2 for f2 in (c["expected"] for c in table["compositions"])): + found.append(Finding("error", where, f"morpheme {m!r} is in no table row or earlier composition")) + got = join(comp["morphemes"]) + if got != comp["expected"]: + found.append(Finding("error", where, f"joins to {got!r}, table says {comp['expected']!r}")) + found += check_form(comp["expected"], rules, where) + return found + + +def main(argv: list[str]) -> int: + path = Path(argv[1]) if len(argv) > 1 else TABLE + findings = check_table(yaml.safe_load(path.read_text(encoding="utf-8"))) + for f in findings: + print(f) + print(f"{sum(f.severity == 'error' for f in findings)} error(s), " + f"{sum(f.severity == 'warning' for f in findings)} warning(s)") + return 1 if any(f.severity == "error" for f in findings) else 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv)) diff --git a/settings/eusocial-interbeing/sa-ueia/table.yaml b/settings/eusocial-interbeing/sa-ueia/table.yaml new file mode 100644 index 0000000..6d83972 --- /dev/null +++ b/settings/eusocial-interbeing/sa-ueia/table.yaml @@ -0,0 +1,81 @@ +# Sa'ueia workshop table, first cut. +# Source: Deru's words in #zyphos, 2026-11-04. Setting owner: Deru (the Zyphos vault). +# Every entry carries provenance: +# deru - said by Deru, or part of the sound outline Deru approved +# weksa-placeholder - Weksa's stand-in so the checker can run; Deru may cut it +# Only the species name Sa'ueia is canon. Everything else here is a working +# draft, even when its provenance is deru. + +roots: + - form: ila + gloss: walk + provenance: deru + - form: weru + gloss: know + provenance: deru + note: > + Deru gave "werum" (knowledge, maybe a verb) and was asked whether -um + suffixes wer- or weru. "weru" is the reading under which the join rule + does visible work (weru + um -> werum); wer- gives the same surface form. + Open for Deru. + - form: olune + gloss: breeding ground + provenance: deru + analysis: unanalyzed # no morpheme boundaries known + - form: sa'ueia + gloss: the species name + provenance: deru + canon: true + analysis: unanalyzed + note: Apostrophe is part of the canon spelling; its phonological role is open. + +suffixes: + - form: um + gloss: verb suffix + provenance: deru + +rules: + vowels: + value: [a, e, i, o, u] + provenance: deru + forbidden_letters: + value: [h, q, y] + provenance: deru + note: k is used where q might have been. + join_merge_identical: + value: true + provenance: deru + note: > + When one morpheme ends in the letter the next begins with, they merge to + one letter at the join (weru + um -> werum, ila + werum -> ilawerum). + morphology_direction: + value: suffixing + provenance: deru + short_words: + provenance: deru + checked: false # no number from Deru + max_word_letters: + value: 10 + provenance: weksa-placeholder + severity: warning + note: Stand-in for "short words"; apostrophes not counted. Deru sets the real bound. + no_doubled_letters_inside_morpheme: + value: true + provenance: weksa-placeholder + note: Follows from the merge rule only if doubles never occur inside a morpheme either. + vowel_only_where_needed: + provenance: deru + checked: false # not mechanically decidable without the consonant inventory + +consonants: + inventory: open # Deru has not given it. The checker does not guess. + seen_in_deru_words: [l, m, n, r, s, w] # attested above, not an inventory + +# Joined forms the checker must reproduce. Each: morphemes in order, expected surface. +compositions: + - morphemes: [weru, um] + expected: werum + provenance: deru # "werum" is Deru's form + - morphemes: [ila, werum] + expected: ilawerum + provenance: deru # "Ilawerum", walk of knowledge diff --git a/settings/eusocial-interbeing/sa-ueia/test_check.py b/settings/eusocial-interbeing/sa-ueia/test_check.py new file mode 100644 index 0000000..790d689 --- /dev/null +++ b/settings/eusocial-interbeing/sa-ueia/test_check.py @@ -0,0 +1,94 @@ +import copy +import unittest + +import yaml + +import check + + +def table(): + return yaml.safe_load(check.TABLE.read_text(encoding="utf-8")) + + +def errors(t): + return [f for f in check.check_table(t) if f.severity == "error"] + + +class JoinTests(unittest.TestCase): + def test_identical_letters_merge_at_join(self): + self.assertEqual(check.join(["weru", "um"]), "werum") + self.assertEqual(check.join(["ila", "werum"]), "ilawerum") + + def test_merge_is_one_letter_not_all(self): + self.assertEqual(check.join(["ila", "aba"]), "ilaba") + self.assertEqual(check.join(["ila", "ala"]), "ilala") + + def test_different_letters_concatenate(self): + self.assertEqual(check.join(["ila", "um"]), "ilaum") + + def test_merge_applies_only_at_joins(self): + # a doubled letter inside a morpheme is not collapsed by join + self.assertEqual(check.join(["aa", "b"]), "aab") + + +class TableTests(unittest.TestCase): + def test_shipped_table_is_clean(self): + self.assertEqual(errors(table()), []) + + def test_forbidden_letter_in_root_flagged(self): + t = table() + t["roots"].append({"form": "haru", "gloss": "x", "provenance": "weksa-placeholder"}) + self.assertTrue(any("forbidden letter 'h'" in str(f) for f in errors(t))) + + def test_q_and_y_flagged(self): + for ch in "qy": + t = table() + t["roots"].append({"form": f"a{ch}a", "gloss": "x", "provenance": "deru"}) + self.assertTrue(any(f"forbidden letter '{ch}'" in str(f) for f in errors(t)), ch) + + def test_k_allowed(self): + t = table() + t["roots"].append({"form": "kela", "gloss": "x", "provenance": "weksa-placeholder"}) + self.assertEqual(errors(t), []) + + def test_missing_or_unknown_provenance_flagged(self): + for bad in (None, "guess"): + t = table() + t["suffixes"][0]["provenance"] = bad + self.assertTrue(any("provenance" in str(f) for f in errors(t)), bad) + + def test_unmerged_composition_flagged(self): + t = table() + t["compositions"][0]["expected"] = "weruum" + msgs = [str(f) for f in errors(t)] + self.assertTrue(any("joins to 'werum'" in m for m in msgs)) + self.assertTrue(any("doubled 'u'" in m for m in msgs)) + + def test_doubled_letter_inside_morpheme_flagged(self): + t = table() + t["roots"].append({"form": "ilaa", "gloss": "x", "provenance": "weksa-placeholder"}) + self.assertTrue(any("doubled 'a'" in str(f) for f in errors(t))) + + def test_unknown_morpheme_in_composition_flagged(self): + t = table() + t["compositions"].append({"morphemes": ["ila", "zo"], "expected": "ilazo", "provenance": "weksa-placeholder"}) + self.assertTrue(any("'zo'" in str(f) for f in errors(t))) + + def test_long_word_is_warning_not_error(self): + t = table() + t["compositions"].append({"morphemes": ["ila", "werum", "ila", "werum"], "expected": "ilawerumilawerum", + "provenance": "weksa-placeholder"}) + self.assertEqual(errors(t), []) + self.assertTrue(any(f.severity == "warning" for f in check.check_table(t))) + + def test_consonant_inventory_must_stay_open(self): + t = table() + t["consonants"]["inventory"] = ["l", "m"] + self.assertTrue(any("inventory" in str(f) for f in errors(t))) + + def test_apostrophe_is_not_a_letter(self): + self.assertEqual(check.letters("Sa'ueia"), "saueia") + + +if __name__ == "__main__": + unittest.main() From 9fb44fa23f7a2f4e2289d5c01f10fee8edffece7 Mon Sep 17 00:00:00 2001 From: Weksa Date: Fri, 6 Nov 2026 03:31:51 +0000 Subject: [PATCH 4/7] rtd-imperial: stance is on main; record the four rulings Drop the unmerged speaker-state wording (stance landed in PR #3; only Speaker and Scene remain planned, cut speaker-scene) and record the four rtd-imperial-* rulings in Section 7. Co-Authored-By: Claude Sonnet 5.5 --- .../rust-to-dust/imperial/language-design.md | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/settings/rust-to-dust/imperial/language-design.md b/settings/rust-to-dust/imperial/language-design.md index c456831..8e3aa98 100644 --- a/settings/rust-to-dust/imperial/language-design.md +++ b/settings/rust-to-dust/imperial/language-design.md @@ -22,8 +22,7 @@ Sources read: everything under `settings/rust-to-dust/` (`README`, `setting`, `settings/eusocial-interbeing/language-design.md`, and Weksa's `docs/language-model.md`, `interlingua-standard.md`, `best-modern-approach.md`, `multilingual-utterance-lowering.md` and -`schemas/interlingua-packet.md`. The stance design is read from the unmerged -branch `weksa-lowering/speaker-state` (see Dependencies). The forge repos and +`schemas/interlingua-packet.md`. The stance design is read from `main` (see Dependencies). The forge repos and Weksa `state/` and `docs/` hold no other Rust to Dust material: a forge search for the setting returned nothing outside Weksa. This draft therefore rests on about 440 lines of setting prose, and the invention share is large. @@ -147,7 +146,7 @@ Three pressures from the source, turned into sound: ### Romanization and rendering [I] An ASCII romanization is owed before any lowering output is scored: the -speaker-state lowering renders text, and the renderer for the audience needs +lowering renders text, and the renderer for the audience needs a stable orthography. `ʃ ʒ x ʔ` need ASCII digraphs. The choice follows the Weksa pronunciation-lowering docs and belongs to a later cut. @@ -162,7 +161,7 @@ the Weksa pronunciation-lowering docs and belongs to a later cut. ### Weksa's constraint [E] -On the unmerged `speaker-state` branch, `docs/interlingua-standard.md` adds +On `main`, `docs/interlingua-standard.md` carries a packet `stance`: **felt affect** (anger, fear, sadness, joy, disgust, surprise, contempt, affection, shame, as grades) and **`restraint`**, how much of the felt affect is held back (0 none, 1000 fully). It is felt, never displayed. @@ -204,7 +203,7 @@ of `language-model.md` demands). Each names the packet field that feeds it. 2. **Leak channel**: how much felt affect shows *through* a high-restraint frame. Leak is not mapped to emotion words. It is mapped to **form choices**: clipped versus full inflection, length spent on a fricative, - word choice within a field. This follows `speaker-state`'s own example + word choice within a field. This follows the standard's own example (anger leaking through clipped syntax is stance). Feeds from: felt affect grades against `restraint`. 3. **Standing agreement** on referents: field and standing-in-field of a @@ -229,7 +228,7 @@ of `language-model.md` demands). Each names the packet field that feeds it. Register is not a setting on the speaker. It is selected from the pair (speaker's standing and community, scene relation to addressee and subject) and the situation, with stance as the final modulator. This is what -`persona-drives-ontology` implies on the speaker-state branch and what the +`persona-drives-ontology` implies on `main` and what the `language-ontology` cut will implement as deterministic selection `select(profile, stance, speaker, scene)`. This spec supplies the **content of that selection table** for this language; it does not write the table. @@ -311,7 +310,7 @@ separate target profile and not this spec's job. listed - broadcast commentary and flavor-first subtitles as the runtime use - the packet has `stance` with felt affect and restraint; the ontology maps - them (speaker-state branch) + them (on `main`) **Invention (I):** - the two-axis status ladder and the claim/demonstrated-constraint mismatch @@ -344,9 +343,9 @@ real packets. | Need | Why | Status | |---|---|---| -| `stance` with felt affect and `restraint` | the whole of Section 3 | seed (unmerged: `speaker-state`) | -| **speaker** axes: field, standing in field, school or lineage, decoration state, community | status and register selection | seed slot `Speaker` (unmerged); the *values* are the gap | -| **scene**: relative status of speaker, subject and audience; audience composition (imperial, tourist, human via subtitles) | register and address | seed slot `Scene` (unmerged) | +| `stance` with felt affect and `restraint` | the whole of Section 3 | seed (on `main`) | +| **speaker** axes: field, standing in field, school or lineage, decoration state, community | status and register selection | seed slot `Speaker` (still planned, cut `speaker-scene`); the *values* are the gap | +| **scene**: relative status of speaker, subject and audience; audience composition (imperial, tourist, human via subtitles) | register and address | seed slot `Scene` (still planned, cut `speaker-scene`) | | `medium` and `setting` ids for broadcast commentary | situation selection | seed (`context`) | | `instrument` role on predications, **for each party** | overmatch is derived from both parties' means | seed role | | **volition of the constraint**: chosen / compelled / unknown, as a predication feature | the line between mastery and mere lacking | gap (`rtd.` extension first) | @@ -366,8 +365,8 @@ client, or the client is deciding the language's concepts. ## 7. Dependencies, Risks and Next Cuts -**Dependencies.** Stance and the `Speaker` and `Scene` slots exist only on -the `weksa-lowering/speaker-state` branch. The `language-ontology` cut +**Dependencies.** Stance is on `main` (Weksa PR #3). Only the `Speaker` and `Scene` +slots are still planned, under cut `speaker-scene`. The `language-ontology` cut (community and ontology-entry documents) is not landed. This spec states the content those cuts will hold, and does not substitute for them. @@ -378,11 +377,11 @@ the content those cuts will hold, and does not substitute for them. - The claim-versus-constraint ladder risks making the language a *status-code detector*. The source's hold is that honor is devotion, not rank. Test: can the grammar say a bare-by-claim performance without calling it low? -- Draft collides with `language-design.md`'s packet-side `aesthetic_reading`. - Resolved by the recommendation in Section 6 if ruled. +- Draft collided with `language-design.md`'s packet-side `aesthetic_reading`. + Resolved by ruling `rtd-imperial-aesthetic-reading-to-ontology` (below). **Next cuts, in order.** -1. Operator rulings on the forks below. +1. (done) Operator rulings on the four forks, recorded above. 2. A first corpus slice: ten broadcast-commentary utterances, each decomposed to a packet (neutral facts plus stance), with the expected surface *category* (finish class, evaluation layer) and no words yet. @@ -390,13 +389,15 @@ the content those cuts will hold, and does not substitute for them. 4. A root set from the field concepts, and a naming brief for the language. 5. An orthography and a pronunciation lowering. -**Forks for the operator (recommendations given).** -- Move `aesthetic_reading` out of the packet into the ontology. *Recommend: - yes.* -- Is a two-axis status ladder right, or should honor be flat within a field? - *Recommend: two axes, because tourists need a place.* -- Is inverted restraint (restraint as display of virtue) the intended reading? - *Recommend: yes, it follows from "chosen constraint is mastery".* -- Is the vocal tract reptilian-literal or a human-stylized invention? - *Recommend: human-pronounceable stylization with length as ornament, so - the first corpus does not wait on phonetics.* +**Rulings (2026-11-05, all in force).** The four forks are answered. Their +ids are in the mind's `weksa-body` campaign. +- `rtd-imperial-aesthetic-reading-to-ontology`: `aesthetic_reading` leaves the + packet and lives in the imperial ontology. The packet carries neutral facts + plus stance; form, discipline, spectacle and honor status are the ontology's + reading of them. Section 6 stands. +- `rtd-imperial-two-axis-status`: status is two axes, field and standing, by + claim versus demonstrated constraint. +- `rtd-imperial-inverted-restraint`: restraint is the display of virtue; low + restraint with strong affect is vulgar. +- `rtd-imperial-human-stylized-tract`: the vocal tract is human-pronounceable + stylization, with length as ornament. From d929f746bdf5b8efc0f16e6540a05b7e94f28ff9 Mon Sep 17 00:00:00 2001 From: Weksa Date: Fri, 6 Nov 2026 03:32:05 +0000 Subject: [PATCH 5/7] Cut the two aesthetic_reading copies Per ruling rtd-imperial-aesthetic-reading-to-ontology: the packet carries neutral facts plus stance; the reading belongs to the imperial ontology. Removes the runtime-data sketch block in rust-to-dust/language-design.md and the rtd.aesthetic_reading extension example in interlingua-standard.md. Co-Authored-By: Claude Sonnet 5.5 --- docs/interlingua-standard.md | 4 ---- settings/rust-to-dust/language-design.md | 11 +++-------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/docs/interlingua-standard.md b/docs/interlingua-standard.md index 8b36983..6a835dd 100644 --- a/docs/interlingua-standard.md +++ b/docs/interlingua-standard.md @@ -300,10 +300,6 @@ predications: roles: agent: actor patient: target -extensions: - rtd.aesthetic_reading: - form: raw - spectacle_value: high ``` ## Promotion Rule diff --git a/settings/rust-to-dust/language-design.md b/settings/rust-to-dust/language-design.md index 146bd16..4ef1446 100644 --- a/settings/rust-to-dust/language-design.md +++ b/settings/rust-to-dust/language-design.md @@ -52,7 +52,9 @@ Likely language-project registers: ## Runtime Data Needs -Structured intent should carry neutral facts plus cultural annotations. +Structured intent carries neutral facts plus stance. The imperial ontology +derives form, discipline, spectacle and honor status from them downstream +(see `imperial/language-design.md`, Section 6). Example: @@ -62,13 +64,6 @@ Example: "act": "ambush", "actor": "father", "target": "imperial_guard", - "aesthetic_reading": { - "form": "raw", - "discipline": "improvised", - "spectacle_value": "high", - "honor_status": "ambiguous", - "aesthetic_promise": "rising" - }, "imperial_frame": "authentic_local_defiance" } ``` From 1d787426964557b7dbd5814391edbfc67f88b1ec Mon Sep 17 00:00:00 2001 From: Weksa Date: Tue, 3 Nov 2026 11:39:07 +0000 Subject: [PATCH 6/7] Add DRAFT naming briefs for Zyphos names One brief per DRAFT name from weksa-body/zyphos-name-drafts: speaker, addressee, register, meaning decomposition, applicable sound rules, and reject conditions. Records the Sa'auei'a -> Sa'ueia rename state. No names are canon. Co-Authored-By: Claude Sonnet 5.5 --- .../eusocial-interbeing/zyphos-name-briefs.md | 399 ++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 settings/eusocial-interbeing/zyphos-name-briefs.md diff --git a/settings/eusocial-interbeing/zyphos-name-briefs.md b/settings/eusocial-interbeing/zyphos-name-briefs.md new file mode 100644 index 0000000..c81e6ca --- /dev/null +++ b/settings/eusocial-interbeing/zyphos-name-briefs.md @@ -0,0 +1,399 @@ +# Zyphos Name Briefs (DRAFT) + +**Status: every name in this file is DRAFT. None is canon.** Per the +[README](./README.md), a name is canon only when a language project can explain +its ontology and form. No such project exists yet, so these are candidates held +against briefs, not entries in a lexicon. + +Source: follow-up `weksa-body/zyphos-name-drafts`. Brief shape follows +[Language Design Pressure](./language-design.md#naming-brief-shape): the brief +comes before the name, and the name is the receipt. Setting context was read +from the Zyphos vault (`Species/Airawa`, `Species/Matriarch Trees`, +`Species/Sa'ueia`, `Civilizations/*`, `Ecology/Breeding Grounds`, +`Ecology/Nation Scale Interbeings`); the vault was not edited. + +Both brief sets wait on Meta's answers to `vq-first-language` and +`vq-name-scope`. Where a brief's scope depends on them it says so. + +## What the sound rules actually give us + +`language-design.md` is thin, and the briefs should not pretend otherwise. + +- **Airawa** has a provisional list (R-A below). It is a tendency list, not a + phonology: no vowel inventory, no photactic limits, no stress rule beyond + "heavy on socially important forms". +- **Sa'ueia has no phonology section at all.** The only rules are negative and + comparative: softer than Airawa, "flow longer and wetter", route names read + smooth, and "avoid making native Airawa names read like smooth Sa'ueia route + names unless the form is explicitly a loan, exonym, or cross-continental + register". Briefs below that cite R-S1..R-S3 are citing that one paragraph. + Accepting or rejecting a Sa'ueia name on sound alone is therefore weak + evidence until someone writes a Sa'ueia sound section. +- The **imperial Airawa register** has no sound rules either. It is only + described as "an artificial quarter-continent clausiform exception imposed + through biological-memetic control", not "named like a normal state with wet + nouns glued on". + +Rule labels used below (quoted or paraphrased from `language-design.md`): + +| Label | Rule | +| --- | --- | +| R-A1 | Airawa: dorsal and coronal plosives prominent (`k g q t d`). | +| R-A2 | Airawa: sibilants and postalveolars carry social texture (`s z sh zh`). | +| R-A3 | Airawa: `r` may be trilled in some registers. | +| R-A4 | Airawa: clipped or closed syllables tolerated, where Sa'ueia would flow longer and wetter. | +| R-A5 | Native Airawa names must not read like smooth Sa'ueia route names unless explicitly loan, exonym or cross-continental register. | +| R-A6 | Room consensus: hard edges, clipped/closed syllables, heavy stress on socially important forms, so claims land with weight. | +| R-S1 | Sa'ueia is softer than Airawa. | +| R-S2 | Sa'ueia forms flow longer and wetter than Airawa. | +| R-S3 | Sa'ueia route names read smooth. | +| R-N | Naming rule: meaning decomposition first; define the speaker's scale, name type (endonym, exonym, ritual avoidance, technical, imperial administrative, route-name, child-name, trade gloss), what the speaker's ontology makes obligatory, and whether the name is stable, seasonal, situational, inherited or evasive. | + +Existing scratch evidence to keep in view: `Druzkai` (Face for a non-imperial +archivist) and the first-contact slice lexicon (`atar`, `qatar`, `daruq`, +`karuq`, `qerath`, `thaleq`...). Neither is canon either. + +Each target's brief ends with **reject if** conditions. A name that fails one +goes back to the brief, not to a patch. + +--- + +## Airawa, non-imperial + +Common to all Airawa briefs below, unless one overrides it: the speakers are +pre-imperial or never-imperial Airawa, in the `Pre-Imperial Airawa Tribes` / +native nation-scale sense, not the Empire. Registers (Airawa imperial, native +tribal, mother-tree-facing) must not collapse into one naming soup +(`README.md`, Authority). + +### A1. Airawa self-name (candidates: `Qazhkar`, `Dozkai`, `Tegzhir`) — DRAFT + +```yaml +target: + kind: endonym (what a non-imperial Airawa people call themselves) + canon_source: Species/Airawa; Civilizations/Pre-Imperial Airawa Tribes + provisional_english_handle: "the Airawa, as they name themselves" +namer: + language_project: none yet (non-imperial Airawa, native register) + register: formal naming register (slice: `qatar`, formal name), not casual + relationship_to_target: the speaker is the target +``` + +- **Speaker:** a non-imperial Airawa speaking as a people, or as a tribe + inside the people (open: see scope question). +- **Addressee:** primarily other Airawa and witnesses at formal naming; second, + an outsider receiving an introduction (the first-contact scene). +- **Register:** formal, standing-bearing; the kind of word that follows `atar` + ("I stand as") and has to land with weight (R-A6). +- **Meaning decomposed before surface:** + a self-name here is probably not "people" in the English sense. The setting + makes the unit of selfhood a relationship: a lineage held by a mother tree, + bound by gestation contracts, contract dress and nutrient obligation. The + candidate meaning bundle is: *those held in memory by mother trees* / + *those who owe and are owed* / *kin through the archive*. It must also work + as a contrast with the empire, which edits memory: the pre-imperial self-name + should presuppose negotiated, leaky membership, not a uniform nation. + Scope question (needs `vq-name-scope`): one pan-Airawa word, a per-tribe + word, or a word for the *kind* of polity (nation-scale interbeing, which + includes the trees)? +- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6; R-A5 as a negative check. +- **Per-candidate sound read (judgment, not rule):** + - `Qazhkar`: `q` + `zh` + `k`, two closed syllables (Qazh-kar), fits R-A1, + R-A2, R-A4, R-A6 cleanly. Shares `-kar` with `sakar` and `kazhar` from the + slice. That is a plus if `-kar` is meant to be a role/person suffix and a + minus if it was only a sound resemblance. + - `Dozkai`: closed first syllable, open second ending in a diphthong `ai`. + Fits R-A1/R-A2 but the open `-ai` tail is the softer shape R-A4 contrasts + against. Also one phoneme away from the scratch name `Druzkai`; two names + with that near neighbourhood will blur unless one is explicitly derived from + the other. + - `Tegzhir`: `t-g-zh` cluster, closed final syllable, clean fit. The only + candidate with a front vowel in the stressed syllable, which may or may not + be a feature. +- **Reject if:** + - the meaning bundle above cannot be stated in one clause that names the + mother-tree relationship (a bare "people" or "the strong" gloss); + - the form also reads as a plausible Sa'ueia word (R-A5); + - it is shared, as a root, with the imperial exonym in A4 without a recorded + reason (loan or deliberate echo); + - the project owner decides the self-name is per-tribe and the word is only + pan-continental. +- **Preferred shape of choice (not a ruling):** pick by the meaning bundle, not + by taste; all three pass the sound list, so sound is not a discriminator here. + +### A2. Mother tree (candidates: `Kharzdun`, `Qetoz`) — DRAFT + +```yaml +target: + kind: name for a being / kind of being, not a place + canon_source: Species/Matriarch Trees; Ecology/Mother Tree Networks + provisional_english_handle: "mother tree / matriarch tree" +``` + +- **Speaker:** non-imperial Airawa. Possibly two speakers needing two words: + a tribe naming *its* tree, and a general word for the kind. Open. +- **Addressee:** other Airawa (referring to the tree); *not* the tree itself. + The slice requires distinguishing "direct speech to a mother-tree" from + "authorized delivery to it", so referring and addressing probably want + different forms. +- **Register:** archival / ritual-respectful. Not a diminutive and not a + kinship term. +- **Meaning decomposed before surface:** the English handle "mother" imports + nurture. The vault's tree is a gestator *and* a memory-holder *and* a party + with coercive leverage (memory can be held hostage; defying it costs + ancestral continuity). The Airawa name should carry at least: *keeper of + memory* and *gestation contract*, and should not smuggle in "gentle". Whether + the name also marks the tree as a sovereign party (a polity, since it is a + node in a nation-scale interbeing) is a fork for the owner. +- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6. +- **Per-candidate sound read:** + - `Kharzdun`: the `kh` is outside the R-A1/R-A2 list (`k g q t d s z sh zh`); + it needs either a rule admitting it or a respelling. Three syllables with + `rz` cluster and final `-dun`: heavy, closed. Strong fit to R-A6 otherwise. + - `Qetoz`: `q` + `t` + `z`, two syllables, fits R-A1/R-A2; the open middle + vowel pattern (`e`, `o`) is lighter than `Kharzdun`. Shorter is arguably + right for a word said often; longer for a word said with weight. +- **Reject if:** the name decomposes only to "mother"/"nurse"/"grandmother" + (kinship nostalgia without the contract and coercion); it is the same word + the empire uses for the tree as *infrastructure* (the Biological Memetic + Engine reuses the tree network, so the empire's word is a different brief); + the project owner rules the kind-word and the individual-tree-word must be + separate and only one is given. + +### A3. Disconnected network (candidates: `Gisqat`, `Zhedkor`) — DRAFT + +```yaml +target: + kind: name for a surviving mother-tree ecology that severed itself + canon_source: Civilizations/Disconnected Tree Networks + provisional_english_handle: "disconnected (tree) network" +``` + +- **Speaker:** a native non-imperial Airawa, ideally someone inside or allied + with such a network. **Not the empire**: the empire denies they exist + (`Airawa Empire`, "Nations It Refuses to Recognize"; they are called + "disease, criminal ecology, or imperial tissue awaiting correction"), so the + imperial register has no sanctioned word, and any imperial term is a + separate brief (A4). +- **Addressee:** other native Airawa; possibly a visiting envoy (the vault has + envoys crossing into Sa'ueia territory). Rumor-grade circulation: the networks + "keep rumors moving through routes the engine cannot fully process". +- **Register:** careful. The vault has the status as survival, refusal and + wound at once; the name may need an indirect/evasive form + (`README.md`: "safe-to-name, indirect-name-required, silence-required"). +- **Meaning decomposed before surface:** *severed* is the surface fact; the + contentful meaning is *alive because cut*: the connection was surrendered to + preserve the self. A gloss of "isolated" or "cut-off" loses that. Axes to + decide: is the name about the cut (act), the survivor (state), or the + continued resistance (role)? Do networks of "trees with more control than + people" and "anti-imperial Airawa communities" share one word, or does the + word name the property (disconnection) rather than the polity? +- **Sound rules that apply:** R-A1, R-A2, R-A4, R-A6. +- **Per-candidate sound read:** + - `Gisqat`: `g-s-q-t`, two closed syllables; a hard stop sequence that reads + as something cut off, which is apt but also a sound-symbolic gloss the + project should not over-trust. + - `Zhedkor`: `zh-d-k`, trilled `r` available (R-A3); heavy and closed. +- **Reject if:** the form is also the imperial term (the empire's denial means + the two registers should not share one word without cause); it glosses to + "dead", "lost" or "isolated"; the owner decides the target is a *property* + word (adjective for any severed tree) and the candidate is a *noun for the + polity*, or vice versa. + +### A4. Imperial exonym for the natives (`Tkarzet`) — DRAFT + +```yaml +target: + kind: exonym, imperial administrative + canon_source: Civilizations/Airawa Empire; Conflicts/Xenophobic Memetic Campaign + provisional_english_handle: "the natives / unincorporated Airawa" +namer: + language_project: none (imperial Airawa register) + register: imperial administrative / doctrinal + relationship_to_target: classifier, denier +``` + +- **Speaker:** the Empire, an artificial nation-scale interbeing speaking + through ministries, doctrine and memetic organisms. +- **Addressee:** imperial citizens and administrators; also doctrine-carrying + memes. Not the natives: it is not a word the natives would be called by to + their faces in a respectful exchange. +- **Register:** official. The language-design rule says this register is + "an artificial quarter-continent clausiform exception", not a normal state's + wet-noun coinage. +- **Meaning decomposed before surface:** the empire's stance is + *non-recognition*: native nations are "disease, criminal ecology, or + imperial tissue awaiting correction"; unification is "biologically + inevitable". So the exonym should classify natives as *not-yet-incorporated + tissue* or *contamination*, not as a people who happen to be foreign. It + should be usable in doctrine and in accusation (dissenters are "infected"). + Open: does the word split native Airawa from the disconnected networks (A3) + or is it a single catch-all? The empire denies the networks exist, so the + catch-all risks naming what the doctrine says does not exist. +- **Sound rules that apply:** R-N (exonym). The provisional R-A list governs + *native* Airawa, not the imperial register. There is no imperial phonology + rule yet, so any sound argument for `Tkarzet` is by analogy to R-A1/R-A2. + `Tkarzet` opens with a `tk` cluster that appears nowhere else in the + candidate set or the slice lexicon; it either marks the imperial register as + phonotactically different (good if intended) or is a stray. +- **Reject if:** it is a bare monosyllabic-looking root with no clausal or + administrative structure (the imperial register is clausiform); it is simply + a native word borrowed with harsher spelling (R-A5's reverse: the imperial + word should not accidentally be a native one); it gives the natives a + sovereign-people gloss, contradicting the doctrine; the owner decides the + imperial register needs a distinct sound system and the candidate cannot be + defended against it. + +--- + +## Sa'ueia family-unit and ecological contexts + +Common context: the Sa'ueia civilization is mobile, family-unit based +(squad-sized groups doing kinship, craft, diplomacy and oaths together), with +sacred communal breeding grounds and reciprocal ecological partners. A name +earns its place by revealing the ecological deal, reproductive pressure, +memory technology or route consequence (`language-design.md`, design target). +The sound rules available are only R-S1..R-S3 and R-A5; see the caveat above. + +### S1. Sa'ueia self-name (candidates: `Ellumaiwa`, `Sauwele`) — DRAFT + +```yaml +target: + kind: endonym; family-unit scale, not species scale (open) + canon_source: Species/Sa'ueia; Civilizations/Sa'ueia Family Units + provisional_english_handle: "the Sa'ueia as a family-unit people" +``` + +- **Speaker:** a Sa'ueia family unit speaking as itself (family-self scale), + possibly on behalf of the wider people. +- **Addressee:** other family units meeting on a route or at a breeding + ground; and ecological partners that keep memory of it (reputation is + held by partners, not only by humans). +- **Register:** family-unit speech, relational and portable; a name that + survives travel and can be re-presented to a partner that remembers you. +- **Meaning decomposed before surface:** the vault makes the family unit the + carrier of standing, and standing is the partners' memory of generosity. So + a self-name probably means something like *those who return and are + recognized as beneficial* / *the traveling reciprocal*, not *the people of a + place*. Scope fork: the continent-scale word "Sa'ueia" already exists in the + vault as the species/continent ethnonym; the candidates may be (a) family-unit + *kind* names, (b) nicknames for the people derived from it, or (c) a + competing ethnonym. This needs `vq-name-scope` before judging. +- **Sound rules that apply:** R-S1, R-S2; R-A5 as a negative check. +- **Per-candidate read (judgment):** + - `Ellumaiwa`: long, open, liquid-heavy (`l`, `m`, `w`); matches R-S1/R-S2 + strongly. Four syllables. + - `Sauwele`: short, open vowels and `w`, `l`; matches R-S1/R-S2, but it + begins `Sa-u-` exactly like `Sa'ueia`. Reads as a respelling or derivation + of the existing name rather than an independent self-name. +- **Reject if:** the owner has not decided the target scale; `Sauwele` is + accepted without a recorded derivation from `Sa'ueia` (otherwise it is an + accidental duplicate); either name decomposes to "wolf-like", "pack" or + "nomad" (the vault warns the wolf comparison explains only part of them, and + "nomad" is a camera-angle word); it cannot take a family-specific modifier + when a particular unit needs naming. + +### S2. Breeding ground (`Oluneihe`) — DRAFT + +```yaml +target: + kind: place-name / commons name, ritual register + canon_source: Ecology/Breeding Grounds + provisional_english_handle: "breeding ground" +``` + +- **Speaker:** a Sa'ueia family unit returning to a ground; and the ground's + year-round occupants (infants, infirm, caretakers, rotating specialists). +- **Addressee:** other family units, partners that remember them, and the + occupants when arrival is announced. +- **Register:** ritual-communal; the vault gives these as places of + transition, mourning, dispute settlement, medical care and obligation + renewal, so the name has some solemnity. +- **Meaning decomposed before surface:** *commons* is the key axis: it is not + property, not a seat, not a nursery run by an empire. The name should mark a + place that *remains* (occupied all year) while the people circulate, and that + gathers reproduction, care, memory and law. It must distinguish itself from + camp, route and partner site (the Simulation Brief explicitly asks what makes + these visibly different). If the name is a *kind* name, it has to be + generic enough to name every ground; if it names one ground, it needs a + proper-name layer. +- **Sound rules that apply:** R-S1, R-S2, R-S3. +- **Read:** `Oluneihe` is long, liquid, open, ends on the `-ihe` vowel + sequence. Strong fit to R-S1/R-S2. The `-eihe` tail does not resemble `-ia` + of `Sa'ueia`; no collision. +- **Reject if:** it decomposes to "home", "village", "city" or "capital" (the + breeding ground failing as a capital is a stated system failure); it equals + or contains the route word (S3) or the family self-name (S1), which would + merge distinct targets; it is used for a camp. + +### S3. Route as obligation (`Ilawerum`) — DRAFT + +```yaml +target: + kind: route-name; relation, not geography + canon_source: Themes/Ecological Bargaining; Ecology/Reciprocal Ecologies + provisional_english_handle: "route (as owed relationship)" +``` + +- **Speaker:** a Sa'ueia family unit that holds or renews a route. +- **Addressee:** other units; the ecological partners (feeding sites, groves, + herds, pollinator corridors) that keep memory of how the unit travelled it. +- **Register:** family-unit speech with some formality: this is a promise-bearing + word. Possibly a seasonal/situational name (a route can open or close + depending on remembered injury). +- **Meaning decomposed before surface:** the key point is that *the route is a + relationship that makes passage available*, not a path on the ground. A unit + may be physically able to travel yet unwelcome (`Family Units`). The word + should mean something like *the standing that lets us pass*; ideally it + distinguishes *the way* from *the debt*. If both senses are one word, the + language is making a commitment about their identity that the vault does + not make. +- **Sound rules that apply:** R-S2, R-S3 (route names read smooth). Also R-A5: + Sa'ueia route names are what Airawa native names must not accidentally + resemble. +- **Read:** `Ilawerum` is smooth through most of the word but ends in `-rum`, + a closed syllable with a nasal coda, which is the one place it trends toward + the clipped shapes the Airawa rule assigns to the other language. Not a + failure by R-S3 (no stated rule against closed syllables in Sa'ueia), but + worth a note: the project should state whether Sa'ueia permits final nasals. +- **Reject if:** it is a plain toponym (no debt sense); it is the same word as + the breeding ground (S2) or shares its stem without a morphological reason; + the owner decides route and obligation are two words and this is only one. + +--- + +## Questions this raises (owners, not decisions) + +- **Scope:** one word per ethnonym or per tribe/unit? (`vq-name-scope`.) +- **First language:** Airawa vs imperial Airawa vs Sa'ueia vs a narrow + naming-brief interlingua (`vq-first-language`; `state/map.yaml`). The Airawa + briefs are better supported by existing sound evidence; the Sa'ueia briefs + have no phonology to defend them. +- **A Sa'ueia sound section** in `language-design.md` is the missing piece for + S1-S3 to be judged on more than the one paragraph of contrast. +- **Imperial register sound rules** for A4. +- **`kh` in `Kharzdun`**: add to the Airawa inventory or respell. + +## Spelling state: Sa'auei'a vs Sa'ueia (as of 2026-11-03) + +The rename is incomplete in both repos. Observed, not fixed here: + +- **Zyphos vault** (`GameCult/Zyphos`, head `7661e1f`): the vault's own git log + has the rename ("Renamed mother trees and Sa'ueia", `3afb94f`, 2026-07-01). + Prose still mixes both spellings: roughly 45 `Sa'ueia` occurrences against 41 + `Sa'auei'a`, across 27 files that still contain the old form (including + `AGENTS.md`, `notes/*`, and mid-sentence mixtures such as `World/index.md`, + which writes `[[Sa'ueia Continent]]` next to "Sa'auei'a nomadic + civilization"). One filename keeps the old form: + `Technologies/Sa'auei'a Mobile Technologies.md` (and its index entry). + Five filenames already use `Sa'ueia`. +- **Weksa** (this repo): `settings/eusocial-interbeing/language-design.md` (6 + occurrences) and `README.md` (2) and `state/map.yaml` (2) still use + `Sa'auei'a`; `.voidbot/state/weksa-birth-seed-operations.json` quotes it in + summaries. This brief set uses `Sa'ueia` (the spelling the follow-up uses) + and leaves `language-design.md` alone, so the rule table above quotes rules + that the source file spells `Sa'auei'a`. +- The two spellings differ by more than an apostrophe: the old form has an + internal glottal (`Sa'auei'a`), the new one does not (`Sa'ueia`). Any + phonological argument that depended on the glottal (the old name's + syllable-break) has no support in the new spelling. From 422dbe7e54d060d9be3effdecde26e72a3d2b670 Mon Sep 17 00:00:00 2001 From: Weksa Date: Fri, 6 Nov 2026 04:32:37 +0000 Subject: [PATCH 7/7] Zyphos briefs: revise against the Sa'ueia sound section Oluneihe withdrawn (forbidden h; Olune is Deru's root). Ilawerum is Deru's ila+werum, not a candidate. Ellumaiwa fails the no-doubled-letter rule. Dozkai/Druzkai is two edits. Drop the no-phonology caveat and the spelling state section (respell merged in Weksa #4, Zyphos #1). Co-Authored-By: Claude Sonnet 5.5 --- .../eusocial-interbeing/zyphos-name-briefs.md | 109 ++++++++---------- 1 file changed, 50 insertions(+), 59 deletions(-) diff --git a/settings/eusocial-interbeing/zyphos-name-briefs.md b/settings/eusocial-interbeing/zyphos-name-briefs.md index c81e6ca..aae4c2d 100644 --- a/settings/eusocial-interbeing/zyphos-name-briefs.md +++ b/settings/eusocial-interbeing/zyphos-name-briefs.md @@ -22,13 +22,12 @@ Both brief sets wait on Meta's answers to `vq-first-language` and - **Airawa** has a provisional list (R-A below). It is a tendency list, not a phonology: no vowel inventory, no photactic limits, no stress rule beyond "heavy on socially important forms". -- **Sa'ueia has no phonology section at all.** The only rules are negative and - comparative: softer than Airawa, "flow longer and wetter", route names read - smooth, and "avoid making native Airawa names read like smooth Sa'ueia route - names unless the form is explicitly a loan, exonym, or cross-continental - register". Briefs below that cite R-S1..R-S3 are citing that one paragraph. - Accepting or rejecting a Sa'ueia name on sound alone is therefore weak - evidence until someone writes a Sa'ueia sound section. +- **Sa'ueia has a working sound section** + ([Sa'ueia Sound](./language-design.md#saueia-sound-proposal-for-deru-to-cut), + enforced by `sa-ueia/check.py` against `sa-ueia/table.yaml`). It is a + proposal Deru approved in outline; only the species name is canon. Rule + labels R-S4..R-S8 below cite it. The consonant inventory, syllable shapes and + stress are still open, so sound arguments beyond the letter rules stay weak. - The **imperial Airawa register** has no sound rules either. It is only described as "an artificial quarter-continent clausiform exception imposed through biological-memetic control", not "named like a normal state with wet @@ -47,6 +46,11 @@ Rule labels used below (quoted or paraphrased from `language-design.md`): | R-S1 | Sa'ueia is softer than Airawa. | | R-S2 | Sa'ueia forms flow longer and wetter than Airawa. | | R-S3 | Sa'ueia route names read smooth. | +| R-S4 | Sa'ueia letters: vowels `a e i o u`; forbidden `h q y` (`k` where a `q` might have been). | +| R-S5 | Sa'ueia: short words, soft and open; at most 10 letters joined (warning, Weksa placeholder). | +| R-S6 | Sa'ueia: suffixing morphology; identical letters merge at a join (`weru`+`um` -> `werum`). | +| R-S7 | Sa'ueia: no doubled letter inside a morpheme (Weksa placeholder); a double arises only at a join, and the merge removes it. | +| R-S8 | Sa'ueia roots from Deru: `ila` walk, `weru` know, `olune` breeding ground (unanalyzed), `-um` verb suffix. Composed: `werum`, `ilawerum` (walk of knowledge). | | R-N | Naming rule: meaning decomposition first; define the speaker's scale, name type (endonym, exonym, ritual avoidance, technical, imperial administrative, route-name, child-name, trade gloss), what the speaker's ontology makes obligatory, and whether the name is stable, seasonal, situational, inherited or evasive. | Existing scratch evidence to keep in view: `Druzkai` (Face for a non-imperial @@ -104,8 +108,8 @@ namer: minus if it was only a sound resemblance. - `Dozkai`: closed first syllable, open second ending in a diphthong `ai`. Fits R-A1/R-A2 but the open `-ai` tail is the softer shape R-A4 contrasts - against. Also one phoneme away from the scratch name `Druzkai`; two names - with that near neighbourhood will blur unless one is explicitly derived from + against. Also two edits from the scratch name `Druzkai` (insert `r`, `o` to + `u`); two names with that near neighbourhood will blur unless one is explicitly derived from the other. - `Tegzhir`: `t-g-zh` cluster, closed final syllable, clean fit. The only candidate with a front vowel in the stressed syllable, which may or may not @@ -253,7 +257,8 @@ Common context: the Sa'ueia civilization is mobile, family-unit based sacred communal breeding grounds and reciprocal ecological partners. A name earns its place by revealing the ecological deal, reproductive pressure, memory technology or route consequence (`language-design.md`, design target). -The sound rules available are only R-S1..R-S3 and R-A5; see the caveat above. +The sound rules available are R-S1..R-S8 and R-A5; the inventory, syllable +shapes and stress are still open. ### S1. Sa'ueia self-name (candidates: `Ellumaiwa`, `Sauwele`) — DRAFT @@ -279,11 +284,14 @@ target: vault as the species/continent ethnonym; the candidates may be (a) family-unit *kind* names, (b) nicknames for the people derived from it, or (c) a competing ethnonym. This needs `vq-name-scope` before judging. -- **Sound rules that apply:** R-S1, R-S2; R-A5 as a negative check. -- **Per-candidate read (judgment):** - - `Ellumaiwa`: long, open, liquid-heavy (`l`, `m`, `w`); matches R-S1/R-S2 - strongly. Four syllables. - - `Sauwele`: short, open vowels and `w`, `l`; matches R-S1/R-S2, but it +- **Sound rules that apply:** R-S1, R-S2, R-S4, R-S5, R-S7; R-A5 as a negative check. +- **Per-candidate read (judgment, then the letter rules):** + - `Ellumaiwa`: long, open, liquid-heavy. Fails R-S7: `ll` is a doubled + letter inside a morpheme, with no join to merge it, unless the form + is parsed as `el`+`lumaiwa` (then the merge rule would give `elumaiwa`). + Also 9 letters, near the R-S5 bound. Needs a respelling or a parse, not a + patch. + - `Sauwele`: short, open vowels and `w`, `l`; passes R-S4/R-S5/R-S7, but it begins `Sa-u-` exactly like `Sa'ueia`. Reads as a respelling or derivation of the existing name rather than an independent self-name. - **Reject if:** the owner has not decided the target scale; `Sauwele` is @@ -293,7 +301,7 @@ target: "nomad" is a camera-angle word); it cannot take a family-specific modifier when a particular unit needs naming. -### S2. Breeding ground (`Oluneihe`) — DRAFT +### S2. Breeding ground (`Olune`, Deru's root; `Oluneihe` withdrawn) — DRAFT ```yaml target: @@ -317,16 +325,21 @@ target: these visibly different). If the name is a *kind* name, it has to be generic enough to name every ground; if it names one ground, it needs a proper-name layer. -- **Sound rules that apply:** R-S1, R-S2, R-S3. -- **Read:** `Oluneihe` is long, liquid, open, ends on the `-ihe` vowel - sequence. Strong fit to R-S1/R-S2. The `-eihe` tail does not resemble `-ia` - of `Sa'ueia`; no collision. -- **Reject if:** it decomposes to "home", "village", "city" or "capital" (the - breeding ground failing as a capital is a stated system failure); it equals - or contains the route word (S3) or the family self-name (S1), which would - merge distinct targets; it is used for a camp. +- **Sound rules that apply:** R-S1, R-S2, R-S3, R-S4, R-S8. +- **Read:** the target already has a name from Deru: `olune`, breeding ground + (R-S8), unanalyzed. The earlier candidate `Oluneihe` is withdrawn: it + contains `h`, which R-S4 forbids, and its stem `Olune` is Deru's own root, so + the candidate only added a suffix to a word that already answers the brief. + What remains open for this brief is whether `olune` is the kind-word, a + single ground's name, or needs a proper-name layer; and its morpheme + boundaries, which Deru has not given. +- **Reject if:** any proposed form contains `h`, `q` or `y`; it decomposes to + "home", "village", "city" or "capital" (the breeding ground failing as a + capital is a stated system failure); it equals or contains the route word + (S3) or the family self-name (S1), which would merge distinct targets; it is + used for a camp; it replaces `olune` without Deru's say. -### S3. Route as obligation (`Ilawerum`) — DRAFT +### S3. Route as obligation (no candidate) — DRAFT ```yaml target: @@ -348,15 +361,16 @@ target: distinguishes *the way* from *the debt*. If both senses are one word, the language is making a commitment about their identity that the vault does not make. -- **Sound rules that apply:** R-S2, R-S3 (route names read smooth). Also R-A5: +- **Sound rules that apply:** R-S2, R-S3 (route names read smooth), R-S4..R-S8. Also R-A5: Sa'ueia route names are what Airawa native names must not accidentally resemble. -- **Read:** `Ilawerum` is smooth through most of the word but ends in `-rum`, - a closed syllable with a nasal coda, which is the one place it trends toward - the clipped shapes the Airawa rule assigns to the other language. Not a - failure by R-S3 (no stated rule against closed syllables in Sa'ueia), but - worth a note: the project should state whether Sa'ueia permits final nasals. -- **Reject if:** it is a plain toponym (no debt sense); it is the same word as +- **Read:** `Ilawerum` is not a candidate. It is Deru's own composition, + `ila` (walk) + `werum` (knowledge, verb form `weru`+`um`), glossed "walk of + knowledge" (R-S8). It names a different thing, and the checker reproduces it + as a fixed composition. Any route-as-obligation word should be built from + Deru's roots or new roots she accepts, and must not be confused with, or + collide with, `ilawerum`. +- **Reject if:** it is `ilawerum` or only a respelling of it; it is a plain toponym (no debt sense); it is the same word as the breeding ground (S2) or shares its stem without a morphological reason; the owner decides route and obligation are two words and this is only one. @@ -368,32 +382,9 @@ target: - **First language:** Airawa vs imperial Airawa vs Sa'ueia vs a narrow naming-brief interlingua (`vq-first-language`; `state/map.yaml`). The Airawa briefs are better supported by existing sound evidence; the Sa'ueia briefs - have no phonology to defend them. -- **A Sa'ueia sound section** in `language-design.md` is the missing piece for - S1-S3 to be judged on more than the one paragraph of contrast. + have only the working sound section, which leaves the inventory open. +- **Sa'ueia open items** (inventory, syllable shapes, stress, apostrophe role, + `weru` versus `wer-`) are Deru's; S1-S3 are judged on the letter rules only + until she cuts them. - **Imperial register sound rules** for A4. - **`kh` in `Kharzdun`**: add to the Airawa inventory or respell. - -## Spelling state: Sa'auei'a vs Sa'ueia (as of 2026-11-03) - -The rename is incomplete in both repos. Observed, not fixed here: - -- **Zyphos vault** (`GameCult/Zyphos`, head `7661e1f`): the vault's own git log - has the rename ("Renamed mother trees and Sa'ueia", `3afb94f`, 2026-07-01). - Prose still mixes both spellings: roughly 45 `Sa'ueia` occurrences against 41 - `Sa'auei'a`, across 27 files that still contain the old form (including - `AGENTS.md`, `notes/*`, and mid-sentence mixtures such as `World/index.md`, - which writes `[[Sa'ueia Continent]]` next to "Sa'auei'a nomadic - civilization"). One filename keeps the old form: - `Technologies/Sa'auei'a Mobile Technologies.md` (and its index entry). - Five filenames already use `Sa'ueia`. -- **Weksa** (this repo): `settings/eusocial-interbeing/language-design.md` (6 - occurrences) and `README.md` (2) and `state/map.yaml` (2) still use - `Sa'auei'a`; `.voidbot/state/weksa-birth-seed-operations.json` quotes it in - summaries. This brief set uses `Sa'ueia` (the spelling the follow-up uses) - and leaves `language-design.md` alone, so the rule table above quotes rules - that the source file spells `Sa'auei'a`. -- The two spellings differ by more than an apostrophe: the old form has an - internal glottal (`Sa'auei'a`), the new one does not (`Sa'ueia`). Any - phonological argument that depended on the glottal (the old name's - syllable-break) has no support in the new spelling.