# Batch 150 Process Log - Demonstratives, Spatial Deixis, And Place-Reference Paradigms

Corpus: `claude-synthetic-v1-2026-07-02`  
Batch: `batch-150`  
Rule: 108, construction batch  
Start checkpoint: 7,547 / 20,000 accepted or revised sentences, lint green.

## Goal

Add 50 hand-authored rows for Kuku Yalanji demonstrative pronouns, local demonstratives, case-marked suppletive
demonstrative forms, human plural `-rriny`, local inhabitant `-arra`, and `wawu-` plus demonstrative ablative forms.

This batch follows the Rule 107 material-culture lexical batch. The target is grammar-led deictic control, not vague
English "this/that" filler. No sentence content is generated by script. `bank_150.py` stores hand-authored rows, runs
static and cross-corpus duplicate checks, and records source/process metadata in `process_events`.

## Process Storage Policy

This batch stores the process as first-class data:

- Human-readable narrative log: this file.
- Structured SQLite ledger: `process_events` in `synthetic.db`.
- Reproducible artifacts: `batch_scripts/bank_150.py` and `batch_scripts/close_150.py`.
- Review artifacts: 250 five-lens review rows at close, plus lessons and lexeme/source logs.
- Live books: operator guide, grammar cheatsheet, and dictionary errata updated and rendered after close.

The audit trail should let a later linguist inspect source decisions, dialect controls, duplicate preflight, paradigm
coverage, local-vs-pronominal demonstrative choices, lint results, manual review, close, export, and live-doc
verification.

## Source Pass

Primary source checks before banking:

- Operator handoff:
  - Next rule: demonstratives, spatial deixis, and place-reference paradigms.
  - Keep grammar-led: `yinya`, `yanyu`, `yaluy`, `yinyay`, `yinya-muny`, locative/ablative/dative forms,
    "there/here/that" contrast, ordinary noun phrases, and location predicates.
- Living-book reread:
  - Rule 47 demonstratives and spatial deixis.
  - Rules 92, 94, 104, 106, and 107.
  - Errata note that word-final `-rriny` is legitimate for human plural demonstratives.
- Patz grammar checks:
  - §3.7 Tables 3.12-3.14: Yalanji `yanyu`, `yinya`, `yaluy`, `yinyay`; suppletive case paradigms; local
    demonstratives; human plural `-rriny`; local `-arra` inhabitants.
  - ex.29 `yinya jalbu` apposition.
  - ex.90 `yinya-nji kamu-baka-nji`.
  - ex.138 `yalu-ngku jalbu-ngku`.
  - ex.139 `yinyay-anka karrkay-anka`.
  - ex.140 `yinyay-anda kaban daya`.
  - ex.141 `yaluy-muny wanarri-y`.
  - ex.142 `jarruka wubul warrmba-bunga-ny yinyay-mba`.
  - ex.143 `yinyay-mba bundanda-ny, kulji-nga`.
  - §4.1.1(d) demonstrative pronouns in noun phrases: `yinya`, `yinya karrkay/karrkay yinya`, `yanyu dikal`.
  - nominal sentence examples ex.293-295.
  - §5.2.1.2 narrative `yanyu` introduction and `yinya` refocus/maintenance.
  - ex.636 `wawu-yinya-muny`.
  - text line 30 `yinyay-mba-bi kada-ny bubu-ngu`.
- Dictionary/grammar cross-checks:
  - ordinary nouns and verbs used in the rows: `jalbu`, `karrkay`, `nyajil`, `bijarril`, `bada`, `janjil`, `dikal`,
    `wakuka`, `janay`, `kalka`, `wunay`, `mayi`, `ngulkurr`, `marra`, `kaya`, `baykal`, `dingkar`, `dajil`,
    `nubil`, `kaban`, `babajiy`, `balji`, `kadabal`, `kaday`, `bayan`, `juku`, `wanarri-y`, `jarruka`, `wubul`,
    `warrmba-bungal`, `bunday`, `kulji`, `bubu`, `nyunbay`, `kamu-baka`, `balbi`, `warru`, `jawun`, `jalun`,
    `nukal`, `kuyu`, `damal`, `wanjarrinya`, `karangkal`, `yalbay`, `binal-ma-l`, `mala-kuyu`, `jungkalu`,
    and `kami`.

## Construction Decisions

- Rows 1-10 cover absolutive demonstrative pronouns, noun-phrase order, apposition, and nominal sentences.
- Rows 11-22 cover case-agreeing demonstrative pronouns in ERG:pt, DAT/DAT:pt, LOC:pt, and POSS forms.
- Rows 23-30 cover ablative forms and local demonstratives.
- Rows 31-35 cover COMIT and ABESS forms, with the ABESS rows deliberately sparse and low-confidence.
- Rows 36-43 cover human plural `-rriny` and local inhabitant `-arra`.
- Rows 44-50 cover local demonstratives in questions, `wawu-` plus ablative, narrative/person predicates, and a
  source nominal-sentence row.

## Rejected Or Risk-Controlled Forms

- Exact duplicate preflight rejected three otherwise source-useful candidates:
  - `Wanjarrinya bama yinyay bundanday?` already exists in `batch-130.38`.
  - `Juku wubul yinyay janjanay.` already exists in `batch-001.42`.
  - `Nyulu yinya mala-minya.` already exists in `batch-147.09`.
