bd help --doc init-safety.
bd init flag safety contract.
Every bd init invocation resolves project_id from exactly one explicitly
named source (local reinit, remote adoption, or a fresh mint). When the
source is ambiguous, bd init refuses.
FLAG SURFACE
bd init Mint a new identity. Bootstraps from
origin if it has refs/dolt/data.
bd init —reinit-local Re-initialize local .beads/ over existing
local data. Does NOT authorize discarding
remote history. If origin has Dolt data
this will refuse — pair with
—discard-remote to override.
bd init —reinit-local \ Discard the remote’s Dolt history and
—discard-remote replace it with the local reinit. First
bd dolt push after this will be a
history-replacing force-push.
bd init —force Deprecated alias for —reinit-local.
Kept working for ≥2 releases.
bd init —from-jsonl Import from configured import.path. If
origin has Dolt data, this refuses unless
—discard-remote authorizes replacing that
remote history.
ADOPTING A REMOTE
If you want to use the remote’s existing history, use:
bd bootstrap
bd init will automatically suggest this when a remote is detected.
DESTROY-TOKEN (non-interactive only)
When running with no TTY (CI, agents, piped input), —discard-remote
requires an explicit —destroy-token value. The token format is:
DESTROY-<issue-prefix>
For example, if your issue prefix is “bd”, the token is “DESTROY-bd”:
bd init —reinit-local —discard-remote —destroy-token=DESTROY-bd
In interactive (TTY) mode you confirm via a typed prompt instead. The
token is not echoed by bd’s runtime error messages — this is a
deliberate guard against pattern-matched one-liners (see
engdocs/adr/0002-init-safety-invariants.md).
EXIT CODES
10 refused: remote has Dolt history and you selected local history
without —discard-remote
11 refused: existing local data and you declined the destroy confirm
12 refused: —discard-remote passed without a valid —destroy-token
(non-interactive mode)
RECOVERY
If you hit a refusal, see docs/recovery/init-safety.md for step-by-step recovery
playbooks for each exit code.
CLI Reference
bd init-safety
Explain bd init flag semantics and the destroy-token format
Generated from