# Batch 371 process log - Rule 329 low-coverage shellfish singular/third nonpast perception after Rule 328

## Scope

Rule 329 adds 50 explicit nonpast visual-perception rows over nine shellfish/crustacean noun heads with
accepted/revised token coverage between seven and nine plus one ten-use control: `wurru-bulan`, `dakaldakal`,
`kajarrbi`, `kunkun`, `kurrija`,
`ngajay`, `nikar`, `wuli-wuli`, `jalan`, and `wurrul`. It opens only bare marine-fauna O reference with bare
nominative singular or third-person pronoun A, Yalanji local demonstratives, and nonpast `nyajil`.

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

## Candidate audit

- A structured YAML-to-SQL audit enumerated every noun in semantic domain `fauna-shellfish-crustacean`, joined
  each head to token-aware accepted/revised coverage from `words_used`, and inspected intended surfaces with the
  corpus linter.
- Ten heads had coverage zero to nine, but direct dictionary head `jirrum` ends in `-m` and failed the established
  corpus orthotactic contract. It was excluded without adding a one-off linter exception; the next-lowest direct,
  unflagged domain head, ten-use `wurru-bulan`, was selected as a transparent control.
- `Dakaldakal`, `kunkun`, and `wuli-wuli` retain their exact solid or hyphenated lexical forms and dictionary
  reduplication analyses. No free base or productive process is inferred.
- Shell versus animal translations, habitat, edibility, gathering, catching, preparation, food, and use prose is
  recorded as a sense boundary rather than converted into generated propositions.

## Source readback

- Patz line 1476 includes fauna among noun referents. Patz lines 2577-2586 source bare nominatives `ngayu`,
  `yundu`, `nyulu`, `bula`, and `jana`/`iana`; lines 2834-2847 source Yalanji `yaluy` "here" and `yinyay`
  "there". Lines 3043-3049 give nonpast `nyaji-l`, lines 3149-3151 define its present/future function, and lines
  4256-4265 license nominative pronoun A with bare absolutive O in perception. Dictionary lines 24282-24296
  independently attest running `nyajil` and its visual sense.
- Exact Patz target search found `dakaldakal` at line 944 with the trochus-shell gloss in a table of reduplicated
  forms; the other nine targets were absent. Every other admitted reading remains dictionary-sourced.
- `dakaldakal` lines 4590-4603: solid full-reduplicated trochus-shell noun based on `dakal`. Exact whole head
  admitted. Free-base use, productive reduplication, shell source, animal identity, gathering, carrying,
  tool/ornament use, and events closed.
- `jalan` lines 7340-7350: edible spiny sea urchin on coastal rocks, with fried meat noted. Sea-urchin reference
  admitted. Shell/spines, comparison, injury, habitat, edibility, meat, frying, gathering, carrying, and events
  closed.
- `wurru-bulan` lines 28490-28498: exact hyphenated noun for a small crab found on a reef. Whole-head small-crab
  reference admitted. Component decomposition, productive compounding, size comparison, reef/sea habitat,
  movement, gathering, catching, food, cooking, eating, possession, source, and events closed.
- `kajarrbi` lines 12013-12022: clam shell or giant clam. Conservative clam-shell reading admitted. Giant-size
  predication, shell/animal identity, sea habitat, opening, gathering, carrying, food, use, source, and events
  closed.
- `kunkun` lines 15937-15951: solid full-reduplicated periwinkle noun based on `kun`, with flat/smooth shell prose.
  Exact periwinkle head admitted. Base use, productive reduplication, properties, shell parts, habitat, gathering,
  food, source, and events closed.
- `kurrija` lines 16364-16372: octopus. Exact reference admitted. Body parts, number, movement, habitat, catching,
  spearing, cooking, eating, danger, possession, source, and events closed.
- `ngajay` lines 21731-21741: small crayfish explicitly not eaten. Exact reference admitted. Edibility/avoidance,
  eating, size comparison, habitat, catching, gathering, cooking, possession, source, and events closed.
- `nikar` lines 24079-24087: shallow-water oyster found on rock. Oyster reference admitted. Habitat, attachment,
  shell parts, gathering, opening, cooking, eating, possession, source, and events closed.
- `wuli-wuli` lines 27786-27799: exact hyphenated full-reduplicated soldier-crab noun based on `wuli`. Whole head
  admitted. Base use, productive reduplication, group/number, habitat, movement, gathering, food, possession,
  source, and events closed.
- `wurrul` lines 28499-28510: species of shellfish. Conservative shellfish reference admitted. Species identity,
  shell parts, habitat, gathering, opening, cooking, eating, possession, source, equivalence, and events closed.

## Preflight

- Verified before banking: 18,597 / 20,000; 129,747 Kuku words; 1,403 remaining.
- Target coverage: `wurru-bulan` 10, `dakaldakal` 7, `kajarrbi` 8, `kunkun` 8, `kurrija` 8, `ngajay` 8,
  `nikar` 8, `wuli-wuli` 8, `jalan` 9, and `wurrul` 9.
- Support coverage: `ngayu` 1411, `yundu` 1007, `nyulu` 682, `bula` 478, `jana` 1183, `yaluy` 4062,
  `yinyay` 4324, and `nyajil` 4147.
- Existing target rows were read back. Their location, habitat, food/use, property, and event propositions are not
  copied; the complementary demonstrative bands avoid Rule 325's existing `jalan` perception surfaces.
