Two corrections. **1. Sophia was written from recall, not from the source.** Reworked her identity and voice against the Golden Girls canon: - **She has a Brooklyn accent, not a Sicilian one.** She left Sicily in the 1920s and spent seventy years in New York; Estelle Getty played her explicitly as Brooklyn Italian-American. This is the single most common way to get her wrong, so it is now stated in the tone line, repeated in Avoid, and has its own failure mode. - **"Picture it" is a parable, not a catchphrase.** It opens a scene that ends in a moral answering the question actually asked. The failure mode is using it as a verbal tic with no story behind it. - Added the real biography (Grisanti, Salvadore, Clinton Avenue, Dorothy / Gloria / Phil, the stroke that removed her filter, Shady Pines, chef at the Golden Palace, the bamboo handbag) and the canon behaviours worth having: Sicilian curses, grudges, the mafia joke, serial embellishment with famous acquaintances. - New example interaction demonstrating a "Picture it" that earns its place. **2. Agents no longer get told who they replaced.** Provenance muddies the voice, invites comparison to a character that no longer exists, and costs context — an agent only needs to know who they *are*. Removed the lineage sentences from Sophia's bible and prompt, and retroactively from Watson (Seneca) and David (Bowie), including the LLM-facing shared.md directory and the personal.md "Replaced agents" section. Watson's substantive framing guidance is preserved, only the who-came-before is gone. Provenance now lives in exactly two places: the schema Version History and the git log. New docs/roster-changes.md captures the practice — the fictional-character casting rule and why it exists, when retiring is justified, that a 2:1 merge is legitimate, that node ownership transfers with no migration because constraints are label-keyed, that historical Note tags are left alone, and a checklist of everywhere a roster change actually reaches (spoiler: every agent prompt embeds the team roster, across all three teams and every runtime and deploy repo). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
53 lines
2.6 KiB
Markdown
53 lines
2.6 KiB
Markdown
# Neo4j Knowledge Graph — Personal Team
|
|
|
|
You have access to a unified Neo4j knowledge graph shared across all assistants (9 personal, 5 work, 3 engineering).
|
|
|
|
## Principles
|
|
|
|
1. **Read broadly, write to your domain** — You can read any node; write primarily to your own node types
|
|
2. **Always MERGE on `id`** — Check before creating to avoid duplicates
|
|
3. **Use consistent IDs** — Format: `{type}_{identifier}_{qualifier}` (e.g., `trip_costarica_2026`, `recipe_carbonara_classic`, `memory_2026-05-21_evening`)
|
|
4. **Always set timestamps** — `created_at` on CREATE, `updated_at` on every SET
|
|
5. **Use `domain` on universal nodes** — Person, Location, Event, Topic, Goal take `domain: 'personal' | 'work' | 'both'`
|
|
6. **Link to existing nodes** — Connect across domains; that's the graph's power
|
|
|
|
## Standard Patterns
|
|
|
|
```cypher
|
|
// Check before creating
|
|
MATCH (n:NodeType {id: 'your_id'}) RETURN n
|
|
|
|
// Create with MERGE (idempotent)
|
|
MERGE (n:NodeType {id: 'your_id'})
|
|
ON CREATE SET n.created_at = datetime()
|
|
SET n.name = 'Name', n.updated_at = datetime()
|
|
|
|
// Link to existing nodes
|
|
MATCH (a:TypeA {id: 'a_id'}), (b:TypeB {id: 'b_id'})
|
|
MERGE (a)-[:RELATIONSHIP]->(b)
|
|
```
|
|
|
|
## Personal Team Node Ownership
|
|
|
|
| Assistant | Domain | Owns |
|
|
|-----------|--------|------|
|
|
| **Shawn** | General assistant (calendar, contacts, email) | Contact, Event, Communication |
|
|
| **Nate** | Travel & Adventure | Trip, Destination, Activity |
|
|
| **Hypatia** | Learning & Reading | Book, Author, LearningPath, Concept, Quote |
|
|
| **Marcus** | Fitness & Training | Training, Exercise, Program, PersonalRecord, BodyMetric |
|
|
| **Watson** | Relationship memory & emotional safety | Reflection, Value, Habit, LifeEvent, Intention, EmotionalMemory, RelationshipTheme, DialogueNote, DynamicPattern |
|
|
| **Sophia** | Home, Food & Living Things | Recipe, Restaurant, Ingredient, Meal, Technique, Species, Plant, Tank, Garden, Ecosystem, Observation |
|
|
| **David** | Arts & Culture | Music, Film, Artwork, Playlist, Artist, Style, Fashion |
|
|
| **Garth** | Personal Finance | Account, Investment, Asset, Liability, Budget, FinancialGoal |
|
|
| **Cristiano** | Football | Match, Team, League, Tournament, Player, Season |
|
|
|
|
## Cross-Team Reads
|
|
|
|
- **Work team:** Skill, Certification, Project, Client (context on professional life)
|
|
- **Engineering team:** Infrastructure (services Robert depends on), Prototype (automation ideas)
|
|
- **Universal nodes:** Person, Location, Event, Topic, Goal (shared by all; carry `domain` property)
|
|
|
|
## Full Schema Reference
|
|
|
|
See `docs/tools/neo4j/unified-schema.md` for complete node definitions, all fields, and relationship types.
|