# Batch 341 process log

## Scope

- Batch: `batch-341`
- Rule: **Rule 299**
- Planned count: 50 rows
- Starting verified count: 17,097 / 20,000
- Remaining before batch: 2,903
- Frame family: visible insect non-singular **past** perception after Rules 255/256/270/271 and Rule 298.
- Construction: `PRONOUN TARGET DEMONSTRATIVE nyajin`.
- Purpose: add the sourced non-singular past counterpart to the checked insect visible-object perception field while keeping semantic scope to visible object reference/perception only.

## Source readback

- Dictionary line readbacks carried forward from the living books and earlier insect rules:
  - `balarr` lines 833-841: flea. Rule 299 selects visible flea reference only, not body, bite, sickness, pest-control, or event rows.
  - `dijaraban` lines 5542-5551: mayfly. Rule 299 selects visible mayfly reference only, not dragonfly expansion, ecology, or event rows.
  - `kalburiji` lines 12474-12484: kalburiji bee. Rule 299 selects visible bee-label reference only, not honey, nest, eggs, larvae, collecting, edible, or source-prose rows.
  - `mawal` lines 18743-18753: mawal bee. Rule 299 selects visible bee-label reference only, not honey, nest, eggs, larvae, collecting, edible, or source-prose rows.
  - `munudumbun` lines 20816-20826: scorpion. Rule 299 selects visible scorpion reference only, not sting, poison, danger, sickness, or event rows.
  - `munyurri` lines 20868-20889: sandfly. Rule 299 selects visible sandfly reference only, not biting, sickness, pest-control, or event rows.
  - `nakawarra` lines 21461-21470: nakawarra bee. Rule 299 selects visible bee-label reference only, not honey, nest, collecting, edible, or source-prose rows.
  - `ngalmnbu` lines 21972-21980: jumper ant. Rule 299 selects visible ant-label reference only, not jumping, bite, sting, antbed, or event rows.
  - `yarrka` lines 29551-29559: yarrka bee. Rule 299 selects visible bee-label reference only, not smallest, bush, honey, nest, collecting, or source-prose rows.
  - `yiljun` lines 30019-30029: grasshopper. Rule 299 selects visible grasshopper reference only, not singing, yam-readiness, seasonal signal, movement, or event rows.
- Patz pronoun tables source bare nominative `ngali`, `ngaliny`, `yubal`, `yurra`, and `ngana`.
- Patz local-demonstrative material sources bare `yaluy` "here" and `yinyay` "there".
- Patz verbal examples source `nyaji-ny` "see-PAST"; the tense section sources past `-ny`. Rule 299 uses only corpus-conventional `nyajin`.

## Preflight

- Final target set: `balarr`, `dijaraban`, `kalburiji`, `mawal`, `munudumbun`, `munyurri`, `nakawarra`, `ngalmnbu`, `yarrka`, `yiljun`.
- Support set: `ngali`, `ngaliny`, `yubal`, `yurra`, `ngana`, `yaluy`, `yinyay`, `nyajin`.
- Coverage before banking:
  - targets: `balarr` 25, `dijaraban` 25, `kalburiji` 25, `mawal` 25, `munudumbun` 25, `munyurri` 25, `nakawarra` 25, `ngalmnbu` 25, `yarrka` 25, and `yiljun` 25.
  - support: `ngali` 423, `ngaliny` 365, `yubal` 375, `yurra` 360, `ngana` 945, `yaluy` 3312, `yinyay` 3574, and `nyajin` 750.
- Exact duplicate preflight over the final 50 Kuku surfaces returned no accepted/revised/under-review collisions.
- Static guard target: exactly 50 hand-authored rows; sequence 1..50; one target per row; four words per Kuku sentence; bare non-singular nominative pronoun in slot 1; target noun in slot 2; bare `yaluy` or `yinyay` in slot 3; final `nyajin`; no loans; no denied Kuku forms; no denied English action/source-prose drift.

## Planned rows

1. `Ngali balarr yaluy nyajin.`
2. `Ngali dijaraban yaluy nyajin.`
3. `Ngali kalburiji yaluy nyajin.`
4. `Ngali mawal yaluy nyajin.`
5. `Ngali munudumbun yaluy nyajin.`
6. `Ngali munyurri yaluy nyajin.`
7. `Ngali nakawarra yaluy nyajin.`
8. `Ngali ngalmnbu yaluy nyajin.`
9. `Ngali yarrka yaluy nyajin.`
10. `Ngali yiljun yaluy nyajin.`
11. `Ngaliny balarr yinyay nyajin.`
12. `Ngaliny dijaraban yinyay nyajin.`
13. `Ngaliny kalburiji yinyay nyajin.`
14. `Ngaliny mawal yinyay nyajin.`
15. `Ngaliny munudumbun yinyay nyajin.`
16. `Ngaliny munyurri yinyay nyajin.`
17. `Ngaliny nakawarra yinyay nyajin.`
18. `Ngaliny ngalmnbu yinyay nyajin.`
19. `Ngaliny yarrka yinyay nyajin.`
20. `Ngaliny yiljun yinyay nyajin.`
21. `Yubal balarr yaluy nyajin.`
22. `Yubal dijaraban yaluy nyajin.`
23. `Yubal kalburiji yaluy nyajin.`
24. `Yubal mawal yaluy nyajin.`
25. `Yubal munudumbun yaluy nyajin.`
26. `Yubal munyurri yaluy nyajin.`
27. `Yubal nakawarra yaluy nyajin.`
28. `Yubal ngalmnbu yaluy nyajin.`
29. `Yubal yarrka yaluy nyajin.`
30. `Yubal yiljun yaluy nyajin.`
31. `Yurra balarr yinyay nyajin.`
32. `Yurra dijaraban yinyay nyajin.`
33. `Yurra kalburiji yinyay nyajin.`
34. `Yurra mawal yinyay nyajin.`
35. `Yurra munudumbun yinyay nyajin.`
36. `Yurra munyurri yinyay nyajin.`
37. `Yurra nakawarra yinyay nyajin.`
38. `Yurra ngalmnbu yinyay nyajin.`
39. `Yurra yarrka yinyay nyajin.`
40. `Yurra yiljun yinyay nyajin.`
41. `Ngana balarr yaluy nyajin.`
42. `Ngana dijaraban yaluy nyajin.`
43. `Ngana kalburiji yaluy nyajin.`
44. `Ngana mawal yaluy nyajin.`
45. `Ngana munudumbun yaluy nyajin.`
46. `Ngana munyurri yaluy nyajin.`
47. `Ngana nakawarra yaluy nyajin.`
48. `Ngana ngalmnbu yaluy nyajin.`
49. `Ngana yarrka yaluy nyajin.`
50. `Ngana yiljun yaluy nyajin.`

