# df — example 4 — process show read-back + the show refusal surface (Axis 4) Task: exercise `process show` as the campaign-side twin (register a process, read it back, hand-extend with a gate stage, re-register), then probe the `show` refusal surface a headless author will actually hit: unknown id, a truncated/prefix id, and invocation outside a project. Binary @ a12617bb. ## process show read-back + closed loop (processes/df_proc_*.json) $ aura process register processes/df_proc_base.json registered process a2149b7c65467797...85cef (...) [exit 0] $ aura process show a2149b7c65467797...85cef [exit 0] {"format_version":1,"kind":"process","name":"df-proc-base",...,"pipeline": [{"block":"std::sweep",...},{"block":"std::walk_forward",...}]} # byte-identical to stored file; ends "}]}" — no trailing newline (#164) $ aura process register processes/df_proc_gated.json # + a std::gate stage registered process a4ad90f4d1380d69...c27 (...) [exit 0] ## refusal surface — INSIDE the project $ aura campaign show 0000...0000 (unknown 64-hex) [exit 1] aura: campaign 0000...0000 not found in the project store $ aura process show 0000...0000 (unknown 64-hex) [exit 1] aura: process 0000...0000 not found in the project store $ aura campaign show a72028e8 (a REAL registered id, truncated to 8) [exit 1] aura: campaign a72028e8 not found in the project store $ aura process show a2149b7c (truncated) [exit 1] aura: process a2149b7c not found in the project store The unknown-id refusal is clean and names id + store + exit 1 (WORKING). The truncated-id case is FRICTION: `a72028e8` is a real prefix of a registered campaign, yet the refusal is the flat "not found" — no hint that the full 64-hex content id is required, no "did you mean", and no pointer to `aura campaign runs` (which lists valid ids). Every family_id this surface prints is an 8-hex prefix, so an author will predictably paste one. (Contrast: `reproduce` gained prefix/name resolution in #298.) ## refusal surface — OUTSIDE any project (no Aura.toml up-tree) $ cd /tmp/no-project $ aura campaign show a72028e8b18ab...f4a1 (a valid id) [exit 1] aura: campaign a72028e8b18ab...f4a1 not found in the project store $ aura process show a2149b7c65467797...85cef [exit 1] aura: process a2149b7c... not found in the project store BUG (misleading diagnostic): outside a project there IS no project store to look in, yet the prose asserts "not found in the project store", blaming the id. It should degrade honestly the way `campaign validate` already does ("referential checks skipped (no Aura.toml found up from )"). A headless author in the wrong directory is told their id is unregistered when the real cause is "you are not in a project". Behaviour (exit 1 refusal) is correct — only the prose names a wrong cause.