# _book/ change diary

Per-session deployment records for "Who Composed the Torah?" (asitwaswritten.org).
Mirrors the chaver.com `_pilot/*.md` pattern. Cowork appends one entry per run.

**A new chat should read, in order:**

0. **`_book/book-chat-directions.md`** — full begin/end procedure for a book chat. If you read nothing else first, read this.
1. `_book/book-status.md` — binding editorial memory (decisions, voice rules, corrections, forward arc)
2. The latest entry in this diary — the most recent deployed state
3. `_book/book-directory-index.md` — master file inventory
4. `_book/book-program-trade.md` — full chapter arc
5. `_book/sources/index.md` — authoritative source reading list (fetch before drafting any chapter)
6. Per task: the relevant `_book/chapters/*.md` outline + the chaver.com maps/commentaries for the units in play

## Entries (newest first)
- [2026-07-26q The folder deleted, and the link it left behind](_log/2026-07-26q-folder-deleted.md) —
  Cowork task, eighteenth run of the day, no spec. Moshe deleted `_book/academia/` after 07/26p
  left it as nine tombstones; the folder is confirmed gone from a directory listing this run.
  **The deletion exposed one real defect.** `_book/index.html`, the research index published
  07/26l, links *The Pentateuch as a Two-Dimensional Composition* under "Published papers" and
  pointed at `academia/companion-piece.pdf` — a path that no longer resolves. **It would not have
  looked broken:** this host answers any unresolved path with the site home page at HTTP 200,
  the fact behind the retired 29,198 sentinel, so a visitor clicking the paper would have landed
  on the home page with no error, and `verify-deploy.py` checks the paths a diary entry claims to
  have written, not the links inside a published page, so nothing in the chain would have
  reported it. Retargeted to `sources/pentateuch-two-dimensional-composition.pdf`, the same file,
  md5 verified identical (10,912 → 10,934 B). Worth naming: that is the first link from
  `index.html` into `sources/`, which the page deliberately excludes for third-party copyright.
  The exclusion is not breached — the file is Moshe's own paper and the host serves no directory
  listing — but the page's rule now has an exception and should carry it knowingly.
  References closed: the catalogue's `academia/` section becomes a deletion record, **the heading
  kept rather than removed** so the absence is not read as an omission and rebuilt (the same
  reasoning as the struck ghost row at 07/26p), and `sources/index.md` now records the folder as
  gone rather than as awaiting deletion. The 07/26o and 07/26p entries describe the folder as it
  stood when they were written and are left alone under rule 4. **Open:** `verify-deploy.py`
  still carries `academia/` in its `FOLDERS` probe list — a guaranteed miss on every
  bare-filename lookup now, harmless but wasted, and Moshe's code, so untouched. The basename
  collision that made that list matter is gone with the folder: there is one
  `torah-and-book-of-gates.md` in the repository now, in `sources/`. Nothing else changed;
  nothing outside `_book/`; nothing pushed.

- [2026-07-26p `academia/` retired into `sources/`](_log/2026-07-26p-academia-into-sources.md) —
  Cowork task, seventeenth run of the day, no spec supplied; Moshe's instruction in session was
  that the articles should exist in one place only, all in `sources/` and listed in its index.
  **The check before anything moved found that two of the three papers imported at 07/26o were
  already in `sources`, in better copies.** `sources/torah-and-book-of-gates.md` (65,955 B) is
  the same paper as the 07/26o extraction and is **complete** — 10,130 words against 10,266, the
  only added words being `pdf` and `verify` from the extraction's own page markers, all twelve
  figure references present in both — and it is hand-prepared, with Parts I–IV as real headings
  and no page furniture. `sources/pentateuch-two-dimensional-composition.md` (8,594 B) is the
  same paper as `companion-piece.md`. Both duplicates are dropped rather than moved. **Genuinely
  new and now in `sources/`:** `fifty-gates.md` (73,203 B) — *Fifty Gates: The Architecture of
  the Torah*, 33 pp, 56 Hebrew flags — and `pentateuch-and-egyptian-ceiling.md` (24,713 B) —
  *Ma'at, the Covenant Code, and the Center of Exodus*, 9 pp, the published form of the material
  whose notes went in on 07/24 and had sat two days without the paper. Also moved across:
  `pentateuch-two-dimensional-composition.pdf` (43,834 B) and its abstract (1,180 B), both
  byte-identical, md5 verified. `sources/index.md` (12,923 → 16,094 B). **`academia/` is
  retired** — every `.md` in it carries a tombstone naming where the content went, or that it was
  wrong and is gone; **the whole folder needs deleting by hand**, since Cowork writes and
  overwrites but cannot delete. Nothing in it is now the only copy of anything.
  **Two defects in `sources/index.md`, corrected:** it listed `The Egyptian Book Of Gates.pdf`
  (216,237 B) as the Budge source PDF, and **that file is not on disk** — absent from a directory
  listing this run, and the standing guardrail in `book-directory-index.md` has confirmed three
  separate times it has not reappeared; the row is kept struck rather than deleted so the next
  session does not read the gap as an omission and put it back. And
  `pentateuch-two-dimensional-composition.md` was listed at 8,578 B against 8,594 on disk.
  **The basename collision is closed:** `verify-deploy.py`'s `resolve()` probes a bare filename
  against ten folders in order, `sources/` second and `academia/` seventh, taking the first hit —
  so with both copies present, any entry naming that file without its folder would have
  strict-verified the wrong one. **`fifty-gates.md`'s Hebrew is fragmented and its index row says
  so:** the quotations are vowel-pointed and `pdftotext -layout` splits letters from their
  vowels in 42 of 43 inline flags; pypdf renders them whole but drops the dagesh; neither reader
  gets it intact, so the file is readable and not quotable and the row sends anyone using its
  Hebrew to `Hebrew Torah Text.docx` first. Left as-is by Moshe's ruling.
  `sources/torah-and-book-of-gates.md` and `sources/pentateuch-two-dimensional-composition.md`
  were not modified; ledger, summary, status doc and method statement untouched; nothing outside
  `_book/`; nothing deleted, nothing being deletable; nothing pushed.

