retro

Installation
SKILL.md

Retro

The vault root. Resolve it once, before anything else: VAULT_ROOT from the environment, defaulting to ~/Obsidian when unset (echo "${VAULT_ROOT:-$HOME/Obsidian}"). Every vault path below is built from $VAULT_ROOT, as shorthand: shell state does not persist between commands, so substitute the resolved path it printed into every command and file path, never the bare $VAULT_ROOT. If that directory does not exist, stop and say so — never create a vault.

Drains $VAULT_ROOT/Profile/observations.md. /observe fills it; this empties it.

The whole file by default. A single observation may be passed as an argument, but the default is the whole file, and that is load-bearing: the repeat signal — the same friction written down three times in different words — is only visible with the items side by side.

Procedure

  1. Read the file back. Show what is in it, in order, unabridged. Hassan sees the batch before anything is decided.
  2. One at a time, propose then judge. For each observation, the agent proposes: what change would settle it, and where that change lands. Hassan accepts, redirects, or rejects. Nothing is applied on the agent's own authority.
  3. Make the change in this sitting. The observation drains to the change, not to a ticket. Edit the file, flip the setting, rewrite the skill — now. Filing a ticket is the admitted exception, for a change genuinely too big for one sitting; if it is being used more than rarely, the sitting has become a triage queue and the drain has failed.
  4. Remove the item. Outright deletion from observations.md — no archive section, no "resolved" heading. The change is the record.

The one test

There is no routing table. For each observation, ask:

Installs
12
GitHub Stars
1
First Seen
Jul 27, 2026