# Batch 372 process log - Rule 330 low-coverage fish non-singular past perception after Rule 329

## Scope

Rule 330 adds 50 explicit past visual-perception rows over ten direct non-loan fish heads with accepted/revised
token coverage between five and seven: `bububay`, `baban`, `kundurr-kundurr`, `kurruba`, `murrabal`,
`dukul-barangkal`, `jalil-jalil`, `kurrubal`, `murraja`, and `kubu-kubu`. It opens only bare fish O reference
with bare nominative non-singular pronoun A, Yalanji local demonstratives, and past `nyajin`.

Frames: `Ngali TARGET yaluy nyajin`, `Ngaliny TARGET yinyay nyajin`, `Yubal TARGET yaluy nyajin`,
`Yurra TARGET yinyay nyajin`, and `Ngana TARGET yaluy nyajin`.

## Candidate audit

- A structured YAML-to-SQL audit enumerated noun-typed `fauna-fish` records, grouped duplicate headwords, joined
  heads to token-aware accepted/revised coverage, and collision-probed all intended frames.
- Final-`m` `kijukum`, rhotic-palatal `walarrji`, and unhyphenated-reduplication `bayilbayil` failed the existing orthotactic/linter contract.
  Nyungkul-only `yidilnyul`, `yidi`, `kanyaji`, and `dalku` were excluded. Conflicting/polysemous `danbal`,
  `ngiwa`, `wara`, and `walkan` were excluded rather than normalized.
- Duplicate dictionary records were not treated as independent lexemes. `Baban` and `murraja` were admitted only
  after every selected fish-domain record agreed in phonemic form and core sense. `Baban`'s first record's
  "anglefish" spelling is resolved by its duplicate "angelfish" record, not made into a language claim.
  `Bububay` has one empty `needs_review` placeholder and one complete fish record; only the complete record is
  evidentially operative.
- The selected ten are direct, non-loan, visible fauna heads. Reduplication, compound, synonym, dialect, habitat,
  subsistence, danger, and event prose remains closed.

## Source readback

- Patz line 1476 includes fauna among noun referents. Patz lines 2577-2584 source bare nominatives `ngali`,
  `ngaliny`, `yubal`, `yurra`, and `ngana`; lines 2834-2847 source Yalanji `yaluy` "here" and `yinyay`
  "there". Examples at lines 2021-2024 and 2568-2571 attest `nyaji-ny` "see-PAST", lines 3160-3162 define
  past `-ny`, and lines 4256-4265 license nominative pronoun A with bare absolutive O in perception. Dictionary
  examples at lines 23876-23883 and 23968-23976 independently contain running `nyajin`.
- Exact Patz target search found only `murraja`, at lines 4279, 4340, 6505, and 6507 in inflected stonefish/poking
  clauses; the other nine selected heads were absent. Every admitted bare fish reading remains dictionary-sourced.
- `bububay` lines 3470-3482: one empty source placeholder marked `needs_review` plus one complete black-tip-shark
  fish record. Blacktip-shark reference is based only on the complete record. Placeholder reconciliation, spelling
  normalization, body/fin parts, colour/pattern, habitat, movement, catching, danger, food, possession, source,
  and events closed.
- `baban` lines 91-108: two agreeing angelfish records, one with the source typo "anglefish". Angelfish reference
  admitted. Spelling propositions, body, colour/pattern, habitat, catching, food, possession, source, and events
  closed.
- `kundurr-kundurr` lines 15722-15735: exact hyphenated full-reduplicated crescent-perch noun based on `kundurr`.
  Whole head admitted. Base use, productive reduplication, crescent property, habitat, catching, food, possession,
  source, and events closed.
- `kurruba` lines 16537-16545: species of freshwater fish. Conservative freshwater-fish reference admitted.
  Species identity, habitat proposition, size/appearance, movement, catching, food, possession, source,
  equivalence, and events closed.
- `murrabal` lines 20970-20980: Yalanji barramundi, with Nyungkul `kudi` in prose. Yalanji head admitted.
  Dialect equivalence/substitution, habitat, size, catching, spearing, cooking, eating, possession, source, and
  events closed.
- `dukul-barangkal` lines 6312-6322: exact hyphenated flathead-fish head with synonym `dalmbal`. Whole head
  admitted. Decomposition, productive compounding, synonym substitution/equivalence, shape, habitat, catching,
  food, possession, source, and events closed.
- `jalil-jalil` lines 7406-7419: exact hyphenated full-reduplicated mudskipper noun based on `jalil`. Whole head
  admitted. Base use, productive reduplication, habitat, skipping/movement, amphibious property, catching, food,
  possession, source, and events closed.
- `kurrubal` lines 16546-16556: freshwater cod. Exact reference admitted. Species identity beyond the label,
  habitat proposition, size/appearance, movement, catching, food, possession, source, and events closed.
