Query project knowledge graph. Search across tasks, SOPs, memories, and concepts. Use when user asks "what do we know about X?", "show everything related to X", or "remember this pattern/pitfall/decision".
Scanned 2/12/2026
Install via CLI
openskills install alekspetrov/navigator---
name: nav-graph
description: Query project knowledge graph. Search across tasks, SOPs, memories, and concepts. Use when user asks "what do we know about X?", "show everything related to X", or "remember this pattern/pitfall/decision".
allowed-tools: Read, Write, Edit, Bash
version: 1.0.0
---
# Navigator Knowledge Graph Skill
Query and manage the unified project knowledge graph. Surfaces relevant knowledge from tasks, SOPs, system docs, and experiential memories.
## Why This Exists
Navigator v6.0.0 introduces the Project Knowledge Graph:
- **Unified search**: Query across all knowledge types with one interface
- **Experiential memory**: Patterns, pitfalls, decisions, learnings persist
- **Context-aware retrieval**: Load only relevant knowledge (~1-2k tokens)
- **Relationship traversal**: Find related concepts and documents
## When to Invoke
**Query triggers**:
- "What do we know about X?"
- "Show everything related to X"
- "Any pitfalls for X?"
- "What decisions about X?"
- "Find all knowledge about X"
**Memory capture triggers**:
- "Remember this pattern: ..."
- "Remember this pitfall: ..."
- "Remember we decided: ..."
- "Remember this learning: ..."
**Graph management triggers**:
- "Initialize knowledge graph"
- "Rebuild knowledge graph"
- "Show graph stats"
## Graph Location
`.agent/knowledge/graph.json` (~1-2k tokens, loaded on query)
## Execution Steps
### Step 1: Determine Action
**QUERY** (searching knowledge):
```
User: "What do we know about authentication?"
→ Query graph by concept
```
**CAPTURE** (storing memory):
```
User: "Remember: auth changes often break session tests"
→ Create new memory node
```
**INIT** (building graph):
```
User: "Initialize knowledge graph"
→ Build graph from existing docs
```
**STATS** (viewing graph):
```
User: "Show graph stats"
→ Display graph statistics
```
### Step 2: Load or Initialize Graph
**Check if graph exists**:
```bash
if [ -f ".agent/knowledge/graph.json" ]; then
echo "Graph exists"
else
echo "No graph found, will initialize"
fi
```
**Initialize if not exists**:
```bash
python skills/nav-graph/functions/graph_builder.py \
--agent-dir .agent \
--output .agent/knowledge/graph.json
```
### Step 3A: Query Knowledge (If QUERY Action)
**Extract concept from user input**:
```
User: "What do we know about testing?"
→ Concept: testing
User: "Any pitfalls for auth?"
→ Concept: auth (normalized to authentication)
```
**Run query**:
```bash
python skills/nav-graph/functions/graph_manager.py \
--action query \
--concept "testing" \
--graph-path .agent/knowledge/graph.json
```
**Display results**:
```
Knowledge Graph: "testing"
TASKS (3)
- TASK-30: Task Verification Enhancement (completed)
- TASK-17: Visual Regression Integration (completed)
- TASK-11: Project Skills Generation (completed)
MEMORIES (2)
- PITFALL: "Auth changes break session tests" (90%)
- PATTERN: "Always run unit tests before integration" (85%)
SOPs (1)
- visual-regression-setup
FILES (5)
- skills/backend-test/*
- skills/frontend-test/*
Load details: "Read TASK-30" or "Show testing memories"
```
### Step 3B: Capture Memory (If CAPTURE Action)
**Parse memory from user input**:
```
User: "Remember this pitfall: auth changes often break session tests"
→ Type: pitfall
→ Summary: "auth changes often break session tests"
→ Concepts: [auth, testing]
User: "Remember we decided to use JWT over sessions for scaling"
→ Type: decision
→ Summary: "use JWT over sessions for scaling"
→ Concepts: [auth, architecture]
```
**Determine memory type**:
| User Says | Memory Type |
|-----------|-------------|
| "pattern", "we use", "approach" | pattern |
| "pitfall", "watch out", "careful" | pitfall |
| "decided", "chose", "because" | decision |
| "learned", "discovered", "realized" | learning |
**Create memory**:
```bash
python skills/nav-graph/functions/graph_manager.py \
--action add-memory \
--memory-type pitfall \
--summary "auth changes often break session tests" \
--concepts "auth,testing" \
--confidence 0.9 \
--graph-path .agent/knowledge/graph.json
```
**Optionally create detailed memory file**:
```markdown
# Pitfall: Auth Changes Break Session Tests
## Summary
Auth changes often break session tests due to...
## Context
Discovered during TASK-XX when...
## Recommended Approach
When modifying auth, always run...
## Related
- TASK-12: V3 Skills-Only
- SOP: autonomous-completion
```
**Confirm capture**:
```
Memory captured: mem-001
Type: Pitfall
Summary: "auth changes often break session tests"
Concepts: auth, testing
Confidence: 90%
This will be surfaced when working on auth or testing topics.
```
### Step 3C: Initialize Graph (If INIT Action)
**Build from existing docs**:
```bash
python skills/nav-graph/functions/graph_builder.py \
--agent-dir .agent \
--output .agent/knowledge/graph.json
```
**Display results**:
```
Knowledge Graph Initialized
Scanned:
- Tasks: 35
- SOPs: 12
- System docs: 3
- Markers: 8
Extracted:
- Concepts: 15
- Relationships: 47
Graph saved to .agent/knowledge/graph.json
Query with: "What do we know about [topic]?"
```
### Step 3D: Show Stats (If STATS Action)
**Display graph statistics**:
```bash
python skills/nav-graph/functions/graph_manager.py \
--action stats \
--graph-path .agent/knowledge/graph.json
```
**Output**:
```
Knowledge Graph Statistics
==========================
Total Nodes: 65
Total Edges: 47
Memories: 5
Last Updated: 2025-01-23T10:30:00Z
By Type:
Tasks: 35
SOPs: 12
System: 3
Markers: 8
Concepts: 15
Memories: 5
```
### Step 4: Find Related (Optional)
**If user asks for related items**:
```
User: "What's related to TASK-29?"
```
**Run traversal**:
```bash
python skills/nav-graph/functions/graph_manager.py \
--action related \
--node-id "TASK-29" \
--max-depth 2 \
--graph-path .agent/knowledge/graph.json
```
---
## Memory Types
### Pattern
"We use X for Y in this project"
- Reusable approaches
- Project conventions
- Best practices
### Pitfall
"Watch out for X when touching Y"
- Common mistakes
- Gotchas
- Failure modes
### Decision
"We chose X over Y because Z"
- Architecture decisions
- Technology choices
- Trade-off rationale
### Learning
"X usually means Y in this codebase"
- Project-specific knowledge
- Error interpretations
- Domain insights
---
## Confidence System
**Base confidence**:
- Correction-based: 0.8
- Explicit capture: 0.9
**Decay**:
- 1% per week since last validation
**Boost**:
- +5% per use (max +25%)
**Threshold**:
- Below 0.3: Candidate for pruning
- Above 0.7: Reliable memory
---
## Integration with Other Skills
### nav-start (Session Start)
Loads graph stats on session start:
```
Knowledge graph: 65 nodes, 5 memories
Relevant: 2 memories for current context
```
### nav-task (Task Creation)
Auto-extracts concepts from new tasks:
```
Creating TASK-35: Project Memory
Extracted concepts: knowledge, memory, graph
Added to graph.
```
### nav-profile (Corrections)
Corrections auto-create memories via `correction_to_memory.py`:
```bash
# When correction detected in nav-profile:
python3 skills/nav-graph/functions/correction_to_memory.py \
--action convert-one \
--correction-json '{"pattern": "...", "context": "...", "confidence": "high"}'
# Output:
[Correction detected]
→ Type: pitfall (based on pattern analysis)
→ Concepts: [auth, testing] (auto-extracted)
→ Created memory: mem-002
→ Added to graph
```
**Sync all corrections**:
```bash
python3 skills/nav-graph/functions/correction_to_memory.py \
--action sync \
--profile-path .agent/.user-profile.json \
--graph-path .agent/knowledge/graph.json
```
### nav-marker (Context Markers)
Markers reference graph state:
```
## Graph State
- Memories surfaced: mem-001, mem-003
- Concepts active: auth, testing
```
---
## Configuration
In `.agent/.nav-config.json`:
```json
{
"knowledge_graph": {
"enabled": true,
"auto_capture_corrections": true,
"auto_capture_decisions": true,
"auto_surface_relevant": true,
"max_session_memories": 5,
"confidence_decay_rate": 0.01,
"staleness_threshold_days": 90,
"git_tracked": true
}
}
```
---
## Graph Maintenance
### Health Check
```bash
python3 skills/nav-graph/functions/graph_maintenance.py --action health
```
Output:
```
Knowledge Graph Health Check
========================================
Total Nodes: 94
Total Edges: 819
Memories: 2 (2 high confidence)
Health Score: 100/100
No issues detected!
```
### Conflict Detection
Find memories that may contradict each other:
```bash
python3 skills/nav-graph/functions/graph_maintenance.py --action conflicts
```
### Stale Memory Detection
Find memories not validated in 90+ days:
```bash
python3 skills/nav-graph/functions/graph_maintenance.py --action stale --stale-days 90
```
### Low Confidence Pruning
Find and optionally remove low-confidence memories:
```bash
# Preview what would be removed
python3 skills/nav-graph/functions/graph_maintenance.py --action prune --threshold 0.3 --dry-run
# Actually remove (use with caution)
python3 skills/nav-graph/functions/graph_maintenance.py --action prune --threshold 0.3 --execute
```
### Apply Decay
Reduce confidence of stale memories:
```bash
python3 skills/nav-graph/functions/graph_maintenance.py --action decay --decay-rate 0.01
```
---
## Token Budget
| Component | Tokens | When |
|-----------|--------|------|
| graph.json (50 nodes) | ~1000 | On query |
| graph.json (200 nodes) | ~2000 | On query |
| Memory summaries (5) | ~500 | On session start |
| Full memory detail | ~500 each | On request |
**Session overhead**: ~1.3k tokens
---
## Success Criteria
Graph skill succeeds when:
- [ ] Query returns relevant results across knowledge types
- [ ] Memories persist and are surfaced appropriately
- [ ] Concepts connect related items
- [ ] Confidence decay/boost works
- [ ] Graph stays under 2k tokens overhead
---
## Best Practices
**Good queries**:
- "What do we know about auth?" (specific concept)
- "Any pitfalls for testing?" (scoped type)
- "Show everything related to TASK-29" (node traversal)
**Good memory capture**:
- "Remember: we use X for Y" (clear pattern)
- "Remember this pitfall: X breaks Y" (specific issue)
- "Remember we decided X because Y" (rationale included)
**Avoid**:
- Overly broad queries ("What do we know?")
- Storing code snippets in memories (use paths instead)
- Capturing obvious knowledge (focus on project-specific insights)
---
**This skill transforms Navigator from stateless assistant to knowledge-aware team member**
No comments yet. Be the first to comment!