Skip to content

Time-based decay for memories without confirmed relevance #359

@toejough

Description

@toejough

Context

Engram has 3,140+ memories. Most never reach the 5-evaluation threshold for the maintenance system's quadrant classification. Memories accumulate indefinitely.

Problem

Memories that are never confirmed useful (0 followed_count, low surfaced_count) persist forever. The existing maintenance system (review.go, maintain.go) requires >= 5 evaluations to classify a memory as Noise/Leech/Working/Hidden Gem. Most memories never get surfaced enough to reach that threshold, so they escape cleanup.

Proposed approach

Add a time-since-last-relevance decay factor:

  • Track last_relevant_at (last time memory was marked --relevant --used via feedback)
  • Memories without any confirmed relevance decay in surfacing priority over time
  • After a configurable period (e.g., 90 days) with no confirmed relevance, memories become candidates for auto-removal or archiving
  • Decay should be gradual (reduce surfacing probability) not cliff-edge (sudden deletion)

Key constraint: don't overswing. Many memories are legitimately low-frequency but high-value ("never force-push to main" might go months without being relevant, then save you). The decay should primarily target memories that are surfaced repeatedly but never confirmed useful.

Related

  • Existing issue Auto-remove memories after sustained irrelevance #347 (auto-remove after sustained irrelevance) may overlap — consider whether this supersedes or complements it
  • Spec: docs/superpowers/specs/2026-03-22-generalizability-gating-design.md (section: "What this does NOT cover")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions