# Batch 377 process log - Rule 335 mammal singular/third-person past perception after Rule 334

## Scope

Rule 335 adds 50 explicit past visual-perception rows over ten exact non-loan `fauna-mammal` noun heads:
`kaya-kaya`, `murral`, `jungarr`, `jayju`, `ngumbi`, `mali`, `kukur`, `murramu`, `darrba`, and `yawa`.
It opens only the empty bare-target four-token singular/third-person past grid with Yalanji local demonstratives.

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

## Candidate and lexical-boundary audit

- Structured YAML parsing confirmed one exact record per selected head, all noun-typed, all in domain
  `fauna-mammal`, and none carrying a loan marker. Selection was grammatical and evidential, not merely numerical:
  undefined `buji`, horse/post-contact candidates, dialect-only alternatives, mixed-sense `biwuy`, duplicate exact
  head `bala`, and collision-bearing low-count targets were not admitted.
- `Kaya-kaya` at dictionary lines 13966-13979 is an exact hyphenated plural dog head. Its record explicitly gives
  full reduplication of `kaya` marking plurality. Rule 335 uses the whole recorded form; it does not substitute the
  base, infer a general productive rule, or add ownership, behavior, camp, source, or event content.
- `Murral` at 20999-21009 is explicitly the Yalanji tree-kangaroo form; the prose names Nyungkul `jarrabina`.
  Only Yalanji `murral` enters. Dialect substitution and a generated equivalence statement remain closed.
- `Jungarr` at 10882-10892 is marsupial native cat, with quoll in commentary. The conservative source label is
  retained; no modern taxonomic identity, size, fierceness, predation, branch/nest, night, or event claim enters.
- `Jayju` at 8602-8610 is kangaroo rat. Burrow, sand/grass habitat, hiding, day/night activity, feeding, and prior
  events remain closed.
- `Ngumbi` at 23562-23572 is little spotted bandicoot. The established conservative English label `ngumbi
  bandicoot` avoids turning size or spots into a separate predication; burrowing, habitat, hunting, cooking, food,
  and events remain closed.
- `Mali` at 17566-17577 is a small-bat noun. Patz lines 5946-5956 independently use homophonous `mali` for a
  former-possession particle/suffix/clitic. The bat noun and grammatical homonym remain distinct.
- `Kukur` at 15002-15010 is rat. Patz lines 1657-1659 and 1728-1730 independently show the same root in potent
  case examples `kukur-uku` and `kukur-undu`; those examples support lexical identity but do not license target
  case in Rule 335.
- `Murramu` at 21010-21020 is dingo and explicitly lists `ngamu-murramu` as a synonym. Rule 335 uses exact bare
  `murramu` and generates no synonym relation, decomposition, inflected `murramungku`, behavior, or event.
- `Darrba` at 5306-5315 is grass wallaby. Nearby `darra` is the adjective 'narrow, too small'; the two heads remain
  distinct. Grass wallaby is a lexical label, not a new habitat or feeding proposition.
- `Yawa` at 29634-29642 is possum. Nearby `yawarr` at 29643-29650 is a palm noun and remains distinct. Tree/hollow
  habitat, climbing, night activity, eye-shine, hunting, food, fur use, and rich prior events remain closed.

## Source readback

