Problem
Today the engine is library-only: every user writes a Python script to wire steps together. For the common case (write layer-1 note, refresh layer-2 state, git publish) that is boilerplate, and boilerplate is where handover setups silently drift apart across machines.
Proposal
A run subcommand driven by a checked-in config file (.agent-handover/config.toml) declaring the memory root, the backend (git, paths) and the step pipeline. Then agent-handover run executes the standard pipeline under the existing checkpoint, and agent-handover run --dry-run prints the plan. Config lives in the repo, so all machines and agents share the same handover definition.
Acceptance criteria
TOML parsing with stdlib tomllib (3.11+) and a clear error on 3.10; run reuses HandoverEngine unchanged; --dry-run mode; docs and tests for a minimal config.
Problem
Today the engine is library-only: every user writes a Python script to wire steps together. For the common case (write layer-1 note, refresh layer-2 state, git publish) that is boilerplate, and boilerplate is where handover setups silently drift apart across machines.
Proposal
A run subcommand driven by a checked-in config file (.agent-handover/config.toml) declaring the memory root, the backend (git, paths) and the step pipeline. Then agent-handover run executes the standard pipeline under the existing checkpoint, and agent-handover run --dry-run prints the plan. Config lives in the repo, so all machines and agents share the same handover definition.
Acceptance criteria
TOML parsing with stdlib tomllib (3.11+) and a clear error on 3.10; run reuses HandoverEngine unchanged; --dry-run mode; docs and tests for a minimal config.