# Batch 331 / Rule 289 - visible traditional weapon/tool singular-and-third pronoun nonpast perception after Rule 288

Status: planned for banking from 16,597 verified sentences.

## Scope

Rule 289 is a fresh visible traditional weapon/tool lexical-field audit after the Rule 285-288 artefact/tool
consolidation cycle. It opens exactly one construction: checked visible weapon/tool noun targets in bare pronoun
nonpast visual perception frames. It does not open weapon use, cooking, turtle spearing, fire-hardening, nose
piercing, material-source, manufacture, ownership, or route/place rows.

Frames:

- `Ngayu TARGET yaluy nyajil.`
- `Yundu TARGET yinyay nyajil.`
- `Nyulu TARGET yaluy nyajil.`
- `Bula TARGET yinyay nyajil.`
- `Jana TARGET yaluy nyajil.`

## Source readback

Dictionary line readback:

- `bangkal` 1478-1489: noun, tongs made from voya vine, used in cooking in a `kurrma`; Rule 289 uses visible tongs
  reference only and closes cooking/vine/earth-oven/action rows.
- `kurrajan` 16196-16207: noun, spear point made from wattle and used for turtle spearing; Rule 289 uses visible
  spear-point reference only and closes turtle-spearing, wattle, fire-hardening, piercing, and use rows.
- `dara` 5215-5226: noun, bamboo spear stick; Rule 289 uses visible spear-stick reference only.
- `jaba` 6843-6857: noun, stick / sapling / post / walking stick / horn; Rule 289 uses visible stick reference only
  and closes plant/post/horn/walking-use rows.
- `kunjuri` 15915-15923: noun, shield; Rule 289 uses visible shield reference only.
- `nambarr` 21516-21526: noun, flexible bamboo stick used in nose piercing; Rule 289 uses visible bamboo-stick
  reference only and closes nose-piercing/use rows.
- `wangal` 25943-25951: noun, boomerang; Rule 289 uses visible boomerang reference only.
- `manbir` 17699-17707: noun, barb of a spear; Rule 289 uses visible spear-barb reference only.
- `wakay` 25192-25202: noun, wooden sword; Rule 289 uses visible wooden-sword reference only and closes people/use
  source prose.
- `wulburr` 27767-27776: noun, bamboo spear stick / spear; Rule 289 uses visible bamboo-spear-stick reference only.

Grammar line readback:

- Patz lines 2577-2586 and 2592-2603: personal pronoun paradigm and base forms. Rule 289 uses bare nominative
  `ngayu`, `yundu`, `nyulu`, `bula`, and `jana`.
- Patz lines 2674-2686: non-singular source notes; `bula` is third dual 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 289 uses corpus-conventional `nyajil`.

## Preflight

The first candidate set collided with earlier Batch 231/232 singular weapon perception rows for `durray`, `jinil`,
`mirru`, `kurajan`, and `ngurmu`; those heads were not used. `Biyul` was also excluded because the dictionary marks it
as a Nyungkal form and gives Yalanji `kurajan`; Rule 289 uses Yalanji-safe `kurrajan` instead. 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: `bangkal` 94, `kurrajan` 8, `dara` 12, `jaba` 29, `kunjuri` 37, `nambarr` 7, `wangal` 52, `manbir` 0,
  `wakay` 1, `wulburr` 1.
- Support: `ngayu` 1211, `yundu` 807, `nyulu` 482, `bula` 278, `jana` 993, `yaluy` 3042, `yinyay` 3344,
  `nyajil` 3197.

## Planned rows

1. `Ngayu bangkal yaluy nyajil.`
2. `Ngayu kurrajan yaluy nyajil.`
3. `Ngayu dara yaluy nyajil.`
4. `Ngayu jaba yaluy nyajil.`
5. `Ngayu kunjuri yaluy nyajil.`
6. `Ngayu nambarr yaluy nyajil.`
7. `Ngayu wangal yaluy nyajil.`
8. `Ngayu manbir yaluy nyajil.`
9. `Ngayu wakay yaluy nyajil.`
10. `Ngayu wulburr yaluy nyajil.`
11. `Yundu bangkal yinyay nyajil.`
12. `Yundu kurrajan yinyay nyajil.`
13. `Yundu dara yinyay nyajil.`
14. `Yundu jaba yinyay nyajil.`
15. `Yundu kunjuri yinyay nyajil.`
16. `Yundu nambarr yinyay nyajil.`
17. `Yundu wangal yinyay nyajil.`
18. `Yundu manbir yinyay nyajil.`
19. `Yundu wakay yinyay nyajil.`
20. `Yundu wulburr yinyay nyajil.`
21. `Nyulu bangkal yaluy nyajil.`
22. `Nyulu kurrajan yaluy nyajil.`
23. `Nyulu dara yaluy nyajil.`
24. `Nyulu jaba yaluy nyajil.`
25. `Nyulu kunjuri yaluy nyajil.`
26. `Nyulu nambarr yaluy nyajil.`
27. `Nyulu wangal yaluy nyajil.`
28. `Nyulu manbir yaluy nyajil.`
29. `Nyulu wakay yaluy nyajil.`
30. `Nyulu wulburr yaluy nyajil.`
31. `Bula bangkal yinyay nyajil.`
32. `Bula kurrajan yinyay nyajil.`
33. `Bula dara yinyay nyajil.`
34. `Bula jaba yinyay nyajil.`
35. `Bula kunjuri yinyay nyajil.`
36. `Bula nambarr yinyay nyajil.`
37. `Bula wangal yinyay nyajil.`
38. `Bula manbir yinyay nyajil.`
39. `Bula wakay yinyay nyajil.`
40. `Bula wulburr yinyay nyajil.`
41. `Jana bangkal yaluy nyajil.`
42. `Jana kurrajan yaluy nyajil.`
43. `Jana dara yaluy nyajil.`
44. `Jana jaba yaluy nyajil.`
45. `Jana kunjuri yaluy nyajil.`
46. `Jana nambarr yaluy nyajil.`
47. `Jana wangal yaluy nyajil.`
48. `Jana manbir yaluy nyajil.`
49. `Jana wakay yaluy nyajil.`
50. `Jana wulburr yaluy nyajil.`

