Receber por email
← Voltar para o catálogo

total-recall

Add durable IDs to memory entries. Required before /recall-maintain can run.

200estrelas
Atualizado há 8 meses

Ver no GitHub ↗

Como adicionar

/plugin marketplace add davegoldblatt/total-recall

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/total-recall-mqwb77i3/svg)](https://www.skillteca.com.br/skills/total-recall-mqwb77i3)
#ai

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Add ^tr IDs to untagged memory entries in managed files. This is safe to run multiple times - it only tags entries that don't already have IDs.

What To Do

1. Identify Managed Files

Scan these locations for single-line list item entries:

  • CLAUDE.local.md (working memory)
  • memory/registers/*.md (all register files)
  • memory/archive/**/*.md (archived entries, if they exist as list items)

Do NOT scan memory/daily/*.md - daily logs are not managed by the remove gate.

2. Parse Entries

An entry is exactly:

  • A line starting with - (dash + space)
  • Single line only (the entire entry is on one line)
  • NOT inside a fenced code block (``` markers)
  • NOT a placeholder like - [None captured yet] or - [None yet] or - [not yet set]

Already tagged: If the line ends with ^tr followed by exactly 10 lowercase hex characters, it already has an ID. Skip it.

Malformed tag: If the line ends with ^ followed by other text that doesn't match the tr[0-9a-f]{10} pattern, warn and skip it. Do not attempt to repair.

3. Show Preview

Before making any changes, show the user what will happen:

recall-init-ids — preview
━━━━━━━━━━━━━━━━━━━━━━━━━

Files scanned: [N]
Entries found: [N] total
  Already tagged: [N]
  Will be tagged: [N]
  Skipped (malformed): [N]

Examples:

  CLAUDE.local.md:
    Before: - Don't blast into writing code unless explicitly told to
    After:  - Don't blast into writing code unless explicitly told to ^tr8f2a1c3d7e

  registers/preferences.md:
    Before: - Prefers tabs over spaces
    After:  - Prefers tabs over spaces ^tra4b2c1d9e0

Apply? [y]es / [c]ancel

Show up to 5 before/after examples, spread across different files.

If no untagged entries are found, report that and exit:

All [N] entries already have IDs. Nothing to do.

4. Generate IDs

For each entry to be tagged:

  1. Generate an ID: tr + 10 random lowercase hex characters (use crypto-secure randomness)
  2. Check for collisions against:
  3. All existing inline IDs found during parsing
  4. All IDs already generated in this run
  5. All keys in memory/.recall/metadata.json (if it exists)
  6. If collision, regenerate. (Extremely unlikely with 10 hex chars, but be safe.)
  7. Append ^[id] to the end of the line

5. Apply Changes

Only after user confirms:

  1. Rewrite each file with IDs appended to eligible entry lines. Do not modify any other lines in the file.
  1. Create or update memory/.recall/metadata.json:
  2. Create memory/.recall/ directory if it doesn't exist
  3. For each new ID, add an entry:

``json { "tr8f2a1c3d7e": { "created_at": "2026-02-12T10:15:30Z", "last_reviewed_at": "2026-02-12T10:15:30Z", "pinned": false, "snoozed_until": null, "status": "active", "tier": "working" } } ``

  • Set tier based on file location:
  • CLAUDE.local.md -> "working"
  • memory/registers/* -> "register"
  • memory/archive/* -> "archive"
  • For entries with existing inline IDs that are missing from metadata.json, add them without changing the file
  • Write JSON with sorted keys for readable diffs

6. Summary

recall-init-ids — complete
━━━━━━━━━━━━━━━━━━━━━━━━━━

Tagged: [N] entries across [M] files
Metadata: [N] entries in memory/.recall/metadata.json

Files modified:
  CLAUDE.local.md          [N] entries tagged
  registers/preferences.md [N] entries tagged
  ...

You can now run /recall-maintain for pressure-based memory cleanup.

Important Notes

  • This command is idempotent. Running it again will only tag NEW untagged entries.
  • If a user manually removes an ID from an entry, running this command will re-tag it with a NEW ID (losing pin/snooze/review history for that entry).
  • Metadata.json is the source of truth for pin/snooze/review state. The inline ID is the link between the entry text and its metadata.
Compartilhar X LinkedIn