akashreddy2103 commited on
Commit
70f6edc
·
verified ·
1 Parent(s): a0b5482

Upload folder using huggingface_hub

Browse files
README.md CHANGED
@@ -26,6 +26,8 @@ Adapter status:
26
 
27
  - Public adapter repo: this repository
28
  - Base model: `LiquidAI/LFM2.5-VL-450M`
 
 
29
  - Runtime adapter variable: `HF_ADAPTER_ID=akashreddy2103/landfill`
30
  - Adapter files: `adapter_config.json`, `adapter_model.safetensors`
31
  - Latest run id: `lora_run_20260504T181913Z`
@@ -65,9 +67,10 @@ docker compose --env-file .env.local -f docker-compose.landfillsentry.yml up --b
65
  Verified live smoke:
66
 
67
  - site: `LF_REAL_007`
68
- - scan: `scan_082`
69
- - incident: `inc_082`
70
  - inference mode: `live`
 
71
 
72
  ## Limitations
73
 
 
26
 
27
  - Public adapter repo: this repository
28
  - Base model: `LiquidAI/LFM2.5-VL-450M`
29
+ - Inference engine: Hugging Face Transformers
30
+ - Adapter loader: PEFT
31
  - Runtime adapter variable: `HF_ADAPTER_ID=akashreddy2103/landfill`
32
  - Adapter files: `adapter_config.json`, `adapter_model.safetensors`
33
  - Latest run id: `lora_run_20260504T181913Z`
 
67
  Verified live smoke:
68
 
69
  - site: `LF_REAL_007`
70
+ - scan: `scan_083`
71
+ - incident: `inc_083`
72
  - inference mode: `live`
73
+ - inference tooling: Hugging Face Transformers + PEFT
74
 
75
  ## Limitations
76
 
architecture_for_judges.md ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Architecture Brief For Judges
2
+
3
+ ## End-to-End Flow
4
+
5
+ 1. Site selected from watchlist (`/watchlist`).
6
+ 2. Backend fetches imagery bundle:
7
+ - Sentinel current at selected landfill coordinates (`/data/current/image/sentinel` via DPhi SimSat),
8
+ - Sentinel historical (`/data/image/sentinel` via SimSat),
9
+ - Mapbox context at selected landfill coordinates (`/data/current/image/mapbox` via DPhi SimSat).
10
+ 3. Candidate engine proposes likely methane-risk zone.
11
+ 4. Evidence panel builder assembles current, spectral, temporal, and context views.
12
+ 5. LFM2.5-VL (`LiquidAI/LFM2.5-VL-450M`) runs through Hugging Face Transformers with the PEFT LoRA adapter (`akashreddy2103/landfill`) and produces structured incident output.
13
+ 6. Output validation enforces schema and normalization.
14
+ 7. Incident + scan + evidence metadata are persisted.
15
+ 8. Operator reviews and exports evidence.
16
+
17
+ ## Live Reliability Controls
18
+
19
+ - `REQUIRE_LIVE_RESULTS=true` blocks non-live runtime modes.
20
+ - `INFERENCE_ALLOW_FALLBACK=false` prevents fallback from being shown as live.
21
+ - watchlist/site detail strict selector only surfaces live-generated incidents in judge mode.
22
+ - `scripts/live_smoke.py` verifies SimSat/API health, live scan success, previews, review persistence, and export.
23
+
24
+ ## Provenance Contract
25
+
26
+ Every scan evidence payload stores:
27
+ - `imagery_provenance.source_chain`,
28
+ - per-asset timestamps and source metadata,
29
+ - `live_fetch_status`,
30
+ - `inference.mode`.
31
+
32
+ This is exposed in:
33
+ - `/sites/{site_id}/detail`,
34
+ - `/scans/{scan_id}/evidence`,
35
+ - `/incidents/{incident_id}/export`.
36
+
37
+ ## Dongle Corroboration Loop
38
+
39
+ - API supports field methane ingestion:
40
+ - `POST /sites/{site_id}/dongle-readings`
41
+ - `GET /sites/{site_id}/dongle-readings`
42
+ - Latest unlinked dongle reading is attached to newly generated incident as `ground_truth_hint`.
43
+ - UI and export explicitly show `Satellite-only` vs `Satellite + Dongle corroborated`.
44
+
45
+ ## Deployment Notes
46
+
47
+ - Backend: FastAPI + SQLite
48
+ - Frontend: FastAPI-served ops console at `/ops` (`apps/web/ops.html`, `ops.css`, `ops.js`)
49
+ - Live imagery: DPhi SimSat + Mapbox
50
+ - Inference tooling: Hugging Face Transformers + PEFT
51
+ - Model artifacts: Hugging Face base model + public PEFT adapter
52
+ - Fine-tuning compute: Modal GPU
benchmark_summary_for_submission.md CHANGED
@@ -1,6 +1,6 @@
1
  # Benchmark Summary For Submission
