# Batch 164 process log - Rule 122 place/source/object/participant frame consolidation

Program: Kuku Yalanji synthetic parallel corpus for MobTranslate.
Batch label: `batch-164`.
Date opened: 2026-07-07.
Starting verified corpus: 8,247 / 20,000 verified sentences, 92,633 Kuku words, lint green, no under-review rows.
Target after close: 8,297 / 20,000 verified sentences.

## Operator intent

Batch 164 continues the construction cadence after Rule 121. The purpose is not to add novel lexical inventory. The purpose is to consolidate the case frames that Rule 121 made possible:

- place versus source contrasts with the same source-backed nouns;
- object plus place/source/goal frames, with the moved or handled object overt;
- perception rows contrasting common-noun ERG perceivers against unmarked pronoun A;
- `babaji-y` ask-about rows with ABS/S asker, LOC:pt person asked, and DAT topic;
- `yajarri-l` laugh rows with DAT:pt target and intransitive S laugher;
- only the closed set of source-backed comitatives;
- only the two Patz-backed possessive object NPs.

No row is generator-authored. The 50 sentence pairs were hand-authored in the main loop from the checked source inventory below.

## 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`.

### Grammar controls

Checked forms and rules in the Patz-derived grammar:

- Place/source case forms: `jalun-bu`, `jalun-muny`, `bayan-muny`, `bayan-ka`, `wawubaja-nga`, `wawubaja-muny`, `madja-muny`, `baral-ba`, `ngalkal-ba`, `wabarr-ba`, `bubu-ngu`, `jikan-ba`, `balji-nga`, `wujurr-bu`.
- Possessives: `mayi kaya-nga` and `kambi ngamu-ngu`.
- Comitatives: `ngawa-nji`, `nganjan-anji`, `jawun-unji`, `juku-ji`, `kambi-ji`.
- Perception: `nyaji-l` as see/hear; common-noun perceivers require ERG in this corpus style, pronoun A remains unmarked.
- Ask-about: `babaji-y` fixed intransitive frame, with the person asked in LOC:pt and the topic in DAT.
- Laugh target: `yajarri-l`/laugh-about rows with target in DAT:pt, including source pattern `warru-ndu`.
- Celestial guard: `kija` is moon/month only; `dawar` is the safe star lexeme.

### Dictionary controls

Exact `- word:` readback confirmed dictionary entries for the planned content heads:

`babi`, `bama`, `balji`, `bana`, `baral`, `baya`, `bayan`, `bilngkumu`, `bubu`, `dawar`, `dingkar`, `jalbu`, `jalun`, `jarba`, `jawun`, `jikan`, `juku`, `jungkalu`, `kalka`, `kami`, `kambi`, `karrkay`, `kaya`, `kija`, `kulji`, `kuyu`, `madja`, `maral`, `mayi`, `minya`, `mukirr`, `mukul`, `ngalkal`, `ngamu`, `ngana`, `ngangkurr`, `nganjan`, `ngawa`, `ngayu`, `wabarr`, `warru`, `wawubaja`, `wujurr`, `wulbuman`, `wulngku`.

Exact dictionary headword readback also confirmed verb heads used by this batch:

`babaji`, `bawal`, `bunday`, `dungay`, `kaday`, `manil`, `nukal`, `nyajil`, `waju-l`, `wunay`, `wundil`, `yajarril`, `yijarril`.

### Corpus lexeme controls

The lexeme table already verifies the case and construction forms that are not independent dictionary headwords:

`babaji-y`, `baral-ba`, `bawa-l`, `bayan-ka`, `bayan-muny`, `bubu-ngu`, `jalun-bu`, `jalun-muny`, `jawun-unji`, `jikan-ba`, `juku-ji`, `kambi ngamu-ngu`, `kambi-ji`, `madja-muny`, `manjal-muny`, `mayi kaya-nga`, `ngalkal-ba`, `nganjan-anji`, `ngawa-nji`, `nyaji-l`, `wabarr-ba`, `wawubaja-nga`, `wawubaja-muny`, `wundi-l`, `yajarri-l`.

## Static guard design

`bank_164.py` includes guards for:

