remem-ai 0.5.151

Local-first coding agent memory for Claude Code and OpenAI Codex
Documentation
{
  "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": []
}