# Batch 329 / Rule 287 - visible artefact/tool non-singular complementary nonpast pronoun perception after Rule 286

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

## Scope

Rule 287 is a justified complementary construction consolidation after Rule 286: the same final visible artefact/tool
target set, now in the opposite here/there pairing for non-singular nonpast visual perception. It opens exactly one
construction: bare visible artefact/tool noun targets in complementary non-singular nonpast visual perception frames
with already sourced support morphology.

Frames:

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

## Source readback

Dictionary line readback:

- `badur` 256-268: noun, hook / hook and line; fishing action closed.
- `balji` 963-974: noun, bag / woman's dilly bag made from grass or black palm; making/material-source rows closed.
- `balur` 1154-1170: noun, spear thrower / woomera; empty duplicate entry confirms the same noun.
- `kaljan` 12560-12568: noun, outrigger canoe; canoe travel/rowing rows closed.
- `dajal` 4499-4509: noun, fighting spear; spearing/fighting action rows closed.
- `dakilji` 4665-4676: noun, cup / pannikin; post-contact expansion rows closed.
- `jidi` 8842-8851: noun, paperbark-tree-bark torch; fire/burning/making rows closed.
- `jindal` 9423-9433: noun, spear with three prongs; homophonous `jindal` bite verb closed.
- `jundi` 10846-10857: noun, pumice stone / carborundum stone; sharpening/rubbing use rows closed.
- `karra` 13534-13544: noun, rope/cord/string, synonym `ngarra`; tying/use rows closed.

Grammar line readback:

- Patz lines 2577-2586 and 2592-2603: personal pronoun paradigm and base forms. Rule 287 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 287 uses corpus-conventional `nyajil`.
- Patz lines 2568-2571: `nyaji-ny` "see-PAST" is contrast only here; Rule 287 does not use past `nyajin`.

## Preflight

Rule 287 keeps `birungubay` excluded and uses the final Rule 285-286 target set. The planned complementary nonpast
50 surfaces are 50 unique strings and have 0 accepted/revised/under-review collisions.

Token-aware accepted/revised coverage before banking:

- Targets: `badur` 55, `balji` 204, `balur` 43, `kaljan` 13, `dajal` 10, `dakilji` 15, `jidi` 23, `jindal` 12,
  `jundi` 17, `karra` 113.
- Support: `ngali` 353, `ngaliny` 295, `yubal` 305, `yurra` 310, `jana` 973, `yaluy` 2982, `yinyay` 3304,
  `nyajil` 3147.

## Planned rows

1. `Ngali badur yaluy nyajil.`
2. `Ngali balji yaluy nyajil.`
3. `Ngali balur yaluy nyajil.`
4. `Ngali kaljan yaluy nyajil.`
5. `Ngali dajal yaluy nyajil.`
6. `Ngali dakilji yaluy nyajil.`
7. `Ngali jidi yaluy nyajil.`
8. `Ngali jindal yaluy nyajil.`
9. `Ngali jundi yaluy nyajil.`
10. `Ngali karra yaluy nyajil.`
11. `Ngaliny badur yinyay nyajil.`
12. `Ngaliny balji yinyay nyajil.`
13. `Ngaliny balur yinyay nyajil.`
14. `Ngaliny kaljan yinyay nyajil.`
15. `Ngaliny dajal yinyay nyajil.`
16. `Ngaliny dakilji yinyay nyajil.`
17. `Ngaliny jidi yinyay nyajil.`
18. `Ngaliny jindal yinyay nyajil.`
19. `Ngaliny jundi yinyay nyajil.`
20. `Ngaliny karra yinyay nyajil.`
21. `Yubal badur yaluy nyajil.`
22. `Yubal balji yaluy nyajil.`
23. `Yubal balur yaluy nyajil.`
24. `Yubal kaljan yaluy nyajil.`
25. `Yubal dajal yaluy nyajil.`
26. `Yubal dakilji yaluy nyajil.`
27. `Yubal jidi yaluy nyajil.`
28. `Yubal jindal yaluy nyajil.`
29. `Yubal jundi yaluy nyajil.`
30. `Yubal karra yaluy nyajil.`
31. `Yurra badur yinyay nyajil.`
32. `Yurra balji yinyay nyajil.`
33. `Yurra balur yinyay nyajil.`
34. `Yurra kaljan yinyay nyajil.`
35. `Yurra dajal yinyay nyajil.`
36. `Yurra dakilji yinyay nyajil.`
37. `Yurra jidi yinyay nyajil.`
38. `Yurra jindal yinyay nyajil.`
39. `Yurra jundi yinyay nyajil.`
40. `Yurra karra yinyay nyajil.`
41. `Jana badur yaluy nyajil.`
42. `Jana balji yaluy nyajil.`
43. `Jana balur yaluy nyajil.`
44. `Jana kaljan yaluy nyajil.`
45. `Jana dajal yaluy nyajil.`
46. `Jana dakilji yaluy nyajil.`
47. `Jana jidi yaluy nyajil.`
48. `Jana jindal yaluy nyajil.`
49. `Jana jundi yaluy nyajil.`
50. `Jana karra yaluy nyajil.`

