# Batch 143 Process Log - Health, Sickness, Injury, And Recovery

Corpus: `claude-synthetic-v1-2026-07-02`  
Batch: `batch-143`  
Rule: 101, lexical batch  
Start checkpoint: 7,197 / 20,000 accepted or revised sentences, lint green.

## Goal

Add 50 hand-authored rows for health, sickness, injury, soreness, healing, and recovery. The batch is deliberately
short and source-shaped: it trains contrastive lexical frames rather than narrative fluency.

No Kuku content is script-generated. `bank_143.py` stores hand-authored rows, performs static checks, checks exact
cross-corpus duplicate Kuku surfaces, and records process metadata in `process_events`.

## Process Storage Policy

This batch expands the process-preservation record requested by the user:

- Human-readable narrative log: this file.
- Structured SQLite ledger: `process_events` in `synthetic.db` via `batch_scripts/process_ledger.py`.
- Batch scripts as reproducible artifacts: `batch_scripts/bank_143.py` and `batch_scripts/close_143.py`.
- Live books: operator guide, grammar cheatsheet, and dictionary errata updated after close and rendered to `/docs/`.

The ledger records source checks, scoping decisions, command outputs, correction decisions, review events, close
evidence, export evidence, and live-book verification markers with UTC timestamps.

## Source Pass

Primary local source checks before banking:

- Grammar medicine section:
  - Minor ailments: `yangka` green ant juice for fever, colds, stomach upsets; bark/leaves poultices for rheumatic
    pain; severe `rrunyuji`/`murri` doctor material noted but not used because the batch is lexical and avoids
    culturally sensitive doctor/magic treatment rows.
- Grammar examples:
  - Ex.113: `Yilayku nyulu bambay-ma-ny` controls yesterday + become ill.
  - Ex.128: `Yundu wanyurrinji bambay?` controls "What are you ill with?"
  - Ex.167: `Ngayu bambay-ma-ny mayngku kayal nuka-nya` controls causal sickness from eating unripe mangoes.
  - Ex.216: `Nyulu bambay-ma-l-baja` controls getting quite sick.
  - Ex.230: `Nyulu karrkay kalji-l` controls child vomiting.
  - Ex.237/252/393: `bayka-l` bite frames, animal ERG/instrument and conditional hit -> bite.
  - Ex.238: `Nganya bambay-bunga-ny kubarr-da` controls causative sickness by eel meat.
  - Ex.247: `yaka-l` / `yaka-ji-y` with `naybu-bu` controls cut/cut oneself with knife.
  - Ex.249-251: `mili-bu waju-ji-ny` controls stinging-tree/jellyfish burn.
  - Ex.394: `Kaki ngayu ngiki-ji ... yangka dumbarri-l, nuka-l` controls green-ant treatment conditional.
  - Ex.410: `Babi-ngka yangka nuka-l, ngulkurr-ma-nka` controls green-ant treatment to get better.
  - Ex.500: road medicine in case of sickness controls precautionary health frame; batch replaces English `medicine`
    with dictionary `kalbal`.
  - Ex.545: `Babi-ngka yangka daji-ny karrkay-anda ngiki-ji-nda` controls give green ants to child with cough.
  - Ex.556: `Ngayu ngiki-kari, ngulkurr-ma-ny` controls no-cold recovery.
- Dictionary entries:
  - `bambay`, `bambay-baka`, `ngulkurr`, `ngiki`, `ngiki-damaji`, `ngikiji`.
  - `yangka`, `kalbal`, `dukunjaka`, `bangkan`.
  - `baji`, `kaka`, `bajaybajay`, `bangkarr`, `dukul`.
  - Duplicate `baykal`: transitive bite vs intransitive ache/pain.
  - `mili`, `wayjul`, `wayjuji`, `yakal`, `julurril`, `mula`, `kaljil`, `dakwuy`, `wawu-wulay`.
- Living books:
  - `kakawarri-ma-l` get well and `kakawarri-bunga-l` heal are allowed; `warmba` is not a headword and remains
    blocked.
  - `mula-kanga-l` is the bleeding causative; `mula-bunga-l` is explicitly wrong.
  - `baykal` must be disambiguated by argument structure, not by a hand-written synonym table.

## Construction Decisions

