Configuration¶
Environment Variables¶
Variable |
Purpose |
Default |
|---|---|---|
|
Override project root for MCP server session |
Current directory |
|
Chain execution backend for the Python server (only |
|
|
Organization-level skill overlay path |
(unset) |
|
Team-level skill overlay path |
(unset) |
|
User-level skill overlay path |
(unset) |
|
Maximum CPUs for manifest generation |
(auto-detect) |
|
DuckDB memory limit (e.g. |
|
|
Unix nice level for manifest generation (0-19) |
|
|
Custom CI report JSON path |
|
Build Tasks¶
Apogee uses just as the build runner. Key tasks:
just test # Run unit tests
just test-all # Unit + integration tests
just build # Compile skill runtime
just docs # Build HTML documentation
just man # Build man pages
just pdf # Build PDF documentation
just docs-all # Build all three formats
just accept # Full acceptance gate
CI Integration¶
Apogee runs headless — no IDE required. The manifest generator and test runners work as standalone CLIs in any CI pipeline.
Quick setup: copy a CI template from examples/ci/:
GitLab CI: copy
examples/ci/.gitlab-ci.ymlto your repo rootGitHub Actions: copy
examples/ci/github-actions.ymlto.github/workflows/verify.yml
Verification bands control depth via the VERIFY_BAND env var:
Band |
What runs |
Coverage output |
|---|---|---|
|
Unit tests (quick mode) |
No |
|
Full unit + integration tests |
|
|
All above + adversarial lanes |
|
Headless CPG analysis in CI:
# Generate manifest and CPG database
apogee-manifest --repo . --label current
# Multi-branch indexing (compare feature vs main)
apogee-manifest --repo . --orchestrate \
--orchestrate-branch main=origin/main \
--orchestrate-branch feature=origin/feature-x
# Query the CPG database directly via DuckDB
duckdb .apogee/cpg.duckdb \
"SELECT name, file_path FROM nodes WHERE kind='function'"
The apogee-manifest CLI produces the same DuckDB database
that powers the MCP server’s 13 CPG tools. In CI, you can query it
directly with DuckDB SQL or feed the manifest JSON into downstream
reporting.
CI report output: set APOGEE_CI_REPORT_PATH to control where
the structured CI report is written (default:
apogee_artifacts/ci-run-report.json). The report includes
pass/fail counts, verification band, and proof-tier verdicts.
The templates respect the artifact privacy boundary —
apogee_artifacts/ is never uploaded.
See examples/ci/README.md for full band selection and coverage
output details.
Troubleshooting¶
MCP server won’t start / IDE can’t connect
Verify Python 3.10+:
python3 --versionVerify the server runs:
apogee-mcp(should block on stdin)Check IDE config: the server command must be the full path to
apogee-mcpor use the virtualenv’s PythonFor Cursor: check
.cursor/rules/apogee.mdcexistsFor Claude Code: check
CLAUDE.mdexists at repo root
``just install`` fails
Verify
justis installed:just --versionVerify
pipis available:python3 -m pip --versionCheck that
scripts/install_server.shis executableOn macOS:
xcode-select --installif C compiler is missing
Manifest generation produces empty results
Ensure the repo has committed files (uncommitted files need
--working-dirflag)Check
.apogee/manifest.tomlforexclude_patternsthat may be filtering too aggressivelyRun with
--jsonto see raw output:apogee-manifest --repo . --json
Compiled skills are stale
Run
just buildto recompile skillsRun
just checkto verify freshness without rebuildingIf the unit test runner reports stale skills,
just buildfixes it
CPG database errors
The CPG database is stored at
.apogee/cpg.duckdbDelete and regenerate:
rm .apogee/cpg.duckdb && apogee-manifest --repo .Memory issues: set
APOGEE_DUCKDB_MEMORY_LIMIT=4GB
See Also¶
Quickstart — install, bootstrap, first manifest
apogee-mcp — MCP server reference
apogee-manifest — manifest CLI reference