# Batch 141 Process Log - Social Relations, Taboo, Truth, And Authority Lexicon

Corpus: `claude-synthetic-v1-2026-07-02`  
Batch: `batch-141`  
Rule: 99, lexical batch  
Start checkpoint: 7,097 / 20,000 accepted or revised sentences, lint green.

## Goal

Add 50 hand-authored lexical rows for social relations, taboo/avoidance, names, truth/lie predicates, mild authority
language, and obligation/disapproval particles. This is a high-sensitivity lexical batch: the target is not to invent
English "law/respect/permission" abstractions, but to bank source-shaped Kuku Yalanji forms that the grammar and
dictionary actually support.

No Kuku content is script-generated. Scripts only store hand-authored rows, enforce duplicate/static checks, and record
process metadata.

## Process Storage Policy

From this batch onward, process evidence is stored in two layers:

- Human-readable narrative log: this file.
- Structured SQLite ledger: `process_events` in `synthetic.db`, initialized by `batch_scripts/process_ledger.py`.

The ledger records source checks, command outputs, correction decisions, review events, and live-book verification
markers with UTC timestamps. It is append-only and does not change sentence-generation behavior.

## Source Pass

Primary source checks before banking:

- Patz §1.2.1.3: each Yalanji/Nyungkul speaker belongs to one of two moieties, `walarr` or `dabu`; correct marriage is
  to the opposite moiety; children follow the father's moiety.
- Patz §1.2.1.3: the man/mother-in-law relationship is subject to total avoidance. The source states they may not speak
  to each other or be in the same room; other in-law relationships have less strict taboos.
- Patz §1.2.1.7: taboos apply to some in-law, food, place, and name contexts. A deceased person's name was formerly
  proscribed and replaced by the substitute term `ngalba`.
- Patz §1.2.1.8 and dictionary: `kanyil` is a curse song associated with serious wrongdoing; dictionary gives the
  usage `kanyil badi` "sing a curse song".
- Patz §4.7 ex.566: `Yundu ngamu kari nyuya!` "Don't blame your mother!" controls the imperative `nyuya`.
- Patz §4.7 ex.570-571: imperative `balu` means leave someone/something alone or let something be:
  `Balu dungay!`, `Balu wajujika!`.
- Patz §4.9.2 ex.599-603: `balu` differs from simple `kari`; it marks desist/give-up/refrain/disapproval and governs
  a purposive clause or dative noun.
- Patz §4.8 ex.576: `maja` "boss" is source-attested in a with-boss question; the dictionary marks it as an English
  loan from "master". Use it sparingly and record the loan.
- Dictionary kin entries checked: `jawun`, `bangunji`, `banji`, `warrin`, `biwul`, `ngalayin`.
- Dictionary culture entries checked: `mandi`, `walarr`, `dabu`, `mulkal-mulkal`, `yirmbal`, `bubu yirmbal`, `ngalba`.
- Dictionary speech/truth entries checked: `burri`, `dalkil`, `jurril`, `warmbiji`, `jurril-bungal`, `manubaja`,
  `manubaja-bungal`, `nyuyal`, `murru-kangal`.
- Dictionary emotion/shame entries checked: `milka-murruji`, `murru-kaday`, `murru-kaday-manil`.
- Dictionary manner/custom entry checked: `yalaku`; usage `jana yalaku` "they are like that / custom / way they are".
- Dictionary `yalakay` is an interjection of astonishment with usage `yalakay yundu kadanka?`; the entry notes Nyungkul
  `yukil` as a variant. Use `yalakay` only in its source-shaped question frame, not as a general adjective "true".

## Conflict And Risk Decisions

- Older errata warned "no native word for moiety" and suggested `bama-jambul`. Later living-book work plus the
  dictionary entry `mandi` "moiety or subsection" supersede that caution. Batch 141 may use `mandi`, but the decision is
  logged as a conscious source-priority choice.
- Do not use Nyungkul `jabul` for Yalanji taboo rows; use Yalanji `yirmbal`.
- Do not use `yukil` for "true"; it is dialect-marked in this context. Prefer `manubaja`, and only use `yalakay` in
  the attested "is it true?" interjection frame if needed.
- Do not invent lexical items for "respect", "permission", "promise", "customary law", "authority", or "shame" beyond
  the attested forms. Rephrase to `kuku`, `maja`, `balu`, `milka-murruji`, `murru-kaday`, `nyuyal`, or source-shaped
  speech predicates where warranted.