- [2026-07-26o The academia import: three papers in, two wrong ones out](_log/2026-07-26o-academia-import.md) —
  Cowork task per `_log/2026-07-26o-academia-import-SPEC.md` (archived beside it), sixteenth run
  of the day. The spec is the Academia import spec 07/26n recorded missing; Moshe supplied it
  directly. **Three new working copies, and two wrong ones taken back out.** In:
  `academia/torah-and-book-of-gates.md` (76,922 B, NEW) — *The Torah and the Book of Gates*,
  academia.edu/168833450, working draft June 2026, 27 pages, 9 Hebrew flags, six figures
  referenced and not carried across. **This is the paper the book is built from, and until this
  run it was in the repository in no form at all** while two of its companions sat in
  `academia/`. `academia/fifty-gates.md` (73,204 B, NEW) — *Fifty Gates: The Architecture of the
  Torah*, 33 pages, 56 flags, one figure. `academia/pentateuch-and-egyptian-ceiling.md`
  (24,714 B, NEW) — *Ma'at, the Covenant Code, and the Center of Exodus*, 9 pages, no Hebrew;
  the published form of the material whose notes were deployed 07/24 as
  `article-maat-covenant-notes.md`, which the paper had never followed into the repo. Plus
  `academia/index.md` (7,548 B, NEW), the folder's first manifest, with **UNRECORDED** written
  rather than guessed wherever the repo cannot fill a field — only 168833450 has a URL on
  record. **Out:** `academia/ein-bein-sequence.md` and `academia/woven-megillah.md`, written
  earlier in the same run from chaver.com papers that are not project material, now 481 B and
  446 B of tombstone and **awaiting manual deletion** — Cowork writes and overwrites but cannot
  delete. **How the run went wrong is the useful part.** Step 1 of the spec says Moshe names the
  folder; it was not named and Downloads was searched instead, and its instruction to "report the
  list and proceed" was read as permission to proceed on a list that had never been confirmed.
  Three readings of the scope were tried — too wide, too narrow, wrong material — before Moshe
  named what was actually meant: three PDFs pulled from Academia at 07:16 that morning, sitting
  thirty files down a listing that was never sorted by date. **The bidi warning is correct and
  the trap is in the extractor rather than the text** — first reported as not applying, on a
  single-extractor test returning logical Hebrew, which was a fact about the reader. Poppler's
  `-layout` and pypdf reorder; pdfplumber returns the raw reversed stream, 26 of 152 runs in
  *Fifty Gates* beginning with a final-form letter where poppler gives none. Every file written
  this run was built with poppler and tests clean. **`pdftotext -bbox-layout` returns raw order
  where `-layout` returns logical**, which killed a route to real markdown tables that would have
  written reversed Hebrew into every cell while the file's own test read clean. Flags mark
  passages rather than words (per-word gave 347 in one paper and made the text unreadable) and a
  preformatted block is marked once at its head rather than inline. Tables kept preformatted, a
  departure from the spec's step 3, recorded in every file. A fourth PDF downloaded the same
  morning is *The Pentateuch as a Two-Dimensional Composition*, already here — 47,864 B against
  the repo's 43,834 B, but the extracted text is character-identical at 8,211 characters both
  sides, so the difference is Academia's re-rendering; checked rather than assumed. **Step 5, the
  full `_book/` re-walk against Round 1's 143 files / 27.8 MB, was not run.** No PDF copied into
  the repo; `abstract.md`, `companion-piece.md` and `companion-piece.pdf` read and not modified;
  Downloads read only; ledger, summary, status doc and method statement untouched; nothing
  outside `_book/`; nothing pushed.

- [2026-07-26n Rescue the perishables](_log/2026-07-26n-perishables.md) — Cowork task per
  `_log/2026-07-26n-perishables-SPEC.md` (archived beside it), fifteenth run of the day and the
  first bookkeeping-only run since the close. It existed to bring two files out of Downloads
  before that folder is cleared. **One arrived; the other is gone.**
  `project-settings.md` (8,047 B, NEW) archives the project instruction text in the repository
  for the first time — until now it lived only in the instruction field, which nothing in the
  repo can read and no verifier can check — with the three decisions of 07/26 applied at its
  foot: **Friedman dropped** (he was a voice model and an audience marker, and the Israeli
  reader plus the Chapter 19 cut retired the second job; the voice is Kugel alone), **a
  canonical `content-conventions.md` declined** (the conventions stay as two synced copies,
  this text and the chaver.com settings, deliberately with no third file), and **a
  banned-terms check approved** (unbuilt; "matrix" and "interface" still loose in
  `chapters/14-the-rift-after-eden.md`, "grid" in `chapters/03-the-first-law.md`). It also
  writes down two working rules that existed nowhere before — one question per turn, and plain
  sentences rather than scheduling idiom. **`COWORK-TASK-SPEC-academia-import.md` is not in
  Downloads** — searched by exact name, by any `.md` containing `academia`, and
  case-insensitively for `academ` at depth two; the three other specs from today are all there
  and all already archived, and the `academ`-named files that do exist are the published PDFs
  the spec described importing, not the spec. `inventory/2026-07-26-handover.md` §1 listed it
  in Downloads about an hour earlier. `inventory/specs/` was therefore **not created** — an
  empty folder in the catalogue would assert a rescue that did not happen. The warning the
  spec carried is preserved in the entry: the Ma'at PDF was rendered with a bidi fix, its
  Hebrew is stored reversed, and extraction must flag Hebrew runs against
  `sources/Hebrew Torah Text.docx` rather than trust them. Also noted, since it is the same
  shape as the rule decision 3 was made to enforce: nothing checks that the archived settings
  text and the live instruction field agree, and nothing keeps the conventions in sync with
  the chaver.com copy. Ledger, summary, status doc and method statement all untouched; nothing
  outside `_book/`; nothing deleted; nothing pushed.

