Start Date: October 25, 2025 (Tomorrow Evening)
Production Launch Target: October 24, 2026
Total Duration: 12 months
Development Approach: Phased rollout with 4 major releases
┌─────────────────────────────────────────────────────────────────┐
│ PHASE 1 PHASE 2 PHASE 3 PHASE 4 │
│ Core MVP Prophecy Engine Geophysical Full Features │
│ (3.5 months) (3 months) (3 months) (2 months) │
│ │
│ ■■■■■■■■■■■■■■ → ■■■■■■■■■■■■ → ■■■■■■■■■■■■ → ■■■■■■■■ │
│ │
│ Oct 25 Feb 10 May 10 Aug 10 Oct 24 │
│ └─ Start └─ Release 1 └─ Release 2 └─ R3 └─ R4 │
└─────────────────────────────────────────────────────────────────┘
Goal: Launch functional 3D visualization platform matching theskylive.com baseline experience.
Time Investment: 2-3 hours
✅ Checkpoint 1A: Development Environment
- Install all prerequisites (Node.js, Python, PostgreSQL)
- Initialize Git repository
- Setup spec-kit and create constitution.md
- Configure VSCode with Copilot (Claude Sonnet 4.5 enabled)
- Verify Copilot is generating suggestions
Success Criteria:
# These commands should work:
specify --version
git status
code .
# Copilot chat should respond with Claude Sonnet 4.5✅ Checkpoint 1B: Project Structure
- Create complete directory structure
- Initialize Next.js frontend with TypeScript
- Setup FastAPI backend with virtual environment
- Install Catalyst UI and verify authentication
Deliverable: Project skeleton with all folders, no "folder not found" errors.
Time Investment: 8 hours (4 hours each day)
✅ Checkpoint 2: Database Foundation
- Docker container running PostgreSQL + PostGIS
- Run initial migration SQL (001_initial_schema.sql)
- Seed theological data (001_initial_theological_data.sql)
- Verify tables created with pgAdmin or
psql - Test spatial queries work (PostGIS installed correctly)
Success Criteria:
-- This query should return data:
SELECT * FROM prophecies;
SELECT * FROM celestial_signs;
SELECT ST_GeomFromText('POINT(-122.4194 37.7749)'); -- PostGIS test✅ Checkpoint 3: Backend API Skeleton
- FastAPI app runs (
uvicorn app.main:app --reload) - OpenAPI docs accessible at http://localhost:8000/docs
- Database connection established (SQLAlchemy session works)
- Health check endpoint returns 200 OK
- CORS configured for frontend communication
Test with:
curl http://localhost:8000/health
# Should return: {"status": "healthy", "database": "connected"}Time Investment: 2 hours/evening = 8 hours total
✅ Checkpoint 4: Frontend Foundation
- Next.js dev server runs (
npm run dev) - Catalyst UI components rendering correctly
- Dark theme applied (matches color scheme)
- Sidebar navigation functional
- Top navbar with date/time picker displays
- No TypeScript errors in terminal
Success Criteria: Visit http://localhost:3000 and see:
- Dark-themed layout
- Sidebar with navigation items
- Top navbar with time controls
- "Welcome to Celestial Signs" home page
✅ Checkpoint 5: Horizons Client
- Astroquery installed and importable
- First successful JPL Horizons query (fetch Mars ephemeris)
- Data parsed and inserted into
ephemeris_datatable - Error handling for API failures implemented
- Logging configured (see requests in console)
Spec-Kit Workflow:
# Use SDD process for this feature
/speckit.specify "Create Horizons ingestion service"
/speckit.plan "Technical plan for Astroquery integration"
/speckit.tasks "Break into implementable tasks"
/speckit.implement "Task 1: Basic Horizons client"Test with:
# In backend Python shell:
from app.services.ingestion.horizons_client import fetch_ephemeris
data = fetch_ephemeris("Mars", start_time="2025-10-25", end_time="2025-11-25")
print(len(data)) # Should return ~30 data points (daily)✅ Checkpoint 6: API Endpoints - Ephemeris
-
GET /api/v1/ephemeris/objectsreturns list of tracked objects -
GET /api/v1/ephemeris/vectors?object=Marsreturns JSON array - Frontend can fetch and display data in console
- Pydantic schemas validate responses
- OpenAPI docs updated automatically
Test with:
curl "http://localhost:8000/api/v1/ephemeris/vectors?object=Mars&start=2025-10-25&end=2025-11-25"
# Should return JSON array of position vectors✅ Checkpoint 7: Basic 3D Scene
- Three.js canvas renders in browser
- Stars background visible
- Sun sphere at origin (yellow, glowing)
- Camera controls work (orbit, zoom, pan)
- Scene performs at 60 FPS (check with stats.js)
✅ Checkpoint 8: Orbital Paths
- Fetch ephemeris data from backend API
- Create BufferGeometry from vector data
- Draw orbital path as line (Mars orbit visible)
- Orbit color: celestial-planet blue (#4a90e2)
- Multiple orbits can be displayed simultaneously
Milestone: First Animated Object
- Mars sphere moves along its orbit
- Position updates based on time control
- Animation smooth (no jumps or stutters)
- Time controls (play/pause) affect animation
✅ Checkpoint 9: Planet Visualization
- All 8 planets visible with accurate orbits
- Planetary textures loaded (Earth, Mars, Jupiter, Saturn)
- Planet sizes scaled appropriately (not to true scale, but visually pleasing)
- Object labels display on hover
- Click object to focus camera
✅ Checkpoint 10: Comet/Asteroid Support
- Add 3I/ATLAS (interstellar object)
- Hyperbolic orbit renders correctly (doesn't loop)
- Halley's Comet with elliptical orbit
- Object classification by type (planet, comet, asteroid)
- Color coding: comets = cyan, asteroids = gray
Major Milestone: Solar System Explorer Functional 🎉
- 10+ objects tracked and visualized
- Time controls adjust entire scene synchronously
- Performance: 60 FPS with all objects
- Meets "theskylive.com" baseline visual quality
Demo Video: Record 2-minute screen capture showing:
- Multiple planetary orbits
- Comet with hyperbolic trajectory
- Time controls speeding up animation
- Camera movement and object focus
✅ Checkpoint 11: 2D Star Chart
- D3-Celestial map renders on dedicated page
- Stars up to magnitude 6 visible
- Constellation lines and boundaries drawn
- Milky Way rendering
- User location input (lat/lon) works
- Map rotates to show correct sky for location
✅ Checkpoint 12: Dynamic Object Overlay
- Fetch current planet positions (RA/Dec)
- Plot planets on star chart
- Sun and Moon positions calculated (Skyfield)
- Update positions when time changes
- Object labels display correctly
Integration Test:
- Set location to "San Francisco, CA"
- Set time to "Today, 9:00 PM local"
- Verify visible planets match actual sky (use Stellarium for comparison)
✅ Checkpoint 13: UI/UX Refinement
- Catalyst UI components consistently styled
- Loading states for all data fetches
- Error boundaries catch and display errors gracefully
- Responsive design (works on tablets)
- Accessibility: keyboard navigation works
- Dark theme perfected (no white flashes)
✅ Checkpoint 14: Performance Optimization
- Backend API responses < 200ms (cached data)
- Frontend bundle size < 1MB (initial load)
- Three.js scene optimization (frustum culling)
- Database indexes verified (query explain analyze)
- No memory leaks in long-running sessions
✅ Checkpoint 15: Documentation
- README.md with setup instructions
- API documentation (OpenAPI/Swagger)
- Code comments for complex algorithms
- Architecture diagrams updated
- User guide (basic navigation)
🎉 PHASE 1 COMPLETE - MVP RELEASE (Feb 10, 2026)
Release Checklist:
- Deploy to Vercel (frontend) and Railway (backend)
- PostgreSQL migrated to Supabase free tier
- Custom domain configured (celestialsigns.dev)
- SSL certificates active
- Monitoring setup (Sentry for errors)
- Announcement blog post written
- GitHub repository made public (if desired)
Success Metrics:
- Users can visualize solar system in 3D ✅
- At least 15 objects tracked ✅
- Star charts display current sky ✅
- No prophetic features yet (as planned) ✅
Goal: Implement PDS triggers and activate "Wormwood" and "Stars Falling" alerts.
✅ Checkpoint 16: JPL Sentry Integration
- Sentry API client implemented
- Parse
ts_max,ps_cum,ipfrom JSON response - Data stored in
impact_riskstable - Scheduled job runs daily (cron or Celery)
- Deactivate objects removed from monitoring
Test Data:
# Should return current list of monitored objects
from app.services.ingestion.sentry_client import fetch_sentry_data
objects = fetch_sentry_data()
print(f"Monitoring {len(objects)} potential impactors")✅ Checkpoint 17: Meteor Shower Data
- GMN API or Meteomatics integrated
- Predicted ZHR values stored
- Upcoming showers displayed on dashboard
- Peak dates calculated
- Radiant positions fetched
✅ Checkpoint 18: PDS Engine Logic
- Read triggers from
data_triggerstable - Execute queries against scientific data
- Compare values using operators (>, <, =, CONTAINS)
- Generate alert records on trigger match
- Handle complex conditions (JSON evaluation)
Spec-Kit Process:
/speckit.specify "Build Prophetic Data Signature evaluation engine"
/speckit.plan "Design pattern for evaluating arbitrary data triggers"
/speckit.tasks "Task breakdown for PDS engine"
Test with Manual Trigger:
-- Insert a test earthquake that exceeds threshold
INSERT INTO earthquakes (magnitude, latitude, longitude, depth_km, event_time, usgs_event_id)
VALUES (8.7, 35.0, 140.0, 30.0, NOW(), 'TEST_QUAKE_001');
-- PDS engine should generate an alert for "Great Earthquake" trigger
SELECT * FROM alerts WHERE alert_type = 'PDS_MATCH' ORDER BY triggered_at DESC LIMIT 1;
-- Should show newly created alert✅ Checkpoint 19: Alert Generation
- Alerts table populated on trigger matches
- Alert severity determined by trigger priority
- Trigger data stored in JSONB field
- Alert status management (ACTIVE → ACKNOWLEDGED → RESOLVED)
- Duplicate alerts prevented (same object, same day)
✅ Checkpoint 20: Alert API Endpoints
-
GET /api/v1/alertsreturns paginated alerts -
GET /api/v1/alerts/{id}returns single alert -
POST /api/v1/alerts/{id}/acknowledgeupdates status -
DELETE /api/v1/alerts/{id}dismisses alert - WebSocket endpoint for real-time alerts (optional)
✅ Checkpoint 21: Alert UI Components
- AlertCard component displays alerts
- Severity color coding works
- Acknowledge button functional
- Alert list page shows all alerts
- Badge in sidebar shows active alert count
- Toast notifications for new alerts (optional)
Integration Test: Generate alert and verify it appears in UI within 30 seconds.
✅ Checkpoint 22: "Wormwood" PDS Active
- Trigger: Torino Scale > 0 OR Palermo > -2
- Alert generated when matching object detected
- Alert title: "Potential Wormwood Candidate Detected"
- Alert includes object designation and risk metrics
- Links to Sentry API source data
Create Test Scenario:
# Insert mock high-risk object
from app.models.impact_risks import ImpactRisk
high_risk = ImpactRisk(
object_name="2025 XY123",
torino_scale_max=2,
palermo_scale_cumulative=-1.5,
impact_probability_cumulative=0.0001
)
db.add(high_risk)
db.commit()
# Run PDS engine
# Verify alert generated✅ Checkpoint 23: "Stars Falling" PDS Active
- Trigger: ZHR > 1000
- Alert on extreme meteor storm predictions
- Alert includes shower name and peak date
- Links to GMN/Meteomatics source
Historical Test:
- Insert 1833 Leonid storm data (ZHR ~100,000)
- Verify alert triggers with CRITICAL severity
✅ Checkpoint 24: End-to-End Testing
- Simulate complete data pipeline (Sentry → DB → PDS → Alert → UI)
- Test all trigger types with realistic data
- Verify no false positives
- Performance test with 1000+ alerts
- Load test API endpoints (100 req/sec)
✅ Checkpoint 25: User Testing
- Recruit 3-5 beta testers
- Gather feedback on alert UX
- Fix critical bugs reported
- Improve alert descriptions for clarity
- Update documentation based on questions
🎉 PHASE 2 COMPLETE - PROPHECY ENGINE RELEASE (May 10, 2026)
Release Notes:
- ✅ Active monitoring for "Wormwood" impact threats
- ✅ Extreme meteor shower alerts
- ✅ User-visible alert system
- ✅ Theological context for each sign
- ✅ API fully documented
Demo: Show live alert generated by inserting test data.
Goal: Integrate terrestrial events and implement Cesium.js Earth dashboard.
✅ Checkpoint 26: USGS Earthquake Feed
- USGS API client functional
- Real-time earthquake data streaming
- M6+ events stored automatically
- Spatial queries work (PostGIS)
- "Great Earthquake" PDS active (M8.5+)
✅ Checkpoint 27: NOAA Space Weather
- Solar flare data ingested (X-ray flux)
- CME alerts captured
- Geomagnetic storm data (Kp index)
- Proton flux values stored
- "Sun Darkened" PDS for X-flares
✅ Checkpoint 28: Volcanic Activity
- GVP API integrated (if available)
- Major eruption alerts (VEI 4+)
- Location data with PostGIS
- "Supervolcano" trigger (VEI 7+)
✅ Checkpoint 29: Basic Cesium Setup
- Resium (React wrapper) installed
- 3D Earth globe renders
- Terrain and imagery tiles load
- Camera controls work
- Performance acceptable (30+ FPS)
✅ Checkpoint 30: CZML Generation Service
- Backend service generates CZML documents
- Use czml3 or poliastro library
- NEO trajectories in CZML format
- Earthquake points with magnitude scaling
- Time-dynamic properties work
Example CZML Test:
# Generate CZML for upcoming NEO flyby
from app.services.czml.generator import generate_neo_czml
czml = generate_neo_czml("2025 XY123", start_time="2026-06-01", end_time="2026-06-15")
# Save to /api/v1/dashboard/czml endpoint
# Load in Cesium and verify trajectory displays✅ Checkpoint 31: Real-Time Event Display
- Earthquake markers appear on globe
- Color coded by magnitude (red = severe)
- Click marker shows details (popup)
- Recent events highlighted (last 24 hours)
- Volcano markers if erupting
✅ Checkpoint 32: Correlation Rules
-
correlation_rulestable seeded with initial rules - Rule: "X-Flare → M7.5+ Earthquake within 72 hours"
- Rule: "Comet Perihelion → M6+ Quake Cluster (7 days)"
- Rule: "Geomagnetic Storm → VEI 4+ Eruption (5 days)"
✅ Checkpoint 33: Correlation Detection
- Engine scans events within time windows
- Calculates time deltas between events
- Stores matches in
event_correlationstable - Assigns confidence scores
- Generates correlation alerts
Test with Historical Data:
# Insert Carrington Event (1859) - largest geomagnetic storm
# Insert subsequent earthquake within window
# Verify correlation detected
from app.services.analysis.correlator import detect_correlations
correlations = detect_correlations()
print(f"Found {len(correlations)} potential correlations")✅ Checkpoint 34: Correlation Visualization
- Timeline view showing correlated events
- Visual link between primary and secondary events
- Filter by confidence score
- Export correlation data (CSV)
- Statistical analysis dashboard (optional)
✅ Checkpoint 35: Module Integration
- Earth Dashboard accessible from sidebar
- Sync time controls across all modules
- Solar System and Earth views use same time state
- Navigation between modules preserves context
- No data inconsistencies between views
✅ Checkpoint 36: Performance Tuning
- Optimize CZML generation (cache results)
- Database query optimization (add indexes)
- Frontend bundle splitting (lazy load modules)
- Cesium tile caching configured
- API response times < 300ms
✅ Checkpoint 37: Documentation Update
- Earth Dashboard user guide
- Correlation engine explanation
- API reference for CZML endpoints
- Database schema documentation
- Video tutorial (5-10 minutes)
🎉 PHASE 3 COMPLETE - GEOPHYSICAL RELEASE (Aug 10, 2026)
Major Features:
- ✅ Earth-centric 3D visualization (Cesium)
- ✅ Real-time earthquake and volcano data
- ✅ Space weather monitoring
- ✅ Astro-geophysical correlation analysis
- ✅ All modules integrated seamlessly
Goal: Complete the theological feature set and launch full application.
✅ Checkpoint 38: Scripture Browser
- Display all prophecies from database
- Search by scripture reference (e.g., "Revelation 6")
- Search by keyword (e.g., "earthquake")
- Filter by prophecy category
- Display scripture text with formatting
✅ Checkpoint 39: Sign Details Pages
- Each celestial sign has dedicated page
- Show theological interpretation
- List related scriptures with links
- Display associated data triggers (PDS)
- Show historical alert occurrences
✅ Checkpoint 40: Cross-Reference Network
- Implement many-to-many linking (prophecies ↔ signs)
- Visual graph of connections (D3.js force graph)
- Click prophecy to see all related signs
- Click sign to see all related prophecies
- Export reference network (PDF)
✅ Checkpoint 41: Skyfield Service
- Skyfield library installed in backend
- Load JPL ephemeris (de421.bsp)
- Calculate planet positions (RA/Dec)
- Determine constellation boundaries (IAU)
- Function returns True/False for alignment
Implementation:
from app.services.analysis.rev12_calculator import check_revelation_12_alignment
# Test with known alignment date (September 23, 2017)
result = check_revelation_12_alignment(date="2017-09-23")
assert result == True, "Should detect 2017 alignment"
# Test with random date
result = check_revelation_12_alignment(date="2020-01-01")
# Should return False (no alignment)✅ Checkpoint 42: User Interface
- Date picker for alignment checking
- Submit button triggers calculation
- Results display with visual diagram
- Show positions of all relevant objects
- Highlight matched conditions (green checks)
- Export results to PDF
✅ Checkpoint 43: Historical Analysis
- Scan date range for alignments
- Generate list of past occurrences (last 500 years)
- Predict future alignments (next 100 years)
- Display on timeline visualization
- Statistical analysis of frequency
✅ Checkpoint 44: Email Notifications
- User email preferences (opt-in)
- Digest format (daily/weekly summary)
- Immediate alerts for CRITICAL severity
- Unsubscribe mechanism
- Template design (HTML email)
✅ Checkpoint 45: Push Notifications (Optional)
- Web Push API integration
- Permission request UI
- Service worker registered
- Test notification delivery
- Notification settings per alert type
✅ Checkpoint 46: Data Export
- Export alerts to CSV/JSON
- Export ephemeris data for external tools
- Export correlation results
- API endpoint for bulk data access
- Rate limiting on exports
✅ Checkpoint 47: Comprehensive Testing
- All features tested end-to-end
- Security audit (SQL injection, XSS)
- Performance testing (1000 concurrent users)
- Accessibility testing (WCAG 2.1 Level AA)
- Cross-browser testing (Chrome, Firefox, Safari)
- Mobile responsiveness verified
✅ Checkpoint 48: Production Deployment
- Domain configured (celestialsigns.app)
- SSL certificates active
- CDN configured for assets
- Database backups automated (daily)
- Monitoring and alerting (Datadog/New Relic)
- Error tracking (Sentry)
- Analytics (Plausible or similar)
✅ Checkpoint 49: Documentation
- Complete user guide (written + video)
- API documentation published
- Developer setup guide
- Architecture documentation
- Theological framework explanation
- FAQ section
✅ Checkpoint 50: Launch Preparation
- Announcement blog post
- Social media graphics
- Press kit (screenshots, descriptions)
- Demo video (3-5 minutes)
- Landing page optimized
- SEO metadata complete
🎉🎉🎉 FULL PRODUCTION LAUNCH (October 24, 2026) 🎉🎉🎉
| Milestone | Target Date | Status | Deliverables |
|---|---|---|---|
| M1: Dev Environment Setup | Oct 25, 2025 | ⏳ Starts Tomorrow | VSCode configured, Spec-Kit initialized |
| M2: Database & API Foundation | Nov 7, 2025 | ⏳ Week 2 | PostgreSQL running, FastAPI serving data |
| M3: Solar System Visualization | Dec 12, 2025 | ⏳ Week 7 | Three.js scene with animated orbits |
| M4: MVP Complete | Feb 10, 2026 | ⏳ Week 14 | 🚀 Release 1.0 - Public Beta |
| M5: Prophecy Engine Active | May 10, 2026 | ⏳ Week 27 | 🚀 Release 2.0 - PDS Alerts |
| M6: Earth Dashboard | Aug 10, 2026 | ⏳ Week 40 | 🚀 Release 3.0 - Geophysical |
| M7: Full Feature Set | Oct 24, 2026 | ⏳ Week 52 | 🚀 Release 4.0 - Production |
- Weekdays: 2 hours/evening = 10 hours/week
- Weekends: 8 hours (4 hours each day)
- Total: ~18 hours/week
- Weekdays: 1.5 hours/evening = 7.5 hours/week
- Weekends: 6 hours
- Total: ~13.5 hours/week
- Weekdays: 1 hour/evening = 5 hours/week
- Weekends: 4 hours
- Total: ~9 hours/week
Total Project Investment: ~650 hours over 12 months
Throughout the project, you'll gain expertise in:
✅ Week 4: Three.js fundamentals (scene, geometry, materials)
✅ Week 8: FastAPI + SQLAlchemy patterns
✅ Week 12: D3.js data visualization
✅ Week 20: WebSocket real-time communication
✅ Week 32: Cesium.js + CZML format
✅ Week 36: Time-series correlation analysis
✅ Week 44: Skyfield astronomical calculations
✅ Week 50: Production deployment best practices
Mitigation:
- Cache all API responses (24-hour TTL)
- Implement request queuing
- Use free-tier quotas strategically
Mitigation:
- Strict adherence to Spec-Kit SDD workflow
- One feature at a time, fully tested
- Weekly progress reviews
Mitigation:
- Validate all external API data
- Unit tests for parsing logic
- Manual spot checks during development
Mitigation:
- Constitution.md defines boundaries
- "Nice-to-have" features deferred to v2.0+
- Ruthless prioritization
Your immediate actions:
-
Read the Constitution (
CELESTIAL_SIGNS_IMPLEMENTATION_PACKAGE.md) -
Run the 30-minute setup script (from Quick Start section)
-
Complete Checkpoint 1A & 1B (Dev environment + structure)
-
Open Copilot Chat and say:
@github-copilot I'm ready to start the Celestial Signs project. I've completed the environment setup. What should I implement first according to the Week 1 plan in IMPLEMENTATION_TIMELINE.md? -
Use Spec-Kit for your first feature:
/speckit.specify "Create the database schema and run initial migration"
You're not alone - Copilot (Claude 4.5) will guide you through every step!
Tomorrow evening at 7 PM, you begin building something extraordinary. 🌟