GitNexus 教學手冊(企業級完整版)

版本:v1.6.8(2026-06 基準,含 PDG / Taint Analysis、MCP Trace 工具、Private Repos via PAT、DevContainer、MCP HTTP Server)
適用對象:資深工程師 / 架構師 / DevOps / AI Agent 開發者
授權:PolyForm Noncommercial 1.0.0(企業授權另洽 akonlabs.com)
維護單位:內部 AI 開發組
GitHubgithub.com/abhigyanpatwari/GitNexus (⭐ 43.3k+ Stars / 163+ Contributors)
OpenSSF Scorecardsecurityscorecards.dev

⚠️ 重要警告:GitNexus 沒有官方加密貨幣、代幣或硬幣。任何在 Pump.fun 或其他平台上使用 GitNexus 名稱的代幣/硬幣,均非本專案或其維護者所屬、認可或建立。請勿購買任何聲稱與 GitNexus 相關的加密貨幣。


目錄


第 1 章:GitNexus 概述

1.1 GitNexus 是什麼

🎯 目的:讓團隊成員在 5 分鐘內理解 GitNexus 的定位與價值。

📘 說明

GitNexus 是由 Abhigyan Patwari 發起的開源程式碼智慧引擎(Code Intelligence Engine),核心理念為 Zero-Server(零伺服器)。它能將任何 GitHub 儲存庫或本地程式碼庫轉化為互動式知識圖譜(Knowledge Graph),讓 AI Agent 在進行程式碼分析、修改或重構時,能完整掌握每一個依賴關係、呼叫鏈與執行流程。

官方定義:「Building nervous system for agent context — Indexes any codebase into a knowledge graph — every dependency, call chain, cluster, and execution flow — then exposes it through smart tools so AI agents never miss code.」

Like DeepWiki, but deeper. DeepWiki 幫助你「理解」程式碼。GitNexus 讓你「分析」程式碼 — 因為知識圖譜追蹤每一個關係,而非僅是描述。

專案統計(截至 2026 年 6 月底):

指標數值
GitHub Stars43,300+
Contributors163+
Forks4,800+
Releases521+
npm Packagegitnexus
授權PolyForm Noncommercial 1.0.0
Discord 社群discord.gg/MgJrmsqr62
OpenSSF Scorecard安全評分
Docker ImagesGHCR / Docker Hub

核心特點

特性說明
Zero-ServerCLI 完全本地執行,Web UI 完全瀏覽器端運行,原始碼不外傳
Knowledge Graph將程式碼關係建構為圖譜資料庫(LadybugDB,前身為 KuzuDB)
Graph RAG基於圖譜的檢索增強生成,非傳統向量 RAG
Precomputed Intelligence索引時即預計算聚類、追蹤、評分,工具一次返回完整上下文
MCP 整合透過 Model Context Protocol 讓 AI Agent 直接查詢圖譜
14 語言支援TypeScript, JavaScript, Python, Java, Kotlin, C#, Go, Rust, PHP, Ruby, Swift, C, C++, Dart
Agent Skills自動安裝 4 個預設 Skill + 可生成 Repo 專屬 Skill
Multi-Repo單一 MCP Server 可服務多個已索引 Repository
Docker 部署官方 Docker Compose 一鍵部署,含 Cosign 供應鏈簽章
Incremental Indexing增量索引 — 僅重新索引變更的檔案(parse cache + DB writeback)
PR Reviewer SwarmPR Review 多 Agent 協作審查(v1.6.5+)
Self-Healing Worker Pool自癒式 Worker 池 + 延遲解析觀測(v1.6.5+)
PDG / Taint Analysis程式依賴圖 + 污染分析(opt-in --pdg,v1.6.8+)
Trace符號間最短呼叫路徑追蹤(Directed BFS,v1.6.8+)
Private Repos透過 PAT 支援 Private GitHub Repos + Azure DevOps Server(v1.6.8+)
MCP HTTP Servergitnexus mcp --http Streamable HTTP 傳輸(v1.6.8+)
DevContainer預裝 Claude/Codex/Cursor CLI 的開發容器(v1.6.6+)
FTS Stemmer 可配置GITNEXUS_FTS_STEMMER 環境變數(CJK 友善,v1.6.8+)
C++ CUDA.cu/.cuh 檔案解析支援(v1.6.8+)

最新版本:v1.6.8(2026-06 穩定版)— 含 PDG-backed Impact Analysis、Taint Analysis(Java/Python source/sink)、MCP trace 工具、Private Repos via PAT + Azure DevOps Server、MCP HTTP Server、HTTP Route Extraction、C++ CUDA 支援、FTS Stemmer 可配置、circular import cycle check、custom embeddings provider flags


1.2 核心理念

📘 說明

GitNexus 解決了一個關鍵問題:AI Coding Agent(如 Cursor、Claude Code、Codex、Cline、Roo Code、Windsurf、Antigravity)雖然強大,但不真正理解程式碼庫的結構

典型情境:

  1. AI 修改了 UserService.validate()
  2. 不知道有 47 個函式依賴其回傳型別
  3. 破壞性變更被部署上線

GitNexus vs 傳統 Graph RAG

graph LR
    subgraph 傳統 Graph RAG
        A[LLM 發送查詢] --> B[取得圖譜邊]
        B --> C[LLM 自行探索]
        C --> D[可能遺漏上下文]
    end

    subgraph GitNexus 預計算智慧
        E[索引時預計算] --> F[聚類 / 追蹤 / 評分]
        F --> G[工具一次返回完整上下文]
        G --> H[LLM 不會遺漏]
    end

核心創新 — Precomputed Relational Intelligence

  • 可靠性:LLM 無法遺漏上下文,因為已在工具回應中
  • Token 效率:無需 10 次查詢鏈才能理解一個函式
  • 模型民主化:小型 LLM 也能接收完整架構資訊,使其表現可與大型模型競爭

TL;DRWeb UI 是快速與任何 Repo 對話的工具。CLI + MCP 是讓你的 AI Agent 真正可靠的方式 — 它給 Cursor、Claude Code、Codex、Antigravity 等工具一個深度的架構視角,使它們不再遺漏依賴、破壞呼叫鏈或盲目編輯。甚至較小的模型也能獲得完整的架構清晰度,使其表現可與大型模型競爭。


1.3 與傳統工具比較

比較項目IDE 內建搜尋GitHub Code SearchDeepWikiCline / Roo CodeAntigravityGitNexus
分析深度單檔 / 符號文字匹配自然語言描述局部上下文Gemini 模型理解完整知識圖譜
關係追蹤有限(同檔)語義理解有限有限全域呼叫鏈 + 依賴圖
AI Agent 整合被動查詢自有 AgentGemini AgentMCP 主動提供上下文
影響分析爆炸半徑分析 + 信心分數
隱私保護本地雲端雲端依設定依設定完全本地
執行流程追蹤描述性自動偵測入口點到完整鏈路
多語言支援依 IDE有限有限有限有限14 語言
預計算智慧聚類 / 追蹤 / 評分
Docker 部署不適用不適用雲端依設定不適用官方 Docker Compose + Cosign 簽章
供應鏈保護不適用不適用不適用不適用不適用Cosign + SBOM + 出處證明

📌 關鍵差異:DeepWiki 幫你「理解」程式碼,GitNexus 讓你「分析」程式碼 — 因為知識圖譜追蹤每一個關係,而非僅是描述。Cline / Roo Code 雖有 AI Agent 能力,但缺乏預計算的結構化圖譜,仍依賴即時搜尋和局部上下文。Antigravity(Google)雖具備強大的 Gemini 模型能力,但同樣缺乏預計算的程式碼架構圖譜。


1.4 適用場景

場景說明GitNexus 價值
大型系統維護10 萬行以上的企業系統快速定位依賴、降低修改風險
微服務架構跨服務 API 呼叫分析Repository Group 統一圖譜
舊系統逆向工程Legacy 系統現代化自動產出架構圖、執行流程
PR Review變更影響分析detect_changes 自動評估風險
新人 Onboarding快速理解程式碼庫Wiki 自動生成 + 圖譜探索
重構計畫安全地進行大規模重構Impact Analysis + Rename
AI Coding提升 Agent 程式碼理解MCP 提供完整架構上下文

💡 最佳實務:在銀行系統中,建議將 GitNexus 加入 SSDLC 流程的「設計審查」與「變更管理」環節。

⚠️ 注意事項

  • Web UI 瀏覽器模式受記憶體限制(約 5,000 檔案),大型專案請使用 CLI
  • 商業使用需取得企業授權

第 2 章:系統架構說明

2.1 整體架構圖

🎯 目的:理解 GitNexus 各組件如何協作。

📘 說明

graph TB
    subgraph 索引層 Index Layer
        FS[檔案系統掃描<br/>Structure] --> TP[Tree-sitter AST 解析<br/>Parsing]
        TP --> RES[跨檔解析<br/>Resolution]
        RES --> CL[社群偵測<br/>Clustering]
        CL --> PR[執行流程追蹤<br/>Processes]
        PR --> SI[混合搜尋索引<br/>Search Index]
    end

    subgraph 儲存層 Storage Layer
        LDB[(LadybugDB<br/>圖譜資料庫)]
        EMB[(Embeddings<br/>向量索引)]
        REG[(Registry<br/>~/.gitnexus/registry.json)]
    end

    subgraph 服務層 Service Layer
        MCP[MCP Server<br/>stdio / HTTP]
        HTTP[HTTP Server<br/>gitnexus serve]
    end

    subgraph 消費層 Consumer Layer
        CC[Claude Code<br/>Full Integration]
        CUR[Cursor<br/>MCP + Skills]
        CDX[Codex<br/>MCP + Skills]
        AG[Antigravity<br/>MCP + Skills + Hooks]
        WS[Windsurf<br/>MCP]
        OC[OpenCode<br/>MCP + Skills]
        WEB[Web UI<br/>Browser]
    end

    SI --> LDB
    SI --> EMB
    SI --> REG
    LDB --> MCP
    EMB --> MCP
    REG --> MCP
    MCP --> CC
    MCP --> CUR
    MCP --> CDX
    MCP --> AG
    MCP --> WS
    MCP --> OC
    HTTP --> WEB
    LDB --> HTTP

2.2 核心組件說明

Parser(程式碼解析)

使用 Tree-sitter 進行 AST(Abstract Syntax Tree)解析,支援原生綁定(CLI)和 WASM(Web UI)兩種模式。

解析能力

能力說明
Imports跨檔 import 解析
Named Bindingsimport { X as Y } / re-export 追蹤
Exportspublic / exported 符號偵測
Heritage類別繼承、介面、Mixin
Type Annotations明確型別提取(用於 receiver 解析)
Constructor Inference建構子推斷型別(含 self/this 解析)
Config語言工具鏈配置解析(tsconfig、go.mod 等)
FrameworksAST 框架模式偵測(@Controller、@Get 等)
Entry Points入口點評分啟發式
Control Flow (CFG)每函式控制流圖(BasicBlock 節點 + CFG 邊),opt-in --pdg
PDG / Taint程式依賴圖(reaching-defs + control dependence)+ 污染分析,opt-in --pdg

Graph Builder(圖譜建構)

多階段索引流水線:

  1. Structure — 掃描檔案樹,映射資料夾 / 檔案關係
  2. Parsing — 使用 Tree-sitter AST 提取函式、類別、方法、介面
  3. Resolution — 解析 import、函式呼叫、繼承、建構子推斷、self/this receiver 型別,使用語言感知邏輯(language-aware logic)
  4. Clustering — 使用 Leiden 社群偵測演算法(基於 Graphology 圖結構庫),將相關符號分組為功能模組
  5. Processes — 從入口點追蹤執行流程,建立完整呼叫鏈
  6. Search — 建構混合搜尋索引(BM25 + 語義 + RRF)

v1.4.0+ 新增的解析能力

能力說明
3-Tier Resolver精確 FQN → scope-walk → 受保護模糊回退(拒絕模糊匹配)
Method Resolution Order (MRO)5 種語言策略:C++ leftmost-base、C#/Java class-over-interface、Python C3 linearization、Rust qualified syntax、default BFS
Constructor & Struct 解析new Foo()User{...}、C# primary constructor、target-typed new
Receiver-Constrained 解析透過 TypeEnv 區分 user.save() vs repo.save()
Heritage & Ownership EdgesHAS_METHOD、METHOD_OVERRIDES、METHOD_IMPLEMENTS、Go struct embedding、Swift extension heritage
Overload Disambiguation同名函式透過 type-hash suffix 區分(v1.5.3+)

Embedding Engine

使用 HuggingFace transformers.js 進行向量嵌入:

  • CLI:GPU / CPU 加速
  • Web UI:WebGPU / WASM

Graph RAG 查詢引擎

17 個 MCP 工具(12 個 per-repo + 5 個 group),透過 Model Context Protocol 暴露給 AI Agent。

完整技術棧(Tech Stack)

層級CLIWeb UI
RuntimeNode.js(原生)Browser(WASM)
ParsingTree-sitter 原生綁定Tree-sitter WASM
DatabaseLadybugDB 原生(前身 KuzuDB)LadybugDB WASM
EmbeddingsHuggingFace transformers.js(GPU/CPU)transformers.js(WebGPU/WASM)
SearchBM25 + 語義 + RRFBM25 + 語義 + RRF
Agent InterfaceMCP(stdio)LangChain ReAct Agent
VisualizationSigma.js + Graphology(WebGL)
FrontendReact 18, TypeScript, Vite, Tailwind v4
ClusteringGraphologyGraphology
ConcurrencyWorker threads + asyncWeb Workers + Comlink

2.3 Web UI vs CLI 架構差異

項目CLI + MCPWeb UI
定位日常開發,與 AI Agent 深度整合快速探索、Demo、一次性分析
規模任意大小的 Repo受瀏覽器記憶體限制(~5,000 檔案),或透過 Backend 模式無限制
安裝npm install -g gitnexus無需安裝 — gitnexus.vercel.app
RuntimeNode.js(原生)Browser(WASM)
解析Tree-sitter 原生綁定Tree-sitter WASM
資料庫LadybugDB 原生(快速、持久化)LadybugDB WASM(記憶體、每 session)
EmbeddingsHuggingFace transformers.js(GPU/CPU)transformers.js(WebGPU/WASM)
Agent 介面MCP(stdio)LangChain ReAct Agent
視覺化Sigma.js + Graphology(WebGL)
前端React 18, TypeScript, Vite, Tailwind v4
隱私完全本地,無網路呼叫完全瀏覽器端,無伺服器
並發處理Worker threads + asyncWeb Workers + Comlink

