63711a1d3a
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
57 lines
3.0 KiB
Markdown
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.
|