2
 
3
- Date: May 4, 2026
4
 
5
  ## Goal
6
 
@@ -62,7 +62,7 @@ Copy reviewed rows to `data/labels/manual_label_corrections.csv`, then rebuild/t
62
 
63
  5. Save the latest successful live scan artifact:
64
  ```bash
65
- python scripts/save_live_scan_artifact.py --api-base-url http://127.0.0.1:8000 --scan-id scan_082
66
  ```
67
 
68
  6. Modal fine-tune:
@@ -84,14 +84,14 @@ Generated proof:
84
  Result from the latest run:
85
  - status: `PASS`
86
  - site: `LF_REAL_007`
87
- - scan: `scan_082`
88
- - incident: `inc_082`
89
  - inference mode: `live`
90
  - previews present: `current_rgb`, `spectral_composite`, `temporal_diff`, `mapbox_context`
91
 
92
  The same scan is archived at:
93
  - `docs/latest_live_scan_artifact.md`
94
- - `data/processed/judge_live_artifacts/scan_082.json`
95
 
96
  ## Modal LoRA Run
97
 
 
1
  # Benchmark Summary For Submission
2
 
3
+ Date: May 5, 2026
4
 
5
  ## Goal
6
 
 
62
 
63
  5. Save the latest successful live scan artifact:
64
  ```bash
65
+ python scripts/save_live_scan_artifact.py --api-base-url http://127.0.0.1:8000 --scan-id scan_083
66
  ```
67
 
68
  6. Modal fine-tune:
 
84
  Result from the latest run:
85
  - status: `PASS`
86
  - site: `LF_REAL_007`
87
+ - scan: `scan_083`
88
+ - incident: `inc_083`
89
  - inference mode: `live`
90
  - previews present: `current_rgb`, `spectral_composite`, `temporal_diff`, `mapbox_context`
91
 
92
  The same scan is archived at:
93
  - `docs/latest_live_scan_artifact.md`
94
+ - `data/processed/judge_live_artifacts/scan_083.json`
95
 
96
  ## Modal LoRA Run
97
 