- Treat `biwul` carefully because it also has a homonymous "black snake" entry. In this batch, `biwul` rows are kinship
  rows, supported by grammar and dictionary kin context.
- Treat `burri` carefully because older watchlists found phantom verb uses. `burri` as "name; corroboree song" is
  cleared; naming as a verb must use `dalki-l`, not `burri-l`.
- Treat `mulkal-mulkal` carefully because it is polysemous; Batch 141 uses only the "totem" sense or a generic "that is
  a totem" frame.
- Treat `murru-kangal` as source-shaped "scold/growl someone"; previous living-book rules accept transitive-like
  rows despite the dictionary's intransitive type label.

## Intended Row Inventory

The intended rows are in `batch_scripts/bank_141.py`. They are grouped as follows:

1. Rows 1-16: kin, in-law, `biwul` avoidance, `jawun`, and `maja`.
2. Rows 17-27: `mandi`, `walarr`, `dabu`, `mulkal-mulkal`, `yirmbal`, and `ngalba`.
3. Rows 28-41: `burri`/`dalki-l`, truth/lie, blame/scold, shame, and belief predicates.
4. Rows 42-50: `balu`, `kanyil`, and `yalaku`/custom-like source frames.

## Rejected Or Risk-Controlled Forms

- No English-style "respect the law" rows.
- No "permission" rows.
- No "promise" rows; `milka-murruji` mentions not keeping a promise in its definition, but this batch does not coin a
  promise noun.
- No general "authority" noun; `maja` is only "boss" and marked as a loan.
- No free finite complements under `manubaja-bungal`; belief rows use simple objects.
- No `bama-jambul` rows for moiety unless later review decides the older errata should remain active; for this batch,
  `mandi` is the controlled moiety term.

## Verification And Closeout

All commands below were run from
`/mnt/donto-data/donto-resources/research/translation-training/kuku-yalanji-runpod-2026-06-30/synthetic/claude-synthetic-v1-2026-07-02`
unless otherwise stated.

1. Added the structured process ledger helper:
   - `batch_scripts/process_ledger.py`.
   - Created `process_events` in `synthetic.db`.
   - Recorded source-check, conflict-decision, risk-control, lint, rebank, review, close, and export events.
2. Banked with `python3 batch_scripts/bank_141.py`.
   - Output: `banked batch-141: 50 rows under_review; avg Kuku words/row=3.00`.
   - Cross-corpus duplicate check passed before insertion.
3. First full lint with `python3 lint_corpus.py`.
   - Output: `lint: 7147 rows scanned, 0 issues flagged`.
   - Goal metric remained `7097 / 20000 verified sentences` because the batch was still `under_review`.
4. Manual five-lens review:
   - Morphology: checked kin case/allomorphy, `dalki-ny`, `warmbiji-ny`, `murru-kaday-ny`, `-manil` past
     `-manin`, `kuni-wa-nka`, and imperative `balu` frames.
   - Lexicon: retained `mandi` after logging the older errata conflict; rejected `jabul`, `yukil`, `respect`,
     `permission`, `promise`, and general `authority` abstractions.
   - Syntax: preserved `babaji-y` LOC/DAT frame in row 20; kept `murru-kangal` as the source-shaped
     scold-someone frame; kept `kanyil badi` actor ABS like other `badi-y` song rows.
   - Fidelity: cultural claims are limited to the source-backed topics: mother-in-law avoidance, moiety labels,
     name taboo, taboo places/things, curse song, truth/lie, blame/scold, and `balu` disapproval/desist.
   - Register: `maja` is marked as a loan; `biwul` is explicitly mother-in-law, not the black-snake homonym.
5. Analysis-only correction before close:
   - Row 22 analysis changed from `taboo-?` to `taboo-source.clitic` for source-quoted `Yirmbalda`.
   - No Kuku surface row changed after banking.
6. Rebanked with `python3 batch_scripts/bank_141.py` after the analysis correction.
   - Output: `banked batch-141: 50 rows under_review; avg Kuku words/row=3.00`.
7. Reran pre-close lint.
   - Output: `lint: 7147 rows scanned, 0 issues flagged`.
8. Closed with `python3 batch_scripts/close_141.py`.
   - Output: `closed batch-141: 50 accepted rows, 250 review passes, 15 lessons, 33 lexeme/source-log rows, 13 process events, verified corpus=7147`.
9. Ran full post-close lint.
   - Output: `lint: 7147 rows scanned, 0 issues flagged`.
   - Goal metric: `7147 / 20000 verified sentences (88205 Kuku words)`.