- `murraja` lines 20981-20998: two agreeing stonefish records. Bare stonefish reference admitted. Patz case forms,
  poking, injury, body contact, danger, story, habitat, catching, food, possession, source, and events closed.
- `kubu-kubu` lines 14716-14729: exact hyphenated full-reduplicated tadpole noun based on `kubu`. Whole head
  admitted. Base use, productive reduplication, frog identity/transformation, life stage, habitat, movement,
  catching, food, possession, source, and events closed.

## Preflight

- Verified before banking: 18,647 / 20,000; 129,947 Kuku words; 1,353 remaining.
- Target coverage: `bububay` 5, `baban` 5, `kundurr-kundurr` 5, `kurruba` 5, `murrabal` 5,
  `dukul-barangkal` 6, `jalil-jalil` 6, `kurrubal` 6, `murraja` 7, and `kubu-kubu` 7.
- Support coverage: `ngali` 573, `ngaliny` 515, `yubal` 525, `yurra` 510, `ngana` 1085, `yaluy` 4092,
  `yinyay` 4344, and `nyajin` 1550.
- Existing target rows were read back. Their location, habitat, morphology, dialect, danger, food/use, and event
  propositions are not copied; none duplicates a planned exact surface.
- Every intended row passes the existing corpus linter without a new exception. All 50 exact Kuku surfaces are
  unique inside the batch and have zero accepted, revised, or under-review corpus collisions.

## Planned rows

1. `Ngali bububay yaluy nyajin.`
2. `Ngali baban yaluy nyajin.`
3. `Ngali kundurr-kundurr yaluy nyajin.`
4. `Ngali kurruba yaluy nyajin.`
5. `Ngali murrabal yaluy nyajin.`
6. `Ngali dukul-barangkal yaluy nyajin.`
7. `Ngali jalil-jalil yaluy nyajin.`
8. `Ngali kurrubal yaluy nyajin.`
9. `Ngali murraja yaluy nyajin.`
10. `Ngali kubu-kubu yaluy nyajin.`
11. `Ngaliny bububay yinyay nyajin.`
12. `Ngaliny baban yinyay nyajin.`
13. `Ngaliny kundurr-kundurr yinyay nyajin.`
14. `Ngaliny kurruba yinyay nyajin.`
15. `Ngaliny murrabal yinyay nyajin.`
16. `Ngaliny dukul-barangkal yinyay nyajin.`
17. `Ngaliny jalil-jalil yinyay nyajin.`
18. `Ngaliny kurrubal yinyay nyajin.`
19. `Ngaliny murraja yinyay nyajin.`
20. `Ngaliny kubu-kubu yinyay nyajin.`
21. `Yubal bububay yaluy nyajin.`
22. `Yubal baban yaluy nyajin.`
23. `Yubal kundurr-kundurr yaluy nyajin.`
24. `Yubal kurruba yaluy nyajin.`
25. `Yubal murrabal yaluy nyajin.`
26. `Yubal dukul-barangkal yaluy nyajin.`
27. `Yubal jalil-jalil yaluy nyajin.`
28. `Yubal kurrubal yaluy nyajin.`
29. `Yubal murraja yaluy nyajin.`
30. `Yubal kubu-kubu yaluy nyajin.`
31. `Yurra bububay yinyay nyajin.`
32. `Yurra baban yinyay nyajin.`
33. `Yurra kundurr-kundurr yinyay nyajin.`
34. `Yurra kurruba yinyay nyajin.`
35. `Yurra murrabal yinyay nyajin.`
36. `Yurra dukul-barangkal yinyay nyajin.`
37. `Yurra jalil-jalil yinyay nyajin.`
38. `Yurra kurrubal yinyay nyajin.`
39. `Yurra murraja yinyay nyajin.`
40. `Yurra kubu-kubu yinyay nyajin.`
41. `Ngana bububay yaluy nyajin.`
42. `Ngana baban yaluy nyajin.`
43. `Ngana kundurr-kundurr yaluy nyajin.`
44. `Ngana kurruba yaluy nyajin.`
45. `Ngana murrabal yaluy nyajin.`
46. `Ngana dukul-barangkal yaluy nyajin.`
47. `Ngana jalil-jalil yaluy nyajin.`
48. `Ngana kurrubal yaluy nyajin.`
49. `Ngana murraja yaluy nyajin.`
50. `Ngana kubu-kubu yaluy nyajin.`

## Guardrails

- Bare nominative non-singular pronoun A and bare absolutive fish target O; fixed Yalanji `yaluy`/`yinyay` and
  dictionary-form past `nyajin`.
- Exact conservative referential labels only. No duplicate-record identity, morphology, dialect equivalence,
  habitat, property, movement, catching, food, preparation, danger, possession, source, or event is added.
