# Batch 336 process log

## Scope

- Batch: `batch-336`
- Rule: **Rule 294**
- Planned count: 50 rows
- Starting verified count: 16,847 / 20,000
- Remaining before batch: 3,153
- Frame family: visible traditional weapon/tool **complementary non-singular past** perception after Rule 293.
- Construction: `PRONOUN TARGET DEMONSTRATIVE nyajin`.
- Purpose: add the sourced past counterpart to Rule 293's complementary non-singular nonpast bands, while keeping the semantic scope to visible object reference/perception only.

## Source readback

- Dictionary lines 1478-1489: `bangkal` noun "tongs"; visible tongs only, not cooking, voya vine, kurrma earth-oven, gathering, or use rows.
- Dictionary lines 16196-16207: `kurrajan` noun "spear point"; visible spear point only, not turtle spearing, wattle source, fire-hardening, piercing, or use rows.
- Dictionary lines 5215-5226: `dara` noun "bamboo spear stick"; visible bamboo spear stick only, not spear use, throwing, hunting, fighting, or material-source rows.
- Dictionary lines 6843-6857: `jaba` noun "stick"; visible stick only, not sapling, post, horn, walking-use, or plant rows.
- Dictionary lines 15915-15923: `kunjuri` noun "shield"; visible shield only, not fighting, defence, ownership, body-covering, or use rows.
- Dictionary lines 21516-21526: `nambarr` noun "bamboo stick"; visible bamboo stick only, not nose-piercing or implement-use rows.
- Dictionary lines 25943-25951: `wangal` noun "boomerang"; visible boomerang only, not throwing, hunting, fighting, play, return, or travel rows.
- Dictionary lines 17699-17707: `manbir` noun "barb of a spear"; visible spear barb only, not stabbing, hooking, piercing, injury, spear-use, or manufacture rows.
- Dictionary lines 25192-25202: `wakay` noun "wooden sword"; visible wooden sword only, not people-group source prose, fighting, cutting, or use rows.
- Dictionary lines 27767-27776: `wulburr` noun "bamboo spear stick" / "spear"; visible bamboo spear stick only, not spear use, bamboo source, throwing, hunting, fighting, or material-source rows.
- Patz grammar lines 2577-2603: personal pronoun paradigm and base forms; Rule 294 uses bare nominative `ngali`, `ngaliny`, `yubal`, `nganjin`, and `ngana`.
- Patz grammar lines 2674-2686: non-singular person/number context; `ngali` is dual exclusive, `ngaliny` is dual inclusive, `yubal` is second dual, `nganjin` is plural exclusive, and `ngana` is plural inclusive.
- Patz grammar lines 2838-2845: Yalanji local demonstratives `yaluy` "here" and `yinyay` "there".
- Patz grammar lines 2023 and 2568-2571: `nyaji-ny` "see-PAST".
- Patz grammar lines 3149-3162: tense contrast, with past `-ny`; Rule 294 keeps literal past English "saw" and corpus-conventional `nyajin`.

## Preflight

- Target set: `bangkal`, `kurrajan`, `dara`, `jaba`, `kunjuri`, `nambarr`, `wangal`, `manbir`, `wakay`, `wulburr`.
- Support set: `ngali`, `ngaliny`, `yubal`, `nganjin`, `ngana`, `yaluy`, `yinyay`, `nyajin`.
- Coverage before banking:
  - targets: `bangkal` 109, `kurrajan` 43, `dara` 27, `jaba` 44, `kunjuri` 52, `nambarr` 42, `wangal` 67, `manbir` 35, `wakay` 36, `wulburr` 36.
  - support: `ngali` 393, `ngaliny` 335, `yubal` 345, `nganjin` 248, `ngana` 915, `yaluy` 3172, `yinyay` 3464, `nyajin` 600.
