Temporal Facts
Treat facts as a derived view over source evidence, not a new truth owner.
Rules
- Require at least one resolvable source ref for every assertion.
- Keep assertion receipts separate from evidence refs.
- Use controlled predicates; unknown predicates fail lint.
- Supersede or invalidate overlapping single-valued facts.
- Treat stale facts as evidence unless stale inclusion is explicit.
- Keep extraction proposals review-only with
writes_performed=false.
Operate
openclaw-mem graph fact registry --json
openclaw-mem graph fact current --subject <subject> --source-root <workspace> --json
openclaw-mem graph fact timeline --subject <subject> --source-root <workspace> --json
openclaw-mem graph fact pack --subject <subject> --source-root <workspace> --json
openclaw-mem graph fact lint --source-root <workspace> --json
openclaw-mem graph fact stale --source-root <workspace> --json
For assertions, supply subject, predicate, object, validity time, source ref, assertion ref, and source root. Use rebuild --allow-dangling-source only for fixture or backfill inspection.
Verify
openclaw-mem graph fact registry --json
python -m pytest tests/test_graph_facts.py -q
git diff --check