- [2026-07-26m Session close](_log/2026-07-26m-session-close.md) — END procedure for the
  session of 2026-07-26, run late (correction #135). Fourteen runs listed; `book-status.md`
  to the forty-second revision (152,684 B); handover deployed to
  `inventory/2026-07-26-handover.md`.

- [2026-07-26l The draft on the website, with links](_log/2026-07-26l-book-online.md) — Cowork build task per `_log/2026-07-26l-book-online-SPEC.md` (archived beside it), twelfth run of the day and the first to touch anything outside `_book/`. **In `_book/`:** `book.html` (109,802 B, NEW — the draft rendered readable, since the `.md` is served as text/markdown and a browser downloads it), `index.html` (10,912 B, NEW — the research index, which also makes `/_book/` resolve instead of falling back to the home page; it deliberately excludes `sources/` and `images/frankfort-osireion/` for third-party copyright and uncleared rights), `tools/gen-book-html.py` (10,464 B, NEW), and `inventory/2026-07-26-plan-of-record.md` (8,078 B). **Generator verified:** run over the supplied page it produced a byte-identical file, md5 `4a6c6e5f2a71efa1df858e91de3742a2` both sides, 16 chapters and 17,041 words exactly as the spec expected. `book.html` is generated output and must be regenerated, never hand-edited, whenever the draft changes. **Two root-scope exceptions, both authorized:** the home page `index.html` (29,198 → 29,975 B) and `sitemap.xml` (1,451 → 2,325 B, six `_book/` URLs added, re-parsed as well-formed XML, 15 URLs where there were 9). **The spec's premise about the home page did not hold** — it is not template-generated; there is no build config anywhere in the repo, and the root `index.html` is a hand-written static file that is its own source. Its 29,198 B is where the retired sentinel constant came from. Two conflicts settled with Moshe first: the page styles nothing by element, so the supplied bare `<section>/<h2>/<ul>` would have rendered in default browser serif — adapted to the page's own `.about` classes with no CSS added and no existing rule changed; and "The research" already headed the block before the footer, so the new one is titled **"The working record"**, copy and links unchanged. Ten added lines, exact diff in the entry. **Step 6 closes the last copy:** the rescinded deletion instruction had reached five documents, and all five are now corrected — nothing anywhere now tells anyone to delete `_log/2026-07-20c-ha-scenes-complete.md`. **Verification:** a deliberately fake path still reports not-present, and so do both new pages, correctly, since nothing is pushed. Note the tool hashes the home page fresh each run rather than trusting a constant, which is load-bearing for the first time — under the retired 29,198, every not-found probe would now return a 29,975-byte page and be read as *present*. The two root-scope files are recorded outside the strict table deliberately: the verifier resolves everything under `/_book/`, so a row for `index.html` would MISMATCH against `_book/index.html` and `sitemap.xml` would report MISSING, both falsely. Still awaiting Moshe: four copyright and privacy exposures in `sources/`. Nothing deleted; nothing pushed.

- [2026-07-26k The sweep completes, and it is four times faster](_log/2026-07-26k-sweep-fixes.md) — Cowork task, eleventh run of the day, no spec supplied. `tools/verify-deploy.py` (11,263 → 12,199 B). Both 07/26j findings closed. **The sweep no longer stops at its first problem:** `main()` built its verdict with `all()` over a generator, which short-circuits, so a failure at position 15 silently skipped 16–19; results are now collected first, every entry evaluated, and a count printed when any fail. **The retry no longer multiplies against the folder search:** `resolve()` probes every candidate with retries off and only makes a confirming pass if all of them miss, and only where the answer can fail the run — a bare filename is tried against ten folders, and paying three attempts with 1.5 s sleeps on each near-certain miss was what cost ~30 s per file on legacy prose entries. **`--all 20` against live: ALL CLEAR, exit 0, twenty of twenty entries reached** — this is the post-deploy check 07/26j recorded as owed, and it passes. `2026-07-20d-…` no longer appears anywhere; `2026-07-20c-ha-scenes-complete.md` is reached and present, the file the rescinded instruction would have deleted; `2026-07-20c-hours-1-2-second-pass.md` sits immediately after it, the two coexisting exactly as correction #134 says they always did; and `2026-07-20b-hour3-second-pass.md` is reached for the first time. **58.9 seconds against 4 m 03 s at the same depth this morning** — four times faster with more entries actually checked. Short-circuit fix exercised directly: with `verify()` stubbed to fail on the third of five, all five were still evaluated and the run reported `1 of 5 entries have problems`. This run's changes exposed nothing new, the first time that has happened today. Open: the retry path is still untested against a real edge flap, carried through four revisions and now the only part of the tool never exercised against the condition it exists for. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26j Index repair, and a deletion instruction rescinded](_log/2026-07-26j-index-repair.md) — Cowork build task per `_log/2026-07-26j-index-repair-SPEC.md` (archived beside it), tenth run of the day. Three edits, two of them to the historical record, authorized as bookkeeping repairs — the diary entries themselves untouched, the index now pointing at what exists rather than at what a past session intended. (1) The 07/20d bullet's arrow target corrected to `2026-07-20c-ha-scenes-complete.md`, and its correction sentence replaced: the rename from `c` to `d` **was never performed**, the file is the only copy of that entry, there was never a real collision since the two 07/20c entries carry different filenames, **and the instruction to delete it is rescinded.** (2) The 07/20b bullet given the arrow target it lacked, making `2026-07-20b-hour3-second-pass.md` reachable at last. (3) `book-status.md` (145,266 → 145,999 B): item 6 of "What Needs to Happen Next" no longer opens with that deletion; the rescission is appended; and **correction #134** records that the instruction was carried into three documents from the diary's own claim of a rename that never happened, when the Round 1 census had already reported no `d` file existed — the failure #130 describes, committed the same day #130 was written. **Verified against the repaired file on disk:** 42 entries parsed, up from 41; `2026-07-20d-…` gone; both 07/20c entries and 07/20b now present and sitting side by side; no specs. `--all 20` against the live site still FAILS at position 15 on `2026-07-20d-…` — the site serves the pre-repair index, nothing being pushed — and should be re-run after the push. **Two things that run exposed:** `all()` over a generator short-circuits, so the first failing entry silently truncates the sweep and entries 16–19 were never checked; and `--all 20` took four minutes, the 07/26h retry multiplying against the prose scan's ten-folder search at roughly 30 s per miss. Both reported, not fixed. Shallow runs unaffected. Nothing deleted — least of all `_log/2026-07-20c-ha-scenes-complete.md`; nothing pushed.

- [2026-07-26i The entry parser rewritten, and two index defects it exposed](_log/2026-07-26i-entry-parser.md) — Cowork task, ninth run of the day, no spec supplied. `tools/verify-deploy.py` (10,067 → 11,263 B). `newest_entries()` now reads the **link target** of each bullet in this file rather than matching any dated filename on the line, handles both bullet formats in use, skips `-SPEC.md`, and caches the parse so the index is fetched once per run instead of twice. Verified: **40 entries, newest first, zero specs**, where three of the first ten slots had been specs. That closes the 07/26h finding, including the consequence that mattered — `newest` decides which entry gets the exact-byte check, and a bullet naming its spec before linking its entry would have silently demoted the real newest entry to presence-only. **Two defects in this index that a trustworthy parser makes visible.** (1) `2026-07-20d-ha-scenes-complete.md` is named here and does not exist — not on disk, not live; it is the known 07/20 rename that never happened, the file having deployed under the colliding name `2026-07-20c-ha-scenes-complete.md`. It sits at position 14, so `--all 14` is clean and **`--all 15` or deeper fails the run** on a six-day-old bookkeeping artifact, reported in the same words as a real deploy failure. BEGIN's step 1b uses depth one, so the standing procedure is unaffected. (2) `2026-07-20b-hour3-second-pass.md` exists on disk and is live at 1,044 B, but its bullet here carries neither a link nor a trailing arrow target, so no depth of `--all` will ever reach it. Both are one-line edits to this file; both edit the historical record rather than today's, so they are reported rather than made. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26h Edge-flap retry, the `--entry` fix, and a bug the fix exposed](_log/2026-07-26h-verifier-retry.md) — Cowork task, eighth run of the day, no spec supplied. `tools/verify-deploy.py` (9,321 → 10,067 B). **Two changes.** A fetch that comes back as the not-found fallback now waits 1.5 s and asks again, twice, before declaring anything missing — an edge node that has not yet seen a path answers with the fallback, and a one-shot read takes that for a deleted file; a false MISSING is reported with the same confidence as a true one. And `--entry` now honours presence-only: the strict/presence rule was wired to loop position, so `--entry` always ran strict, including on an old entry whose files later sessions have legitimately rewritten — a false failure on a deploy that worked. It is now computed from identity, so only the current newest entry is size-verified whichever way it is reached. Confirmed: `--entry 2026-07-26-ceiling-recovery.md` is now marked historical. **The bug this exposed:** `newest_entries()` scans this index for dated `.md` filenames, and the diary bullets name their archived specs in prose, so the specs are counted as entries — 3 of 10 slots when asking for ten, meaning `--all 10` reaches only seven real entries. Noise on its own, since a spec has no `## Files written` table and falls to the advisory scan. Not noise is that `newest` comes from `newest_entries(1)`: if a bullet ever named its spec before linking its entry, the spec would become `newest` and the real newest entry would drop to presence-only, silently skipping the exact-byte check. Today it works only because every bullet links the entry first — house style, not a guarantee. One-line fix available (skip `-SPEC.md`); reported, not made, as no spec authorized it. Introduced by Cowork's own habit of naming archived specs in these bullets. Tested: `--all 2` ALL CLEAR in 4.1 s; the retry path not exercised against a real flap. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26g The sameness-to-inversion turn](_log/2026-07-26g-inversion-turn.md) — Cowork build task per `_log/2026-07-26g-inversion-turn-SPEC.md` (archived beside it), seventh and shortest run of the day: one file, two paragraphs, supplied verbatim. `chapters/10-the-book-of-gates.md` 4,368 → 4,919 B. **This closes the last open item from the 07/26 inventory.** Out: "The same structural position. The same function," and the claim that the author placed the impurities where the Egyptian paradigm places the judgment of the impure, described as the same organizing logic applied to different content. In: the same position, the opposite function — Egypt weighs the dead and annihilates what fails, the verdict terminal; the Torah examines the afflicted, puts them outside the camp and brings them back, the middle unit of the triad being the purification itself. The logic is not borrowed but taken up and refused: what marks a body as sacred in Egypt marks it unclean here, and the examining priest is the anti-Osirian official. A drafting note records why the inversion is the stronger argument. **Why it mattered:** S.1 was reclassified ANTITHETICAL on 07/22 with FW.14 sharpening it, so from that date the outline contradicted both the ledger and Moshe's own ruling at the point the chapter treats as its strongest evidence. Its triad membership and the unsourced "secret name" line were corrected at 07/26b; the argument itself was not authorized then and was carried as an open item through 07/26b–f. The recovered Chapter 17 draft carries the same superseded reading but already opens with a supersession warning, so it needs no change. Paragraph before and the `## The Difference` heading after both untouched; word-level diff reviewed. No other file modified; nothing deleted; nothing pushed.

