remem-ai 0.6.13

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": "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": []
}