jsonl
{"kind":"meta","skill":"codanna","version":"1.0.0","updated":"2026-02","format":"markdown-with-embedded-jsonl"}
{"kind":"concept","id":"symbol_lookups","text":"Sub-10ms symbol lookups with memory-mapped caches"}
{"kind":"concept","id":"semantic_search","text":"Search by concept (\"where's the retry logic?\")"}
{"kind":"concept","id":"relationships","text":"Relationship tracking (call graphs, dependencies)"}
{"kind":"concept","id":"mcp","text":"MCP protocol for AI assistant integration"}
{"kind":"workflow","name":"setup","steps":["codanna init","codanna index src --progress","codanna serve --watch"]}
{"kind":"cmd","group":"core","commands":{"init":"Set up .codanna directory","index [PATH]":"Build searchable index","serve --watch":"Start MCP server with hot-reload"}}
{"kind":"cmd","group":"retrieve","commands":{"symbol <name>":"Find symbol by exact name","calls <name>":"What this function calls","callers <name>":"What calls this function","search <query>":"Full-text search","describe <name>":"Symbol information"}}
{"kind":"cmd","group":"mcp_cli","commands":{"find_symbol <name>":"Exact name lookup","search_symbols query:<text>":"Fuzzy text search","get_calls <name>":"Call graph outbound","find_callers <name>":"Call graph inbound","analyze_impact <name>":"Full dependency graph","semantic_search_docs query:<text>":"Semantic search","semantic_search_with_context query:<text>":"Search with relationships"}}
{"kind":"tool","name":"find_symbol","params":"<name>","purpose":"Exact symbol lookup"}
{"kind":"tool","name":"search_symbols","params":"query, kind, limit","purpose":"Fuzzy text search"}
{"kind":"tool","name":"get_calls","params":"<name> or symbol_id:N","purpose":"What this calls"}
{"kind":"tool","name":"find_callers","params":"<name> or symbol_id:N","purpose":"What calls this"}
{"kind":"tool","name":"analyze_impact","params":"<name> or symbol_id:N","purpose":"Full dependency analysis"}
{"kind":"tool","name":"semantic_search_docs","params":"query, limit","purpose":"Natural language search"}
{"kind":"tool","name":"semantic_search_with_context","params":"query","purpose":"Search with full context"}
{"kind":"tool","name":"search_documents","params":"query","purpose":"Search indexed docs"}
{"kind":"tool","name":"get_index_info","params":"none","purpose":"Index statistics"}
{"kind":"note","topic":"multirepo","items":["Each repo has its own .codanna/ directory","Each repo has its own .codannaignore file","MCP config per environment (Claude Code, OpenCode)"]}
{"kind":"cmd","group":"documents","commands":{"add-collection <NAME> <PATH>":"Add doc collection","index":"Index all collections","search <query>":"Search indexed docs"}}
{"kind":"config","files":{".codanna/settings.toml":"Main configuration",".codannaignore":"Exclude patterns (gitignore syntax)"}}
{"kind":"best_practice","id":"explore","text":"Start with semantic_search_with_context for exploration"}
{"kind":"best_practice","id":"exact","text":"Use find_symbol/search_symbols for exact lookups"}
{"kind":"best_practice","id":"hints","text":"Treat get_calls/find_callers/analyze_impact as hints (may be incomplete)"}
{"kind":"best_practice","id":"watch","text":"Use --watch for continuous MCP server during development"}
{"kind":"troubleshoot","issue":"Index not found","fix":"Run codanna index"}
{"kind":"troubleshoot","issue":"MCP not connecting","fix":"Check codanna serve is running"}
{"kind":"troubleshoot","issue":"Missing symbols","fix":"Check .codannaignore patterns"}