Skip to content
Back to skills

Memo

ASecurity

AIOS project memory — read/write/search your own memory using the memo capabilities. You (the model) decide what to remember, what to correct, and what was useful; the harness only executes your decision. Use when you want to recall prior work, persist a durable fact, supersede a wrong one, or mark a recalled memory useful. TRIGGER: 记忆、memory、memo、remember、recall、记住、之前、结论

  • 54 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 22, 2026
toolsgogit

Works with

  • cli

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add rexleimo/aios --skill memo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rexleimo-memo/badge)](https://www.skillsdirectory.com/skills/rexleimo-memo)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: memo
description: "AIOS project memory — read/write/search your own memory using the memo capabilities. You (the model) decide what to remember, what to correct, and what was useful; the harness only executes your decision. Use when you want to recall prior work, persist a durable fact, supersede a wrong one, or mark a recalled memory useful. TRIGGER: 记忆、memory、memo、remember、recall、记住、之前、结论"

installCatalogName: memo
clients: [codex, claude, hermes, workbuddy, pi, zcode, qoder]
scopes: [global, project]
defaultInstall:
  global: true
  project: false
tags: [aios, memory, memo]
repoTargets: [codex, claude, gemini, opencode, hermes, agents, workbuddy, pi, zcode, qoder]
---

# AIOS Memory (memo)

Working directory: project root. Memory commands run from the repo root.

## Principle: you decide, the harness executes

The harness only *provides capabilities* and does **not** judge semantics for you.
Judging **whether a fact is durable**, **what to persist**, **what to correct**, and
**which recalled memory was useful** is entirely your job. The harness parses your
declaration and executes it — it never guesses for you.

## Capabilities you can invoke

Run from the repo root with `aios memo ...` (the installed AIOS CLI — not a repo-relative script):

- **Recall** what you already know before continuing work:
  `aios memo recall [query]` — human-readable session recall digest
- **Search** prior memos (superseded facts hidden by default):
  `aios memo search "<query>" [--limit N]`
- **Persist** a durable fact you just established:
  `aios memo add "<fact>"` — defaults to an appropriate scope; add
  `--scope project_shared` for facts anyone in the repo benefits from
- **Supersede** a previously recorded fact you now know is wrong:
  `aios memo add "<corrected fact>" --supersedes <eventId>`
- **Mark useful** a recalled memory that actually shaped your outcome:
  `aios memo useful <eventId>`
- **Checkpoint** a milestone so future sessions recall it first (pinned memory):
  `aios memo checkpoint "<one-line takeaway>"` — use at milestones and before
  claiming work complete

Run `aios memo --help` for exact flags.

## When to persist (you judge)

Persist a durable, verified fact that a future you or a teammate will need — e.g. a
root cause you established, a fix you ran and confirmed, a decision rule. Do **not**
persist chatter, greetings, or in-progress noise. There is no automatic write: if you
do not record it, it is not remembered. When in doubt, prefer `project_shared` for
facts anyone in the repo benefits from, `agent_private` for personal working notes.

## Extraction contract (shape of a persistable entry)

Before you persist — via the declaration `conclusion=` or `memo add` — shape the
fact as one self-contained entry carrying five elements:

- `fact`: the durable statement, understandable without the surrounding turn.
- `entities`: the files, commands, symbols, or concepts the fact touches.
- `date`: absolute ISO date the fact was established. Never store relative time;
  resolve it to a calendar date first:
  - "昨天修的" → the calendar date yesterday was (e.g. `2026-09-08`)
  - "上周上线的" → the calendar date it shipped (e.g. `2026-09-01`)
  - "刚才验证的" → today's date (e.g. `2026-09-09`)
  A relative date is rejected at write time — anchor first, persist after.
- `evidence_ref`: the ONE backing evidence — a verification command with exit
  code, a `file:line`, or a doc/plan/report path. One entry references one and
  only one evidence; two independent verifications mean two entries (or pick
  the decisive one). Arrays are rejected at write time.
- `confidence`: `high` (ran and verified) or `medium` (established but indirect).

One entry = one fact = one evidence. Split compound observations instead of
bundling them.

Example entry:

```
fact: "Windows-only sha256 drift-guard failures were CRLF checkout artifacts, fixed by .gitattributes eol=lf"
entities: [drift-guard, .gitattributes, CRLF]
date: 2026-09-06
evidence_ref: "scripts/lib/specs/orchestrator-agents.json:272"
confidence: high
```

You declare these elements in your own words; the harness stores what you wrote
and never infers missing elements for you.

## What `verified` means now

- Your declaration (`verified=yes`) or `memo add` proposes — the entry lands as
  `candidate` and waits in the governance queue. It is invisible to active
  recall until promoted.
- `verified` is stamped only by governed promotion (human / `promote-shared`
  authority) and only with the single attached `evidence_ref`.
- A `verified` you award yourself is demoted to `candidate` at write time.
  Forgery is not an error you can talk your way around — it is a protocol
  outcome.

## Exclusions (do not persist)

- Greetings, pleasantries, acknowledgements, or restated user requests.
- In-progress noise: plans not yet executed, hypotheses not yet tested.
- Verbatim tool output or pasted logs without the conclusion they support.
- A fact you cannot attach an `evidence_ref` to — verify first, persist after.

## Editing discipline (corrections)

Supersede by precise replacement: quote the exact old statement, supply the new
statement, and link it with `--supersedes <eventId>`. Never silently rewrite
history — a correction is a new entry pointing at the entry it replaces, so the
log stays append-only and auditable.

## Declaration block (drives the automatic loop)

The harness injects a `## AIOS MEMORY DECLARATION` instruction into your prompt. At the
end of your reply, append one trailing block when this turn produced something durable:

```
<!--memory: verified=yes|no, useful=<eventId1,eventId2>, conclusion=<one-line takeaway> -->
```

- `verified=yes` only when this turn produced a **confirmed, durable fact** (a fix you
  ran and verified, a root cause you established). This is the trigger that persists a
  memory — the harness records it, never decides it.
- `useful=` lists the recalled eventIds above that you actually referenced.
- `conclusion=` is one line capturing the takeaway.

## What the harness does vs. what you do

| Concern | Owner |
|---|---|
| Tokenize/retrieve candidate memory into your prompt | harness (must run before you see anything) |
| Parse your declaration and persist it | harness (pure bookkeeping) |
| Whether a fact is durable / worth persisting | **you** (via `verified=` / `memo add`) |
| Whether a correction supersedes an old fact | **you** |
| Which recalled memory was useful | **you** (via `useful=`) |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…