- [2026-07-26f The governing documents](_log/2026-07-26f-governing-docs.md) — Cowork build task per `_log/2026-07-26f-governing-docs-SPEC.md` (archived beside it under the new deploy-contract step d), sixth and last run of the day. Both files supplied complete and overwritten in place. `book-chat-directions.md` (12,860 → 15,854 B): **the 29,198 sentinel is retired** in favour of `python3 tools/verify-deploy.py`, with the reasoning kept so the rule is not reinvented from the same wrong premise; **the Cloudflare beacon is documented** with its measurement table (359 B into HTML responses only, server-side, client-dependent — `curl` no, `urllib` yes), which existed nowhere in the repo before today; new step 1b at BEGIN runs the verifier before the diary is trusted, with its honest limit stated — it cannot catch a session whose package was never handed over; two new session types, ARTICLE and PLANNING; ledger reading now points at `tools/ledger-hour.py` with the concentric pairs instead of "use grep"; **the END/BEGIN split is stated** — Cowork verifies its own writes against disk at END, the live check can only follow the push, so it belongs at the next session's BEGIN (the earlier procedure put it at END, where it could only inspect the previous deploy, which is exactly what happened on this session's first run); and the deploy contract gains step (d), spec archiving. `book-status.md` (136,904 → 145,266 B): a forty-first revision block prepended — verified mechanically that **518 of the old file's 519 lines are preserved byte-identical**, nothing below the new block altered. It records the sixteen rulings of 07/26 as binding, what the inventory found (eight lost-work incidents in eighteen days, and the cause), corrections #130–#133, and a replacement "What Needs to Happen Next" whose first two items are not already complete. **#133 is this session's own** — that no single byte count could ever have served as the not-found check, the home page length being one variable and the beacon another, and that every strict check passed only because no diary entry had yet claimed an HTML file. Nothing composed this run; no other file touched; nothing deleted; nothing pushed.

