Rationale
A brief is the only record of what was asked for. The repository records what it decided —
in its rules, its decisions and its tests — and for a long time it recorded nothing of what
it was told to do. Every pack that drove a campaign here lived in one person's ~/Downloads
or under the repository's own ignored tmp/, which is to say it survived on one disk, in a
directory git was instructed not to see.
That is a gap of a particular kind. The repository can prove what it does; it could not show why any of it was started. A reader who wants to know whether a subsystem answers what was actually asked has nothing to compare it against, and the person best placed to notice a half-answered brief is the one who can no longer find the brief.
Keeping the packs fixes that only if they are kept honestly, and there are exactly two ways a provenance directory stops being provenance:
- A brief is edited. Not maliciously: a pack is tidied to match what the repository later did, and the record of a wrong turn becomes a record of the right one. What made the history worth keeping was that it disagreed with the outcome.
- A pack is incomplete. A copy interrupted, a file added afterwards, a phase quietly dropped. It still looks like a pack, and nothing about reading it says which half is missing.
campaigns/MANIFEST.sha256 is what makes either checkable, and a manifest nothing verifies is
a file. scripts/ci/campaigns-check decides the set in both directions — every declared file
present with its bytes, and every present file declared — because a checker that walks only the
manifest passes a tree somebody added a file to, which is the one-sided shape this repository
has rediscovered more than once. test/cases/340_a_brief_is_kept_as_received.sh plants all of
it: an edited brief, an undeclared file, a lost file, an unlisted pack, an index that promises a
pack the tree does not hold, and a manifest that is missing altogether.
What this rule does not say
It says nothing about what a pack contains, whether its phases were completed, or whether its plan was any good. A pack is not evidence that what it asked for exists — the gates are. Where a brief and the tree disagree, the tree is right, and the brief is the reason somebody once thought otherwise.