|
1 | | -<p align="center"><img src=".github/assets/zentropy-banner.png" alt="index: Maps a multi-repo workspace in seconds on the nine-ecosystem reference tree it ships with (self-measured): nine ecosystems, dependency and symbol graphs, fully offline, zero dependencies." width="100%"></p> |
| 1 | +<p align="center"><img src="docs/art/index-header.svg" alt="index: map a workspace offline, and refute a claim the code does not support." width="100%"></p> |
2 | 2 |
|
3 | 3 | **Maps a multi-repo workspace in seconds on the nine-ecosystem reference tree it ships with (self-measured): nine ecosystems, dependency and symbol graphs, fully offline, zero dependencies.** |
4 | 4 |
|
@@ -43,6 +43,22 @@ New here? [`docs/INTRODUCTION.md`](docs/INTRODUCTION.md) is the ten-minute walkt |
43 | 43 |
|
44 | 44 | Every codebase has a shape. Past a handful of repos, that shape lives only in someone's head, and they are usually busy or already gone. `index` draws it for you: how your repositories depend on each other, what lives inside each one down to the symbol level, and the docs that explain why, as maps you can open, search, and re-derive. It reads nine ecosystems (Python, JavaScript and TypeScript, Rust, Go, Java, C#, Ruby, PHP, C and C++) from their manifests and their real imports, and it records each dependency edge with the file and line that shows it. Pure Python 3.11+ standard library, zero runtime dependencies. |
45 | 45 |
|
| 46 | +## How a claim is settled |
| 47 | + |
| 48 | +`index verify` answers a structural claim from the graph it extracted, not from |
| 49 | +a model's memory. This is the path one claim takes. |
| 50 | + |
| 51 | +<p align="center"><img src="docs/art/claim-oracle.svg" alt="Eight stages from workspace discovery to a rechecked certificate: discover, classify, graph, freshness, claim, ground, certificate, recheck. Fingerprints ask whether ground truth has moved, and a graph built over changed code is rebuilt before any claim is grounded against it. A claim is answered from the graph rather than from memory, ending as match, refuted or unverifiable." width="100%"></p> |
| 52 | + |
| 53 | +The triad here is deliberately not the one `index wiki --verify` reports. A |
| 54 | +sealed artifact can DRIFT away from a tree that moved underneath it. A claim |
| 55 | +cannot drift: either the graph carries the edge, or the graph is complete on |
| 56 | +that point and does not, which is REFUTED. UNVERIFIABLE is reserved for the case |
| 57 | +where the question itself falls outside what was scanned, such as an endpoint |
| 58 | +that is not a repository in the workspace. A MATCH on a dependency hands back |
| 59 | +the file and line of its strongest supporting edge, so the answer arrives with |
| 60 | +its witness rather than as an assertion you have to take on faith. |
| 61 | + |
46 | 62 | ## The surfaces, coolest first |
47 | 63 |
|
48 | 64 | **`index wiki`, the single-repo wiki.** Model-based wiki generators write confident prose about structure that is not there; repo packers dump source without comprehending it. `index wiki` takes the third path: it derives the wiki for one repo from the module and symbol graph it extracts itself, and generates no prose at all. You get an overview page, one page per module with imports, dependents, and cycle membership, one page per Python function, class, and method with its callers and callees, and an architecture diagram rendered from the real dependency graph. Point it at a git URL (`index wiki https://github.com/org/repo`) and it shallow-clones, derives, and cleans up, so you can read a repo you have not checked out. The artifact is commit-pinned and sealed, and `index wiki --verify` re-checks it against the current tree: MATCH, DRIFT, or UNVERIFIABLE, exit codes 0, 1, 2. |
|
0 commit comments