demo_script.md ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LandfillSentry Judge Demo Script (5 Minutes)
2
+
3
+ Date: May 5, 2026
4
+ Audience: Hackathon judges
5
+
6
+ ## 1) Problem Framing (30s)
7
+
8
+ Landfill teams do not need another generic map. They need a clear answer to: "Where do we inspect first, and why?"
9
+ LandfillSentry turns satellite evidence into a reviewable incident object with operational follow-up guidance.
10
+
11
+ ## 2) Live Scan Walkthrough (90s)
12
+
13
+ 1. Open `http://127.0.0.1:8000/ops`.
14
+ 2. Select one watchlist site.
15
+ 3. Click `Scan Site` or `Scan Watchlist`.
16
+ 4. Explain:
17
+ - `generation mode` shows `live`.
18
+ - imagery is fetched from DPhi SimSat coordinate endpoints for Sentinel current, Sentinel historical, and Mapbox context.
19
+ - current endpoints are `/data/current/image/sentinel` and `/data/current/image/mapbox`; historical Sentinel uses `/data/image/sentinel`.
20
+ - scan fails fast in judge mode if live dependencies are unavailable.
21
+
22
+ ## 3) Evidence + Review Action (90s)
23
+
24
+ 1. Show `Incident Summary`.
25
+ 2. Show `Live Imagery Provenance`:
26
+ - DPhi SimSat provider and repository,
27
+ - `/data/current/image/sentinel`, `/data/image/sentinel`, and `/data/current/image/mapbox` endpoint usage,
28
+ - source chain,
29
+ - capture timestamps,
30
+ - live fetch status.
31
+ 3. Review as operator:
32
+ - click `Publish`, `Dismiss`, or `Needs Review`.
33
+ 4. Confirm state change in watchlist row.
34
+
35
+ ## 4) Export + Dongle Corroboration (60s)
36
+
37
+ 1. Click `Add Dongle Reading`.
38
+ 2. Run scan again.
39
+ 3. Show corroboration changing from `Satellite-only` to `Satellite + Dongle corroborated`.
40
+ 4. Load markdown export and highlight:
41
+ - data source provenance,
42
+ - ground truth hint,
43
+ - recommended follow-up.
44
+
45
+ ## 5) Architecture + Product Story (60s)
46
+
47
+ 1. Satellite-first triage pipeline:
48
+ - SimSat imagery retrieval,
49
+ - candidate generation and evidence panel,
50
+ - LFM2.5-VL structured reasoning,
51
+ - operator review workflow.
52
+ 2. Why this is productizable:
53
+ - clear workflow outcome, not just maps,
54
+ - audit-ready export object,
55
+ - extensible with field dongle ground truth loop.
56
+
57
+ ## Demo Safety Notes
58
+
59
+ - Run `scripts/start_judge_mode.ps1` before demo.
60
+ - Keep `http://127.0.0.1:9005` DPhi SimSat running.
61
+ - If any live system fails, show deterministic error message (no fake live fallback).
62
+ - Smoke proof: `docs/latest_live_smoke_proof.md` shows scan `scan_083` passed judge-mode checks.
63
+ - Backup artifact: `docs/latest_live_scan_artifact.md` shows scan `scan_083` with strict-live DPhi SimSat provenance.
judge_deployment_runbook.md CHANGED
@@ -4,6 +4,13 @@
4
 
5
  Use Docker for the LandfillSentry API/UI package and keep inference on the existing Hugging Face Transformers + PEFT path.
6
 
 
 
 
 
 
 
 
7
  Why this is the safest choice for judging:
8
 
9
  - The app already supports `LiquidAI/LFM2.5-VL-450M` through Transformers.
@@ -124,3 +131,4 @@ Use `HF_LOCAL_FILES_ONLY=false` for a clean judge machine so the model can be do
124
  - `scripts/live_smoke.py` passes.
125
  - `docs/latest_live_smoke_proof.md` is regenerated after the final run.
126
  - `docs/benchmark_summary_for_submission.md` includes the public adapter ID, methodology, and measured base-vs-tuned delta.
 
 
4
 
5
  Use Docker for the LandfillSentry API/UI package and keep inference on the existing Hugging Face Transformers + PEFT path.
6
 
7
+ This is the selected inference tooling for the submission:
8
+
9
+ - Inference engine: Hugging Face Transformers
10
+ - Adapter loader: PEFT
11
+ - Base model: `LiquidAI/LFM2.5-VL-450M`
12
+ - Public adapter: `akashreddy2103/landfill`
13
+
14
  Why this is the safest choice for judging:
15
 
16
  - The app already supports `LiquidAI/LFM2.5-VL-450M` through Transformers.
 
131
  - `scripts/live_smoke.py` passes.
132
  - `docs/latest_live_smoke_proof.md` is regenerated after the final run.
133
  - `docs/benchmark_summary_for_submission.md` includes the public adapter ID, methodology, and measured base-vs-tuned delta.
