# Batch 289 - Rule 247 Process Log

Theme: dwelling/household complementary perception pronoun expansion after Rule 246.

Starting state:
- Verified sentences before batch: 14,497 / 20,000.
- Under review before batch: 0.
- Latest completed rule before this batch: Rule 246 / batch-288, fire-reference perception pronoun expansion.
- Process ledger before banking: events complete through 2432.

Field audit:
- Rule 247 returns to the Rule 238-239/243 dwelling and household field because those ten target heads are already
  dictionary-backed or Patz-backed and already trapped against building, setting up camp, spreading blankets,
  entering, nailing, roofing/source-material prose, sleeping, covering, warming, front/open/shut extensions,
  top-of-anything extension, ownership, target case, pronoun case, perception compounds, and homograph drift.
- This is a construction consolidation, not a new lexical field. It keeps the Rule 238 target inventory and fills a
  complementary zero-collision pronoun/location grid not used in Rule 243.
- The final planned grid uses five sourced, zero-collision bare nominative-pronoun bands: `Ngali TARGET yaluy
  nyajil`, `Ngaliny TARGET yinyay nyajil`, `Yubal TARGET yaluy nyajil`, `Nganjin TARGET yinyay nyajil`, and
  `Yurra TARGET yaluy nyajil`.

Source basis:
- Patz section 3.1.2 supports nouns as terms for artifacts and objects of human habitat and explicitly lists `bayan`
  as camp/house/shelter.
- Dictionary entries source `bakarr` ridge pole, `bayan` house, `bira` windbreak, `jiji` roof, `kilili`
  windbreak, `wurun` humpy, `jakway` door, `yulal` board, and `bilangkurr` blanket.
- `Kararr` is grammar-backed: Patz section 2.1.1 has `kararr` "grass, blanket to lie on"; Patz examples 153, 416,
  and 563 show blanket/sheet/grass-bedding contexts. Rule 247 selects blanket only.
- Patz section 3.5 Table 3.6 sources bare nominative `ngali`, `ngaliny`, `yubal`, `nganjin`, and `yurra`.
- Patz section 3.7 Table 3.12 and Table 3.14 source Yalanji local demonstratives `yaluy` "here" and `yinyay`
  "there".
- Patz section 3.8.3.2 sources `nyaji-l` "see"; Rule 247 uses only nonpast `nyajil`.

Selected target heads:
- `bakarr` - ridge pole; no pole material, construction, structural action, or source-material row.
- `bayan` - house; no camp setup, shelter-event, possession, locative house row, opium/particle homograph, or
  `yamba-kari` row.
- `bira` - windbreak; no making, setting, rain, cold, weather-shelter, or material-source row.
- `jiji` - roof; no top-of-anything extension and no roofing-material prose.
- `kilili` - windbreak; no construction, weather, source-material, or use row.
- `wurun` - humpy; no halfway translation, building, sleeping, rain-shelter, or locative row.
- `jakway` - door; no front sense and no opening, closing, or shutting predicate.
- `yulal` - board; no plank wording, round-stick contrast, nailing, building, or source-material prose.
- `kararr` - blanket; no sheet, grass bedding, spreading, sleeping, covering, warming, privative, or year-counting row.
- `bilangkurr` - blanket; no clothing, sleeping, covering, warming, or ownership row.

Planned frame grid:
- Rows 1-10: `Ngali TARGET yaluy nyajil`.
- Rows 11-20: `Ngaliny TARGET yinyay nyajil`.
- Rows 21-30: `Yubal TARGET yaluy nyajil`.
- Rows 31-40: `Nganjin TARGET yinyay nyajil`.
- Rows 41-50: `Yurra TARGET yaluy nyajil`.

Preflight:
- Exact planned-surface collision scan over the final 50 Rule 247 surfaces returned 0 accepted, revised, or
  under-review collisions.
- Token-aware coverage before banking after Rule 246 was low enough for the retained dwelling/household heads to
  justify consolidation: `bakarr` 15, `bira` 16, `jiji` 15, `kilili` 15, `jakway` 25, `yulal` 25, `bilangkurr` 32,
  `kararr` 32, `wurun` 38, and `bayan` 451.
- Pronoun coverage before banking supported another dual/exclusive and second-plural pass: `ngali` 119,
  `ngaliny` 54, `yubal` 65, `nganjin` 71, and `yurra` 113.