- Patz line 1476 includes fauna among noun referents. Lines 2577-2586 source bare nominative `ngayu`, `yundu`,
  `nyulu`, `bula`, and established third-plural `jana`; 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`.
- Fresh exact target search found no bare selected mammal occurrence in Patz. It found inflected rat-root `kukur`
  at lines 1659 and 1730 and five occurrences of homophonous former-possession `mali` in the section at 5946-5956.
  These are recorded as lexical/case and homonym evidence, not copied into synthetic event content.
- Existing corpus rows for every target were read back. They include hunting, spearing, sleeping, canopy, burrow,
  habitat, feeding, predation, catching, cooking, food, tracking, calls, eye-shine, fur, and cultural-practice
  material. Those historical claims are neither source licenses for this batch nor ingredients in its English.

## Construction-gap and collision audit

- An exact SQLite matrix checked five selected pronouns x ten targets x both `yaluy`/`yinyay` values: all 100
  possible bare-target four-token surfaces ending `nyajin` were absent. This is the precise Rule 335 gap.
- One older row contains inflected `murramungku` as dingo A and, in a separate clause, `ngayu ... nyajin`.
  It is not a bare-target four-token perception cell. It was retained and documented; Rule 335 does not claim that
  `murramu` has never co-occurred anywhere with `nyajin`.
- Both candidate 50-row deictic orientations are internally unique and have zero exact corpus collisions. Before
  banking, `yaluy` has 4,242 rows and `yinyay` has 4,444, a gap of 202. The selected three-here/two-there layout
  projects 192; inversion projects 212. Balance is secondary to source licensing and collision freedom.

## Preflight

- Verified before banking: 18,897 / 20,000; 130,947 Kuku words; 1,103 remaining.
- Target coverage: `kaya-kaya` 5, `murral` 9, `jungarr` 27, `jayju` 28, `ngumbi` 28, `mali` 30,
  `kukur` 31, `murramu` 54, `darrba` 56, and `yawa` 59.
- Support coverage: `ngayu` 1,441, `yundu` 1,037, `nyulu` 712, `bula` 508, `jana` 1,213,
  `yaluy` 4,242, `yinyay` 4,444, and `nyajin` 1,800.
- Every intended row must pass the production linter without a new exception. All 50 Kuku and English surfaces
  must be internally unique; all selected and inverse Kuku surfaces must remain collision-free.

## Planned rows

1. `Ngayu kaya-kaya yaluy nyajin.`
2. `Ngayu murral yaluy nyajin.`
3. `Ngayu jungarr yaluy nyajin.`
4. `Ngayu jayju yaluy nyajin.`
5. `Ngayu ngumbi yaluy nyajin.`
6. `Ngayu mali yaluy nyajin.`
7. `Ngayu kukur yaluy nyajin.`
8. `Ngayu murramu yaluy nyajin.`
9. `Ngayu darrba yaluy nyajin.`
10. `Ngayu yawa yaluy nyajin.`
11. `Yundu kaya-kaya yinyay nyajin.`
12. `Yundu murral yinyay nyajin.`
13. `Yundu jungarr yinyay nyajin.`
14. `Yundu jayju yinyay nyajin.`
15. `Yundu ngumbi yinyay nyajin.`
16. `Yundu mali yinyay nyajin.`
17. `Yundu kukur yinyay nyajin.`
18. `Yundu murramu yinyay nyajin.`
19. `Yundu darrba yinyay nyajin.`
20. `Yundu yawa yinyay nyajin.`
21. `Nyulu kaya-kaya yaluy nyajin.`
22. `Nyulu murral yaluy nyajin.`
23. `Nyulu jungarr yaluy nyajin.`
24. `Nyulu jayju yaluy nyajin.`
25. `Nyulu ngumbi yaluy nyajin.`
26. `Nyulu mali yaluy nyajin.`
27. `Nyulu kukur yaluy nyajin.`
28. `Nyulu murramu yaluy nyajin.`
29. `Nyulu darrba yaluy nyajin.`
30. `Nyulu yawa yaluy nyajin.`
31. `Bula kaya-kaya yinyay nyajin.`
32. `Bula murral yinyay nyajin.`
33. `Bula jungarr yinyay nyajin.`
34. `Bula jayju yinyay nyajin.`
35. `Bula ngumbi yinyay nyajin.`
36. `Bula mali yinyay nyajin.`
37. `Bula kukur yinyay nyajin.`
38. `Bula murramu yinyay nyajin.`
39. `Bula darrba yinyay nyajin.`
40. `Bula yawa yinyay nyajin.`
41. `Jana kaya-kaya yaluy nyajin.`
42. `Jana murral yaluy nyajin.`
43. `Jana jungarr yaluy nyajin.`
44. `Jana jayju yaluy nyajin.`
45. `Jana ngumbi yaluy nyajin.`
46. `Jana mali yaluy nyajin.`
47. `Jana kukur yaluy nyajin.`
48. `Jana murramu yaluy nyajin.`
49. `Jana darrba yaluy nyajin.`
50. `Jana yawa yaluy nyajin.`

## Guardrails

- Bare nominative singular/third-person pronoun A and bare absolutive mammal target O; fixed Yalanji
  `yaluy`/`yinyay` and dictionary-form past `nyajin`.
- Exact selected head and conservative referential label only. No dialect substitution, homonym merger, synonym
  generation, target case, free-base/productive morphology, body/property, ecology, habitat, behavior, hunting,
  food/use, source, possession, cultural role, or event is added.
- `Kaya-kaya` remains one exact plural dog head. `Murral` remains Yalanji without generated `jarrabina`
  equivalence. `Mali` remains the bat noun, not former possession. `Kukur` remains bare, not potent case.
  `Murramu` remains bare and is not changed to `ngamu-murramu` or `murramungku`.
- `Darrba` remains the wallaby noun, not `darra`; `yawa` remains possum, not palm `yawarr`. English species
  labels do not license separate size, colour, body, habitat, or behavior predications.
- No nonpast `nyajil`, purposive `nyaji-nka`, reduplicated perception, hearing/smell compound, target or
  demonstrative case, pronoun case, Nyungkul support, or carried 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.
- Recheck structured dictionary metadata, Patz target/homonym evidence, all 100 four-token grid cells, both
  orientation collisions, target/support coverage, baseline, production-linter probes, and whole-corpus lint.
- 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; integrated final audit.

## Closeout

- Structured YAML verification confirmed ten exact selected records, one per head, all noun-typed,
  `fauna-mammal`, and non-loan. Direct dictionary readback and candidate screening retained exact noun senses and
  rejected undefined, duplicate-head, post-contact, dialect-only, mixed-sense, and collision-bearing alternatives.
- Patz readback confirmed inflected rat-root `kukur` at lines 1659/1730 and homophonous former-possession `mali`
  at 5946-5956. The Rule 335 syntax selects bare rat and bat noun O; no potent case or possession reading entered.
- The complete 100-cell exact matrix returned zero prior bare-target four-token selected-pronoun surfaces ending
  `nyajin`. One historical sentence with inflected `murramungku` and a separate `ngayu ... nyajin` clause was
  preserved and logged, so the closeout asserts only the exact construction gap actually measured.
- Both 50-surface deictic orientations were internally unique and collision-free. The selected
  three-`yaluy`/two-`yinyay` layout reduced the support gap from 202 to 192; inversion would have produced 212.
- Final static inventory passed before banking: 50 explicit `row(...)` calls in one literal AST list, sequential
  1-50; 35 explicit lessons; 18 lexeme/source records; five review lenses; no runtime sentence generator; 50
  unique Kuku surfaces and 50 unique English surfaces; all 50 production-linter probes clean.
- Banked all 50 rows as `under_review`. Whole-corpus pre-close lint scanned 18,947 rows with zero issues while the
  verified count remained 18,897. Field-for-field SQLite readback matched all 50 script rows, sentence metadata,
  and batch metadata exactly.
- Case-folded punctuation-preserving exact duplicate scan returned zero groups. The terminal-punctuation-stripped
  diagnostic retained six legitimate historical statement/question/exclamation contrast groups; Batch 377 added
  none.
- Manual five-lens review passed all 250 morphology, lexicon, syntax, fidelity, and register judgments. Review
  retained bare nominative A, bare mammal absolutive O, fixed Yalanji locals and past `nyajin`, exact dictionary
  heads, literal English, and neutral register. Dialect substitution, homonym merger, synonym generation,
  free-base/productive morphology, target case, ecology, habitat, behavior, hunting, tracking, catching, killing,
  food/use, source, possession, property, cultural-event, 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,897 -> 18,947; Kuku surface-word count moved 130,947 -> 131,147. Post-close lint scanned 18,947 rows
  with zero issues. Statuses are 18,036 accepted, 911 revised, and zero pending, draft, or under-review rows.
- Target coverage moved `kaya-kaya` 5->10, `murral` 9->14, `jungarr` 27->32, `jayju` 28->33,
  `ngumbi` 28->33, `mali` 30->35, `kukur` 31->36, `murramu` 54->59, `darrba` 56->61,
  and `yawa` 59->64. Support coverage moved `ngayu` 1441->1451, `yundu` 1037->1047,
  `nyulu` 712->722, `bula` 508->518, `jana` 1213->1223, `yaluy` 4242->4272,
  `yinyay` 4444->4464, and `nyajin` 1800->1850.
- Exact Kuku duplicate groups remain zero; the six historical punctuation contrasts remain unchanged;
  `PRAGMA integrity_check` is `ok`; foreign-key violations are zero.
- Training export refreshed to 18,947 rows: 15,898 train, 1,530 dev, and 1,519 synthtest. Manifest totals and
  JSONL line counts agree.
- All four canonical living books were updated to Batch 377 / Rule 335 / 18,947. The operator handoff advances to
  Rule 336, names `bank_378.py` and `close_378.py`, and adds carry-forward trap `(ef)` for Rule 335. Rendering
  produced byte-identical public Markdown copies, current self-contained HTML with TOCs, and all eight index links.
- 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 eight
  index links are present; all four live Markdown files are byte-identical to local renders. Cloudflare injects
  exactly one Web Analytics beacon into each HTML response; after removing that edge-only script, all four live
  HTML pages are whitespace-normalized identical to local and carry Batch 377 / Rule 335 / 18,947.
- Structured process events 4168-4188 record source readback, lexical boundaries, exact construction-gap proof,
  deictic balance, coverage, duplicate preflight, static guards, banking, exact readback, duplicate diagnostics,
  under-review lint, five-lens review detail, lessons, lexeme logs, close, export, source-book update, local render,
  live publication, and final audit. The integrated final audit passed all 11 source, SQLite, AST/static, lint,
  duplicate, coverage, export, canonical-book, local-render, process-ledger, and live-HTTP/content groups.

## Handoff

If accepted, continue from **18,947 / 20,000**, with **1,053** remaining. Rule 336 requires a fresh source pass.
