Initial POC: Developer Intelligence knowledge graph
- SQLite backend with file/repo/relationship entities - tree-sitter Go AST parser for deterministic import detection - Ollama doc generation with concurrent batch processing - MCP server (FastMCP) for Claude Code integration - Merge simulation with staleness cascade - Lazy refresh for stale relationship and repo docs - CLAUDE.md for agent context
This commit is contained in:
38
CLAUDE.md
Normal file
38
CLAUDE.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Developer Intelligence Knowledge Graph
|
||||
|
||||
This project contains a knowledge graph of LLM-generated documentation for a Go codebase. Instead of reading raw source files, query the knowledge graph via MCP tools.
|
||||
|
||||
## How to use
|
||||
|
||||
**Always prefer the knowledge graph over reading raw files.** The graph contains pre-generated English documentation for every file and relationship in the codebase.
|
||||
|
||||
### Query patterns
|
||||
|
||||
- "What does X do?" → `get_file_doc("path/to/file.go")`
|
||||
- "How do X and Y interact?" → `get_relationship("file_a.go", "file_b.go")`
|
||||
- "What's this project about?" → `get_repo_overview()`
|
||||
- "What depends on X?" → `get_dependents("path/to/file.go")`
|
||||
- "What does X depend on?" → `get_dependencies("path/to/file.go")`
|
||||
- "Find anything about routing" → `search_docs("routing")`
|
||||
- "What's outdated?" → `get_stale_docs()`
|
||||
- "How big is the graph?" → `get_graph_stats()`
|
||||
|
||||
### Schema
|
||||
|
||||
The knowledge graph has three entity types:
|
||||
|
||||
- **File** — one per source file. Has `documentation` (English description of what the file does), `staleness` (fresh or stale), `prev_documentation` (previous version after a merge).
|
||||
- **Repo** — one per repository. Has `documentation` (project-level summary composed from file docs).
|
||||
- **Relationship** — import edges between files. Has `documentation` (how the two files interact), `staleness`.
|
||||
|
||||
### Staleness
|
||||
|
||||
When a file changes, its documentation is regenerated immediately. All downstream relationships and the repo summary are marked **stale** — meaning the code has changed but the doc hasn't been regenerated yet. Stale docs are still returned but flagged with `[STALE]`.
|
||||
|
||||
### Tips
|
||||
|
||||
- Start broad (`get_repo_overview`) then drill into specifics (`get_file_doc`, `get_dependents`).
|
||||
- Use `search_docs` for concept-level queries ("middleware", "authentication", "error handling").
|
||||
- If a doc says `[STALE]`, the underlying code changed since it was generated. Mention this to the user.
|
||||
- `get_dependents` is the impact analysis tool — "what breaks if I change this file?"
|
||||
- File paths are relative to the repo root (e.g., `echo.go`, `middleware/compress.go`).
|
||||
Reference in New Issue
Block a user