# Batch 322 process log - Rule 280 visible water/landform complementary nonpast pronoun perception after Rule 279

Date: 2026-07-09
Actor: claude-main
Corpus state before banking: 16,147 verified sentences, 119,947 Kuku words, 0 under-review rows.

## Rule selection

Rule 280 is the complementary-deictic nonpast counterpart to Rule 279. It keeps bare nominative `ngayu`, `yundu`,
`nyulu`, `bula`, and `ngana`, but swaps the local demonstrative distribution to `Ngayu TARGET yinyay nyajil`,
`Yundu TARGET yaluy nyajil`, `Nyulu TARGET yinyay nyajil`, `Bula TARGET yaluy nyajil`, and
`Ngana TARGET yaluy nyajil`.

The first candidate over the Rule 279 target set had exact duplicates: `Ngayu bana yinyay nyajil.` and
`Ngayu wawubaja yinyay nyajil.` from Batch 194. Rule 280 therefore excludes `bana` and `wawubaja` and replaces them
with freshly sourced `daburri` swamp/brackish swamp water and `dulngku` reef. This keeps the frame systematic without
special-casing a single row.

## Target inventory

Dictionary targets checked directly before authoring:

- `dajali` lines 4510-4518: deep water.
- `jalun` lines 7612-7620: sea, large body of water. Flood rows stay closed.
- `jirka` lines 9803-9813: spring, read as a water source rather than season.
- `bubu` lines 3452-3470: ground/earth; country/place/dirtiness extensions stay closed.
- `manjal` lines 17832-17840: mountain.
- `daburri` lines 4428-4442: swamp, specifically brackish swamp water.
- `dulngku` lines 6520-6530: reef.
- `yilki` lines 30031-30039: creek.
- `yiri` lines 30410-30418: waterfall.
- `yirri` lines 30507-30515: running water. The `yirri-damal` leak compound stays closed.

Grammar support checked directly before authoring:

- Patz grammar lines 2577-2586 and 2592-2603: personal pronoun table and base forms; bare nominative `ngayu`,
  `yundu`, `nyulu`, `bula`, and `ngana`.
- Patz grammar lines 2678-2686: `bula` as third dual and `ngana` as first plural inclusive.
- Patz grammar lines 2838-2845: `yaluy` here and `yinyay` there.
- Patz grammar lines 3043-3049: `nyaji-l` see; Rule 280 uses the corpus surface `nyajil` as nonpast perception.
- Patz grammar lines 2568-2571: `nyaji-ny` see-PAST, used only as contrast; Rule 280 does not use `nyajin`.

## Preflight

- Exact duplicate preflight over the first candidate found `Ngayu bana yinyay nyajil.` and `Ngayu wawubaja yinyay
  nyajil.` in Batch 194. `Bana` and `wawubaja` were excluded from Rule 280 rather than special-cased.
- Exact duplicate preflight over the final 50 Rule 280 surfaces returned no accepted, revised, or under-review
  collisions.
- Token-aware target coverage after Rule 279: `dajali` 68, `jalun` 113, `jirka` 28, `bubu` 687, `manjal` 55,
  `daburri` 34, `dulngku` 25, `yilki` 27, `yiri` 25, and `yirri` 25 accepted/revised rows.
- Support coverage after Rule 279: `ngayu` 1381, `yundu` 1241, `nyulu` 1856, `bula` 284, `ngana` 1030, `yaluy`
  2844, `yinyay` 3108, and `nyajil` 3573 accepted/revised rows.

## Planned rows

1. `Ngayu dajali yinyay nyajil.`
2. `Ngayu jalun yinyay nyajil.`
3. `Ngayu jirka yinyay nyajil.`
4. `Ngayu bubu yinyay nyajil.`
5. `Ngayu manjal yinyay nyajil.`
6. `Ngayu daburri yinyay nyajil.`
7. `Ngayu dulngku yinyay nyajil.`
8. `Ngayu yilki yinyay nyajil.`
9. `Ngayu yiri yinyay nyajil.`
10. `Ngayu yirri yinyay nyajil.`
11. `Yundu dajali yaluy nyajil.`
12. `Yundu jalun yaluy nyajil.`
13. `Yundu jirka yaluy nyajil.`
14. `Yundu bubu yaluy nyajil.`
15. `Yundu manjal yaluy nyajil.`
16. `Yundu daburri yaluy nyajil.`
17. `Yundu dulngku yaluy nyajil.`
18. `Yundu yilki yaluy nyajil.`
19. `Yundu yiri yaluy nyajil.`
20. `Yundu yirri yaluy nyajil.`
21. `Nyulu dajali yinyay nyajil.`
22. `Nyulu jalun yinyay nyajil.`
23. `Nyulu jirka yinyay nyajil.`
24. `Nyulu bubu yinyay nyajil.`
25. `Nyulu manjal yinyay nyajil.`
26. `Nyulu daburri yinyay nyajil.`
27. `Nyulu dulngku yinyay nyajil.`
28. `Nyulu yilki yinyay nyajil.`
29. `Nyulu yiri yinyay nyajil.`
30. `Nyulu yirri yinyay nyajil.`
31. `Bula dajali yaluy nyajil.`
32. `Bula jalun yaluy nyajil.`
33. `Bula jirka yaluy nyajil.`
34. `Bula bubu yaluy nyajil.`
35. `Bula manjal yaluy nyajil.`
36. `Bula daburri yaluy nyajil.`
37. `Bula dulngku yaluy nyajil.`
38. `Bula yilki yaluy nyajil.`
39. `Bula yiri yaluy nyajil.`
40. `Bula yirri yaluy nyajil.`
41. `Ngana dajali yaluy nyajil.`
42. `Ngana jalun yaluy nyajil.`
43. `Ngana jirka yaluy nyajil.`
44. `Ngana bubu yaluy nyajil.`
45. `Ngana manjal yaluy nyajil.`
46. `Ngana daburri yaluy nyajil.`
47. `Ngana dulngku yaluy nyajil.`
48. `Ngana yilki yaluy nyajil.`
49. `Ngana yiri yaluy nyajil.`
50. `Ngana yirri yaluy nyajil.`

