mohManual

Manual/Everyday work

Memory, notes and retro

Chapter 08 · 3 min read

moh keeps three different things across time, on purpose kept apart: a small memory of durable facts, your own notes, and the full conversation, summarised when it gets long. A fourth, the retro, looks back at how the work went and suggests improvements — only for you to approve.

memory

Facts worth carrying forward — "tests run with bun test", "never edit the migrations by hand". Written by moh, read at the start of every conversation.

notes

Your free text about the project, shared by every conversation in it. Written by you, with ctrl+n.

summary

When one conversation grows too long, its older part is condensed so the work can continue. The full history is never deleted.

retro

Observations about how the work went, turned into concrete suggestions for your project files. Nothing changes until you say so.

What moh remembers between conversations

After each exchange, a small helper running in the background picks out facts that seem durable — your conventions, decisions, preferences — and adds them to the project's memory. Next time, you don't repeat yourself. A discreet indicator appears when the memory changes.

Memory lives in ~/.moh/projects/<project>/memory/: plain text files you can open and read. Facts are only ever added; when two disagree, the newer wins and keeps a dated note.

Project notes

Press ctrl+n to open the notes editor: a scratchpad for the project — a to-do list, a reminder for tomorrow, a link you need. Every conversation in the project sees the same notes.

Long conversations

An AI can only hold a limited amount of text "in mind" at once — its context window. The gauge at the bottom of the screen shows how full it is. When a conversation passes about 80% of it, moh compacts automatically: it writes a faithful summary of the older part — the task, the decisions, the next steps — keeps the last ten exchanges word for word, and carries on.

  • Type /compact to do it yourself, now.
  • The summary is an addition to the file, not a replacement: the full history stays on disk forever.
  • If a provider says "this is too long" with a smaller limit than expected, moh learns that number for the rest of the conversation and tells you once.

Retro: what to fix next time

When a conversation closes, moh quickly reads its log — with simple checks, no AI call, nothing sent anywhere — and notes what a careful reviewer would notice about your project's setup. For example:

  • your project defines lint and test scripts, but nothing runs them automatically before a commit or in CI;
  • the same slow command was run four times in one session.

A second pass looks for advice about how to find your way around the code and which coding rules to write down; it runs only every ten conversations, never after each one.

/retro
retro findings · by confidence
missing-guardrail 0.80 lint and test defined, no pre-commit hook runs them
tool-economy 0.50 the same bash command was issued 4 times: npm test
a apply → AGENTS.md, under "## Retro findings"? y / n
✓ appended — existing text untouched
  1. Notice. At the start of a session, one line tells you when new findings are waiting — at most once every two days.
  2. Review. /retro (or moh retro in the terminal) lists them, most confident first, with the evidence behind each.
  3. Apply, or dismiss. a shows the exact change — a rule for CODING_STANDARDS.md, a pointer in AGENTS.md — and writes it only after you confirm, as a new line under a ## Retro findings heading. Your existing text is never edited. A change that isn't text, like a hook or a CI job, is described for you to make. d dismisses a finding for good, and dismissing a kind of finding repeatedly makes moh stricter about proposing it.

Good to know

Retro findings never reach the AI's instructions on their own. To turn the whole thing off, set "retro": { "enabled": false } in moh.json.

Written for moh 0.61. Inside moh, ctrl+h opens the built-in manual for your exact version.