You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Memory-store unification & system-prompt / persona file management (v1.1) #53
Deferred to v1.1 (turn capture + Build Context is v1.0). Needs more discussion.
Idea
Let the user curate a list of "system files" that should be unified across the
memory surfaces, with wildcards/variables for context-dependent paths — e.g. <project_dir>/CLAUDE.md, ~/.ragger/persona/*.md. Ragger would be the source
of truth and project/serve these into each agent's native idiom.
Why it's non-trivial (substrate mismatch)
The stores are not the same shape, so "point them all at the same file" only
half-works:
ragger = SQLite DB (memories.db) + vector search. Accessed via MCP tools
/ HTTP. Already shared by ragger CLI, OpenClaw, Hermes, and the Claude Code
(Code tab) MCP client — these are already unified.
Claude Code file-memory = flat Markdown (CLAUDE.md, auto-memory MEMORY.md), loaded whole into context at session start. No search/embeddings.
Only Claude Code reads Markdown memory; OpenClaw/Hermes do not.
Claude Desktop Chat/Cowork = connectors only (model-discretion tools), no
file to link.
You can't symlink a .md to a .db; symlinks only unify Markdown↔Markdown.
Candidate approaches (the three from discussion)
Script (symlinks) — only for like-for-like Markdown consolidation. Minor.
Instruction MD for manual linking — document the hook + symlink setup. The
manual version of (3).
Magic in ragger (preferred) — ragger as source of truth, projecting into
each agent's idiom:
Claude Code file-memory: either (a) a SessionStart hook that
live-queries ragger and emits context (no file to sync — preferred), or (b) a ragger export-md that renders a read-only CLAUDE.md projection.
Caution
Pick a direction to avoid loops/duplication: if turn-capture feeds ragger and a synced CLAUDE.md feeds back into context (then gets re-captured), the two
systems will diverge. Cleanest: ragger canonical; CLAUDE.md is a derived,
read-only projection — not a second editable source.
Relationship to system-prompt management
System prompt = the agent's concern (Claude Code: CLAUDE.md / auto-memory / --append-system-prompt / SessionStart hook; OpenClaw: systemPrompt / *SystemContext; Hermes: system_prompt_block()). Ragger's Build Context
output is a per-turn context payload (the context channel), distinct from the
system prompt. v1.1 would add optional ragger-managed persona/system files that
project into those system-prompt channels.
Activity