- Nyungkul forms `yanya`, `yalay`, and `yalarriny` were read as source contrasts but blocked from this Yalanji batch.
- `yaluymbu` was avoided because Patz says Yalanji speakers often reject it in favor of local `yaluy`.
- Human plural `-rriny` forms are used only as ABS human referents.
- Abessive forms `yalamundu` and `yinyamundu` are table-sourced but not example-rich; they are used only twice and
  marked lower confidence.
- `kaban` is dictionary paper/book. Patz translates the source row as letter, but Batch 150 English uses "paper" to
  stay within dictionary scope.
- `wawu-` is used only with ablative demonstrative forms.

## Verification And Closeout

Planned commands from the corpus root:

```text
python3 -m py_compile batch_scripts/bank_150.py batch_scripts/close_150.py
python3 batch_scripts/bank_150.py
python3 lint_corpus.py
python3 batch_scripts/close_150.py
python3 lint_corpus.py
python3 export_training.py
```

Actual verification will be appended below during execution.

## Actual Verification

Executed from the corpus root on 2026-07-07:

```text
python3 -m py_compile batch_scripts/bank_150.py batch_scripts/close_150.py
PYTHONPATH=batch_scripts python3 - <<'PY'
from bank_150 import scan_static
issues = scan_static()
print(f'static issues: {len(issues)}')
PY
```

Result:

```text
compile clean
static issues: 0
```

Manual exact-surface candidate preflight before writing the final script found three duplicates and replaced them:

```text
44 DUP batch-130.38 Wanjarrinya bama yinyay bundanday?
45 DUP batch-001.42 Juku wubul yinyay janjanay.
49 DUP batch-147.09 Nyulu yinya mala-minya.
```

Final candidate preflight:

```text
checked 50
```

Bank and under-review lint:

```text
python3 batch_scripts/bank_150.py
python3 lint_corpus.py
```

Result:

```text
banked batch-150: 50 rows under_review; avg Kuku words/row=3.90

lint: 7597 rows scanned, 0 issues flagged
GOAL METRIC: 7547 / 20000 verified sentences  (89609 Kuku words)
```

Close:

```text
python3 batch_scripts/close_150.py
```

Result:

```text
closed batch-150: 50 accepted rows, 250 review passes, 14 lessons, 29 lexeme/source-log rows, 7 process events, verified corpus=7597
```

Post-close lint:

```text
python3 lint_corpus.py
```

Result:

```text
lint: 7597 rows scanned, 0 issues flagged
GOAL METRIC: 7597 / 20000 verified sentences  (89801 Kuku words)
```

Export refresh:

```text
python3 export_training.py
```

Result:

```text
Exported 7597 rows
train=6369
dev=606
synthtest=622
top constructions: ergative=1759, negation=1625, purposive=1395, subordinate=1096, ablative=978
```

Live docs were rendered from the program root:

```text
./render-docs.sh
```

Marker checks on the rendered disk artifacts confirmed the current corpus and handoff state:

```text
operator-guide.md/html: 7,597; Rules 1-108; Rule 109; bank_151.py; close_151.py
grammar-cheatsheet.md/html: Rule 108 - Demonstratives; Lint GREEN 7597
dictionary-errata.md/html: Batch-150; Lint GREEN 7597
```

Local Caddy route verification with `--resolve mobtranslate.com:443:127.0.0.1`:

```text
LOCAL /docs                              301 https://mobtranslate.com/docs/
LOCAL /docs/                             200
LOCAL /docs/operator-guide.html          200
LOCAL /docs/operator-guide.md            200
LOCAL /docs/grammar-cheatsheet.html      200
LOCAL /docs/grammar-cheatsheet.md        200
LOCAL /docs/dictionary-errata.html       200
LOCAL /docs/dictionary-errata.md         200
LOCAL /docs/sample-pages.html            200
LOCAL /docs/sample-pages.md              200
```

Public route verification through `https://mobtranslate.com`:

```text
PUBLIC /docs                             200 https://mobtranslate.com/docs/
PUBLIC /docs/                            200 https://mobtranslate.com/docs/
PUBLIC /docs/operator-guide.html         200 https://mobtranslate.com/docs/operator-guide.html
PUBLIC /docs/operator-guide.md           200 https://mobtranslate.com/docs/operator-guide.md
PUBLIC /docs/grammar-cheatsheet.html     200 https://mobtranslate.com/docs/grammar-cheatsheet.html
PUBLIC /docs/grammar-cheatsheet.md       200 https://mobtranslate.com/docs/grammar-cheatsheet.md
PUBLIC /docs/dictionary-errata.html      200 https://mobtranslate.com/docs/dictionary-errata.html
PUBLIC /docs/dictionary-errata.md        200 https://mobtranslate.com/docs/dictionary-errata.md
PUBLIC /docs/sample-pages.html           200 https://mobtranslate.com/docs/sample-pages.html
PUBLIC /docs/sample-pages.md             200 https://mobtranslate.com/docs/sample-pages.md
```

No-follow header checks:

```text
/docs     HTTP/2 301  location: /docs/
/docs/    HTTP/2 200
```

Body-marker checks on both local and public HTML confirmed:

```text
7,597 / 20,000
Rules 1-108
Rule 109
bank_151.py
Rule 108 - Demonstratives
Batch-150
Lint GREEN 7597
```

Structured process ledger rows written for Batch 150: source pass, risk controls, duplicate preflight, bank success,
row inventory, compile success, under-review lint, five-lens pass, close success, post-close lint, export refresh,
and live-docs-verified (`process_event` 113).
