# Batch 320 process log - Rule 278 visible water/landform non-singular nonpast pronoun perception after Rule 277

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

## Rule selection

Rule 278 is a deliberately sourced nonpast counterpart to Rule 277. It keeps the same ten visible water/landform
targets and the same bare non-singular nominative pronoun support, but changes the perception verb from past
`nyajin` to nonpast `nyajil`. This opens nonpast perception only for this exact, source-backed frame; it does not
open water-use, travel, route, place-name, ecology, flood/tide, source-use, story, or event semantics.

## Target inventory

Dictionary targets checked directly before authoring:

- `bana` lines 1264-1272: water.
- `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.
- `jukar` lines 10254-10262: sand.
- `manjal` lines 17832-17840: mountain.
- `wawubaja` lines 26813-26821: river.
- `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 `ngali`,
  `ngaliny`, `yubal`, `yurra`, and `jana`.
- Patz grammar lines 2674 and 2682-2686: `ngali` as first dual exclusive, `ngaliny` as first dual inclusive,
  `yubal`/`yurra` as second person non-singular forms, and `jana` as third plural.
- Patz grammar lines 2838-2845: `yaluy` here and `yinyay` there.
- Patz grammar lines 3043-3049: `nyaji-l` see; Rule 278 uses the corpus surface `nyajil` as nonpast perception.
- Patz grammar lines 2568-2571: `nyaji-ny` see-PAST, used only as contrast for why Rule 278 is nonpast rather than
  past.

## Preflight

- Exact duplicate preflight over the final 50 Rule 278 surfaces returned no accepted, revised, or under-review
  collisions.
- Token-aware target coverage after Rule 277: `bana` 618, `dajali` 58, `jalun` 103, `jirka` 18, `jukar` 98,
  `manjal` 45, `wawubaja` 211, `yilki` 17, `yiri` 15, and `yirri` 15 accepted/revised rows.
- Support coverage after Rule 277: `ngali` 291, `ngaliny` 225, `yubal` 239, `yurra` 254, `jana` 1547, `yaluy`
  2794, `yinyay` 3058, and `nyajil` 3473 accepted/revised rows.

## Planned rows

1. `Ngali bana yaluy nyajil.`
2. `Ngali dajali yaluy nyajil.`
3. `Ngali jalun yaluy nyajil.`
4. `Ngali jirka yaluy nyajil.`
5. `Ngali jukar yaluy nyajil.`
6. `Ngali manjal yaluy nyajil.`
7. `Ngali wawubaja yaluy nyajil.`
8. `Ngali yilki yaluy nyajil.`
9. `Ngali yiri yaluy nyajil.`
10. `Ngali yirri yaluy nyajil.`
11. `Ngaliny bana yinyay nyajil.`
12. `Ngaliny dajali yinyay nyajil.`
13. `Ngaliny jalun yinyay nyajil.`
14. `Ngaliny jirka yinyay nyajil.`
15. `Ngaliny jukar yinyay nyajil.`
16. `Ngaliny manjal yinyay nyajil.`
17. `Ngaliny wawubaja yinyay nyajil.`
18. `Ngaliny yilki yinyay nyajil.`
19. `Ngaliny yiri yinyay nyajil.`
20. `Ngaliny yirri yinyay nyajil.`
21. `Yubal bana yaluy nyajil.`
22. `Yubal dajali yaluy nyajil.`
23. `Yubal jalun yaluy nyajil.`
24. `Yubal jirka yaluy nyajil.`
25. `Yubal jukar yaluy nyajil.`
26. `Yubal manjal yaluy nyajil.`
27. `Yubal wawubaja yaluy nyajil.`
28. `Yubal yilki yaluy nyajil.`
29. `Yubal yiri yaluy nyajil.`
30. `Yubal yirri yaluy nyajil.`
31. `Yurra bana yinyay nyajil.`
32. `Yurra dajali yinyay nyajil.`
33. `Yurra jalun yinyay nyajil.`
34. `Yurra jirka yinyay nyajil.`
35. `Yurra jukar yinyay nyajil.`
36. `Yurra manjal yinyay nyajil.`
37. `Yurra wawubaja yinyay nyajil.`
38. `Yurra yilki yinyay nyajil.`
39. `Yurra yiri yinyay nyajil.`
40. `Yurra yirri yinyay nyajil.`
41. `Jana bana yaluy nyajil.`
42. `Jana dajali yaluy nyajil.`
43. `Jana jalun yaluy nyajil.`
44. `Jana jirka yaluy nyajil.`
45. `Jana jukar yaluy nyajil.`
46. `Jana manjal yaluy nyajil.`
47. `Jana wawubaja yaluy nyajil.`
48. `Jana yilki yaluy nyajil.`
49. `Jana yiri yaluy nyajil.`
50. `Jana yirri yaluy nyajil.`

## Guardrails

- Keep all target labels as bare visible water/landform nouns with the selected literal target senses only.
- Keep all subject pronouns as bare nominatives: no `ngalingan`, `ngalinyan`, `yubalan`, `yurrangan`,
  `ianangan`/`janangan`, 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 278.
- 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

Batch 320 closed on 2026-07-09 with 50 accepted rows, 250 five-lens review passes, 35 lessons, and 18
lexeme/source-log rows.

Measured corpus movement:

- Verified sentences: 16,047 -> 16,097.
- Kuku words: 119,547 -> 119,747.
- Remaining to 20,000: 3,903.
- Under-review rows after close: 0.

Post-close verification:

- `python3 lint_corpus.py` returned `lint: 16097 rows scanned, 0 issues flagged` and `GOAL METRIC: 16097 / 20000
  verified sentences  (119747 Kuku words)`.
- `python3 export_training.py` refreshed 16,097 rows: train 13,502, dev 1,300, synthtest 1,295.
- `wc -l export/*.jsonl` returned dev 1,300, synthtest 1,295, train 13,502, total 16,097.
- SQLite audit returned verified 16,097, under_review 0, Batch 320 accepted 50, reviews 250, lessons 35, and
  `batch-320-verify` lexeme logs 18.
- Process events are continuous from 3033 source-readback through 3050 final-audit-green before log finalization.
- Source books were updated for 16,097 / Rules 1-278 and handoff to `bank_321.py` / `close_321.py`.
- Rendered docs were regenerated with `./render-docs.sh`; local HTML and raw Markdown markers for 16,097, Batch 320,
  Rule 278, `batch-320`, sample examples, `bank_321.py`, and `close_321.py` were present.
- Live verification with browser-like `curl` confirmed `/docs` 301-redirects to `/docs/`; `/docs/`, all four HTML
  pages, and all four raw `.md` files returned 200; live HTML markers were present for operator guide, sample pages,
  grammar cheatsheet, and dictionary errata.