134
+ - `/runtime/status` reports `inference_tooling=Hugging Face Transformers + PEFT`.
judge_submission_brief.md ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Judge Submission Brief
2
+
3
+ Date: May 5, 2026
4
+
5
+ ## One-Sentence Pitch
6
+
7
+ LandfillSentry turns DPhi SimSat satellite imagery and LFM2.5-VL reasoning into a live operations console for landfill methane/plume incident triage, evidence review, and export.
8
+
9
+ ## Chosen Inference Tooling
10
+
11
+ LandfillSentry uses Hugging Face Transformers as the LFM2.5-VL inference engine and PEFT for LoRA adapter loading.
12
+
13
+ - Base model: `LiquidAI/LFM2.5-VL-450M`
14
+ - Adapter: `akashreddy2103/landfill`
15
+ - Runtime path: `apps/api/services/inference_service.py`
16
+ - Strict judge mode: `INFERENCE_MODE=live`, `INFERENCE_ALLOW_FALLBACK=false`
17
+
18
+ llama.cpp, MLX, and ONNX are not used in this submission because the validated live path is Transformers + PEFT.
19
+
20
+ ## Judging Criteria Alignment
21
+
22
+ | Criterion | Weight | Evidence in Project | Status |
23
+ |---|---:|---|---|
24
+ | Use of Satellite Imagery | 10% | DPhi SimSat is the primary live imagery provider. Runtime status, evidence metadata, and UI provenance show the provider, repo, endpoints, timestamps, and cloud cover. | Strong |
25
+ | Innovation and Problem-Solution Fit | 35% | The workflow targets a specific operational problem: deciding which landfill site needs inspection first and why. It combines satellite evidence, model reasoning, plume polygons, triage, and exportable incident records. | Strong |
26
+ | Technical Implementation | 35% | FastAPI backend, SQLite persistence, DPhi SimSat live imagery, Hugging Face Transformers + PEFT LFM2.5-VL inference path, strict-live failure behavior, SSE scan progress, map overlays, evidence packs, tests, and run docs. | Strong |
27
+ | Demo and Communication | 20% | Demo script, architecture brief, live runbook, saved live artifact, and benchmark summary are included. | Strong |
28
+
29
+ ## What To Show In The Demo
30
+
31
+ 1. Open `http://127.0.0.1:8000/ops`.
32
+ 2. Show `/runtime/status` or the UI live state: `DPhi SimSat`, `strict_live`, `simsat_reachable: true`.
33
+ 3. Select `Belvedere Landfill London` or another watchlist site.
34
+ 4. Show the `Live Imagery Provenance` card:
35
+ - provider: DPhi SimSat,
36
+ - repo: `https://github.com/DPhi-Space/SimSat`,
37
+ - endpoints: `/data/current/image/sentinel`, `/data/image/sentinel`, `/data/current/image/mapbox`,
38
+ - asset timestamps and cloud cover,
39
+ - inference mode/model.
40
+ 5. Click `Scan Site` if live dependencies are available.
41
+ 6. Show the incident summary, plume/map overlays, evidence images, review action, and export.
42
+ 7. Open `docs/latest_live_scan_artifact.md` as the saved backup proof.
43
+
44
+ ## Live Proof Artifacts
45
+
46
+ - Live scan artifact markdown: `docs/latest_live_scan_artifact.md`
47
+ - Live scan artifact JSON: `data/processed/judge_live_artifacts/scan_083.json`
48
+ - Live smoke proof: `docs/latest_live_smoke_proof.md`
49
+ - Benchmark table: `docs/benchmark_summary_for_submission.md`
50
+ - Architecture brief: `docs/architecture_for_judges.md`
51
+ - Demo script: `docs/demo_script.md`
52
+ - DPhi SimSat runbook: `docs/run_demo_dphi_simsat.md`
53
+
54
+ ## Run Commands
55
+
56
+ Start DPhi SimSat:
57
+
58
+ ```powershell
59
+ cd external\SimSat
60
+ docker compose up --build
61
+ ```
62
+
63
+ If Docker is unavailable on Windows but dependencies are installed, run the SimSat API directly:
64
+
65
+ ```powershell
66
+ .\.venv\Scripts\python.exe -m uvicorn api:api --host 127.0.0.1 --port 9005
67
+ ```
68
+
69
+ from `external\SimSat\src\sim`.
70
+
71
+ Start LandfillSentry:
72
+
73
+ ```powershell
74
+ .\.venv\Scripts\python.exe -m uvicorn apps.api.main:app --host 127.0.0.1 --port 8000
75
+ ```
76
+
77
+ Verify:
78
+
79
+ ```powershell
80
+ .\.venv\Scripts\python.exe scripts\live_smoke.py --api-base-url http://127.0.0.1:8000 --simsat-base-url http://127.0.0.1:9005
81
+ .\.venv\Scripts\python.exe scripts\save_live_scan_artifact.py --api-base-url http://127.0.0.1:8000 --scan-id scan_083
82
+ ```
83
+
84
+ ## Honest Notes
85
+
86
+ - Strict live mode is intentional: if DPhi SimSat or live inference is unavailable, the scan fails instead of showing mock output as live.
87
+ - The public adapter path is trained, uploaded, wired, and benchmarked. The current report shows validation-loss improvement plus a measured lift on a small domain-adaptation fixture proxy; larger fully manual labels are still needed for a stronger production-quality model claim. This is documented in `docs/benchmark_summary_for_submission.md`.
88
+ - Cached evidence remains visible for operator review, but newly triggered judge-mode scans require live dependencies.
latest_live_scan_artifact.md CHANGED
@@ -1,6 +1,6 @@
1
  # Live Scan Artifact