Bridge Mode:執行 gitnexus serve 可連接兩者 — Web UI 自動偵測本地伺服器,瀏覽所有 CLI 索引的 Repo,無需重新上傳或重新索引。

Local Backend Mode:執行 gitnexus serve 後開啟 Web UI — 自動偵測伺服器並顯示所有已索引 Repo,支援完整 AI 對話。Agent 的工具(Cypher 查詢、搜尋、程式碼導航)自動透過後端 HTTP API 路由。


2.4 Multi-Repo MCP 架構

📘 說明

GitNexus 使用全域 Registry,一個 MCP Server 可服務多個已索引的 Repo。

運作機制

  1. 每次 gitnexus analyze 將索引儲存在 Repo 內的 .gitnexus/(已 gitignore)
  2. 同時在 ~/.gitnexus/registry.json 註冊指標
  3. AI Agent 啟動時,MCP Server 讀取 Registry 並可服務任何已索引 Repo
  4. LadybugDB 連線採延遲開啟(Lazy),首次查詢時開啟,閒置 5 分鐘後回收(最大 5 個併發)
flowchart TD
    subgraph CLI [CLI 指令]
        Setup["gitnexus setup"]
        Analyze["gitnexus analyze"]
        Clean["gitnexus clean"]
        List["gitnexus list"]
    end

    subgraph Registry ["~/.gitnexus/"]
        RegFile["registry.json"]
    end

    subgraph Repos [專案 Repos]
        RepoA[".gitnexus/ in Repo A"]
        RepoB[".gitnexus/ in Repo B"]
    end

    subgraph MCP [MCP Server]
        Server["server.ts"]
        Backend["LocalBackend"]
        Pool["Connection Pool<br/>(最大 5 個併發)"]
        ConnA["LadybugDB conn A"]
        ConnB["LadybugDB conn B"]
    end

    Setup -->|"寫入全域 MCP 配置"| CursorConfig["~/.cursor/mcp.json"]
    Analyze -->|"註冊 Repo"| RegFile
    Analyze -->|"儲存索引"| RepoA
    Clean -->|"取消註冊 Repo"| RegFile
    List -->|"讀取"| RegFile
    Server -->|"讀取 Registry"| RegFile
    Server --> Backend
    Backend --> Pool
    Pool -->|"延遲開啟"| ConnA
    Pool -->|"延遲開啟"| ConnB
    ConnA -->|"查詢"| RepoA
    ConnB -->|"查詢"| RepoB

💡 最佳實務:當只有一個 Repo 被索引時,所有工具的 repo 參數可省略。多 Repo 時需指定:query({query: "auth", repo: "my-app"})


第 3 章:安裝與環境設定

3.1 系統需求

🎯 目的:確認環境符合最低需求。

項目最低需求建議配置
Node.js18+20 LTS
npm9+10+(避免 npm 11.x 已知問題)
記憶體4 GB8 GB+(大型 Repo)
CPU雙核四核+(加速 Tree-sitter 解析)
磁碟依 Repo 大小SSD(加速圖譜查詢)
作業系統Windows / macOS / Linux皆支援
GPU選配NVIDIA GPU(加速 Embedding 生成)

3.2 CLI 安裝

🛠️ 操作步驟

方法一:全域安裝(推薦)

npm install -g gitnexus

方法二:使用 npx(免安裝)

npx gitnexus analyze

方法三:從原始碼建置(進階)

git clone https://github.com/abhigyanpatwari/gitnexus.git
cd gitnexus
npm install
npm run build
npm link

驗證安裝

gitnexus --version
# 應輸出 v1.6.8 或更新版本

3.3 Web UI 使用

🛠️ 操作步驟

方法一:線上版(免安裝)

直接訪問:https://gitnexus.vercel.app/

操作流程:

  1. 開啟瀏覽器訪問上述 URL
  2. 拖放 ZIP 檔案或輸入 GitHub Repo URL
  3. 等待索引完成
  4. 開始探索圖譜和 AI 對話

方法二:本地建置

git clone https://github.com/abhigyanpatwari/gitnexus.git
cd gitnexus/gitnexus-shared && npm install && npm run build
cd ../gitnexus-web && npm install
npm run dev

方法三:Bridge Mode(推薦大型專案)

# 先用 CLI 索引 Repo
cd /path/to/your/repo
gitnexus analyze

# 啟動 HTTP Server
gitnexus serve

# 開啟 Web UI(自動偵測本地 Server)
# 瀏覽器訪問 http://localhost:3000

3.4 MCP 編輯器設定

🛠️ 操作步驟

自動設定(推薦)

gitnexus setup

此指令會自動偵測已安裝的編輯器並寫入正確的 MCP 配置。只需執行一次。

# 指定只設定 Claude Code(跳過偵測其他編輯器)
gitnexus setup -c claude

💡 提示-c / --client 參數可指定單一編輯器(claudecursorcodexwindsurfopencodeantigravity),避免偵測所有編輯器的等待時間。

MCP HTTP Server(v1.6.8+)

除了 stdio 模式外,v1.6.8 起新增 Streamable HTTP 傳輸:

gitnexus mcp --http          # 預設 port 3100
gitnexus mcp --http --port 8080  # 自訂 port

適用場景:

  • 遠端 Agent 存取(非本機 stdio)
  • 多個 Agent 同時共用一個 MCP Server
  • 部署在 Docker / Kubernetes 中由外部 Agent 呼叫

手動設定

Claude Code(完整支援 — MCP + Skills + Hooks):

# macOS / Linux
claude mcp add gitnexus -- npx -y gitnexus@latest mcp

# Windows
claude mcp add gitnexus -- cmd /c npx -y gitnexus@latest mcp

Codex(完整支援 — MCP + Skills):

codex mcp add gitnexus -- npx -y gitnexus@latest mcp

Cursor~/.cursor/mcp.json):

{
  "mcpServers": {
    "gitnexus": {
      "command": "npx",
      "args": ["-y", "gitnexus@latest", "mcp"]
    }
  }
}

OpenCode~/.config/opencode/config.json):

{
  "mcp": {
    "gitnexus": {
      "type": "local",
      "command": ["gitnexus", "mcp"]
    }
  }
}

Codex~/.codex/config.toml):

[mcp_servers.gitnexus]
command = "npx"
args = ["-y", "gitnexus@latest", "mcp"]

Antigravity (Google)~/.gemini/antigravity/mcp_config.json):

{
  "mcpServers": {
    "gitnexus": {
      "command": "npx",
      "args": ["-y", "gitnexus@latest", "mcp"]
    }
  }
}

💡 Antigravity Hooks 說明gitnexus setup 會自動在 ~/.gemini/settings.json 中合併 AfterTool 項目(遏循 Gemini CLI hooks schema),並將 Skill 安裝至 ~/.gemini/antigravity/skills/。現有使用者 Hooks 會被保留。Augmentation 在 AfterTool 運行,因為 BeforeTool 在 Gemini 協定中沒有上下文注入通道 — Agent 透過 hookSpecificOutput.additionalContext 看到圖譜上下文。

編輯器支援程度

編輯器MCP ToolsSkillsHooks整合程度
Claude Code✅(PreToolUse + PostToolUse)完整
Cursor✅(postToolUse,需手動安裝)完整
CodexMCP + Skills
WindsurfMCP
OpenCodeMCP + Skills
Antigravity (Google)✅(AfterTool)完整

💡 最佳實務:Claude Code 獲得最深度整合:MCP 工具 + Agent Skills + PreToolUse Hooks(以圖譜上下文豐富搜尋) + PostToolUse Hooks(commit 後偵測過期索引並提示 Agent 重新索引)。

💡 提示:建議全域安裝 gitnexus(npm i -g gitnexus)後執行 gitnexus setup — 這會寫入絕對路徑 MCP 配置,完全繞過 npx。下方的 npx 片段為快速開始的備用方案;在冷快取下,npx 安裝可能超過 Claude Code 的 MCP_TIMEOUT 預設值(~30 秒)。

💡 快速安裝提示:設定 GITNEXUS_SKIP_OPTIONAL_GRAMMARS=1 後執行 npm install -g gitnexus,可跳過原生 tree-sitter-darttree-sitter-prototree-sitter-swift 編譯。Dart/Proto/Swift 檔案將不被解析,但安裝可在數秒內完成,無需 python3/make/g++。嚴格限定 =1 — 其他值將觸發重新編譯。


3.5 Docker 部署

🎯 目的:使用 Docker 一鍵部署 GitNexus 服務端與 Web UI。

📘 說明

GitNexus 提供官方 Docker 設定,包含兩個已簽章的映像檔,由 docker-compose.yaml 編排。每個映像檔同時發布至 GitHub Container Registry(GHCR)和 Docker Hub — 相同的建置、相同的摘要、相同的 Cosign 簽章。

映像檔清單

用途GHCRDocker Hub
CLI / gitnexus serve 後端(HTTP API on port 4747, MCP, indexer)ghcr.io/abhigyanpatwari/gitnexus:latestakonlabs/gitnexus:latest
靜態 Web UI(port 4173)ghcr.io/abhigyanpatwari/gitnexus-web:latestakonlabs/gitnexus-web:latest

方法一:Docker Compose 一鍵部署(推薦)

docker compose up -d

此命令會啟動:

  • Server:http://localhost:4747
  • Web UI:http://localhost:4173

Web UI 會自動偵測本地伺服器,因為瀏覽器在主機上執行並透過映射的端口連接容器。

持久化儲存:命名卷(gitnexus-data)在伺服器容器內的 /data/gitnexus 持久化全域 Registry、索引和克隆的 Repo。

掛載主機 Repo

# 使主機上的 Repo 可被索引
WORKSPACE_DIR=$HOME/code docker compose up -d

# 在容器內索引掛載的 Repo(以唯讀方式掛載於 /workspace)
docker compose exec gitnexus-server gitnexus index /workspace/my-repo

方法二:直接 docker run

# Server
docker run --rm -d \
  --name gitnexus-server \
  -p 4747:4747 \
  -v gitnexus-data:/data/gitnexus \
  ghcr.io/abhigyanpatwari/gitnexus:latest

# Web UI
docker run --rm -d \
  --name gitnexus-web \
  -p 4173:4173 \
  ghcr.io/abhigyanpatwari/gitnexus-web:latest

環境變數配置

cp .env.example .env
docker compose --env-file .env up -d

可覆寫映像標籤、容器名稱、端口和工作區掛載目錄。

映像版本鎖定與供應鏈保護

  • 穩定映像僅從 vX.Y.Z Git 標籤發布(透過 docker.yml 觸發),工作流程拒絕建置除非標籤完全匹配 gitnexus/package.json 的版本
  • RC 映像(如 :1.7.0-rc.1)與每個 RC npm 發布一同發布
  • :latest 僅從非預發布標籤自動升級
  • 所有映像使用 Cosign keyless signing 簽章,附帶建置出處證明和 SBOM 認證

驗證簽章

cosign verify ghcr.io/abhigyanpatwari/gitnexus:1.6.8 \
  --certificate-identity-regexp '^https://github\.com/abhigyanpatwari/GitNexus/\.github/workflows/docker\.yml@refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

Kubernetes 部署

對於 Kubernetes 部署,可使用內建的 ClusterImagePolicy,搭配 Sigstore policy-controller 拒絕任何未經此 Repo 的 docker.ymlvX.Y.Z 標籤簽章的 GitNexus Pod。

# 1. 安裝 controller(一次性,叢集範圍)
helm repo add sigstore https://sigstore.github.io/helm-charts && helm repo update
helm install policy-controller -n cosign-system --create-namespace \
  sigstore/policy-controller

# 2. 啟用命名空間
kubectl label namespace <your-ns> policy.sigstore.dev/include=true

# 3. 套用策略
kubectl apply -f deploy/kubernetes/cluster-image-policy.yaml

Docker 相關檔案

檔案說明
Dockerfile.web建置 gitnexus-sharedgitnexus-web,提供生產前端
Dockerfile.cli建置 CLI/Server(含原生依賴),執行 gitnexus serve --host 0.0.0.0
docker-compose.yaml同時啟動兩個已簽章映像
.env.example映像名稱、容器名稱、端口和工作區掛載的覆寫範本

⚠️ 注意事項

  • 早期版本在 ghcr.io/abhigyanpatwari/gitnexus 下發布 Web UI。自引入綁定後端後,該 slug 現在託管 CLI/Server 映像,UI 已移至 ghcr.io/abhigyanpatwari/gitnexus-web
  • 舊標籤仍可拉取,但新版本僅發布在新 slug 下

3.6 常見問題排除

