granola-series-recaplisted
Install: claude install-skill ayushmall/memoryvault-kit
# granola-series-recap
A single Granola meeting is a `type: event` memory. A *series* of
related meetings is a **surface entity** — the `granola-series` kind.
This skill clusters one-off meetings into series and turns each series
into a richer retrieval target.
## Goal
When the user asks "summarize my 1:1s with Alex" the kit should
answer via the `[[Weekly Jane <> Alex 1:1]]` surface entity and its
linked event memories — not by keyword-matching "Alex" across
hundreds of memories.
## Read (before saving)
1. **Cluster meetings into series.** A series exists when:
- Same title pattern across meetings (substring match)
- Same attendee set
- Regular cadence (weekly / bi-weekly / monthly)
Heuristic to discover series from existing CAL/GRANOLA memories:
```python
from collections import Counter
titles = [m["title"] for m in calendar_or_granola_memories]
normalized = [strip_dates(t) for t in titles] # remove "Apr 22" etc.
recurring = [t for t, n in Counter(normalized).items() if n >= 3]
```
2. **Does a granola-series surface entity exist for this cluster?**
```
entity_resolve "<series name>"
```
If no, create it under `entities/surfaces/granola-<series-slug>.md`.
3. **Check existing event memories** that should be re-linked to the
newly-created series.
## Reflect
Two memory outputs per series:
- **Per-meeting** `type: event` memories (already exist for one-offs;
this skill *re-links* them to the series surface)
- **Per-serie