2
 
3
- Generated: 2026-05-04T18:51:58+00:00
4
 
5
  ## Runtime
6
 
@@ -9,13 +9,13 @@ Generated: 2026-05-04T18:51:58+00:00
9
  - SimSat reachable: True
10
  - Live scan available: True
11
  - Scan policy: strict_live
12
- - SimSat base URL: http://simsat-api:8000
13
 
14
  ## Scan
15
 
16
  - Site: LF_REAL_007
17
- - Scan ID: scan_082
18
- - Incident ID: inc_082
19
  - Status: live
20
  - Inference mode: live
21
  - Model: LiquidAI/LFM2.5-VL-450M@main+adapter=akashreddy2103/landfill@main
@@ -44,6 +44,6 @@ Endpoints:
44
 
45
  | Asset | Source | Captured | Cloud Cover | Local Path |
46
  |---|---|---|---:|---|
47
- | sentinel_current | dphi-simsat | 2026-05-03T10:36:59+00:00 | 0.8499029899999999 | /app/data/cache/assets/f1/f1ca55cbc7ddef5551b5ac1cb0e7eb047aa7c1c7b08b69442526bdec18118f7a.img |
48
- | sentinel_historical | dphi-simsat | 2026-04-26T10:46:55+00:00 | 0.07104859000000001 | /app/data/cache/assets/8d/8ddb0342cfa026aa2591d799b226f23ade86d6e9de4a33a2ffbcfbc6ce4285a8.img |
49
- | mapbox_context | mapbox | 2026-05-04T18:23:52+00:00 | 0.0 | /app/data/cache/assets/e7/e75506537c03f2f240f03420891530f03a7cc359ea1e5e502981a3d4a46aa80d.img |
 
1
  # Live Scan Artifact
2
 
3
+ Generated: 2026-05-05T06:09:08+00:00
4
 
5
  ## Runtime
6
 
 
9
  - SimSat reachable: True
10
  - Live scan available: True
11
  - Scan policy: strict_live
12
+ - SimSat base URL: http://localhost:9005
13
 
14
  ## Scan
15
 
16
  - Site: LF_REAL_007
17
+ - Scan ID: scan_083
18
+ - Incident ID: inc_083
19
  - Status: live
20
  - Inference mode: live
21
  - Model: LiquidAI/LFM2.5-VL-450M@main+adapter=akashreddy2103/landfill@main
 
44
 
45
  | Asset | Source | Captured | Cloud Cover | Local Path |
46
  |---|---|---|---:|---|
47
+ | sentinel_current | dphi-simsat | 2026-05-03T10:36:59+00:00 | 0.8499029899999999 | data/cache/assets/f1/f1ca55cbc7ddef5551b5ac1cb0e7eb047aa7c1c7b08b69442526bdec18118f7a.img |
48
+ | sentinel_historical | dphi-simsat | 2026-04-26T10:46:55+00:00 | 0.07104859000000001 | data/cache/assets/8d/8ddb0342cfa026aa2591d799b226f23ade86d6e9de4a33a2ffbcfbc6ce4285a8.img |
49
+ | mapbox_context | mapbox | 2026-05-05T06:07:47+00:00 | 0.0 | data/cache/assets/e7/e75506537c03f2f240f03420891530f03a7cc359ea1e5e502981a3d4a46aa80d.img |
latest_live_smoke_proof.md CHANGED
@@ -1,6 +1,6 @@
1
  # Live Smoke Proof
2
 
3
- Generated: 2026-05-04T18:27:09+00:00
4
 
5
  ## Command
6
 
