# Batch 326 / Rule 284 process log

## Rule selection

Rule 284 continues the visible sky/celestial field after Rule 283, but switches from past `nyajin` to nonpast
`nyajil`. It keeps the same narrow non-singular pronoun/deictic architecture:

- `Ngali TARGET yinyay nyajil.`
- `Ngaliny TARGET yaluy nyajil.`
- `Yubal TARGET yinyay nyajil.`
- `Yurra TARGET yaluy nyajil.`
- `Jana TARGET yinyay nyajil.`

The batch opens only plain visual nonpast perception/reference clauses with bare nominative non-singular pronouns,
one bare visible sky/celestial noun, one bare local demonstrative, and `nyajil` as the corpus-conventional nonpast
surface from Patz `nyaji-l`.

## Source readback

Dictionary line readback:

- `balbay` 900-911: noun, lightning; lightning-strike example prose closed.
- `binyu` 3063-3074: noun, shooting star; death-spirit/death-omen belief prose closed.
- `dawar` 5374-5382: noun, star; straw-hat homograph `dawarr` closed.
- `jiri` 9720-9730: noun, sky/heaven; heaven/sky-mob/fine-day compounds closed.
- `kaba` 11671-11679: noun, rain; rain-event/falling/weather-predication rows closed.
- `kija` 14143-14155: noun, moon; Roaring Meg Falls / moon-story place reading closed.
- `wungar` 28081-28089: noun, sun; sunrise/sunset/midday/hot-season compounds closed.
- `kurrinkurrin` 16406-16419: noun, mackerel sky; lexicalized reduplicated form only.
- `kurrubijal` 16557-16567: noun, morning star; Venus as morning star only.
- `yiril` 30419-30427: noun, rainbow; rainbow-snake/story/water-hole extensions closed.

Grammar line readback:

- Patz lines 2577-2586 and 2592-2603: personal pronoun paradigm and base forms. Rule 284 uses bare nominative
  `ngali`, `ngaliny`, `yubal`, `yurra`, and `jana`.
- Patz lines 2674-2686: non-singular source notes; `ngali` is first dual exclusive, `ngaliny` is first dual
  inclusive by increment, `yubal` is second dual, `yurra` is second plural, and `jana` is third plural.
- Patz lines 2838-2845: local demonstratives `yaluy` "here" and `yinyay` "there".
- Patz section 3.8.3.2 lines 3043-3049: `nyaji-l` "see"; Rule 284 uses corpus-conventional `nyajil`.
- Patz lines 2568-2571: `nyaji-ny` "see-PAST" is contrast only here; Rule 284 does not use past `nyajin`.

## Preflight

The first Rule 284 target set retained `ngurrban` cloud, but exact duplicate preflight found:

- `Jana ngurrban yinyay nyajil.` already exists in Batch 195, row 3.

Rule 284 therefore excludes `ngurrban` and uses sourced `wungar` sun alongside the checked `kija` moon target. The
final planned 50 surfaces are 50 unique strings and have 0 accepted/revised/under-review collisions.

Token-aware accepted/revised coverage before banking:

- Targets: `balbay` 28, `binyu` 11, `dawar` 67, `jiri` 96, `kaba` 248, `kija` 97, `wungar` 655,
  `kurrinkurrin` 15, `kurrubijal` 28, `yiril` 30.
- Support: `ngali` 323, `ngaliny` 265, `yubal` 275, `yurra` 280, `jana` 943, `yaluy` 2922, `yinyay` 3214,
  `nyajil` 3047.

## Planned rows