## Guardrails

- Keep all target labels as bare visible artefact/tool nouns with the selected literal target senses only.
- Keep `badur` as visible hook/hook-and-line only; do not open fishing, sitting-with-line, catching, bait, or water
  use rows.
- Keep `balji` as visible dilly bag only; do not open making, weaving, grass/black-palm material-source, gendered
  ownership, carrying, or use rows.
- Keep `balur` as visible spear thrower only; do not open throwing, defence, judgement, weapon-use, or euphemism rows.
- Keep `kaljan` as visible outrigger canoe only; do not open travel, rowing, paddling, sea/river route, or ownership
  rows.
- Keep `dajal` as visible fighting spear only; do not open spearing, fighting, killing, hunting, throwing, or
  material-source rows.
- Keep `dakilji` as visible cup only; do not open drinking, filling, washing, loan/post-contact expansion, or use
  rows.
- Keep `jidi` as visible torch only; do not open fire, burning, lighting, making, bark-source, or night-travel rows.
- Keep `jindal` as visible three-pronged spear only; do not open the homophonous `jindal` bite verb or any puncture,
  snake, dog, or wound rows.
- Keep `jundi` as visible pumice stone only; do not open sharpening, rubbing, grinding, abrasive-use, or material
  source rows.
- Keep `karra` as visible rope/cord/string only; do not open tying, binding, carrying, weaving, or use rows.
- Keep `birungubay` excluded; do not reopen the paddle/oar duplicate band without a fresh preflight.
- 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 287.
- 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

Batch 329 / Rule 287 was banked, reviewed, closed, exported, documented, rendered, and live-verified on 2026-07-09.

Execution evidence:

- Static guard compile and scan passed before banking:
  `python3 -m py_compile batch_scripts/bank_329.py` and
  `python3 -c "import sys; sys.path.insert(0,'batch_scripts'); import bank_329; print(bank_329.scan_static())"`
  returned `[]`.
- Banking command: `python3 batch_scripts/bank_329.py` -> `banked batch-329: 50 rows under_review`.
- Pre-close readback: SQLite returned 50 Batch 329 rows, all `under_review`; the duplicate scan over non-rejected rows
  returned no collisions.
- Pre-close lint: `lint: 16547 rows scanned, 0 issues flagged`; goal metric stayed `16497 / 20000` until acceptance.
- Close command: `python3 batch_scripts/close_329.py` ->
  `closed batch-329: accepted=50, reviews=250, lessons=36, lexeme_logs=18, verified 16497->16547, kuku_words 121347->121547`.
- Post-close lint: `lint: 16547 rows scanned, 0 issues flagged`; goal metric `16547 / 20000 verified sentences
  (121547 Kuku words)`.
- Post-close DB audit: `verified_total=16547`, `under_review=0`, `remaining_to_20000=3453`,
  `batch329_accepted=50`, `batch329_reviews=250`, `batch329_lessons=36`, `batch329_lexeme_logs=18`.
- Training export refresh: `python3 export_training.py` exported 16,547 rows:
  train `13,872`, dev `1,345`, synthtest `1,330`; `wc -l export/*.jsonl` totaled `16,547`.
- Source books updated: operator guide now shows `16,547 / 20,000`, Rules 1-287, Batch 329 / Rule 287, Rule 288
  handoff, `bank_330.py`, and `close_330.py`; sample pages show process tag `batch-329`; grammar cheatsheet and
  dictionary errata append Rule 287 / Batch 329 entries.
- Local render: `./render-docs.sh` rendered the four HTML docs and raw Markdown copies into `public-docs/`; generated
  Markdown and HTML marker checks passed for `16,547`, `Batch 329`, `Rule 287`, `batch-329`, and the representative
  examples `Ngali badur yaluy nyajil.`, `Ngaliny balji yinyay nyajil.`, `Yubal kaljan yaluy nyajil.`,
  `Yurra jindal yinyay nyajil.`, and `Jana karra yaluy nyajil.`; index links for all four HTML pages and four raw
  Markdown files passed.
- Live docs verification: `https://mobtranslate.com/docs` returned `301` to `/docs/`; `/docs/`, all four HTML pages,
  and all four raw Markdown files returned `200`; live HTML and Markdown marker checks passed for Batch 329 content.
- Final duplicate scan over Batch 329 surfaces returned no rows.

Process event range for this batch before process-log finalization: `3204..3221`, continuous:
`source-readback`, `construction-consolidation-scope`, `coverage-audit`, `duplicate-preflight`, `static-guard-pass`,
`bank-success`, `sqlite-row-readback`, `under-review-lint-green`, `five-lens-pass`, `review-detail`,
`lesson-inventory`, `lexeme-source-log`, `close-success`, `export-refresh`, `source-books-updated`, `render-local`,
`live-docs-verified`, and `final-audit-green`.

Handoff: continue from **16,547 / 20,000** verified sentences with **3,453** remaining. Rule 288 must not infer any
artefact/tool use, weapon action, canoe travel, material source, target case, pronoun case, demonstrative case,
perception compound, past/purposive/reduplicated perception morphology, productive reduplication, or support
inflection from Rule 287.
