# Batch 359 process log - Rule 317 low-coverage insect singular/third-person past perception after Rule 316

## Scope

Rule 317 adds 50 explicit visible-insect singular/third-person past-perception rows over five zero-use and five
one-to-three-use direct-dictionary creature nouns: `kalkamal`, `kuran`, `kurrmaja`, `murma`, `wurrbu`, `durra`,
`jiljay`, `karrkil`, `kawa`, and `jabarrangkul`. It opens only bare creature reference with nominative pronouns,
Yalanji local demonstratives, and past `nyajin`. Seasonal signals, food/edibility, colour, sting/bite/sickness,
nests/habitat, behavior, prior-row propositions, case, compounds, nonpast, purposive, reduplicated perception, and
support inflection remain closed.

Frames: `Ngayu TARGET yinyay nyajin`, `Yundu TARGET yaluy nyajin`, `Nyulu TARGET yinyay nyajin`,
`Bula TARGET yaluy nyajin`, and `Jana TARGET yinyay nyajin`.

## Source readback

- Pronouns: grammar lines 2577-2586. Demonstratives: lines 2834-2847. Past `nyaji-ny`: lines 2023 and 2568-2571;
  past `-ny`: lines 3160-3162; perception A/O syntax: lines 4256-4265. Dictionary running-form `nyajin`: example
  clauses at lines 23882-23883 and 23975-23976.
- `kalkamal` lines 12613-12624: locust; mountain/seasonal turkey-egg signal and event senses closed.
- `kuran` lines 16065-16076: case-moth larva; edible/green-wood habitat closed.
- `kurrmaja` lines 16507-16515: green-ant larvae; nest/food/medicine/preparation inferences closed.
- `murma` lines 20936-20944: wasp; size, yellow colour, bad sting, hanging nest, tree behavior closed.
- `wurrbu` lines 28414-28422: hornet/bumblebee; hornet selected, nests/stump/ground/sting closed.
- `durra` lines 6696-6707: caterpillar/worm; caterpillar selected, earlier life-cycle behavior closed.
- `jiljay` lines 9160-9168: antbed grub; visible grub selected, habitat/fishing/prior event closed.
- `karrkil` lines 13648-13658: red jumper ant; colour, bite, sickness, vomiting, danger closed.
- `kawa` lines 13824-13836: little ants, white or black; size/colour and prior behavior closed.
- `jabarrangkul` lines 6919-6928: black ant / nest in rotten logs; visible ant selected, colour/nest/prior behavior closed.

## Preflight

- Verified before banking: 17,997 / 20,000; 127,347 Kuku words; 2,003 remaining.
- Target coverage: `kalkamal` 0, `kuran` 0, `kurrmaja` 0, `murma` 0, `wurrbu` 0, `durra` 1, `jiljay` 1,
  `karrkil` 1, `kawa` 2, `jabarrangkul` 3.
- Support coverage: `ngayu` 1351, `yundu` 947, `nyulu` 622, `bula` 418, `jana` 1123, `yaluy` 3772,
  `yinyay` 4014, `nyajin` 1200.
- Unsupported solid reduplications `dabadaba` and `dujandujan` were excluded; non-creature `jawurraji` ant bed was
  excluded. All selected forms pass lint; all 50 exact surfaces have zero collisions.

## Planned rows

1. `Ngayu kalkamal yinyay nyajin.`
2. `Ngayu kuran yinyay nyajin.`
3. `Ngayu kurrmaja yinyay nyajin.`
4. `Ngayu murma yinyay nyajin.`
5. `Ngayu wurrbu yinyay nyajin.`
6. `Ngayu durra yinyay nyajin.`
7. `Ngayu jiljay yinyay nyajin.`
8. `Ngayu karrkil yinyay nyajin.`
9. `Ngayu kawa yinyay nyajin.`
10. `Ngayu jabarrangkul yinyay nyajin.`
11. `Yundu kalkamal yaluy nyajin.`
12. `Yundu kuran yaluy nyajin.`
13. `Yundu kurrmaja yaluy nyajin.`
14. `Yundu murma yaluy nyajin.`
15. `Yundu wurrbu yaluy nyajin.`
16. `Yundu durra yaluy nyajin.`
17. `Yundu jiljay yaluy nyajin.`
18. `Yundu karrkil yaluy nyajin.`
19. `Yundu kawa yaluy nyajin.`
20. `Yundu jabarrangkul yaluy nyajin.`
21. `Nyulu kalkamal yinyay nyajin.`
22. `Nyulu kuran yinyay nyajin.`
23. `Nyulu kurrmaja yinyay nyajin.`
24. `Nyulu murma yinyay nyajin.`
25. `Nyulu wurrbu yinyay nyajin.`
26. `Nyulu durra yinyay nyajin.`
27. `Nyulu jiljay yinyay nyajin.`
28. `Nyulu karrkil yinyay nyajin.`
29. `Nyulu kawa yinyay nyajin.`
30. `Nyulu jabarrangkul yinyay nyajin.`
31. `Bula kalkamal yaluy nyajin.`
32. `Bula kuran yaluy nyajin.`
33. `Bula kurrmaja yaluy nyajin.`
34. `Bula murma yaluy nyajin.`
35. `Bula wurrbu yaluy nyajin.`
36. `Bula durra yaluy nyajin.`
37. `Bula jiljay yaluy nyajin.`
38. `Bula karrkil yaluy nyajin.`
39. `Bula kawa yaluy nyajin.`
40. `Bula jabarrangkul yaluy nyajin.`
41. `Jana kalkamal yinyay nyajin.`
42. `Jana kuran yinyay nyajin.`
43. `Jana kurrmaja yinyay nyajin.`
44. `Jana murma yinyay nyajin.`
45. `Jana wurrbu yinyay nyajin.`
46. `Jana durra yinyay nyajin.`
47. `Jana jiljay yinyay nyajin.`
48. `Jana karrkil yinyay nyajin.`
49. `Jana kawa yinyay nyajin.`
50. `Jana jabarrangkul yinyay nyajin.`

