{
"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": "79c4d9008783db3f2749a4a93e6d2028794c0e9b3b5bb80ca452a73eb1240eef",
"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": "13c6e254a695c8dca3ea53fdd18b8a7fa5aee23dda156232ff77d5404d4461e9",
"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": []
}