# Project: Centralcloud Portal — Staff Incident Migration

## What This Is
The Centralcloud staff portal (`ops.centralcloud.com`) is a Phoenix LiveView umbrella application that provides operational dashboards, incident management, on-call schedules, and stakeholder communications for the Centralcloud platform. Currently, incident data is sourced from Grafana OnCall. This project migrates the incident-related LiveViews to use the in-house `centralcloud-ops` engine.

## Core Value
Staff can view, acknowledge, and resolve incidents through the portal using the authoritative in-house ops engine, while on-call scheduling continues to use Grafana OnCall until replacements are built.

## Current State
- `centralcloud_staff` app exists with DashboardLive, IncidentsLive, IncidentLive, OnCallLive
- `CentralcloudCore.OnCall` module provides Grafana OnCall API client
- `centralcloud-ops` engine runs in-cluster and exposes an incident API
- Staff app deployment is currently scaled to `replicas: 0` (being served directly by ops engine temporarily)
- No test suite exists in the portal repo

## Architecture / Key Patterns
- Umbrella: `centralcloud_core` (shared lib), `centralcloud_staff` (ops portal), `centralcloud_my` (customer portal)
- HTTP clients in `centralcloud_core` use `Req` with simple get/post wrappers
- LiveViews in `centralcloud_staff` follow standard Phoenix 1.7 + LiveView 1.0 + PetalComponents patterns
- Runtime config in `config/runtime.exs` sources from environment variables
- Docker multi-target build (`--target staff` / `--target my`)
- GitOps via Flux on k3s; manifests in `/srv/infra/...`

## Capability Contract
See `.sf/REQUIREMENTS.md` for the explicit capability contract, requirement status, and coverage mapping.

## Milestone Sequence

- [ ] M001: Migrate incident LiveViews to centralcloud-ops engine — Repoint DashboardLive, IncidentsLive, and IncidentLive to use the in-house ops engine for incident data while keeping OnCall schedules untouched.
