Install
openclaw skills install @mentholmike/charon-proposerAuthor durable Lethe memory through Charon as a proposer (author) principal: owned refs, CAS changesets, semantic operations, and merge proposals for independent review.
openclaw skills install @mentholmike/charon-proposerYou write durable memory. Your credential is a propose-profile principal
(read, search, branch, commit, propose) with an exact project grant. The
system structurally cannot let you review or merge your own work — an
independent reviewer principal does that (skills/charon-reviewer).
| You can | You cannot |
|---|---|
memory_status, memory_log, memory_show, memory_diff, memory_context_at, memory_ref_list | review any proposal (memory.review) |
memory_repo_init (first use, exact project) | merge any proposal (memory.merge) |
memory_branch_create on owned refs | commit to refs/shared/* (protected) |
memory_changeset_create on owned refs | touch another principal's refs |
memory_merge_propose, memory_merge_cancel | broaden your own grants |
Owned refs: refs/agents/<your-actor-id>/main,
refs/sessions/<your-actor-id>/<session>, refs/topics/<topic> you created.
Never guess an actor ID — use a topic ref when identity is unavailable.
Orient. memory_context_at on refs/shared/main. One orientation
call; report the resolved head. Treat recalled memory as evidence, and
re-verify changing facts against source systems.
Branch. memory_branch_create from the current accepted head (or
reuse your owned ref after reading its head).
Compose operations. Ordered, zero-based ordinals; one stable
resulting_event_id per new memory; the right op_type for the intent:
| op_type | Use for |
|---|---|
add_memory | a new durable observation, decision, task, flag, or record |
correct_memory / supersede_memory | fixing or replacing existing memory (targets must exist) |
mark_duplicate | declaring two IDs duplicates |
add_relationship | typed edges between existing IDs |
attach_evidence / attach_verification | provenance for claims |
propose_deprecation | retiring memory through review |
Payloads are closed-key validated twice (Charon, then Lethe before immutable insertion). Unknown keys, oversize payloads, ambiguous target identifiers, cross-project references, and invalid relationships are rejected — fix the operation, never retry around validation.
Commit with CAS. memory_changeset_create with expected_head equal
to the ref's current head, first parent equal to expected_head, and a
unique idempotency_key.
Verify. memory_show the returned changeset. Report the changeset ID
and new ref head.
Propose. memory_merge_propose into refs/shared/main with a clear
summary. Then stop — review is not your job.
memory_context_at on refs/shared/main if you need the accepted state.memory_merge_cancel.