Skip to content

Commit 5cb5443

Browse files
committed
Elite README: accurate stack (Render+Firebase), live demo link, real roadmap; drop unused Cloud Run script
1 parent 31632ce commit 5cb5443

3 files changed

Lines changed: 34 additions & 103 deletions

File tree

README.md

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,18 @@ evidence-backed post-mortem in **under 60 seconds** — no human in the loop.
1616

1717
<br/>
1818

19+
### ▶︎ Live demo: **[specterops-848e3.web.app](https://specterops-848e3.web.app)**
20+
21+
<br/>
22+
23+
[![Live Demo](https://img.shields.io/badge/▶_Live_Demo-specterops--848e3.web.app-00f5a0?style=for-the-badge)](https://specterops-848e3.web.app)
24+
1925
[![CI](https://github.com/skypank-coder/SpecterOps-Autonomous-Post-Incident-Forensics-Agent/actions/workflows/ci.yml/badge.svg)](https://github.com/skypank-coder/SpecterOps-Autonomous-Post-Incident-Forensics-Agent/actions/workflows/ci.yml)
2026
[![License: MIT](https://img.shields.io/badge/License-MIT-00f5a0.svg)](LICENSE)
2127
[![Partner: Dynatrace](https://img.shields.io/badge/Partner-Dynatrace-9b6cff)]()
2228
[![AI: Gemini 2.5 Flash](https://img.shields.io/badge/AI-Gemini%202.5%20Flash-4f8cff)]()
23-
[![Hosted: Cloud Run](https://img.shields.io/badge/Hosted-Cloud%20Run-f5a623)]()
29+
[![Frontend: Firebase](https://img.shields.io/badge/Frontend-Firebase%20Hosting-f5a623)]()
30+
[![Backend: Render](https://img.shields.io/badge/Backend-Render-46e3b7)]()
2431
[![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776ab.svg)]()
2532
[![React 18](https://img.shields.io/badge/React-18-61dafb.svg)]()
2633

@@ -82,8 +89,8 @@ hands structured state to the next. Every step streams to the dashboard live ove
8289
│ 🛡️ SentinelAgent Classify the alert · extract entities, │
8390
│ severity, category & metrics to pull │
8491
├──────────────────────────────────────────────────────────────────┤
85-
│ 🔍 TraceArchaeologist Query Dynatrace MCP in parallel — │
86-
traces · logs · metrics · topology
92+
│ 🔍 TraceArchaeologist Query Dynatrace in parallel —
93+
problems · metrics · entities · logs
8794
│ → reconstruct a chronological timeline │
8895
├──────────────────────────────────────────────────────────────────┤
8996
│ 🎯 BlameMapper Build a causal graph · isolate the root │
@@ -166,12 +173,12 @@ cd frontend && npm install && npm run dev
166173
| Layer | Technology |
167174
|:------|:-----------|
168175
| **Agents / Backend** | Python 3.11 · FastAPI · asyncio · Server-Sent Events |
169-
| **Reasoning** | Google **Gemini 2.5** (flash/pro) via the `google-genai` SDK |
176+
| **Reasoning** | Google **Gemini 2.5 Flash** via the `google-genai` SDK (resilient model-fallback chain) |
170177
| **Observability** | **Dynatrace** v2 API — problems · metrics · entities · logs |
171178
| **Frontend** | React 18 + Vite · Tailwind CSS · Framer Motion · **Three.js** (3D hero) · **D3** force-directed graph |
172179
| **Auth** | Firebase Authentication (Google + email) with graceful demo fallback |
173-
| **Persistence** | MongoDB Atlas (optional) · graceful in-memory fallback |
174-
| **Deployment** | Docker → Google **Cloud Run** · Firebase Hosting |
180+
| **Persistence** | MongoDB Atlas · graceful in-memory fallback |
181+
| **Deployment** | Docker · **Render** (backend) · **Firebase Hosting** (frontend) — 100% free tier |
175182
| **Quality** | `pytest` + `pytest-asyncio` · GitHub Actions CI |
176183

177184
</div>
@@ -237,18 +244,20 @@ DEMO_MODE=true python -m pytest # 7 passed
237244
```
238245
SpecterOps/
239246
├── .github/workflows/ci.yml # backend tests + frontend build
247+
├── render.yaml # Render Blueprint (backend deploy)
248+
├── firebase.json · .firebaserc # Firebase Hosting (frontend deploy)
249+
├── INTEGRATIONS.md # go-live guide (Gemini · Dynatrace · Mongo · Firebase · Slack)
240250
├── LICENSE # MIT
241-
├── .env.example
242251
├── backend/ # FastAPI app
243252
│ ├── agents/ # orchestrator + the 4 agents
244-
│ ├── mcp/ # Dynatrace client + simulation data
253+
│ ├── mcp/ # Dynatrace client + scenario engine
245254
│ ├── models/ # Pydantic domain models
246-
│ ├── routes/ # incidents · webhook · SSE stream
255+
│ ├── routes/ # incidents · webhook · SSE stream · config
247256
│ ├── utils/ # Gemini client (model fallback chain)
257+
│ ├── storage.py # MongoDB persistence (graceful fallback)
248258
│ └── tests/ # pytest suite
249-
├── frontend/ # React + Vite dashboard
250-
│ └── src/components/ # timeline · D3 graph · post-mortem · impact strip
251-
└── infra/deploy.sh # Cloud Run + Firebase deploy
259+
└── frontend/ # React + Vite dashboard
260+
└── src/components/ # launcher · agents · D3 graph · evidence · post-mortem · auth
252261
```
253262

254263
---
@@ -259,7 +268,7 @@ SpecterOps/
259268
|:------------------------|:----------------------------------------------------------------------------------------|
260269
| **Autonomy** | Four agents run a full alert → post-mortem pipeline with **no human in the loop**. |
261270
| **Use of Gemini** | Gemini 2.5 Flash drives classification, timeline reconstruction, causal reasoning & authoring. |
262-
| **Partner (Dynatrace)** | Deep MCP integration across problems, traces, logs, metrics and topology. |
271+
| **Partner (Dynatrace)** | Pulls **real** open problems (problems · metrics · entities · logs) and **pushes the RCA back** onto the problem. |
263272
| **Technical execution** | Async parallel data gathering, live SSE streaming, D3 visualization, graceful fallbacks, CI + tests. |
264273
| **Impact / wow** | A real outage diagnosed end-to-end in under 60 seconds — **live on screen**. |
265274
| **Polish** | Dark-terminal dashboard, real-time agent timeline, headline impact metrics, rendered post-mortem. |
@@ -268,11 +277,14 @@ SpecterOps/
268277

269278
## 🗺️ Roadmap
270279

271-
- 🔌 Live Dynatrace MCP server integration (beyond the REST v2 client)
272-
- 🧩 Pluggable scenario library (memory leaks, bad deploys, traffic spikes)
273-
- 💾 MongoDB persistence for incident history
274-
- 🤖 Auto-remediation proposals with human approval gates
275-
- 🔔 Slack / PagerDuty post-mortem delivery
280+
Already shipped: live Dynatrace problem pull + RCA push-back, scenario library + custom
281+
incidents, MongoDB persistence, Firebase auth, Slack delivery. Next:
282+
283+
- 🤖 Approval-gated **auto-remediation execution** (wire the proposed fix into CI/CD)
284+
- 👥 **Per-user Dynatrace** connect (multi-tenant, OAuth) so each user investigates their own tenant
285+
- 🎫 Auto-file a **GitHub / Jira** remediation ticket from the post-mortem
286+
- 🔗 **Multi-incident correlation** — detect when several problems share one root cause
287+
- 🧩 Native **Dynatrace App** (run SpecterOps inside the Dynatrace platform)
276288

277289
---
278290

@@ -282,5 +294,5 @@ SpecterOps/
282294

283295
<div align="center">
284296
<br/>
285-
<sub>Built with Gemini 2.5 Flash · Dynatrace · Google Cloud Run — for the Rapid Agent Hackathon 2026.</sub>
297+
<sub>Built with Gemini 2.5 Flash · Dynatrace · Render · Firebase — for the Google Cloud Rapid Agent Hackathon 2026.</sub>
286298
</div>

frontend/.env.production

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Production build points at the hosted Render backend.
2+
# (Firebase VITE_FIREBASE_* values are inherited from .env at build time.)
3+
VITE_API_URL=https://specterops-api.onrender.com

infra/deploy.sh

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)