- [2026-07-26e The beacon: 07/26d's finding corrected, and a real HTML failure prevented](_log/2026-07-26e-beacon-correction.md) — Cowork task, fifth run of the day, no spec supplied. `tools/verify-deploy.py` (9,321 B) gains `strip_beacon()`. **The correction:** 07/26d claimed the 29,198-byte sentinel was already stale, having measured the home page at 29,557. It is not stale. The home page is 29,198 B; Cloudflare Web Analytics injects a 359-byte beacon `<script>` into HTML responses server-side, and whether it arrives depends on the request headers — `curl` does not receive it, `urllib` does. 29,557 − 29,198 = 359, the beacon exactly. The site had not changed; the measurement was contaminated by the instrument, and 07/26d used that artifact as evidence for the very fix it was landing. The wrong conclusion is retained in that entry under rule 4, under a correction block. **The real bug it was hiding:** the beacon goes into HTML and nothing else, so every one of the four HTML files in `_book/` measures exactly 359 B larger over the wire than on disk while every `.md` and `.py` measures exact. The first diary entry to put an HTML file in its `## Files written` table would have failed strict verification by 359 B — a false failure on a file that had landed perfectly. None has yet; all four HTML files were deployed before the template existed. `strip_beacon()` removes the injected script before anything is hashed or measured. Verified: all four HTML files stripped back to their exact disk sizes; `.md` and `.py` controls unaffected; `--all 4` against live returned ALL CLEAR. Open: the prose docs still teach the 29,198 check — correct as a number, still wrong as an instruction — and the beacon is documented nowhere in the repo. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26d Tools hardened; the old sentinel confirmed already stale](_log/2026-07-26d-tools-hardened.md) — Cowork task, fourth run of the day, no spec supplied. `tools/verify-deploy.py` (8,710 B) and `tools/ledger-hour.py` (5,594 B) replace the 07/26c versions; both open items raised against those are closed. **CORRECTED 07/26e — this entry's central finding is wrong.** It reported the home page as 29,557 B and concluded the 29,198 sentinel was already stale. The home page is 29,198 B; the extra 359 is a Cloudflare Web Analytics beacon injected into HTML responses, which `urllib` receives and `curl` does not. The sentinel was never stale — the measurement was contaminated by the client that took it. Hashing the home page each run remains the right design (the constant would break if the page were genuinely edited); the claim that it already had does not survive. The wrong conclusion is retained in the entry under rule 4. Changes: `is_fallback()` is now an exact digest match only (the title-and-size heuristic that would have misread a real page titled "As It Was Written …" under 60 KB is gone), and `fetch()` trusts the HTTP status first — 404 returns not-present, other HTTP errors stay distinct rather than flattening into "missing," and only a clean 200 reaches the digest check. `ledger-hour.py` now reports the response's true byte length: **506,147 B, matching disk exactly**, where it had printed 490,944, the 15,203-byte gap being the ledger's Hebrew and en-dashes. Tested before landing: `--all 3` against live returned ALL CLEAR across all sixteen paths of the three preceding entries; two nonexistent paths correctly not-present; the 404 and 500 branches exercised with a stubbed opener, since this host answers every unresolved path with a 200 and the home page. Open: `book-chat-directions.md` and `book-status.md` still teach the 29,198 check, which is the one open item with a live cost — the directions file is what a cold session reads first. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26c Tools revised; both of today's deploys verified live](_log/2026-07-26c-tools-update.md) — Cowork task, third run of the day, no spec supplied. `tools/verify-deploy.py` (7,890 B) and `tools/ledger-hour.py` (5,345 B) replace the versions landed this morning. **The 29,198-byte sentinel was never a Cloudflare block** — it is the byte length of the site's home page, which is what any unresolved path is answered with. The constant worked by coincidence and would have failed silently the first time the home page was edited, reading a genuinely failed deploy as present. Both scripts now hash the home page once per run and treat a matching response as "not present," with a title-and-size fallback. **First end-to-end close of the deploy contract:** `verify-deploy.py --all 2` run against the live site returned **ALL CLEAR** — the 07/26b entry strict-verified at exact byte counts (`10-the-book-of-gates.md` 4,368, `ch17-recovered-fragments.md` 9,859, `who-composed-the-torah.md` 99,007), and all thirteen paths of the ceiling recovery present, including the Symons thesis at 456,750 B and all five plates. Three consequences: the ceiling recovery is fully live (it was not when its own entry was written); `.py` files under `tools/` are served, closing that entry's open item 6; and every strict claim matches the LF byte counts on disk, so nothing in the chain is converting line endings. Open: the new `is_fallback()` dropped the old `.html` guard (latent only — none of the four HTML files in `_book/` carries the home page's title); `ledger-hour.py` reports characters as bytes in its header line (490,944 vs 506,147); the "29,198 = Cloudflare block" wording still stands in `book-chat-directions.md` and `book-status.md`. No content file modified; nothing deleted; nothing pushed.

- [2026-07-26b Chapter 17 recovery + three sourced corrections](_log/2026-07-26b-ch17-recovery.md) — Cowork task, second run of the day. No task spec supplied; nothing to archive under the spec-archiving rule. Lands `chapters/ch17-recovered-fragments.md` (9,859 B, NEW) — the partial reassembly of the Chapter 17 draft written 07/12 and lost with its session container: roughly two-thirds of a v1 that was never reviewed, with two gaps marked (the Gates description body; the close's final sentences). **Its central argument is superseded and the file says so at its head** — the draft presents the impurity screen and the Judgment Hall as the same decision made twice and calls it "the strongest single piece of evidence in this book," which S.1's 07/22 reclassification to ANTITHETICAL inverts (same position, opposite function; FW.14 sharpens it). Surviving intact: the opening back to the Ch 1 photograph, the garment passage, the ceiling-and-floor section bringing Ch 14's promise due, and the close. **Three corrections to Moshe's written content, made at his explicit instruction, each verified against a source first:** in `chapters/10-the-book-of-gates.md` (4,239 → 4,368 B) the impurity triad corrected to Scale Disease / Purification / Genital Discharges per `sources/structure-is-theology.md` §7.3 — the outline had dropped Purification and promoted the Day of Purgation, which is Unit X on the triad's far side — and the unsourced "speak the gate's secret name" replaced with the sourced description of the gates as guarded barriers where what passes is examined and the impure stopped; in `who-composed-the-torah.md` (99,009 → 99,007 B) Chapter 1's "nearly 3,500 years ago" amended to "some 3,300," Seti I being c. 1279 BCE and that chapter's own image caption already reading c. 1300 BCE. Three changed lines in total, reviewed as a word-level diff. Open: `10-the-book-of-gates.md` still argues the superseded sameness reading (not authorized this run); the Egyptian forty-two placeholder (correction #100) still unsourced; the two draft gaps unrecoverable from the conversation record; `book-status.md` carries none of it. `hour-ledger.md`, `parallels-summary.md` and `book-status.md` untouched; nothing deleted; nothing pushed.

- [2026-07-26 Ceiling/Exodus recovery (+ automation package)](_log/2026-07-26-ceiling-recovery.md) — Cowork task per `_log/2026-07-26-ceiling-recovery-SPEC.md` (spec + plates addendum, archived beside the entry); run with direct device-bridge access to the live repo. **Lands work produced 07/19 and 07/26 that had never reached the repo — the largest single body of unlanded material the 07/26 inventory found. STAGING, not ledger: nothing entered in `hour-ledger.md` or `book-status.md`, pending Moshe's review.** Thirteen files written: `ceiling-exodus-research-notes.md` at root (22,063 B — the ceiling session record as supplied, carrying two corrections at its head: Section D's five-register claim for the Book of the Day superseded in part, the count being version-specific (five in G1, four in G2) and the touregypt.net citation withdrawn; and Section B's plate numbering confirmed against Frankfort MEEF39.1, with the page-112 item identified as Plate LXXXV); `sources/symons-nk-astronomy.md` (456,750 B, NEW — Symons's Leicester PhD from archive.org under a provenance header, the source behind the Section D correction); `sources/index.md` (12,923 B — Symons row, plates cross-reference, and a new acquisitions section recording the working URLs for JEA vol. 4, both Frankfort volumes incl. the `ia800104` node for MEEF39.2, Symons, and the EEF journals index, plus Piankoff 1942 / Roulin 1996 / Neugebauer & Parker 1960 as STILL NEEDED); the new `images/frankfort-osireion/` — five facsimile plates (LXXXI caption page and Nut-and-Shu by Emery; LXXXII and LXXXIII shadow-clock text and LXXXIV dramatic text by de Buck; 4,284,596 B total, md5-verified against their originals) plus `README.md` (3,666 B — per-plate page, draughtsman and *original filename*, the LXXXV gap, and the uncleared-rights block); and, taken in the same run as a second pass, `tools/verify-deploy.py` (6,960 B) and `tools/ledger-hour.py` (5,271 B) in the new `tools/` folder, with `inventory/2026-07-26-automation-plan.md` (5,947 B). Closing check: `verify-deploy.py` run against the live site before this entry was written returned **ALL CLEAR** on Inventory Round 3. Open: Plate LXXXV absent (page 112 not saved), Plates LXXXVI–LXXXVII not rasterized, rights not cleared on any plate, three primary editions still needed. No content file modified; no file deleted; nothing pushed.

