Skip to content

ONT-3a: bindings gate emits pc_resolver/ghosts, spec probe reads pc_extract/unresolved — row cannot bind after #4431 #4454

Description

@noahgift

The ONT-3a done_when probe cannot pass at #4431's head ae1887db9, even after it merges.

The spec's normative probe is docs/specifications/paiml-ontology.md in paiml/infra, ONT-3a:

"$PV" lint contracts/ --gate bindings --format json >"$TMP/b.json" && json_object "$TMP/b.json" && jq -e '.pc_extract=="fired" and .unresolved==0 and .crates_scanned>1' "$TMP/b.json" >/dev/null && merged ONT-3a

I measured it with pv 0.69.3 built from ae1887db9 (fold B3, cf038d3), running pv lint contracts/ --gate bindings --format json in aprender at that head. It exits 0, and the output is:

{"pc_extract":null,"unresolved":null,"crates_scanned":7,"verdict":"Pass"}
top-level keys: allowlisted checked crates_scanned duration_ms extra files_parsed gate ghosts passed pc_resolver registries resolved stale_allowlist type verdict violations
pc_resolver="fired" ghosts=0 resolved=253

BindingsReport in crates/aprender-contracts/src/lint/bindings_gate.rs:60-73 names the positive control pc_resolver and the non-allowlisted unresolved count ghosts. The probe asks for pc_extract and unresolved, so jq -e is false and ONT-3a stays unbound. The other conjuncts are satisfied: JSON object, crates_scanned=7>1.

The same pre-probe of #4431's other rows at ae1887db9 (2c, 4e, 5, 9) shows only merged as false, which is expected before the rows exist. 4d and 8 are still being re-run.

Two possible fixes; the owner picks one:

  • aprender: emit pc_extract and unresolved (the spec's names) in the bindings report.
  • infra: a spec revision renaming the probe's fields. That goes through the ONT-001 spec process and the probe_sha/done-when-test suite.

Found by infra-ont 37f7875c while pre-probing #4431's ONT rows for their carriers.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions