| name | session-curation |
| description | Operate and reason about the 'session analysis & memory curation' line item of the machine-equality matrix — the per-box engine that analyzes every AI-provider session log + curates the memory delta, its daily-freshness verdict (green ≤12h / orange >12h / red >24h), the dead-man's-switch rebuild, and the cross-machine fingerprint transfer. Use to read, refresh, or debug the cell. |
| type | workflow |
| version | 1.0.0 |
| category | workspace-hub |
| last_updated | "2026-06-26T00:00:00.000Z" |
| source | internal |
| tags | ["equality","curation","memory","session-analysis","multi-machine","freshness","dead-mans-switch"] |
| related_skills | ["ecosystem-equivalence-reconcile","repo-ecosystem-hygiene"] |
| freedom | low |
Session analysis & memory curation
This is the session_curation dimension of the machine-equality matrix
(docs/reports/machine-equality-matrix.html, GROUP heading "Session analysis &
memory curation — daily freshness"). Unlike the other matrix dimensions — which grade a
machine against its peers (DIVERGES / NO-MAJORITY) or against a baseline
(BELOW-BASELINE) — this cell grades a machine against real wall-clock now: it answers
"did this box analyze its session activity and curate its memory recently enough?"
Each box, every 6h, does two things and stamps the time it finished:
- Analyze all AI-provider session logs present on THIS box —
Claude (
~/.claude/projects), Codex (~/.codex/sessions), Gemini (~/.gemini/tmp),
Hermes (~/.hermes/sessions) — into per-provider activity counts. Bounded,
mtime-first, never reads gigabytes (Hermes' ~27 GB tree is capped at
MAX_FILES_PER_PROVIDER, never fully walked).
- Curate the workspace memory delta — basenames of
.claude/memory/*.md changed
since the last run — into a portable digest, and publish a fingerprint to a
dedicated git ref so sibling machines can pull it.
Counts / enums / timestamps only — never prompt text, tokens, absolute paths, or
client identifiers (matches the collect-equality allowlist and repo legal rules).
Daily-freshness semantics
freshness_verdict(report, now=None) in scripts/readiness/build-equality-matrix.py
(line 198) grades the cell by the age of last_curated_at:
Age of last_curated_at | Verdict | Colour | CSS class |
|---|
| ≤ 12h | CURATED-FRESH | green | curated-fresh |
| > 12h, ≤ 24h | CURATED-STALE | orange | curated-stale |
| > 24h | CURATED-EXPIRED | red | curated-expired |
| no / garbled / stamp |