Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Cosmic Rituals support, privacy, and subscription information.">
<title>Cosmic Rituals</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<main>
<div class="eyebrow">Cosmic Rituals · Native for iPhone and iPad</div>
<h1>Clarity for sacred time and practice.</h1>
<div class="card">
<p>Cosmic Rituals provides a location-aware Vedic Panchang, transparent muhurta timing, and an offline, tradition-aware Pooja Vidhi library.</p>
<p>Core calculations, saved location preferences, and ritual searches remain on the device. The app has no advertising SDK, tracking SDK, or user account system.</p>
</div>
<nav class="links" aria-label="Policies and support">
<a href="privacy/">Privacy Policy →</a>
<a href="terms/">Terms of Use →</a>
<a href="support/">Support →</a>
</nav>
<footer>© 2026 Cosmic Rituals. Ceremonial traditions vary; confirm consequential timings and formal rites with a qualified practitioner.</footer>
</main>
</body>
</html>
38 changes: 38 additions & 0 deletions docs/privacy/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Privacy Policy · Cosmic Rituals</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<main>
<div class="eyebrow">Effective July 28, 2026</div>
<h1>Privacy Policy</h1>
<p>Cosmic Rituals is designed to operate without a developer-operated account or analytics service.</p>

<h2>Information processed on your device</h2>
<p>The app processes the date, a selected city or current device location, time zone, and app preferences to calculate Panchang and muhurta information. These calculations, Pooja searches, checklists, and display preferences stay on your device. A selected calculation location and preferences may remain in local app storage until you change them or delete the app.</p>

<h2>Location</h2>
<p>If you choose “Current Location,” iOS provides coordinates while the app is in use. Cosmic Rituals uses them locally to calculate sunrise, sunset, Panchang, and muhurta times. The developer does not receive or store your location on a server. You may instead choose an offline city and can change location permission in iOS Settings.</p>

<h2>Subscriptions and payments</h2>
<p>Purchases are processed by Apple through the App Store. Cosmic Rituals receives signed entitlement status and localized product information needed to grant access. The developer does not receive your payment-card details. Apple’s handling of purchase information is governed by Apple’s privacy policy.</p>

<h2>Data collection, advertising, and tracking</h2>
<p>Cosmic Rituals does not include third-party advertising, cross-app tracking, analytics, or data-broker SDKs. The developer does not collect personal data through the app.</p>

<h2>External links</h2>
<p>The app can open source references, policy pages, App Store subscription management, and support pages at your request. Those destinations apply their own privacy practices once opened.</p>

<h2>Children</h2>
<p>The app does not knowingly collect personal information from children or anyone else.</p>

<h2>Changes and contact</h2>
<p>Material changes will be posted on this page with a revised effective date. For privacy questions, use the <a href="../support/">Cosmic Rituals support page</a>.</p>
<footer><a href="../">← Cosmic Rituals</a></footer>
</main>
</body>
</html>
57 changes: 57 additions & 0 deletions docs/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
:root {
color-scheme: dark;
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
background: #080811;
color: #f5f1ea;
}

* { box-sizing: border-box; }

body {
margin: 0;
background:
radial-gradient(circle at 80% 5%, rgba(118, 89, 170, 0.22), transparent 36rem),
radial-gradient(circle at 5% 40%, rgba(217, 150, 91, 0.12), transparent 30rem),
#080811;
}

main {
width: min(760px, calc(100% - 32px));
margin: 0 auto;
padding: 64px 0 80px;
}

