/recall-promote
Review daily logs and promote entries to registers or working memory.
$ npx -y skills add davegoldblatt/total-recall --skill recall-promote --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/recall-promote
Context preview
The summary Claude sees to decide when to auto-load this skill.
Review daily logs and promote entries to registers or working memory.
SKILL.md
recall-promote.SKILL.mddescription: Review daily logs and promote entries to registers or working memory.
disable-model-invocation: true
Review recent daily logs and surface candidates for promotion to registers or CLAUDE.local.md.
What To Do
1. Gather Recent Logs
Read all daily log files from the last 7 days (memory/daily/YYYY-MM-DD.md).
If no daily logs exist, tell the user:
No daily logs found. Use /recall-write or /recall-log to start capturing.
2. Identify Promotion Candidates
Scan each entry and evaluate:
**Promote to CLAUDE.local.md if:**
- Active commitment or deadline that affects every session
- Behavioral preference that changes default output
- Current project state that's essential context
**Promote to a register if:**
- Decision with rationale → decisions.md
- Person context → people.md
- Technical choice → tech-stack.md
- Preference with staying power → preferences.md
- Project milestone or state change → projects.md
**Skip if:**
- Already captured in a register or CLAUDE.local.md
- One-off observation with no future impact
- Debugging detail or transient state
3. Present Candidates
For each candidate, show:
Candidates for promotion:
1. [2026-02-03] "Project deadline moved to March 15"
→ Suggest: CLAUDE.local.md (active commitment)
2. [2026-02-02] "Prefers tabs over spaces, 2-space indent"
→ Suggest: registers/preferences.md
3. [2026-02-01] "Decided to use Postgres over SQLite for scale"
→ Suggest: registers/decisions.md
4. Ask User
For each candidate, ask the user what to do:
- **Promote** — write to the suggested destination
- **Register** — write to a different register (ask which one)
- **Skip** — don't promote, leave in daily log
- **Promote all** — accept all suggestions at once
5. Execute
For each promoted item: 1. Write to the destination with proper metadata (claim, confidence, evidence, last_verified) 2. Do NOT remove from daily log (daily logs are append-only history) 3. Check for contradictions with existing entries before writing 4. **Assign a durable ID**: For single-line list items promoted to CLAUDE.local.md or registers, append a `^tr` ID (10 random lowercase hex chars). Create or update `memory/.recall/metadata.json` with an entry for the new ID (`created_at`, `last_reviewed_at` = now, `pinned: false`, `snoozed_until: null`, `status: "active"`, `tier` from destination file). Create `memory/.recall/` directory if needed. Write metadata.json with sorted keys.
6. Summary
Promotion complete:
→ 2 entries promoted to registers
→ 1 entry promoted to CLAUDE.local.md
→ 1 entry skipped
CLAUDE.local.md word count: [N]/1500
Warn if CLAUDE.local.md is approaching the 1500 word limit.
Read more
description: Review daily logs and promote entries to registers or working memory. disable-model-invocation: true
Review recent daily logs and surface candidates for promotion to registers or CLAUDE.local.md.
What To Do
1. Gather Recent Logs
Read all daily log files from the last 7 days (memory/daily/YYYY-MM-DD.md).
If no daily logs exist, tell the user:
No daily logs found. Use /recall-write or /recall-log to start capturing.
2. Identify Promotion Candidates
Scan each entry and evaluate:
**Promote to CLAUDE.local.md if:**
- Active commitment or deadline that affects every session
- Behavioral preference that changes default output
- Current project state that's essential context
**Promote to a register if:**
- Decision with rationale → decisions.md
- Person context → people.md
- Technical choice → tech-stack.md
- Preference with staying power → preferences.md
- Project milestone or state change → projects.md
**Skip if:**
- Already captured in a register or CLAUDE.local.md
- One-off observation with no future impact
- Debugging detail or transient state
3. Present Candidates
For each candidate, show:
Candidates for promotion: 1. [2026-02-03] "Project deadline moved to March 15" → Suggest: CLAUDE.local.md (active commitment) 2. [2026-02-02] "Prefers tabs over spaces, 2-space indent" → Suggest: registers/preferences.md 3. [2026-02-01] "Decided to use Postgres over SQLite for scale" → Suggest: registers/decisions.md
4. Ask User
For each candidate, ask the user what to do:
- **Promote** — write to the suggested destination
- **Register** — write to a different register (ask which one)
- **Skip** — don't promote, leave in daily log
- **Promote all** — accept all suggestions at once
5. Execute
For each promoted item: 1. Write to the destination with proper metadata (claim, confidence, evidence, last_verified) 2. Do NOT remove from daily log (daily logs are append-only history) 3. Check for contradictions with existing entries before writing 4. **Assign a durable ID**: For single-line list items promoted to CLAUDE.local.md or registers, append a `^tr` ID (10 random lowercase hex chars). Create or update `memory/.recall/metadata.json` with an entry for the new ID (`created_at`, `last_reviewed_at` = now, `pinned: false`, `snoozed_until: null`, `status: "active"`, `tier` from destination file). Create `memory/.recall/` directory if needed. Write metadata.json with sorted keys.
6. Summary
Promotion complete: → 2 entries promoted to registers → 1 entry promoted to CLAUDE.local.md → 1 entry skipped CLAUDE.local.md word count: [N]/1500
Warn if CLAUDE.local.md is approaching the 1500 word limit.
A memory system for Claude Code that remembers what matters and forgets what doesn't.
Other skills on recall.
- /recall-context
Show what memory files are loaded and available in the current session.
Open skill - /recall-forget
Mark memory entries as superseded. Preserves history, does not delete.
Open skill - /recall-init-ids
Add durable IDs to memory entries. Required before /recall-maintain can run.
Open skill - /recall-init
Scaffold the Total Recall memory directory structure in this project.
Open skill - /recall-log
Quick append to daily log without write gate evaluation.
Open skill - /recall-maintain
Pressure-based memory cleanup. Demotes, archives, or pins entries when working memory exceeds budget.
Open skill

