# Task 02: Creator Vector Index

## Goal

Add `write_creator_embedding()` and `read_creator_embedding()` to `TidalDb`. These register and populate the `(EntityKind::Creator, "content")` slot in the existing `EmbeddingSlotRegistry`.

## Files to Modify

- `tidal/src/db/mod.rs` — add `write_creator_embedding()` and `read_creator_embedding()`

## Implementation

```rust
pub fn write_creator_embedding(&self, id: EntityId, embedding: &[f32]) -> crate::Result<()> {
    let mut registry = self.embedding_registry.write()...;
    if registry.get(EntityKind::Creator, "content").is_none() {
        // auto-register slot
        let state = EmbeddingSlotState::new(embedding.len(), QuantizationLevel::F32, EmbeddingSource::External);
        registry.register(EntityKind::Creator, "content".to_string(), state)?;
    }
    let slot = registry.get_mut(EntityKind::Creator, "content")...;
    slot.index.add(id.as_u64(), embedding)?;
    Ok(())
}

pub fn read_creator_embedding(&self, id: EntityId) -> crate::Result<Option<Vec<f32>>> {
    let registry = self.embedding_registry.read()...;
    let slot = match registry.get(EntityKind::Creator, "content") { None => return Ok(None), Some(s) => s };
    Ok(slot.index.get(id.as_u64()))
}
```

## Acceptance Criteria

- `write_creator_embedding(id, &vec)` succeeds and auto-registers the slot
- `read_creator_embedding(id)` returns the stored vector
- ANN search on `(EntityKind::Creator, "content")` returns results
