7.1 KiB
GitNexus V2 Strategic Roadmap: The "Semantic Understanding" Upgrade
Context for Models: This document contains a comprehensive analysis of a competitor tool ("Noodlbox") and a detailed roadmap for integrating its best features into GitNexus. GitNexus is a browser-native (WASM) code analysis tool using KuzuDB and Tree-sitter. This roadmap aims to elevate GitNexus from a "Code Graph" to a "Semantic Code Understanding" platform.
1. Competitive Analysis: GitNexus vs. Noodlbox
Core Architecture
| Feature | GitNexus (Current) | Noodlbox (Competitor) | Advantage |
|---|---|---|---|
| Runtime | 100% Browser (WASM). Zero setup. Privacy-first. | CLI + Local Server. Requires installation/daemon. | GitNexus (UX/Privacy) |
| Storage | KuzuDB (WASM). Graph + Vector. | LanceDB. Graph + Vector. | Tied (Both robust) |
| Extraction | Tree-sitter (WASM). | Tree-sitter. | Tied |
| Integration | Custom MCP Bridge (Browser ↔ Local). | Direct CLI MCP Server. | Noodlbox (Simpler setup) |
Conceptual Model (The Gap)
| Feature | GitNexus | Noodlbox | Analysis |
|---|---|---|---|
| Grouping | File-based (Folders). | Communities. Algorithmic clustering of related code. | Noodlbox. Reveals logical architecture vs physical. |
| Flows | Raw CALLS edges. |
Processes. Named execution paths (Entry → End). | Noodlbox. "How it works" vs "What calls what". |
| Search | Hybrid (BM25 + Vec). | Context Search. | Tied, but Noodlbox returns Processes. |
| Impact | Node Blast Radius. | Git Diff Impact. Unstaged/Staged analysis. | Noodlbox. Much better DevEx. |
| UX | Raw IDs/Filenames. | Labels. Human-readable names ("Auth System"). | Noodlbox. Cognitive load reduction. |
2. Strategic Goal: "The Graph of Meaning"
We need to move GitNexus beyond just mapping files and functions to mapping concepts and flows.
Shift: Files -> Communities, Functions -> Processes, Edges -> Flows.
3. Implementation Roadmap
🔥 PHASE 1: The Semantic Layer (High Priority)
Transform the raw KuzuDB graph into high-level concepts.
1.1 Communities (Code Clusters)
Concept: Use modularity optimization to group tightly coupled symbols into "Communities" (e.g., "Auth System", "Payment Processing") regardless of folder structure.
- Algorithm: Implement Leiden Algorithm (superior to Louvain for refined clusters) or Louvain in WASM (or pure JS if graph small enough).
- Trigger: Run post-ingestion.
- Schema Update:
- New Node:
Community { id, label, cohesionScore } - New Edge:
MEMBER_OF(Symbol -> Community)
- New Node:
- Metrics: Calculate Cohesion Score (internal edges / total edges) to rate cluster quality (0-1).
- Key Symbols: Identify diverse "Entry Points" (called from outside) and "Central Hubs" (high internal degree).
1.2 Processes (Execution Flows)
Concept: Trace and name execution paths often hidden in call graphs.
- Detection Heuristic:
- Find Entry Points: Functions called by Frameworks (e.g.,
handleRequest) or with 0 internal callers. - Trace forward
CALLSedges (limit depth/branching). - Group linear paths.
- Find Entry Points: Functions called by Frameworks (e.g.,
- Schema Update:
- New Node:
Process { id, label, process_type: 'intra'|'cross' } - New Edge:
STEP_IN_PROCESS { step_number }(Symbol -> Process)
- New Node:
- Process Labeling: Heuristic naming (e.g.,
[EntryFn]_[Action]).
1.3 Git Diff Impact Detection
Concept: Analyze work-in-progress code, not just the committed graph.
- MCP Tool:
detect_impact(scope: 'unstaged' | 'staged') - Workflow:
- MCP Client reads
git diff. - Parse diff to find changed symbols (e.g.,
src/auth.ts: function login). - Query Graph for
potentially_affected(Downstream callers). - Crucial: Map affected symbols to Processes and Communities.
- Output: "Changing
loginaffects 'Checkout Flow' and 'User Onboarding Process'".
- MCP Client reads
🟡 PHASE 2: Cognitive UX (Medium Priority)
Make the complex graph human-readable.
2.1 Smart Labeling
Concept: Replacing IDs with meaningful names.
- Generator: Simple LLM pass or rule-based heuristic.
- Input: Top file paths in Community (e.g.,
src/auth/*,src/login/*). - Output: Label "Authentication".
- Input: Top file paths in Community (e.g.,
- Storage:
.gitnexus/labels.json. - Usage: UI & MCP tools display "Auth System" instead of "Community #12".
2.2 Architecture Generation (generate_map)
Concept: Auto-generated documentation that stays up to date.
- MCP Tool:
gitnexus_generate_architecture - Output:
ARCHITECTURE/folder.README.md: Mermaid Diagram of Communities + Cross-community data flow.{process_name}.md: Sequence diagrams of key processes.
- Value: Instant "Onboarding Docs" for any repo.
2.3 Centrality & Importance
Concept: Not all nodes are equal.
- Algorithm: PageRank or Betweenness Centrality.
- Use Case: Search results ranking. When searching "Auth", show the
AuthServiceclass before a random utility function used by it.
🟢 PHASE 3: Agentic Workflows (Low Priority)
Standardized "Thinking Patterns" for the LLM.
3.1 "Skills" (Structured Prompts)
Define rigid workflows for the Agent to prevent "wandering":
- Exploration Skill:
Read Map -> Pick Community -> List Key Processes -> Drill Down. - Debugging Skill:
Error Msg -> Search Context -> Trace Backwards (Callers) -> Check Recent Changes. - Refactoring Skill:
Select Symbol -> Blast Radius -> Dependencies (In/Out) -> Plan Split.
3.2 Hooks
- Session Hook: auto-inject
database-schemaand high-levelcodebase-mapat chat start. - Search Hook: Intercept
grepin IDE to attach semantic context ("This match is part of 'Payment Process'").
4. Technical Specs & Schema Changes
Proposed KuzuDB Schema V2
// Nodes
interface Community {
id: string; // "comm_1"
label: string; // "Authentication"
cohesion: number; // 0.85
}
interface Process {
id: string; // "proc_login_flow"
label: string; // "Login Flow"
type: 'intra_community' | 'cross_community';
}
// Relationships
// MEMBER_OF: Symbol -> Community
// STEP_IN_PROCESS: Symbol -> Process (property: step_index)
Algorithm Reference
- Leiden Algorithm:
- Input: Adjacency matrix of
CALLS+EXTENDSedges. - Output: Partition assignment (NodeID -> CommunityID).
- Constraint: Must run fast in JS/WASM.
- Input: Adjacency matrix of
- Reciprocal Rank Fusion (RRF):
- Already used for Search. Can be refined to weight "Key Symbols" (Centrality) higher.
5. Summary of Work to Be Done
- Ingestion: Add
CommunityDetectionandProcessTracingpost-processors. - Schema: Add
CommunityandProcesstables. - MCP: Add
detect_impacttool accepting git diffs. - UI: Visualize Communities (colored clusters) and Processes (animated paths).
- Docs: Implement
generate_mapto export findings to Markdown.