@@ -12,8 +12,8 @@ python scripts/live_smoke.py --api-base-url http://127.0.0.1:8000 --simsat-base-
12
 
13
  - Status: PASS
14
  - Site: LF_REAL_007
15
- - Scan ID: scan_082
16
- - Incident ID: inc_082
17
  - Inference mode: live
18
  - Panel preview keys: current_rgb, spectral_composite, temporal_diff, mapbox_context
19
 
 
1
  # Live Smoke Proof
2
 
3
+ Generated: 2026-05-05T06:09:00+00:00
4
 
5
  ## Command
6
 
 
12
 
13
  - Status: PASS
14
  - Site: LF_REAL_007
15
+ - Scan ID: scan_083
16
+ - Incident ID: inc_083
17
  - Inference mode: live
18
  - Panel preview keys: current_rgb, spectral_composite, temporal_diff, mapbox_context
19
 
run_demo_dphi_simsat.md ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # DPhi SimSat Live Demo Runbook
2
+
3
+ Use this path for the hackathon judging demo. It keeps the app on live DPhi SimSat imagery and live inference, with no mock/sample scan output presented as real.
4
+
5
+ ## 1. Start DPhi SimSat
6
+
7
+ The hackathon-provided imagery backend is:
8
+
9
+ `https://github.com/DPhi-Space/SimSat`
10
+
11
+ This repository includes a local copy under `external/SimSat`.
12
+
13
+ ```powershell
14
+ cd external\SimSat
15
+ docker compose up --build
16
+ ```
17
+
18
+ Confirm the SimSat API is available on:
19
+
20
+ `http://localhost:9005`
21
+
22
+ Required API paths:
23
+
24
+ - `GET /data/current/image/sentinel`
25
+ - `GET /data/image/sentinel`
26
+ - `GET /data/current/image/mapbox`
27
+ - `GET /data/image/mapbox`
28
+
29
+ LandfillSentry scans watchlist sites through the coordinate-based DPhi SimSat endpoints, so the selected landfill coordinates are passed directly to `/data/current/image/sentinel`, `/data/image/sentinel`, and `/data/current/image/mapbox`.
30
+
31
+ ## 2. Configure LandfillSentry
32
+
33
+ In `.env.local`, use live/strict settings:
34
+
35
+ ```env
36
+ SIMSAT_MODE=live
37
+ MAPBOX_MODE=live
38
+ INFERENCE_MODE=live
39
+ REQUIRE_LIVE_RESULTS=true
40
+ INFERENCE_ALLOW_FALLBACK=false
41
+ SIMSAT_BASE_URL=http://localhost:9005
42
+ SIMSAT_USE_FOR_MAPBOX=true
43
+ ```
44
+
45
+ Add the real tokens required by your local environment, for example `HF_TOKEN` and Mapbox credentials.
46
+
47
+ ## 3. Start the app
48
+
49
+ ```powershell
50
+ powershell -ExecutionPolicy Bypass -File scripts/start_judge_mode.ps1 -RestartApi
51
+ ```
52
+
53
+ Open:
54
+
55
+ `http://127.0.0.1:8000/ops`
56
+
57
+ ## 4. Judge Verification
58
+
59
+ These endpoints should all respond from the running app:
60
+
61
+ - `GET /runtime/status`
62
+ - `GET /ops/summary`
63
+ - `GET /overlays/plumes`
64
+
65
+ `/runtime/status` should show:
66
+
67
+ - `imagery_provider`: `DPhi SimSat`
68
+ - `imagery_provider_repository`: `https://github.com/DPhi-Space/SimSat`
69
+ - `simsat_required_endpoints`: the Sentinel and Mapbox endpoint list
70
+ - `scan_policy`: `strict_live`
71
+
72
+ If DPhi SimSat or live inference is unavailable, scans fail with an actionable error instead of silently substituting mock/sample data.
73
+
74
+ ## 5. Saved Proof
75
+
76
+ The smoke command writes:
77
+
78
+ - `docs/latest_live_smoke_proof.md`
79
+ - `data/processed/live_smoke_proof.json`
80
+
81
+ The latest archived scan proof is:
82
+
83
+ - `docs/latest_live_scan_artifact.md`
84
+ - `data/processed/judge_live_artifacts/scan_083.json`