# Muhūrta Text Sources and Sanskrit Ślokas

## The Canonical 30 Muhūrta Sequence

| Day Muhūrtas | Night Muhūrtas |
|---|---|
| 1. Rudra | 1. Īśa (Īśvara) |
| 2. Ahi | 2. Ajapāda |
| 3. Mitra | 3. Ahirbudhnya |
| 4. Pitṛ | 4. Pūṣā |
| 5. Vasu | 5. Aśvinī |
| 6. Udaka | 6. Yama |
| 7. Viśvedeva | 7. Vahni |
| 8. Vidhātṛ | 8. Dhātṛ |
| 9. Brahmā | 9. Candra |
| 10. Indra | 10. Aditi |
| 11. Indrāgni | 11. Ījya (Bṛhaspati) |
| 12. Nirṛti | 12. Viṣṇu |
| 13. Toyapa | 13. Arka |
| 14. Aryamā | 14. Tvaṣṭṛ |
| 15. Bhaga | 15. Vāyu |

---

## Primary Sources for the 30-Devatā Sequence

### 1. Nārada Saṃhitā
**Reference:** Muhūrtādhyāya 9.1–5

```sanskrit
दिवा मुहूर्ता रुद्राहिमित्रपित्र्यवसूदकम् ।
विश्वे विधातृब्रह्मेन्द्रा इन्द्राग्निनिऋतितोयपाः ॥
अर्यमा भगसंज्ञाश्च विज्ञेया दश पञ्च च ।
ईशाजपादहिर्बुध्न्याः पूषाश्च यमवह्नयः ॥
धातृचन्द्रादितिज्याख्या विष्ण्वर्कत्वष्टवायवः ।
अह्नः पञ्चदशो भागस्तथा रात्रिप्रमाणतः ॥
मुहूर्तमानं द्वे नाड्यौ कथिते गणकोत्तमैः ।
```

### 2. Kāśyapa Quotation in Vṛddha Vasiṣṭha Saṃhitā
**Reference:** Vṛddha Vasiṣṭha Saṃhitā, Muhūrtādhyāya (Chapter 17, 2–5)

```sanskrit
दिवामुहूर्ता रुद्राहि मित्राः पितृवसूदकम् ।
विश्वे विधाता वैरिञ्चिः शक्रेन्द्राग्न्यसुराम्बुपाः ॥
अर्यमा भगसंज्ञाश्च क्रमशो दश पञ्च च ।
रुद्राजपादहिर्बुध्न्यपूषाश्च यमवह्नयः ॥
धातृचन्द्रादितीज्याख्यविष्ण्वर्कत्वष्टवायवः ।
रात्रिसंज्ञा मुहूर्तास्ते क्रमात् पञ्चदश स्मृताः ॥
अह्नः पञ्चदशो भागो मुहूर्तो यस्तथा निशि ।
एकाधिपे मुहूर्तस्य धिष्ण्यस्य च तथा भवेत् ॥
```

### 3. Vṛddha Vasiṣṭha Saṃhitā Variant Mnemonics
**Reference:** Vṛddha Vasiṣṭha Saṃhitā, Muhūrtādhyāya (from editions showing verse ~9)

**Mnemonic śloka (day muhūrtas):**
```sanskrit
शिवसर्पमित्रपितरो वसुजलविश्वान् जजटुहिणः ।
सुरपद्धिदैवदनुजाः शम्बरनाथार्यमाख्यभगाः ॥
```

**Gloss / names (from the text):**
शिव, सर्प, मित्र, पितर, वसु, जल, विश्व, अज, जटु, हिण, सुर, पद, धि, दैव, दनुज, शम्बर, नाथ, अर्यम, भग

**Explicit listing (क्रमानुसार from the edition):**

**दिवस मुहूर्ता:**
रुद्र, आहि, मित्र, पित्र, वसु, उदक, विश्व, विधि, ब्रह्म, इन्द्र, इन्द्राग्नि, राक्षस, वरुण, अर्यम, भग

**रात्रि मुहूर्ता:**
ईश, अजपाद, अहिर्बुध्न्य, पूषा, अश्विन, यम, अग्नि, धाता, चन्द्र, आदित्य, जीव, विष्णु, अर्क, त्वष्टा, वायु

(Note: This variant uses common synonyms: शिव for रुद्र, सर्प for आहि, जल for उदक, राक्षस for निऋति, etc. Matches the Nārada/Kāśyapa family.)

From the same tradition (Vṛddha Vasiṣṭha edition):

```sanskrit
रुद्राहिमित्रपित्र्यवसूदकम् । विश्वे विधातृब्रह्मेन्द्रेन्द्राग्न्यसुराम्बुपाः ।।
रुद्राजपादहिर्बुध्न्यपूषाश्च यमवह्नयः । धातृचन्द्रादितीज्याख्यविष्ण्वर्कत्वष्टवायवः ।।
```
(Pañcadaśaḥ – the fifteen for day and night.)
---

