memorytoollisted
Install: claude install-skill stevehansen/eidet
# Memory tool — priming
**Canonical spec:** `docs/domains/memorytool.md` — read it for command behaviour, all invariants, key
files, and gotchas. Terms of record: `UBIQUITOUS_LANGUAGE.md` § Memory-tool files. Threats:
`STRIDE.md` I-8, T-15.
A faithful filesystem: the model re-reads exactly the bytes it wrote. A **Memory file** is not a
**Memory** — it skips the signal gate, decay, and consolidation by design.
## Core invariants (get these right)
- **Nothing the model can do throws.** Every expected failure is an `is_error` result with the contract's
exact wording; a storage fault returns a *generic* error and logs server-side (never leak `ex.Message`).
- **`MemoryPath` is the only path validator** — traversal, backslashes, control chars, and url-encoded
escapes are rejected at construction (I-8). Never concatenate a blob key.
- **The gate here is the secret scan + size cap only** — the semantic low-signal/self-talk gates would
break the filesystem contract. Secret scanning is still mandatory.
- **A redacting write reports its redaction count**; a rejecting policy stores nothing.
- **Never rewrite bytes semantically** — occurrence-counted `str_replace`, bounds-checked `insert`,
verbatim store.
- **The blob is the source of truth; the bridge is best-effort, one-way, and off by default**
(`NullMemoryBridge`). Semantic-side rejections and duplicates are expected.
- **`/memories/.recall` is read-only and reserved**; the root is never a file.
- **Repo isolation is bou