From quiver
Summarize the current work state and prepare a handover note for the next session.
npx claudepluginhub yagizdo/quiver --plugin quiverThis skill uses the workspace's default tool permissions.
```
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
!`git rev-parse --is-inside-work-tree 2>/dev/null || echo "NO_GIT"`
!`git status --short 2>/dev/null || echo "NO_GIT"`
!`git diff --stat 2>/dev/null || echo "NO_GIT"`
If any block above returned NO_GIT, this directory is not a git repository.
Print: > No git repository detected -- skipping branch/commit context.
Continue — git context is optional. Treat all git-sourced fields as empty.
Before generating a handover, determine whether this session produced meaningful work worth preserving. You must prove substance exists — do not assume it.
Review the full conversation and list every meaningful action taken during this session. Write this list as a Decision Log before choosing a branch.
Counts as meaningful work:
Does NOT count as meaningful work:
/quiver:handover command itself and its git context-gathering commandsOutput the following before choosing a branch:
Decision Log — Session Freshness Meaningful actions found:
- {list each meaningful action, or "None"} Verdict: {Branch A or Branch B}
If the meaningful actions list is empty:
Handover skipped — This session has no meaningful work to summarize. A handover file was not created.
When to run this command:
- After making code changes, investigating bugs, or making decisions
- At the end of a productive work session
- Before closing a session you would like to resume later
Stop here. Do not create the handover directory, do not write any files, and do not proceed to the Handover Instructions below.
If the meaningful actions list has at least one item, proceed to the Handover Instructions section below and generate the full handover.
Your role: You are a session handover specialist. Your goal is to produce a zero-re-discovery handover — the next session should never re-investigate what this session already learned. Be specific: include file paths, function names, line numbers, and exact error messages.
If git context was not available (see Step 0), build the handover from the conversation context alone and note "Git not available" in the Summary.
Workflow:
┌─────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 1. GATHER │ ──► │ 2. BUILD │ ──► │ 3. SAVE & VERIFY │
│ Read git status │ │ Write 8 sections │ │ Write file │
│ Review convo │ │ Check quality │ │ Prune old files │
│ Identify files │ │ gates │ │ Update MEMORY.md │
└─────────────────┘ └──────────────────┘ └──────────────────┘
Using the context above and our conversation, prepare a structured handover note with these exact sections:
{One-paragraph TL;DR. Include: what feature/bug was worked on, current status (done / in-progress / blocked), and branch name if applicable. Example:}
Implemented JWT refresh token rotation on
feature/auth-refresh. All tests passing; PR ready for review.
{Bulleted list. Each item: file path + what changed. Example:}
src/auth.ts — Added JWT refresh token rotationtests/auth.test.ts — Added 3 test cases for token expiry{Approaches that didn't work and why. Include enough detail to prevent re-investigation. Example:}
jsonwebtoken v8 but it lacks rotateRefresh() — downgraded to v7 API{Issues found and how they were resolved. Include file paths and line numbers. Example:}
src/auth.ts:42 — Off-by-one in token expiry calculation; changed >= to >{Architectural choices made this session. State the alternatives considered. Example:}
{Non-obvious constraints, traps, or environment quirks. Example:}
AUTH_SECRET env var must be ≥32 chars or the signing silently falls back to HS256{Ordered list — first item is the highest priority action for the next session. Example:}
feature/auth-refresh and request review/token/refresh endpoint{Key files and their roles in the current work. Example:}
src/auth.ts — Main authentication module (token issue + refresh)config/redis.yml — Token blacklist store configurationIf a section has no content, write N/A — {reason} instead of omitting the heading.
Before saving, verify the handover passes these checks:
BLOCKING (fix before saving):
WARNING (review if session was longer than ~15 minutes):
After writing the handover above, do all of the following:
Get a timestamp: run date '+%Y-%m-%d_%H-%M-%S' via Bash.
Create directory: .claude/handovers/ in the project root (if it doesn't exist).
Write the full 8-section handover to: .claude/handovers/{timestamp}.md
Verify: Read back the file to confirm it was written correctly.
List all .md files in .claude/handovers/, sorted by name (newest first).
Delete all files beyond the 3 most recent.
Verify: Re-list the directory and confirm only ≤3 files remain.
In the project memory file, update (or add) a ## Last Handover section:
## Last Handover
- file: .claude/handovers/{timestamp}.md <!-- handover-sourced -->
- summary: {one sentence from the Summary section} <!-- handover-sourced -->
Verify: Read MEMORY.md to confirm the update.
If there is an unsaved implementation plan in context, save it to PLAN.md. Skip if already current.
After all saves, output this confirmation:
Handover saved:
.claude/handovers/{timestamp}.mdFiles retained: {comma-separated list of kept handover files} MEMORY.md updated: yes/no Ready to close the session.
Trigger: /handover (and /quiver:handover should also work)
Setup:
Expected behavior:
git shell blocks (rev-parse, status --short, diff --stat); on a non-git directory, prints > No git repository detected -- skipping branch/commit context. and continues.Handover skipped and writes nothing..claude/handovers/<timestamp>.md (filename uses date '+%Y-%m-%d_%H-%M-%S' format), prunes the directory to the 3 most recent files, and updates MEMORY.md with a ## Last Handover block tagged <!-- handover-sourced -->.MEMORY.md updated: yes.Verification checklist:
/handover.YYYY-MM-DD_HH-MM-SS.md.MEMORY.md gains a ## Last Handover block with the <!-- handover-sourced --> marker.Known gotchas:
hooks/scripts/pre-compact-handover.sh. If headings here change, the hook's PROMPT_PREFIX must change in lockstep.