## Guardrails

- Keep all target labels as bare visible insect nouns with the selected literal target senses only.
- Do not reopen deferred or rejected insect heads such as `diri-diri`, `dabu`, `wunba`, `kuja`, `yangka`, `nyirran`, `karrkil`, `murma`, `wurrbu`, `dabadaba`, `dujandujan`, `kalkamal`, `kuran`, `kurrmaja`, `nyumbil`, or `malal`.
- Keep all subject pronouns as bare nominatives: no `ngalingan`, `ngalinka`, `ngalinda`, `ngalindamuny`, `ngalinji`, `ngalinga`, `ngalinyan`, `ngalinyanka`, `ngalinyanda`, `ngalinyandamuny`, `ngalinyanji`, `ngalinyanga`, `yubalan`, `yubalanka`, `yubalanda`, `yubalandamuny`, `yubalanji`, `yubalanga`, `yurrangan`, `yurranka`, `yurranda`, `yurrandamuny`, `yurranji`, `yurranga`, `nganangan`, `ngananka`, `ngananda`, `nganandamuny`, `ngananji`, or `ngananga`.
- Keep `yaluy`, `yinyay`, and `nyajin` uninflected; do not import nonpast `nyajil`, purposive `nyaji-nka`, reduplicated watching forms, hearing compounds, or perception compounds.
- Do not import bite, sting, poison, sickness, danger, honey, nest, eggs, larvae, collecting, edible/food/medicine, seasonal signal, singing, jumping, antbed, body/human-body, ecology, event, source-prose, target case, demonstrative case, pronoun case, target compounds, perception compounds, productive reduplication, support inflection, or any carried weapon/tool/water/landform/sky/fire/fauna/body/dwelling drift.
- English must remain literal: selected subject value, target label, here/there, and "saw" only.

## Execution checklist

- Compile `bank_341.py` and `close_341.py`; verify `bank_341.scan_static() == []`.
- Bank 50 explicit hand-authored rows as `under_review`.
- Run corpus lint before close.
- Read back all 50 rows from SQLite.
- Run exact duplicate scan.
- Close only after morphology, lexicon, syntax, fidelity, and register lenses pass.
- Record lessons and lexeme/source logs.
- Run post-close lint.
- 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

Closed 2026-07-09.

- Banked exactly 50 explicit hand-authored rows as `under_review`, then accepted all 50 after five-lens review.
- Pre-close lint scanned 17,147 non-rejected rows with 0 issues; verified total remained 17,097 before close.
- Row readback checked all 50 Batch 341 rows in SQLite; exact surface duplicate scan over `lower(trim(kuku))`
  returned 0 duplicate groups.
- Five-lens review passed morphology, lexicon, syntax, fidelity, and register for all rows.
- Inserted 250 review passes, 35 lessons, and 18 lexeme/source-log rows.
- Close moved the corpus from 17,097 to 17,147 verified sentences and from 123,747 to 123,947 Kuku words.
- Post-close lint scanned 17,147 rows with 0 issues; no rows remained under review.
- Export refreshed to train/dev/synthtest `14,382 / 1,393 / 1,372`.
- Operator guide, sample pages, grammar cheatsheet, and dictionary errata were updated, rendered to `public-docs/`,
  and live-verified at `https://mobtranslate.com/docs/`.
- Live verification: `/docs` 301s to `/docs/`; `/docs/` is 200 with all HTML/MD links; four rendered HTML pages
  and four raw Markdown pages return 200 and carry Batch 341 / Rule 299 / 17,147 markers where expected.
- Final audit: lint green, database count 17,147 verified / 0 under review / 2,853 remaining, exact duplicate scan
  returned 0 groups, and export file counts total 17,147.

## Handoff

Continue from **17,147 / 20,000** verified sentences, with **2,853** remaining. Rule 300 must begin with a fresh
source pass and must not infer insect action, bite, sting, poison, sickness, honey, nest, eggs, larvae, collecting,
edible/food/medicine, seasonal signal, singing, jumping, antbed, body/human-body, ecology, target/pronoun/
demonstrative case, target compounds, productive reduplication, perception compounds, nonpast/purposive/
reduplicated perception, support inflection, or any carried weapon/tool/water/landform/sky/fire/fauna/body/dwelling
trap from this batch.
