UNPKG

hindu-devotional-texts

Version:

Hand-curated, typed, authoritative Hindu devotional content — aartis, chalisas, kathas, stotras, mantras, ashtottaras & sahasranamas, Vedic suktas, daily prayers, puja vidhi, Navratri, tirthas, the festival/ekadashi calendar, and full scriptures (Bhagavad

351 lines (302 loc) • 23.6 kB
# `festivals/` — sources and verification notes Internal record of what the Festivals & Vrats (observance reference) module ships, how it was sourced, the normalisations applied, and the remaining soft spots. **Not** surfaced in any user-facing field — the one exported prose object, `FESTIVAL_SOURCES`, is a deliberately source-free disclaimer (it names no references); research provenance lives here and in code comments only. ## What this module is Descriptive observance reference, as a standalone module (like `tirtha/` and `vaar/` — no `Category` value, no `getContentForDeity` wiring; reverse lookup via `getFestivalsForDeity`). One unified `FestivalEntry` shape discriminated on `FestivalCategory` (`ekadashi | tithi-vrat | festival`), with category-specific optional fields and cross-link arrays into the existing modules. **Description-only — NO dates, NO panchang.** Each entry names the *tithi / pakṣa / month* an observance falls on (those are NAMES, fully in scope) but ships **no computed calendar date or time** — date calculation is deliberately out of scope (asserted by an audit invariant that rejects any Gregorian year or clock time in a user-facing field). This is **researched, cross-checked, shipped-provisional** content — the same footing as the puja/tirtha/vaar modules, not the hand-typed-from-one-canonical- text footing of the aartis/chalisas. Every story is a **sense-summary** anchored to the cited text (never a copied translation), and every entry ships `reviewPending: true`. | Batch | `category` | Count | Status | |---|---|---|---| | Ekādaśīs (24 regular + 2 Adhika-māsa) | `ekadashi` | 26 | `draft` (Batch A) | | Tithi-vrats (Pradoṣa / Sankaṣṭī / Pūrṇimā / Amāvasyā / Masik Śivarātri / Vinayaka Chaturthī) | `tithi-vrat` | 6 | `draft` (Batch B + E) | | Festivals (Mahāśivarātri, Janmāṣṭamī, Navarātri, Dīwālī, …) | `festival` | 31 | `draft` (Batch C + D + E) | | **Total shipped** | | **63** | | ## Decisions taken (Ishank, 2026-06-01) 1. **Standalone module** like `tirtha/` — no `Category` value, no `getContentForDeity` wiring; reverse lookup via `getFestivalsForDeity`. 2. **Unified `FestivalEntry` + discriminator**, not a per-category discriminated union (so `getAllFestivals()` returns one array type). 3. **26 flat Ekādaśī entries** (not a 12×2 grid): the 24 per-month names + the 2 Adhika-māsa Ekādaśīs (Padminī, Paramā) flagged `isAdhikaMaasa: true`. 4. **Fuller paragraph stories** (not just significance) — so this is a researched authoring block, cross-checked ≥2 sources per entry. 5. **`KathaSlug` typed cross-link** (the type already existed in `kathas/`; just referenced here) alongside `PujaSlug` / `MantraSlug` / `SuktaSlug` / `StotraSlug` typed links and a loose `scriptureSlug`. ## Sourcing posture (Ekādaśīs) The 24 names + their month/pakṣa were taken from the English Wikipedia "Ekadashi" enumeration and cross-checked against the per-Ekādaśī vrat-katha pages. The **stories** were anchored, wherever possible, to the actual **translated Padma Purāṇa** text (the Kriyāyogasāra Ekādaśī-māhātmya, Uttara- khaṇḍa chapters ~38–61, Kṛṣṇa narrating to Yudhiṣṭhira) on a public Purāṇa library, then cross-checked against ≥1 independent vrat-katha page. The intercalary Padminī/Paramā pair was cross-checked across multiple devotional references. (Per house style, none of those digitization sources is named in any shipped field; `storySource` names only the **scriptural origin** — the Purāṇa + narrator frame — which is content, like a sūkta's `vedicSource`.) ### Month / pakṣa scheme Month names follow the **Pūrṇimānta** scheme used by the standard lists: a kṛṣṇa-pakṣa Ekādaśī is named for the month whose Pūrṇimā *follows* it, so it shifts one month earlier in the **Amānta** reckoning (e.g. **Ajā** = Bhādrapada-kṛṣṇa Pūrṇimānta = Śrāvaṇa-kṛṣṇa Amānta). The data orders the 24 Chaitra → Phālguna, kṛṣṇa-pakṣa entry first within each month; the 2 Adhika-māsa Ekādaśīs are appended (they are intercalary and recur only once every ~3 years). ### `storySource` attributions - **Default (most entries):** Padma Purāṇa (Ekādaśī-māhātmya), Kṛṣṇa → Yudhiṣṭhira. Nirjalā keeps the inner frame (Vyāsa → Bhīma); Kāmikā keeps its inner frame (Brahmā → Nārada). - **Exceptions (genuine departures from the Padma-Purāṇa pattern):** - **Āmalakī** → **Brahmāṇḍa Purāṇa** (attributed by two independent sources). - **Pauṣa Putradā** and **Ṣaṭtilā** → **Bhaviṣyottara Purāṇa** *tradition* (the popular katha frames it as Kṛṣṇa's discourse without naming a text; "Bhaviṣyottara" is the standard traditional attribution but the precise chapter is not confirmed — flagged as a soft spot below). ## Cross-links wired - **Every Ekādaśī** → `deity: 'vishnu'` + `mantraSlugs: ['om-namo-narayanaya']` (the Vaiṣṇava chant; all 26). - **Mokṣadā** → `scriptureSlug: 'bhagavad-geeta'` (tradition identifies the day with Gītā Jayantī). - **Vijayā** → `mantraSlugs: ['om-namo-narayanaya', 'rama-taraka']` (the story is Rāma's pre-Laṅkā vrat). - **Devaśayanī** and **Prabodhinī** → `suktaSlugs: ['narayana-suktam']` (the Cāturmāsya sleep/awakening of Viṣṇu). The audit asserts every cross-link slug resolves to a real shipped item. ## Sourcing posture (tithi-vrats — Batch B, 2026-06-01) Five recurring tithi-vrats, each cross-checked across ≥2 references (English Wikipedia + vrat-kathā / panchang-style pages), shipped `reviewPending`. Per the Batch-A precedent, `story` / `storySource` are **optional** here — present where a single text is confidently attributable, soft where multi-Purāṇic, absent where there is no single narrative at all: - **Pradoṣa Vrat** (Trayodaśī, both pakṣas → śiva). Significance = the twilight (pradoṣa-kāla) Śiva fast; the weekday variants (Soma/Bhauma/Guru/Śukra/Śani) are noted in prose, **not** split into separate entries. Story = the samudra- manthana / Nīlakaṇṭha account ending in Śiva's Pradoṣa-nṛtya between Nandi's horns. `storySource` is **soft** — the account spans the Śiva / Skanda (and Padma) Purāṇas with no single confident locus. - **Sankaṣṭī Chaturthī** (Kṛṣṇa Chaturthī, monthly → gaṇeśa). Significance = the Sankaṣṭa-hara fast to moonrise; Aṅgārakī (Tuesday) noted. Story + `storySource` = **Gaṇeśa Purāṇa (Upāsanā-khaṇḍa)**, the boon to the sage Aṅgāraka (Maṅgala), named by two independent references. - **Pūrṇimā (Satyanārāyaṇa Vrat)** (full moon, monthly → vishnu). Story + `storySource` = **Skanda Purāṇa (Revā-khaṇḍa)**, Sūta → the sages at Naimiṣāraṇya — the standard attribution (recension split flagged below). Cross- links the existing `satyanarayan` katha + puja. - **Amāvasyā** (new moon, monthly → **null**, pitṛ). Ships **significance-only**: the pitṛ-tarpaṇa / śrāddha observance has no single narrative text, so it carries **no `story` and no `storySource`** — the entry that exercises the optional-storySource path. Notable new moons (Mahālaya, Mauni, Somavatī, Kārtika) are named in prose. - **Masik Śivarātri** (Kṛṣṇa Caturdaśī, monthly → śiva). Ships significance-only; `storySource` is a **soft** Skanda-Purāṇa (Śivarātri-māhātmya) note. Its founding narratives (liṅgodbhava, the unwitting hunter, Śiva–Pārvatī marriage) belong to the supreme **Mahāśivarātri**, deferred to the festival batch (Batch C) to avoid duplication. ### Cross-links wired (Batch B) - **Pradoṣa / Masik Śivarātri** → `om-namah-shivaya` + `maha-mrityunjaya`, `rudrabhishek` puja, `sri-rudram` sūkta, `lingashtakam` + `bilvashtakam` stotras (Pradoṣa adds `shiva-tandava-stotram`). - **Sankaṣṭī Chaturthī** → `om-gan-ganapataye-namah`, `ganesh` puja. - **Pūrṇimā** → `satyanarayan` katha + `satyanarayan` puja, `om-namo-narayanaya`. - **Amāvasyā** → none (pitṛ observance, no roster deity). ## Sourcing posture (festivals — Batch C, 2026-06-01) Sixteen major calendar festivals, ordered through the lunar year Chaitra → Phālguna (solar Makara Sankrānti sits in its Māgha season). Each cross-checked across ≥2 references (English Wikipedia / Britannica + purāṇic / festival pages), shipped `reviewPending`. `month` / `tithi` / `paksha` ship as NAMES; multi-day spans (Navarātri's nine nights, Dīwālī's five days, Gaṇeśa Chaturthī's ten days) are carried in **prose**, never as date math (per the no-new-field decision). **Deity assignments — the judgement calls (Ishank's recommended map, executed):** | Festival | `deity` | Note | |---|---|---| | Rāma Navamī, Vijayadaśamī | `rama` | Vijayadaśamī fuses two strands → **rama** primary (Rāvaṇa-vadha); the Durgā/Mahiṣāsura strand is told in prose + `storySource`. | | Hanumān Jayantī | `hanuman` | — | | Akṣaya Tṛtīyā | `vishnu` | Multi-strand (Paraśurāma anchor); significance-only, **no `storySource`**. | | Guru Pūrṇimā | **`null`** | Honours the guru / Vyāsa; not a single-deity roster festival. Significance-only. | | Rakṣā Bandhan | **`null`** | Social / sibling festival; no roster deity. Story = Bhaviṣya-Purāṇa Indra–Śacī. | | Janmāṣṭamī, Govardhan Pūjā | `krishna` | Bhāgavata Purāṇa (Daśama Skandha). | | Gaṇeśa Chaturthī | `ganesha` | Śiva Purāṇa (birth of Gaṇeśa). | | Navarātri, Mahā Navamī | `durga` | Devī Māhātmya (Mārkaṇḍeya Purāṇa). Mahā Navamī cross-refs Navarātri for the full story. | | Dīwālī | `lakshmi` | Genuinely multi-strand (Rāma's return / Narakāsura / Lakṣmī from the churning) → **no single `storySource`**; strands in prose. | | Makara Sankrānti | `surya` | Solar festival — **no `month`/`tithi`/`paksha`** (timing is the Sun's transit), significance-only. | | Vasant Pañcamī | `saraswati` | Soft `storySource` (Devī Bhāgavata / Brahmavaivarta). | | Mahāśivarātri | `shiva` | Liṅga Purāṇa (liṅgodbhava) + Śiva Purāṇa (the hunter). Distinct from the Batch-B **Masik Śivarātri**. | | Holī | `vishnu` | Holikā Dahan = Prahlāda → **vishnu** (Narasiṃha); the Braj Rādhā–Kṛṣṇa colour-play noted in prose + cross-linked `hare-krishna-mahamantra`. | **`storySource` present** on 12 (confident single text), **omitted** on the 4 genuinely multi-strand / non-narrative days: **Akṣaya Tṛtīyā, Guru Pūrṇimā, Dīwālī, Makara Sankrānti** (these + Mahā Navamī ship significance-only — no `story`). ## Sourcing posture (festivals — Batch D, 2026-06-01) Nine further major festivals, appended to `festivals.ts` as a second calendar pass (Chaitra → Kārtika; Onam's solar Chingam in its season). Chosen to fill the **narasimha / sita / parvati / surya** roster and to light up the existing **`karva-chauth` katha** + the previously-unused **`om-janakyai-namah` / `om-parvatyai-namah`** roster mantras. Cross-checked ≥2 references, `reviewPending`. | Festival | `deity` | tithi | `storySource` | |---|---|---|---| | Chaitra (Vasanta) Navarātri | durga | Chaitra śukla 1–9 | Devī Māhātmya (story under Navarātri; new-year/Gudi-Padwa + Rāma-Navamī culmination in prose) | | Sītā Navamī (Janakī Navamī) | sita | Vaiśākha śukla 9 | Vālmīki Rāmāyaṇa (Janaka finds Sītā in the furrow) | | Narasiṃha Jayantī | narasimha | Vaiśākha śukla 14 | Bhāgavata (Saptama Skandha) | | Vat Sāvitrī Vrat | **null** | Jyeṣṭha Amāvasyā | Mahābhārata (Vana Parva, Sāvitrī-upākhyāna) | | Nāga Pañcamī | **null** | Śrāvaṇa śukla 5 | Mahābhārata (Ādi Parva, Āstīka-parva) | | Hartālikā Teej | parvati | Bhādrapada śukla 3 | soft (Śiva-Purāṇa / vrat-kathā) | | Onam | vishnu | solar (Chingam / Thiruvonam) — **no month/tithi** | Bhāgavata (Vāmana–Bali, Aṣṭama Skandha) | | Karva Chauth | parvati | Kārtika kṛṣṇa 4 | soft (vrat-kathā, Queen Vīravatī); cross-links the `karva-chauth` katha | | Chhath Pūjā | surya | Kārtika śukla 6 | **omitted** — ancient Vedic Sun festival, no single narrative (significance-only) | Deity-`null` again for the non-roster observances (Vat Sāvitrī's Sāvitrī/vaṭa, Nāga Pañcamī's serpent deities). Onam ships **no month/tithi/paksha** (solar, like Makara Sankrānti). Chhath is the only Batch-D significance-only entry. ## Sourcing posture (festivals — Batch E, 2026-06-01) Six further festivals + one tithi-vrat — the long-tail / regional set, chosen to **fill the `brahma` roster** (Gudi Padwa) and complete the Gaṇeśa-Chaturthī pair (Vinayaka Chaturthī). Cross-checked ≥2 references, `reviewPending`. | Observance | category | `deity` | `storySource` | |---|---|---|---| | Vinayaka Chaturthī | tithi-vrat | ganesha | **omitted** — bright-fortnight monthly Gaṇeśa vrat (Śukla Chaturthī), the complement to Sankaṣṭī (kṛṣṇa); significance-only | | Gudi Padwa (Ugadi) | festival | **brahma** | **omitted** — Hindu lunar new year; the Brahmā-creation belief is in prose (fills the brahma roster + `om-brahmane-namah`) | | Baisakhi (Mesha Sankrānti) | festival | surya | **omitted** — solar new year / harvest; **no month/tithi** (solar); Vishu/Puthandu/Pohela-Boishakh/Bihu folded in as regional names | | Buddha Pūrṇimā | festival | vishnu | **omitted** — the Buddha as the ninth avatāra (the Hindu framing); significance-only | | Ratha Yātrā | festival | krishna | Skanda Purāṇa (Puri Jagannātha tradition) | | Tulsī Vivāh | festival | vishnu | Padma Purāṇa (Vṛndā–Jālandhara) | | Kārtika Pūrṇimā (Dev Dīpāvalī) | festival | shiva | Tripura-saṃhāra (Śiva / Skanda Purāṇa tradition) | ### Not shipped — needs a roster decision **Skanda Ṣaṣṭhī / Thaipusam** (Kārtikeya / Murugan) were requested but are **NOT shipped**: the `Deity` union (in `src/types.ts`) has no Kārtikeya / Murugan slot, and that file is in-flight / off-limits this session. Shoehorning them into `'other'` would misrepresent a major deity, so they wait on a roster extension — once `kartikeya` (or similar) is added to the union, Skanda Ṣaṣṭhī (Kārtika śukla Ṣaṣṭhī) drops straight in. **Pongal** is already a regional name under Makara Sankrānti; **Vishu / Puthandu** are folded into Baisakhi (the same Mesha Sankrānti). ## Soft spots — owed before any row moves past `draft` 1. **The three phala-stuti Ekādaśīs ship with NO story.** The translated Padma Purāṇa chapters for **Aparā**, **Kāmikā** and **Pāpāṅkuśā** are pure merit-praise (phala-stuti) with no character narrative. The popular vrat-katha pages attach king/ghost/hunter stories to them (e.g. the "hunter Krodhana" tale for Pāpāṅkuśā), but those could **not** be verified against the primary text, so they are **deliberately not shipped**; only the verified doctrinal significance ships. (Asserted by an audit invariant pinning exactly these three as story-less.) 2. **Devaśayanī ↔ Parivartinī conflation in popular sources.** Many sites attach the *King Māndhātā / three-year drought* story to **Devaśayanī (Āṣāḍha śukla)**. The Padma Purāṇa primary text places that drought story on the **Bhādrapada-śukla** Ekādaśī (its "Padmā" chapter) and gives Devaśayanī the **Viṣṇu-sleep / Vāmana–Bali** story instead — which is what ships. The Bhādrapada entry is shipped as **Parivartinī** carrying **both** strands: the dominant popular **Vāmana–Bali** association (Viṣṇu turning over in sleep, hence *Parivartinī*) **and** the Padma Purāṇa Māndhātā-drought account, with `storySource` noting the split. 3. **Padminī's queen name is contested.** Shipped as **Padminī** (queen of Māhiṣmatī, wife of Kṛtavīrya, mother of the thousand-armed Kārtavīrya Arjuna), the reading carried by the majority of sources; one major panchang site instead names the queen **Pramadā**. The king (Kṛtavīrya) and the adviser (the sati Anasūyā) are consistent across sources. The variant is recorded here, not in data. 4. **Pauṣa Putradā / Ṣaṭtilā source text unconfirmed.** Traditionally Bhaviṣyottara-Purāṇa material, but the fetched pages frame them only as "Kṛṣṇa's discourse" without naming a chapter; `storySource` says "Bhaviṣyottara Purāṇa *tradition*" rather than over-claiming a verified locus. Pavitrā (the wife in the Paramā story) is named by secondary sources only — kept in the Paramā story as the widely-told reading, flagged here. 5. **Secondary-character names + exact phala numbers are devotional-tradition level**, not critical-edition level (e.g. "fifty-seven years" of lost tapasya in Pāpamocanī; "eighty-eight thousand brāhmaṇas" in Yoginī; the merchant's city in Mohinī). Every story is `reviewPending` pending a scholar pass against a printed Padma/Brahmāṇḍa/Bhaviṣyottara Purāṇa edition — the central debt. 6. **Per-datum citation against a named printed edition** — as with the tirtha/vaar modules, this is consensus traditional material cross-checked for agreement across ≥2 references, not yet pinned line-by-line to a cited printed edition. ### Batch B (tithi-vrats) 7. **Pradoṣa & Masik Śivarātri `storySource` are soft.** Both observances are extolled across multiple Śaiva Purāṇas (Śiva / Skanda / Padma) without a single confident chapter locus; the attributions name the *tradition*, not a verified verse. The weekday-Pradoṣa phala (Soma/Bhauma/Guru/Śukra/Śani) is widely-attested devotional material, not critical-edition pinned. 8. **Satyanārāyaṇa recension split.** The kathā is carried by BOTH the Skanda Purāṇa (Revā-khaṇḍa — the attribution shipped) and the Bhaviṣya Purāṇa (Pratisarga-parvan), and the secondary character names vary by recension (the merchant as Sādhu / Lakṣapati; the kings Ulkāmukha / Candracūḍa / Tuṅgadhvaja). The story ships the widely-recited arc (poor brāhmaṇa, woodcutter, the merchant Sādhu + daughter Kalāvatī, the cowherds) under the Skanda/Revā-khaṇḍa frame; the recension variance is recorded here, not in data. 9. **Sankaṣṭī's Gaṇeśa-Purāṇa locus** (Upāsanā-khaṇḍa, Aṅgāraka's boon) is named by two references but not yet pinned to a printed edition — confident enough to attribute, flagged here as not line-verified. 10. **Amāvasyā ships no story by design** — the monthly pitṛ observance is dharmaśāstra / śrāddha custom, not a single Purāṇic narrative; only the verified significance ships, with the notable new moons named in prose. ### Batch C (festivals) 11. **Multi-strand festivals deliberately omit a single `storySource`.** **Dīwālī** (Rāma's return / Narakāsura / Lakṣmī from the churning), **Akṣaya Tṛtīyā** (Paraśurāma / Gaṅgā / Vyāsa–Mahābhārata / Akṣaya-pātra) and **Makara Sankrānti** (solar, non-narrative) carry their strands in significance prose rather than over-claiming one text. **Guru Pūrṇimā** ships significance-only as a guru/Vyāsa observance. 12. **Vijayadaśamī & Holī fuse two strands; one deity is chosen.** Vijayadaśamī → **rama** (Rāvaṇa-vadha) with the Durgā/Mahiṣāsura strand in prose + `storySource`; Holī → **vishnu** (Prahlāda/Narasiṃha, the Holikā-Dahan anchor) with the Braj Rādhā–Kṛṣṇa colour-play in prose. A consumer wanting the Devī or Kṛṣṇa angle should read the prose, not just `deity`. 13. **Mahāśivarātri's `storySource` spans two texts** — the liṅgodbhava (Liṅga Purāṇa) and the unwitting-hunter vigil (Śiva / Skanda Purāṇa); both are named and the marriage-of-Śiva-Pārvatī association (contested in the scholarship as the actual day) is **not** shipped as the founding story. Vasant Pañcamī's `storySource` is soft (Devī Bhāgavata / Brahmavaivarta). 14. **Calendar reckoning is named, not computed.** Janmāṣṭamī's month shows the Pūrṇimānta/Amānta split (Bhādrapada vs Śrāvaṇa); Mahāśivarātri notes the Phālguna/Māgha variance; Hanumān Jayantī's many regional dates are noted in prose. As with every batch, no Gregorian date or panchang time ships — these are observance descriptions, not a calendar. ### Batch D (further festivals) 15. **Vat Sāvitrī & Karva Chauth deity calls are soft.** Vat Sāvitrī is centrally the Sāvitrī–Satyavān vrat at the vaṭa (which embodies the trimūrti) — shipped **`null`** (no Sāvitrī / Yama roster slot), though some traditions foreground Gaurī. Karva Chauth's devotion is offered to Gaurī (Pārvatī) in the popular telling → **`parvati`**; neither is a single-deity festival. 16. **Hartālikā Teej & Karva Chauth `storySource` are soft** — the Pārvatī-penance and Queen-Vīravatī vrat-kathās, not pinned to a single printed locus. Hariyālī Teej (Śrāvaṇa śukla 3) is noted as the monsoon variant in prose, not shipped as its own entry. Chhath ships **story-less** (ancient Sun festival, no single narrative — the Rāma–Sītā / Draupadī–Karṇa associations are not shipped). 17. **Chaitra Navarātri overlaps the autumn Navarātri by design** — it ships significance-focused (the spring / lunar-new-year character + the Rāma-Navamī culmination), cross-referencing the `navratri` entry for the shared Mahiṣāsura story rather than duplicating it. **Maṅgalā-Gaurī remains held back** (a Śrāvaṇa-Tuesday *vāra*-vrat — no tithi anchor; it belongs nearer the `vaar/` module than here). ### Batch E (long-tail / regional) 18. **Buddha Pūrṇimā deity = `vishnu` is the Hindu-avatāra framing** — the only basis on which a primarily-Buddhist festival sits in this collection; the avatāra inclusion is itself debated (some Daśāvatāra lists carry Balarama as the ninth). Shipped significance-only, no dates (the traditional birth / enlightenment / parinirvāṇa *places* are named, not years). 19. **Gudi Padwa → `brahma` & Baisakhi → `surya` are soft calls.** Gudi Padwa / Ugadi is a new-year festival; `brahma` reflects the traditional Brahmā-created-the-cosmos-on-this-day belief (no single confident text → no `storySource`). Baisakhi is framed as Mesha Sankrānti (solar → `surya`, parallel to Makara Sankrānti); its Sikh Khālsā meaning is noted in prose, without a date. Kārtika Pūrṇimā's `storySource` is the multi-Purāṇic Tripura-saṃhāra; the Matsya-Jayantī and Guru-Nanak strands are prose-only. ## Out of scope (by design) - **No dates / no panchang.** The tithi/pakṣa/month a vrat falls on ships as a *name*; the computed Gregorian date, parana window, and hari-vāsara timings do **not** ship (an audit invariant rejects any year or clock time in a user-facing field). Date calculation remains out of scope for the whole module. - **No puja-vidhi / samagri** for the Ekādaśīs (the `Katha` module is where full vrat procedures live; no per-Ekādaśī katha slugs exist yet, so `kathaSlug` is unset on all Batch-A entries).