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

57 lines
3.0 KiB
Markdown

# 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
<cwd>)"). 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.