- 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. `Ngayu wurru-bulan yaluy nyajil.`
2. `Ngayu dakaldakal yaluy nyajil.`
3. `Ngayu kajarrbi yaluy nyajil.`
4. `Ngayu kunkun yaluy nyajil.`
5. `Ngayu kurrija yaluy nyajil.`
6. `Ngayu ngajay yaluy nyajil.`
7. `Ngayu nikar yaluy nyajil.`
8. `Ngayu wuli-wuli yaluy nyajil.`
9. `Ngayu jalan yaluy nyajil.`
10. `Ngayu wurrul yaluy nyajil.`
11. `Yundu wurru-bulan yinyay nyajil.`
12. `Yundu dakaldakal yinyay nyajil.`
13. `Yundu kajarrbi yinyay nyajil.`
14. `Yundu kunkun yinyay nyajil.`
15. `Yundu kurrija yinyay nyajil.`
16. `Yundu ngajay yinyay nyajil.`
17. `Yundu nikar yinyay nyajil.`
18. `Yundu wuli-wuli yinyay nyajil.`
19. `Yundu jalan yinyay nyajil.`
20. `Yundu wurrul yinyay nyajil.`
21. `Nyulu wurru-bulan yaluy nyajil.`
22. `Nyulu dakaldakal yaluy nyajil.`
23. `Nyulu kajarrbi yaluy nyajil.`
24. `Nyulu kunkun yaluy nyajil.`
25. `Nyulu kurrija yaluy nyajil.`
26. `Nyulu ngajay yaluy nyajil.`
27. `Nyulu nikar yaluy nyajil.`
28. `Nyulu wuli-wuli yaluy nyajil.`
29. `Nyulu jalan yaluy nyajil.`
30. `Nyulu wurrul yaluy nyajil.`
31. `Bula wurru-bulan yinyay nyajil.`
32. `Bula dakaldakal yinyay nyajil.`
33. `Bula kajarrbi yinyay nyajil.`
34. `Bula kunkun yinyay nyajil.`
35. `Bula kurrija yinyay nyajil.`
36. `Bula ngajay yinyay nyajil.`
37. `Bula nikar yinyay nyajil.`
38. `Bula wuli-wuli yinyay nyajil.`
39. `Bula jalan yinyay nyajil.`
40. `Bula wurrul yinyay nyajil.`
41. `Jana wurru-bulan yaluy nyajil.`
42. `Jana dakaldakal yaluy nyajil.`
43. `Jana kajarrbi yaluy nyajil.`
44. `Jana kunkun yaluy nyajil.`
45. `Jana kurrija yaluy nyajil.`
46. `Jana ngajay yaluy nyajil.`
47. `Jana nikar yaluy nyajil.`
48. `Jana wuli-wuli yaluy nyajil.`
49. `Jana jalan yaluy nyajil.`
50. `Jana wurrul yaluy nyajil.`

## Guardrails

- Bare nominative singular/third-person pronoun A and bare absolutive marine-fauna target O; fixed Yalanji
  `yaluy`/`yinyay` and dictionary-form nonpast `nyajil`.
- Exact conservative referential labels only. No shell/animal identity, habitat, property, source, edibility,
  gathering, catching, food, preparation, possession, cultural practice, or event is added.
- `Dakaldakal`, `kunkun`, and `wuli-wuli` remain exact whole dictionary heads. Their reduplication analyses
  license no free base, productive process, decomposition, derivation, number claim, or equivalence.
- `Kajarrbi` remains the clam-shell reading without giant-size or animal identity; `ngajay` does not assert
  edibility; `jalan` does not assert shell/spines, injury, habitat, food, or frying.
- No target case, past, 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

- Initial source/schema inventory found ten domain heads at coverage zero to nine, but direct dictionary `jirrum`
  failed the established orthotactic linter because of final `-m`; no exception was added. All ten-use controls
  were collision-probed; first replacement `juwarru` collided with two historical surfaces, while
  `wurru-bulan` was direct, linter-green, and collision-free. Both rejected paths remain recorded.
- 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 all ten final heads are unique noun-typed
  `fauna-shellfish-crustacean` entries with no dictionary loan flag. Direct source re-read confirmed every target,
  Patz fauna noun status, selected pronouns, Yalanji demonstratives, nonpast `nyaji-l`, perception A/O syntax,
  and dictionary `nyajil`; exact Patz target search found only `dakaldakal`, in its trochus-shell sense.
- Banked all 50 rows as `under_review`. Whole-corpus pre-close lint scanned 18,647 rows with zero issues while the
  verified count remained 18,597. 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. Shell/
  animal identity, free-base or productive reduplication, habitat, edibility, gathering, catching, food/use,
  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,597 -> 18,647; Kuku surface-word count moved 129,747 -> 129,947. Post-close lint scanned 18,647 rows
  with zero issues. Statuses are 17,736 accepted, 911 revised, and zero pending/draft/under-review rows.
- Target coverage moved `wurru-bulan` 10->15, `dakaldakal` 7->12, `kajarrbi` 8->13,
  `kunkun` 8->13, `kurrija` 8->13, `ngajay` 8->13, `nikar` 8->13, `wuli-wuli` 8->13,
  `jalan` 9->14, and `wurrul` 9->14. Exact Kuku duplicates remain zero; `PRAGMA integrity_check` is `ok`;
  foreign-key violations are zero.
- Training export refreshed to 18,647 rows: 15,642 train, 1,512 dev, and 1,493 synthtest. Manifest totals and
  JSONL line counts agree.
- All four canonical living books were updated to Batch 371 / Rule 329 / 18,647; the operator handoff advances to
  Rule 330 and names `bank_372.py` and `close_372.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 371 / Rule 329 / 18,647;
  the Rule 330 handoff is current.
- Structured process events 4042-4061 record source readback, candidate and sense 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,647 / 20,000**, with **1,353** remaining. Rule 330 requires a fresh source pass.
