Files
SpaceCom/AGENTS.md

84 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Repository Guidelines
## Project Overview
SkyNav SpaceCom is a dual-domain re-entry debris hazard analysis platform that bridges space-domain prediction with aviation-domain decision support. It visualises space objects on a 3D globe (CesiumJS) and is designed to evolve into a full hazard analysis and decision-support system for ANSPs and aviation safety organisations.
Key planning documents:
- `docs/Overview.md` — shortest summary of the programme
- `docs/Roadmap.md` — staged product delivery view (Phases 07)
- `docs/Implementation_Plan.md` — sprint-oriented coding plan (Phases 010)
- `docs/Master_Plan.md` — authoritative detailed specification
## Current Repository State
The original prototype code has been archived to `original_code/` (gitignored as reference). The working tree is being rebuilt from scratch. The repo currently contains only:
```
AGENTS.md This file
docs/ Planning and architecture documents
original_code/ Archived prototype (gitignored, reference only)
```
The archived prototype in `original_code/` contains:
```
original_code/backend/app/main.py FastAPI app with a single /czml/test endpoint
original_code/backend/Dockerfile Python 3.11-slim, installs fastapi + uvicorn
original_code/frontend/public/ Static HTML/JS — CesiumJS 1.110 globe + OSM tiles
original_code/frontend/public/config.js API_BASE_URL = http://aegis.sbln.bxl.skynav.cloud:8000
original_code/db/schema.sql PostGIS + TimescaleDB schema (objects, orbits, conjunctions, reentry_predictions)
original_code/docker-compose.yml Three services: nginx frontend, FastAPI backend, TimescaleDB/PostGIS db
original_code/worker/fetch.py Placeholder TLE/CDM ingest worker
original_code/.env DB credentials (POSTGRES_DB/USER/PASSWORD=spacecom)
```
## Target Architecture (from docs)
The target stack per `docs/Overview.md` and `docs/Master_Plan.md`:
- **Frontend** — Next.js + TypeScript + CesiumJS
- **Backend** — FastAPI (Python), async, with WebSocket API
- **Workers** — Celery workers for simulation, propagation, ingest (isolated from app Redis)
- **Database** — TimescaleDB (PostgreSQL + PostGIS) for time-series orbital data
- **Cache/Queue** — Redis (split trust domains: app state vs worker traffic)
- **Object storage** — MinIO for simulation outputs and reports
- **Renderer** — Network-isolated renderer for report generation
- **Deployment** — Docker Compose on self-hosted VPS; CI/CD via self-hosted GitLab
## Database Schema (from prototype)
Key tables (defined in `original_code/db/schema.sql`):
- `objects` — space object catalog (NORAD ID, orbital params, mass)
- `orbits` — time-series positions (TimescaleDB hypertable, PostGIS geography)
- `conjunctions` — conjunction alerts with probability of collision (TCA, miss distance, PoC)
- `reentry_predictions` — re-entry windows with geographic footprints
## Build, Test, and Development Commands
No test framework, linter, or formatter is configured yet.
The prototype stack was started with:
```
docker compose up --build
```
Frontend was available at `http://localhost:8080`, backend API at `http://localhost:8000`.
The deployment environment is `aegis.sbln.bxl.skynav.cloud`.
## Git & Source Control
Hosted on GitLab at `gemini.skynavintl.com:10090/root/spacecom`. Two commits exist:
- `05f87e0` Initial commit
- `2c49d7c` base sys done. shift to vs code
Conventional commits format is the target standard. The `.gitignore` covers Python, Node, Docker, database artifacts, environment files, and the `original_code/` archive.
## Delivery Principles (from docs)
- Safety-critical changes require human review
- Contracts are the authoritative source of commercial entitlements
- Self-hosted GitLab is the authoritative CI/CD platform
- Phase 0 architectural and legal blockers must be cleared before commitment-heavy implementation
- Commercial enforcement must not interrupt active operational incidents