問題原因解決方案
gitnexus: command not found未全域安裝npm install -g gitnexus 或使用 npx
索引卡住不動Repo 過大,Tree-sitter 解析耗時使用 --skip-embeddings 加速
npm 11.x 安裝失敗npm 11 預設 --omit=optional 導致 tree-sitter 編譯失敗使用 npm 10 或設定 npm config set omit=""
完整移除 GitNexus需清除 CLI、索引、MCP 配置gitnexus uninstall(v1.6.7+)— 清除 Registry、Skills、MCP 配置、Hooks,並引導 npm uninstall -g
Worker parse timeout大型或特殊 Repo 的解析逾時使用 --worker-timeout 60 或設定 GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS=60000
MCP 連線失敗編輯器 MCP 配置錯誤執行 gitnexus setup 重新配置
MCP 啟動逾時冷快取下 npx 安裝超過 30 秒改用全域安裝 npm i -g gitnexus + gitnexus setup
Web UI 載入緩慢瀏覽器記憶體不足改用 Bridge Mode(gitnexus serve
Embedding 生成失敗GPU 驅動問題使用 --skip-embeddings 跳過
registry.json 損壞索引中斷刪除 ~/.gitnexus/registry.json 後重新 gitnexus analyze
Windows 路徑問題路徑含中文或空格將 Repo 移至英文路徑
安裝需要 C++ 工具鏈原生 Tree-sitter grammar 編譯設定 GITNEXUS_SKIP_OPTIONAL_GRAMMARS=1 跳過 Dart/Proto 編譯
Docker 容器健康檢查失敗服務尚未就緒確認 /health 端點可回應,檢查容器日誌

⚠️ 注意事項

  • .gitnexus/ 資料夾已預設加入 .gitignore,不會被提交
  • 全域 Registry 僅儲存路徑和 metadata,不含原始碼

第 4 章:基本操作教學

4.1 建立 Knowledge Graph

🎯 目的:學會索引一個 Repository 並建立知識圖譜。

🛠️ 操作步驟

# Step 1:切換到 Repo 根目錄
cd /path/to/your/repo

# Step 2:執行索引(一鍵完成)
npx gitnexus analyze

此指令會自動完成

  1. 掃描檔案樹結構
  2. 使用 Tree-sitter 解析 AST
  3. 解析跨檔 import / 呼叫 / 繼承關係(含 3-Tier Resolver)
  4. 執行 Leiden 社群偵測(Clustering)
  5. 追蹤執行流程(Process Detection)
  6. 建構混合搜尋索引(BM25 + 語義 + RRF)
  7. 安裝 Agent Skills(.claude/skills/gitnexus/
  8. 註冊 Claude Code Hooks(PreToolUse + PostToolUse)
  9. 建立 AGENTS.md / CLAUDE.md 上下文檔案
  10. 註冊到全域 Registry(~/.gitnexus/registry.json

自動安裝的 4 個 Agent Skills

Skill說明
Exploring使用知識圖譜導航不熟悉的程式碼
Debugging透過呼叫鏈追蹤 Bug
Impact Analysis變更前分析爆炸半徑
Refactoring使用依賴映射規劃安全重構

進階選項

# 強制完全重新索引
gitnexus analyze --force

# 生成 Repo 特定的 Skill 檔案(基於偵測到的社群)
gitnexus analyze --skills

# 跳過 Embedding 生成(更快)
gitnexus analyze --skip-embeddings

# 啟用 Embedding 生成(更慢,但搜尋更精確)
gitnexus analyze --embeddings

# 保留自訂的 AGENTS.md / CLAUDE.md 內容
gitnexus analyze --skip-agents-md

# 索引非 Git 儲存庫的資料夾
gitnexus analyze --skip-git

# 增加 worker 閒置逾時(適用於大型或複雜的 Repo)
gitnexus analyze --worker-timeout 60

# 設定 worker 池大小
gitnexus analyze --workers 8

# 僅重建 / 驗證 FTS 索引(快速修復路徑)
gitnexus analyze --repair-fts

# 控制 LadybugDB WAL 自動檢查點閾值(預設 64 MiB)
gitnexus analyze --wal-checkpoint-threshold 67108864

# 顯示跳過的檔案(當解析器不可用時)
gitnexus analyze --verbose

💡 最佳實務

  • 首次索引建議使用 --skip-embeddings 加速,確認基本功能正常後再啟用
  • 使用 --skills 可為每個功能模組生成專屬的 SKILL.md(儲存於 .claude/skills/generated/
  • 使用 --skip-agents-md 可保留自訂的 AGENTS.md / CLAUDE.md 內容
  • Skills 在每次 --skills 執行時會依據最新程式碼庫重新生成

Repo-Specific Skills

執行 gitnexus analyze --skills 時,GitNexus 會透過 Leiden 社群偵測辨識程式碼庫的功能區域,並為每個區域在 .claude/skills/generated/ 下生成一個 SKILL.md。每個 Skill 描述該模組的關鍵檔案、入口點、執行流程和跨區域連結,讓 AI Agent 獲得精確的模組上下文。


4.2 CLI 常用指令

📘 完整指令一覽

# ===== 設定 =====
gitnexus setup                      # 設定 MCP 編輯器(一次性)

# ===== 索引 =====
gitnexus analyze [path]             # 索引 Repository(或更新過期索引)
gitnexus analyze --force            # 強制完全重新索引
gitnexus analyze --repair-fts       # 快速路徑:僅重建 / 驗證 FTS 索引
gitnexus analyze --skills           # 生成 Repo 特定 Skill 檔案
gitnexus analyze --skip-embeddings  # 跳過 Embedding(更快)
gitnexus analyze --embeddings       # 啟用 Embedding(更精確)
gitnexus analyze --skip-agents-md   # 保留自訂 AGENTS.md/CLAUDE.md 內容
gitnexus analyze --skip-git         # 索引非 Git 儲存庫的資料夾
gitnexus analyze --verbose          # 顯示跳過的檔案
gitnexus analyze --worker-timeout 60  # 增加 worker 閒置逾時(秒)
gitnexus analyze --workers <n>      # 解析 worker 池大小(預設:cores-1,上限 16;0 = 序列)
gitnexus analyze --wal-checkpoint-threshold 67108864  # LadybugDB WAL 自動檢查點閾值(預設 64 MiB)

# ===== 服務 =====
gitnexus mcp                        # 啟動 MCP Server(stdio)— 服務所有已索引 Repo
gitnexus serve                      # 啟動本地 HTTP Server(Multi-Repo)供 Web UI 連接

# ===== 狀態 =====
gitnexus list                       # 列出所有已索引 Repository
gitnexus status                     # 顯示當前 Repo 索引狀態

# ===== 清理 =====
gitnexus clean                      # 刪除當前 Repo 索引
gitnexus clean --all --force        # 刪除所有索引

# ===== Wiki =====
gitnexus wiki [path]                # 從知識圖譜生成 Wiki
gitnexus wiki --model gpt-4o        # 指定 LLM 模型
gitnexus wiki --base-url <url>      # 自訂 LLM API URL
gitnexus wiki --force               # 強制重新生成
gitnexus wiki --timeout <seconds>   # 每次嘗試的 LLM 請求逾時秒數(預設 60)
gitnexus wiki --retries <n>         # 最大 LLM 重試次數(預設 3)
gitnexus wiki --lang <lang>         # 輸出語言(如 english, chinese, spanish, japanese)

# ===== 解除安裝(v1.6.7+)=====
gitnexus uninstall                  # 完整移除:清除 Registry、Skills、MCP 配置、Hooks,引導 npm uninstall -g

# ===== 發布 =====
gitnexus publish                    # 通知 understand-quickly 登錄(opt-in)

# ===== Repository 群組 =====
gitnexus group create <name>                          # 建立群組
gitnexus group add <group> <groupPath> <registryName> # 加入 Repo 到群組(groupPath 為層級路徑,registryName 為 registry 中的名稱)
gitnexus group remove <group> <groupPath>             # 從群組依層級路徑移除 Repo
gitnexus group list [name]                            # 列出群組
gitnexus group sync <name>                            # 跨 Repo 契約同步
gitnexus group contracts <name>                       # 檢視跨 Repo 契約
gitnexus group query <name> <q>                       # 跨群組搜尋
gitnexus group status <name>                          # 檢查群組過期狀態

環境變數一覽

大多數 analyze 參數也可透過環境變數設定。CLI 旗標優先於環境變數,環境變數優先於內建預設值。

環境變數預設值說明
GITNEXUS_WORKER_POOL_SIZEcores-1(上限 16)解析 worker 池大小。0 被拒絕(無序列模式)
GITNEXUS_PARSE_CHUNK_CONCURRENCY2同時讀取的 chunk 數量
GITNEXUS_VERBOSE未設定設為 1 啟用詳細日誌
GITNEXUS_PROFILE_DEFERRED未設定設為 1 輸出延遲解析階段的計時日誌
GITNEXUS_PROFILE_DEFERRED_SLOW_MS3000/5000慢速檔案閾值(毫秒)
GITNEXUS_MAX_FILE_SIZE512(KB)檔案掃描跳過閾值(硬上限 32768 KB)
GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MS30000Worker 閒置逾時(毫秒)
GITNEXUS_WAL_CHECKPOINT_THRESHOLD67108864(64 MiB)LadybugDB WAL 自動檢查點閾值
GITNEXUS_WORKER_SUB_BATCH_MAX_BYTES8388608(8 MB)每個 worker job 的位元組上限
GITNEXUS_WORKER_MAX_RESPAWNS_PER_SLOT3每個 worker slot 的最大重生次數
GITNEXUS_WORKER_MAX_CUMULATIVE_TIMEOUT_MS5 × subBatchTimeoutMs每個 job 的總重試時間預算
GITNEXUS_WORKER_CONSECUTIVE_FAILURE_THRESHOLDmax(3, poolSize)連續失敗次數觸發斷路器
GITNEXUS_CHUNK_BYTE_BUDGET2097152(2 MB)Chunk 邊界(影響增量快取行為)
GITNEXUS_NO_GITIGNORE未設定跳過 .gitignore 解析(.gitnexusignore 仍生效)
GITNEXUS_SKIP_OPTIONAL_GRAMMARS未設定設為 =1 跳過 Dart/Proto/Swift 原生編譯
GITNEXUS_FTS_STEMMERenglish全文搜尋詞幹演算法(CJK 場景建議設為 none)(v1.6.8+)
GITNEXUS_EMBEDDINGS_PROVIDER未設定自訂 embeddings 提供者(v1.6.8+)
GITNEXUS_EMBEDDINGS_API_KEY未設定自訂 embeddings API 金鑰(v1.6.8+)
GITNEXUS_EMBEDDINGS_MODEL未設定自訂 embeddings 模型名稱(v1.6.8+)

4.3 查詢程式碼關聯

🛠️ 操作步驟

透過 MCP 工具(在 AI Agent 中使用),GitNexus 提供以下查詢能力:

混合搜尋(query)

query({query: "authentication middleware"})

回傳結果會依執行流程分組:

processes:
  - summary: "LoginFlow"
    priority: 0.042
    symbol_count: 4
    process_type: cross_community
    step_count: 7

process_symbols:
  - name: validateUser
    type: Function
    filePath: src/auth/validate.ts
    process_id: proc_login
    step_index: 2

definitions:
  - name: AuthConfig
    type: Interface
    filePath: src/types/auth.ts

360 度符號檢視(context)

context({name: "validateUser"})
symbol:
  uid: "Function:validateUser"
  kind: Function
  filePath: src/auth/validate.ts
  startLine: 15

incoming:
  calls: [handleLogin, handleRegister, UserController]
  imports: [authRouter]

outgoing:
  calls: [checkPassword, createSession]

processes:
  - name: LoginFlow (step 2/7)
  - name: RegistrationFlow (step 3/5)

4.4 視覺化圖譜操作

📘 說明

Web UI 使用 Sigma.js + Graphology(WebGL) 進行即時圖譜渲染。

操作方式

  1. 開啟 Web UI(gitnexus.vercel.app 或本地 gitnexus serve
  2. 載入 Repository(拖放 ZIP 或指定 GitHub URL)
  3. 等待索引完成後,圖譜自動顯示
  4. 互動操作:
    • 縮放:滾輪調整視角
    • 拖拽:移動畫布或節點
    • 點擊節點:檢視符號詳細資訊
    • 搜尋:在搜尋框輸入函式名或類別名
    • AI 對話:使用內建 Chat 功能詢問程式碼問題

💡 最佳實務

  • 大型 Repo 建議使用 Bridge Mode,避免瀏覽器記憶體不足
  • 使用社群過濾器篩選特定功能模組

4.5 Repository 群組管理

🎯 目的:管理跨 Repo / 微服務的統一分析。

🛠️ 操作步驟

# 建立群組
gitnexus group create banking-platform

# 加入各服務 Repo(groupPath 為層級路徑,registryName 為 gitnexus list 中的名稱)
gitnexus group add banking-platform gateway/api api-gateway
gitnexus group add banking-platform services/user user-service
gitnexus group add banking-platform services/payment payment-service
gitnexus group add banking-platform batch/settlement batch-service

# 跨 Repo 契約同步(偵測 API 呼叫關係)
gitnexus group sync banking-platform

# 檢視跨服務契約
gitnexus group contracts banking-platform

# 跨服務搜尋
gitnexus group query banking-platform "轉帳流程"

# 檢查過期狀態
gitnexus group status banking-platform

⚠️ 注意事項

  • 每個 Repo 需先個別執行 gitnexus analyze
  • 群組同步會提取各 Repo 的 API 契約並建立跨服務連結

第 5 章:進階應用

5.1 Graph RAG 使用方式

🎯 目的:掌握基於知識圖譜的 RAG 查詢,取得精確的程式碼分析結果。

📘 說明

GitNexus 的 Graph RAG 與傳統 RAG 的差異:

項目傳統 Vector RAGGitNexus Graph RAG
索引方式程式碼切片 → 向量化程式碼 → AST → 圖譜 + 向量
查詢方式語義相似度比對BM25 + 語義 + RRF 混合排序
上下文品質片段式、可能遺漏完整呼叫鏈、依賴關係、執行流程
關係追蹤CALLS、IMPORTS、EXTENDS、IMPLEMENTS、METHOD_OVERRIDES、METHOD_IMPLEMENTS、HAS_METHOD、MEMBER_OF

問答範例

在 AI Agent(如 Claude Code)中直接提問:

# 範例 1:API 服務呼叫分析
「這個 UserController 呼叫了哪些服務?」

# 範例 2:資料庫依賴分析
「payment-service 依賴哪些 DB Table?」

# 範例 3:影響範圍評估
「如果我修改 AuthService.validate() 的回傳型別,會影響哪些功能?」

# 範例 4:執行流程追蹤
「從登入 API 到資料庫寫入的完整呼叫鏈是什麼?」

💡 最佳實務

  • 對於大型系統,建議先使用 query 找到相關模組,再用 context 深入分析特定符號
  • 使用 impact 進行變更前評估是最高價值的使用場景

5.2 Impact Analysis(影響分析)

🎯 目的:在修改程式碼前,精確評估爆炸半徑。

🛠️ MCP 工具使用

impact({
  target: "UserService",
  direction: "upstream",      // upstream=誰依賴我, downstream=我依賴誰
  minConfidence: 0.8,         // 最低信心分數
  maxDepth: 3,                // 最大追蹤深度
  relationTypes: ["CALLS", "IMPORTS", "EXTENDS", "IMPLEMENTS", "METHOD_OVERRIDES", "METHOD_IMPLEMENTS"],
  includeTests: false,        // 是否包含測試
  limit: 100,                 // 每層最大符號數(預設 100)
  offset: 0,                  // 分頁起始位置
  summaryOnly: false          // 僅顯示計數與風險,省略符號列表
})

消歧義(Disambiguation)

當多個符號共享相同名稱時,impact 會返回排名的 ambiguous 候選列表,而非猜測。可使用以下參數縮小範圍:

參數說明CLI 旗標
target_uid精確指定,零歧義--uid
file_path依檔案路徑縮範--file
kind依類型縮範(Function、Class、Method…)--kind
# CLI 範例
gitnexus impact get_embeddings                       # → ambiguous: 列出排名候選
gitnexus impact get_embeddings --file src/embed.py   # → 解析至該檔案中的符號
gitnexus impact get_embeddings --uid "Function:src/embed.py:get_embeddings"  # 精確指定

輸出範例

TARGET: Class UserService (src/services/user.ts)

UPSTREAM (what depends on this):
  Depth 1 (WILL BREAK):
    handleLogin [CALLS 90%] -> src/api/auth.ts:45
    handleRegister [CALLS 90%] -> src/api/auth.ts:78
    UserController [CALLS 85%] -> src/controllers/user.ts:12
  Depth 2 (LIKELY AFFECTED):
    authRouter [IMPORTS] -> src/routes/auth.ts

實務應用情境

情境direction說明
修改一個 Serviceupstream找出所有呼叫此 Service 的元件
新增依賴downstream確認此元件依賴的下游是否穩定
移除一個類別upstream確保無其他元件引用
介面變更upstream + downstream雙向評估影響

📘 說明

搜尋結果不再是零散的符號列表,而是按**執行流程(Process)**分組。

query({query: "payment processing"})

回傳結構

processes:
  - summary: "PaymentFlow"
    priority: 0.089
    symbol_count: 8
    process_type: cross_community
    step_count: 12

process_symbols:
  - name: processPayment
    type: Function
    filePath: src/payment/processor.ts
    process_id: proc_payment
    step_index: 1

  - name: validateAmount
    type: Function
    filePath: src/payment/validator.ts
    process_id: proc_payment
    step_index: 2

5.4 360 度 Symbol Context

📘 說明

取得一個符號的完整上下文 — 誰呼叫它、它呼叫誰、參與哪些流程。

context({name: "processPayment"})
symbol:
  uid: "Function:processPayment"
  kind: Function
  filePath: src/payment/processor.ts
  startLine: 42

incoming:
  calls: [PaymentController.create, BatchJobRunner.execute]
  imports: [paymentRouter]

outgoing:
  calls: [validateAmount, debitAccount, creditAccount, logTransaction]

processes:
  - name: PaymentFlow (step 1/12)
  - name: BatchSettlement (step 3/8)

5.5 Git-Diff 變更偵測

🎯 目的:在 commit 前分析變更的影響範圍。

detect_changes({scope: "all"})

輸出

summary:
  changed_count: 12
  affected_count: 3
  changed_files: 4
  risk_level: medium

changed_symbols: [validateUser, AuthService, ...]
affected_processes: [LoginFlow, RegistrationFlow, ...]

💡 最佳實務

  • 在 PR 提交前執行 detect_changes,可作為 Code Review 的輔助資訊
  • 可整合至 CI/CD Pipeline 自動執行

5.6 Multi-File Rename

📘 說明

基於圖譜的智慧重新命名 — 跨檔案協調更名。

rename({
  symbol_name: "validateUser",
  new_name: "verifyUser",
  dry_run: true   // 先預覽,不實際修改
})

輸出

status: success
files_affected: 5
total_edits: 8
graph_edits: 6        # 高信心度(基於圖譜)
text_search_edits: 2  # 需人工檢查(基於文字搜尋)
changes: [...]

5.7 Cypher 原生查詢

📘 說明

直接使用 Cypher 查詢語言操作知識圖譜。

-- 找出呼叫認證相關函式的所有上游呼叫者
MATCH (c:Community {heuristicLabel: 'Authentication'})<-[:CodeRelation {type: 'MEMBER_OF'}]-(fn)
MATCH (caller)-[r:CodeRelation {type: 'CALLS'}]->(fn)
WHERE r.confidence > 0.8
RETURN caller.name, fn.name, r.confidence
ORDER BY r.confidence DESC

常用 Cypher 查詢範例

-- 找出所有入口點
MATCH (n) WHERE n.isEntryPoint = true
RETURN n.name, n.kind, n.filePath

-- 找出某個類別的所有子類別
MATCH (child)-[:CodeRelation {type: 'EXTENDS'}]->(parent {name: 'BaseService'})
RETURN child.name, child.filePath

-- 找出某個介面的所有實作(METHOD_IMPLEMENTS)
MATCH (impl)-[:CodeRelation {type: 'METHOD_IMPLEMENTS'}]->(iface {name: 'PaymentGateway'})
RETURN impl.name, impl.filePath

-- 找出方法覆寫關係(METHOD_OVERRIDES)
MATCH (child_method)-[:CodeRelation {type: 'METHOD_OVERRIDES'}]->(parent_method)
RETURN child_method.name, child_method.filePath, parent_method.name, parent_method.filePath

-- 找出跨社群呼叫(潛在的架構邊界)
MATCH (a)-[:CodeRelation {type: 'MEMBER_OF'}]->(c1:Community),
      (b)-[:CodeRelation {type: 'MEMBER_OF'}]->(c2:Community),
      (a)-[:CodeRelation {type: 'CALLS'}]->(b)
WHERE c1 <> c2
RETURN a.name, c1.heuristicLabel, b.name, c2.heuristicLabel

-- 找出所有 HAS_METHOD 關係(類別的方法成員)
MATCH (cls)-[:CodeRelation {type: 'HAS_METHOD'}]->(method)
WHERE cls.name = 'UserService'
RETURN method.name, method.kind, method.startLine

-- 統計各社群的符號數量
MATCH (n)-[:CodeRelation {type: 'MEMBER_OF'}]->(c:Community)
RETURN c.heuristicLabel, count(n) AS member_count
ORDER BY member_count DESC

5.8 Wiki 自動生成

🎯 目的:從知識圖譜自動產出 Repository 文件。

# 需要 LLM API Key(OPENAI_API_KEY 等)
gitnexus wiki

# 自訂 LLM 模型
gitnexus wiki --model gpt-4o

# 自訂 API 端點
gitnexus wiki --base-url https://api.anthropic.com/v1

# 強制重新生成
gitnexus wiki --force

# 指定輸出語言
gitnexus wiki --lang chinese

生成流程

  1. 讀取已索引的圖譜結構
  2. 透過 LLM 將檔案分組為模組
  3. 為每個模組生成文件頁面
  4. 建立總覽頁面
  5. 交叉引用知識圖譜

⚠️ 注意事項

  • Wiki 生成需要 LLM API 連線(如 OPENAI_API_KEY
  • 預設使用 gpt-4o-mini 模型
  • 支援 Azure OpenAI — 使用簡化的 3 步驟互動設定(endpoint、deployment、key)
  • v1.5.3 修復了 Wiki HTML 查看器中的 </script> 注入問題
  • v1.6.4+ 新增 --timeout--retries 旗標,適用於大型程式碼庫或慢速 LLM 供應商
  • --lang 旗標可指定輸出語言(如 englishchinesespanishjapanese

企業版額外功能

  • Auto-updating Code Wiki — 文件自動保持最新(此功能 OSS 版本亦提供基礎支援)

5.9 Incremental Indexing(增量索引)

🎯 目的:僅重新索引變更的檔案,大幅縮短索引時間。

📘 說明

Incremental Indexing 是 GitNexus 近期完成的重要功能,透過 parse cache 和 DB writeback 機制,僅重新處理自上次索引以來變更的檔案。

運作機制

  1. Parse Cache — 首次索引後,每個檔案的 AST 解析結果被快取
  2. 變更偵測 — 後續執行 gitnexus analyze 時,比較檔案的修改時間戳和雜湊值
  3. 選擇性重新解析 — 僅對變更的檔案重新執行 Tree-sitter 解析
  4. DB Writeback — 只更新圖譜資料庫中受影響的節點和邊
  5. Scope-based 處理 — 限定重新計算的範圍(聚類、流程追蹤等)
  6. Parse Cache 分片(Sharding) — 大型 Mono-repo(>50,000 檔案)自動將 parse cache 分片為多個 shard 檔案,避免單一快取檔案過大導致 I/O 瓶頸

使用方式

# 自動偵測變更並增量更新(預設行為)
gitnexus analyze

# 如需強制完全重建(跳過增量邏輯)
gitnexus analyze --force

效能提升

場景完全索引增量索引提升倍率
修改 5 個檔案(10,000 檔案 Repo)~60 秒~5 秒~12x
修改 50 個檔案(10,000 檔案 Repo)~60 秒~15 秒~4x
無任何變更~60 秒~2 秒~30x

💡 最佳實務

  • 日常開發時直接使用 gitnexus analyze(自動增量)
  • 大版本升級或索引格式變更時使用 --force
  • Claude Code 的 PostToolUse Hook 會在 commit 後偵測過期索引並提示重新索引

5.10 PDG / 程式依賴圖分析

🎯 目的:透過 Program Dependence Graph(PDG)進行更精確的影響分析與資料流追蹤。

📘 說明

v1.6.8 引入完整的 PDG 基礎設施,包含:

  • CFG(Control Flow Graph):每個函式的基本區塊(BasicBlock)與控制流邊
  • Reaching Definitions:追蹤變數定義到達使用點的路徑
  • Control Dependence:標記哪些語句的執行取決於哪些條件分支

PDG 為 opt-in 功能,需在索引時啟用:

# 索引時啟用 PDG 建構
gitnexus analyze --pdg

# 使用 PDG-backed impact analysis
impact({symbol: "processPayment", mode: "pdg"})

PDG 邊類型

邊類型說明
CFG控制流邊(BasicBlock → BasicBlock)
DATA_DEP資料依賴邊(定義 → 使用)
CTRL_DEP控制依賴邊(條件 → 被控制語句)

PDG vs 傳統 Impact Analysis 差異

項目傳統 Impact(預設)PDG-backed Impact
分析粒度函式層級語句層級
資料流追蹤✅(reaching-defs)
控制依賴
索引時間較短較長(需建構 CFG + PDG)
適用場景快速影響評估精確的安全審計、重構分析

5.11 Taint Analysis(污染分析)

🎯 目的:追蹤不受信任的資料(Taint Source)是否能流向敏感操作(Taint Sink),檢測潛在的安全漏洞。

📘 說明

v1.6.8 在 PDG 基礎上實作了 Taint Analysis,支援 intra-procedural(函式內)和 inter-procedural(跨函式)追蹤。

使用方式

# 索引時需啟用 PDG
gitnexus analyze --pdg

# 在 MCP 工具中查詢污染路徑
impact({symbol: "getUserInput", mode: "pdg"})

預設 Source / Sink 模型(v1.6.8):

語言Source 範例Sink 範例
JavaHttpServletRequest.getParameter()Statement.executeQuery(), Runtime.exec()
Pythonrequest.args.get(), input()cursor.execute(), os.system(), eval()

污染傳播規則

  • 賦值傳播:x = tainted_valuex 被標記為 tainted
  • 函式傳播(inter-procedural):tainted 參數透過呼叫圖傳遞
  • Sanitizer 中斷:通過已知的消毒函式後,taint 標記被清除

⚠️ 注意:Taint Analysis 為 v1.6.8 首次引入的功能,目前覆蓋 Java 和 Python 的常見 source/sink 模型。v1.6.9 計畫擴充更多語言和框架模型。


5.12 Trace(呼叫路徑追蹤)

🎯 目的:追蹤兩個符號之間的最短呼叫路徑,用於理解程式碼的執行流。

📘 說明

v1.6.8 新增 MCP trace 工具,使用 Directed BFS 在呼叫圖上搜尋最短路徑。

使用方式(MCP 工具):

trace({from: "handleRequest", to: "saveToDatabase"})

回傳結果範例

path:
  - handleRequest (src/api/handler.ts:42)
  - validateInput (src/api/validator.ts:15)
  - processData (src/service/processor.ts:88)
  - saveToDatabase (src/db/repository.ts:23)
hops: 3

典型應用場景

  • 理解 API 請求的完整處理流程
  • 追蹤特定錯誤可能的傳播路徑
  • 審查敏感操作的呼叫鏈(搭配 Taint Analysis)

5.13 Private Repos 與 Azure DevOps Server

🎯 目的:索引私有 GitHub Repository 或 Azure DevOps Server 上的程式碼。

📘 說明

v1.6.8 新增透過 Personal Access Token(PAT)存取私有 Repo 的能力,並支援 Azure DevOps Server(on-premises)。

GitHub Private Repo

# 透過 PAT 索引私有 Repo
GITHUB_TOKEN=ghp_xxxx gitnexus analyze --repo https://github.com/myorg/private-repo

Azure DevOps Server

# Azure DevOps Server(on-premises)
AZURE_DEVOPS_TOKEN=xxx gitnexus analyze --repo https://dev.azure.com/myorg/project/_git/repo

認證方式

平台環境變數說明
GitHubGITHUB_TOKENPersonal Access Token(需 repo scope)
Azure DevOpsAZURE_DEVOPS_TOKENPAT(需 Code Read 權限)

💡 企業最佳實務:在 CI/CD Pipeline 中使用 Service Account 的 PAT,並限定最小權限範圍(read-only)。Token 透過環境變數傳入,不應寫入配置檔。


5.14 HTTP Route Extraction(HTTP 路由提取)

🎯 目的:自動從程式碼中提取 HTTP API 路由定義,建立路由與處理函式的映射。

📘 說明

v1.6.8 新增對主流後端框架的 HTTP 路由自動提取:

框架語言支援版本
Spring MVC / Spring BootJava / Kotlinv1.6.8+
FastAPIPythonv1.6.8+
DjangoPythonv1.6.9-rc

提取結果會自動加入知識圖譜,建立以下關係:

  • HTTP_ROUTE 節點 → 與處理函式的 HANDLES
  • 路由參數(path params、query params)的型別資訊

查詢範例

# 搜尋所有 POST 路由
cypher({query: "MATCH (r:HTTP_ROUTE {method: 'POST'})-[:HANDLES]->(f:Function) RETURN r.path, f.name"})

5.15 DevContainer 開發環境

🎯 目的:使用預配置的開發容器快速建立一致的 GitNexus 開發環境。

📘 說明

v1.6.6 起 GitNexus Repo 內建 .devcontainer/ 配置,預裝:

  • Node.js 20 LTS
  • Claude Code CLI
  • Codex CLI
  • Cursor CLI
  • 所有必要的 Tree-sitter 原生依賴

使用方式

  1. 在 VS Code 中開啟 GitNexus Repo
  2. 點選 “Reopen in Container”
  3. 容器自動安裝所有依賴並設定 MCP

💡 提示:DevContainer 同時適用於 GitHub Codespaces,可在瀏覽器中直接開發。


第 6 章:整合企業開發流程

6.1 與 GitHub / GitLab 整合

🎯 目的:將 GitNexus 嵌入日常 Git 工作流程。

PR Review 分析

場景:開發者提交 PR,需要評估變更影響。

作法

# Step 1:在 PR 分支上重新索引
git checkout feature/update-auth
gitnexus analyze

# Step 2:使用 detect_changes 分析變更
# (在 AI Agent 中自動完成)

AI Agent 會自動執行:

  1. detect_changes({scope: "all"}) 偵測變更
  2. impact({target: "changed_symbol"}) 分析每個變更符號的影響
  3. 產出影響報告

企業版功能

  • 自動化 PR Review — 自動產生爆炸半徑分析報告
  • Auto-reindexing — 知識圖譜自動保持最新

Code Impact 分析

sequenceDiagram
    participant Dev as 開發者
    participant GH as GitHub PR
    participant GN as GitNexus
    participant AI as AI Agent

    Dev->>GH: 提交 PR
    GH->>GN: 觸發 analyze
    GN->>GN: 更新知識圖譜
    GN->>AI: detect_changes
    AI->>AI: impact analysis
    AI->>GH: 自動產出 Review 建議
    GH->>Dev: 變更影響報告

6.2 與 AI 工具整合

GitHub Copilot 整合

GitNexus 透過 MCP 提供上下文給 Copilot,使其在以下場景更精確:

  • 程式碼生成:Copilot 了解現有架構,生成符合專案慣例的程式碼
  • Bug 修復:Copilot 可追蹤完整呼叫鏈,定位根因
  • 重構建議:Copilot 了解依賴關係,提出安全的重構方案

Claude Code 整合(最深度)

Claude Code 支援最完整的整合:

功能說明
MCP Tools17 個工具直接可用
Agent Skills4 個預裝 Skill(Exploring、Debugging、Impact Analysis、Refactoring)
PreToolUse Hooks搜尋前自動以圖譜上下文豐富查詢
PostToolUse HooksCommit 後自動重新索引
Repo Skills--skills 生成專屬模組 Skill

Cursor 整合

在 Cursor 中使用 GitNexus:

  1. 設定 MCP(參見 3.4 節)
  2. 在 Cursor Chat 中即可直接使用 GitNexus 工具
  3. Cursor 會自動利用圖譜上下文改善回應品質

Antigravity (Google) 整合

Antigravity 是 Gemini CLI 的後繼產品,GitNexus 提供完整支援:

功能說明
MCP Tools17 個工具直接可用
Agent Skills自動安裝至 ~/.gemini/antigravity/skills/
AfterTool Hooks圖譜上下文附加至工具結果、commit 後偵測過期索引

設定方式:執行 gitnexus setup 自動完成 MCP 配置和 Hook 安裝,或手動編輯 ~/.gemini/antigravity/mcp_config.json(參見 3.4 節)。

PR Reviewer Swarm Agents(v1.6.5+)

GitNexus v1.6.5 新增了 PR Reviewer Swarm Agents 功能,支援多 Agent 協作進行 PR 審查:

功能說明
多 Agent 審查多個專業 Agent 同時審查不同面向(架構、安全、效能)
爆炸半徑分析自動分析 PR 變更的影響範圍
結構化回饋基於知識圖譜產出精確的審查建議
Claude/Cursor 整合.claude/.cursor/ 下的審查配置

相關檔案

  • pr-swarm-review/ — PR Reviewer Swarm Agents 配置目錄
  • .claude/ — Claude Code 審查 Agent 設定
  • .cursor/ — Cursor 審查 Agent 設定

6.3 與開發架構整合

Spring Boot 微服務

實務應用

# 索引整個微服務群
gitnexus group create my-platform
gitnexus group add my-platform gateway/api api-gateway
gitnexus group add my-platform services/user user-service
gitnexus group add my-platform services/order order-service
gitnexus group add my-platform services/payment payment-service

# 同步跨服務契約
gitnexus group sync my-platform

# 分析跨服務呼叫
gitnexus group query my-platform "訂單建立到付款完成的流程"

GitNexus 支援 Spring Boot 的 Framework Pattern Detection:

  • 識別 @Controller@Service@Repository 註解
  • 偵測 @GetMapping@PostMapping 等 API 端點
  • 追蹤 Service → Repository → Database 呼叫鏈

FastAPI 整合

GitNexus 對 Python 的支援同樣完整:

  • 識別路由裝飾器(@app.get@router.post
  • 追蹤依賴注入(Depends()
  • 解析 Pydantic 模型關係

Vue 微前端

  • 解析 Vue SFC(Single File Component)
  • 追蹤 Composable / Store 依賴
  • 識別路由配置和元件關係

6.4 DevOps 整合

CI/CD 前分析

在 CI Pipeline 中加入 GitNexus 分析:

# GitHub Actions 範例
name: GitNexus Impact Analysis
on: pull_request

jobs:
  impact-analysis:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm install -g gitnexus
      - run: gitnexus analyze --skip-embeddings
      - run: gitnexus status

自動化文件生成

# 定期自動更新 Wiki
name: Auto Wiki Update
on:
  schedule:
    - cron: '0 2 * * 1'  # 每週一凌晨 2 點

jobs:
  wiki:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm install -g gitnexus
      - run: gitnexus analyze --skip-embeddings
      - run: gitnexus wiki --model gpt-4o-mini
      - run: |
          git add docs/wiki/
          git commit -m "docs: auto-update wiki"
          git push

⚠️ 注意事項

  • CI 環境中建議使用 --skip-embeddings 加速
  • Wiki 生成需設定 OPENAI_API_KEY 環境變數

6.5 Community Integrations(社群整合)

📘 說明

以下為社群建構的整合專案 — 非官方維護,但值得參考:

專案作者說明
pi-gitnexus@tintinwebGitNexus plugin for pipi install npm:pi-gitnexus
gitnexus-stable-ops@ShunsukeHayashiStable ops & deployment workflows(Miyabi 生態系)

💡 提示:如有基於 GitNexus 建構的專案,可至 GitHub 提交 PR 新增至此列表。


6.6 開發文件與貢獻指南

📘 說明

GitNexus 提供完善的開發者文件體系:

文件說明
ARCHITECTURE.md套件結構、索引 → 圖譜 → MCP 流程、程式碼修改位置
RUNBOOK.md分析、嵌入、過期索引、MCP 恢復、CI 片段
GUARDRAILS.md安全規則和貢獻者 / Agent 的操作「標誌」
CONTRIBUTING.md授權、設定、提交和 Pull Request 規範
TESTING.mdgitnexusgitnexus-web 的測試指令
MIGRATION.md版本遷移指南(含 Edge Type 變更)
CHANGELOG.md所有版本的詳細變更記錄
SECURITY.md安全政策與漏洞回報指引
DoD.mdRepo 範圍的完成定義(Definition of Done)

專案結構概覽

目錄說明
gitnexus/CLI + MCP Server 核心套件
gitnexus-shared/CLI 和 Web 共用的核心邏輯
gitnexus-web/Web UI(React 18 + Vite + Tailwind v4)
gitnexus-claude-plugin/Claude Code Plugin
gitnexus-cursor-integration/Cursor 整合
pr-swarm-review/PR Reviewer Swarm Agents 配置(v1.6.5+)
.claude/Claude Code Agent 設定(含審查 Agent)
.cursor/Cursor Agent 設定
.gemini/commands/Gemini / Antigravity 指令設定
eval/評估測試框架
deploy/kubernetes/Kubernetes ClusterImagePolicy 部署配置
eslint-rules/自訂 ESLint 規則

6.7 understand-quickly 公開註冊

📘 說明

looptech-ai/understand-quickly 是一個公開的程式碼知識圖譜登錄處,將 gitnexus@1 列為第一級格式。

使用方式

  1. 註冊 Repo(一次性):

    npx @understand-quickly/cli add

    或使用 線上精靈

  2. 發布通知:

    gitnexus publish

    此命令發送一個 repository_dispatch 事件,讓登錄處按需重新同步您的條目,而非等待每日排程。

前提條件

  • 需要設定 UNDERSTAND_QUICKLY_TOKEN 環境變數 — 一個細粒度的 GitHub PAT,具有 Repository dispatches: write 權限
  • 此功能為 opt-in(選擇加入),未設定 Token 時為 no-op
  • 不會上傳任何圖譜檔案,僅觸發同步事件

📌 詳細規格:參見 protocol spec


第 7 章:銀行 / 大型系統應用案例

7.1 案例一:批次系統依賴分析

問題描述

某銀行核心系統有 200+ 個 Batch Job,每日排程執行。其中一個 Job DailySettlement 需要修改結算邏輯,但無人清楚該 Job 的完整依賴鏈。

使用 GitNexus 解法

# Step 1:索引批次系統 Repo
cd /path/to/batch-system
gitnexus analyze --skills

# Step 2:在 AI Agent 中分析

在 Claude Code 中執行:

# 查詢 DailySettlement 的完整上下文
context({name: "DailySettlement"})

# 影響分析 — 上游(誰依賴它)
impact({target: "DailySettlement", direction: "upstream", maxDepth: 5})

# 影響分析 — 下游(它依賴誰)
impact({target: "DailySettlement", direction: "downstream", maxDepth: 5})

分析結果

TARGET: Class DailySettlement (src/batch/settlement/DailySettlement.java)

DOWNSTREAM (dependencies):
  Depth 1:
    AccountRepository [CALLS 95%] -> src/repository/AccountRepository.java
    TransactionService [CALLS 90%] -> src/service/TransactionService.java
    SettlementCalculator [CALLS 88%] -> src/batch/settlement/Calculator.java
  Depth 2:
    OracleDataSource [CALLS 92%] -> src/config/DataSourceConfig.java
    AuditLogger [CALLS 85%] -> src/audit/AuditLogger.java

UPSTREAM (dependents):
  Depth 1:
    MonthlyReport [CALLS 90%] -> src/batch/report/MonthlyReport.java
    SettlementNotifier [CALLS 85%] -> src/notification/SettlementNotifier.java
  Depth 2:
    ReportScheduler [CALLS 80%] -> src/scheduler/ReportScheduler.java

帶來的效益

指標修改前使用 GitNexus 後
影響分析時間2-3 天(人工)5 分鐘(自動)
遺漏風險高(依賴人的記憶)極低(圖譜完整追蹤)
回歸測試範圍模糊精確指出受影響的測試

7.2 案例二:跨系統 API 呼叫分析

問題描述

銀行要升級「客戶資料服務」的 API 版本(v1 → v2),需要知道哪些系統呼叫了該 API。

使用 GitNexus 解法

# 建立跨服務群組
gitnexus group create customer-platform
gitnexus group add customer-platform customer-service
gitnexus group add customer-platform loan-service
gitnexus group add customer-platform card-service
gitnexus group add customer-platform mobile-app-bff

# 同步跨服務契約
gitnexus group sync customer-platform

# 查詢跨服務影響
gitnexus group query customer-platform "CustomerAPI v1"

分析結果

跨服務影響分析:

customer-service(API 提供者):
  - GET /api/v1/customers/{id}  → 被 3 個服務呼叫
  - POST /api/v1/customers      → 被 2 個服務呼叫
  - PUT /api/v1/customers/{id}  → 被 1 個服務呼叫

loan-service(消費者):
  - CustomerClient.getById()     → 呼叫 GET /api/v1/customers/{id}
  - CustomerClient.update()      → 呼叫 PUT /api/v1/customers/{id}

card-service(消費者):
  - CustomerAdapter.fetch()      → 呼叫 GET /api/v1/customers/{id}

mobile-app-bff(消費者):
  - CustomerProxy.getCustomer()  → 呼叫 GET /api/v1/customers/{id}
  - CustomerProxy.register()     → 呼叫 POST /api/v1/customers

帶來的效益

  • 精確定位所有 API 消費者,無一遺漏
  • 產出明確的遷移計畫:哪些服務需要優先修改
  • 降低 API 升級導致的系統中斷風險

7.3 案例三:DB Schema 影響分析

問題描述

DBA 需要修改 ACCOUNT 表的欄位 balance 型別(從 DECIMAL(15,2) 改為 DECIMAL(18,4)),需評估程式碼端影響。

使用 GitNexus 解法

-- 使用 Cypher 查找所有引用 ACCOUNT 表或 balance 欄位的程式碼
MATCH (n)-[r:CodeRelation]->(m)
WHERE n.name CONTAINS 'Account' OR n.name CONTAINS 'balance'
RETURN n.name, n.kind, n.filePath, type(r), m.name
ORDER BY n.filePath

搭配 AI Agent 對話:

「找出所有讀寫 ACCOUNT 表 balance 欄位的程式碼,包含 Repository、Service、DTO 和 API」

分析結果

層級受影響元件檔案影響程度
RepositoryAccountRepository.findBalance()AccountRepository.java直接
RepositoryAccountRepository.updateBalance()AccountRepository.java直接
ServiceSettlementService.calculate()SettlementService.java間接
ServiceTransferService.execute()TransferService.java間接
DTOAccountBalanceDTO.amountAccountBalanceDTO.java需修改型別
API/api/accounts/{id}/balanceAccountController.java回應格式變更

帶來的效益

  • 變更前完整評估影響,避免精度遺失造成的金額計算錯誤
  • 產出明確的修改清單,逐一追蹤修改進度

第 8 章:安全與隱私(SSDLC)

8.1 Zero-Server 優勢

🎯 目的:理解 GitNexus 的隱私保護機制。

項目CLIWeb UI
執行位置本地機器瀏覽器
網路呼叫
原始碼上傳
索引儲存.gitnexus/(Repo 內,已 gitignore)瀏覽器記憶體(Session 結束即消失)
全域 Registry~/.gitnexus/(僅路徑和 metadata)
API KeyWikiGen 時才需要(本地呼叫 LLM API)localStorage(僅瀏覽器端)

8.2 原始碼保護

📘 說明

  • 原始碼永遠不離開本地環境 — GitNexus 不會將任何程式碼傳送到外部伺服器
  • .gitnexus/ 資料夾預設加入 .gitignore,不會被意外提交
  • 全域 Registry(~/.gitnexus/registry.json)僅儲存 Repo 路徑和 metadata
  • 開源專案,可自行審計程式碼

企業級建議

# 確認 .gitignore 包含 .gitnexus/
echo ".gitnexus/" >> .gitignore

# 確認 Registry 不包含敏感資訊
cat ~/.gitnexus/registry.json

8.3 本地 AI 模型風險

風險項目說明緩解措施
Embedding 模型下載transformers.js 會從 HuggingFace 下載模型可使用 --skip-embeddings 避免;或預先下載模型
Wiki 生成呼叫外部 APIgitnexus wiki 呼叫 OpenAI / Anthropic API控制 API Key 權限;使用內部部署的 LLM
模型推論洩漏嵌入向量可能包含語義資訊向量儲存在本地,不外傳
MCP 通訊MCP 使用 stdio,無網路標準 IPC,安全;HTTP 模式(v1.6.8+)僅監聽 localhost
Private Repo TokenPAT 透過環境變數傳入不寫入配置檔;建議設定最小權限範圍

8.4 權限控管建議

企業部署建議

  1. 開發者本機

    • 各開發者在自己的機器上執行 GitNexus
    • 索引資料不共享
  2. 團隊共享環境

    • 使用企業版(akonlabs.com)的自託管部署
    • RBAC 控管 Repo 存取權限
    • 審計日誌追蹤使用行為
  3. CI/CD 環境

    • 使用短暫的容器環境
    • 索引在 Pipeline 結束後自動清除
    • API Key 透過 Secret Manager 管理
  4. API Key 管理

    • Wiki 生成所需的 LLM API Key 使用環境變數注入
    • 不在程式碼或配置檔中明文記錄 API Key
    • 設定 API Key 的使用限額

8.5 安全強化歷史與已知修復

📘 說明

GitNexus 團隊持續進行安全強化,以下為重要的安全修復記錄:

版本安全修復說明
v1.3.11FTS Cypher Injection修復全文搜尋中的 Cypher 注入攻擊 — 跳脫搜尋查詢中的反斜線(#209)
v1.3.10MCP Transport Buffer Cap新增 10 MB MAX_BUFFER_SIZE 限制,防止透過超大 Content-Length 標頭或無界換行分隔輸入造成的記憶體耗盡攻擊
v1.3.10Content-Length Validation在分配記憶體之前拒絕超過緩衝區上限的 Content-Length
v1.3.10Stack Overflow Prevention將遞迴 readNewlineMessage 替換為迭代迴圈,防止連續空行造成的堆疊溢出
v1.3.10Ambiguous Prefix Hardening加強 looksLikeContentLength 要求 14+ bytes 才配對,防止短輸入的錯誤框架偵測
v1.3.10Closed Transport Guardsend()close() 後呼叫時回傳明確錯誤,含正確的寫入錯誤傳播

MCP Transport 安全架構

GitNexus 的 CompatibleStdioServerTransport 採用雙框架(Dual-Framing)設計:

  • 自動偵測 Content-Length(Codex / OpenCode)和換行分隔 JSON(Cursor / Claude Code)框架
  • 於首條訊息偵測後以相同格式回應
  • 13 個單元測試覆蓋傳輸框架、安全強化、緩衝區限制

8.6 Taint Analysis 安全審計應用

🎯 目的:利用 PDG / Taint Analysis 進行程式碼安全審計。

v1.6.8 的 Taint Analysis 可作為 SSDLC 的靜態分析工具:

審計面向說明
SQL Injection追蹤使用者輸入是否未經消毒即傳入 SQL 查詢
Command Injection追蹤外部輸入是否流向 exec()/system() 呼叫
XSS追蹤請求參數是否未經跳脫即輸出至 HTML
Path Traversal追蹤使用者輸入是否用於檔案路徑操作

SSDLC 整合建議

# 在 CI Pipeline 中啟用 PDG 索引 + Taint 分析
gitnexus analyze --pdg
# 透過 Cypher 查詢 taint 路徑
cypher({query: "MATCH p=(s:TaintSource)-[:TAINT_FLOW*]->(k:TaintSink) RETURN p"})

企業安全建議

層級建議措施
網路層GitNexus 不開啟任何網路埠(除 gitnexus serve),確認防火牆規則
應用層定期更新至最新版本以獲得安全修復
資料層確認 .gitnexus/ 不被意外共享(已預設 gitignore)
認證層LLM API Key 使用短期 Token + Secret Manager
審計層啟用企業版審計日誌追蹤所有操作

8.7 供應鏈保護(Supply-Chain Protection)

🎯 目的:確保 GitNexus 映像檔和套件的真實性與完整性。

📘 說明

GitNexus 實施多層供應鏈保護措施:

Cosign Keyless 簽章

所有 Docker 映像使用 Cosign keyless signing 進行簽章,使用工作流程的 GitHub OIDC 身份。即使攻擊者在其他地方重新發布同名映像(或推送到拼寫錯誤的 Registry),也無法偽造與 abhigyanpatwari/GitNexusdocker.yml 綁定的 Cosign 簽章。

SBOM 與建置出處證明

每個映像附帶:

  • SBOM(Software Bill of Materials) — 軟體物料清單
  • SLSA Provenance v1 — 建置出處證明
# 檢查建置出處
cosign download attestation ghcr.io/abhigyanpatwari/gitnexus:1.6.5 \
  --predicate-type https://slsa.dev/provenance/v1

OpenSSF Scorecard

GitNexus 已加入 OpenSSF Scorecard,定期評估專案的安全實踐。

npm 套件版本鎖定

Docker 映像版本鎖定至 npm 套件:ghcr.io/abhigyanpatwari/gitnexus:1.6.5npm install gitnexus@1.6.5 是同一個版本 — 無漂移、無浮動建置。

Kubernetes Admission 控制

使用 Sigstore policy-controller 在 Kubernetes 叢集層級強制執行簽章驗證(詳見 3.5 節 Kubernetes 部署)。

企業安全建議(增訂)

層級建議措施
供應鏈在敏感環境拉取前,務必使用 cosign verify 驗證映像簽章
容器使用固定版本標籤(如 :1.6.5)而非 :latest
Kubernetes部署 ClusterImagePolicy 拒絕未簽章映像
CI/CD自動化安全掃描(已整合 CodeQL + 漏洞掃描)
依賴定期更新依賴並檢查 CVE

第 9 章:系統升級與維運

9.1 GitNexus 升級流程

🛠️ 操作步驟

# 檢查當前版本
gitnexus --version

# 升級到最新版本
npm update -g gitnexus

# 或使用 npx(始終使用最新版)
npx gitnexus@latest analyze

升級後建議

# 重新索引所有 Repo(建議,但非必要 — 增量索引會自動處理)
gitnexus analyze --force

# 驗證 MCP 正常
gitnexus mcp

完整解除安裝(v1.6.7+)

# 一鍵清除 Registry、Skills、MCP 配置、Hooks,並引導 npm uninstall -g
gitnexus uninstall

⚠️ 注意事項

  • 大版本升級可能變更索引格式,建議使用 --force 重新索引
  • 參考 CHANGELOG.md 了解版本變更
  • 參考 MIGRATION.md 了解遷移指南

9.2 Graph 重建策略

情境策略指令
日常更新增量索引(自動偵測變更)gitnexus analyze
版本升級強制完全重建gitnexus analyze --force
索引損壞清除後重建gitnexus clean && gitnexus analyze
全部重置清除所有索引gitnexus clean --all --force

9.3 Repository 更新同步

📘 說明

GitNexus 目前的索引策略:

  • gitnexus analyze(不帶 --force)支援 Incremental Indexing — 自動偵測變更的檔案並僅重新索引
  • 透過 parse cache + DB writeback 機制,大幅縮短後續索引時間
  • Claude Code 的 PostToolUse Hook 會在 commit 後偵測過期索引並提示 Agent 重新索引

建議的同步流程

# 開發前:確認索引是最新的
gitnexus status

# 如果過期:重新索引
gitnexus analyze

# 大規模合併後:強制重建
gitnexus analyze --force

9.4 效能優化建議

優化項目方法效果
增量索引不帶 --force 執行 gitnexus analyze僅重新處理變更檔案,速度提升 4-30x
跳過 Embedding--skip-embeddings索引速度提升 50%+,犧牲語義搜尋
SSD 磁碟將 Repo 放在 SSD圖譜查詢速度提升
排除非程式碼檔案.gitignore 設定完善減少無效解析
分拆大型 Monorepo使用 Repository Group個別索引,統一查詢
GPU 加速NVIDIA GPU + CUDAEmbedding 生成加速
限制 MCP 並發預設最大 5 個 LadybugDB 連線避免記憶體溢出
Worker 逾時調整--worker-timeout 60避免大型檔案解析失敗
並行 Worker 數量--workers <n>根據 CPU 核心數調整,提升索引速度
FTS 索引修復--repair-fts修復損壞的全文搜尋索引
WAL 檢查點控制--wal-checkpoint-threshold <n>控制 SQLite WAL 檔案大小
跳過可選 GrammarsGITNEXUS_SKIP_OPTIONAL_GRAMMARS=1安裝時間從分鐘降至秒
PDG 索引控制僅在需要 Taint/PDG 分析時啟用 --pdg避免不必要的 CFG 建構開銷
FTS Stemmer 調整GITNEXUS_FTS_STEMMER=none(CJK 場景)改善中日韓文搜尋品質

9.5 LadybugDB 遷移指南

📘 說明

GitNexus 已從 KuzuDB 完成遷移至 LadybugDB@ladybugdb/core@ladybugdb/wasm-core)。

變更內容

項目舊版新版
圖譜資料庫KuzuDBLadybugDB
儲存路徑.gitnexus/kuzu.gitnexus/lbug
內部路徑命名kuzulbug
語義搜尋內建需顯式載入 VECTOR extension

遷移步驟

# 升級後,舊的 KuzuDB 索引將自動清理
# 只需執行強制重建即可
gitnexus analyze --force

注意事項

  • 從舊版升級後首次需要使用 --force 重新索引
  • 舊的 KuzuDB 索引檔案會自動清除
  • LadybugDB 需要顯式載入 VECTOR extension 才能使用語義搜尋

9.6 Edge Type 遷移(OVERRIDES → METHOD_OVERRIDES)

📘 說明

自 PR #642 起,OVERRIDES 關係類型已重新命名為 METHOD_OVERRIDES,以與新的 METHOD_IMPLEMENTS 邊類型保持一致。

是否需要手動遷移?

不需要。 向後相容性在執行時自動處理:

  • local-backend.ts 在所有影響分析和上下文查詢中同時讀取 OVERRIDESMETHOD_OVERRIDES
  • schema-constants.ts 中的 REL_TYPES 陣列包含兩個名稱,因此引用任一名稱的 Cypher 查詢都能正常運作
  • 現有儲存圖譜中的 OVERRIDES 邊繼續返回正確結果,無需手動介入

重新索引後的行為

執行 npx gitnexus analyze 將產生 METHOD_OVERRIDES 邊。舊的 OVERRIDES 邊將在正常的完整重新索引過程中被替換。

Legacy 別名移除時程

OVERRIDES 相容別名將保留到未來的主要版本。移除前會在 MIGRATION.md 和 CHANGELOG 中公告。


第 10 章:最佳實務(Best Practices)

10.1 大型專案使用建議

  1. 首次索引使用 --skip-embeddings,確認基本功能正常後再啟用
  2. 大型 Repo(>50,000 檔案)使用 CLI,不要使用 Web UI 瀏覽器模式
  3. 啟用 --skills 為每個功能模組生成專屬 Skill 檔案
  4. 定期重新索引(建議每日或每次大規模合併後)
  5. 使用 Repository Group 管理微服務架構
  6. 使用 --workers <n> 根據 CPU 核心數調整並行 Worker 數量,提升大型 Repo 索引速度

Self-Healing Worker Pool(v1.6.5+)

GitNexus v1.6.5 引入了自癒式 Worker 池機制,針對大型 Repo 索引時的穩定性進行強化:

功能說明
Worker 自動重啟單一 Worker 崩潰時自動重啟,不影響整體索引進度
崩潰計數器追蹤每個 Worker 的崩潰次數,超過閾值時自動降級
延遲解析觀測Deferred-resolution observability — 記錄無法立即解析的符號,供後續修正
WAL Checkpoint使用 --wal-checkpoint-threshold 控制 SQLite WAL 檢查點頻率,避免 WAL 檔案過大

10.2 Monorepo vs Multi-repo

策略MonorepoMulti-repo
索引方式直接 gitnexus analyze每個 Repo 個別索引 + Group
跨模組分析自動(同一圖譜)需要 group sync
效能可能較慢(大量檔案)個別索引較快
建議<50,000 檔案可直接用>50,000 檔案建議拆分

10.3 團隊導入策略

graph TD
    A[Phase 1<br/>技術驗證 POC] --> B[Phase 2<br/>先導團隊]
    B --> C[Phase 3<br/>全面推廣]
    C --> D[Phase 4<br/>流程整合]

    A1[選擇 1-2 個 Repo<br/>安裝 CLI + MCP] --> A
    B1[3-5 人團隊使用<br/>建立內部最佳實務] --> B
    C1[全團隊安裝<br/>CI/CD 整合] --> C
    D1[PR Review 標準化<br/>Wiki 自動生成<br/>Impact Analysis 必做] --> D

導入步驟

  1. Phase 1(1 週):選擇 1-2 個中型 Repo 進行 POC
  2. Phase 2(2-4 週):先導團隊使用,收集回饋
  3. Phase 3(4-8 週):全團隊推廣,建立 SOP
  4. Phase 4(持續):整合至 CI/CD、PR Review 流程

10.4 使用限制與風險

限制 / 風險說明緩解措施
語言支援限制14 種語言,部分語言功能不完整確認目標語言的支援程度
授權限制PolyForm Noncommercial商業使用需取得企業授權
動態語言精確度動態型別語言的呼叫解析精確度較低搭配型別註解使用
大型 Repo 記憶體非常大的 Repo 可能消耗大量記憶體分拆 Repo 或增加記憶體
框架特定模式部分框架的 DI / AOP 無法完全追蹤使用 Cypher 手動補充查詢

第 11 章:常見問題 FAQ

Q1:Graph 太大怎麼辦?

A

  1. 使用 --skip-embeddings 減少索引大小
  2. 確認 .gitignore 排除 node_modulesbuild 等非程式碼目錄
  3. 考慮使用 Repository Group 將 Monorepo 拆分為多個獨立索引
  4. 增加機器記憶體(建議 16 GB+)

Q2:查詢速度慢?

A

  1. 確認使用 SSD 磁碟
  2. 使用 --skip-embeddings 停用語義搜尋(改用 BM25)
  3. 限制 maxDepth 參數避免深層遍歷
  4. 對特定模組使用 --skills 生成 Skill 縮小查詢範圍

Q3:AI 回答不準?

A

  1. 確認索引是最新的:gitnexus status
  2. 啟用 Embedding:gitnexus analyze --embeddings
  3. 使用 --skills 生成模組 Skill,讓 AI 獲得更精確的上下文
  4. 提供更具體的問題,而非泛泛而問

Q4:如何提升準確度?

A

  1. 使用 gitnexus analyze --skills --embeddings 完整索引
  2. 為程式碼添加型別註解(尤其是 Python、JavaScript)
  3. 使用 Cypher 進行精確查詢而非自然語言搜尋
  4. 定期重新索引保持圖譜最新

Q5:Windows 環境有特殊設定嗎?

A

  • MCP 設定使用 cmd /c npx 前綴:
    claude mcp add gitnexus -- cmd /c npx -y gitnexus@latest mcp
  • 建議 Repo 路徑不含中文或空格
  • 使用 PowerShell 或 Git Bash 執行 CLI

Q6:支援離線使用嗎?

A

  • CLI 索引和 MCP 查詢完全離線
  • Embedding 模型首次使用需下載(之後快取在本地)
  • Wiki 生成需要 LLM API 連線
  • Web UI 線上版需要網路,本地版可離線

Q7:如何與企業 Proxy 搭配使用?

A

  • npm 設定 Proxy:npm config set proxy http://proxy:port
  • 或預先安裝 gitnexus,之後完全離線使用
  • Embedding 模型可手動下載放置到快取目錄

Q8:OVERRIDES 和 METHOD_OVERRIDES 的差異?

A

  • OVERRIDES 為舊版邊類型名稱,已在 PR #642 中重新命名為 METHOD_OVERRIDES
  • 新命名是為了與新增的 METHOD_IMPLEMENTS 邊類型保持一致
  • 向後相容性自動處理 — 現有圖譜中的 OVERRIDES 邊仍可正常查詢
  • 重新索引後會自動使用新名稱
  • 詳見 MIGRATION.md

Q9:如何處理動態語言(Python / JavaScript)的精確度問題?

A

  1. 為程式碼添加型別註解(Type Annotations)— GitNexus 的 Receiver-Constrained Resolution 會利用這些資訊
  2. v1.4.0 的 3-Tier Resolver 已大幅提升精確度(精確 FQN → scope-walk → 受保護模糊回退)
  3. 使用 Constructor Inference 自動推斷型別(包含 self/this 解析)
  4. 對於無法自動解析的情況,使用 Cypher 手動補充查詢

Q10:GitNexus 和 GitHub Copilot 可以同時使用嗎?

A

  • 可以。GitNexus 透過 MCP 提供結構化的程式碼上下文,與 Copilot 的即時程式碼補全互補
  • GitNexus 負責提供架構級理解(呼叫鏈、依賴圖),Copilot 負責程式碼生成
  • 兩者同時使用可顯著提升 AI 輔助開發的準確性

Q11:LadybugDB 和 KuzuDB 的關係?

A

  • LadybugDB 是 GitNexus 目前使用的嵌入式圖譜資料庫(含向量支援)
  • 前身為 KuzuDB,已完成遷移
  • 儲存路徑從 .gitnexus/kuzu 變更為 .gitnexus/lbug
  • 升級後執行 gitnexus analyze --force 即可自動遷移

Q12:Docker 部署和本地安裝有什麼差別?

A

  • Docker 部署適合團隊共享環境和生產部署,提供一鍵啟動 Server + Web UI
  • 本地安裝(npm install -g gitnexus)適合個人開發,與 AI Agent 的 MCP 整合更直接
  • Docker 映像附帶 Cosign 簽章和 SBOM,適合對供應鏈安全有要求的企業環境
  • 兩者可並存:Docker 用於 Server + Web UI,本地 CLI 用於日常開發

Q13:什麼是 Incremental Indexing?

A

  • 增量索引是 v1.6.x 新增的功能,透過 parse cache 僅重新處理變更的檔案
  • 直接執行 gitnexus analyze(不帶 --force)即自動啟用
  • 可將索引時間從分鐘級降至秒級
  • 使用 --force 可強制完全重建

Q14:如何索引非 Git 儲存庫的資料夾?

A

  • 使用 gitnexus analyze --skip-git 旗標
  • 此選項會將當前工作目錄視為索引根目錄,而非向上查找 Git 根目錄

Q15:Antigravity(Google)和 Gemini CLI 有什麼不同?

A

  • Antigravity 是 Google Gemini CLI 的後繼產品,提供更完整的 Agent 體驗
  • GitNexus 對 Antigravity 提供完整支援,包含 MCP Tools、Agent Skills 和 AfterTool Hooks
  • 設定方式與 Gemini CLI 類似 — 配置檔位於 ~/.gemini/antigravity/mcp_config.json
  • AfterTool Hooks 能在工具執行後自動附加圖譜上下文,並在 commit 後偵測過期索引

Q16:PR Reviewer Swarm Agents 是什麼?

A

  • v1.6.5 新增的多 Agent 協作 PR 審查功能
  • 多個專業 Agent 各自負責不同面向(架構、安全、效能等)的審查
  • 利用知識圖譜進行爆炸半徑分析,確保審查精確涵蓋影響範圍
  • 配置檔位於 pr-swarm-review/.claude/.cursor/ 目錄

Q17:Impact Analysis 出現 ambiguous 結果時該怎麼辦?

A

  • 當多個符號同名時,impact 工具會回傳排名的候選列表而非猜測
  • 使用 --uid 精確指定目標符號(零歧義)
  • 使用 --file 依檔案路徑縮小範圍
  • 使用 --kind 依類型(Function、Class、Method 等)篩選

Q18:PDG 和 Taint Analysis 需要額外設定嗎?

A

  • PDG 和 Taint Analysis 為 opt-in 功能,需在索引時加上 --pdg 旗標
  • 啟用後索引時間會增加(需建構 CFG + PDG),但後續的影響分析精確度大幅提升
  • Taint Analysis 目前支援 Java 和 Python 的常見 source/sink 模型
  • 使用 impact({symbol: "xxx", mode: "pdg"}) 啟用 PDG-backed 影響分析

Q19:MCP HTTP Server 和 stdio 模式有什麼差異?

A

  • stdio 模式(預設):MCP Server 作為子行程透過標準輸入/輸出通訊,適合本機 Agent 整合
  • HTTP 模式(v1.6.8+):gitnexus mcp --http 啟動 Streamable HTTP 服務,適合遠端 Agent、多 Agent 共用、Docker/K8s 部署
  • HTTP 模式預設使用 port 3100,可透過 --port 自訂
  • 兩種模式提供完全相同的 17 個 MCP 工具

Q20:如何索引私有 GitHub Repository?

A

  • v1.6.8 起支援透過 Personal Access Token(PAT)存取私有 Repo
  • 設定 GITHUB_TOKEN 環境變數後直接執行 gitnexus analyze --repo <url>
  • PAT 需具備 repo scope 權限
  • 同時支援 Azure DevOps Server(使用 AZURE_DEVOPS_TOKEN

Q21:trace 工具和 impact 工具有什麼不同?

A

  • trace 追蹤兩個指定符號之間的最短呼叫路徑(A → … → B),回傳完整的呼叫鏈
  • impact 分析單一符號變更的爆炸半徑(A → 所有受影響的符號)
  • 兩者互補:先用 impact 確認影響範圍,再用 trace 理解特定路徑
  • trace 使用 Directed BFS 演算法,impact 可選用 PDG 模式進行語句層級分析

Q22:npm 11.x 安裝 GitNexus 失敗怎麼辦?

A

  • npm 11 預設啟用 --omit=optional,導致 tree-sitter 原生綁定編譯失敗
  • 解決方案一:降級至 npm 10(推薦)
  • 解決方案二:執行 npm config set omit="" 後重新安裝
  • 解決方案三:設定 GITNEXUS_SKIP_OPTIONAL_GRAMMARS=1 跳過可選語法(Dart/Proto/Swift 將不被解析)

第 12 章:未來發展與建議

12.1 Graph RAG 未來趨勢

目前 Roadmap(官方)

狀態功能
開發中(v1.6.9-rc)Python/Java Taint Models 擴充 — 更多 source/sink 覆蓋
開發中(v1.6.9-rc)FTS Stemmer 可配置 — GITNEXUS_FTS_STEMMER 環境變數
開發中(v1.6.9-rc)Django Route Extraction — Django URL patterns 自動提取
開發中(v1.6.9-rc)Nuxt/Nitro Auto-Imports — 自動識別 Nuxt 框架的隱式匯入
進行中LLM Cluster Enrichment — 透過 LLM API 產生語義化的社群名稱
進行中AST Decorator Detection — 解析 @Controller、@Get 等裝飾器
已完成(v1.6.8)PDG-backed Impact Analysis — impact({mode:'pdg'}) 語句層級分析
已完成(v1.6.8)Taint Analysis — intra+inter-procedural 污染追蹤
已完成(v1.6.8)MCP trace 工具 — 符號間最短呼叫路徑追蹤
已完成(v1.6.8)Private Repos via PAT — GitHub Private + Azure DevOps Server
已完成(v1.6.8)MCP HTTP Server — gitnexus mcp --http Streamable HTTP 傳輸
已完成(v1.6.8)HTTP Route Extraction — Spring/FastAPI 路由自動提取
已完成(v1.6.8)C++ CUDA 支援 — .cu/.cuh 檔案解析
已完成(v1.6.8)Circular Import Check — 循環匯入偵測
已完成(v1.6.8)Custom Embeddings Provider — 自訂向量嵌入提供者
已完成(v1.6.7)gitnexus uninstall — 完整移除 CLI + 配置
已完成(v1.6.7)Prebuilt Grammars — 免工具鏈安裝
已完成(v1.6.7)list_repos 分頁 — 大量 Repo 時分頁回傳
已完成(v1.6.7)Taint/PDG 基礎架構(M0) — CFG + reaching-defs substrate
已完成(v1.6.7)C++ Inheritance Lattice — 完整 C++ 繼承解析
已完成(v1.6.6)DevContainer — 預裝 Claude/Codex/Cursor CLI 的開發容器
已完成(v1.6.6)Scope-Resolution Migration — 精確範疇解析遷移
已完成(v1.6.6)Linux-Scale Indexing — 大規模 Repo 索引優化
已完成(v1.6.6).gitnexusrc Config — 專案級配置檔支援
已完成(v1.6.6)Wiki --lang Flag — Wiki 多語言輸出
已完成(v1.6.5)PR Reviewer Swarm Agents — 多 Agent 協作 PR 審查
已完成(v1.6.5)Self-Healing Worker Pool — 自癒式 Worker 池 + deferred-resolution observability
已完成(v1.6.5)C++ user-defined conversion ranking — 提升 C++ 隱式轉換解析精確度
已完成(v1.6.5)Antigravity (Google) 完整支援 — MCP + Skills + AfterTool Hooks
已完成(v1.6.x)Incremental Indexing — 僅重新索引變更的檔案(parse cache + DB writeback + scope)
已完成(v1.6.x)Docker 部署 — 官方 Docker Compose + Cosign 簽章 + Kubernetes 支援
已完成(v1.6.x)C++ scope-based resolution model
已完成(v1.6.x)Thrift contracts 支援
已完成(v1.6.x)自動化安全與漏洞掃描(CI 整合)
已完成(v1.6.x)Docker 健康檢查端點
已完成(v1.6.x)Wiki --timeout--retries 旗標
已完成(v1.5.3+)LadybugDB 遷移(從 KuzuDB)
已完成(v1.5.3)TypeScript/JavaScript MethodExtractor Config、Azure OpenAI 相容性
已完成(v1.5.3+)METHOD_IMPLEMENTS Edges、Overload Disambiguation(type-hash suffix)
已完成(v1.5.3+)MethodExtractor Configs for Python, PHP, Swift, Dart, Rust, Ruby
已完成(v1.5.3+)Fuzzy Lookup Counters in Symbol Table
已完成(v1.4.0)Language-Aware 3-Tier Symbol Resolution Engine、MRO、Constructor/Struct Resolution
已完成(v1.4.0)Constructor-Inferred Type Resolution、self/this Receiver Mapping
已完成Wiki Generation、Multi-File Rename、Git-Diff Impact Analysis
已完成Process-Grouped Search、360-Degree Context、Claude Code Hooks
已完成Multi-Repo MCP、Zero-Config Setup、14 Language Support
已完成Community Detection、Process Detection、Confidence Scoring
已完成Hybrid Search、Vector Index

企業版功能(akonlabs.com)

狀態功能
可用PR Review — 自動化爆炸半徑分析
可用Auto-updating Code Wiki — 文件自動保持最新
可用Auto-reindexing — 知識圖譜自動更新
可用Multi-repo Support — 統一跨儲存庫圖譜
可用OCaml Support — 額外語言覆蓋
可用Priority Feature/Language Support — 優先功能 / 語言支援
即將推出Auto Regression Forensics(自動回歸分析)
即將推出End-to-End Test Generation(端到端測試生成)

💬 企業授權聯絡Discord 或 Email: founders@akonlabs.com

12.2 與 Agent 系統整合

未來趨勢:

  1. Multi-Agent Collaboration:多個 AI Agent 共享同一知識圖譜(v1.6.5 PR Reviewer Swarm Agents 已實現初步版本)
  2. Agentic Workflow:AI Agent 自動化完成 analyze → impact → refactor → test 流程
  3. Continuous Intelligence:知識圖譜隨程式碼變更即時更新(Claude Code PostToolUse Hook 已部分實現)
  4. Cross-Organization Graph:跨組織的知識圖譜聯邦查詢
  5. 全編輯器覆蓋:目前已支援 Claude Code、Cursor、Windsurf、Cline、Copilot、Roo Code、Codex、OpenCode、Antigravity 等 9+ 編輯器 / Agent,未來將持續擴展

12.3 企業導入 Roadmap

gantt
    title GitNexus 企業導入建議時程
    dateFormat  YYYY-MM
    section Phase 1 - 評估
    技術 POC              :a1, 2026-04, 2w
    安全審查              :a2, after a1, 1w
    授權確認              :a3, after a2, 1w
    section Phase 2 - 先導
    先導團隊(3-5人)     :b1, after a3, 4w
    建立內部 SOP          :b2, after b1, 2w
    section Phase 3 - 推廣
    全團隊推廣            :c1, after b2, 4w
    CI/CD 整合            :c2, after b2, 3w
    section Phase 4 - 優化
    PR Review 標準化      :d1, after c1, 4w
    Wiki 自動化           :d2, after c2, 4w
    持續優化              :d3, after d1, 8w

建議優先導入場景

優先序場景價值
1PR Review Impact Analysis降低變更風險
2新人 Onboarding Wiki加速上手
3Legacy 系統逆向分析系統現代化基礎
4跨服務依賴管理微服務治理
5自動化文件生成減少文件維護成本

附錄 A:快速檢查清單(Checklist)

安裝與設定

  • Node.js 18+ 已安裝
  • npm install -g gitnexus 完成(或使用 Docker 部署)
  • gitnexus --version 確認版本
  • gitnexus setup 配置 MCP
  • 驗證 AI Agent 可使用 GitNexus 工具

Docker 部署(選用)

  • docker compose up -d 啟動服務
  • 確認 http://localhost:4747 健康檢查通過
  • 確認 http://localhost:4173 Web UI 可訪問
  • 映像簽章已驗證(cosign verify

首次索引

  • 切換到 Repo 根目錄
  • 執行 gitnexus analyze
  • 執行 gitnexus status 確認索引狀態
  • 在 AI Agent 中測試 query 工具
  • 在 AI Agent 中測試 impact 工具

團隊導入

  • 選定 POC Repo
  • 先導團隊完成安裝
  • 建立內部使用 SOP
  • CI/CD Pipeline 加入 GitNexus
  • PR Review 流程加入 Impact Analysis
  • 定期重新索引排程設定

安全合規

  • .gitnexus/ 已加入 .gitignore
  • 確認無原始碼外洩風險
  • LLM API Key 使用環境變數管理
  • 企業授權確認(如需商業使用)
  • Docker 映像使用 Cosign 簽章驗證(如使用 Docker)
  • Kubernetes 部署已配置 ClusterImagePolicy(如使用 K8s)

日常使用

  • 每日或合併後重新索引
  • PR 提交前執行 Impact Analysis
  • 定期更新 GitNexus 版本
  • 定期重新生成 Wiki

版本升級

  • 查閱 CHANGELOG.md
  • 查閱 MIGRATION.md
  • 執行 npm update -g gitnexus
  • 執行 gitnexus analyze --force 重建索引
  • 確認 MCP 正常運作

附錄 B:CLI 指令速查表

指令說明
gitnexus setup配置 MCP(一次性,自動偵測編輯器)
gitnexus analyze索引 / 更新 Repo(支援增量索引)
gitnexus analyze --force強制重建索引
gitnexus analyze --skills生成模組 Skill(.claude/skills/generated/
gitnexus analyze --skip-embeddings跳過 Embedding(更快)
gitnexus analyze --embeddings啟用 Embedding(更精確)
gitnexus analyze --skip-agents-md保留自訂 AGENTS.md / CLAUDE.md 內容
gitnexus analyze --skip-git索引非 Git 儲存庫的資料夾
gitnexus analyze --verbose顯示詳細日誌(含跳過的檔案)
gitnexus analyze --worker-timeout 60增加 worker 閒置逾時(秒)
gitnexus analyze --workers <n>指定並行 Worker 數量(預設:CPU 核心數)
gitnexus analyze --repair-fts修復全文搜尋索引(FTS5 損壞時使用)
gitnexus analyze --wal-checkpoint-threshold <n>SQLite WAL 檢查點觸發閾值
gitnexus mcp啟動 MCP Server(stdio)— 服務所有已索引 Repo
gitnexus serve啟動 HTTP Server(Multi-Repo)供 Web UI 連接
gitnexus list列出所有索引
gitnexus status顯示當前索引狀態
gitnexus clean刪除當前索引
gitnexus clean --all --force刪除所有索引
gitnexus wiki生成 Wiki(需 LLM API Key)
gitnexus wiki --model <model>指定 LLM 模型(預設 gpt-4o-mini)
gitnexus wiki --base-url <url>自訂 LLM API URL
gitnexus wiki --force強制重新生成 Wiki
gitnexus wiki --timeout <seconds>每次嘗試的 LLM 請求逾時秒數(預設 60)
gitnexus wiki --retries <n>最大 LLM 重試次數(預設 3)
gitnexus wiki --lang <language>指定輸出語言(如 chinese、english、japanese)
gitnexus publish通知 understand-quickly 登錄(opt-in)
gitnexus group create <name>建立群組
gitnexus group add <group> <groupPath> <registryName>群組加入 Repo(groupPath=層級路徑,registryName=registry 名稱)
gitnexus group remove <group> <groupPath>群組依層級路徑移除 Repo
gitnexus group list [name]列出群組或顯示單一群組配置
gitnexus group sync <name>跨 Repo 契約同步
gitnexus group contracts <name>檢查跨 Repo 契約和交叉連結
gitnexus group query <name> <q>跨群組搜尋
gitnexus group status <name>群組過期檢查
gitnexus uninstall完整移除:清除 Registry、Skills、MCP 配置、Hooks,引導 npm uninstall -g(v1.6.7+)

附錄 C:MCP 工具速查表

Per-Repo 工具(12 個)

工具說明repo 參數
list_repos列出所有已索引 Repo(支援分頁,v1.6.7+)
query混合搜尋(BM25 + 語義 + RRF)可選
context360 度 Symbol 檢視可選
impact爆炸半徑分析(含消歧義:--uid--file--kind;支援 mode:'pdg',v1.6.8+)可選
detect_changesGit-diff 變更偵測可選
rename跨檔智慧重新命名可選
cypher原生 Cypher 查詢可選
trace符號間最短呼叫路徑追蹤(Directed BFS,v1.6.8+)可選

Group 工具(5 個)

工具說明
group_list列出群組
group_sync跨 Repo 契約同步
group_contracts檢視跨服務契約
group_query跨群組執行流程搜尋
group_status群組過期狀態檢查

MCP Resources

Resource URI說明
gitnexus://repos所有已索引 Repo
gitnexus://repo/{name}/contextRepo 統計與可用工具
gitnexus://repo/{name}/clusters功能聚類一覽
gitnexus://repo/{name}/cluster/{name}聚類成員詳情
gitnexus://repo/{name}/processes執行流程一覽
gitnexus://repo/{name}/process/{name}流程完整追蹤
gitnexus://repo/{name}/schema圖譜 Schema

MCP Prompts

Prompt說明
detect_impactPre-commit 變更分析 — 範圍、受影響流程、風險等級
generate_map從知識圖譜產出架構文件(含 Mermaid 圖表)

Agent Skills(自動安裝)

Skill說明
Exploring使用知識圖譜導航不熟悉的程式碼
Debugging透過呼叫鏈追蹤 Bug
Impact Analysis變更前分析爆炸半徑
Refactoring使用依賴映射規劃安全重構

提示:使用 gitnexus analyze --skills 可額外生成 Repo 專屬的模組 Skill。


附錄 D:語言能力詳細矩陣

以下為各語言支援的解析能力詳細對照:

語言ImportsNamed BindingsExportsHeritageType AnnotationsConstructor InferenceConfigFrameworksEntry Points
TypeScript
JavaScript
Python
Java
Kotlin
C#
Go
Rust
PHP
Ruby
Swift
C
C++
Dart
OCaml

:OCaml 僅在企業版中支援。各欄位含義請參見第 2.2 節 Parser 能力說明。

各能力欄位說明

能力說明
Imports跨檔 import 解析
Named Bindingsimport { X as Y } / re-export 追蹤
Exportspublic / exported 符號偵測
Heritage類別繼承、介面、Mixin
Type Annotations明確型別提取(用於 receiver 解析)
Constructor Inference建構子推斷型別(含 self/this 解析,所有語言皆支援)
Config語言工具鏈配置解析(tsconfig、go.mod、composer.json、.csproj 等)
FrameworksAST 框架模式偵測(@Controller、@Get 等)
Entry Points入口點評分啟發式

附錄 E:Edge Type(關係類型)速查表

GitNexus 知識圖譜中使用的所有關係類型:

Edge Type說明範例
CALLS函式 / 方法呼叫關係handleLoginvalidateUser
IMPORTS跨檔 import 關係authRoutervalidateUser
EXTENDS類別繼承關係AdminUserBaseUser
IMPLEMENTS介面實作關係UserServiceIUserService
METHOD_OVERRIDES方法覆寫關係(前身為 OVERRIDESAdminService.save()BaseService.save()
METHOD_IMPLEMENTS方法實作介面方法(v1.5.3+)PayPalGateway.process()PaymentGateway.process()
HAS_METHOD類別擁有方法(所有權關係)UserServicevalidate()
MEMBER_OF符號屬於某功能社群validateUserAuthentication Community

信心分數(Confidence Score)

每個 CALLS 邊附帶信心分數(0.0 - 1.0),表示解析的確定程度:

分數範圍含義說明
0.90 - 1.00WILL BREAK高度確信的直接依賴
0.70 - 0.89LIKELY AFFECTED可能受影響
0.50 - 0.69POSSIBLY AFFECTED可能受影響,需人工確認
< 0.50UNCERTAIN不確定,僅供參考

附錄 F:Docker 部署速查表

操作指令
一鍵部署docker compose up -d
掛載主機 RepoWORKSPACE_DIR=$HOME/code docker compose up -d
容器內索引docker compose exec gitnexus-server gitnexus index /workspace/my-repo
環境變數配置cp .env.example .env && docker compose --env-file .env up -d
驗證映像簽章cosign verify ghcr.io/abhigyanpatwari/gitnexus:<version> --certificate-identity-regexp '...' --certificate-oidc-issuer https://token.actions.githubusercontent.com
檢查建置出處cosign download attestation ghcr.io/abhigyanpatwari/gitnexus:<version> --predicate-type https://slsa.dev/provenance/v1
停止服務docker compose down
清除資料docker compose down -v(刪除命名卷)

端口對照

服務端口說明
Server(HTTP API)4747CLI 後端、MCP、Indexer
Web UI4173靜態前端
MCP HTTP Server3100gitnexus mcp --http 預設端口(v1.6.8+)

環境變數

變數說明預設值
WORKSPACE_DIR主機 Repo 掛載目錄
GITNEXUS_SKIP_OPTIONAL_GRAMMARS跳過 Dart/Proto/Swift 原生編譯
GITNEXUS_WORKER_SUB_BATCH_TIMEOUT_MSWorker 子批次逾時(毫秒)
GITNEXUS_WORKER_SUB_BATCH_MAX_BYTESWorker 子批次位元組上限
GITNEXUS_WORKERS並行 Worker 數量CPU 核心數
GITNEXUS_WAL_CHECKPOINT_THRESHOLDSQLite WAL 檢查點閾值
GITNEXUS_MAX_BATCH_TOTAL_BYTES批次位元組總上限
GITNEXUS_MAX_FILE_SIZE_BYTES單一檔案大小上限
GITNEXUS_CONCURRENCYLadybugDB 最大並發連線數5
GITNEXUS_LOG_LEVEL日誌等級info
UNDERSTAND_QUICKLY_TOKENunderstand-quickly 登錄 PAT

附錄 G:.gitnexusrc 專案配置速查表

v1.6.6 起支援在專案根目錄放置 .gitnexusrc 檔案(JSON 格式),提供專案級配置:

{
  "skip": ["vendor/**", "dist/**", "*.generated.ts"],
  "skipEmbeddings": false,
  "pdg": true,
  "workers": 8,
  "maxFileSize": 1024,
  "ftsStemmer": "none",
  "skills": true
}
欄位類型說明
skipstring[]Glob 模式 — 跳過匹配的檔案(疊加 .gitignore + .gitnexusignore
skipEmbeddingsboolean跳過向量嵌入生成(加速索引)
pdgboolean啟用 PDG / Taint Analysis 建構
workersnumberWorker 池大小覆寫
maxFileSizenumber檔案大小上限(KB)
ftsStemmerstring全文搜尋詞幹演算法(englishnone 等)
skillsboolean自動生成 Repo 專屬 Agent Skills

💡 提示.gitnexusrc 的設定會被 CLI 旗標和環境變數覆蓋。優先順序:CLI 旗標 > 環境變數 > .gitnexusrc > 內建預設值。


附錄 H:PDG / Taint 邊類型速查表

邊類型方向說明
CFGBasicBlock → BasicBlock控制流邊 — 基本區塊間的執行順序
DATA_DEPDefinition → Use資料依賴邊 — reaching definitions 分析產生
CTRL_DEPCondition → Statement控制依賴邊 — 語句的執行取決於哪個條件
TAINT_FLOWSource → Sink污染流邊 — tainted 資料的傳播路徑
SANITIZESanitizer → TaintedVar消毒邊 — 清除 taint 標記的函式

PDG 節點類型

節點類型說明
BasicBlock控制流圖中的基本區塊(一組順序執行的語句)
TaintSource污染源(不受信任的輸入點)
TaintSink污染匯(敏感操作點)
Sanitizer消毒函式(清除 taint 標記)

文件維護:本手冊應隨 GitNexus 版本更新而同步更新,建議每季度或大版本發布時檢視內容。
官方 GitHub:https://github.com/abhigyanpatwari/GitNexus
企業版akonlabs.com — SaaS 或自託管部署
Discord 社群discord.gg/MgJrmsqr62
安全政策SECURITY.md
企業授權聯絡founders@akonlabs.com
最後更新:2026-06-30