## Guardrails

- Keep all target labels as bare visible weapon/tool nouns with the selected literal target senses only.
- Keep `bangkal` as visible tongs only; do not open cooking, earth oven, voya vine, gathering, or action rows.
- Keep `kurrajan` as visible spear point only; do not open turtle spearing, wattle source, fire-hardening, piercing,
  or use rows.
- Keep `dara` and `wulburr` as visible bamboo spear-stick nouns only; do not open spear use, bamboo source, hunting,
  fighting, or throwing rows.
- Keep `jaba` as visible stick only; do not open sapling/post/horn/walking-use or plant rows.
- Keep `kunjuri` as visible shield only; do not open fighting, defence, body-covering, ownership, or weapon-use rows.
- Keep `nambarr` as visible bamboo stick only; do not open nose-piercing or implement-use rows.
- Keep `wangal` as visible boomerang only; do not open throwing, hunting, fighting, play, return, or travel rows.
- Keep `manbir` as visible spear barb only; do not open stabbing, hooking, piercing, injury, spear-use, or component
  manufacture rows.
- Keep `wakay` as visible wooden sword only; do not open people-group source prose, fighting, cutting, or use rows.
- Do not use the collided/rejected prior exact heads `durray`, `jinil`, `mirru`, `kurajan`, `ngurmu`, or
  `birungubay` in this batch.
- Do not use Nyungkal-labelled `biyul` in this Yalanji batch.
- Keep all subject pronouns as bare nominatives: no `nganya`, `yununy`, `nyunguny`, `bulangan`, `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 289.
- 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.

## 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

- Static guard: `bank_331.py` compiled and `scan_static()` returned `[]`.
- Banking command: `python3 batch_scripts/bank_331.py` inserted 50 explicit rows as `under_review`.
- Pre-close lint: `lint: 16647 rows scanned, 0 issues flagged`; goal metric stayed at `16597 / 20000` because the 50 rows were still under review.
- SQLite row readback: all 50 Batch 331 rows were present as `under_review`; exact Kuku+English duplicate scan returned no rows.
- Five-lens review: morphology, lexicon, syntax, fidelity, and register passed for all 50 rows, giving 250 review rows.
- Close command: `python3 batch_scripts/close_331.py` reported `closed batch-331: accepted=50, reviews=250, lessons=36, lexeme_logs=18, verified 16597->16647, kuku_words 121747->121947`.
- Post-close lint: `lint: 16647 rows scanned, 0 issues flagged`; goal metric `16647 / 20000 verified sentences (121947 Kuku words)`.
- DB audit: `verified_total=16647`, `under_review=0`, `remaining_to_20000=3353`, `batch331_rows=50`, `batch331_reviews=250`, `batch331_lessons=36`, `batch331_lexeme_logs=18`.
- Export refresh: `export_training.py` wrote 16,647 JSONL rows: train `13,954`, dev `1,356`, synthtest `1,337`.
- Living books: operator guide, sample pages, grammar cheatsheet, and dictionary errata were updated with Batch 331 / Rule 289, the `16,647 / 20,000` count, examples, traps, and the Rule 290 handoff (`bank_332.py`, `close_332.py`).
- Render/local docs: `./render-docs.sh` regenerated the raw `.md`, rendered `.html`, and index in `public-docs/`; local marker checks found `16,647`, `Batch 331`, `Rule 289`, `batch-331`, and the five representative examples in the generated docs; stale Batch 330 handoff markers were absent.
- Live docs: `https://mobtranslate.com/docs` returned 301 to `/docs/`; `/docs/`, all four rendered HTML pages, and all four raw Markdown sources returned 200; live marker checks passed.
- Process ledger before this log-finalization event: Batch 331 events `3242..3259` covered source readback, lexical-field scope, coverage audit, duplicate preflight, static guard, bank, row readback, lint, five-lens review, review detail, lessons, lexeme logs, close, export, source-book update, local render, live docs verification, and final audit.

## Handoff

Continue from **16,647 / 20,000** verified sentences, with **3,353** remaining. Rule 290 must begin with a fresh source pass and should not infer weapon action, cooking, turtle spearing, material source, nose piercing, target/pronoun/demonstrative case, target compounds, productive reduplication, perception compounds, past/purposive/reduplicated perception, support inflection, or any carried water/landform/sky/fire/fauna/body/dwelling trap from this batch.