- `bambay` rows include simple predicate, inchoative `bambay-ma-l`, degree `-baja`, and causative `bambay-bunga-l`.
- `ngulkurr-ma-l` and `kakawarri-ma-l/-bunga-l` are the only recovery/heal frames.
- `ngiki-ji` and `ngikiji` are used for cough/cold. `ngiki-kari` is used for recovery from cold.
- Remedies are concrete and source-controlled: `yangka`, `kalbal`, `dukunjaka`, `bangkan`.
- Pain terms are kept distinct:
  - `baji`: a sore.
  - `kaka`: sore/achey/pain.
  - `bajaybajay`: painful.
- `baykal` is intentionally represented in both frames:
  - Transitive bite: animal A + patient O + `bayka-ny/-l`.
  - Intransitive ache: body-part/state frame + `bayka-l`.
- Burn rows use `mili-bu waju-ny` and `mili-bu waju-ji-ny`.
- Cut rows preserve `naybu-bu` as source instrument and mark the loan in `loans_used`.
- Bleed rows use `mula-kanga-l`, not `mula-bunga-l`.
- Direct speech appears only where it carries health content: "what are you ill with?" and "my head aches."

## Intended Row Inventory

The intended rows are in `batch_scripts/bank_143.py`. They are grouped as follows:

1. Rows 1-10: sick/well states, inchoative sickness, causative sickness, recovery.
2. Rows 11-20: cold/cough, green ant treatment, bush medicine, remedy for sores, washing sores.
3. Rows 21-30: pain, sore, ache, head-ache, and healing/recovery.
4. Rows 31-42: bite, burn, cut, blood, washing blood, and induced bleeding.
5. Rows 43-48: vomiting, exhaustion, hunger, giving food/water to a sick child.
6. Rows 49-50: health-related direct question and direct quote.

## Rejected Or Risk-Controlled Forms

- No `warmba` for heal.
- No English `medicine` or `hospital` loan in new rows.
- No `rrunyuji`/`murri` doctor sentences in this lexical batch.
- No `dukal`; source-like head typo is normalized to dictionary `dukul`.
- No `kalbali` confusion with `kalbal`.
- No `kujil` as "care for"; dictionary gives keep/hold/wait.
- No `bada`, `karrbal`, or other plausible but irrelevant lexical drift.
- No `mula-bunga-l`; use only source-backed `mula-kanga-l`.
- No model-generated or older long-form corpus rows used as source authority.

## Verification And Closeout

All commands below were run from
`/mnt/donto-data/donto-resources/research/translation-training/kuku-yalanji-runpod-2026-06-30/synthetic/claude-synthetic-v1-2026-07-02`
unless otherwise stated.

1. Compiled the bank and close scripts:
   - `python3 -m py_compile batch_scripts/bank_143.py batch_scripts/close_143.py`
2. First bank attempt stopped on exact duplicate protection:
   - `batch-143.13` duplicated `batch-072.14`: `Kaki ngayu ngiki-ji, ngayu yangka dumbarril, nukal.`
   - `batch-143.33` duplicated `batch-126.12`: `Kaya-ngka karrkay kari baykan, karrkay ngulkurr.`
   - Corrections: row 13 varied actor to `nyulu`; row 33 varied bite agent to `jarba-bu`.
3. Banked with `python3 batch_scripts/bank_143.py`.
   - Output: `banked batch-143: 50 rows under_review; avg Kuku words/row=3.48`.
   - Cross-corpus exact duplicate check passed before insertion.
4. Full lint while under review:
   - First pass flagged dictionary headword `bajaybajay` as productive unhyphenated reduplication in rows 22 and 23.
   - Source re-check confirmed dictionary `bajaybajay` solid headword; `lint_corpus.py` `SOLID_REDUP` whitelist was
     updated with that source note.
   - Second pass output: `lint: 7247 rows scanned, 0 issues flagged`.
   - Goal metric remained `7197 / 20000 verified sentences` because the batch was still `under_review`.
5. Manual five-lens review:
   - Morphology: checked inchoative `bambay-ma-l`, causative `bambay-bunga-l`, `ngiki-ji`, `ngiki-kari`,
     `ngulkurr-ma-l`, `kakawarri-ma-l/-bunga-l`, `mili-bu waju-ji-ny`, `yaka-ji-y`, and `mula-kanga-l`.
   - Lexicon: retained only source-backed health words; rejected `warmba`, `dukal`, `kalbali`, `kujil` as care, and
     English `medicine`/`hospital`.
   - Syntax: kept `baykal` bite and ache frames distinct; preserved instrument `naybu-bu`; kept locative sick-child
     recipient frames source-shaped.
   - Fidelity: English was narrowed to match available Kuku; no modern clinical abstraction was imported.
   - Register: deliberately short, everyday, source-shaped health rows rather than long model-like prose.