## Practical Mnemonics & Digest Traditions

### 1. Karmakāṇḍa / Muhūrta Digest Ślokas

**Day:**
```sanskrit
रुद्राख्योरगमित्रपित्र्यवसवो वार्याख्य विश्वेविधि र्ब्रह्मेन्द्रेन्द्र हुताशदैत्यवरुणा अप्यर्यमाख्यो भगः ।
एते पंचदशक्रमात्तु दिवसे ज्ञेया मुहूर्ता भगः, चेन्द्राग्नी अहिदैत्यरौद्रपितरस्त्याज्यास्तु शेषाः शुभाः ॥
```
**Night:**
```sanskrit
रात्रौ पंचदशेश्वराज चरणाहिर्बुध्न्य पूषाभिधा, नासत्यान्तक वह्निधातृ शशिनश्चादित्य जीवाच्युताः ।
अर्कत्वष्ट्र समीरणांशुभविधौ चत्वार एव शुभाः, रौद्राजाङ्घि यमाग्नयो यदुडुपो यस्मिन्क्षणे यत्फलम् ॥
```

### 2. Bṛhat-saṃhitā / Pañcāṅga Mnemonic Tradition

**Day Muhūrtas:**
```sanskrit
रुद्रोऽहिश्च मित्रश्च पितरो वसवस्तथा ।
विराजो विश्वदेवाश्च विधिर्ब्रह्मा शतक्रतुः ॥
इन्द्राग्निश्च निऋतिर्वरुणोऽर्यमा भगस्तथा ।
एते पञ्चदश प्रोक्ता दिवा मुहूर्ताधिपाः क्रमात् ॥
```

**Night Muhūrtas:**
```sanskrit
ईशोऽजपादहिर्बुध्न्यः पूषा चाश्विनौ यमः ।
अग्निर्विधाता चन्द्रश्च आदित्यो जीव एव च ॥
विष्णुस्त्वष्टार्को वायुश्च नक्तं पञ्चदश स्मृताः ।
```

---

## Alternate Vedic Muhūrta Taxonomies

The Taittirīya Brāhmaṇa preserves an older, qualitative Vedic naming system. Rather than using the later devatā-based sequence, it assigns distinct names reflecting energetic signatures and luminosity to both broader time portions and individual muhūrtas.

### Taittirīya Brāhmaṇa Time-Segment Names (3.10.1.1–4)

**Day-Portion Names (Bright Fortnight):**
```sanskrit
संज्ञानं विज्ञानं प्रज्ञानं जानदभिजानत् । संकल्पमानं प्रकल्पमानम् ॥
उपकल्पमानं संवत्सरं संवत्सरप्रज्ञानं स्वर्गं स्वर्गप्रज्ञानम्। उत्तममुत्तमप्रज्ञानं कल्याणम् ॥
```

**Night-Portion Names (Bright Fortnight):**
```sanskrit
दर्शा दृष्टा दर्शता विश्वरूपा सुदर्शना । आप्यायमाना प्र्यायमाना प्र्याया सुनृतेतिरा ॥
आपूर्यमाण पूर्यमाण पुरयन्ती पूर्णा पौर्णमासी ॥
```

**Daylight Muhūrta Names:**
```sanskrit
चित्रः केतुः प्रभा नभान् सम्भान् ज्योतिष्मान् तेजस्वान् । आतपन्तपन्नभितपन् रोचनो रोचमानः शोभनः शोभमानः कल्याणः ॥
```
*Daylight muhūrtas heavily emphasize concepts of luminosity and radiant solar energy (Citrā through Kalyāṇaḥ).*

**Nighttime Muhūrta Names:**
```sanskrit
सविता प्रसविता दीप्ता दीपायन् दीप्यमानः ज्वलन् ज्वालिता तपन् । वितपन् शान्तपन् रोचनो रोचमानः शुम्भः शुम्भमानो वामः ॥
```
*Night muhūrtas govern distinct phases of illumination, burning, and eventual pacification (Savitā through Vāmaḥ).*

**Prati-Muhūrtas (Sub-divisions):**
```sanskrit
इदानीं तदानीमेतर्हि क्षिप्रमजिरमाशु निमेषः फणो द्रवन्नतिद्रवन् । त्वरन्त्वरमाण आशुरासीयन् जवः ॥
```

**Reference:** 
*Taittirīya Brāhmaṇa.* Cited via B.V. Subbarayappa & K.V. Sarma, *Indian Astronomy: A Source Book*, 1985.

---

## Base Quality vs Weekday Durmuhūrta (Engine Architecture)

The 30 Muhūrtas have two **distinct** layers of auspiciousness rules that must be kept separate:

### 1. Base Muhūrta Quality (MuhurtaQuality)

Derived directly from the Muhūrtādhyāya texts (Nārada Saṃhitā and Kāśyapa quoted in Vṛddha Vasiṣṭha Saṃhitā):

