feat(office): seed the Little Office BVM per-annum Little Hours (Stage 4b) #505

Merged
manlycucumber merged 4 commits from feat/stage4b-lobvm-little-hours into develop 2026-07-20 03:38:59 +00:00

Stage 4b continuation — the four Little Hours (Prime, Terce, Sext, None), per-annum

Continues the Stage 4b LOBVM seed after Lauds (#504). Adds the four Little Hours of the Little Office BVM in their per-annum form, transcribed verbatim from the same public-domain source (lobvm-benziger-1915).

Each hour

  • Hymn firstMemento, rerum Cónditor (identical word-for-word at all four hours; each leaf cites its own printed page).
  • One antiphon over three psalms (the Little Hours reuse the Lauds antiphons; each reprinted at its hour and transcribed from that hour's own scan).
  • Little chapter · versicle · collect — the per-annum collect differs per hour: Prime Deus qui virginálem aulam, Terce Deus qui salútis ætérnæ, Sext Concede miséricors Deus, None Famulórum tuórum.
  • Psalm schemes (Benziger's post-1911 Pius X cursus, referenced into the Stage-2 psalter streams — not re-transcribed): Prime 53/84/116 · Terce 119/120/121 · Sext 122/123/124 · None 125/126/127.

Fidelity method

English from the Wikisource proofread rectos; Latin read directly from the Commons verso page-scans (two passes), never from OCR/WebFetch summaries. Where the English proofread's season header disagreed with the book (it does at Terce — "From Christmas until Advent"), the Latin heading (I, III. Extra et post Adventum) governs. Three antiphon per-page punctuation/accent variances vs. the merged Lauds printing were checked against both pages and confirmed genuine (Prime "angeli," comma; Terce "thálamum," comma; Sext "cúrrimus" accent; None "Jerúsalem:" colon) — the merged Lauds seed stands correct.

Validation

  • Generator: 102 tests green, verify OK (byte-reproducible; born-cited gate passes — every leaf cites lobvm-benziger-1915 with a page locator).
  • Workspace: composer check green (phpcs [OK], phpstan clean, 1247 tests / 145,842 assertions / 1 pre-existing skip); freeze-golden-year.php accepted the move.
  • Corpus-driven digest move: goldenDigest 33a2f471 → dfbdc576, corpusContentDigest → 4aadf46b, corpusVersion 1962-2026-07-19.2; engineVersion stays 0.5.0 (GoldenProvenanceLock: MANIFEST-delta ⇒ corpus-driven).

Both commits signed + verified. Still deferred (flagged): the other three hours (Matins, Vespers, Compline), the Advent/Christmas seasonal forms + date-driven selection, and the psalter cross-check.

## Stage 4b continuation — the four Little Hours (Prime, Terce, Sext, None), per-annum Continues the Stage 4b LOBVM seed after Lauds ([#504](https://git.conditor.dev/Directorium/Core/pulls/504)). Adds the four Little Hours of the Little Office BVM in their per-annum form, transcribed verbatim from the same public-domain source (`lobvm-benziger-1915`). ### Each hour - **Hymn first** — *Memento, rerum Cónditor* (identical word-for-word at all four hours; each leaf cites its own printed page). - **One antiphon** over three psalms (the Little Hours reuse the Lauds antiphons; each reprinted at its hour and transcribed from that hour's own scan). - **Little chapter · versicle · collect** — the per-annum **collect differs per hour**: Prime *Deus qui virginálem aulam*, Terce *Deus qui salútis ætérnæ*, Sext *Concede miséricors Deus*, None *Famulórum tuórum*. - **Psalm schemes** (Benziger's post-1911 Pius X cursus, referenced into the Stage-2 psalter streams — not re-transcribed): Prime 53/84/116 · Terce 119/120/121 · Sext 122/123/124 · None 125/126/127. ### Fidelity method English from the Wikisource proofread rectos; **Latin read directly from the Commons verso page-scans** (two passes), never from OCR/WebFetch summaries. Where the English proofread's season header disagreed with the book (it does at Terce — "From Christmas until Advent"), the **Latin heading** (`I, III. Extra et post Adventum`) governs. Three antiphon per-page punctuation/accent variances vs. the merged Lauds printing were checked against **both** pages and confirmed genuine (Prime "angeli," comma; Terce "thálamum," comma; Sext "cúrrimus" accent; None "Jerúsalem:" colon) — the merged Lauds seed stands correct. ### Validation - Generator: 102 tests green, `verify` OK (byte-reproducible; born-cited gate passes — every leaf cites `lobvm-benziger-1915` with a page locator). - Workspace: `composer check` green (phpcs `[OK]`, phpstan clean, 1247 tests / 145,842 assertions / 1 pre-existing skip); `freeze-golden-year.php` accepted the move. - **Corpus-driven digest move**: goldenDigest `33a2f471 → dfbdc576`, corpusContentDigest `→ 4aadf46b`, corpusVersion `1962-2026-07-19.2`; engineVersion stays `0.5.0` (GoldenProvenanceLock: MANIFEST-delta ⇒ corpus-driven). Both commits signed + verified. Still deferred (flagged): the other three hours (Matins, Vespers, Compline), the Advent/Christmas seasonal forms + date-driven selection, and the psalter cross-check.
Add Prime, Terce, Sext, and None (per-annum) to the Little Office BVM, continuing
the Stage 4b seed after Lauds. Each hour: the hymn Memento rerum Conditor first,
then one antiphon over its three psalms, a little chapter, a versicle, and its own
per-annum collect. Psalm schemes (Benziger's post-1911 Pius X cursus): Prime 53/84/116,
Terce 119/120/121, Sext 122/123/124, None 125/126/127 — referenced into the Stage-2
psalter streams, not re-transcribed.

Propers transcribed verbatim from lobvm-benziger-1915: English from the Wikisource
proofread rectos, Latin read from the Commons verso page-scans (two passes), each leaf
cited to its printed page. The Latin season heading (Extra Adventum / Extra et post
Adventum) governs where the English proofread season labels disagree. The hymn is the
same word-for-word at all four hours; the per-annum collect differs per hour.

Corpus-driven move: corpusVersion 1962-2026-07-19.1 -> .2; the golden re-freeze follows.
chore(golden): re-freeze the golden year for the Little Hours seed
All checks were successful
ci / check (7.4) (pull_request) Successful in 2m8s
ci / check (8.3) (pull_request) Successful in 1m58s
ci / check (8.1) (pull_request) Successful in 1m55s
ci / check (8.2) (pull_request) Successful in 2m1s
ci / validate (1954) (pull_request) Successful in 29s
ci / validate (1955) (pull_request) Successful in 29s
ci / validate (1962) (pull_request) Successful in 29s
ci / validate (novus-ordo-2002) (pull_request) Successful in 29s
ci / validate (overlays) (pull_request) Successful in 31s
ci / corpus-verify (pull_request) Successful in 12s
CodeQL / Analyze (actions) (pull_request) Has been skipped
pr-title / lint (pull_request) Successful in 1s
project-status-rollup / rollup (pull_request) Has been skipped
35d80ef118
Corpus-driven digest move from seeding the four Little Hours: goldenDigest
33a2f471 -> dfbdc576, corpusContentDigest -> 4aadf46b, corpusVersion .2;
engineVersion stays 0.5.0. GoldenProvenanceLock: MANIFEST-delta => corpus-driven.
fix(office): match two Little Hours collect accents to the Benziger scan
Some checks failed
ci / check (8.1) (pull_request) Has been cancelled
ci / check (8.2) (pull_request) Has been cancelled
ci / check (8.3) (pull_request) Has been cancelled
ci / check (7.4) (pull_request) Failing after 2m18s
ci / validate (1954) (pull_request) Has been cancelled
ci / validate (1955) (pull_request) Has been cancelled
ci / validate (1962) (pull_request) Has been cancelled
ci / validate (novus-ordo-2002) (pull_request) Has been cancelled
ci / validate (overlays) (pull_request) Has been cancelled
ci / corpus-verify (pull_request) Has been cancelled
CodeQL / Analyze (actions) (pull_request) Has been cancelled
pr-title / lint (pull_request) Has been cancelled
769ad678fe
Adversarial review caught two silent normalizations toward standard accentuation
in the Latin collects:
  - Prime collect: defensióne -> defensíone (Benziger prints the acute on the i, p.210)
  - None collect:  Famulórum  -> Famulorum  (the incipit/drop-cap word is unaccented
                   as printed, p.252, like Sext's 'Concede')
Both re-verified against the page-scans at magnification; kept exactly as printed per
the fidelity discipline. corpusVersion .2 -> .3; golden re-freeze follows.
chore(golden): re-freeze after the collect accent corrections
All checks were successful
ci / check (8.2) (pull_request) Successful in 2m4s
ci / check (8.3) (pull_request) Successful in 1m59s
pr-title / lint (pull_request) Successful in 1s
project-status-rollup / rollup (pull_request) Has been skipped
ci / check (7.4) (pull_request) Successful in 2m11s
ci / check (8.1) (pull_request) Successful in 1m59s
ci / validate (1954) (pull_request) Successful in 49s
ci / validate (1955) (pull_request) Successful in 30s
ci / validate (1962) (pull_request) Successful in 29s
ci / validate (novus-ordo-2002) (pull_request) Successful in 33s
ci / validate (overlays) (pull_request) Successful in 39s
ci / corpus-verify (pull_request) Successful in 12s
CodeQL / Analyze (actions) (pull_request) Has been skipped
eceb3edd05
corpusVersion .2 -> .3 (accent fixes to Prime/None collects); goldenDigest
dfbdc576 -> 06b7120d; engineVersion stays 0.5.0. Corpus-driven, lock attributed.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Directorium/Core!505
No description provided.