1. `Ngali balbay yinyay nyajil.`
2. `Ngali binyu yinyay nyajil.`
3. `Ngali dawar yinyay nyajil.`
4. `Ngali jiri yinyay nyajil.`
5. `Ngali kaba yinyay nyajil.`
6. `Ngali kija yinyay nyajil.`
7. `Ngali wungar yinyay nyajil.`
8. `Ngali kurrinkurrin yinyay nyajil.`
9. `Ngali kurrubijal yinyay nyajil.`
10. `Ngali yiril yinyay nyajil.`
11. `Ngaliny balbay yaluy nyajil.`
12. `Ngaliny binyu yaluy nyajil.`
13. `Ngaliny dawar yaluy nyajil.`
14. `Ngaliny jiri yaluy nyajil.`
15. `Ngaliny kaba yaluy nyajil.`
16. `Ngaliny kija yaluy nyajil.`
17. `Ngaliny wungar yaluy nyajil.`
18. `Ngaliny kurrinkurrin yaluy nyajil.`
19. `Ngaliny kurrubijal yaluy nyajil.`
20. `Ngaliny yiril yaluy nyajil.`
21. `Yubal balbay yinyay nyajil.`
22. `Yubal binyu yinyay nyajil.`
23. `Yubal dawar yinyay nyajil.`
24. `Yubal jiri yinyay nyajil.`
25. `Yubal kaba yinyay nyajil.`
26. `Yubal kija yinyay nyajil.`
27. `Yubal wungar yinyay nyajil.`
28. `Yubal kurrinkurrin yinyay nyajil.`
29. `Yubal kurrubijal yinyay nyajil.`
30. `Yubal yiril yinyay nyajil.`
31. `Yurra balbay yaluy nyajil.`
32. `Yurra binyu yaluy nyajil.`
33. `Yurra dawar yaluy nyajil.`
34. `Yurra jiri yaluy nyajil.`
35. `Yurra kaba yaluy nyajil.`
36. `Yurra kija yaluy nyajil.`
37. `Yurra wungar yaluy nyajil.`
38. `Yurra kurrinkurrin yaluy nyajil.`
39. `Yurra kurrubijal yaluy nyajil.`
40. `Yurra yiril yaluy nyajil.`
41. `Jana balbay yinyay nyajil.`
42. `Jana binyu yinyay nyajil.`
43. `Jana dawar yinyay nyajil.`
44. `Jana jiri yinyay nyajil.`
45. `Jana kaba yinyay nyajil.`
46. `Jana kija yinyay nyajil.`
47. `Jana wungar yinyay nyajil.`
48. `Jana kurrinkurrin yinyay nyajil.`
49. `Jana kurrubijal yinyay nyajil.`
50. `Jana yiril yinyay nyajil.`

## Guardrails

- Keep all target labels as bare visible sky/celestial nouns with the selected literal target senses only.
- Keep `balbay` as visible lightning only; do not open strike, danger, event, or causation rows.
- Keep `binyu` as visible shooting star only; do not open death-spirit, death-omen, mourning, or story rows.
- Keep `jiri` as sky only; do not open heaven, sky-mob, fine-day, place-name, or post-contact object rows.
- Keep `kaba` as visible rain only; do not open falling, coming, weather-event, rainbird, or absence-of-rain rows.
- Keep `kija` as visible moon only; do not open month, Roaring Meg Falls, moon-story, creation-place, or place-name
  rows.
- Keep `wungar` as visible sun only; do not open sunrise, sunset, midday, hot-season, sun-locative, or time rows.
- Keep `kurrinkurrin` as a lexicalized noun; do not use it as permission for productive reduplication.
- Keep `yiril` as visible rainbow only; do not open rainbow-snake/story/water-hole rows.
- Keep all subject pronouns as bare nominatives: no `ngalingan`, `ngalinyan`, `yubalan`, `yurrangan`, `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 284.
- Do not import target case, demonstrative case, compounds, productive reduplication, support inflection, source
  prose, weather-event predicates, place names, stories, ownership, use, danger, route/travel, body-state, illness,
  or fauna/flora ecology from any target head.

## 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_326.py` inserted 50 explicit hand-authored rows as `under_review`.
- Readback: all 50 stored rows matched the planned visible sky/celestial non-singular nonpast `nyajil` frames, and
  the post-bank duplicate scan found 0 collisions outside Batch 326.
- Lint before close: `lint: 16397 rows scanned, 0 issues flagged`; goal metric remained 16,347 while the new rows
  were under review.
- Close: `python3 batch_scripts/close_326.py` accepted 50 rows, wrote 250 five-lens reviews, 35 lessons, and 18
  lexeme/source-log rows; verified count moved 16,347 -> 16,397 and Kuku words moved 120,747 -> 120,947.
- Export refresh: `python3 export_training.py` wrote 16,397 total rows: train 13,752, dev 1,327, synthtest 1,318.
- Living books: operator guide, sample pages, grammar cheatsheet, and dictionary errata were updated for Batch 326 /
  Rule 284, including the `ngurrban` duplicate rejection, sourced `wungar` replacement, and Rule 285 handoff to
  `bank_327.py` / `close_327.py`.
- Render/local docs: `./render-docs.sh` regenerated the four HTML documents, the four raw Markdown copies, and the
  docs index in `public-docs/`; marker checks found Batch 326 / Rule 284 examples and no stale Batch 325 handoff
  markers in rendered operator/sample files.
- Live docs: `https://mobtranslate.com/docs` returned 301 to `/docs/`; `/docs/`, the four HTML documents, and the
  four raw Markdown documents returned 200 and carried the Batch 326 / Rule 284 markers.
- Final audit: `python3 lint_corpus.py` returned `lint: 16397 rows scanned, 0 issues flagged`; SQLite audit returned
  verified_total 16,397, under_review 0, batch326_accepted 50, batch326_reviews 250, batch326_lessons 35,
  batch326_lexeme_logs 18; `wc -l export/*.jsonl` returned train/dev/synthtest 13,752/1,327/1,318, total 16,397.
- Process events are continuous from 3147 `source-readback` through 3164 `final-audit-green`; this log finalization
  is recorded next.