- `Kundurr-kundurr`, `jalil-jalil`, and `kubu-kubu` remain exact whole reduplicated heads;
  `dukul-barangkal` remains an exact whole compound. No free base, decomposition, productive process, synonym
  substitution, derivation, number claim, or equivalence is admitted.
- `Bububay` does not assert placeholder reconciliation, body/fin, or colour/pattern content; `murrabal` remains Yalanji without `kudi` substitution;
  `murraja` does not import Patz case, poking, injury, or danger clauses.
- No target case, nonpast, purposive, reduplicated perception, hearing or smell compound, support inflection, or
  prior-row event.

## Execution checklist

- Compile and AST/static inventory; verify 50 explicit `row(...)` calls, 35 lessons, 18 lexeme logs, five lenses,
  and no runtime sentence generator.
- Bank under review; whole-corpus lint; exact field readback; case-folded exact duplicate scan; five-lens manual
  review; non-destructive close.
- Post-close lint and integrity; export; update all four living books; render; live docs; final coverage audit.

## Closeout

- Candidate preflight rejected final-`m` `kijukum`, rhotic-palatal `walarrji`, unhyphenated-reduplication
  `bayilbayil`, Nyungkul-only heads, and conflicting/polysemous records without adding exceptions. Agreeing
  `baban`/`murraja` duplicates were reconciled; only the complete `bububay` shark record, not its empty
  placeholder, was used as evidence.
- Final static inventory passed before banking: 50 explicit `row(...)` calls, sequential 1-50; 35 explicit
  lessons; 18 lexeme/source records; all five review lenses; no runtime sentence generator; 50 unique Kuku
  surfaces and 50 unique English surfaces; all exact corpus-collision probes negative.
- Structured YAML verification confirmed every selected fish-domain record is noun-typed and unflagged as a loan,
  with duplicate phonemic/core-sense agreement where required. Direct source re-read confirmed every target, Patz
  fauna noun status, selected pronouns, Yalanji demonstratives, past `nyaji-ny`, perception A/O syntax, and
  dictionary `nyajin`; exact Patz target search found only inflected `murraja` in poking clauses.
- Banked all 50 rows as `under_review`. Whole-corpus pre-close lint scanned 18,697 rows with zero issues while the
  verified count remained 18,647. Field-for-field SQLite readback matched all 50 script rows and batch metadata.
- Case-folded exact duplicate scan returned zero groups; the punctuation-stripped diagnostic retained six
  legitimate historical statement/question/exclamation contrast groups.
- Manual five-lens review passed all 250 morphology, lexicon, syntax, fidelity, and register judgments. Duplicate
  identity, decomposition, productive morphology, synonym/dialect substitution, habitat, catching, food, danger,
  source, possession, property, cultural-event, case, and support drift remained closed.
- Close inserted 35 lessons and 18 lexeme/source-log rows and accepted all 50 rows non-destructively. Verified count
  moved 18,647 -> 18,697; Kuku surface-word count moved 129,947 -> 130,147. Post-close lint scanned 18,697 rows
  with zero issues. Statuses are 17,786 accepted, 911 revised, and zero pending/draft/under-review rows.
- Target coverage moved `bububay` 5->10, `baban` 5->10, `kundurr-kundurr` 5->10,
  `kurruba` 5->10, `murrabal` 5->10, `dukul-barangkal` 6->11, `jalil-jalil` 6->11,
  `kurrubal` 6->11, `murraja` 7->12, and `kubu-kubu` 7->12. Exact Kuku duplicates remain zero;
  `PRAGMA integrity_check` is `ok`; foreign-key violations are zero.
- Training export refreshed to 18,697 rows: 15,682 train, 1,516 dev, and 1,499 synthtest. Manifest totals and
  JSONL line counts agree.
- All four canonical living books were updated to Batch 372 / Rule 330 / 18,697; the operator handoff advances to
  Rule 331 and names `bank_373.py` and `close_373.py`. Rendering produced byte-identical public Markdown copies
  and current HTML.
- Live verification at `https://mobtranslate.com/docs/` used a browser user agent: `/docs` returns 301 to
  `/docs/`; the index, four HTML pages, and four Markdown sources all return 200 with `max-age=300`; all four live
  Markdown files are byte-identical to local renders; all four HTML pages carry Batch 372 / Rule 330 / 18,697;
  the Rule 331 handoff is current.
- Structured process events 4063-4082 record source readback, candidate and record audit, scope, coverage,
  duplicate preflight, static guards, banking, exact readback, duplicate scan, under-review lint, five-lens review
  detail, lessons, lexeme logs, close, export, source-book update, local render, live verification, and final audit.

## Handoff

If accepted, continue from **18,697 / 20,000**, with **1,303** remaining. Rule 331 requires a fresh source pass.
