Schema update
This commit is contained in:
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user