# Sprint 24: Entities Graph + Explore

> **Size**: L-XL | **Owner**: Backend + Client | **Prerequisites**: Sprint 18, Sprint 19
> **Phase**: 5 - Platform Evolution

---

## Validation Status (2025-12-31)

### ⚠️ PARTIAL PREREQUISITES

| Prerequisite | Status | Notes |
|--------------|--------|-------|
| Sprint 18 (Projects) | ✅ Implemented | Project scoping available |
| Sprint 19 (Artifacts) | ❌ Not implemented | Artifact infrastructure missing |

| Asset | Status | Location |
|-------|--------|----------|
| NamedEntity with segment_ids | ✅ Verified | `domain/entities/named_entity.py:69`, ORM at `models/entities/named_entity.py:50-54` |
| Entity extraction pipeline | ✅ Verified | `application/services/ner_service.py`, `infrastructure/ner/engine.py` |
| People.tsx page | ✅ Verified | `client/src/pages/People.tsx` |

**Partial blocker**: Core entity infrastructure exists. Graph schema can proceed, but project/artifact integration requires Sprint 18/19.

---

## Objective

Transform entities into a navigable knowledge layer with graph persistence and Explore visualization.

---

## What Already Exists

| Asset | Location | Implication |
|-------|----------|-------------|
| `NamedEntity` with segment_ids | Domain | Node data exists |
| Entity extraction pipeline | Infrastructure | Population ready |
| `People.tsx` page | Client | UI to replace |

---

## Scope

| Task | Effort |
|------|--------|
| Graph schema (nodes/edges) | L |
| Node types: entity, person, task, project, meeting | M |
| Edge types: mentioned-in, assigned-to, belongs-to | M |
| Community detection algorithm | L |
| Graph query APIs | M |
| Explore tab visualization | L |
| Re-embed/resubmit flows | M |
| Replace People with Entities | S |

---

## Deliverables

- `src/noteflow/infrastructure/graph/schema.py`
- `src/noteflow/infrastructure/graph/queries.py`
- Graph RPCs in proto
- `client/src/pages/Explore.tsx`
- Entity management consolidated from People

---

## Post-Sprint

- Graph export (Neo4j, GraphML)
- Entity disambiguation
- Community labeling
