{
"metadata": {
"corpus": "eval/extraction/corpus.json",
"corpus_version": "2026-06-12",
"description": "Deterministic extraction-quality corpus for observation and memory-candidate parser outputs.",
"cases": 2,
"transcript_events": 5
},
"metrics": {
"observation_precision": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"observation_recall": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"candidate_precision": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"candidate_recall": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"forbidden_observation_exclusion": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"forbidden_candidate_exclusion": {
"passed": 2,
"total": 2,
"rate": 1.0
},
"over_saved_predictions": 0,
"total_predictions": 4,
"over_save_penalty": 0.0,
"all_checks_passed": true
},
"cases": [
{
"id": "build-fix-loop-guard",
"transcript_events": 3,
"observation_request_sha256": "ded254888675feba15e8cc2fda35d5a29a81f8f4b248d4ce257e84cb02834c9f",
"candidate_request_sha256": "86bfd0c9a40cac8d1812a855f4deba14596028076b8fbf77222f3229920a2b0e",
"predicted_observations": [
{
"index": 0,
"observation_type": "decision",
"text": "After three consecutive failed build fixes on the same problem, stop and challenge the hypothesis before editing again.",
"confidence": 0.91
}
],
"predicted_candidates": [
{
"index": 0,
"scope": "project",
"memory_type": "lesson",
"topic_key": "build-fix-loop-guard",
"risk_class": "medium",
"text": "After three consecutive failed build fixes on the same problem, stop and challenge the hypothesis before editing again."
}
],
"missing_expected_observations": [],
"unexpected_observations": [],
"forbidden_observations": [],
"missing_expected_candidates": [],
"unexpected_candidates": [],
"forbidden_candidates": [],
"over_saved_predictions": 0,
"pass": true
},
{
"id": "automatic-capture-primary",
"transcript_events": 2,
"observation_request_sha256": "024b14719614bda0fed7abba0096cadfd171ee52c2c54d8bc89c80b48da7e552",
"candidate_request_sha256": "faff3362f097a4c7a50500cf8e657ffa11896502a9b839803859a00adbc9b5b9",
"predicted_observations": [
{
"index": 0,
"observation_type": "decision",
"text": "Memory capture must not depend on Codex voluntarily calling save_memory; automatic extraction is the primary channel and manual saves are only supplemental.",
"confidence": 0.95
}
],
"predicted_candidates": [
{
"index": 0,
"scope": "project",
"memory_type": "architecture",
"topic_key": "automatic-capture-primary",
"risk_class": "medium",
"text": "Memory capture must not depend on Codex voluntarily calling save_memory; automatic extraction is the primary channel and manual saves are supplemental."
}
],
"missing_expected_observations": [],
"unexpected_observations": [],
"forbidden_observations": [],
"missing_expected_candidates": [],
"unexpected_candidates": [],
"forbidden_candidates": [],
"over_saved_predictions": 0,
"pass": true
}
],
"failing_examples": []
}