.eyebrow {
color: #e5a469;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}

h1 { font-size: clamp(2.3rem, 7vw, 4.4rem); line-height: 0.98; margin: 14px 0 24px; }
h2 { margin-top: 36px; font-size: 1.35rem; }
p, li { color: #c8c3cd; line-height: 1.68; }
strong { color: #f5f1ea; }
a { color: #f1b17b; }

.card {
margin-top: 28px;
padding: 24px;
border: 1px solid rgba(229, 164, 105, 0.32);
border-radius: 24px;
background: rgba(26, 24, 35, 0.72);
backdrop-filter: blur(18px);
}

.links { display: grid; gap: 12px; margin-top: 28px; }
.links a {
display: block;
padding: 15px 18px;
border-radius: 14px;
background: rgba(255, 255, 255, 0.06);
text-decoration: none;
font-weight: 650;
}

footer { margin-top: 52px; font-size: 0.82rem; color: #89838e; }
29 changes: 29 additions & 0 deletions docs/support/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Support · Cosmic Rituals</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<main>
<div class="eyebrow">Cosmic Rituals</div>
<h1>Support</h1>
<div class="card">
<h2>Restore a subscription</h2>
<p>On the Premium screen, choose <strong>Restore Purchases</strong>. Use the same Apple Account that made the original purchase.</p>

<h2>Manage or cancel</h2>
<p>Open <a href="https://apps.apple.com/account/subscriptions">Apple subscription settings</a>. Billing and refunds are handled by Apple.</p>

<h2>Location or timing looks wrong</h2>
<p>Confirm the selected city, date, and time zone. Current Location requires permission and a fresh GPS fix. Regional observance rules can differ even when astronomical boundaries agree.</p>

<h2>Contact support</h2>
<p>Open a <a href="https://github.com/gohlerdev/Cosmic-Rituals/issues/new">support request</a> with the app version, device model, iOS version, selected city, and a description of the issue. Do not include payment details, precise home coordinates, or other sensitive information.</p>
</div>
<footer><a href="../">← Cosmic Rituals</a></footer>
</main>
</body>
</html>
40 changes: 40 additions & 0 deletions docs/terms/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Terms of Use · Cosmic Rituals</title>
<link rel="stylesheet" href="../styles.css">
</head>
<body>
<main>
<div class="eyebrow">Effective July 28, 2026</div>
<h1>Terms of Use</h1>

<h2>App license</h2>
<p>Your use of Cosmic Rituals is subject to these terms and Apple’s <a href="https://www.apple.com/legal/internet-services/itunes/dev/stdeula/">Standard Licensed Application End User License Agreement</a>.</p>

<h2>Auto-renewable subscriptions</h2>
<ul>
<li>Cosmic Rituals Premium is offered as monthly and annual auto-renewable subscriptions.</li>
<li>Eligible new subscribers may receive a 14-day free introductory trial when that offer is displayed by the App Store.</li>
<li>The subscription price and billing period are shown before purchase. Payment is charged to the Apple Account at confirmation or when an eligible free trial ends.</li>
<li>The subscription renews automatically unless auto-renew is turned off at least 24 hours before the current period ends.</li>
<li>You can manage or cancel through <a href="https://apps.apple.com/account/subscriptions">Apple subscription settings</a>. Trial eligibility is determined by Apple and is generally limited to one introductory offer per subscription group.</li>
</ul>

<h2>Traditional and astronomical information</h2>
<p>Panchang, muhurta, festival, and Pooja content is educational and ceremonial reference material. Traditions and regional observances vary. The app does not guarantee outcomes and is not medical, legal, financial, safety, or professional religious advice. Confirm consequential timing and formal rites with a qualified practitioner.</p>

<h2>Availability and acceptable use</h2>
<p>Do not use the app where an error or interruption could cause harm. You may not reverse engineer, redistribute, misuse, or interfere with the app except where applicable law expressly permits.</p>

<h2>Updates</h2>
<p>Features, calculations, content, and these terms may be updated to improve accuracy, security, legal compliance, or reliability. A revised effective date will appear here for material changes.</p>

<h2>Support</h2>
<p>For subscription or technical assistance, visit <a href="../support/">Cosmic Rituals Support</a>.</p>
<footer><a href="../">← Cosmic Rituals</a></footer>
</main>
</body>
</html>
26 changes: 16 additions & 10 deletions ios/README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,29 @@
# Cosmic Rituals — Native iOS handoff

This `ios/` section is an additive, self-contained snapshot of the completed native SwiftUI application. The GitHub repository was empty when cloned; its remote and new local history remain intact.
This `ios/` section is the canonical, self-contained native SwiftUI application.
It began as a sanitized handoff from the development checkout and now carries its
own tested accuracy and product-integrity improvements.

## Layout

- `native/` — exact sanitized snapshot of the live Xcode project
- `evidence/` — selected final simulator screenshots
- `native/` — working Xcode project, tests, and product documentation
- `evidence/` — historical handoff screenshots (not current QA evidence)

## Current product state

- Native SwiftUI application targeting iOS 26
- Six selectable light/dark visual themes with Liquid Glass surfaces and motion polish
- Ritual-now guidance, Panchang/five-limb context, Vedic ledger, location support, and saved preferences
- Sunrise-anchored Panchang, four limb transitions, three experience layouts,
location-aware timing, saved preferences, and calculation-integrity disclosure
- Privacy manifest, city data, tests, and app icon assets included
- `CosmicWidgets/` source is preserved, but it is not currently wired as an Xcode widget target and must not be presented as shipping functionality

## Verification already completed
## Historical release state

- Simulator design and experience QA completed on iPhone 17 / iOS 26.5
- Native project and unit-test target are included under `native/`
- TestFlight: version 1.0, build 3 uploaded successfully; archive/build products are intentionally excluded from source control
- The imported handoff had simulator design QA on iPhone 17 / iOS 26.5.
- TestFlight version 1.0 build 3 was uploaded from the earlier development checkout.
- Those facts do not prove that the current source is release-ready; rerun the
build, tests, and simulator QA below for every change.

## Build and test

Expand All @@ -41,11 +45,13 @@ xcodebuild \
test
```

## Snapshot provenance
## Initial-import provenance

- Copied read-only from `/Users/psy/Documents/Gohler/Cosmic-Rituals`
- Snapshot date: 2026-07-26
- Included source files: 41
- Aggregate relative-path/content SHA-256: `80bab676abbf21a77da200b60ab534e37318af6dfe6f018d099dd7a679430495`
- Original aggregate relative-path/content SHA-256: `80bab676abbf21a77da200b60ab534e37318af6dfe6f018d099dd7a679430495`
- Excluded: `.DS_Store`, user Xcode state, DerivedData, build products, archives, and signing material

`SNAPSHOT.sha256` records that import only. It is intentionally not a checksum of
the evolving canonical source tree.
1 change: 1 addition & 0 deletions ios/native/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# Xcode
build/
DerivedData/
.derived-data/
*.xcuserstate
xcuserdata/
*.moved-aside
Expand Down
90 changes: 90 additions & 0 deletions ios/native/ACCURACY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Calculation accuracy and provenance

Cosmic Rituals is an offline Panchang application. It favors deterministic,
location-aware calculations and explicit limits over unexplained precision.

## Daily reference convention

- A Panchang day is anchored to sunrise at the selected calculation location.
- Tithi, Nakshatra, Yoga, Karana, Moon sign, and the displayed Pada are evaluated
at that sunrise instant.
- If sunrise does not exist for the selected latitude and civil date, the app
does not fabricate sunrise-based schedules. The five-limb snapshot falls back
to 12:00 PM local civil time and labels that fallback in the interface.
- Dates and clock times are formatted in the calculation location's IANA time
zone, including daylight-saving transitions. They never silently inherit the
device time zone.

## Astronomical methods

| Quantity | Current method | Presentation contract |
|---|---|---|
| Julian date | Gregorian UTC conversion based on Meeus chapter 7 | Absolute instant |
| Sun longitude | Meeus chapter 25 apparent ecliptic longitude | Offline compact ephemeris |
| Moon longitude | Complete Meeus table 47.A longitude series | Offline compact ephemeris |
| Sidereal conversion | Lahiri (Chitra Paksha) ayanamsha polynomial | Named in Settings and exports |
| Sunrise / sunset | NOAA/Meeus solar altitude crossing at -0.8333 degrees | No result for polar day/night |
| Limb transitions | Bracketed 56-step boundary solve for each limb | Tithi, Nakshatra, Yoga, and Karana independently |
| Muhurta / Choghadiya / Hora | Proportional local day and night divisions | Requires real sunrise, sunset, and next sunrise |
| Rahu Kala / Yamaganda / Gulika | Weekday-specific eighths of local daylight | Requires real sunrise and sunset |
| Abhijit | Eighth of 15 daylight muhurtas | Scales with daylight; omitted on Wednesday |
| Brahma Muhurta | 96 to 48 minutes before sunrise | Requires real sunrise |
| Dur Muhurta | Weekday-specific day/night division table | Tuesday second period uses the night division |

The numerical boundary solver converges to sub-second resolution. That describes
the solver, not the absolute accuracy of the compact astronomical model. The UI
uses a conservative plus-or-minus 12 minute validation envelope for externally
published civil-time comparisons.

## Regression evidence

The native test target includes independent fixtures whose expected values are
recorded beside their sources:

- Sunrise and sunset: New Delhi, Tokyo, Los Angeles, and New York on a DST
transition day.
- Five-limb transitions: Paris on 21 July 2026, covering Tithi, Nakshatra, Yoga,
and Karana.
- Rahu Kala, Yamaganda, Gulika, and Dur Muhurta: published Mumbai Friday
fixtures, plus Hyderabad Tuesday Dur Muhurta including its night period.
- Abhijit Muhurta: Mumbai on Friday, plus the Wednesday omission rule.
- Boundary invariants: multiple seasons and time zones verify that every solved
transition changes from its declared current value to its declared next value.
- Civil-time invariants: selected-day preservation east and west of UTC, DST day
advancement, civil-day preservation when changing locations, and explicit
polar fallback behavior.

Run the evidence with:

```bash
xcodebuild \
-project CosmicRituals.xcodeproj \
-scheme CosmicRituals \
-destination 'platform=iOS Simulator,name=iPhone 17,OS=latest' \
CODE_SIGNING_ALLOWED=NO \
test
```

## Deliberately not claimed as reference-grade

The repository preserves experimental festival, extended Vedic-calendar,
moonrise/moonset, and low-precision Graha-position work for future development.
Those calculations are not routed into the shipping navigation and must not be
described as available or reference-grade until they have independent fixtures,
regional rule handling where applicable, and visible precision disclosures.

The WidgetKit source is also not a shipping widget until an extension target,
App Group, signing capability, and end-to-end tests are present.

## Practical limits

- Atmospheric refraction, observer elevation, terrain, and local horizon
obstruction can shift observed sunrise and sunset.
- A compact offline ephemeris is not a replacement for JPL or Swiss Ephemeris
data when arcsecond-level planetary positions are required.
- Festival and vrata observance can depend on regional school, sunrise/tithi
precedence, and event-specific rules; a simple date or tithi lookup is not
sufficient.
- Ritual interpretation is traditional and symbolic. For consequential
ceremonial timing, users should confirm the chosen convention with a qualified
practitioner.
Loading
Loading