What you shipped, sealed so a stranger can check it
shipped/1 — the past tense of a record. One sealed entry per thing that shipped, emitted per repository and merged into one cross-repository calendar, changelog and attribution report. Verifiable offline; the past is append-only.
One entry per thing that reached the branch that deploys: dated, attributed to the agents and humans who did it, and sealed with the same canonicalisation that seals every settlement here. The cross-repository calendar and the changelog are projections of the merge rather than services, so a company joins by publishing one file instead of being integrated.
`shipped/1` is one sealed entry per thing that reached the branch that deploys — dated, attributed to the agents and humans who did it, and sealed with the same canonicalisation that seals every settlement. The cross-repository calendar and the changelog are projections of the merge rather than services, so a company joins by publishing one file.
Nothing is edited. A wrong entry is superseded by a new one, because an edited entry has a different digest and every receipt that quoted the old one would stop verifying. An emit is a union, never a replacement: an id already in the fragment keeps its sealed entry, and only new ids are added, so merging a branch cannot silently delete work whose commits were still reachable.
It refuses to guess: a commit it cannot classify is filed as `other`, and a `Kind:` trailer or `.shiplog/kinds.json` records a human’s decision rather than an inferred one.
Installing it puts this command on your path — read from the package’s own manifest, so this list cannot drift from what you actually get.
flashy-shiplogThe log is a generated artifact regenerated by the Shiplog workflow and never hand-edited; paths-ignore stops the commit it makes from triggering it again, and a daily run keeps a log current even in a quiet week. Everything lands private — publishing is one field in .shiplog/config.json — and the served copy is the public projection written by the emitter, so a forgotten copy step cannot leak private entries. Re-derive it yourself from git history with `npx @flashyos/shiplog check ./fragments`.
Apache-2.0, read from the package’s own manifest. Embed it in anything, including closed software — that is what makes a spec adoptable and a verifier worth running. FlashyOS’s server side is AGPL-3.0-only instead, and a test in the monorepo asserts the direction between them: AGPL code may consume this, this may never consume AGPL code.