## Guardrails

- Keep all target labels as bare visible water/landform nouns with the selected literal target senses only.
- Keep `bubu` as ground/earth only; do not open country, belonging, place, dirtiness, or place-name rows.
- Keep `daburri` as swamp/brackish swamp water only; do not open ecology, water-use, crossing, danger, or place rows.
- Keep `dulngku` as reef only; do not open fishing, travel, navigation, danger, or ecology rows.
- Keep all subject pronouns as bare nominatives: no `nganya`, `yununy`, `nyunguny`, `bulangan`, `nganangan`, or
  other pronoun case forms.
- Keep `yaluy`, `yinyay`, and `nyajil` uninflected; do not import past `nyajin`, purposive `nyaji-nka`, or
  `nyaji-l-nyaji-ny` watching/reduplicated forms into Rule 280.
- Do not import drinking, getting, filling, washing, swimming, crossing, travelling, route, road, flood, tide,
  salt-pan, whale-oil, spring-season, creek/place names, mountain story, water source use, water spirit, fish,
  shellfish, reptile, plant, ecology, danger, ownership, target case, pronoun case, demonstrative case, target
  compounds, perception compounds, productive reduplication, or support inflection.

## Execution checklist

- Bank 50 explicit hand-authored rows as `under_review`.
- Run corpus lint before close.
- Read back all 50 rows from SQLite.
- Close only after morphology, lexicon, syntax, fidelity, and register lenses pass.
- Record lessons and lexeme/source logs.
- Refresh export.
- Update the four living books.
- Render docs.
- Verify local rendered docs and live `https://mobtranslate.com/docs/`.
- Final lint and count audit.

## Closeout

- Banked: `python3 batch_scripts/bank_322.py` inserted 50 explicit hand-authored rows as `under_review`.
- Readback: all 50 stored rows matched the planned pronoun-target-demonstrative-`nyajil` frames.
- Lint before close: `lint: 16197 rows scanned, 0 issues flagged`; goal metric remained 16,147 while the batch was
  under review.
- Close: `python3 batch_scripts/close_322.py` accepted 50 rows, wrote 250 five-lens reviews, 35 lessons, and 18
  lexeme/source-log rows; verified count moved 16,147 -> 16,197 and Kuku word count moved 119,947 -> 120,147.
- Export refresh: `python3 export_training.py` wrote 16,197 rows total: train 13,587, dev 1,308, synthtest 1,302.
- Living books: operator guide, sample production pages, grammar cheatsheet, and dictionary errata updated for
  Batch 322 / Rule 280, including duplicate-pressure notes for `bana`/`wawubaja`, `daburri`/`dulngku` source traps,
  and Rule 281 handoff to `bank_323.py` / `close_323.py`.
- Render/local docs: `./render-docs.sh` regenerated `public-docs/`; local HTML and raw `.md` marker checks found
  Batch 322 / Rule 280 / 16,197 markers and no stale operator/sample handoff markers.
- Live docs: `https://mobtranslate.com/docs` returned 301 to `/docs/`; `/docs/`, all four HTML pages, and all four
  raw `.md` files returned 200. Live operator, sample, grammar, and errata pages contained the Batch 322 markers and
  example sentences.
- Final audit: `python3 lint_corpus.py` green over 16,197 rows; DB audit showed verified_total=16,197,
  under_review=0, batch322_accepted=50, batch322_reviews=250, batch322_lessons=35, batch322_lexeme_logs=18.
  `wc -l export/*.jsonl` total=16,197.
- Process events: Batch 322 events are continuous from 3071 `source-readback` through 3088 `final-audit-green`;
  this log finalization is recorded next.
