apogee-manifest¶
Static codebase analysis producing scored JSON manifests and a DuckDB Code Property Graph. Parses 8 languages via tree-sitter.
generate_manifest, rescore_manifest, summarize_manifest, get_manifest_contextjust install (builds from manifest/generator/)apogee-manifest --repo . --label current
The Rust CLI (apogee-manifest) is the sole implementation. It supports
multi-branch orchestration, incremental history indexing, and skeleton builds.
Description¶
The manifest generator performs static analysis of a codebase to
produce a scored JSON manifest and a Code Property Graph (CPG)
stored in DuckDB. It walks the file tree, parses source files
via tree-sitter across 8 languages (C, C++, Python, Go, Rust,
Java, JavaScript, TypeScript), extracts structural nodes and
edges, and persists them to .apogee/cpg.duckdb.
The output includes:
Manifest JSON: metadata, file inventory, symbols, relationships, scores, AI regrade prompts, recommendations
DuckDB CPG: nodes (functions, classes, variables, calls), edges (calls, contains, data_flows_to, arg_passes_to), scope summaries (13 safety flags per function), embeddings, and body content (Blake3-hashed)
The Rust CLI (apogee-manifest) supports incremental branch loading
(SQL-copy unchanged data from a previously-indexed branch),
skeleton builds for historical commits, and per-subsystem
history indexing.
Configuration (Rust CLI)¶
Flag |
Description |
Default |
|---|---|---|
|
Repository root to analyze |
|
|
Human-readable label for the manifest |
|
|
Skip files larger than this |
|
|
Git ref to index (reads via git show) |
HEAD |
|
Branch name to record in CPG metadata |
(auto) |
|
Skip function body hashing |
(bodies captured) |
|
Build overlay from uncommitted state |
(off) |
|
Multi-branch indexing mode |
(off) |
|
Branch spec for orchestration ( |
(none) |
|
Auto-enumerate remote branches for orchestration |
(off) |
|
Limit |
(all remotes) |
|
Skip branches older than N days |
(no limit) |
|
Exclude branches matching glob (repeatable) |
(none) |
|
Index N per-subsystem historical commits |
(off) |
|
Index tagged releases matching glob |
(off) |
|
Only index history at or after this ref/tag |
(no cutoff) |
|
Focus history indexing on a specific path |
(per-subsystem auto) |
Reference¶
Scoring formula
Three component scores weighted into an overall score:
Dimension |
Calculation |
Weight |
|---|---|---|
|
Files parsed successfully / parse candidates |
0.4 |
|
Files with symbols / parseable files |
0.4 |
|
Files with dependency edges / relationship-capable files |
0.2 |
|
Weighted combination of the three component scores |
(derived) |
When overall_score >= 95, the manifest is considered high-coverage.
Rust crates (manifest/generator/):
apogee-tree— tree-sitter CPG library (8 language visitors, node/edge extraction, body hashing)apogee-analyze— git operations, file walking, import/call extractionapogee-graph— DuckDB store, delta writer, incremental branch loading, embedding computationapogee-cli— CLI entry point, orchestrator, builder
Examples¶
# Generate a manifest
apogee-manifest --repo . --label current
# Multi-branch indexing
apogee-manifest --repo . --orchestrate \
--orchestrate-branch main=origin/main \
--orchestrate-branch feature=origin/feature-x
# Custom label and byte limit
apogee-manifest --repo ~/projects/foo --label production --max-bytes 1048576
Note
This page is also available as a man page: man apogee-manifest
See Also¶
CPG Engine — Code Property Graph built from manifest data
apogee-mcp — MCP tools for manifest operations (
generate_manifest,rescore_manifest,summarize_manifest,get_manifest_context)