[{"data":1,"prerenderedAt":884},["ShallowReactive",2],{"content-\u002Fplugins\u002Faio-planning\u002Faio-gitnexus":3,"children-\u002Fplugins\u002Faio-planning\u002Faio-gitnexus":883,"twin-\u002Fplugins\u002Faio-planning\u002Faio-gitnexus":878},{"id":4,"title":5,"author":6,"body":7,"budget_tier":6,"build_tags":6,"created":6,"description":874,"document_type":875,"extension":876,"game":6,"install":36,"investment_tier":6,"league":6,"meta":877,"navigation":878,"patch":6,"path":879,"plugin":24,"profit_per_hour":6,"ratings":6,"seo":880,"skills_count":6,"status":6,"stem":881,"strategy_tier":6,"tags":6,"updated":6,"version":6,"weight":6,"__hash__":882},"content\u002Fplugins\u002Faio-planning\u002Faio-gitnexus.md","aio-gitnexus",null,{"type":8,"value":9,"toc":851},"minimark",[10,37,42,47,75,78,81,85,90,100,104,110,116,120,123,129,132,138,141,231,238,302,306,312,322,327,359,372,376,382,386,389,394,427,431,448,452,495,499,505,509,535,539,554,558,564,568,574,578,582,620,624,632,636,662,665,673,677,680,684,690,703,714,718],[11,12,13],"blockquote",{},[14,15,16,17,25,26,25,30,33,34],"p",{},"From plugin ",[18,19,21],"a",{"href":20},"\u002Fplugins\u002Faio-planning",[22,23,24],"strong",{},"aio-planning"," · ",[27,28,29],"code",{},"v1.1.2",[22,31,32],{},"Install:"," ",[27,35,36],{},"\u002Fplugin install aio-planning@aiocean-plugins",[38,39,41],"h1",{"id":40},"gitnexus-manager","GitNexus Manager",[43,44,46],"h2",{"id":45},"environment","Environment",[48,49,50,57,63,69],"ul",{},[51,52,53,54],"li",{},"node: !",[27,55,56],{},"node --version 2>\u002Fdev\u002Fnull || echo \"NOT INSTALLED (requires >= 18)\"",[51,58,59,60],{},"npx: !",[27,61,62],{},"which npx 2>\u002Fdev\u002Fnull || echo \"NOT INSTALLED\"",[51,64,65,66],{},"gitnexus: !",[27,67,68],{},"npx gitnexus --version 2>\u002Fdev\u002Fnull || echo \"NOT INSTALLED (will be fetched via npx)\"",[51,70,71,72],{},".mcp.json: !",[27,73,74],{},"[ -f \".mcp.json\" ] && echo \"present\" || echo \"NOT FOUND\"",[14,76,77],{},"Manages the GitNexus zero-server code intelligence engine — install, setup MCP, run analysis, check status, troubleshoot, and document local git-hook refresh workflows.",[14,79,80],{},"GitNexus turns any codebase into a knowledge graph (nodes, edges, clusters, flows) with hybrid search (BM25 + semantic). Zero infrastructure — no databases, no Docker, no API keys required.",[43,82,84],{"id":83},"commands","Commands",[86,87,89],"h3",{"id":88},"check-status","Check Status",[91,92,98],"pre",{"className":93,"code":95,"language":96,"meta":97},[94],"language-bash","# Check if GitNexus is installed\nnpx gitnexus --version 2>\u002Fdev\u002Fnull && echo \"installed\" || echo \"not installed\"\n\n# Check index status for current repo\nnpx gitnexus status\n\n# List all indexed repos\nnpx gitnexus list\n","bash","",[27,99,95],{"__ignoreMap":97},[86,101,103],{"id":102},"install-gitnexus","Install GitNexus",[91,105,108],{"className":106,"code":107,"language":96,"meta":97},[94],"# Option 1: Use via npx (no install needed — recommended)\nnpx gitnexus analyze\n\n# Option 2: Install globally\nnpm install -g gitnexus\n\n# Verify\ngitnexus --version\n",[27,109,107],{"__ignoreMap":97},[14,111,112,115],{},[22,113,114],{},"Requirements:"," Node.js >= 18",[86,117,119],{"id":118},"setup-mcp-server-claude-code","Setup MCP Server (Claude Code)",[14,121,122],{},"Run the automated setup which auto-detects editors:",[91,124,127],{"className":125,"code":126,"language":96,"meta":97},[94],"npx gitnexus setup\n",[27,128,126],{"__ignoreMap":97},[14,130,131],{},"Or manually add to Claude Code:",[91,133,136],{"className":134,"code":135,"language":96,"meta":97},[94],"claude mcp add gitnexus -- npx -y gitnexus@latest mcp\n",[27,137,135],{"__ignoreMap":97},[14,139,140],{},"This exposes 7 MCP tools:",[142,143,144,157],"table",{},[145,146,147],"thead",{},[148,149,150,154],"tr",{},[151,152,153],"th",{},"Tool",[151,155,156],{},"Purpose",[158,159,160,171,181,191,201,211,221],"tbody",{},[148,161,162,168],{},[163,164,165],"td",{},[27,166,167],{},"list_repos",[163,169,170],{},"Discover all indexed repos",[148,172,173,178],{},[163,174,175],{},[27,176,177],{},"query",[163,179,180],{},"Hybrid search (BM25 + semantic + RRF)",[148,182,183,188],{},[163,184,185],{},[27,186,187],{},"context",[163,189,190],{},"360-degree symbol view with categorized references",[148,192,193,198],{},[163,194,195],{},[27,196,197],{},"impact",[163,199,200],{},"Blast radius analysis with depth grouping",[148,202,203,208],{},[163,204,205],{},[27,206,207],{},"detect_changes",[163,209,210],{},"Git-diff impact mapping",[148,212,213,218],{},[163,214,215],{},[27,216,217],{},"rename",[163,219,220],{},"Multi-file coordinated rename",[148,222,223,228],{},[163,224,225],{},[27,226,227],{},"cypher",[163,229,230],{},"Raw Cypher graph queries",[14,232,233,234,237],{},"MCP Resources available via ",[27,235,236],{},"gitnexus:\u002F\u002F"," URI scheme:",[142,239,240,250],{},[145,241,242],{},[148,243,244,247],{},[151,245,246],{},"Resource",[151,248,249],{},"Description",[158,251,252,262,272,282,292],{},[148,253,254,259],{},[163,255,256],{},[27,257,258],{},"gitnexus:\u002F\u002Frepos",[163,260,261],{},"All indexed repos",[148,263,264,269],{},[163,265,266],{},[27,267,268],{},"gitnexus:\u002F\u002Frepo\u002F{name}\u002Fcontext",[163,270,271],{},"Codebase stats, staleness",[148,273,274,279],{},[163,275,276],{},[27,277,278],{},"gitnexus:\u002F\u002Frepo\u002F{name}\u002Fclusters",[163,280,281],{},"Functional clusters with cohesion",[148,283,284,289],{},[163,285,286],{},[27,287,288],{},"gitnexus:\u002F\u002Frepo\u002F{name}\u002Fprocesses",[163,290,291],{},"Execution flows",[148,293,294,299],{},[163,295,296],{},[27,297,298],{},"gitnexus:\u002F\u002Frepo\u002F{name}\u002Fschema",[163,300,301],{},"Graph schema for Cypher queries",[86,303,305],{"id":304},"analyze-codebase","Analyze Codebase",[91,307,310],{"className":308,"code":309,"language":96,"meta":97},[94],"# Standard analysis with embeddings (skips if git commit unchanged)\nnpx gitnexus analyze --embeddings\n\n# Force full re-index with embeddings\nnpx gitnexus analyze --embeddings --force\n\n# With generated skill files (Leiden clustering)\nnpx gitnexus analyze --embeddings --skills\n\n# Full analysis: embeddings + skills + verbose\nnpx gitnexus analyze --embeddings --skills --verbose\n\n# Analyze a specific path\nnpx gitnexus analyze --embeddings \u002Fpath\u002Fto\u002Frepo\n",[27,311,309],{"__ignoreMap":97},[14,313,314,317,318,321],{},[22,315,316],{},"IMPORTANT:"," Always use ",[27,319,320],{},"--embeddings",". Semantic search is essential for meaningful results — BM25-only mode misses concept-level matches.",[14,323,324],{},[22,325,326],{},"Flags explained:",[48,328,329,338,344,353],{},[51,330,331,333,334,337],{},[27,332,320],{},": ",[22,335,336],{},"(always use)"," Generate 384-dim vectors via snowflake-arctic-embed-xs (local, no API key). Enables semantic search in hybrid mode",[51,339,340,343],{},[27,341,342],{},"--force",": Force full re-index, ignoring commit check",[51,345,346,349,350],{},[27,347,348],{},"--skills",": Generate repo-specific skill files via Leiden clustering to ",[27,351,352],{},".claude\u002Fskills\u002Fgenerated\u002F",[51,354,355,358],{},[27,356,357],{},"--verbose",": Show skipped files during analysis",[14,360,361,364,365,368,369,371],{},[22,362,363],{},"Smart skip:"," GitNexus checks ",[27,366,367],{},".gitnexus\u002Fmeta.json"," for the current git commit hash. If unchanged, it skips re-indexing. Use ",[27,370,342],{}," to override.",[86,373,375],{"id":374},"update-index-after-code-changes","Update Index (After Code Changes)",[91,377,380],{"className":378,"code":379,"language":96,"meta":97},[94],"# Re-analyze with embeddings (auto-detects changes via git commit hash)\nnpx gitnexus analyze --embeddings\n\n# Force full rebuild with embeddings\nnpx gitnexus analyze --embeddings --force\n",[27,381,379],{"__ignoreMap":97},[86,383,385],{"id":384},"keep-the-index-fresh-with-local-git-hooks","Keep the Index Fresh with Local Git Hooks",[14,387,388],{},"Use this only when the user explicitly wants automatic GitNexus refresh tied to git operations.",[390,391,393],"h4",{"id":392},"rules","Rules",[48,395,396,403,414,421,424],{},[51,397,398,399,402],{},"Use ",[22,400,401],{},"git hooks only"," for this workflow.",[51,404,405,406,409,410,413],{},"Do ",[22,407,408],{},"not"," use Claude ",[27,411,412],{},"PostToolUse"," hooks for this auto-refresh workflow.",[51,415,416,417,420],{},"Restrict automatic refresh to the ",[27,418,419],{},"master"," branch only.",[51,422,423],{},"Run refresh asynchronously so git operations stay responsive.",[51,425,426],{},"Use a lock directory and a log file so concurrent triggers do not pile up silently.",[390,428,430],{"id":429},"recommended-hooks","Recommended hooks",[48,432,433,438,443],{},[51,434,435],{},[27,436,437],{},"post-commit",[51,439,440],{},[27,441,442],{},"post-merge",[51,444,445],{},[27,446,447],{},"post-checkout",[390,449,451],{"id":450},"recommended-behavior","Recommended behavior",[453,454,455,465,471,476,483,489],"ol",{},[51,456,457,458,461,462],{},"Resolve ",[27,459,460],{},"repo_root"," with ",[27,463,464],{},"git rev-parse --show-toplevel",[51,466,467,468],{},"Resolve current branch with ",[27,469,470],{},"git rev-parse --abbrev-ref HEAD",[51,472,473,474],{},"Skip unless branch is exactly ",[27,475,419],{},[51,477,478,479,482],{},"Start ",[27,480,481],{},"npx gitnexus analyze --embeddings"," in background",[51,484,485,486],{},"Use a lockdir such as ",[27,487,488],{},".git\u002Fgitnexus-refresh.lock",[51,490,491,492],{},"Append output to a log such as ",[27,493,494],{},".git\u002Fgitnexus-hooks.log",[390,496,498],{"id":497},"example-pattern","Example pattern",[91,500,503],{"className":501,"code":502,"language":96,"meta":97},[94],"repo_root=$(git rev-parse --show-toplevel 2>\u002Fdev\u002Fnull)\nbranch=$(git rev-parse --abbrev-ref HEAD 2>\u002Fdev\u002Fnull)\n\nif [ \"$branch\" = \"master\" ] && [ -n \"$repo_root\" ] && command -v npx >\u002Fdev\u002Fnull 2>&1; then\n    nohup sh -c '\n        cd \"$1\" || exit 1\n        lockdir=\".git\u002Fgitnexus-refresh.lock\"\n        if mkdir \"$lockdir\" 2>\u002Fdev\u002Fnull; then\n            trap \"rmdir \\\"$lockdir\\\"\" EXIT\n            npx gitnexus analyze --embeddings >> .git\u002Fgitnexus-hooks.log 2>&1\n        fi\n    ' sh \"$repo_root\" >\u002Fdev\u002Fnull 2>&1 &\nfi\n",[27,504,502],{"__ignoreMap":97},[390,506,508],{"id":507},"verification","Verification",[48,510,511,522,528],{},[51,512,513,514,516,517,519,520],{},"On a non-",[27,515,419],{}," branch, triggering the hook should ",[22,518,408],{}," create ",[27,521,494],{},[51,523,524,525,527],{},"On ",[27,526,419],{},", the hook should create or append to the log",[51,529,530,531,534],{},"Hook files must be executable (",[27,532,533],{},"chmod +x",")",[390,536,538],{"id":537},"gotchas","Gotchas",[48,540,541,547],{},[51,542,543,544],{},"This workflow is ",[22,545,546],{},"master-only",[51,548,549,550,553],{},"Git hooks are local to ",[27,551,552],{},".git\u002Fhooks\u002F"," and are not shared by commit unless separately distributed",[86,555,557],{"id":556},"clean-delete-index","Clean \u002F Delete Index",[91,559,562],{"className":560,"code":561,"language":96,"meta":97},[94],"# Delete index for current repo\nnpx gitnexus clean\n\n# Delete ALL indexes\nnpx gitnexus clean --all --force\n",[27,563,561],{"__ignoreMap":97},[86,565,567],{"id":566},"generate-wiki-docs","Generate Wiki Docs",[91,569,572],{"className":570,"code":571,"language":96,"meta":97},[94],"# Generate LLM-powered docs from the knowledge graph\nnpx gitnexus wiki\n\n# With custom model\nnpx gitnexus wiki --model gpt-4o-mini\n\n# With local LLM (e.g., Ollama)\nnpx gitnexus wiki --base-url http:\u002F\u002Flocalhost:11434\u002Fv1\n",[27,573,571],{"__ignoreMap":97},[43,575,577],{"id":576},"what-gitnexus-produces","What GitNexus Produces",[86,579,581],{"id":580},"_6-phase-pipeline","6-Phase Pipeline",[453,583,584,590,596,602,608,614],{},[51,585,586,589],{},[22,587,588],{},"Structure"," — File tree and folder relationships",[51,591,592,595],{},[22,593,594],{},"Parsing"," — Tree-sitter AST: functions, classes, methods, interfaces (13 languages)",[51,597,598,601],{},[22,599,600],{},"Resolution"," — Cross-file import\u002Fcall resolution with language-aware logic",[51,603,604,607],{},[22,605,606],{},"Clustering"," — Leiden algorithm community detection with cohesion scoring",[51,609,610,613],{},[22,611,612],{},"Flow Tracing"," — Execution paths from entry points",[51,615,616,619],{},[22,617,618],{},"Indexing"," — Hybrid search (BM25 + semantic HNSW + RRF fusion)",[86,621,623],{"id":622},"output-files","Output Files",[91,625,630],{"className":626,"code":628,"language":629},[627],"language-text",".gitnexus\u002F                  # Per-repo index (auto-added to .gitignore)\n├── kuzu\u002F                   # KuzuDB property graph database\n└── meta.json               # Commit hash, timestamp, node\u002Fedge counts\n\n~\u002F.gitnexus\u002F\n└── registry.json           # Maps repo names to index paths\n\n# Generated context files (in repo root):\nAGENTS.md                   # Agent context file\nCLAUDE.md                   # Claude-specific context\n\n# With --skills flag:\n.claude\u002Fskills\u002Fgenerated\u002F   # One SKILL.md per functional area\n","text",[27,631,628],{"__ignoreMap":97},[86,633,635],{"id":634},"embedding-details","Embedding Details",[48,637,638,644,650,656],{},[51,639,640,643],{},[22,641,642],{},"Model",": snowflake-arctic-embed-xs (384-dimensional vectors)",[51,645,646,649],{},[22,647,648],{},"Runtime",": ONNX via @huggingface\u002Ftransformers (local, no API key)",[51,651,652,655],{},[22,653,654],{},"GPU support",": CUDA\u002FMetal acceleration when available",[51,657,658,661],{},[22,659,660],{},"Storage",": Stored in KuzuDB with HNSW index for approximate nearest-neighbor search",[14,663,664],{},"Embeddings are entirely local. No cloud service, no API key needed.",[14,666,667,672],{},[22,668,669,670],{},"Always use ",[27,671,320],{}," — semantic search is the primary value of GitNexus. Without embeddings, you lose concept-level search (\"find auth patterns\", \"error handling strategy\") and hybrid ranking quality degrades significantly.",[86,674,676],{"id":675},"supported-languages","Supported Languages",[14,678,679],{},"TypeScript, JavaScript, Python, Rust, Go, Java, C, C++, C#, Ruby, PHP, Swift, Kotlin (13 languages via tree-sitter).",[43,681,683],{"id":682},"integration-with-codebase-oracle","Integration with Codebase Oracle",[14,685,686,687,689],{},"After running ",[27,688,481],{},", use the doc-writer skill to write documentation:",[453,691,692,697],{},[51,693,694,696],{},[27,695,481],{}," — builds knowledge graph (always with embeddings)",[51,698,699,702],{},[27,700,701],{},"\u002Faio-codebase-oracle:doc-writer"," — Oracle reads the graph and writes all docs",[14,704,705,706,709,710,713],{},"GitNexus provides the ",[22,707,708],{},"knowledge graph"," (structure, dependencies, clusters, flows, search). Oracle provides the ",[22,711,712],{},"qualitative analysis"," (design rationale, failure modes, decision guidance).",[43,715,717],{"id":716},"troubleshooting","Troubleshooting",[142,719,720,730],{},[145,721,722],{},[148,723,724,727],{},[151,725,726],{},"Problem",[151,728,729],{},"Solution",[158,731,732,742,753,768,780,788,801,812,827,838],{},[148,733,734,739],{},[163,735,736],{},[27,737,738],{},"npx gitnexus: command not found",[163,740,741],{},"Ensure Node.js >= 18 is installed",[148,743,744,747],{},[163,745,746],{},"Analysis seems stuck",[163,748,749,750,752],{},"Large codebases take time. GitNexus auto-allocates 8GB heap. Use ",[27,751,357],{}," to monitor progress",[148,754,755,761],{},[163,756,757,760],{},[27,758,759],{},"gitnexus status"," shows stale",[163,762,763,764,767],{},"Run ",[27,765,766],{},"npx gitnexus analyze"," to re-index",[148,769,770,773],{},[163,771,772],{},"MCP tools not showing up",[163,774,775,776,779],{},"Re-run ",[27,777,778],{},"npx gitnexus setup"," or manually add MCP server",[148,781,782,785],{},[163,783,784],{},"Embedding generation slow",[163,786,787],{},"Normal for first run; subsequent runs are faster. Do not skip embeddings",[148,789,790,793],{},[163,791,792],{},"Want to start fresh",[163,794,795,798,799],{},[27,796,797],{},"npx gitnexus clean"," then ",[27,800,481],{},[148,802,803,806],{},[163,804,805],{},"Index exists but queries empty",[163,807,808,809,811],{},"Git commit unchanged — use ",[27,810,342],{}," to rebuild",[148,813,814,820],{},[163,815,816,819],{},[27,817,818],{},".gitnexus\u002F"," in git",[163,821,822,823,826],{},"GitNexus auto-adds to ",[27,824,825],{},".gitignore",". If not, add it manually",[148,828,829,832],{},[163,830,831],{},"Multiple repos, single MCP",[163,833,834,835],{},"GitNexus MCP server auto-routes to all indexed repos via ",[27,836,837],{},"~\u002F.gitnexus\u002Fregistry.json",[148,839,840,843],{},[163,841,842],{},"Auto-refresh not running",[163,844,845,846,848,849],{},"Confirm you are on ",[27,847,419],{},", hooks are executable, and check ",[27,850,494],{},{"title":97,"searchDepth":852,"depth":852,"links":853},2,[854,855,866,872,873],{"id":45,"depth":852,"text":46},{"id":83,"depth":852,"text":84,"children":856},[857,859,860,861,862,863,864,865],{"id":88,"depth":858,"text":89},3,{"id":102,"depth":858,"text":103},{"id":118,"depth":858,"text":119},{"id":304,"depth":858,"text":305},{"id":374,"depth":858,"text":375},{"id":384,"depth":858,"text":385},{"id":556,"depth":858,"text":557},{"id":566,"depth":858,"text":567},{"id":576,"depth":852,"text":577,"children":867},[868,869,870,871],{"id":580,"depth":858,"text":581},{"id":622,"depth":858,"text":623},{"id":634,"depth":858,"text":635},{"id":675,"depth":858,"text":676},{"id":682,"depth":852,"text":683},{"id":716,"depth":852,"text":717},"Install, configure, and manage the GitNexus code intelligence engine — index codebase, setup MCP, check status, troubleshoot, and document local git-hook auto-refresh for master-only workflows.","skill","md",{},true,"\u002Fplugins\u002Faio-planning\u002Faio-gitnexus",{"title":5,"description":874},"plugins\u002Faio-planning\u002Faio-gitnexus","NkUqehrDYxNQsUqjIT4DWWCfwqIL7vMJz3221s44ngQ",[],1779712313589]