## Guardrails

- Exact selected creature labels only; no source prose or prior-row behavior.
- Bare nominative pronoun A and bare absolutive target O; fixed `yaluy`/`yinyay` and dictionary-form `nyajin`.
- No case, derivation, compound, nonpast, purposive, reduplicated perception, or support inflection.
- Exact English contract: subject, selected creature label, here/there, and past "saw" only.

## Execution checklist

- Compile/static; bank under review; whole-corpus lint; exact field readback; duplicate scan; five lenses; close.
- Lessons/lexemes; post-close lint; export; all four books; render; live docs; final integrity and coverage audit.

## Closeout

- `bank_359.py` compiled and its static scan returned zero issues before mutation. The first static scan had flagged
  English `moth`, which occurs inside the direct source label "case-moth larva". The label-level false positive was
  removed before banking; transformation and lifecycle propositions remained explicitly banned. No Kuku form was
  whitelisted to make the batch fit.
- Banking created 50 `under_review` rows and left the verified metric at 17,997. Process events 3792-3797 preserve
  source readback, scope, target/support coverage, duplicate preflight, static guard output, and bank result.
- The first read-only audit command assumed obsolete `batches.slug` and an implicit `batch_scripts` import path.
  It failed without changing corpus data. Event 3798 records the failure and corrected invocation. The repeated
  audit read all 50 rows and compared `seq`, English, Kuku, analysis, frame, tier, `words_used`, `loans_used`,
  evidence, confidence, status, rights status, and author against `bank_359.ROWS`: 50/50 rows, zero differences.
  Event 3799 preserves the green readback.
- Pre-close whole-corpus lint scanned 18,047 banked rows with zero issues; verified remained 17,997. The exact Kuku
  duplicate scan returned zero groups. Events 3800-3801 preserve these results.
- Manual morphology, lexicon, syntax, fidelity, and register review passed every row. The review kept targets bare
  absolutive, subjects bare nominative, local demonstratives and `nyajin` fixed, English literal, and register
  elicitation-like. It admitted none of the seasonal, dietary, colour, sting, sickness, nest, habitat, lifecycle,
  fishing, behavioral, case, compound, productive-reduplication, or support-inflection propositions. Closure wrote
  250 review passes, 35 lessons, and 18 lexeme/source-log rows. Events 3802-3806 preserve review detail and closure.
- `close_359.py` accepted all 50 rows: verified 17,997 -> 18,047 and Kuku words 127,347 -> 127,547. Final statuses
  are 17,136 accepted and 911 revised, with no under-review or rejected rows.
- Export refresh produced 15,144 train, 1,460 dev, and 1,443 synthtest JSONL rows, totaling 18,047. Event 3807
  preserves the export result.
- All four canonical Markdown books were updated to Batch 359 / Rule 317 / 18,047, including direct source lines,
  semantic exclusions, rejected candidates, the `moth` guard refinement, event evidence, cumulative trap `(dn)`,
  and Rule 318 handoff to `bank_360.py` / `close_360.py`. Event 3808 preserves the source-book update.
- `render-docs.sh` rebuilt the index, four standalone HTML books, and four raw Markdown books. Each public Markdown
  copy is byte-identical to its canonical source; local current-marker checks passed and stale current Batch 358
  checks returned no rows. Event 3809 preserves the render audit.
- Live browser-UA verification found `/docs` -> `/docs/` as 301; the index, four HTML files, and four Markdown files
  all returned 200. Normal HTML URLs show Batch 359 / Rule 317 / 18,047 and no stale current Batch 358 marker. The
  index links both forms, and all four live Markdown SHA-256 values equal local. The first sample HTML probe split
  `Rule 317` across a Pandoc line break and falsely failed; whitespace-normalized repetition passed. Event 3810
  preserves both the refinement and final live result.
- Final audit: lint 18,047/0; 127,547 Kuku words; 1,953 remaining; zero exact duplicates; batch inventory 50
  accepted / 250 reviews / 35 lessons / 18 lexeme logs; target coverage after close `kalkamal` 5, `kuran` 5,
  `kurrmaja` 5, `murma` 5, `wurrbu` 5, `durra` 6, `jiljay` 6, `karrkil` 6, `kawa` 7, `jabarrangkul` 8;
  JSONL total 18,047; four source/public Markdown pairs identical; SQLite `integrity_check=ok`; foreign-key check
  empty. Event 3811 preserves the final audit.

## Handoff

If accepted, continue from **18,047 / 20,000**, with **1,953** remaining. Rule 318 requires a fresh source pass.
