# Batch 325 / Rule 283 process log

## Rule selection

Rule 283 returns to the visible sky/celestial field from Rule 275, but fills a collision-free non-singular past
pronoun-perception band after the water/landform sequence. The batch is deliberately narrow:

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

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

## 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.
- `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.
- `ngurrban` 23885-23893: noun, cloud; cloud/weather-event predicates closed.
- `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 283 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 lines 2568-2571: `nyaji-ny` "see-PAST"; Rule 283 uses corpus-conventional `nyajin`.
- Patz lines 3043-3049: `nyaji-l` "see" is contrast only here; Rule 283 does not use nonpast `nyajil`.

## Preflight

The first non-singular candidate used `kija` moon, but exact duplicate preflight found:

- `Jana kija yinyay nyajin.` already exists in Batch 195, row 33.

Earlier opposite-band testing also showed the `Jana TARGET yaluy nyajin` band collides with older sky/weather rows:
`Jana kaba yaluy nyajin.`, `Jana ngurrban yaluy nyajin.`, `Jana kija yaluy nyajin.`, `Jana yiril yaluy nyajin.`,
`Jana kurrubijal yaluy nyajin.`, `Jana balbay yaluy nyajin.`, and `Jana kurrinkurrin yaluy nyajin.` already exist.
Rule 283 therefore excludes `kija` and uses sourced `wungar` sun. 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` 23, `binyu` 6, `dawar` 62, `jiri` 91, `kaba` 243, `wungar` 650, `kurrinkurrin` 10,
  `kurrubijal` 23, `ngurrban` 68, `yiril` 25.
- Support: `ngali` 313, `ngaliny` 255, `yubal` 265, `yurra` 270, `jana` 933, `yaluy` 2902, `yinyay` 3184,
  `nyajin` 350.

## Planned rows

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

## 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 `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 `nyajin` uninflected; do not import nonpast `nyajil`, purposive `nyaji-nka`, or
  `nyaji-l-nyaji-ny` watching/reduplicated forms into Rule 283.
- 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_325.py` inserted 50 explicit hand-authored rows as `under_review`.
- Readback: all 50 stored rows matched the planned non-singular pronoun-target-demonstrative-`nyajin` frames, and the post-bank duplicate scan returned zero collisions.
- Lint before close: `lint: 16347 rows scanned, 0 issues flagged`; goal metric remained 16,297 while the batch was under review.
- Close: `python3 batch_scripts/close_325.py` accepted 50 rows, wrote 250 five-lens reviews, 36 lessons, and 18 lexeme/source-log rows; verified count moved 16,297 -> 16,347 and Kuku word count moved 120,547 -> 120,747.
- Export refresh: `python3 export_training.py` wrote 16,347 rows total: train 13,710, dev 1,321, synthtest 1,316.
- Living books: operator guide, sample production pages, grammar cheatsheet, and dictionary errata updated for Batch 325 / Rule 283, including duplicate-pressure notes for `Jana TARGET yaluy nyajin` and `kija`, the sourced `wungar` replacement, and Rule 284 handoff to `bank_326.py` / `close_326.py`.
- Render/local docs: `./render-docs.sh` regenerated `public-docs/`; local HTML and raw `.md` marker checks found Batch 325 / Rule 283 / 16,347 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 325 markers and example sentences.
- Final audit: `python3 lint_corpus.py` green over 16,347 rows; DB audit showed verified_total=16,347, under_review=0, batch325_accepted=50, batch325_reviews=250, batch325_lessons=36, batch325_lexeme_logs=18. `wc -l export/*.jsonl` total=16,347.
- Process events: Batch 325 events are continuous from 3128 `source-readback` through 3145 `final-audit-green`; this log finalization is recorded next.
