# Batch 396 process log - Rule 354 linter-clean fish set-F singular/third past perception after Rule 353

## Scope and source audit

Rule 354 opens a fresh fish set with five Patz-controlled singular/third-person nominative participants, bare
fish objects, one Yalanji local, and past `nyajin`. The ten heads are `kalngkan`, `mangkurr-mangkurr`, `dijarr`,
`julaji`, `mawul`, `balarri`, `bayil`, `dalmbal`, `barrbal`, and `jalkay`. Each has exactly two non-loan noun
cards in dictionary domain `fauna-fish`; the corresponding senses are small mullet, garfish, freshwater perch,
freshwater catfish, freshwater eel, queenfish, jungle perch, flathead, black bream, and salmon. Exact Patz scans
return zero for every head, while Patz independently licenses the participant, local, past-tense, and perception
frame. Source hashes remain dictionary `b575ab035ecc60f09f7bfc5537116555f3d290869fe75b2edf0fd8db60fe1b37`
and Patz `5f21305f1fca9ee2cb64668e18156d1f322e3bd9e59850fda662bf0673714153`.

## Matrix and baseline

- All 200 participant x target x deictic past-perception cells were absent before selection.
- Frames are `Ngayu...yaluy`, `Yundu...yinyay`, `Nyulu...yaluy`, `Bula...yinyay`, and `Jana...yaluy`.
- Baseline is 19,847 verified / 134,747 words / 18,936 accepted + 911 revised, with no open rows; 153 remain.
- Target counts are 5/5/6/6/8/24/21/21/26/26. Supports are `ngayu`1521, `yundu`1117, `nyulu`792,
  `bula`588, `jana`1293, `yaluy`4732, `yinyay`4904, and `nyajin`2750.
- This three-here/two-there orientation changes the deictic gap 172->162; Rule 355 must supply the complement.
- Provisional stop-final `kijukum`, rhotic-palatal `walarrji`, dialect-only heads, and heavily polysemous heads
  remain excluded under the Rule 318 linter/source precedent.
- Source prose about size, comparison, location, dialect, food taboo, taxonomy, synonyms, habitat, capture,
  consumption, migration, possession, source, and events is explicitly outside the sentence meanings.
- Script hashes: bank `ad2a79ce85ec4bbff6c694c2ccb25266e9219da45ce5f3227002016a419f7b73`, close
  `0a90c5cb91226a2446a43086d30cd233a6bc35ee1a9b3374f2fccb5401122c04`.

## Planned rows

1. `Ngayu kalngkan yaluy nyajin.`
2. `Ngayu mangkurr-mangkurr yaluy nyajin.`
3. `Ngayu dijarr yaluy nyajin.`
4. `Ngayu julaji yaluy nyajin.`
5. `Ngayu mawul yaluy nyajin.`
6. `Ngayu balarri yaluy nyajin.`
7. `Ngayu bayil yaluy nyajin.`
8. `Ngayu dalmbal yaluy nyajin.`
9. `Ngayu barrbal yaluy nyajin.`
10. `Ngayu jalkay yaluy nyajin.`
11. `Yundu kalngkan yinyay nyajin.`
12. `Yundu mangkurr-mangkurr yinyay nyajin.`
13. `Yundu dijarr yinyay nyajin.`
14. `Yundu julaji yinyay nyajin.`
15. `Yundu mawul yinyay nyajin.`
16. `Yundu balarri yinyay nyajin.`
17. `Yundu bayil yinyay nyajin.`
18. `Yundu dalmbal yinyay nyajin.`
19. `Yundu barrbal yinyay nyajin.`
20. `Yundu jalkay yinyay nyajin.`
21. `Nyulu kalngkan yaluy nyajin.`
22. `Nyulu mangkurr-mangkurr yaluy nyajin.`
23. `Nyulu dijarr yaluy nyajin.`
24. `Nyulu julaji yaluy nyajin.`
25. `Nyulu mawul yaluy nyajin.`
26. `Nyulu balarri yaluy nyajin.`
27. `Nyulu bayil yaluy nyajin.`
28. `Nyulu dalmbal yaluy nyajin.`
29. `Nyulu barrbal yaluy nyajin.`
30. `Nyulu jalkay yaluy nyajin.`
31. `Bula kalngkan yinyay nyajin.`
32. `Bula mangkurr-mangkurr yinyay nyajin.`
33. `Bula dijarr yinyay nyajin.`
34. `Bula julaji yinyay nyajin.`
35. `Bula mawul yinyay nyajin.`
36. `Bula balarri yinyay nyajin.`
37. `Bula bayil yinyay nyajin.`
38. `Bula dalmbal yinyay nyajin.`
39. `Bula barrbal yinyay nyajin.`
40. `Bula jalkay yinyay nyajin.`
41. `Jana kalngkan yaluy nyajin.`
42. `Jana mangkurr-mangkurr yaluy nyajin.`
43. `Jana dijarr yaluy nyajin.`
44. `Jana julaji yaluy nyajin.`
45. `Jana mawul yaluy nyajin.`
46. `Jana balarri yaluy nyajin.`
47. `Jana bayil yaluy nyajin.`
48. `Jana dalmbal yaluy nyajin.`
49. `Jana barrbal yaluy nyajin.`
50. `Jana jalkay yaluy nyajin.`

## Gates

Fifty literal `row(...)` calls; fixed source hashes; exact two-card/type/domain/non-loan checks; zero-Patz audit;
200-cell absence audit; exact tuple readback; whole-corpus lint; duplicate and SQLite-integrity checks; explicit
five-lens review; 35 lessons; 18 lexeme/source logs; non-destructive close; export parity; four-book render and
live-resource verification.

## Closeout

- Source hashes, two-card/type/domain/non-loan inventories, zero-Patz profile, provisional-head exclusions,
  200-cell absence, AST literal inventory, and all 50 ten-field database tuples passed exactly.
- Whole-corpus lint scanned 19,897 rows with zero issues. Exact Kuku and English-Kuku pair duplicate groups are
  zero; SQLite integrity is `ok`; the foreign-key check is empty.
- The morphology, lexicon, syntax, fidelity, and register lenses each passed 50/50, storing 250 review decisions.
  Thirty-five lessons and 18 lexeme/source logs were entered; no row was deleted or destructively overwritten.
- Verified rows moved 19,847->19,897 and Kuku words 134,747->134,947. Targets moved to
  10/10/11/11/13/29/26/26/31/31; supports moved to `ngayu`1531, `yundu`1127, `nyulu`802, `bula`598,
  `jana`1303, `yaluy`4762, `yinyay`4924, and `nyajin`2800; the deictic gap is 162.
- Export parity is exact at 19,897=16,688/1,599/1,610. Manifest, JSONL line counts, and the five-field database
  multiset agree. All four source books were refreshed and rendered; their raw copies match the canonical Markdown.
- Nine cache-busted live resources returned 200 and matched `public-docs` byte-for-byte. `/docs` returned 301 to
  `/docs/`, and `/docs/` returned 200. Structured evidence runs through process event 4623.

## Handoff

If accepted, continue from **19,897 / 20,000**, with **103** remaining. Rule 355 must use the exact deictic
complement over this same frozen set-F matrix.
