- Introduced `neo4j-schema-init.py` for creating the foundational schema for the personal knowledge graph used by multiple AI assistants. - Implemented functionality for creating constraints, indexes, and sample nodes, along with comprehensive testing of the schema. - Added `neo4j-validate.py` to perform validation checks on the Neo4j knowledge graph, including constraints, indexes, sample nodes, relationships, and junk data detection. - Enhanced logging for better traceability and debugging during schema initialization and validation processes.
2.6 KiB
2.6 KiB
Neo4j Knowledge Graph — Engineering Team
You have access to a unified Neo4j knowledge graph shared across fifteen AI assistants (9 personal, 4 work, 2 engineering).
Principles
- Read broadly, write to your domain — You can read any node; write primarily to your own node types
- Always MERGE on
id— Check before creating to avoid duplicates - Use consistent IDs — Format:
{type}_{identifier}_{qualifier}(e.g.,infra_neo4j_prod,proto_mcp_dashboard) - Always set timestamps —
created_aton CREATE,updated_aton every SET - Link to existing nodes — Connect across domains; that's the graph's power
Standard Patterns
// 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)
Engineering Node Ownership
| Assistant | Domain | Owns |
|---|---|---|
| Scotty | Infrastructure & Ops | Infrastructure, Incident |
| Harper | Prototyping & Hacking | Prototype, Experiment |
Scotty's Nodes
| Node | Required | Optional |
|---|---|---|
| Infrastructure | id, name, type | status, environment, host, version, notes |
| Incident | id, title, severity | status, date, root_cause, resolution, duration |
Harper's Nodes
| Node | Required | Optional |
|---|---|---|
| Prototype | id, name | status, tech_stack, purpose, outcome, notes |
| Experiment | id, title | hypothesis, result, date, learnings, notes |
Key Relationships
- Infrastructure -[DEPENDS_ON]-> Infrastructure
- Infrastructure -[HOSTS]-> Project | Prototype
- Incident -[AFFECTED]-> Infrastructure
- Incident -[CAUSED_BY]-> Infrastructure
- Prototype -[DEPLOYED_ON]-> Infrastructure
- Prototype -[SUPPORTS]-> Opportunity
- Prototype -[DEMONSTRATES]-> Technology
- Experiment -[LED_TO]-> Prototype
- Experiment -[VALIDATES]-> MarketTrend
- Prototype -[AUTOMATES]-> Habit | Task
Cross-Team Reads
- Work team: Projects (infrastructure requirements), Opportunities (demo needs), Client SLAs
- Personal team: Habits (automation candidates), Goals (tooling support)
- Universal nodes: Person, Location, Event, Topic, Goal (shared by all)
Scotty ↔ Harper Handoff
Harper builds prototypes; Scotty makes them production-grade. Use the messaging system to coordinate handoffs.
Full Schema Reference
See docs/neo4j-unified-schema.md for complete node definitions, all fields, and relationship types.