Advertise the C29 authoring surfaces: description slot in introspect, op reference in help, guide-literal guard #323

Closed
opened 2026-07-23 20:59:26 +02:00 by claude · 2 comments
Collaborator

Fieldtest findings of the self-description cycle (#316, consumer-seat run 2026-07-23). The C29 gates work and their refusals are comprehensible, but the authoring side of the new surfaces is not yet advertised where a headless agent (#319) would look — three concrete gaps, the documentation half of which already landed with the cycle (guide op table, README op list, surface-neutral refusal hint):

  1. process/campaign introspect --unwired omit the description slot. Both listings enumerate every other slot — including optional ones (risk, cost) in per-knob detail — but not the C29 field itself. Add a slot line: description (optional, one-line meaning; C29-gated when present) to both document kinds.
  2. No binary surface names the op vocabulary. The op kinds (now nine, incl. doc) live only in repo docs; aura graph build --help / graph introspect should carry an op reference so the register refusal's fix is discoverable from the binary alone.
  3. The authoring-guide S0 worked literal has no drift guard. It broke silently against the required NodeSchema.doc (hard E0063 for anyone pasting it; fixed in the cycle) — compile the guide literal in a test (doctest or a fixture extraction) so the worked example cannot drift from the schema again.

All three serve the same promise the milestone closes on: the binary as the only always-present teacher.

Fieldtest findings of the self-description cycle (#316, consumer-seat run 2026-07-23). The C29 gates work and their refusals are comprehensible, but the *authoring* side of the new surfaces is not yet advertised where a headless agent (#319) would look — three concrete gaps, the documentation half of which already landed with the cycle (guide op table, README op list, surface-neutral refusal hint): 1. **`process`/`campaign introspect --unwired` omit the `description` slot.** Both listings enumerate every other slot — including optional ones (risk, cost) in per-knob detail — but not the C29 field itself. Add a slot line: `description (optional, one-line meaning; C29-gated when present)` to both document kinds. 2. **No binary surface names the op vocabulary.** The op kinds (now nine, incl. `doc`) live only in repo docs; `aura graph build --help` / `graph introspect` should carry an op reference so the register refusal's fix is discoverable from the binary alone. 3. **The authoring-guide S0 worked literal has no drift guard.** It broke silently against the required `NodeSchema.doc` (hard E0063 for anyone pasting it; fixed in the cycle) — compile the guide literal in a test (doctest or a fixture extraction) so the worked example cannot drift from the schema again. All three serve the same promise the milestone closes on: the binary as the only always-present teacher.
claude added this to the Self-description — every surface explains itself milestone 2026-07-23 20:59:26 +02:00
Author
Collaborator

Binary-only field evidence (milestone fieldtest, 2026-07-24)

The "Surface honesty on stderr" milestone fieldtest ran source-blind — knowledge floor = the release binary and its own help surfaces, per the user's 2026-07-23 direction. Directly relevant to this issue's ask:

  • aura graph build --help documents nothing about the stdin op-list. The fieldtester could author blueprints only by feeding malformed JSON and reading serde refusals; the op kinds (source|input|add|feed|connect|expose|tap|gang|doc) and per-op fields (op/type/role/kind/into/from/to/as/bind/text) are otherwise invisible from the binary.
  • Concrete ask this adds to the issue: an op reference under graph build --help (or a graph introspect --ops listing kinds + fields + one worked element each) is the missing piece that would have made blueprint authoring self-serve.

The adjacent silent-unknown-field defect found on the same runs is filed separately as #326 (a typo'd params instead of bind silently drops the binding).

## Binary-only field evidence (milestone fieldtest, 2026-07-24) The "Surface honesty on stderr" milestone fieldtest ran source-blind — knowledge floor = the release binary and its own help surfaces, per the user's 2026-07-23 direction. Directly relevant to this issue's ask: - `aura graph build --help` documents nothing about the stdin op-list. The fieldtester could author blueprints only by feeding malformed JSON and reading serde refusals; the op kinds (`source|input|add|feed|connect|expose|tap|gang|doc`) and per-op fields (`op/type/role/kind/into/from/to/as/bind/text`) are otherwise invisible from the binary. - Concrete ask this adds to the issue: an op reference under `graph build --help` (or a `graph introspect --ops` listing kinds + fields + one worked element each) is the missing piece that would have made blueprint authoring self-serve. The adjacent silent-unknown-field defect found on the same runs is filed separately as #326 (a typo'd `params` instead of `bind` silently drops the binding).
claude self-assigned this 2026-07-24 09:41:33 +02:00
Author
Collaborator

Shipped in the same commit as #315 (829a198, branch worktree-issue-315-help-self-description):

  1. process|campaign introspect --unwired enumerate the optional description envelope slot for both document kinds (absent-only, the risk/cost precedent). The risk/cost-bound e2e now also binds description, so its "no open slots" keeps meaning complete.
  2. aura graph build --help carries the op-list reference — all nine op kinds with fields and a worked element each (OP_REFERENCE lives beside OpDoc, one screen from the enum).
  3. The authoring guide's S0 worked literal is byte-pinned to the scaffold's LIB_RS template (rendered with the guide's my_lab namespace); the scaffold e2es compile that template for real, so the equality pin is a transitive compile guard — the literal can no longer drift silently from the schema.

closes #323 fires on the owner-ratified merge.

Shipped in the same commit as #315 (829a198, branch `worktree-issue-315-help-self-description`): 1. `process|campaign introspect --unwired` enumerate the optional `description` envelope slot for both document kinds (absent-only, the risk/cost precedent). The risk/cost-bound e2e now also binds `description`, so its "no open slots" keeps meaning *complete*. 2. `aura graph build --help` carries the op-list reference — all nine op kinds with fields and a worked element each (`OP_REFERENCE` lives beside `OpDoc`, one screen from the enum). 3. The authoring guide's S0 worked literal is byte-pinned to the scaffold's `LIB_RS` template (rendered with the guide's `my_lab` namespace); the scaffold e2es compile that template for real, so the equality pin is a transitive compile guard — the literal can no longer drift silently from the schema. `closes #323` fires on the owner-ratified merge.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#323