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
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.