Navegador

navegador / docs / guide / planopticon.md
1
# Planopticon Integration
2
3
## What is Planopticon
4
5
Planopticon is a video and meeting knowledge extraction tool. It ingests recordings, transcripts, and meeting notes and produces structured knowledge graphs: entities (people, concepts, decisions), relationships, action items, and diagrams extracted from the meeting content.
6
7
Navegador treats Planopticon output as a first-class knowledge source. Where `navegador add concept` requires manual entry, Planopticon extracts concepts, rules, and decisions from meeting recordings automatically and navegador stores them alongside your code graph.
8
9
---
10
11
## How they connect
12
13
```
14
Video / transcript
15
16
Planopticon
17
↓ produces
18
knowledge_graph.json / interchange.json / manifest.json
19
20
navegador planopticon ingest
21
↓ creates
22
Concept / Rule / Decision / Person / WikiPage nodes
23
in the same FalkorDB graph as your code
24
```
25
26
The result: "the team decided to use Redis for session storage in the March architecture review" becomes a `Decision` node linked to the `Infrastructure` domain and, via `GOVERNS`, to the `SessionManager` class in your code.
27
28
---
29
30
## Input formats
31
32
Planopticon produces several output formats. Navegador accepts all of them and auto-detects by default.
33
34
### manifest.json
35
36
Top-level manifest for a multi-file Planopticon output package. Points to the knowledge graph, interchange, and supporting files.
37
38
```json
39
{
40
"version": "1.0",
41
"source": "zoom-meeting-2026-03-15",
42
"knowledge_graph": "knowledge_graph.json",
43
"interchange": "interchange.json",
44
"diagrams": ["arch-diagram.png"]
45
}
46
```
47
48
### knowledge_graph.json
49
50
Planopticon's native graph format. Contains typed entities and relationships:
51
52
```json
53
{
54
"entities": [
55
{ "id": "e1", "type": "Decision", "name": "UseRedisForSessions", "description": "...", "rationale": "..." },
56
{ "id": "e2", "type": "Person", "name": "Alice Chen", "role": "Lead Engineer" },
57
{ "id": "e3", "type": "Concept", "name": "SessionAffinity", "description": "..." }
58
],
59
"relationships": [
60
{ "from": "e2", "to": "e1", "type": "DECIDED_BY" },
61
{ "from": "e1", "to": "e3", "type": "RELATED_TO" }
62
]
63
}
64
```
65
66
### interchange.json
67
68
A normalized interchange format, flatter than the native graph. Used when exporting from Planopticon for consumption by downstream tools.
69
70
```json
71
{
72
"concepts": [...],
73
"rules": [...],
74
"decisions": [...],
75
"people": [...],
76
"action_items": [...],
77
"diagrams": [...]
78
}
79
```
80
81
### Batch manifest
82
83
A JSON file listing multiple Planopticon output directories or archive paths for bulk ingestion:
84
85
```json
86
{
87
"batch": [
88
{ "path": "./meetings/2026-03-15/", "source": "arch-review" },
89
{ "path": "./meetings/2026-02-20/", "source": "sprint-planning" }
90
]
91
}
92
```
93
94
---
95
96
## What maps to what
97
98
| Planopticon entity | Navegador node | Notes |
99
|---|---|---|
100
| `Concept` | `Concept` | Direct mapping; domain preserved if present |
101
| `Rule` | `Rule` | Severity set to `info` if not specified |
102
| `Decision` | `Decision` | `rationale`, `alternatives`, `date`, `status` preserved |
103
| `Person` | `Person` | `name`, `email`, `role`, `team` preserved |
104
| Action item | `Rule` + `ASSIGNED_TO` | Creates a `Rule` with severity `info`; creates `ASSIGNED_TO` edge to the `Person` |
105
| Diagram / image | `WikiPage` | Title from filename; content set to alt-text or caption |
106
| `Relationship: DECIDED_BY` | `DECIDED_BY` edge | Person → Decision |
107
| `Relationship: RELATED_TO` | `RELATED_TO` edge | Between any two knowledge nodes |
108
| Entity domain field | `BELONGS_TO` edge | Links node to named `Domain` (created if not exists) |
109
110
---
111
112
## CLI examples
113
114
### Auto-detect format (recommended)
115
116
```bash
117
navegador planopticon ingest ./meeting-output/ --type auto
118
```
119
120
### Explicit format
121
122
```bash
123
navegador planopticon ingest ./meeting-output/knowledge_graph.json --type kg
124
navegador planopticon ingest ./meeting-output/interchange.json --type interchange
125
navegador planopticon ingest ./manifest.json --type manifest
126
navegador planopticon ingest ./batch.json --type batch
127
```
128
129
### Label the source
130
131
Use `--source` to tag all nodes from this ingestion with a source label (useful for auditing where knowledge came from):
132
133
```bash
134
navegador planopticon ingest ./meeting-output/ \
135
--type auto \
136
--source "arch-review-2026-03-15"
137
```
138
139
### JSON output
140
141
```bash
142
navegador planopticon ingest ./meeting-output/ --json
143
```
144
145
Returns a summary of nodes and edges created.
146
147
---
148
149
## Python API
150
151
```python
152
from navegador.ingest import PlanopticonIngester
153
from navegador.graph import GraphStore
154
155
store = GraphStore.sqlite(".navegador/navegador.db")
156
ingester = PlanopticonIngester(store)
157
158
# auto-detect format
159
result = ingester.ingest("./meeting-output/", input_type="auto", source="arch-review")
160
161
print(f"Created {result.nodes_created} nodes, {result.edges_created} edges")
162
163
# ingest a specific interchange file
164
result = ingester.ingest_interchange("./interchange.json", source="sprint-planning")
165
```
166
167
### PlanopticonIngester methods
168
169
| Method | Description |
170
|---|---|
171
| `ingest(path, input_type, source)` | Auto or explicit ingest from path |
172
| `ingest_manifest(path, source)` | Ingest a manifest.json package |
173
| `ingest_kg(path, source)` | Ingest a knowledge_graph.json file |
174
| `ingest_interchange(path, source)` | Ingest an interchange.json file |
175
| `ingest_batch(path, source)` | Ingest a batch manifest |
176

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button