Schema update

This commit is contained in:
2026-05-20 07:12:48 -04:00
parent 71de22d3de
commit 812473ad97
5 changed files with 441 additions and 140 deletions

View File

@@ -3,8 +3,8 @@
> Canonical schema for the single shared graph database used by all AI assistants
---
version: 2.0.0
last_updated: 2025-02-16
version: 2.3.0
last_updated: 2026-05-17
replaces:
- prompts/personal/neo4j-schema.md (v1.0.0)
- prompts/work/neo4j-schema.md (v1.0.0)
@@ -27,19 +27,21 @@ This document defines the canonical schema for **one shared Neo4j graph database
| Team | Assistant | Domain | Graph Access |
|------|-----------|--------|--------------|
| **Personal** | Shawn | Personal General Assistant (calendar, contacts, comms) | Read all, write `domain='personal'` Contact/Event/Task + own Communication |
| **Personal** | Nate | Travel & Adventure | Read all, write own domain |
| **Personal** | Hypatia | Learning & Reading | Read all, write own domain |
| **Personal** | Marcus | Fitness & Training | Read all, write own domain |
| **Personal** | Seneca | Reflection & Wellness | Read all, write own domain |
| **Personal** | Watson | Relationship Memory & Emotional Safety | Read all, write own domain |
| **Personal** | Bourdain | Food & Cooking | Read all, write own domain |
| **Personal** | Bowie | Arts & Culture | Read all, write own domain |
| **Personal** | David | Arts & Culture | Read all, write own domain |
| **Personal** | Cousteau | Nature & Living Things | Read all, write own domain |
| **Personal** | Garth | Personal Finance | Read all, write own domain |
| **Personal** | Cristiano | Football | Read all, write own domain |
| **Work** | Alan | Strategy & Business Model | Read all, write all work nodes |
| **Work** | Ann | Marketing & Visibility | Read all, write all work nodes |
| **Work** | Jeffrey | Proposals & Sales | Read all, write all work nodes |
| **Work** | Jarvis | Daily Execution | Read all, write all work nodes |
| **Work** | Alan | Strategy & Business Model | Read all, write `domain='work'` work nodes |
| **Work** | Ann | Marketing & Visibility | Read all, write `domain='work'` work nodes |
| **Work** | Jeffrey | Proposals & Sales | Read all, write `domain='work'` work nodes |
| **Work** | Jarvis | Daily Execution | Read all, write `domain='work'` Contact/Event/Task + work nodes |
| **Work** | AWS SA | AWS Architecture Design | Read all, generally writes only Note (messages); no domain ownership |
| **Engineering** | Scotty | Infrastructure & Ops | Read all, write own domain |
| **Engineering** | Harper | Prototyping & Hacking | Read all, write own domain |
@@ -93,7 +95,12 @@ Physical places — shared across travel, training, dining, nature, work events.
```
### Event
Significant occurrences spanning any domain.
Significant occurrences spanning any domain. Personal events (birthdays,
dinners, family gatherings) are written by Shawn with `domain='personal'`;
work events (conferences, client meetings, webinars) are written by
Jarvis/Jeffrey/Ann/Alan with `domain='work'`. Cross-domain events that
genuinely span both (e.g., a client takes Robert to a baseball game) use
`domain='both'`.
```cypher
(:Event {
@@ -102,7 +109,7 @@ Significant occurrences spanning any domain.
date: Date!,
end_date: Date,
type: String, // celebration, milestone, conference, webinar, workshop, competition
domain: String, // personal, work, both
domain: String!, // personal, work, both — determines owning team
description: String,
location: String,
role: String, // attendee, speaker, panelist, host (for work events)
@@ -160,6 +167,46 @@ Objectives and aspirations — life, fitness, career, financial.
## Personal Team — Domain Node Types
### Shawn's Domain (Personal General Assistant)
Shawn is the personal calendar/contacts/communications assistant. He owns the
Personal scope of three Universal node types (`Contact`, `Event`, `Task`
all with `domain='personal'`) and one dedicated node type (`Communication`).
He is the Personal counterpart to the Work team's Jarvis. The divide is
strict: Shawn never writes `domain='work'` rows; Jarvis never writes
`domain='personal'` rows.
Tooling: Shawn uses **Kairos** (calendar/tasks/personal address book); work
agents use **Athena** (CRM). Kairos is shared read-only with work agents for
calendar deconfliction.
#### Communication
*Personal interaction history with contacts — calls, texts, emails, in-person
meet-ups, social-media exchanges. Shawn owns this exclusively; there is no
Work equivalent (the work team logs interactions in Meeting/Note nodes
linked to Contact/Opportunity).*
```cypher
(:Communication {
id: String!, // e.g., "comm_2026-05-17_mike_chen_coffee"
type: String!, // call, text, email, in_person, social
contact_id: String!, // foreign key to Contact.id (domain='personal')
date: Date!,
subject: String,
summary: String,
follow_up: String, // freeform: "send podcast link", "schedule next coffee"
sentiment: String, // positive, neutral, strained, distant
created_at: DateTime,
updated_at: DateTime
})
```
Relationships:
```cypher
(Communication)-[:WITH]->(Contact {domain: 'personal'})
(Person {id:"user_main"})-[:HAD]->(Communication)
```
### Nate's Domain (Travel & Adventure)
#### Trip
@@ -1061,10 +1108,15 @@ Objectives and aspirations — life, fitness, career, financial.
```
#### Contact
*Universal — used by both Personal (Shawn) and Work (Jeffrey/all-work) teams.
The `domain` field disambiguates ownership.*
```cypher
(:Contact {
id: String!, // e.g., "contact_john_smith_acme"
id: String!, // e.g., "contact_john_smith_acme" (work),
// "contact_mike_chen" (personal)
name: String!,
domain: String!, // personal, work — determines owning team
title: String,
company: String,
email: String,
@@ -1073,12 +1125,17 @@ Objectives and aspirations — life, fitness, career, financial.
relationship_strength: String, // new, developing, strong, champion
last_contact: Date,
notes: String,
tags: [String], // decision_maker, influencer, technical, executive
tags: [String], // decision_maker, influencer, technical, executive (work)
// family, friend, neighbour (personal)
created_at: DateTime,
updated_at: DateTime
})
```
**Ownership rule (strict):** Shawn writes `domain='personal'` rows only;
Jarvis/Jeffrey/Alan/Ann write `domain='work'` rows only. Personal and Work
contacts never share an id namespace.
#### Opportunity
```cypher
(:Opportunity {
@@ -1311,14 +1368,20 @@ Professional network beyond clients.
### Daily Operations Nodes
#### Task
*Universal — Shawn owns Personal tasks; Jarvis owns Work tasks. The `domain`
field disambiguates.*
```cypher
(:Task {
id: String!, // e.g., "task_2025-01-08_proposal_draft"
id: String!, // e.g., "task_2026-05-17_proposal_draft" (work),
// "task_2026-05-17_book_dentist" (personal)
title: String!,
domain: String!, // personal, work
status: String!, // pending, in_progress, completed, deferred, cancelled
priority: String, // urgent, high, medium, low
due_date: Date,
context: String, // client, opportunity, content, admin
context: String, // client, opportunity, content, admin (work)
// errand, household, social, health (personal)
related_to: String,
description: String,
completed_date: Date,
@@ -1328,6 +1391,10 @@ Professional network beyond clients.
})
```
**Tooling note:** Kairos is the Personal calendar/task/contact tool (shared
read-only with Work agents for deconfliction); Athena is the Work CRM. Work
agents may read Personal tasks for scheduling but do not write them.
#### Meeting
```cypher
(:Meeting {
@@ -1783,82 +1850,83 @@ If queries fail:
|---|-----------|--------|---------------|-----------------|
| 1 | Person | Universal | Any | id |
| 2 | Location | Universal | Any | id |
| 3 | Event | Universal | Any | id |
| 3 | Event | Universal | Shawn (personal) / Jarvis (work) | id |
| 4 | Topic | Universal | Hypatia / Ann | id |
| 5 | Goal | Universal | Seneca | id |
| 6 | Trip | Personal | Nate | id |
| 7 | Destination | Personal | Nate | id |
| 8 | Activity | Personal | Nate | id |
| 9 | Book | Personal | Hypatia | id |
| 10 | Author | Personal | Hypatia | id |
| 11 | LearningPath | Personal | Hypatia | id |
| 12 | Concept | Personal | Hypatia | id |
| 13 | Quote | Personal | Hypatia | id |
| 14 | Training | Personal | Marcus | id |
| 15 | Exercise | Personal | Marcus | id |
| 16 | Program | Personal | Marcus | id |
| 17 | PersonalRecord | Personal | Marcus | id |
| 18 | BodyMetric | Personal | Marcus | id |
| 19 | Reflection | Personal | Watson | id |
| 20 | Value | Personal | Watson | id |
| 21 | Habit | Personal | Watson | id |
| 22 | LifeEvent | Personal | Watson | id |
| 23 | Intention | Personal | Watson | id |
| 24 | EmotionalMemory | Personal | Watson | id |
| 25 | RelationshipTheme | Personal | Watson | id |
| 26 | DialogueNote | Personal | Watson | id |
| 27 | DynamicPattern | Personal | Watson | id |
| 28 | Recipe | Personal | Bourdain | id |
| 29 | Restaurant | Personal | Bourdain | id |
| 30 | Ingredient | Personal | Bourdain | id |
| 31 | Meal | Personal | Bourdain | id |
| 32 | Technique | Personal | Bourdain | id |
| 33 | Music | Personal | Bowie | id |
| 34 | Film | Personal | Bowie | id |
| 35 | Artwork | Personal | Bowie | id |
| 36 | Playlist | Personal | Bowie | id |
| 37 | Artist | Personal | Bowie | id |
| 38 | Style | Personal | Bowie | id |
| 39 | Species | Personal | Cousteau | id |
| 40 | Plant | Personal | Cousteau | id |
| 41 | Tank | Personal | Cousteau | id |
| 42 | Garden | Personal | Cousteau | id |
| 43 | Ecosystem | Personal | Cousteau | id |
| 44 | Observation | Personal | Cousteau | id |
| 45 | Account | Personal | Garth | id |
| 46 | Investment | Personal | Garth | id |
| 47 | Asset | Personal | Garth | id |
| 48 | Liability | Personal | Garth | id |
| 49 | Budget | Personal | Garth | id |
| 50 | FinancialGoal | Personal | Garth | id |
| 51 | Match | Personal | Cristiano | id |
| 52 | Team | Personal | Cristiano | id |
| 53 | League | Personal | Cristiano | id |
| 54 | Tournament | Personal | Cristiano | id |
| 55 | Player | Personal | Cristiano | id |
| 56 | Season | Personal | Cristiano | id |
| 57 | Client | Work | Alan / All | id |
| 58 | Contact | Work | Jeffrey / All | id |
| 59 | Opportunity | Work | Jeffrey / All | id |
| 60 | Proposal | Work | Jeffrey / All | id |
| 61 | Project | Work | Jarvis / All | id |
| 62 | Vendor | Work | Alan / All | id |
| 63 | Competitor | Work | Alan / All | id |
| 64 | MarketTrend | Work | Alan / All | id |
| 65 | Technology | Work | Alan / All | id |
| 66 | Content | Work | Ann / All | id |
| 67 | Publication | Work | Ann / All | id |
| 68 | Skill | Work | Any work | id |
| 69 | Certification | Work | Any work | id |
| 70 | Relationship | Work | Any work | id |
| 71 | Task | Work | Jarvis / All | id |
| 72 | Meeting | Work | Jarvis / All | id |
| 73 | Note | Work | Jarvis / All | id |
| 74 | Decision | Work | Alan / Jarvis | id |
| 75 | Infrastructure | Engineering | Scotty | id |
| 76 | Incident | Engineering | Scotty | id |
| 77 | Prototype | Engineering | Harper | id |
| 78 | Experiment | Engineering | Harper | id |
| 5 | Goal | Universal | Watson | id |
| 6 | Contact | Universal | Shawn (personal) / Jeffrey-All (work) | id |
| 7 | Task | Universal | Shawn (personal) / Jarvis (work) | id |
| 8 | Communication | Personal | Shawn | id |
| 9 | Trip | Personal | Nate | id |
| 10 | Destination | Personal | Nate | id |
| 11 | Activity | Personal | Nate | id |
| 12 | Book | Personal | Hypatia | id |
| 13 | Author | Personal | Hypatia | id |
| 14 | LearningPath | Personal | Hypatia | id |
| 15 | Concept | Personal | Hypatia | id |
| 16 | Quote | Personal | Hypatia | id |
| 17 | Training | Personal | Marcus | id |
| 18 | Exercise | Personal | Marcus | id |
| 19 | Program | Personal | Marcus | id |
| 20 | PersonalRecord | Personal | Marcus | id |
| 21 | BodyMetric | Personal | Marcus | id |
| 22 | Reflection | Personal | Watson | id |
| 23 | Value | Personal | Watson | id |
| 24 | Habit | Personal | Watson | id |
| 25 | LifeEvent | Personal | Watson | id |
| 26 | Intention | Personal | Watson | id |
| 27 | EmotionalMemory | Personal | Watson | id |
| 28 | RelationshipTheme | Personal | Watson | id |
| 29 | DialogueNote | Personal | Watson | id |
| 30 | DynamicPattern | Personal | Watson | id |
| 31 | Recipe | Personal | Bourdain | id |
| 32 | Restaurant | Personal | Bourdain | id |
| 33 | Ingredient | Personal | Bourdain | id |
| 34 | Meal | Personal | Bourdain | id |
| 35 | Technique | Personal | Bourdain | id |
| 36 | Music | Personal | David | id |
| 37 | Film | Personal | David | id |
| 38 | Artwork | Personal | David | id |
| 39 | Playlist | Personal | David | id |
| 40 | Artist | Personal | David | id |
| 41 | Style | Personal | David | id |
| 42 | Species | Personal | Cousteau | id |
| 43 | Plant | Personal | Cousteau | id |
| 44 | Tank | Personal | Cousteau | id |
| 45 | Garden | Personal | Cousteau | id |
| 46 | Ecosystem | Personal | Cousteau | id |
| 47 | Observation | Personal | Cousteau | id |
| 48 | Account | Personal | Garth | id |
| 49 | Investment | Personal | Garth | id |
| 50 | Asset | Personal | Garth | id |
| 51 | Liability | Personal | Garth | id |
| 52 | Budget | Personal | Garth | id |
| 53 | FinancialGoal | Personal | Garth | id |
| 54 | Match | Personal | Cristiano | id |
| 55 | Team | Personal | Cristiano | id |
| 56 | League | Personal | Cristiano | id |
| 57 | Tournament | Personal | Cristiano | id |
| 58 | Player | Personal | Cristiano | id |
| 59 | Season | Personal | Cristiano | id |
| 60 | Client | Work | Alan / All | id |
| 61 | Opportunity | Work | Jeffrey / All | id |
| 62 | Proposal | Work | Jeffrey / All | id |
| 63 | Project | Work | Jarvis / All | id |
| 64 | Vendor | Work | Alan / All | id |
| 65 | Competitor | Work | Alan / All | id |
| 66 | MarketTrend | Work | Alan / All | id |
| 67 | Technology | Work | Alan / All | id |
| 68 | Content | Work | Ann / All | id |
| 69 | Publication | Work | Ann / All | id |
| 70 | Skill | Work | Any work | id |
| 71 | Certification | Work | Any work | id |
| 72 | Relationship | Work | Any work | id |
| 73 | Meeting | Work | Jarvis / All | id |
| 74 | Note | Work | Jarvis / All | id |
| 75 | Decision | Work | Alan / Jarvis | id |
| 76 | Infrastructure | Engineering | Scotty | id |
| 77 | Incident | Engineering | Scotty | id |
| 78 | Prototype | Engineering | Harper | id |
| 79 | Experiment | Engineering | Harper | id |
---
@@ -1871,3 +1939,4 @@ If queries fail:
| 2.0.0 | 2025-02-16 | Unified schema: merged personal + work, added Garth (finance), added engineering nodes (Scotty/Harper), added cross-team relationships, promoted Topic/Goal/Event to universal, added domain property for disambiguation |
| 2.1.0 | 2026-02-16 | Added Cristiano (Football): Match, Team, League, Tournament, Player, Season (6 node types). Total: 74 nodes, 15 assistants |
| 2.2.0 | 2026-04-28 | Watson replaces Seneca: renamed domain to "Relationship Memory & Emotional Safety", added EmotionalMemory/RelationshipTheme/DialogueNote/DynamicPattern (4 new node types), updated primary owner for Reflection/Value/Habit/LifeEvent/Intention to Watson. Total: 80 nodes, 15 assistants |
| 2.3.0 | 2026-05-17 | Added Shawn (Personal General Assistant). Promoted Contact and Task from Work-only to Universal with `domain='personal'\|'work'` disambiguating ownership (Shawn owns Personal; Jarvis/Jeffrey own Work). Event already had `domain` field — documented Shawn (personal) vs Jarvis (work) split explicitly. Added Communication node type (Shawn-owned, personal-only interaction history). Renamed Bowie → David in node-summary table. Corrected stale Seneca → Watson on Goal ownership. Documented strict Personal/Work scope divide and Kairos (Personal) vs Athena (Work) tool split. Total: 79 nodes, 16 assistants |