- **Day tyājya / pāpa (Inauspicious):**  
  Rudra, Ahi/Sarpa, Pitri, Indragni, Nirriti/Daitya, Bhaga

- **Night tyājya / krūra (Inauspicious):**  
  Isha/Raudra, Ajapada, Yama, Vahni/Agni

- **All others:** Generally **śubha** (Auspicious), subject to other factors.

This is a fixed, context-independent classification of the devatā-rulers themselves.

Implemented as:
- `Muhurta::getBaseQuality()` → returns `'Inauspicious'` or `'Auspicious'`
- `Muhurta::isBaseAuspicious()`
- `Muhurta::getMuhurtaBaseQualityMap()` (full explicit 30-entry array for audit)

### 2. Weekday Durmuhūrta (Separate Overlay)

This is the Nārada Saṃhitā weekday rule for muhūrtas to avoid in śubha-karma (explicitly called **Durmuhūrta** in Karmakāṇḍa digests and Muhūrta Chintāmaṇi commentary).

**Sanskrit (Nārada):**
```
अर्यमा राक्षसब्राह्मौ पित्र्याग्नेयौ तथाभिजित् ।
राक्षसापो ब्रह्मपित्र्यौ भौजंगेशाविनादिषु ॥
वारेषु वर्जनीयास्ते मुहूर्ताः शुभकर्मसु ॥
```

**Correct schedule (authoritative 0-based enum indexes):**

```php
0 => [13],      // Sunday: Aryaman
1 => [11, 8],   // Monday: Nirriti + Brahma
2 => [3, 21],   // Tuesday: Pitri + Vahni
3 => [7],       // Wednesday: Vidhatr / Abhijit
4 => [11, 5],   // Thursday: Nirriti + Udaka
5 => [8, 3],    // Friday: Brahma + Pitri
6 => [1, 15],   // Saturday: Ahi + Isha
```

**Correct readable table (1-based muhūrta positions vs. 0-based enum index):**

| Weekday   | Classical names               | 1-based muhūrta positions | 0-based enum indexes |
|-----------|-------------------------------|---------------------------:|----------------------:|
| Sunday    | Aryaman                       | 14                        | 13                    |
| Monday    | Nirriti/Rākṣasa + Brahmā      | 12, 9                     | 11, 8                 |
| Tuesday   | Pitṛ + Vahni/Agni             | 4, 22 (overall)           | 3, 21                 |
| Wednesday | Vidhātṛ / Abhijit / Vidhi     | 8                         | 7                     |
| Thursday  | Nirriti/Rākṣasa + Udaka/Jala  | 12, 6                     | 11, 5                 |
| Friday    | Brahmā + Pitṛ                 | 9, 4                      | 8, 3                  |
| Saturday  | Ahi/Sarpa + Īśa/Śiva          | 2, 16 (overall)           | 1, 15                 |

**Important numbering note:**

- `muhurta_number` in output tables = 1-based **within daytime (1–15)** or **within nighttime (1–15)** separately.
- `index` (new in rows) = absolute 0-based enum value (0–29) across the full day+night sequence. This is the reliable key for the Nārada rule.
- Sunday Aryamā = 14th muhūrta of the day = index 13 (not 13th).
- Wednesday Abhijit/Vidhatr = 8th muhūrta = index 7.
- Etc. Never mix the two numbering systems when describing rules.

Implemented as:
- `Muhurta::getWeekdayDurMuhurtaIndexes(int $varaIndex)` — **preferred** (exact 0-based)
- `Muhurta::getWeekdayDurMuhurtaNames(int $varaIndex)` — derived for readability
- Used by `DailyPeriodsCalculator::calculateDurMuhurta()` (filters using `index`) → `Dur_Muhurta_Full_Day`

### Why the Separation Matters

Traditional texts (Nārada Saṃhitā Muhūrtādhyāya, Vṛddha Vasiṣṭha, Karmakāṇḍa digests, Muhūrta Chintāmaṇi) present the base pāpa/krūra (tyājya) list first, then give the weekday-specific Durmuhūrta prohibitions independently. The Nārada verse uses the 15+15 devatā sequence to identify the ones to avoid per vara.

Mixing base quality with weekday Dur would lose fidelity to the sources.

In the output:
- `Muhurta_Full_Day` rows now include:
  - `'quality'` + `'is_auspicious'` (base)
  - `'muhurta_number'` (1-based within Day / within Night)
  - `'index'` (0-based absolute, used by Dur rule)
- `Dur_Muhurta_Full_Day` is the additional weekday-filtered list (with `is_auspicious` forced false for the matching indexes).

See:
- `src/Core/Enums/Muhurta.php` (MUHURTA_BASE_QUALITY + getWeekdayDurMuhurtaIndexes)
- `DailyPeriodsCalculator.php` (calculateMuhurtaTable + calculateDurMuhurta)