# Batch 277 - Rule 235 Process Log

Theme: body-part construction consolidation after Rule 234.

Starting state:
- Verified sentences before batch: 13,897 / 20,000.
- Under review before batch: 0.
- Latest completed rule before this batch: Rule 234 / batch-276, third body-part reference lexical expansion.
- Process ledger before banking: events complete through 2189.

Construction rationale:
- Rule 235 changes only the support frame for the ten Rule 234 body-part heads. It does not admit any new body-part
  noun, any new target sense, or any body-part case/possession/body-state construction.
- The batch deliberately mirrors the conservative consolidation pattern used in earlier reference fields: one
  postposed-demonstrative band and four pronoun/perception bands.
- This is safer than opening a fresh semantic field because all ten target nouns were just source-checked in Rule 234
  and the new grammar support is already established in Patz and prior accepted corpus law.

Source basis:
- Patz section 3.1 says nouns refer to corporeal objects, including external and internal body parts.
- Patz section 3.5 gives bare nominative pronouns including `yundu`, `nyulu`, `ngana`, and `jana`.
- Patz section 3.7 sources `yinya` "that/those", `yaluy` "here", and `yinyay` "there"; the batch uses them bare.
- Patz section 3.8.3.2 lists `nyaji-l` as "see"; the accepted corpus convention supports `nyajil` nonpast and
  `nyajin` past perception surfaces.
- Dictionary entries rechecked directly for all ten target heads: `bandin` love handles, `bari` chin, `bibar` shin,
  `birri` fingernail, `jiba` liver, `jandal` leg, `jibar` stomach, `kangkul` cheek, `kuwinyu` posterior, and
  `waba` thigh.

Selected target heads:
- `bandin` - love handles; lexical/contextual plural only, no number morphology or body-state row.
- `bari` - chin; no jaw alternation row, injury row, or possession row.
- `bibar` - shin; no ankle alternation row, walking row, pain row, or possession row.
- `birri` - fingernail; no toenail alternation row, cutting row, scratching row, or possession row.
- `jiba` - liver; no insides/guts, emotion, jiba-compound, butchery, eating, or possession row.
- `jandal` - leg; no walking, movement, injury, or possession row.
- `jibar` - stomach; no locational `jibarr` hinterland drift, emotion, sickness, eating, or possession row.
- `kangkul` - cheek; no `kangku` valley drift, `kangkul kulbal` slap row, face-state row, injury row, or contact row.
- `kuwinyu` - posterior; dictionary marks it not rude, but no rude-register expansion or body-state row is opened.
- `waba` - thigh; no hip alternation row, movement row, injury row, or possession row.

Planned frame grid:
- Rows 1-10: `TARGET yinya yaluy`.
- Rows 11-20: `Yundu TARGET yinyay nyajil`.
- Rows 21-30: `Nyulu TARGET yaluy nyajil`.
- Rows 31-40: `Ngana TARGET yinyay nyajil`.
- Rows 41-50: `Jana TARGET yaluy nyajin`.

Preflight:
- Exact planned-surface collision scan: 0 accepted/revised/under-review collisions across all 50 rows.
- Corpus coverage before banking: `bandin` 5, `bari` 9, `bibar` 15, `birri` 13, `jiba` 43, `jandal` 26, `jibar` 43,
  `kangkul` 9, `kuwinyu` 5, and `waba` 7 accepted/revised token hits.
- Static guards in `bank_277.py`: 50 explicit hand-authored rows; exactly one Rule 235 target noun per row; no loans;
  no target morphology; no denied previous body-part target or rejected candidate; no pronoun case; no demonstrative
  case; no perception compounds; no possession/body-state/medical/ritual/animal/movement/event English; five sourced
  construction frame bands.

Closeout requirements:
- Run `python3 -m py_compile batch_scripts/bank_277.py batch_scripts/close_277.py`.
- Run `python3 batch_scripts/bank_277.py`.
- Run whole-corpus lint while rows are under review.
- Run `python3 batch_scripts/close_277.py` after five-lens review.
- Run whole-corpus lint again.
- Run `python3 export_training.py`.
- Update all living books with Rule 235 and rerender docs with `./render-docs.sh`.
- Verify `/docs`, `/docs/`, all four rendered HTML docs, and all four raw Markdown docs from `mobtranslate.com`.

Execution closeout:
- `bank_277.py` and `close_277.py` compiled cleanly before banking.
- First bank attempt exposed an insert-order bug: `0.86` was inserted into `status` and `under_review` into
  `confidence`. `close_277.py` refused to proceed because it found 0 under-review rows. No rows were accepted.
- Patched `bank_277.py` to insert `status='under_review'` before `confidence`, recompiled, and recorded the
  correction as process event 2195.
- Corrected `bank_277.py` re-banked the same 50 explicit hand-authored rows as `under_review`.
- Under-review lint was GREEN: 13,947 rows scanned, 0 issues flagged. The pre-close goal metric remained 13,897 /
  20,000 verified sentences because the new rows were still under review.
- Five-lens review passed across grammaticality, lexical sourcing, semantic faithfulness, negative-space traps, and
  duplicate/corpus fit.
- `close_277.py` accepted all 50 rows and wrote 250 review rows, 30 lesson rows, and 19 lexeme/source-log rows.
- Post-close lint was GREEN: 13,947 verified sentences, 0 issues flagged, 111,267 Kuku words.
- Export was refreshed from 13,947 rows: train 11,696, dev 1,129, synthtest 1,122.
- Living books were updated for Batch 277 / Rule 235: operator guide, sample production pages, mega grammar
  cheatsheet, and dictionary errata.
- `render-docs.sh` regenerated `operator-guide.html`, `sample-pages.html`, `grammar-cheatsheet.html`,
  `dictionary-errata.html`, and `index.html`.
- Live docs were verified: `/docs` returned 301 to `/docs/`, `/docs/` returned 200, and all four HTML pages plus
  their raw Markdown siblings returned 200 with fresh 13,947 / Batch 277 / Rule 235 markers.
- Final batch state: 13,947 / 20,000 verified sentences, 6,053 remaining, 0 under review.
- Process ledger is complete through event 2211 for live-doc verification.
