Core components
Record model
A Personal Memory Record is made of its content and its governance information:
The Provider stores the structured state that Comet maintains automatically, shared by the CLI, Dashboard, Skill, and Hook. The user-readable Markdown is for viewing and management, and it can also be used to rebuild state after index corruption.
Record formation paths
Set explicitly by you
user.signal represents a long-term preference, correction, or forgetting that you initiate. The coordinator first writes the event to the Journal, then completes the deterministic handling synchronously.
A clear long-term requirement can go straight to proven, because the current user is the authoritative source for this kind of content. The system also recognizes one-off phrasing such as “don’t commit this time”; that requirement keeps constraining the current task but is not written to long-term memory.
Inferred candidates from the system
Task completion, verification, Review, and context-application results can form inferred candidates. Reflection converts the related Personal Episodes into Learning Deltas (memory change instructions):
Consolidation merges near-duplicate records, keeps the more specific selectors (applicable conditions), and attaches new evidence to existing records. System-inferred content starts in
trial and joins related tasks at lower priority; after one successful application it can be promoted to proven.
What the Experience Journal does
The Experience Journal is an append-only, replayable machine event log with three responsibilities:- Deduplicate with stable
eventIds so retries do not produce repeated learning. - Correlate events from recovery, re-verification, and cross-session continuation with
episodeId. - Keep the replay capability after a background Reflection failure, without blocking the current workflow.
Task matching
The Provider first returns the available candidates, and Context Director then runs layered matching against the current request:provenoutrankstrial.- What you set explicitly outranks what the system inferred.
- Precise project and path selectors outrank broad global content.
- A recent successful application improves later ranking.
- A correction, or taking part in a failure, lowers ranking and triggers a later Reflection.
supersededrecords never enter task context.
Progressive context
Comet controls how much context gets injected by providing it in layers:- Key Core Profile entries can enter the context in full.
- A few directly related, stable Collaboration Policies can enter in full.
- Other relevant candidates enter the Context Manifest first.
- The Agent expands the content, source, and verification it needs by stable ID.
whyApplied. whyApplied comes from the real match conditions, such as “the current project matches”, “the current path matches”, “you set this explicitly”, or “it was applied successfully recently”.
The character budget limits only the content injected in one task. A saved record shows up in the context or the Manifest only when it hits the current conditions.
Application feedback
When Context Director provides a record, it creates an application record. After the task, one of these results can be written:
The retrieval hit rate measures relevance; application results measure real task value. Both kinds of information drive later ranking and the lifecycle.
Correction, forgetting, and replay
A correction creates an updated normalized record and marks the conflicting old versionsuperseded. System-inferred content can never overwrite content you set explicitly.
Forgetting writes a tombstone. The tombstone is stored separately from the lifecycle, so replaying historical events can still recognize content you already withdrew.
forget keeps the rollback capability by default; --permanent performs a permanent deletion. When an explicit operation fails, the Provider keeps the original state and returns the actual error.
Local and Remote Providers
The Personal Memory domain accesses the Provider through onestatus / query / apply contract.
Local Provider
- Keeps a user-readable
profile.mdand project records. - The machine index can be rebuilt after an upgrade or corruption.
- Identifies the same repository with a stable repository identity.
- The main workspace and linked worktrees share project-scoped Personal Memory.
- Different repositories are isolated from each other.
Remote Provider
- Uses the same versioned Provider contract as Local.
- Tokens are supplied through environment variables only.
- Once Remote is enabled, Local is no longer read at the same time.
- A Remote failure returns the actual state and does not read Local data.
learning stops new records from forming and keeps existing data. Turning off retrieval stops memory from being provided to tasks, while the Dashboard and explicit management operations stay available.
Failure isolation
Return to Personal Memory, or continue with Agent Learning Loop.

