com um clique
session-management
// Structured session lifecycle for Claude Code — start, checkpoint, end, and daily heartbeat commands that maintain project state across conversations.
// Structured session lifecycle for Claude Code — start, checkpoint, end, and daily heartbeat commands that maintain project state across conversations.
Multi-agent deep review for code PRs in any repo. Use when asked to "deep review this PR," "multi-agent review," "review
Tripwire check for multi-session drift. Scans state files, recent commits, and file conflicts caused by parallel Claude Code sessions.
Scan for orphaned worktrees and stale branches after crashes or abandoned sessions. Offers safe cleanup options.
Generate a new Claude Code skill file from a plain-language description. Scaffolds the SKILL.md, command file, and CLAUDE.md additions.
| name | session-management |
| description | Structured session lifecycle for Claude Code — start, checkpoint, end, and daily heartbeat commands that maintain project state across conversations. |
A system of four commands that give Claude Code a memory across sessions. Instead of starting every conversation cold, these skills maintain state files that capture what you're working on, what decisions you've made, and what's next.
Claude Code conversations are ephemeral — close the terminal and the context is gone. These skills solve that by:
/start loads your project state so Claude knows where you left off/update saves progress mid-session without closing/end captures everything from the session before you close/today runs a morning check-in that catches staleness, surfaces deadlines, and proposes memory updatesThe system compounds over time. Session logs become an episodic record. State files stay fresh. Decisions are logged. Nothing falls through the cracks.
Create these files in your project root (or wherever makes sense for your workflow):
state/
current.md # Active priorities, open threads, recent context
decisions.md # Decision log (date, decision, rationale)
weekly-priorities.md # What matters this week
blockers.md # Things waiting on external dependencies
heartbeat-log.md # Record of /today check-ins (auto-created)
sessions/
{YYYY-MM-DD}.md # Daily session logs (auto-created)
state/current.md to start# Current State
Last updated: [date]
## Active Priorities
1. [Your top priority]
2. [Second priority]
## Active Context
- [Open thread or thing you're working on] *(created M/D)*
## Recently Completed
- [Last thing you finished] *(M/D)*
state/decisions.md to start# Decision Log
Key decisions with date, context, and rationale.
| Date | Decision | Context / Rationale |
|------|----------|---------------------|
## Session Management
| Command | What it does |
|---------|-------------|
| `/start` | Load state, check what changed, give a briefing |
| `/end` | Log the session, update state, check for uncommitted work |
| `/update` | Mid-session checkpoint (quick save) |
| `/today` | Morning heartbeat — staleness check, deadlines, memory curation |
Get today's date. Run date +%Y-%m-%d. Note the day of week.
Check what changed since last session. Find the most recent session log and run:
git log --oneline --since="<last session date>"
Flag any state or context files modified since last session — these may contain updates from other sessions or manual edits.
Load context (read in order):
state/current.md — active priorities, open threadsstate/decisions.md — scan last 5 entries for awarenessstate/weekly-priorities.md — what matters this weekstate/blockers.md — things waiting on dependenciessessions/{TODAY}.md — if it exists, you're resuming todayCheck state freshness. Flag files that haven't been updated recently:
current.md >3 days stale — flag itweekly-priorities.md >5 days — flag itblockers.md >7 days — flag itGive a briefing. Keep it short:
If resuming today's session, acknowledge what was already covered.
Scan recent conversation. Identify in 30 seconds: what was worked on, any decisions made, any state changes needed.
Append to session log. Add to sessions/{TODAY}.md:
## Update: {TIME}
- {what was worked on, 1-3 bullets max}
Update state if something changed. Only touch current.md if a priority shifted, a thread opened/closed, or a task completed. Skip otherwise.
Confirm. One line: "Checkpointed: {brief description}"
Auto-extract session summary. Scan the full conversation and extract:
Present the summary for quick confirmation before writing.
Write session log. Append to sessions/{TODAY}.md:
## Session: {TIME}
### Topics
- {topic}
### Decisions
- {decision}
### Open Threads
- {thread}
### Next Actions
- {action}
Update state files:
current.md: Add new threads, remove completed items, update timestamps on touched items. Update "Last Updated" date.blockers.md if needed: Add new dependencies, move resolved blockers to "Recently Unblocked."weekly-priorities.md if needed: Check off completed items. Only touch if meaningful progress was made.Update decision log. If decisions were made, append to decisions.md:
| {TODAY} | {decision} | {context / rationale} |
Only log decisions that future sessions need to know about.
Git safety check (do not skip). Run git status and check for uncommitted or unpushed work:
Confirm. Two-line summary: what was logged, and the top open thread or next action.
A daily check-in that catches staleness, surfaces deadlines, and proposes updates. Designed to run in under 60 seconds.
Establish context. Get today's date. Read the heartbeat log (state/heartbeat-log.md) to find the last check-in date.
Scan recent activity. Run:
git log --oneline --since="3 days ago"
Check sessions/ for recent logs. This captures work even from sessions that closed without /end.
Check state freshness. Same thresholds as /start step 4.
Surface deadlines. Read TODO.md or your task file and scan for:
Age-check open items. Read current.md and check dates on open threads:
Identify memory gaps. Compare git log activity against state files:
decisions.md?current.md?
List proposed updates. Do not auto-update. Wait for approval.Output format:
MORNING CHECK-IN — [DATE] ([day of week])
Last heartbeat: [date] ([N] days ago)
SINCE LAST CHECK-IN:
- [N] commits: [brief themes]
- Session logs: [found/none]
STATE:
- current.md — [fresh/N days stale]
- weekly-priorities.md — [fresh/N days stale]
- blockers.md — [fresh/N days stale]
DEADLINES (next 7 days):
- [items, most urgent first]
[If stale items found:]
STALE ITEMS:
- [item] — [N] days old. [Propose: remove / convert to task]
[If memory gaps found:]
MEMORY GAPS:
- [proposed update]
Log the heartbeat. Append to state/heartbeat-log.md:
## [DATE]
- Commits since last: [N]
- State staleness: [summary]
- Deadlines flagged: [count]
- Stale items flagged: [count]
- Memory gaps found: [count]
- Updates applied: [list or "none — awaiting response"]
Transition. Ask: "What's the focus today?"
/end are presented for confirmation. Memory updates from /today require explicit approval. Never silently edit state files during heartbeat./end, /today catches the gaps. Nothing is catastrophic.