بنقرة واحدة
auto-memory
// Extract durable learnings and preferences from conversations for automatic memory capture.
// Extract durable learnings and preferences from conversations for automatic memory capture.
Install and configure Rho from scratch (Doom-style init.toml + sync). Only prereq: a coding agent that can run shell commands.
Consolidate brain memory and mine user sessions since the last consolidation checkpoint (sleep-cycle style). Use to reduce noisy prompt injection while preserving durable high-value memories.
Keep CHANGELOG.md idiomatic (Keep a Changelog) and cut a tag-based GitHub release that triggers npm publish CI.
Implement coding tasks with an explore-plan-code workflow and explicit verification gates.
Generate structured .code-task.md files from rough descriptions or PDD plans.
Analyze a repository and generate comprehensive architecture and workflow documentation.
| name | auto-memory |
| description | Extract durable learnings and preferences from conversations for automatic memory capture. |
| kind | sop |
Extract durable learnings and user preferences from a conversation that will remain useful across future sessions. This runs automatically after each agent turn, using a small/cheap model. Quality over quantity: one precise memory is worth more than five vague ones.
Scan the conversation and classify each substantive exchange into one of these categories:
Extractable:
Not extractable:
Constraints:
Compare each candidate extraction against the existing memories list.
Constraints:
For each valid candidate, draft a concise memory entry.
Constraints:
Assign each extraction a type and category.
Learning types:
Preference types with categories:
Constraints:
Output strict JSON only:
{
"learnings": [
{"text": "concise, actionable learning statement"}
],
"preferences": [
{"category": "Communication|Code|Tools|Workflow|General", "text": "concise, actionable preference statement"}
]
}
If there are no genuinely new, durable items to extract, return:
{"learnings": [], "preferences": []}
Returning empty is better than returning noise.
Conversation excerpt:
User: "Should we source the rho tmux config or swap it in?" Agent: "Here are the differences... Want me to source it or swap it?" User: "swap it in" Agent: swaps the config
Good extraction:
{"learnings": [{"text": "Rho tmux config at ~/.rho/tmux.conf is now the active ~/.tmux.conf, replacing the nix-configs-based one. Old config backed up at ~/.tmux.conf.bak."}]}
Bad extraction (captures discussion, not decision):
{"learnings": [{"text": "The rho-specific tmux configuration is not being used by the current ~/.tmux.conf"}]}
Conversation excerpt:
Agent: drafts a formal, structured X post User: "do something more clever" Agent: drafts dry, self-aware version User: "I like that personality, do that more"
Good extraction:
{"preferences": [{"category": "Communication", "text": "X post voice: understated, self-aware, dry. State the problem, state what was done, land it flat. Let the reader connect the dots."}]}
Bad extraction (too vague):
{"preferences": [{"category": "Communication", "text": "User prefers clever X posts over formal ones"}]}
Conversation excerpt:
User: "find recent X posts about rho and post something" Agent: searches, drafts, posts
Correct output:
{"learnings": [], "preferences": []}
The task was executed but no durable knowledge was produced.
These look like learnings but fail the 30-day test:
| Candidate | Why it fails |
|---|---|
| "pi-coding-agent updated to 0.55.4 on 2026-03-04" | Version snapshot — stale tomorrow |
| "Heartbeat Feb 19 08:02 UTC: rho-web healthy" | Status report — not a decision or pattern |
| "ChefBench scored 42/89 = 47.2% on Terminal-Bench 2.0" | Benchmark result — won't change future behavior |
| "Fresh-eyes bug sweep: reviewed X, no bugs found" | Sweep status — no generalizable root cause |
| "The sessions hamburger button should use an icon-only button" | UI detail — too specific to one feature |
| "All 224 unit tests pass with no failures" | Test status — transient fact |
| "Task X is complete and verified" | Completion status — belongs in task tracking, not memory |
Correct output for all of the above:
{"learnings": [], "preferences": []}