nvidia/nemo-rl-session-memory
Manage durable working-session memory for coding agents. Use when a user asks to preserve or recover agent context across disconnects, VS Code restarts, long-running work, handoffs, or any session where important state should be written periodically under the repo's session directory. Do NOT use for: simple questions, short tasks, one-off commands, linting, or code review.
npx skills add https://github.com/NVIDIA/skills --skill nemo-rl-session-memory
Keep a durable, human-readable record of the current working session so another agent can resume after a disconnect with minimal context loss.
Use this skill when:
./session/ directories.Create one directory per working session:
mkdir -p session
date +%Y%m%d_%H%M%S
mkdir -p session/<session_date_time>
Use local time from the machine. Reuse the same session directory for all checkpoints in the same conversation unless the user explicitly starts a new session.
Expected files:
session_state.md - overall goal, current subtask, loaded skills, status, plan, assumptions, blockers, and next actions.timeline.md - append-only log of major actions, commands, results, and decisions.files.md - files inspected, files changed, and why they matter.handoff.md - concise resume instructions for the next agent.Add other files only when useful, such as experiments.tsv, review_notes.md, or copied command logs.
At the start of a session:
ls -dt session/* 2>/dev/null | head
session_state.md, timeline.md, and handoff.md.session_state.md with the user's overall goal, current subtask, loaded skills, repo path, branch, and known constraints.Do not treat session notes as the only source of truth. Verify important claims against git state, files, and command output before acting.
Write a checkpoint:
Prefer updating the same files rather than creating many small checkpoint files. Keep the record compact and scannable.
session_state.md# Session State
- Session: <session_date_time>
- Repo: <absolute repo path>
- Branch: <branch name>
- Started: <local timestamp>
- Updated: <local timestamp>
## Goal
<Stable overall user goal in one or two sentences. Preserve this across follow-up steering unless the user explicitly changes it.>
## Current Subtask
<Immediate task or steering request currently being handled.>
## Loaded Skills
- `<skill-name>` - <why it was loaded and any important instructions to preserve.>
## Current Status
<What is true now. Include completed work and verification status.>
## Plan
- [ ] <Next concrete step>
- [ ] <Next concrete step>
## Assumptions
- <Assumption and how to verify it if needed.>
## Blockers
- <Blocker or "None known".>
timeline.md# Timeline
## <local timestamp>
- User asked: <brief request>
- Context gathered: <files/commands and key result>
- Decision: <important choice and rationale>
- Result: <edits/tests/outcome>
files.md# Files
## Inspected
- `<path>` - <why it mattered>
## Changed
- `<path>` - <what changed and why>
## Generated
- `<path>` - <purpose>
handoff.md# Handoff
## Resume From Here
<One paragraph summary of the current state.>
## Next Actions
- <Most important next action>
- <Verification or cleanup still needed>
## Watch Outs
- <Risks, user preferences, or repo constraints the next agent must preserve.>
When resuming after a disconnect:
handoff.md first, then session_state.md, then recent timeline.md.git status --short, git branch --show-current, and targeted file reads.handoff.md.Take nvidia/nemo-rl-session-memory from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.