6. Closed with `python3 batch_scripts/close_143.py`.
   - Output: `closed batch-143: 50 accepted rows, 250 review passes, 16 lessons, 24 lexeme/source-log rows, 7 process events, verified corpus=7247`.
7. Post-close database audit:
   - Global statuses: `accepted=6337`, `revised=910`.
   - Batch 143 reviews: 250.
   - Batch 143 lessons: 16.
   - Lexeme/source-log rows for `batch-143-verify`: 24.
8. Post-close lint:
   - `python3 lint_corpus.py`
   - Output: `lint: 7247 rows scanned, 0 issues flagged`.
   - Goal metric: `7247 / 20000 verified sentences (88652 Kuku words)`.
9. Refreshed export with `python3 export_training.py`.
   - Total exported rows: 7,247.
   - Split: train 6,067; dev 586; synthtest 594.
   - Highest construction tags: ergative 1,689; negation 1,612; purposive 1,386; subordinate 1,092; ablative 965;
     comitative 716; question 594; causative 589; imperative 498; inchoative 377.
10. Process ledger after live-doc verification:
    - `process_events` rows for Batch 143: 10 including live-doc verification.
    - Event classes: source pass, risk controls, bank success, row inventory, under-review lint, five-lens pass,
      close success, post-close lint, and export refresh.

## Live Book Update

Updated these source files:

- `reports/KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md`
  - Current line now says `7,247 / 20,000 verified sentences (Rules 1-101)`.
  - Coverage now includes health/sickness/injury/soreness/healing/recovery as Rule 101.
  - The next handoff now points to Rule 102, construction: body-part and bodily-state argument structure.
  - The next script names are `bank_144.py` and `close_144.py`.
- `reports/kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md`
  - Added Rule 101 with sick/well/recovery frames, cold/cough/remedy terms, pain/sore/ache contrasts, bite-vs-ache
    `baykal`, burn/cut/blood/washing frames, secondary body states, and Batch 143 process traps.
- `reports/kuku-yalanji-dictionary-errata-2026-07-02.md`
  - Added Batch-143 verified inventory and watchlist decisions.
  - Logged `bajaybajay` solid-headword whitelist, `dukul` over `dukal`, `kalbal` vs `kalbali`, `mula-kanga-l`, no
    `warmba` for heal, no `kujil` as medical care, no modern medicine/hospital import, and no doctor rows in this
    ordinary lexical batch.

Rendered the public docs from the program root
`/mnt/donto-data/donto-resources/research/translation-training/kuku-yalanji-runpod-2026-06-30`:

```text
./render-docs.sh
  rendered operator-guide.html      <- KUKU-YALANJI-CORPUS-OPERATOR-GUIDE.md
  rendered sample-pages.html        <- SAMPLE-PRODUCTION-PAGES.md
  rendered grammar-cheatsheet.html  <- kuku-yalanji-mega-grammar-cheatsheet-2026-07-02.md
  rendered dictionary-errata.html   <- kuku-yalanji-dictionary-errata-2026-07-02.md
  wrote index.html
```

Generated-file marker checks in `public-docs/` passed for:

- Operator HTML/MD: `7,247 / 20,000`, `Rule 101`, `Rule 102`, `bank_144.py`, `close_144.py`, `process_events`.
- Grammar HTML/MD: `Rule 101`, `batch-143`, `Lint GREEN 7247`, `bajaybajay`, `mula-kanga-l`, `baykal`, `dukunjaka`.
- Errata HTML/MD: `Batch-143`, `Lint GREEN 7247`, `bajaybajay`, `kalbal`, `kalbali`, `mula-kanga-l`, `No model-output authority`, `kujil`.

Local Caddy route check using `--resolve mobtranslate.com:443:127.0.0.1` and `-k` for the local TLS chain:

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

Public edge check at `https://mobtranslate.com/docs/` with a browser user-agent:

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

Public body marker checks passed for:

- Operator MD/HTML: `7,247 / 20,000`, `Rule 102`, `bank_144.py`.
- Grammar MD/HTML: `Rule 101`, `batch-143`, `Lint GREEN 7247`, `bajaybajay`.
- Errata MD/HTML: `Batch-143`, `Lint GREEN 7247`, `No model-output authority`, `mula-kanga-l`.
