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
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.mdin paiml/infra, ONT-3a:I measured it with pv 0.69.3 built from
ae1887db9(fold B3, cf038d3), runningpv lint contracts/ --gate bindings --format jsonin aprender at that head. It exits 0, and the output is:BindingsReportincrates/aprender-contracts/src/lint/bindings_gate.rs:60-73names the positive controlpc_resolverand the non-allowlisted unresolved countghosts. The probe asks forpc_extractandunresolved, sojq -eis 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 onlymergedas false, which is expected before the rows exist. 4d and 8 are still being re-run.Two possible fixes; the owner picks one:
pc_extractandunresolved(the spec's names) in the bindings report.done-when-testsuite.Found by infra-ont 37f7875c while pre-probing #4431's ONT rows for their carriers.
🤖 Generated with Claude Code