1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Ingesting a Repo
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Navegador builds the graph from four sources: code, manual knowledge curation, GitHub wikis, and Planopticon knowledge graph output.
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Code ingestion
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ingest ./repo
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### What gets extracted
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Navegador walks all source files in the repo and uses tree-sitter to extract structure. Supported languages:
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Extension(s) | Language | Extra |
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.py` | Python | — |
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.ts`, `.tsx` | TypeScript | — |
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.js`, `.jsx` | JavaScript | — |
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.go` | Go | — |
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.rs` | Rust | — |
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.java` | Java | — |
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.kt`, `.kts` | Kotlin | `[languages]` |
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.cs` | C# | `[languages]` |
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.php` | PHP | `[languages]` |
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.rb` | Ruby | `[languages]` |
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.swift` | Swift | `[languages]` |
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.c`, `.h` | C | `[languages]` |
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.cpp`, `.cc`, `.cxx`, `.hpp` | C++ | `[languages]` |
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Infrastructure-as-Code:**
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Extension(s) | Language | Extra |
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.tf`, `.hcl` | HCL / Terraform | `[iac]` |
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.pp` | Puppet | `[iac]` |
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.sh`, `.bash`, `.zsh` | Bash / Shell | `[iac]` |
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.yml`, `.yaml` | Ansible | `[iac]` (heuristic detection) |
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `.rb` (in Chef cookbooks) | Chef | `[iac]` (enricher on Ruby parser) |
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Ansible files are not matched by extension — navegador detects them by directory structure (`roles/`, `playbooks/`, `group_vars/`, `host_vars/`) or content (`hosts:` + `tasks:` keys). Chef uses the existing Ruby parser; the Chef enricher promotes nodes with Chef-specific semantic types.
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Install language and IaC support:
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pip install "navegador[languages]"
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
pip install "navegador[iac]"
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The following directories are always skipped: `.git`, `.venv`, `venv`, `node_modules`, `__pycache__`, `dist`, `build`, `.next`, `target` (Rust/Java builds), `vendor` (Go modules), `.gradle`.
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### What gets extracted
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| What | Graph nodes / edges created |
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Files | `File` node; `CONTAINS` edge from `Repository` |
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Classes, structs, interfaces | `Class` node with `name`, `file`, `line`, `docstring` |
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Functions and methods | `Function` / `Method` nodes with `name`, `docstring`, `line` |
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Imports / use declarations | `Import` node; `IMPORTS` edge from the importing file |
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Call relationships | `CALLS` edges between functions based on static call analysis |
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Inheritance | `INHERITS` edges from subclass to parent |
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Doc comment formats supported per language: Python docstrings, JSDoc (`/** */`), Rust `///`, Java Javadoc.
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### IaC extraction
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
IaC parsers map infrastructure constructs to the standard node labels with a `semantic_type` property for specificity:
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Language | Construct | Node label | `semantic_type` |
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|---|
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Terraform | `resource` | `Class` | `terraform_resource` |
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Terraform | `variable` / `output` / `locals` | `Variable` | `terraform_variable` / `terraform_output` / `terraform_local` |
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Terraform | `module` | `Module` | `terraform_module` |
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Terraform | `data` / `provider` | `Class` | `terraform_data` / `terraform_provider` |
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Puppet | `class` / `define` / `node` | `Class` | `puppet_class` / `puppet_defined_type` / `puppet_node` |
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Puppet | resource declaration | `Function` | `puppet_resource` |
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Puppet | `include` | `Import` | `puppet_include` |
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Ansible | playbook file | `Module` | `ansible_playbook` |
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Ansible | play | `Class` | `ansible_play` |
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Ansible | task / handler | `Function` | `ansible_task` / `ansible_handler` |
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Ansible | role | `Import` | `ansible_role` |
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Bash | function | `Function` | `shell_function` |
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Bash | variable | `Variable` | `shell_variable` |
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Bash | `source` / `.` | `Import` | `shell_source` |
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Cross-references are extracted where possible: Terraform `var.x`, `module.x`, and resource-to-resource dependencies become `REFERENCES` / `DEPENDS_ON` edges. Ansible `notify:` keys create `CALLS` edges to handlers. Puppet `include` creates `IMPORTS` edges.
89
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
90
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Options
91
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
92
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Flag | Effect |
93
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
94
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--clear` | Wipe the graph before ingesting (full rebuild) |
95
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--incremental` | Only reprocess files whose content hash has changed |
96
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--watch` | Keep running and re-ingest on file changes |
97
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--redact` | Strip secrets (tokens, passwords, keys) from string literals |
98
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--monorepo` | Traverse workspace sub-packages (Turborepo, Nx, Yarn, pnpm, Cargo, Go) |
99
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--json` | Output a JSON summary of nodes and edges created |
100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `--db <path>` | Use a specific database file |
101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Re-ingesting
103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Re-run `navegador ingest` anytime to pick up changes. Nodes are upserted by identity (file path + name), so repeated ingestion is idempotent for unchanged nodes. Use `--incremental` for large repos to skip unchanged files. Use `--clear` when you need a clean slate (e.g., after a large rename refactor).
105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Incremental ingestion
107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--incremental` uses SHA-256 content hashing to skip files that haven't changed since the last ingest. The hash is stored on each `File` node. On large repos this can reduce ingest time by 90%+ after the initial run.
109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ingest ./repo --incremental
112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Watch mode
115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--watch` starts a file-system watcher and automatically re-ingests any file that changes:
117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ingest ./repo --watch
120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Press `Ctrl-C` to stop. Watch mode uses `--incremental` automatically.
123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Sensitive content redaction
125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--redact` scans string literals for patterns that look like API keys, tokens, and passwords, and replaces their values with `[REDACTED]` in the graph. Source files are never modified.
127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ingest ./repo --redact
130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Monorepo support
133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--monorepo` detects the workspace type and traverses all sub-packages:
135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador ingest ./monorepo --monorepo
138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Supported workspace formats: Turborepo, Nx, Yarn workspaces, pnpm workspaces, Cargo workspaces, Go workspaces.
141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Knowledge curation
145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Manual knowledge is added with `navegador add` commands and linked to code with `navegador annotate`.
147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Concepts
149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
A concept is a named idea or design pattern relevant to the codebase.
151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador add concept "Idempotency" \
154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--desc "Operations safe to retry without side effects" \
155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--domain Payments
156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Rules
159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
A rule is an enforceable constraint on code behaviour.
161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador add rule "RequireIdempotencyKey" \
164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--desc "All write endpoints must accept an idempotency key header" \
165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--domain Payments \
166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--severity critical \
167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--rationale "Prevents double-processing on client retries"
168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Severity values: `info`, `warning`, `critical`.
171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Decisions
173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
An architectural decision record (ADR) stored in the graph.
175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador add decision "UsePostgresForTransactions" \
178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--desc "PostgreSQL is the primary datastore for transactional data" \
179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--domain Infrastructure \
180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--rationale "ACID guarantees required for financial data" \
181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--alternatives "MySQL, CockroachDB" \
182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--date 2025-03-01 \
183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--status accepted
184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Status values: `proposed`, `accepted`, `deprecated`, `superseded`.
187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### People
189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador add person "Alice Chen" \
192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--email [email protected] \
193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--role "Lead Engineer" \
194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--team Payments
195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Domains
198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Domains are top-level groupings for concepts, rules, and decisions.
200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador add domain "Payments" \
203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--desc "Everything related to payment processing and billing"
204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Annotating code
207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Link a code node to a concept or rule:
209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador annotate process_payment \
212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--type Function \
213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--concept Idempotency \
214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--rule RequireIdempotencyKey
215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
`--type` accepts: `Function`, `Class`, `Method`, `File`, `Module`.
218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
This creates `ANNOTATES` edges between the knowledge nodes and the code node. The code node then appears in results for `navegador concept Idempotency` and `navegador explain process_payment`.
220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Wiki ingestion
224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Pull a GitHub wiki into the graph as `WikiPage` nodes.
226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# ingest from GitHub API
229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador wiki ingest --repo myorg/myrepo --token $GITHUB_TOKEN
230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# ingest from a locally cloned wiki directory
232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador wiki ingest --dir ./myrepo.wiki
233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# force API mode (bypass auto-detection)
235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador wiki ingest --repo myorg/myrepo --api
236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Each wiki page becomes a `WikiPage` node with `title`, `content`, `url`, and `updated_at` properties. Pages are linked to relevant `Concept`, `Domain`, or `Function` nodes with `DOCUMENTS` edges where names match.
239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Set `GITHUB_TOKEN` in your environment to avoid rate limits and to access private wikis.
241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Planopticon ingestion
245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
[Planopticon](planopticon.md) is a video/meeting knowledge extraction tool. It produces structured knowledge graph output that navegador can ingest directly.
247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
navegador planopticon ingest ./meeting-output/ --type auto
250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
See the [Planopticon guide](planopticon.md) for the full input format reference and entity mapping details.
253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!