# Batch 166 process log - Rule 124 lexical-head case-frame consolidation

Program: Kuku Yalanji synthetic parallel corpus for MobTranslate.
Batch label: `batch-166`.
Date opened: 2026-07-07.
Starting verified corpus: 8,347 / 20,000 verified sentences, 93,011 Kuku words, lint green, no under-review rows.
Target after close: 8,397 / 20,000 verified sentences.

## Operator intent

Batch 166 continues the construction cadence after the Rule 123 lexical expansion. The aim is not to introduce new
morphology. The aim is to consolidate recently checked lexical heads across already controlled case frames:

- place/source/rest frames with `wuna-y` and `kada-y`;
- object placement, leaving, getting, bringing, and taking with overt lexical objects;
- `nyaji-l` perception rows contrasting ERG common-noun A with unmarked pronoun A;
- `babaji-y` ask-about rows with ABS/S asker, LOC:pt person asked, and DAT topic;
- `yajarri-l` laugh-target rows with DAT:pt targets;
- the closed comitative set only;
- the two fixed Patz-backed possessive object NPs only.

No row is generator-authored. The 50 sentence pairs are hand-authored in the main loop from the checked source
inventory below, with an exact-surface duplicate scan before banking.

## Source inventory checked before authoring

Primary grammar file: `/mnt/donto-data/workspace/mobtranslate.com/dictionaries/kuku_yalanji/grammar.md`.
Primary dictionary file: `/mnt/donto-data/workspace/mobtranslate.com/dictionaries/kuku_yalanji/dictionary.yaml`.
Corpus lexeme table: `synthetic.db.lexemes`.

### Lexical heads and forms retained

Exact dictionary readback confirmed the batch inventory, including `babi`, `balji`, `baral`, `bayan`, `bikibiki`,
`bubu`, `dingkar`, `dumbul`, `jalbu`, `jalun`, `jawun`, `jikan`, `kaku`, `kambi`, `kami`, `karra`, `karrkay`,
`kaya`, `kuku`, `madja`, `makarr`, `maral`, `mayi`, `mayngku`, `ngalkal`, `ngamu`, `ngana`, `nganjan`, `ngayu`,
`ngunyin`, `wabarr`, `warru`, `wulbuman`, `wulman`, `wungar`, and `yinkar`.

Grammar/source readback confirmed:

- `wulman` as an old-man/old-person narrative noun;
- `bikibiki` as pig and `mayngku` as mango, both attested loans;
- `wungar` as sun;
- `bayan-muny`, `jalun-muny`, `jalun-bu`, `baral-ba`, `bubu-ngu`, `balji-nga`, `ngalkal-ba`, `wabarr-ba`,
  `jikan-ba`, `bayan-ba`, `bayan-ka`, and `wawubaja-nga` as retained place/source/goal controls;
- `makarr` with `wundi-l`;
- `kuku-ku` and `mayngku-ku` as grammar-sourced DAT topics;
- `ngawa-nji`, `nganjan-anji`, `jawun-unji`, `juku-ji`, and `kambi-ji` as the only comitatives admitted here.

## Risk controls

- `ngunyin-ji` is attested but not imported; this batch keeps the comitative inventory closed.
- `yinkar` is translated as "remains dilly bag", not generic bag or vague special bag.
- `kaku` is the noun "lawyer-cane top", not a wait expression.
- No new possessive templates are coined; only `mayi kaya-nga` and `kambi ngamu-ngu` are reused.
- No `baral-muny`, no `kadar-anji`, no `maja-nga`, and no `yunga-l`.
- `babaji-y` askers remain ABS/S, not ERG-marked A.
- Common-noun `nyaji-l` perceivers are ERG-marked; pronoun A remains bare.
- `yajarri-l` targets carry sourced DAT:pt suffixes.
- Exact duplicate Kuku surfaces are blocked against the full non-rejected corpus.

## Planned row groups

- Rows 1-10: place/source/rest with recently checked lexical heads.
- Rows 11-20: object place/source/goal contrasts.
- Rows 21-30: perception A-marking contrasts.
- Rows 31-35: ask-about rows with DAT topics.
- Rows 36-40: laugh-target rows.
- Rows 41-46: closed comitative rows.
- Rows 47-50: fixed possessive object rows.

## Pre-bank state

- `sqlite3 synthetic.db`: accepted 7,436; revised 911; under_review 0; verified total 8,347.
- `lint_corpus.py`: `lint: 8347 rows scanned, 0 issues flagged`.
- Planned-surface duplicate scan initially found one duplicate candidate from the handoff plan: `Babi nganjan-anka yajarrin.`
  already occurred in `batch-161`. It was replaced with `Babi maral-anda yajarrin.` before banking.