- Static guards in `bank_289.py`: 50 explicit hand-authored rows; exactly one Rule 247 dwelling/household target noun
  per row; exactly one selected bare nominative pronoun per row; no loans; no target morphology; no rejected
  homographs or candidates; no building, setting, spreading, entering, nailing, roofing, sleeping, covering, warming,
  front/open/shut, top-of-anything, plank/round-stick, source-material, possession, target-case, pronoun-case,
  perception-compound, support-inflection, target-compound, or productive-reduplication drift; five sourced
  pronoun-perception bands only.

Closeout requirements:
- Run `python3 -m py_compile batch_scripts/bank_289.py batch_scripts/close_289.py`.
- Run `python3 batch_scripts/bank_289.py`.
- Run whole-corpus lint while rows are under review.
- Read back all 50 rows and run five-lens review.
- Run `python3 batch_scripts/close_289.py`.
- Run whole-corpus lint again.
- Run `python3 export_training.py`.
- Update all living books with Rule 247 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:
- `python3 -m py_compile batch_scripts/bank_289.py batch_scripts/close_289.py` passed.
- Static guard import for `bank_289.py` returned `static_issues 0`.
- `python3 batch_scripts/bank_289.py` banked 50 rows as `under_review`.
- Under-review lint passed: `lint: 14547 rows scanned, 0 issues flagged`; verified count remained 14,497 before
  close.
- SQLite row readback confirmed all 50 planned rows in five bands:
  `Ngali TARGET yaluy nyajil`, `Ngaliny TARGET yinyay nyajil`, `Yubal TARGET yaluy nyajil`,
  `Nganjin TARGET yinyay nyajil`, and `Yurra TARGET yaluy nyajil`.
- `python3 batch_scripts/close_289.py` closed the batch:
  `accepted=50, reviews=250, lessons=33, lexeme_logs=18, verified 14497->14547, kuku_words 113347->113547`.
- Post-close lint passed: `lint: 14547 rows scanned, 0 issues flagged`; status counts were accepted 13,636,
  revised 911, under_review 0.
- `python3 export_training.py` refreshed the export to 14,547 rows:
  train 12,200, dev 1,177, synthtest 1,170.
- Living books updated:
  - operator guide current state now says 14,547 / 20,000, Rules 1-247, with handoff to Rule 248 and
    `bank_290.py` / `close_290.py`;
  - sample pages build note now cites Batch 289 / Rule 247 and the examples `Ngali bakarr yaluy nyajil.`,
    `Ngaliny bayan yinyay nyajil.`, `Yubal jiji yaluy nyajil.`, `Nganjin yulal yinyay nyajil.`, and
    `Yurra bilangkurr yaluy nyajil.`;
  - grammar cheatsheet has a new Rule 247 section;
  - dictionary errata has a new Batch-289 section.
- `./render-docs.sh` regenerated `public-docs/operator-guide.html`, `sample-pages.html`,
  `grammar-cheatsheet.html`, `dictionary-errata.html`, and raw `.md` copies.
- Local render verification found markers in `public-docs/`: `14,547`, `Batch 289 / Rule 247`,
  `Rule 247 - dwelling/household`, `Batch-289`, `Ngali bakarr yaluy nyajil`, and
  `Yurra bilangkurr yaluy nyajil`.
- Live docs verification passed with a browser-like user agent:
  `/docs` -> 301 `/docs/`; `/docs/` -> 200; `/docs/operator-guide.html` and `.md` -> 200 with `14,547`;
  `/docs/sample-pages.html` and `.md` -> 200 with `Ngali bakarr yaluy nyajil`; `/docs/grammar-cheatsheet.html`
  and `.md` -> 200 with `Rule 247`; `/docs/dictionary-errata.html` and `.md` -> 200 with `Batch-289`.

Final audit:
- `python3 lint_corpus.py` -> `lint: 14547 rows scanned, 0 issues flagged`.
- DB audit: verified 14,547; accepted 13,636; revised 911; under_review 0; Batch 289 accepted rows 50; reviews
  250; lessons 33; `batch-289-verify` lexeme logs 18.
- Export line audit: train 12,200; dev 1,177; synthtest 1,170; total 14,547.
- Rendered-doc marker audit passed for operator guide, sample pages, grammar cheatsheet, and dictionary errata.
- Process ledger final-audit-green event recorded as process_event 2451.
