From recall
Adds durable ^tr IDs to untagged single-line memory entries in CLAUDE.local.md, registers, and archive files. Previews changes, generates collision-free IDs, applies on confirmation, updates metadata.json. Prerequisite for /recall-maintain.
How this skill is triggered — by the user, by Claude, or both
Slash command
/recall:recall-init-idsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
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.
An entry is exactly:
- (dash + space)- [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.
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.
For each entry to be tagged:
tr + 10 random lowercase hex characters (use crypto-secure randomness)memory/.recall/metadata.json (if it exists) ^[id] to the end of the lineOnly after user confirms:
Rewrite each file with IDs appended to eligible entry lines. Do not modify any other lines in the file.
Create or update memory/.recall/metadata.json:
memory/.recall/ directory if it doesn't exist{
"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"
}
}
tier based on file location:
CLAUDE.local.md -> "working"memory/registers/* -> "register"memory/archive/* -> "archive"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.
npx claudepluginhub davegoldblatt/total-recallRuns memory maintenance: verifies IDs/duplicates, reconciles metadata, demotes working entries over 1500-word budget by score, cleans superseded entries.
Organizes, extracts, prunes, and verifies Claude Code persistent memory files to keep MEMORY.md under the 200-line truncation limit and topic files up to date with project state.
CRUD operations for file-based markdown memory entries with deduplication and sync to MCP semantic store. Manages user, feedback, project, and reference memory types.