- A separate row was also changed before banking from the handoff's duplicate-prone `Dingkar-angka ngunyin baral-ba
  yijarrin.` to `Dingkar-angka ngunyin bubu-ngu yijarrin.` to keep the row fresh while preserving the Rule 124 contrast.

## Banking, review, close, export, and docs

`python3 -m py_compile batch_scripts/bank_166.py` passed.

Pre-bank lint:

- `lint: 8347 rows scanned, 0 issues flagged`
- `GOAL METRIC: 8347 / 20000 verified sentences (93011 Kuku words)`

Bank command:

- `python3 batch_scripts/bank_166.py`
- Result: `banked batch-166: 50 rows under_review, avg_words=3.78, process_events=8`

Under-review lint:

- `lint: 8397 rows scanned, 0 issues flagged`
- `GOAL METRIC: 8347 / 20000 verified sentences (93011 Kuku words)`

Manual five-lens review:

- morphology: passed all 50 rows; checked retained LOC, ABL, DAT, DAT:pt, LOC:pt, COMIT, POSS, ERG, past, and nonpast forms;
- lexicon: passed all 50 rows; every content head was checked against dictionary, Patz grammar, or existing verified lexeme evidence;
- syntax: passed all 50 rows; checked object visibility, common-noun `nyaji-l` ERG, unmarked pronoun A, `babaji-y` ask-about, `yajarri-l` targets, transfer source/goal, and closed comitative frames;
- fidelity: passed all 50 rows; checked `yinkar` specificity, `kaku` noun sense, LOC-as-goal English renderings, and duplicate-repair rows;
- register: passed all 50 rows; ordinary country/camp material culture and participant interaction, pending elder verification.

`python3 -m py_compile batch_scripts/close_166.py` passed.

Close command:

- `python3 batch_scripts/close_166.py`
- Result: `closed batch-166: 50 accepted rows, 250 review passes, 20 lessons, 43 lexeme/source-log rows, 14 process events, under_review=0, verified corpus=8397`

Post-close lint:

- `lint: 8397 rows scanned, 0 issues flagged`
- `GOAL METRIC: 8397 / 20000 verified sentences (93200 Kuku words)`

DB readback after close:

- accepted: 7,486
- revised: 911
- under_review: 0
- verified total: 8,397 / 20,000
- Batch 166 reviews: 250
- Batch 166 lessons: 20
- Batch 166 lexeme/source-log rows: 43
- Batch 166 process events after export/docs/live logging: 18

Training export refreshed:

- total rows: 8,397
- train/dev/synthtest: 7,026 / 684 / 687
- manifest: `export/MANIFEST.json`

## Living books and live docs

Canonical report sources updated:

- `reports/KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md`: 8,397 count, Rule 124 close, Rule 125 handoff.
- `reports/kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md`: new Rule 124 section with examples and traps.
- `reports/kuku-yalanji-dictionary-errata-2026-07-02.md`: new Batch-166 errata/source section.
- `reports/SAMPLE-PRODUCTION-PAGES.md`: refreshed build-state note.

Rendered with:

- `./render-docs.sh`
- Rendered: `operator-guide.html`, `sample-pages.html`, `grammar-cheatsheet.html`, `dictionary-errata.html`, raw `.md` copies, and `index.html`.

Local rendered markers present:

- operator guide: `8,397`, `Rule 124`, `Rule 125`, `batch-166-lexical-head-case-frame-consolidation-process.md`;
- grammar cheatsheet: `Rule 124`, `Ngunyin baral-ba wunan`, `Babi maral-anda yajarrin`, `7026/684/687`;
- dictionary errata: `Batch-166`, `yinkar`, `43 lexeme/source-log`, process-log path;
- sample pages: `Current build note`, `8,397`, `Batch 166`, `Rule 124`.

Live checks:

- `/docs` returned 301 to `/docs/`.
- `/docs/` returned 200.
- All four `.html` docs returned 200.
- All four raw `.md` docs returned 200.
- Live markers present:
  - operator guide: `8,397`, `Rule 124`, `Rule 125`, `batch-166-lexical-head-case-frame-consolidation-process.md`;
  - grammar cheatsheet: `Rule 124`, `Ngunyin baral-ba wunan`, `Babi maral-anda yajarrin`, `7026/684/687`;
  - dictionary errata: `Batch-166`, `remains dilly bag`, `43 lexeme/source-log`, process-log path;
  - sample pages: `Current build note`, `8,397`, `Batch 166`, `Rule 124`.

## Next handoff

Next batch should be `batch-167`, proposed Rule 125: source-backed lexical expansion after Rule 124. Keep the lexical
ambition small: a few newly checked heads, many controlled contrasts, no new morphology. Continue the standing traps:
no `ngunyin-ji` import, no productive comitative analogy, no new possessive templates, no `baral-muny`, no vague
`yinkar`, no ERG `babaji-y` askers, ERG common-noun `nyaji-l` perceivers, and explicit DAT:pt targets for `yajarri-l`.
