{
  "run_id": "memstrand--memstrand-claude-haiku-5-5-1792785875194590859",
  "checker": {
    "claims": [
      {
        "claim": "Hard scope isolation: a memory scoped to one task is not returned to an unrelated task",
        "command": "<guest-path> recall 'mini PC' --task disk-cleanup",
        "evidence": "(no memories found)\n",
        "expected": "(no memories found)",
        "input": "recall 'mini PC' under unrelated task disk-cleanup",
        "kind": "claim",
        "outcome": "Real input produced the expected result: (no memories found)",
        "returncode": 0,
        "source": "- Hard scope isolation \u2014 session/task/host is a filter applied before ranking, not a signal",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Search by meaning, not keywords",
        "command": "<guest-path> recall 'what is the small computer on my desk called?' --task homelab",
        "evidence": "cognita-pulse\n          id=mem:f5e07e3a1add4647  scope=homelab\n",
        "expected": "memory mentioning cognita-pulse is returned",
        "input": "what is the small computer on my desk called?",
        "kind": "claim",
        "outcome": "Real input produced the expected result: cognita-pulse",
        "returncode": 0,
        "source": "2. **Search by meaning**, not keywords.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Background scheduler periodically runs consolidate() (expire, decay, dedup, replay)",
        "command": "<guest-path> consolidate",
        "evidence": "{\n  \"expired\": 0,\n  \"edges_pruned\": 0,\n  \"duplicates_linked\": 0,\n  \"replayed\": 0,\n  \"distilled\": {\n    \"skipped\": \"local LLM unreachable\"\n  }\n}",
        "expected": "consolidation summary JSON printed, expired count reported",
        "input": "memstrand consolidate against MEMSTRAND_HOME store",
        "kind": "cycle",
        "method": "run-once: manual invocation of the same Memory.consolidate() via the CLI, no source edits",
        "outcome": "Triggered one cycle by hand (run-once: manual invocation of the same Memory.consolidate() via the CLI, no source edits; normal trigger: periodic background loop started by memstrand serve (consolidate_seconds)): {\n  \"expired\": 0,\n  \"edges_pruned\": 0,\n  \"duplicates_linked\": 0,\n  \"replayed\": 0,\n  \"distilled\": {\n    \"skipped\": \"local LLM unreachable\"\n  }\n}",
        "returncode": 0,
        "schedule": "periodic background loop started by memstrand serve (consolidate_seconds)",
        "source": "src/memstrand/server.py",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "mcp"
      ],
      "kind": "mcp",
      "scope": "product operation",
      "serverInfo": {
        "name": "memstrand",
        "version": ""
      },
      "tool_result": {
        "content": [
          {
            "text": "{\n  \"id\": \"mem:f5e07e3a1add4647\",\n  \"score\": 0.849128236279044,\n  \"category\": \"fact\",\n  \"content\": \"Chiran's mini PC is named cognita-pulse\",\n  \"provenance\": \"explicit_statement\",\n  \"confidence\": 0.95,\n  \"task_id\": \"homelab\",\n  \"scopes\": [\n    \"homelab\"\n  ],\n  \"tags\": [],\n  \"source_ref\": null,\n  \"contradictions\": []\n}",
            "type": "text"
          }
        ],
        "isError": false,
        "structuredContent": {
          "result": [
            {
              "category": "fact",
              "confidence": 0.95,
              "content": "Chiran's mini PC is named cognita-pulse",
              "contradictions": [],
              "id": "mem:f5e07e3a1add4647",
              "provenance": "explicit_statement",
              "scopes": [
                "homelab"
              ],
              "score": 0.849128236279044,
              "source_ref": null,
              "tags": [],
              "task_id": "homelab"
            }
          ]
        }
      },
      "tool_result_checked": true,
      "tool_schema_bytes": 10164,
      "tools": [
        "remember",
        "recall",
        "context",
        "answer",
        "scope",
        "update",
        "forget",
        "log_turn",
        "improve",
        "ingest",
        "stats"
      ],
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Acceptance rubric: remember, recall by meaning, and no cross-task leak against a persistent store",
        "command": "<guest-path> examples/quickstart.py",
        "deferred": false,
        "evidence": "test 2 (semantic recall): [{'id': 'mem:f5e07e3a1add4647', 'score': 0.8591283596433427, 'content': \"Chiran's mini PC is named cognita-pulse\", 'category': 'fact', 'provenance': 'explicit_statement', 'confidence': 0.95, 'task_id': 'homelab', 'scopes': ['homelab'], 'tags': [], 'host': None, 'source': None, 'source_ref': None, 'created_at': '2026-10-23T20:07:58.199159+00:00', 'similarity': 0.7425051700805104, 'keyword': True, 'superseded': False, 'neighbors': [], 'contradictions': []}]\ntest 3 (no cross-task leak): []\ntest 3b (unscoped query): []\nall three tests pass",
        "expected": "all three tests pass",
        "input": "no arguments; uses MEMSTRAND_HOME store",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md#acceptance-test (examples/quickstart.py)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