- Exact duplicate preflight over the 50 planned 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 nominative non-singular 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 bangkal yinyay nyajin.`
2. `Ngali kurrajan yinyay nyajin.`
3. `Ngali dara yinyay nyajin.`
4. `Ngali jaba yinyay nyajin.`
5. `Ngali kunjuri yinyay nyajin.`
6. `Ngali nambarr yinyay nyajin.`
7. `Ngali wangal yinyay nyajin.`
8. `Ngali manbir yinyay nyajin.`
9. `Ngali wakay yinyay nyajin.`
10. `Ngali wulburr yinyay nyajin.`
11. `Ngaliny bangkal yaluy nyajin.`
12. `Ngaliny kurrajan yaluy nyajin.`
13. `Ngaliny dara yaluy nyajin.`
14. `Ngaliny jaba yaluy nyajin.`
15. `Ngaliny kunjuri yaluy nyajin.`
16. `Ngaliny nambarr yaluy nyajin.`
17. `Ngaliny wangal yaluy nyajin.`
18. `Ngaliny manbir yaluy nyajin.`
19. `Ngaliny wakay yaluy nyajin.`
20. `Ngaliny wulburr yaluy nyajin.`
21. `Yubal bangkal yinyay nyajin.`
22. `Yubal kurrajan yinyay nyajin.`
23. `Yubal dara yinyay nyajin.`
24. `Yubal jaba yinyay nyajin.`
25. `Yubal kunjuri yinyay nyajin.`
26. `Yubal nambarr yinyay nyajin.`
27. `Yubal wangal yinyay nyajin.`
28. `Yubal manbir yinyay nyajin.`
29. `Yubal wakay yinyay nyajin.`
30. `Yubal wulburr yinyay nyajin.`
31. `Nganjin bangkal yaluy nyajin.`
32. `Nganjin kurrajan yaluy nyajin.`
33. `Nganjin dara yaluy nyajin.`
34. `Nganjin jaba yaluy nyajin.`
35. `Nganjin kunjuri yaluy nyajin.`
36. `Nganjin nambarr yaluy nyajin.`
37. `Nganjin wangal yaluy nyajin.`
38. `Nganjin manbir yaluy nyajin.`
39. `Nganjin wakay yaluy nyajin.`
40. `Nganjin wulburr yaluy nyajin.`
41. `Ngana bangkal yinyay nyajin.`
42. `Ngana kurrajan yinyay nyajin.`
43. `Ngana dara yinyay nyajin.`
44. `Ngana jaba yinyay nyajin.`
45. `Ngana kunjuri yinyay nyajin.`
46. `Ngana nambarr yinyay nyajin.`
47. `Ngana wangal yinyay nyajin.`
48. `Ngana manbir yinyay nyajin.`
49. `Ngana wakay yinyay nyajin.`
50. `Ngana wulburr yinyay nyajin.`

## Guardrails

- Keep all target labels as bare visible weapon/tool nouns with the selected literal target senses only.
- Do not use the collided/rejected prior exact heads `durray`, `jinil`, `mirru`, `kurajan`, `ngurmu`, or `birungubay`.
- Do not use Nyungkal-labelled `biyul`.
- Keep all subject pronouns as bare nominatives: no `ngalingan`, `ngalinyan`, `yubalan`, `nganjinan`, `nganangan`, `ngalinka`, `ngalinyanka`, `yubalanka`, `nganjinanka`, `ngananka`, or other pronoun case forms.
- Keep `yaluy`, `yinyay`, and `nyajin` uninflected; do not import nonpast `nyajil`, purposive `nyaji-nka`, or `nyaji-l-nyaji-l` / `nyaji-l-nyaji-ny` watching/reduplicated forms into Rule 294.
- Do not import target case, demonstrative case, compounds, productive reduplication, support inflection, source prose, object-use predicates, place names, stories, ownership, danger, route/travel, body-state, illness, post-contact loan objects, or fauna/flora ecology from any target head.
- English must remain literal: selected subject value, target label, here/there, and "saw" only.

## Execution checklist

- Compile `bank_336.py` and `close_336.py`; verify `bank_336.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

- Static script check passed:
  - `python3 -m py_compile batch_scripts/bank_336.py batch_scripts/close_336.py`
  - `bank_336.scan_static()` returned 0 static issues over 50 rows.
- Banking succeeded:
  - `python3 batch_scripts/bank_336.py`
  - Output: `banked batch-336: 50 rows under_review`.
  - DB readback after banking: 50 `under_review` rows; verified total remained 16,847 and under-review total was 50.
- Pre-close lint and row checks passed:
  - `python3 lint_corpus.py`
  - Output: `lint: 16897 rows scanned, 0 issues flagged`; goal metric remained 16,847 / 20,000 because Batch 336 was still under review.
  - Read back all 50 Batch 336 rows as `under_review`, sequence 1..50, matching the planned Kuku surfaces.
  - Whole-corpus exact `lower(kuku)+lower(english)` duplicate scan returned 0 duplicate groups.
- Close succeeded:
  - `python3 batch_scripts/close_336.py`
  - Output: `closed batch-336: accepted=50, reviews=250, lessons=35, lexeme_logs=18, verified 16847->16897, kuku_words 122747->122947`.
- Post-close corpus checks passed:
  - `python3 lint_corpus.py`
  - Output: `lint: 16897 rows scanned, 0 issues flagged`; `GOAL METRIC: 16897 / 20000 verified sentences (122947 Kuku words)`.
  - DB audit: accepted/revised verified total 16,897; under_review 0; remaining to 20,000 = 3,103.
  - Batch 336 rows: 50 accepted rows, seq 1..50.
  - Review rows: 250; lessons: 35; `lexeme_log` rows with action `batch-336-verify`: 18.
  - Exact duplicate scan: 0 duplicate groups.
- Export was refreshed:
  - `python3 export_training.py`
  - Output: 16,897 exported rows with train/dev/synthtest split 14,165 / 1,377 / 1,355.
- Living books were updated:
  - `reports/KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md`
  - `reports/SAMPLE-PRODUCTION-PAGES.md`
  - `reports/kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md`
  - `reports/kuku-yalanji-dictionary-errata-2026-07-02.md`
- Render and live docs verification passed:
  - `./render-docs.sh` rendered all four HTML documents and wrote `public-docs/index.html`.
  - `https://mobtranslate.com/docs` returned HTTP 301 to `/docs/`.
  - `/docs/` and all four `.html` plus four `.md` document routes returned HTTP 200.
  - Live operator, sample, grammar, and errata docs contain Batch 336 / 16,897 markers and the representative `nyajin` examples.
  - Stale Batch 335 handoff markers were absent from live operator/sample docs.
- Process ledger state before this log-finalization edit:
  - Batch 336 process events are continuous from 3338 through 3356.
  - Event 3353 records the source-book update.
  - Event 3354 records local render.
  - Event 3355 records live docs verification.
  - Event 3356 records final lint/DB/duplicate/process-event audit.

## Handoff

Continue from **16,897 / 20,000** verified sentences, with **3,103** remaining. Rule 295 must begin with a fresh
source pass and must not infer weapon action, cooking, turtle spearing, material source, nose piercing,
target/pronoun/demonstrative case, target compounds, productive reduplication, perception compounds,
nonpast/purposive/reduplicated perception, support inflection, or any carried water/landform/sky/fire/fauna/body/
dwelling trap from this batch. If the next batch continues the visible-object perception consolidation, write
`bank_337.py` and `close_337.py`, run a new exact duplicate preflight, and record the source readback before banking.