- exactly 50 rows, exact sequence order, English punctuation, analysis separator, JSON fields, evidence, and confidence;
- no temporal-clitic construction markers in this consolidation batch;
- no denied/out-of-scope tokens: `yah`, `ngawuya`, `walnga`, `maja-nga`, `yunga`, `bada-bada`, `wangkar-wangkar`;
- no unsourced `baral-muny`, no unsourced `kadar-anji`;
- `kija` rows must gloss moon/month; English star rows must use `dawar`;
- `babaji-y` askers must not be ERG-marked in the first token;
- `nyaji-l` common-noun perceivers must be ERG-marked; pronoun A rows are exempt;
- `yajarri-l` laugh rows must contain a DAT:pt target suffix from the sourced set;
- `COMIT` analyses must use one of the closed sourced comitative forms;
- possessive object forms must have explicit `POSS` analysis;
- exact duplicate Kuku surfaces are checked against all non-rejected rows before insertion.

## Planned row groups

- Rows 1-10: place/source/posture/motion contrasts.
- Rows 11-20: object placement, source, goal, getting, eating, cooking, and bringing frames.
- Rows 21-30: perception rows, including ERG common-noun perceivers and unmarked pronoun A.
- Rows 31-35: ask-about frame with ABS/S asker, LOC:pt addressee, DAT topic.
- Rows 36-40: laugh target frame with DAT:pt target.
- Rows 41-46: closed comitative inventory in place/source/motion frames.
- Rows 47-50: Patz-backed possessive object NPs in handling/transfer frames.

## Pre-bank state

- `sqlite3 synthetic.db`: accepted 7,336; revised 911; under_review 0; verified total 8,247.
- `lint_corpus.py`: green at the end of Batch 163.
- Live books at `/docs/` currently reflect Batch 163 and Rule 121; they must be updated after Batch 164 is accepted and the export is refreshed.

## Banking result

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

Pre-bank lint:

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

Banking command:

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

Under-review lint:

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

No exact-surface duplicates were found before insert.

## Five-lens review and close

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

Manual review result:

- morphology: passed all 50 rows; checked 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, grammar, or existing verified lexeme inventory;
- syntax: passed all 50 rows; checked object visibility, common-noun `nyaji-l` ERG, unmarked pronoun A, `babaji-y` ask-about, `yajarri-l` targets, and transfer source/goal frames;
- fidelity: passed all 50 rows; English tense, place/source, goal, sound-source, and celestial senses match the Kuku;
- register: passed all 50 rows; plain camp/country speech, pending elder verification.

Close command:

- `python3 batch_scripts/close_164.py`
- Result: `closed batch-164: 50 accepted rows, 250 review passes, 20 lessons, 42 lexeme/source-log rows, 14 process events, under_review=0, verified corpus=8297`

## Post-close verification

Post-close lint:

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

DB readback after close:

- accepted: 7,386
- revised: 911
- under_review: 0
- verified total: 8,297 / 20,000
- Batch 164 reviews: 250
- Batch 164 lessons: 20
- Batch 164 lexeme/source-log rows: 42
- Batch 164 process events after export/docs/live/process-log logging: 19

Training export refreshed:

- total rows: 8,297
- train/dev/synthtest: 6,949 / 672 / 676
- manifest: `export/MANIFEST.json`

## Living books and live docs

Canonical report sources updated:

- `reports/KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md`: 8,297 count, Rule 122 close, Rule 123 handoff.
- `reports/kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md`: new Rule 122 section with examples and traps.
- `reports/kuku-yalanji-dictionary-errata-2026-07-02.md`: new Batch-164 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`.

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,297`, `Rule 123`, `batch-164-place-source-object-participant-frames-process.md`;
  - grammar cheatsheet: `Rule 122`, `Ngayu kija wujurr-bu nyajin`, `Maral babi-nda mayi-ka babajin`;
  - dictionary errata: `Batch-164`, `42 lexeme/source-log`;
  - sample pages: `Current build note`, `8,297`, `Rule 122`.

## Next handoff

Next batch should be `batch-165`, a lexical cadence batch under proposed Rule 123: source-backed lexical expansion inside the Rule 122 case frames. Keep the same traps active: no new comitatives, no free possessive templates, no `baral-muny`, `kija` moon/month only, `dawar` for star, no ERG `babaji-y` askers, ERG common-noun `nyaji-l` perceivers, and explicit DAT:pt targets for `yajarri-l`.