10. Refreshed export with `python3 export_training.py`.
    - Total exported rows: 7,147.
    - Split: train 5,983; dev 578; synthtest 586.
    - Highest construction tags: ergative 1,639; negation 1,600; purposive 1,383; subordinate 1,090;
      ablative 962.
11. Read back database audit counts from `synthetic.db`.
    - Global statuses: `accepted=6237`, `revised=910`.
    - Batch 141 status: `accepted=50`.
    - Reviews: 250.
    - Lessons: 15.
    - Lexeme/source-log rows for `batch-141-verify`: 33.
    - Process events after post-close verify: 14.

## Live Book Update

Updated these source files:

- `reports/KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md`
  - Current line now says `7,147 / 20,000 verified sentences (Rules 1–99)`.
  - §3 now lists `process_events` as part of the corpus DB.
  - §5.2 now includes Rule 99 social relations/taboo/truth/avoidance/authority lexicon.
  - §5.9 now requires process-event recording via `batch_scripts/process_ledger.py`.
  - The next handoff now points to Rule 100, construction: direct speech, reported speech, quotation punctuation, and
    speech-clause framing.
  - The next script names are `bank_142.py` and `close_142.py`.
- `reports/kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md`
  - Added Rule 99 with kin/in-law/avoidance, moiety/totem/taboo/name-avoidance, truth/lie/blame/scold/shame, `balu`,
    `kanyil`, `yalaku`, and `maja` notes.
  - Added the standing process trap that future batches should store structured `process_events`.
- `reports/kuku-yalanji-dictionary-errata-2026-07-02.md`
  - Added Batch-141 verified inventory and watchlist decisions.
  - Logged `mandi` conflict resolution, `yalakay` final-y retention, `burri` noun vs `dalki-l` naming verb,
    `yirmbal` vs `jabul`, `balu` semantics, `kanyil badi`, `biwul` homonym control, `mulkal-mulkal` polysemy,
    `murru-kangal` type-label tension, and the new `process_events` ledger.

Rendered the public docs from the program root
`/mnt/donto-data/donto-resources/research/translation-training/kuku-yalanji-runpod-2026-06-30`:

```text
./render-docs.sh
  rendered operator-guide.html      <- KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md
  rendered sample-pages.html        <- SAMPLE-PRODUCTION-PAGES.md
  rendered grammar-cheatsheet.html  <- kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md
  rendered dictionary-errata.html   <- kuku-yalanji-dictionary-errata-2026-07-02.md
  wrote index.html
```

Generated-file marker checks in `public-docs/` passed:

- Operator HTML/MD: `7,147 / 20,000`, `Rules 1–99`, `Rule 100`, `process_events`, `bank_142.py`, `close_142.py`.
- Grammar HTML/MD: Rule 99/social-relations heading, `batch-141`, `Lint GREEN 7147`, `process_events`, `yalakay`.
- Errata HTML/MD: `Batch-141`, `Lint GREEN 7147`, `process_events`, `taboo-source.clitic`, `yalakay`.

Local Caddy route check using `--resolve mobtranslate.com:443:127.0.0.1`:

```text
/docs 301 https://mobtranslate.com/docs/
/docs/ 200
/docs/operator-guide.html 200
/docs/operator-guide.md 200
/docs/sample-pages.html 200
/docs/sample-pages.md 200
/docs/grammar-cheatsheet.html 200
/docs/grammar-cheatsheet.md 200
/docs/dictionary-errata.html 200
/docs/dictionary-errata.md 200
```

Public edge check at `https://mobtranslate.com/docs/` with a browser user-agent:

```text
/docs 301 https://mobtranslate.com/docs/
/docs/ 200
/docs/operator-guide.html 200
/docs/operator-guide.md 200
/docs/sample-pages.html 200
/docs/sample-pages.md 200
/docs/grammar-cheatsheet.html 200
/docs/grammar-cheatsheet.md 200
/docs/dictionary-errata.html 200
/docs/dictionary-errata.md 200
```

Public body marker checks passed for:

- Operator MD/HTML: `7,147 / 20,000`, `Rules 1–99`, `Rule 100`, `process_events`, `bank_142.py`, `close_142.py`.
- Grammar MD/HTML: Rule 99/social-relations heading, `Lint GREEN 7147`, `process_events`.
- Errata MD/HTML: `Batch-141`, `taboo-source.clitic`, `process_events`.

Final state: Batch 141 is closed, exported, logged, and live in the books. The verified corpus is now
**7,147 / 20,000**.
