Configuration reference
This page is the comprehensive reference for the system’s configuration surface. For the operational guide on which knobs to use when, see cost and performance and review modes.
Configuration priority order (highest to lowest): CLI args → environment variables → defaults.
Environment variables
Section titled “Environment variables”| Variable | Type | Default | Used by | Purpose |
|---|---|---|---|---|
ELIFE_CORPUS_DIR | path | none | write, verify-refs, run | Where claim files are read/written |
ELIFE_EXTRACT_OUTPUT | path | ./out | extract | Where draft tables and intermediates land |
ELIFE_EXTRACT_MODEL_RESULTS | string | claude-sonnet-4-6 | extract, run, evaluate | Override Results-reader agent’s model |
ELIFE_EXTRACT_MODEL_CAPTION | string | claude-sonnet-4-6 | as above | Override Caption-reader agent’s model |
ELIFE_EXTRACT_MODEL_STRUCTURE | string | claude-sonnet-4-6 | as above | Override Structure-reader agent’s model |
ELIFE_EXTRACT_MODEL_RECONCILE | string | claude-opus-4-6 | as above | Override reconciliation + reviewer model |
VERTEX_PROJECT_ID | string | cr-mainen | all subcommands using LLMs | GCP project for Vertex AI Claude |
VERTEX_REGION | string | europe-west1 | all subcommands using LLMs | Vertex region |
GOOGLE_APPLICATION_CREDENTIALS | path | none | all subcommands using Vertex | Service account JSON for Vertex auth |
ANTHROPIC_API_KEY | string | none | all subcommands using LLMs (when Vertex isn’t configured) | Direct Anthropic API auth |
CLI flags by subcommand
Section titled “CLI flags by subcommand”extract flags
Section titled “extract flags”| Flag | Type | Default | Purpose |
|---|---|---|---|
--doi | string | (required) | eLife paper DOI |
--corpus-dir | path | env or required | Corpus root |
--output-dir | path | env or ./out | Where draft JSON lands |
--paper-slug | string | derived | Override slug |
--prompt-variant | string | default | Named directory under prompts/<variant>/ |
--reconcile-strategy | enum | confidence-tagged | confidence-tagged / union / intersection-only / majority-vote |
--max-claims | int | unlimited | Hard cap on per-paper claim count |
--no-retry-on-thin | flag | retry enabled | Disable retry when agent output looks thin |
--model-results | string | env or claude-sonnet-4-6 | Override Results-reader model |
--model-caption | string | env or default | Override Caption-reader model |
--model-structure | string | env or default | Override Structure-reader model |
--model-reconcile | string | env or claude-opus-4-6 | Override reconciliation model |
--vertex-project | string | env or cr-mainen | GCP project |
--vertex-region | string | env or europe-west1 | Vertex region |
write flags
Section titled “write flags”| Flag | Type | Default | Purpose |
|---|---|---|---|
--draft | path | (required) | Path to draft JSON from extract |
--corpus-dir | path | env or required | Where claim files land |
--review-mode | enum | interactive | interactive / external / auto-approve / dry-run |
verify-refs flags
Section titled “verify-refs flags”| Flag | Type | Default | Purpose |
|---|---|---|---|
--paper | string | none (sweeps all) | Single paper slug |
--corpus-dir | path | env or required | Corpus root |
--dry-run | flag | write enabled | Show resolutions without writing back |
run flags
Section titled “run flags”(Same as extract, plus implies --review-mode auto-approve for the write phase.)
evaluate flags
Section titled “evaluate flags”| Flag | Type | Default | Purpose |
|---|---|---|---|
--reference-dir | path | (required) | Curated reference corpus root |
--work-dir | path | (required) | Where per-paper artifacts and scorecards land |
--paper | string | mutually exclusive with —papers / —all | Single paper slug |
--papers | string | comma-separated list of paper slugs | |
--all | flag | mutually exclusive with above | Evaluate every paper-dir under reference-dir |
--review-mode | enum | external | external / auto-approve |
--skip-existing | flag | re-runs | Skip papers with existing scorecard.json |
--prompts-dir | path | package-local | Override prompts directory |
--prompt-variant | string | default | Named prompt variant |
| (model flags) | as in extract | — | Per-agent model overrides |
The Config dataclass
Section titled “The Config dataclass”All configuration resolution lives in elife_extract/config.py. The Config dataclass holds the resolved values:
@dataclassclass Config: model_results: str = DEFAULT_MODEL_RESULTS model_caption: str = DEFAULT_MODEL_CAPTION model_structure: str = DEFAULT_MODEL_STRUCTURE model_reconcile: str = DEFAULT_MODEL_RECONCILE
vertex_project: str = DEFAULT_VERTEX_PROJECT vertex_region: str = DEFAULT_VERTEX_REGION
corpus_dir: Path | None = None prompts_dir: Path | None = None output_dir: Path | None = None
prompt_variant: str = DEFAULT_PROMPT_VARIANT reconcile_strategy: str = "confidence-tagged" review_mode: str = "interactive"
max_claims: int | None = None retry_on_thin: bool = True
@classmethod def from_args(cls, args) -> "Config": """Build a Config from argparse Namespace, falling back to env then defaults.""" ...Each subcommand handler calls Config.from_args(args) to resolve the configuration; the resulting Config is passed to the per-step modules.
Default values
Section titled “Default values”DEFAULT_MODEL_RESULTS = "claude-sonnet-4-6"DEFAULT_MODEL_CAPTION = "claude-sonnet-4-6"DEFAULT_MODEL_STRUCTURE = "claude-sonnet-4-6"DEFAULT_MODEL_RECONCILE = "claude-opus-4-6"
DEFAULT_VERTEX_PROJECT = "cr-mainen"DEFAULT_VERTEX_REGION = "europe-west1"
DEFAULT_PROMPT_VARIANT = "default"These defaults reflect the empirically-validated configuration the 10-paper sweep used. Change at your own risk; re-run evaluate to confirm any default substitution doesn’t regress.
Implementation references
Section titled “Implementation references”elife_extract/config.py— theConfigdataclass and resolution logicelife_extract/cli.py— argparse definitions and per-subcommand argument lists
Next steps
Section titled “Next steps”- Cost and performance — operational guide on which configuration choices matter
- Review modes — when to use each — the most consequential configuration choice
- Adding a prompt variant — how the
--prompt-variantflag works