Install
openclaw skills install memory-refereeMemory hygiene and adjudication layer for OpenClaw agent workflows. Deduplicates entities, resolves naming conflicts, separates facts from goals from speculation, archives stale records, enforces consistent schemas, detects contradictions, and preserves provenance. Complements ontology and Proactive Agent.
openclaw skills install memory-refereeontology and Proactive Agent give agents the ability to remember more. memory-referee is designed to work alongside skills like ontology and Proactive Agent to give that memory a cleaner foundation to stand on — deduplicating entities, resolving naming conflicts, separating facts from goals from speculation, archiving stale records, and enforcing consistent schemas.
Built with Saturnday — AI-specific governance for AI-generated code.
While governing the build of memory-referee, Saturnday caught the kinds of mistakes AI coders routinely ship:
.envpatterns that could expose API keys, deduplication logic that could silently drop memory records, fake tests that passed while verifying almost nothing, and runtime validation gaps that would let malformed records corrupt downstream decisions.That is the difference between AI-generated code and governed AI-generated code. www.saturnday.dev
Invoke this skill whenever an agent's memory store may have accumulated:
Use it after running ontology or Proactive Agent to clean up accumulated memory before passing it downstream.
Each record in raw_records must be a JSON object with the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
id | string | yes | Unique identifier for the record |
kind | string | yes | One of fact, goal, or speculation |
entity | string | yes | The entity this record is about |
content | string | yes | The record's content |
timestamp | string | yes | ISO 8601 date string |
provenance | object | yes | Single provenance object: { sourceId, sourceLabel, capturedAt }. The skill wraps this internally into an array to support merged records with multiple sources. |
tags | string[] | no | Optional tags |
| Field | Type | Description |
|---|---|---|
report | string | Markdown adjudication report summarising all decisions |
result | object | Structured JSON with deduplicated, classified, validated records |
echo '[{"id":"r1","kind":"fact","entity":"Alice","content":"Alice prefers dark mode","timestamp":"2026-03-27T00:00:00Z","provenance":{"sourceId":"s1","sourceLabel":"pref-log","capturedAt":"2026-03-27T00:00:00Z"}}]' | node dist/index.js
import { main } from 'memory-referee';
const records = [
{
id: 'r1',
kind: 'fact',
entity: 'Alice',
content: 'Alice prefers dark mode',
timestamp: '2026-03-27T00:00:00Z',
provenance: { sourceId: 's1', sourceLabel: 'pref-log', capturedAt: '2026-03-27T00:00:00Z' }
}
];
const { markdown, json, report } = main(JSON.stringify(records));
console.log(markdown); // human-readable adjudication report
console.log(json); // structured JSON output