Problem
status --archive <slug> exists and works, but it is not listed in status --help's flag list, and after it runs the retirement cannot be committed through state commit:
spacedock status --workflow-dir <wf> --archive <slug>
archived: <state>/_archive/<slug>
spacedock state commit <slug> --workflow-dir <wf>
state commit: archived entity "<slug>" is dirty; archived scope is publish-only and
will not stage or commit it:
D <slug>/index.md
?? _archive/<slug>/index.md
So the move only becomes durable with a manual path-scoped git add -A <slug> _archive/<slug> && git commit in the state checkout. The dangerous part is not the extra command, it is that the verb reports success while leaving the state checkout dirty; an FO that trusts the output walks away with an uncommitted retirement.
Reproduction
- Entity at
<slug>/index.md in a split-root state checkout (no origin).
spacedock status --workflow-dir <wf> --archive <slug> → prints archived: …/_archive/<slug>.
spacedock state commit <slug> --workflow-dir <wf> → prints the refusal above, exit 0, nothing committed.
git -C <state> status --porcelain → deletion of the active path plus untracked archive path.
Expected
List the verb in status --help, and make the retirement durable: either --archive commits the move itself, or state commit learns the archived scope. A success message should not be followed by silently uncommitted state.
Context
Observed on spacedock 0.28.0-pre2+dev (contract 3, pi host) on 2026-09-14, four retirements in one session (superseded, never-delivered entities). merge guard --rework correctly clears a pending terminal approval and the mod-block, but it does not archive, so retiring an entity always ends in this hand-rolled commit.
Problem
status --archive <slug>exists and works, but it is not listed instatus --help's flag list, and after it runs the retirement cannot be committed throughstate commit:So the move only becomes durable with a manual path-scoped
git add -A <slug> _archive/<slug> && git commitin the state checkout. The dangerous part is not the extra command, it is that the verb reports success while leaving the state checkout dirty; an FO that trusts the output walks away with an uncommitted retirement.Reproduction
<slug>/index.mdin a split-root state checkout (no origin).spacedock status --workflow-dir <wf> --archive <slug>→ printsarchived: …/_archive/<slug>.spacedock state commit <slug> --workflow-dir <wf>→ prints the refusal above, exit 0, nothing committed.git -C <state> status --porcelain→ deletion of the active path plus untracked archive path.Expected
List the verb in
status --help, and make the retirement durable: either--archivecommits the move itself, orstate commitlearns the archived scope. A success message should not be followed by silently uncommitted state.Context
Observed on
spacedock 0.28.0-pre2+dev(contract 3,pihost) on 2026-09-14, four retirements in one session (superseded, never-delivered entities).merge guard --reworkcorrectly clears a pending terminal approval and the mod-block, but it does not archive, so retiring an entity always ends in this hand-rolled commit.