Embedding-surface polish from the M4 milestone fieldtest: refusal prose, divergence-class doc, entry-point discoverability, scaffold path dep #349

Open
opened 2026-07-26 20:00:18 +02:00 by claude · 1 comment
Collaborator

Bundled friction findings from the "Safe to embed" milestone fieldtest (2026-07-26, corpus fieldtests/milestone-safe-to-embed/, replayable via m4_0_run_all.sh). None blocks the milestone promise — the bugs the same fieldtest found were fixed in-cycle.

  1. Open-blueprint refusal leaks a Debug struct through the library seam. run_signal_r on a blueprint with free knobs refuses with ParamArity { expected: 3, got: 0 } as the message — a Debug rendering, not prose. The CLI leg pre-validates and never shows it, but the embedding consumer (the seam this milestone built) sees it verbatim. Wanted: prose naming the open knobs, the same register style as every other refusal.

  2. --override refusal prose says "axis" on the exec leg. aura: axis nope.length: names no param … — correct on a campaign axis, but on exec --override the caller wrote an override, not an axis. The prose is shared with the sweep boundary (override_paths); wanted: caller-context wording (or neutral "override/param" phrasing) without forking the shared builder.

  3. The divergence exit class is documented only in C18. reproduce's not-all-identical exit 1 appears in no user-facing doc (guide/README); a consumer reading the exit-class passage cannot predict it. One clause in the guide's exit-class passage.

  4. No public doc names the embedding entry points. The fieldtester located run_signal_r/run_measurement/reproduce_family only via C28 + rustdoc spelunking. C30 states the consumption mechanism (path dep / rev pin) but nothing names the seam functions a World program starts from. Wanted: a short "embedding the engine" passage (README or project-layout) naming the entry points and pointing at their rustdoc.

  5. aura nodes new emits an ABSOLUTE engine path into the scaffolded Cargo.toml. Functional, but the scaffolded crate breaks the moment the checkout moves, and a committed fixture carries a dead path (the fieldtest corpus had to relativize by hand). Consider emitting a relative path when the target lies under the engine tree, falling back to absolute otherwise.

refs #296

Bundled friction findings from the "Safe to embed" milestone fieldtest (2026-07-26, corpus `fieldtests/milestone-safe-to-embed/`, replayable via `m4_0_run_all.sh`). None blocks the milestone promise — the bugs the same fieldtest found were fixed in-cycle. 1. **Open-blueprint refusal leaks a Debug struct through the library seam.** `run_signal_r` on a blueprint with free knobs refuses with `ParamArity { expected: 3, got: 0 }` as the message — a Debug rendering, not prose. The CLI leg pre-validates and never shows it, but the embedding consumer (the seam this milestone built) sees it verbatim. Wanted: prose naming the open knobs, the same register style as every other refusal. 2. **`--override` refusal prose says "axis" on the exec leg.** `aura: axis nope.length: names no param …` — correct on a campaign axis, but on `exec --override` the caller wrote an override, not an axis. The prose is shared with the sweep boundary (`override_paths`); wanted: caller-context wording (or neutral "override/param" phrasing) without forking the shared builder. 3. **The divergence exit class is documented only in C18.** `reproduce`'s not-all-identical exit 1 appears in no user-facing doc (guide/README); a consumer reading the exit-class passage cannot predict it. One clause in the guide's exit-class passage. 4. **No public doc names the embedding entry points.** The fieldtester located `run_signal_r`/`run_measurement`/`reproduce_family` only via C28 + rustdoc spelunking. C30 states the consumption *mechanism* (path dep / rev pin) but nothing names the seam functions a World program starts from. Wanted: a short "embedding the engine" passage (README or project-layout) naming the entry points and pointing at their rustdoc. 5. **`aura nodes new` emits an ABSOLUTE engine path into the scaffolded `Cargo.toml`.** Functional, but the scaffolded crate breaks the moment the checkout moves, and a committed fixture carries a dead path (the fieldtest corpus had to relativize by hand). Consider emitting a relative path when the target lies under the engine tree, falling back to absolute otherwise. refs #296
Author
Collaborator

Consolidation note (M4 merge, 2026-07-26)

Item 2 of this issue — the --override refusal saying "axis" on the exec
leg — is the same finding as #345 item 2, reached independently by the
harvest-2026-07-26 per-cycle fieldtest and by this milestone fieldtest. Two
source-blind runs hitting the same line is corroboration, not new scope: it
is one fix in the shared parse_override_tokens refusal seam, and both
items close with it.

Two further cross-issue pairs, recorded so a polish sweep does not touch the
same files twice:

  • Free-knob refusal seam — item 1 here (the ParamArity { .. } Debug
    rendering reaching the library consumer) and #345 item 1 (the refusal
    recommending the very flag the caller just used) are the same refusal seen
    from the two faces of C14: the library seam and the CLI leg.
  • aura nodes new scaffold emission — item 5 here (the absolute engine
    path written into the scaffolded Cargo.toml) and #346 item 5 (the
    missing cargo build hint on the success line) both edit the scaffolder's
    output.

Recorded at the M4 merge; no scope change to any of the three issues.

## Consolidation note (M4 merge, 2026-07-26) Item 2 of this issue — the `--override` refusal saying "axis" on the exec leg — is the same finding as **#345 item 2**, reached independently by the harvest-2026-07-26 per-cycle fieldtest and by this milestone fieldtest. Two source-blind runs hitting the same line is corroboration, not new scope: it is one fix in the shared `parse_override_tokens` refusal seam, and both items close with it. Two further cross-issue pairs, recorded so a polish sweep does not touch the same files twice: - **Free-knob refusal seam** — item 1 here (the `ParamArity { .. }` Debug rendering reaching the library consumer) and #345 item 1 (the refusal recommending the very flag the caller just used) are the same refusal seen from the two faces of C14: the library seam and the CLI leg. - **`aura nodes new` scaffold emission** — item 5 here (the absolute engine path written into the scaffolded `Cargo.toml`) and #346 item 5 (the missing `cargo build` hint on the success line) both edit the scaffolder's output. Recorded at the M4 merge; no scope change to any of the three issues.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#349