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
299 lines (252 loc) • 20.8 kB
Markdown
# `sahasranama/` — sources and verification notes
Internal record of which sources confirmed each sahasranama, divergences
between traditions, the editorial scope decisions, and remaining soft spots.
**Not surfaced in any user-facing field**; consumers should never display
content from this file (no source name appears in any getter output).
## Verification protocol
Each sahasranama is cross-validated against **≥ 2 independent canonical
sources** before it ships. "Independent" means traditions or digital editions
that did not derive from each other — two files that share a common origin
(e.g. a publisher's stotram and the namavali mechanically derived from it)
count as **one** source for the independence test, even when separately
proofread.
A sahasranama has **two recited surfaces**, and both are shipped:
- **`stotram`** — the chantable hymn (metered shlokas), in sections: the
pūrva pīṭhikā (invocation + Bhīṣma–Yudhiṣṭhira framing), the dhyāna
(meditation) shlokas, the **stotram proper** (the name-bearing shlokas), and
the phalaśruti (fruits of recitation).
- **`namavali`** — the thousand names broken out as individual archana lines
(`ॐ <name-dative> नमः`), offered one per flower / tulsi leaf at the archana
step of pūjā.
The Devanagari ships at **draft** quality the moment it passes the two-source
cross-check; the IAST is machine-generated and round-trip-verified (see below).
A human verification pass against a printed edition is the open debt (recorded
under Soft spots), exactly as for the Geeta and Sundarkand.
## IAST pass
Every namavali archana line and every stotram verse carries an `iast` field,
machine-generated from the Devanagari with `@indic-transliteration/sanscript`
and **round-trip-verified** (Devanagari → IAST → Devanagari must normalise back
to the original; danda runs `[।॥|.]+ → |`, ॐ↔ओम् reconciled, Devanagari digits
folded). This is the identical bar the shipped Bhagavad Geeta IAST is held to in
`scripts/audit-verify.cjs`. Anusvāra is the project-standard `ṃ` (not overdot
`ṁ`). The round-trip is asserted in `audit-verify.cjs` over all 1000 names +
every stotram verse. `reviewPending: true` is kept on the object until a human
Sanskritist signs off on the (cross-checked, but not yet human-verified)
Devanagari.
## Devanagari normalization rules applied
The shipped Devanagari is the verbatim published text, with only these
systematic, content-preserving normalizations (never word changes, never
reorderings, never silent emendations):
1. **Zero-width joiners stripped.** The published HTML inserts a ZWJ (U+200D)
inside the `शृ` ligature (`श<ZWJ>ृ` in शृङ्ग / शृणु); it is removed to yield
the canonical `शृ`. This is the same defect the Geeta audit fixed (its
`No "श्रृ" pattern` invariant) and the ashtottara module documented. Eight
lines were affected (e.g. namavali #536 महाशृङ्गाय, #763 नैकशृङ्गाय, #797
शृङ्गिणे; stotram शृणु in the pūrva/phalaśruti).
2. **NFC** applied to all Devanagari.
3. **Parenthetical pāṭhabheda apparatus dropped from the stotram verses.** The
source prints alternative readings inline in parentheses (e.g.
`(योगिहृद्ध्यानगम्यं)`, `(परिकल्पते, परिकल्पितः)`, `(रामरामेति रामेति)`); the
shipped verse carries the primary reading, and the dropped variants are not a
content change. The bracketed *optional variant verse* `(नमः समस्तभूतानाम्…
॥)` in the pūrva is likewise not shipped.
4. **Speaker-tag dashes** (`श्रीवैशम्पायन उवाच ---`) reduced to the tag
(`श्रीवैशम्पायन उवाच`), kept as its own verse.
The `ॐ <…> नमः` archana lines carry no trailing danda (matching the ashtottara
module convention); the stotram verses keep their `॥N॥` markers inline (as the
Geeta keeps its `।।C.V।।` markers).
## Per-deity record
### Vishnu — `vishnu.ts`
**Recension shipped**: the **Mahābhārata, Anuśāsana Parva, adhyāya 149** Vishnu
Sahasranama — the universally-recited version (the one Śaṅkarācārya commented
on), where Bhīṣma imparts the thousand names to Yudhiṣṭhira from the bed of
arrows. The stotram colophon confirms the source:
`ॐ तत्सदिति श्रीमहाभारते … आनुशासनिके पर्वणि भीष्मयुधिष्ठिरसंवादे
श्रीविष्णोर्दिव्यसहस्रनामस्तोत्रम्`.
**Sources consulted**:
1. **Sanskrit Documents** — `vsahasranew` (stotram, "Vishnusahasranama Stotra 1
from Mahabharat", Anuśāsana Parva 149) and `vishnaam`
(`viShNusahasranAmAvaliH 1`, the **mahābhāratāntargatā** namavali, 1000
numbered names). Clean, well-proofread Devanagari. The namavali file states
"See corresponding stotram"; it is the name-by-name breakout of the same
recension, so the two are treated as **one** source for the independence
test. Used as the authoritative Devanagari for both surfaces.
2. **Wikisource (sa.wikisource.org)** — `विष्णुसहस्रनामस्तोत्रम्`, an
independent digital edition of the stotram. Used as the **independent
second source**: the first stotram shloka (`विश्वं विष्णुर्वषट्कारो…`), the
last naming shloka (`…रथाङ्गपाणिरक्षोभ्यः सर्वप्रहरणायुधः`), and the
phalaśruti opening (`इतीदं कीर्तनीयस्य…`) were confirmed present
character-for-character (fold-match, asserted in `audit-verify.cjs`).
The other digital editions checked (Drik Panchang's 1000-names, Stotranidhi)
are JavaScript-rendered or WAF-blocked and could not be machine-verified; they
are not relied on.
**Internal coherence**: the two surfaces are the same recension and correspond
name-for-name. Boundary coherence is asserted (namavali #1 `विश्वस्मै` ↔ stotram
`विश्वं`; namavali #1000 `सर्वप्रहरणायुधाय` ↔ stotram shloka 107
`सर्वप्रहरणायुधः`). A full name-by-name reconciliation of the 1000 dative
namavali forms against the stotram's pada forms needs Sanskrit declension
reasoning and is deferred to the Sanskritist pass (Soft spots).
**Repeated names (by design).** The 1000-name count **includes repeated
names** — this is canonical, not a defect. The source's own note: *"there are
many repeated names in this nāmāvalī derived from the stotram; to get a total
of a thousand **unique** names one needs to add about 99 more; it is not needed
that the count be 1000 unique. … Commentators highlight different aspects of
Vishnu from the same name."* The namavali file flags **102** names as
repeats-of-an-earlier-name (`(see N)` markers in the source), i.e. ~898 distinct
surface forms across the 1000 slots. The `Sahasranama` type comment and the
`about` gloss both state this so consumers do not treat the list as 1000
distinct names.
**Scope — what is NOT shipped (documented omissions, not content changes):**
- **The technical nyāsa** (the `पूर्वन्यासः` block: `अस्य श्रीविष्णोर्…
विनियोगः`, the kara-nyāsa and ṣaḍaṅga-nyāsa hand-placements). This is
sampradāya-specific ritual procedure, not the hymn, and is structurally
prose ritual rather than metered verse. Many recitation editions print the
stotram without it. It can be added later if a consumer needs the full pāṭha.
- **The appended concluding shlokas** printed after the colophon (`ॐ
आपदामपहर्तारं…`, the Rāma-rakṣā-style verses, `शरीरे जर्जरीभूते…`,
`यदक्षरपदभ्रष्टं…`, and the "Alternate Concluding Shlokas"). These are popular
add-ons of mixed / other-text provenance (the source even cites Garuḍa Purāṇa
for one variant) appended to the daily pāṭha, not part of the Anuśāsana-Parva
stotram. The canonical phalaśruti **is** shipped, through the colophon and the
`कायेन वाचा…` samarpaṇa and `ॐ तत् सत्`.
**Pāṭhabheda variants** (source prints an alternate reading; we ship the primary
and record the variant here):
- namavali #63 `ॐ मङ्गल पराय नमः` — variant `मङ्गलाय परस्मै` (two-word split).
- namavali #305 `ॐ अव्यक्तरूपाय नमः` — variant `व्यक्तरूपाय`.
- namavali #621 `ॐ अविधेयात्मने नमः` — variant `विधेयात्मने`.
- namavali #774 `ॐ अनिवृत्तात्मने नमः` — variant `निवृत्तात्मने`.
- namavali #694 `ॐ वसुप्रदाय नमः` — carries an editor's `??` in the source
(vasuprada appears at both #693 and #694); retained as the source prints it.
**Soft spots (open debt):**
- A **human verification pass against a printed edition** (e.g. a Gita Press
Vishnu Sahasranama, or the Ramakrishna Math edition with Śaṅkara's bhāṣya) —
the same debt the Geeta and Sundarkand carry. The row stays `draft` and
`reviewPending: true` until then.
- A **name-by-name reconciliation** of the 1000 namavali dative forms against
the stotram pada forms (needs declension reasoning) — only the boundary names
are currently machine-asserted.
- The dhyāna section ships the seven dhyāna shlokas as the source prints them
(`क्षीरोदन्वत्…`, `भूः पादौ…`, `शान्ताकारं…`, `मेघश्यामं…`, `नमः समस्तभूतानाम्…`,
`सशङ्खचक्रं…`, `छायायां पारिजातस्य…`); some editions print a different subset.
### Lalita — `lalita.ts` (keyed under `parvati`)
**Recension shipped**: the **Brahmāṇḍa Purāṇa, Uttara-khaṇḍa** Lalitā
Sahasranāma — the Hayagrīva–Agastya dialogue (the Lalitopākhyāna frame), the
hymn composed by the eight Vāgdevatās at the Goddess's command, following the
accepted **Bhāskararāya / Saubhāgya-bhāskara** ordering (the universally-recited
recension). The naming-stotram colophon confirms the source: `॥ इति
श्रीब्रह्माण्ड पुराणे उत्तरखण्डे श्रीहयग्रीवागस्त्यसंवादे
श्रीललितासहस्रनामस्तोत्रकथनं सम्पूर्णम् ॥`.
**Deity slot**: keyed under **`parvati`** (Ishank's call). Lalitā
Tripurasundarī is the saumya (benign) supreme Goddess of the Śrī Vidyā
tradition — Śiva-Kāmeśvara's consort, traditionally identified as Pārvatī's
transcendent form (red, holding noose / goad / sugarcane-bow / flower-arrows) —
distinct from the martial Durgā slot (under which the Mahiṣāsura Mardinī stotra
already sits). Single-deity-keyed; no multi-association (the `Sahasranama` type
has no `deities?[]` field, and the getters are single-key).
**Sources consulted**:
1. **Sanskrit Documents** — `lalitacomplete` (the stotram, "lalitAsahasranAma-
stotram sampUrNa, pUrvapIThikA phalashruti sahitam") and `lalitaa1000` (the
namavali, "lalitAsahasranAmAvalI", 1000 names with no meanings). Clean, well-
proofread Devanagari. The namavali is the name-by-name dative breakout of the
same recension, so the two count as **one** source for the independence test
(as with Vishnu). Used as the authoritative Devanagari for both surfaces.
2. **Stotranidhi (stotranidhi.com)** — an independent digital edition of the
stotram (clean Devanagari). Used as the **independent second source**:
skeleton-containment of the SD naming shlokas against it is **96–98 %**
(overlapping k-gram set containment), **93.5 %** at the pada level (exact
substring), and all three landmark verses (śloka 1 श्रीमाता…समुद्यता, śloka
182 श्रीचक्रराजनिलया…, the 1000th name ललिताम्बिका) are present
character-for-character (fold-match).
**Source checked but NOT relied on**: **sa.wikisource** (`श्री
ललितासहस्रनामस्तोत्रम्`) is the **same recension and name-order** but a
typo-ridden digitization — e.g. `उद्यद्भानु`→`उद्भानु` (drops a syllable),
`मज्जद्ब्रह्माण्ड`→`मज्जद्वह्याण्ड` (garbled), Dravidian `ळ`/`रु` for `ल`/`रू`,
`चिदग्रि` for `चिदग्नि` — so a naive clean-match is only ~50 %. Rejected as the
2nd source in favour of Stotranidhi (the same posture as the Rāma-rakṣā, where
SD was cleaner than wikisource).
**Internal coherence**: the two surfaces are the same recension and correspond
name-for-name. **100/100** of the namavali's own decade markers (१०, २०, …,
१०००) align to the source name-by-name; the **10 century-marker name stems**
(#100 ब्रह्मग्रन्थिविभेदिनी … #1000 ललिताम्बिका) each appear in the naming
stotram **in order**; the boundary names are asserted in `audit-verify.cjs`
(namavali #1 `ॐ ऐं ह्रीं श्रीं श्रीमात्रे नमः` ↔ stotram śloka 1 श्रीमाता;
namavali #1000 `ॐ ललिताम्बिकायै नमः` ↔ stotram closing half-śloka ललिताम्बिका).
A full name-by-name reconciliation of the 1000 dative forms against the 182
stotram śloka padas needs declension reasoning and is deferred to the
Sanskritist pass (Soft spots), as for Vishnu.
**Distinct names (no repeats).** Unlike the Vishnu Sahasranāma (~102 repeated
names by tradition), the Lalitā namavali is **1000 distinct archana lines, 0
exact duplicates** — it is composed as a continuous poem of distinct epithets,
so the `about` gloss carries **no** repeated-names caveat.
**Section / verse counts** (determined from the source, not assumed):
- `purva` (pūrva pīṭhikā) — **70 verses**: an opening invocation (`मातः
श्रीललिते प्रसीद`), the framing stavas (numbered as independent sub-hymns
1–7, then 1–3, then 1–4), the main upodghāta (numbered 1–50), the
Agastya / Sūta / Hayagrīva speaker tags, and the closing `इति
ललितासहस्रनाम्न्युपोद्धातप्रकरणं समाप्तम्`. The sub-hymn numbering **restarts**
— that is the source's own structure, shipped as-is.
- `dhyana` — **4 meditation shlokas** (सिन्दूरारुण…, अरुणां करुणा…, ध्यायेत्
पद्मासनस्थां…, सकुङ्कुमविलेपनाम्…).
- `stotram` (the names) — **184 verses**: the **182 anuṣṭubh naming shlokas**
(densely numbered 1..182, asserted), the closing half-śloka (`श्रीशिवा
शिवशक्त्यैक्यरूपिणी ललिताम्बिका । एवं श्रीललिता देव्या नाम्नां साहस्रकं जगुः`,
carrying the last names + "thus they sang the thousand names"), and the
Brahmāṇḍa-Purāṇa colophon.
- `phalashruti` — **90 verses**: the **87 densely-numbered phalaśruti shlokas**
(asserted), the `श्रीसूत उवाच` narrative tag, and the closing praṇāma verse
(`पाशाङ्कुशेक्षुसुमराजित… प्रणमामि देवीम्`).
- `namavali` — exactly **1000** dense `ॐ <name-dative> नमः` archana lines
(decade + century markers confirm; asserted). The names are overwhelmingly
feminine datives (-āyai / -yai), which round-trip losslessly.
Total stotram surface: **348 verses** across the four sections.
**Scope — what is NOT shipped (documented omissions, not content changes):**
- **The technical nyāsa** (the `॥ न्यासः ॥` block between the pūrva and the
dhyāna: `अस्य श्रीललितासहस्रनाम… ऋषयः`, the karanyāsa and aṅganyāsa) — the same
posture as the Vishnu nyāsa: ritual procedure, not the hymn.
- **The pañcapūjā** at the dhyāna/stotram seam (`लं पृथिवीतत्त्वात्मिकायै… रं
वह्नितत्त्वात्मिकायै… सर्वोपचारपूजां परिकल्पयामि`, the five-element offering
with the bīja-syllables लं/हं/यं/रं/वं/सं) — ritual offering, not a meditation
verse.
- **The trailing English-annotated dhyāna repost** printed after the phalaśruti
("Before we begin… reposted here with English meaning") — an SD editorial
appendix.
- **Parenthetical kalā-division annotations** interspersed in the naming stotram
(`(द्वितीया तापिनी कला १-१०० नामानि)` etc.) — editorial structural markers,
dropped (the Vishnu posture toward parenthetical apparatus).
**Editorial repairs & pāṭhabheda variants** (ship the primary; record here):
- **#973 source-truncation repair.** SD's namavali prints `ॐ शुद्धमानसायै नम`
(the `ः` and danda are dropped — a digitization truncation). Repaired to `ॐ
शुद्धमानसायै नमः`; `शुद्धमानसा` is confirmed in the SD stotram
(`…ऽऽशोभना शुद्धमानसा`) and in Stotranidhi. Asserted in `audit-verify.cjs`.
(Same kind of repair as the Geeta's missing भिः suffix at 17.25.)
- **#894 pāṭhabheda** — source prints `ॐ अयोन्यै नमः` with an inline `var
अयोनये`; the primary `अयोन्यै` is shipped, the variant dropped.
- **Mantriṇī-name pāṭhabheda** — source prints
`ॐ मन्त्रिण्यम्बाविरचितविषङ्गवधतोषितायै नमः` with a parenthetical
`(विशुक्रवधतोषितायै)` + "see a note"; the primary `विषङ्ग` reading is shipped.
- **`चिदग्निकुण्डसम्भूता`** (śloka 1) — shipped the standard SD reading;
wikisource's `चिदग्रि` is a typo.
- **Bīja prefix on name #1** — `ॐ ऐं ह्रीं श्रीं श्रीमात्रे नमः` is shipped
**verbatim** (Ishank's call): the Śrī Vidyā seed-mantras (ऐं ह्रीं श्रीं) that
traditionally precede the first name in the recited namavali. Passes the
`ॐ … नमः` archana-shape check and round-trips. The other 999 names are plain.
**Devanagari normalization**: NFC; ZWJ stripped from the `शृ` ligature (as for
the Geeta / Vishnu); the namavali decade/century markers (१०…१०००) stripped; the
3 line-wrapped namavali names rejoined; trailing danda dropped from the archana
lines (matching the ashtottara/Vishnu convention); the stotram verses keep their
`॥N॥` markers inline.
**Soft spots (open debt):**
- A **human verification pass against a printed edition** (a Gita Press Lalitā
Sahasranāma, or the Ramakrishna Math / Bhāskararāya *Saubhāgya-bhāskara*
edition) — the same debt the Geeta, Sundarkand and Vishnu carry. The row stays
`draft` and `reviewPending: true` until then.
- A **name-by-name reconciliation** of the 1000 namavali dative forms against the
182 stotram śloka padas (needs declension reasoning) — only the boundary names
and the 10 century names are currently machine-asserted.
- The pūrva pīṭhikā framing stavas (the 1–7 / 1–3 / 1–4 sub-hymns before the
upodghāta) ship as the source prints them; some editions print a different
subset of the framing verses.
## Deities not yet shipped
Shiva, Ganesha, and Lakshmi sahasranamas are planned for later Phase 11 passes
(one deity at a time), each with its own per-deity record here. `getSahasranama`
returns `undefined` for them until then.