Files
Aura/fieldtests/cycle-300-document-first/df_4_show_refusals.md
T
claude 63711a1d3a fieldtest: document-first — 4 examples, 7 findings
Downstream-author fieldtest of the #300 surface, public interface only,
real GER40 archive. All four axes hold: the closed
generate -> show -> hand-extend -> re-register -> run loop (2-cell
extended campaign), the typed stop grammar's clap rejections, bare
plateau's content-id identity with plateau:mean, and the show read-back
(byte-identical, no framing) with a clean unknown-id refusal.

Findings routed: 1 bug (show outside a project blames the id instead of
the missing Aura.toml — RED-first fix follows), 2 friction items filed
to the tracker (opaque process-document select refusal; no prefix-id
hint on show), 4 working (carry-on). The fieldtest spec survives
git-ignored as the next planning cycle's reference input.

refs #300
2026-07-21 13:16:59 +02:00

3.0 KiB

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.