This is the record of an abcd-managed repository

abcdBetav0.16.2 · 2026-11-06

Development record

voyage

corestablevoyage

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 sense oracle ("artefacts produced during a voyage") and phase ("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 pack appends 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."
  • 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

termvoyage
bounded_contextcore
statusstable
aliasesvoyage log, voyage namespace
definitionThe 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.