- [2026-07-26 Inventory Round 3 (illustration audit + repair lists)](_log/2026-07-26-inventory-round-3.md) — Cowork task, Round 3 of 3, run with direct device-bridge access to the live repo. Four files written to `_book/inventory/`: `2026-07-26-illustration-audit.md` (19,203 B — visual asset audit, figure-marker/reference grep across all of `_book/`, rights table, per-chapter figure-slot table for all 16 written chapters + 6 forward-arc outline files + epilogue: 17 candidate slots in the written chapters), `2026-07-26-repair-lists.md` (9,419 B — deletion candidates, every reference to the cut Chapter 19, DH-threading worksheet for Chapters 6-12 which came back with zero matches on the seven flagged terms), plus the supplied `2026-07-26-plan-of-record.md` (7,943 B) and `2026-07-26-round-2-assessment.md` (12,257 B) written verbatim. No content file modified; no file deleted — deletions listed only, awaiting Moshe.

- [2026-07-26 Inventory Round 1 (census)](_log/2026-07-26-inventory-round-1.md) — Cowork task, Round 1 of 3: full mechanical census of all 143 files in `_book/`. Three new files written to `_book/inventory/` (new folder): `2026-07-26-census.md` (41,797 B, full Step 1-3 detail), `2026-07-26-findings.md` (10,528 B, dense summary), `2026-07-26-cowork-questions.md` (4,619 B, 13 unresolved items). Findings: 6 orphans (all in `_log/`, the catalogue table not updated since ~07/19b), 0 ghosts, 6 distinct broken internal references (17 citations, incl. `COWORK-TASK-SPEC.md` referenced 10 times with no file on disk); second-pass ledger coverage 3/12 hours; `parallels-database.json` 7 days / 72,245 B stale against `hour-ledger.md`; no Hebrew drafting of the book exists anywhere in the repo; Academia.edu Ma'at/Covenant-Code report not yet drafted. No content file modified. `book-directory-index.md` byte counts/dates corrected where drift was found. Rounds 2 and 3 of the inventory pending.

