Development record
voyage
A voyage is the operations side of the lifeboat surface: the record of what abcd did, run by run. It is the verb to the lifeboat's noun — the lifeboat is what gets carried, the voyage is what we did to produce it. That distinction is load-bearing and is registered as such (adr-35, which supersedes adr-4).
A voyage lives at the operator level, never inside the source repository and therefore never committed:
~/.abcd.noindex/voyage/<source-root-sha>/disembark/history.jsonl # one line per disembark run
~/.abcd.noindex/voyage/<source-root-sha>/embark/provenance.json
~/.abcd.noindex/voyage/<source-root-sha>/embark/from/<timestamp>/
It is keyed on the source repository's root-commit SHA, matching the convention the history store
already uses. It sits outside the tree because a voyage records absolute source paths, and abcd's
own privacy-hygiene audit rule flags those in committed files — an in-tree voyage would have
made abcd fail its own audit. It also keeps disembark honest: the source repo is
read-only, so the only place a run can be recorded is here.
The log accumulates; the lifeboat does not. A lifeboat is the latest snapshot, regenerated in
place — there is never a lifeboat-v1/ beside a lifeboat-v2/. The history of how it came to
look that way lives in the voyage log.
Open question (adr-35): adr-35 registers
voyage/as the operations namespace only. It does not settle whether abcd still needs a term for the end-to-end project lifecycle (brief approval through final release) — the sense this entry previously carried, and the senseoracle("artefacts produced during a voyage") andphase("a full lifecycle arc") still lean on. Either a replacement term is coined for that arc, or those entries are re-authored to drop it. Naming it is a product decision and is not made here.
When to use
Use "voyage" for the operations namespace and its contents: the append-only log of disembark and
embark runs against a given source repository, and the provenance those runs leave behind. "The
voyage log says this lifeboat was packed from root SHA 3f9a… with the host oracle."
When NOT to use
Do not use "voyage" for the lifeboat itself — the artefact is the lifeboat, and conflating them loses the noun/verb split the two names exist to make. Do not use it for a "project" (too generic) or a "sprint" (a time box, not a record of runs).
Lifecycle
| Phase | Condition |
|---|---|
| Starts when | The first abcd disembark pack <source-repo> <dest> creates ~/.abcd.noindex/voyage/<source-root-sha>/ |
| Ends when | Only if the operator deletes it — the log is appended to, never rewritten or truncated |
Examples
- "Each
disembark packappends one line to the voyage log:manifest_sha256, the source's name and root SHA, the destination, and the file and byte counts; the file list stays in the lifeboat's own_provenance.json." - "The voyage is keyed on the root-commit SHA, so two clones of the same repository share one voyage."
Related terms
- record families — the one page that maps the record families and how they relate
- lifeboat — the artefact (noun); a voyage is the record of producing it (verb)
- disembark — the read-only, out-of-tree run that appends to the voyage log
- brief — the structure a disembark run grounds section by section; what it cannot ground is carried as coverage, not silently dropped
Frontmatter
| term | voyage |
|---|---|
| bounded_context | core |
| status | stable |
| aliases | voyage log, voyage namespace |
| definition | The operations namespace at `~/.abcd.noindex/voyage/<source-root-sha>/` — an append-only record of what abcd *did* to produce a lifeboat (every disembark and embark run), as against the lifeboat itself, which is what gets carried. |
.abcd/development/brief/glossary/core/voyage.md
open on GitHub ↗ · commit history ↗