Update TODO.md: Vespers ordo is built, not a stub
Deploy / deploy (push) Successful in 57s

Records what shipped last session and what it still owes (its own
ferial Preces, a per-feast office-override mechanism).
This commit is contained in:
2026-08-13 20:43:08 -04:00
parent f14d00bd73
commit ce954fea9a
+16 -7
View File
@@ -1119,13 +1119,22 @@ draft-English antiphon (`tests/hours/resolve-common.test.ts`).
## Mechanism not built at all ## Mechanism not built at all
- **Vespers** (`src/hours/vespers.ts` is still a stub). First/Second Vespers - **Vespers ordo — built (2026-08)**: `src/hours/vespers.ts` now resolves a
overlap (`DayWinner.vespersFrom`) already exists as a type but nothing full ordo (opening versicle, weekday/seasonal psalmody with the 115+116
populates it for Vespers itself yet (only Compline uses `resolveEveningDay` join and 138 split, chapter/responsory/hymn/versicle bundle with
so far). Also owes its own ferial Preces once built — real 1906/1910 Advent/Lent/Passiontide/Paschaltide overrides, Magnificat with weekday-
practice has a distinct "Preces feriales Vespera" (see default antiphon fallback, day-collects) off `resolveEveningDay`, so
`lauds-preces-feriales.yml`'s header for the Lauds one, which now First/Second Vespers precedence and the cross-day commemoration
exists) with mostly-overlapping but not identical content. (`commemorationOf` — "the loser is commemorated unless the loser is
simplex", live-verified) both apply before any part runs. See
`data/hours/vespers.yml`'s header and `tests/hours/vespers.test.ts`.
**Still owes**: its own distinct ferial Preces — currently reuses
`lauds-conclusio` for the closing only; real 1906/1910 practice has a
distinct "Preces feriales Vespera" (see `lauds-preces-feriales.yml`'s
header for the Lauds one, which exists) with mostly-overlapping but not
identical content. Also has no per-feast Vespers-office override
mechanism yet (chapter/responsory/hymn/versicle are weekday/season-only,
unlike Lauds' `resolveOffice` which checks per-feast overrides first).
- **Matins** (`src/hours/matins.ts` is still a stub) — needs its own - **Matins** (`src/hours/matins.ts` is still a stub) — needs its own
resolution path (reading-candidate pool, nocturn structure), not the resolution path (reading-candidate pool, nocturn structure), not the
static parts-array pattern the other hours use. static parts-array pattern the other hours use.