- [2026-07-24 Article research: Ma'at / Covenant Code](_log/2026-07-24-article-maat-covenant.md) — new article research session establishing the structural and source foundation for a short Academia.edu progress report on the Ma'at / Covenant Code parallel at the center of Exodus (the Fundamentals of the Course of the Stars' 72 decanal deities and 70-day Duat phase against Exodus's 72 representatives flanking the Covenant Code reading at Unit X cell 2ב, and the 70 souls who descend to Egypt). New file: `article-maat-covenant-notes.md` (18,575 B — full four-level argument, source hierarchy, Torah text anchors, next-session prompt). `book-status.md` to fortieth revision (136,904 B). No ledger entries; no chapter drafting; hour-ledger.md and parallels-summary.md unchanged.
- [2026-07-22 Maat article session (third session)](_log/2026-07-22-maat-article-session.md) — hour-ledger.md (505572 B, S.1 ANTITHETICAL + S.12 corrected + FW.14 + FW.15), parallels-summary.md (82161 B)
- [2026-07-22 Hour/Register Chart Analysis](_log/2026-07-22-hour-register-chart.md) — hour-ledger.md (498517 B, FW.12 shared ceiling + FW.13 crescendo + S.1 Scene 33 confirmation addendum + S.12), parallels-summary.md (79465 B), sources/ha-scenes-complete.md (61914 B, Scene 33 confirmed), hour-register-chart.html (13957 B, Hour V lower corrected 6→5), sources/ha-scenes-database.json (NEW — 113 records)
- [2026-07-21 Torah map deploy](_log/2026-07-21-torah-map.md) — torah-units-mapped.json (67571 B), torah-map.html (23637 B), hour-register-chart.html (13904 B), book-status.md rev 38 (130195 B)
- 2026-07-20d — H&A SCENE REFERENCE BUILT (Cowork task, per `COWORK-TASK-SPEC.md`): `sources/ha-scenes-complete.md` added (61,457 B) — structural paraphrase of all 100 scenes and 12 gates from Hornung & Abt 2013, by hour/register/sequential scene number; Hours 1–2 seeded from the ledger's SECOND PASS 07/20 block per the task spec, Hours 3–12 read at first hand from Moshe's prepared per-hour PDF cuts. One scene (33) not recovered — flagged, falls at the Hour 5/Hour 6 source-PDF boundary along with Gate 5's missing closure formula. No ledger/status-doc/parallels-summary changes from this task — catalogue row only, per the task spec's closing step. **Correction (revised 2026-07-26):** this entry was to be renamed from `c` to `d` to distinguish it from the other 07/20c session. **The rename was never performed.** The file remains `2026-07-20c-ha-scenes-complete.md` and is the only copy of this entry — it is NOT stale and must NOT be deleted. There was no real collision: the two 07/20c entries have different filenames (`-ha-scenes-complete` and `-hours-1-2-second-pass`) and coexist without conflict. The earlier instruction to delete this file is rescinded → `2026-07-20c-ha-scenes-complete.md`
- 2026-07-20c — HOURS 1 AND 2 SECOND PASS OPENED, COWORK TASK SPEC DRAFTED: scene counts established at first hand [H] — SC.1 (Hour 1: 4 scenes, 1–2–1) and SC.2 (Hour 2: 4 scenes, 2–1–1, exactly inverting Hour 1's distribution); entries 2.4 (the slaughter at Shechem / lower-register refused verdict — redemption is possible in this world) and 2.5 (Jacob's ladder, the bread vow, and the tithe — governing arc from beginning to end), both ANTITHETICAL, proposed (M+C); first-pass corrections to 1.4 and 1.5 flagged, M's ruling still owed; `COWORK-TASK-SPEC.md` drafted for the H&A scene reference build (see 07/20d above). Ledger 474,094 → 489,754 B; parallels-summary 71,017 → 75,554 B; status doc to thirty-seventh revision (126,318 B). **This entry and its file contents were prepared in the 07/20c session but not deployed to the repo until the 07/20d run caught it up.** → `2026-07-20c-hours-1-2-second-pass.md`
- 2026-07-20b — HOUR 3 SECOND PASS: creation units worked, SC.3 + CRE.1–6 + 3.14 entered, second-pass-method.md tagging convention added → `2026-07-20b-hour3-second-pass.md`
- 2026-07-20 — READER INTERFACE REBUILD + SECOND-PASS METHOD: book-chat-directions.md updated (research-session track added, session-type declaration, second-pass ledger rule made explicit); second-pass-method.md created (NEW — layer definitions 0–5c, scenes as structural elements, cross-hour structure, antithetical reading, certifiability criteria); parallels-map.html rebuilt (horizontal → vertical, JH+Screen combined, broken {j+2} tags removed, sticky column headers); parallels-explorer.html rebuilt (reader-facing app, 12-hour overview grid landing, simplified nav, clean record cards); status doc to thirty-fifth revision. hour-ledger.md, parallels-summary.md, parallels-database.json/editions, chapters, and sources left untouched → `2026-07-20-reader-interface-and-method.md`
- 2026-07-19b — HOUR 7 REOPENED (third session of 07/19): the register question verified in four witnesses and resolved as pair-grammar via M’s reflection test (H6↔H7, the inner ring’s one vertical plan — 7.10, certified in-session); M’s flip clarified (Lev Unit 13 → end of Deut; the crossing at hours 8–9, FW.1 ADDENDUM); the variant-arrangement hypothesis entered with its TT33 either/or test (7.9, task 27; Manassa 2007 + Régen 2014 + Werning BIFAO 118 read; letter to Régen finalized); ledger → 450,863 B (7.6–7.10), status doc to thirty-third revision, summary synced (66,965 B). Open: the wall map’s hour-7 display ruling → `2026-07-19b-hour7-reflection.md`
- 2026-07-19 — THE PARALLELS DATABASE BUILT (second session of 07/19, run inside Cowork): hour-ledger.md (433,902 B) shredded into a fixed-frame database — 242 records, 54-unit + 12-hour views, coverage map, audit PASS (239 IDs, zero missing; 100% verbatim check); editions: master + browsable xlsx + certified pair (77 records) + plain-language reader; derived artifact, NOT in the rule-11 sync; ledger and status doc untouched → `2026-07-19-parallels-database.md`
- 2026-07-19 — Hours 4 and 9 worked as the outer ring (the courtyard, A↔H), all entries M-certified at «write to ledger»; the concentric program complete (FW.8/FW.10/FW.11): ledger to 433,902 B (4.9, 9.9, 9.10, FW.11), status doc to thirty-second revision, parallels-summary synced (63,327 B); catalogue staleness from the 07/17f deploy found and fixed; session run inside Cowork itself → `2026-07-19-hours-4-9-outer-ring.md`
- 2026-07-17f — Hours 5 and 8 worked as the middle ring, all entries M-certified: ledger to 416,325 B (5.9–5.14, 8.11–8.14, FW.10 certified, 8.4 resolved), status doc to thirty-first revision, parallels-summary synced → `2026-07-17f-hours-5-8-ring.md`
- 2026-07-17e — task 26 sourced (Exodus + Numbers 5×5 from M's Torah Map); centers convergence flagged; the two-Nut monument (Seti box: Nut floor + lid); KV2 Nut ceiling; 3-6-3 verification record (Seti-interior excluded, Turin 1885 figures owed). Ledger → 381,916 B, status 30th rev, summary synced → `2026-07-17e-nut-and-verification.md`
- 2026-07-17c — test phase opened (tasks 12 closed / 13 run+certified); goal shift recorded; FW.8 Holy-of-Holies pairing; 13.16 the Ark-criterion selection + the author's predicament, M-certified; 6.6 the two-names union; Sixth Gate re-scored hit; THE REREAD QUEUE (task 24). Ledger → 369,393 B, status 28th rev, summary synced → `2026-07-17c-tests-and-center.md`
- 2026-07-17b — THE PROLOGUE WORKED (task 21, prologue half): Genesis Units 1–4 read against the composition for the first time; new hour-ledger.md section "THE PROLOGUE — Genesis Units 1–4," entries PRO.1–PRO.9; PRO.3 sharpened with the governing-function clause (the creation triad's position outside the Gates' structure is what lets it set the register-content the twelve-hour overlay runs on — M's follow-up); EX.2 pre-registered Babel-gathering prediction resolved, CONFIRMED with mechanism refined; task 21 updated — prologue worked, epilogue (Moses' blessings) still open; `parallels-summary.md` new section "The entrance — before the hours begin" (ledger rule 11), stale prologue line corrected; ledger 323,562 → 340,976 B; status doc to twenty-seventh revision → `2026-07-17b-prologue-task21.md`
- 2026-07-17 — HOUR 12 WORKED COMPLETE + EXIT APPARATUS (the hour count closed; **Ch 17 gate OPEN**): cut printed 400–445 re-fixed [H]; Units X–XIII read whole; entries 12.4–12.12 + EX.1–EX.14; M's rulings — the three tribal blocks = the registers gathered (→ FW.7 CERTIFIED, "threads tied at the end"), "Ra goes up to live, Moses goes up to die," Reuben resolved; EX.2 pre-registered Babel prediction; the flesh decree (Gen 6:3 = prologue) ties the two ends by one number; titles איש האלהים / עבד יהוה each once in the Torah, both Unit XIII; 12.1 reshaped (establishment register); correction #128; ledger 289,723 → 323,562 B; status doc to twenty-sixth revision → `2026-07-17-hour12-exit.md`
- 2026-07-16d — HOUR 11 WORKED COMPLETE (the signature hour): H&A cut uploaded (printed 364–399), all staged items re-verified [H], all Budge holds disposed with no strikes; entries 11.5–11.27 across all three rows + the signature complex — 11.11 the capstone (the turning-around of Ra, "I am he"); the monograph "The Beautiful Captive Speaks" read in full; Task 22 opened (frontal-face survey); closing rulings — 26:20–22 veto declined (wells in, correction #127), 3.6 register question inapplicable; ledger 248,098 → 289723 B; status doc to twenty-fifth revision; **Ch 17 gate: hour 12 alone remains** → `2026-07-16d-hour11-complete.md`
- 2026-07-16c — Docket triage (twelve dispositions, two carried to M, one still open: 26:20–22 veto); FW.1–FW.6 certified with corrections #122–#126; FW.6 tomb program (wall=Gen–Lev–Deut, ceiling=Exodus, floor=Numbers); prologue/epilogue task 21 opened; `parallels-summary.md` created (reader-facing parallels map) + ledger rule 11; hour 3 worked — 3.9 god-in-shrine, 3.11 provision-for-the-way, 3.12 silver-in-the-sacks, 3.13 serfdom economy; 3.10 Heliopolis struck same session; ledger 214,762 → 248,098 B; status doc to twenty-fourth revision → `2026-07-16c-triage-hour3-summary.md`
- 2026-07-16b — Hours 2 & 3 session: pages re-uploaded + re-verified [H] at first hand (Second Gate gap closed); **2.1 RESHAPED** — the hour's three-way sort (placed/kept/condemned) run through the Esau genealogy (Jacob placed / Esau kept → the many kings / the WIVES condemned); old Budge form struck (rule 4); FW.5 (two embedded compositions kept separate — Gates = three-book wall, "Sixth Book"/re-creation weave = separate five-book composition, off the comparison); monograph logged as rule-2/9 source (needs push + catalogue row); B.16 deepened (dressing-up as Jacob's error); B.11 anchored (Genesis row-3 = death-register); correction #121; ledger 201,631 → 214,762 B; status doc to twenty-third revision → `2026-07-16b-hours-23-esau-sort.md`

- 2026-07-16 — Hours 1, 2, 3 re-fixed [H] (chat-uploaded cuts); hour 1 opened — 1.12–1.17 incl. the acknowledgement reading (the covenant of the pieces as the author's acknowledgement of the BoG, candidate Ch 17 opening); Unit 7 read (1.14–1.16); FW.4; B.14–B.17 + GA.8; Amduat controls ruled moot (correction #120, task 2 downgraded); task 9 partially resolved; ledger 161,971 → 201,631 B; status doc to twenty-second revision → `2026-07-16-hours-123-unit7.md`
- 2026-07-15c — Extraction complete (hours 1, 2, 3, 10, 11, 12 + gates + exit); duality census across all 12 hours; hour 10 opened — 10.2 pair-seal (verified verbatim) + 10.3 inverted register mapping (confirmed); bottom-up register rule for Deuteronomy hours; ledger 151,523 → 161,971 B; status doc to twenty-first revision, correction #119 → `2026-07-15c-hour10-duality.md`
- 2026-07-15b — Hours 4, 6, 9 worked; paired triads A↔H and D↔F; three-register rule established; ledger 129,753 → 151,523 B; status doc to twentieth revision, corrections #113–#118 → `2026-07-15b-hours-469-work.md`
- 2026-07-15 — Hours 4, 5, 8 re-fixed; Judgment Hall partial; FRAMEWORK block: hour-ledger.md hours 4/5/8 re-fixed from Hornung & Abt 2013, L.5 → VERIFIED [H], 5.3 struck + GA.2 reworded to upper/lower register axis, new hour-4 fire entry, hour-8 register schema note, FRAMEWORK block FW.1–FW.3 (awaiting Moshe's certification), guardrail removal of a reappeared "The Egyptian Book Of Gates.pdf", "read Hebrew not JPS English" standing rule added, status doc to nineteenth revision, corrections #107–#112 → `2026-07-15-hours-458-refix.md`
- 2026-07-14c — Hornung & Abt obtained; hours 7, 8, 9 re-fixed: hour-ledger.md hours 7/8/9 re-fixed from Hornung & Abt 2013 (Zurich), C.6 numbering normalized (+1 shift for Budge/AEO positions from Judgment Hall on), 9.1 upgraded to VERIFIED [H], two Budge-derived readings struck, status doc to seventeenth revision, new tasks 16–20 → `2026-07-14c-hornung-hours-789.md`
- 2026-07-14b — Verification and rule 10: drowned-hour verification (9.1) closed at secondary level, GA.7 pre-registered test (partial confirmation), solo hour-7/11 proposals struck at Moshe's correction, student/teacher method codified as ledger rule 10, Deuteronomy map added to sources, status doc to sixteenth revision → `2026-07-14b-verification-and-rule-10.md`
- 2026-07-14 — Book of Gates hour-by-hour research sessions: `hour-ledger.md` created (persistent parallels ledger), status doc to fifteenth revision, corrections #104–#105 → `2026-07-14-hour-ledger-research.md`
- 2026-07-10 — Ch 15–16 live session with Moshe: bush mechanism resolved, Ch 15 draft split into Chs 15+16, folded into master, epigraph added, corrections #84–#103 → `2026-07-10-ch15-16-live-session.md`
- 2026-07-10 — Ch 15 drafting session: Egyptian Grid source added, Ch 15 draft v6 written (not final), session handoff notes, Exodus map reference image → `2026-07-10-ch15-session.md`
- 2026-07-07 — Trade-book/Plan project split, live-map catalogue entries, Exodus map conversion, full catalogue reconcile, master-file repair → `2026-07-07-instruction-split.md`
- 2026-07-07 — book-chat-directions.md added, cross-linked → `2026-07-07-book-chat-directions.md`
- 2026-07-07 — Ch 13/14 split deployed → `2026-07-07-ch13-14-split.md`
