Indexing a Repository
Compile a Git repository — code, history, docs and dependencies — into a knowledge index.
Goal: a searchable, evidenced model of one repository.
Steps
cd /path/to/repo
ekos init
Edit ekos.toml so [observe] covers the repository root and skips everything that is not your source:
[observe]
paths = ["."] # keep "." — see the warning below
ignore-patterns = [".ekos", ".git", "target", "node_modules", ".venv", "venv", "site-packages", "__pycache__", "dist"]
ekos config preview-scan # counts what build would observe, reads nothing
ekos build && ekos recover && ekos resolve && ekos compile && ekos commit
Use
paths = ["."]. The Git observer only checks for a.gitdirectory directly under an observe path. Ifpathslists subdirectories, there are zero Git commits in the index and nothing warns you.Ignore patterns are directory names, not globs:
*.lockmatches nothing.ekos config validatewarns about this.
What you get
| Analyzer | Recovers |
|---|---|
| Rust / Python / JavaScript / Elixir / Perl | modules, symbols, imports, Calls, inheritance (Extends), doc comments, source spans |
| Python ORM | SQLAlchemy models as Table objects with same-file foreign keys |
crate_topology, cicd |
Cargo.toml crates and GitHub Actions workflows |
| dependency scan | declared dependencies as Technology objects |
| Git | commits and authors (Person) |
localdocs |
Markdown/PDF/DOCX/HTML sections, with heading-aware structure and links between documents |
Add GitHub issues and pull requests
Set environment variables before ekos build:
export EKOS_GITHUB_OWNER=alexeyban EKOS_GITHUB_REPO=EKOS
export EKOS_GITHUB_TOKEN=… # optional; raises rate limits
Verify
ekos query find "main"
ekos ledger status
Contamination check. If counts look far too large, something you did not mean to index was observed (virtualenvs and vendored code are the usual cause). Fix ignore-patterns, ekos clean, and rebuild.