Log the Sunday Matins Gospel-pericope sweep in TODO.md
Deploy / deploy (push) Successful in 1m54s

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
2026-09-03 17:07:14 -04:00
parent 750bea4cff
commit bcbc93732f
+84
View File
@@ -5108,3 +5108,87 @@ spot-checks of the regenerated files.
committed) confirming Epiphanytide/Eastertide/Ascensiontide/Pentecost/Sacred-Heart plain days committed) confirming Epiphanytide/Eastertide/Ascensiontide/Pentecost/Sacred-Heart plain days
now show the right doxology and Advent/Lent plain days are byte-identical to their pre-change now show the right doxology and Advent/Lent plain days are byte-identical to their pre-change
text. text.
### Sunday Matins Nocturn 3: bare Gospel incipits authored in full, all 48 remaining Sundays (2026-09-03)
User noticed a real gap while praying Matins on a Sunday: Nocturn 3 showed St. Augustine's
homily with no Gospel citation or text above it, just the patristic commentary starting cold.
Root cause was this project's own standing convention (see the temporal-nocturn-sweep entries
above): every Sunday's Matins source gives Nocturn 3's Gospel pericope as a bare "Et réliqua"
incipit (e.g. "Homo quidam fecit cœnam magnam... Et réliqua"), and this project's authoring
passes deliberately skipped transcribing it, keeping only the homily as an `isGospel: false`
lesson — noted at the time as "sourcing that properly would need live-CGI queries per date, out
of scope for this pass." The mechanism to *render* a paired Gospel+homily as one atomic part
already existed and worked correctly (`buildReadingPool` in `hours/matins.ts`, done 2026-08-28)
— post-pentecost-15.yml was the one file that already had a full Gospel, which is what made the
asymmetry visible as a real content gap rather than a missing feature.
Closed for all 41 remaining Sunday `nocturn-readings` files that had exactly one homily-only
Nocturn 3 entry: `post-pentecost-{02..14,16..24}` (22), `post-epiphany-{1..6}` (6),
`septuagesima`/`sexagesima`/`quinquagesima` (3), `lent-{1..4}` (4),
`easter-octave`/`easter-{3..6}` (5), `sunday-after-ascension` (1), plus Trinity Sunday
(`post-pentecost-01.yml`, which has *two* Nocturn 3 Gospel+homily pairs — its own, and the
displaced First Sunday after Pentecost's commemoration).
**Sourcing method, better than the live-CGI-per-date approach originally assumed necessary**:
the reference engine's Missale (`web/www/missa/Latin|English/Tempora/<id>.txt`) files carry the
same Sunday's full `[Evangelium]` — the Mass Gospel and the Matins Nocturn 3 Gospel are the same
pericope — keyed by the identical `<Season><N>-0` id already recorded in each `nocturn-readings`
file's own header comment (e.g. `post-pentecost-14``Pent14-0`). Reading that file directly is
both more reliable and far faster than per-date live-CGI queries, which turned out to be a
dead end here anyway: a live query landed on whatever Sunday the *live engine's own* calendar
assigns to that specific date, which doesn't always match vu's blended calendar's numbering for
the same nominal week (confirmed by one query returning the wrong pericope, Luke 14:26-35
instead of the expected Luke 14:16-24, for a date with a commemorated saint). One exception:
Trinity Sunday's second reading (the displaced First Sunday after Pentecost's own Gospel, Luke
6:36-42) has no live date to query at all, since Trinity permanently occupies that slot every
year — found instead in `missa/Latin/Tempora/Pent01-0a.txt`, the reference engine's own
preserved pre-Trinity-displacement Mass propers for that Sunday.
Each new entry is `isGospel: true`, inserted immediately before the existing homily entry in
the same Nocturn 3 group (satisfying `buildReadingPool`'s adjacency-pairing check with no
mechanism changes needed), citation/text sourced verbatim from the Missale bilingual pair, no
`responsory` of its own — the existing single responsory stays attributed to the homily/final
reading, unchanged, per each file's own already-documented provenance. Fixed two English-text
artifacts found while transcribing (a stray leading "v." verse-marker on three Eastertide
Gospels' English text, `easter-{4,5,6}.yml`; one line with a stray extra leading space,
`post-pentecost-19.yml`) rather than reproducing them. Every touched file's header comment got a
short "Update (2026-09)" note explaining the new sourcing, without rewriting the original
sweep-method prose.
`npm test` (2021 passed, all 47 files) and `tsc --noEmit`/`vite build` both pass. Spot-verified
via a scratch test (not committed) against `resolveOrdo('matins', ...)` on each id's real Sunday
date, confirming a single `kind: 'gospel'` part with a nested `homily` field appears (not two
split lessons) for post-pentecost-14 (the date that surfaced the bug), post-pentecost-02,
Trinity Sunday (both pairs), post-epiphany-1, septuagesima, easter-octave, and
sunday-after-ascension.
**Follow-up, same day**: a second pass over the same file shape (`nocturn: 3` / `isGospel:
false` with no paired Gospel) turned up 7 more Sundays this first pass missed —
`advent-{1..4}`, `christmas-octave-sunday`, `passion-sunday`, `palm-sunday` — bringing the
total to 48. Same method (Missale `[Evangelium]`, keyed by each file's own header-documented
id: `Adv1-0``Adv4-0`, `Nat1-0`, `Quad5-0`, `Quad6-0`), with one real wrinkle: **Palm Sunday's
Missale `[Evangelium]` tag is the Passion narrative** (Matt 26-27, read at Mass itself), not
the Matt 21:1-9 entry-into-Jerusalem pericope this Nocturn 3's homily (St. Ambrose on Luke,
Bk. 9) is actually about — that shorter Gospel is proclaimed earlier, at the Blessing of Palms,
embedded in `Quad6-0.txt`'s own `Benedictio Palmorum` section rather than under its
`[Evangelium]` tag. Sourced from there instead, confirmed by cross-checking the citation against
the file's own existing header comment, which already named Matt 21:1-9 as the homily's true
subject. `advent-4`'s Missale Latin text is itself a cross-reference
(`@Tempora/Adv3-6`) rather than inline — resolved by reading `Adv3-6.txt` directly, same
transparent-reference-following already used elsewhere in this project's sourcing.
Discovered one real, useful regression while verifying: `tests/calendar/
vigil-of-christmas-sunday.test.ts` asserted exactly one Matins Gospel on the rare Sundays where
Advent 4 lands on Dec 24 and the Vigil of Christmas wins outright with Advent 4 commemorated
(2023-12-24, 2028-12-24) — true only because Advent 4 previously had no Gospel content to
contribute. With Advent 4's own Gospel now authored, `buildReadingPool`'s existing (unchanged)
commemoration-pooling logic correctly surfaces *both* Gospels — Vigil's own (Matt 1:18-21, St.
Jerome) and Advent 4's own commemorated one (Luke 3:1-6, Pope St. Gregory the Great) — matching
the same generous-commemorations behavior the test already expected of Lauds's two collects on
that same date, just above it in the same file. Updated the test's assertion and its own
explanatory comment to expect and name both, rather than narrowing the new content back to fit
the old, incomplete assertion.
Full suite re-run after this follow-up: `npm test` (2021 passed, 47 files) and `npm run build`
(`tsc --noEmit` + `vite build`) both pass.