Handoff Skill Quick Ref: Create structured handoff for session continuation. Output: + continuation prompt. YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it. Create a handoff document that enables seamless session continuation. Execution Steps Given : Step 1: Create Output Directory Step 2: Identify Session Context If topic provided: Use it as the handoff identifier. If no topic: Derive from recent activity: Use the most descriptive source as the topic slug. Topic slug format: 2-4 words, lowercase, hyphen-separated (e.g., , ). Fallback: If no good topic found, use (e.g., ). Step 3: Gat…

\"\ncheck \"SKILL.md has name: handoff\" \"grep -q '^name: handoff' '$SKILL_DIR/SKILL.md'\"\ncheck \"SKILL.md mentions session context\" \"grep -qi 'session context\\|session continuation' '$SKILL_DIR/SKILL.md'\"\ncheck \"SKILL.md mentions .agents/ artifacts\" \"grep -q '\\.agents/' '$SKILL_DIR/SKILL.md'\"\n\necho \"\"; echo \"Results: $PASS passed, $FAIL failed\"\n[ $FAIL -eq 0 ] && exit 0 || exit 1\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":738,"content_sha256":"05042b4d3aa32e920c0b8cf7ef110af0429cf6315fcba1b23ab0f465922b714b"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Handoff Skill","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"Quick Ref:","type":"text","marks":[{"type":"strong"}]},{"text":" Create structured handoff for session continuation. Output: ","type":"text"},{"text":".agents/handoff/YYYY-MM-DD-\u003ctopic>.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" + continuation prompt.","type":"text"}]}]},{"type":"paragraph","content":[{"text":"YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.","type":"text","marks":[{"type":"strong"}]}]},{"type":"paragraph","content":[{"text":"Create a handoff document that enables seamless session continuation.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Execution Steps","type":"text"}]},{"type":"paragraph","content":[{"text":"Given ","type":"text"},{"text":"/handoff [topic]","type":"text","marks":[{"type":"code_inline"}]},{"text":":","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Create Output Directory","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"mkdir -p .agents/handoff","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Identify Session Context","type":"text"}]},{"type":"paragraph","content":[{"text":"If topic provided:","type":"text","marks":[{"type":"strong"}]},{"text":" Use it as the handoff identifier.","type":"text"}]},{"type":"paragraph","content":[{"text":"If no topic:","type":"text","marks":[{"type":"strong"}]},{"text":" Derive from recent activity:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Recent commits\ngit log --oneline -5 --format=\"%s\" | head -1\n\n# Check current issue\nbd current 2>/dev/null | head -1\n\n# Check ratchet state\nao ratchet status 2>/dev/null | head -3","type":"text"}]},{"type":"paragraph","content":[{"text":"Use the most descriptive source as the topic slug.","type":"text"}]},{"type":"paragraph","content":[{"text":"Topic slug format:","type":"text","marks":[{"type":"strong"}]},{"text":" 2-4 words, lowercase, hyphen-separated (e.g., ","type":"text"},{"text":"auth-refactor","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"api-validation","type":"text","marks":[{"type":"code_inline"}]},{"text":"). ","type":"text"},{"text":"Fallback:","type":"text","marks":[{"type":"strong"}]},{"text":" If no good topic found, use ","type":"text"},{"text":"session-$(date +%H%M)","type":"text","marks":[{"type":"code_inline"}]},{"text":" (e.g., ","type":"text"},{"text":"session-1430","type":"text","marks":[{"type":"code_inline"}]},{"text":").","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Gather Session Accomplishments","type":"text"}]},{"type":"paragraph","content":[{"text":"Review what was done this session:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Recent commits this session (last 2 hours)\ngit log --oneline --since=\"2 hours ago\" 2>/dev/null\n\n# Recent file changes\ngit diff --stat HEAD~5 2>/dev/null | head -20\n\n# Research produced\nls -lt .agents/research/*.md 2>/dev/null | head -3\n\n# Plans created\nls -lt .agents/plans/*.md 2>/dev/null | head -3\n\n# Issues closed\nbd list --status closed --since \"2 hours ago\" 2>/dev/null | head -5","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Identify Pause Point","type":"text"}]},{"type":"paragraph","content":[{"text":"Determine where we stopped:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What was the last thing done?","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What was about to happen next?","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Were we mid-task or between tasks?","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Any blockers or decisions pending?","type":"text","marks":[{"type":"strong"}]}]}]}]},{"type":"paragraph","content":[{"text":"Check for in-progress work:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bd list --status in_progress 2>/dev/null | head -5","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Identify Key Files to Read","type":"text"}]},{"type":"paragraph","content":[{"text":"List files the next session should read first:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recently modified files (core changes)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Research/plan artifacts (context)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Any files mentioned in pending issues","type":"text"}]}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Recently modified\ngit diff --name-only HEAD~5 2>/dev/null | head -10\n\n# Key artifacts\nls .agents/research/*.md .agents/plans/*.md 2>/dev/null | tail -5","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 6: Write Handoff Document","type":"text"}]},{"type":"paragraph","content":[{"text":"Write to:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":".agents/handoff/YYYY-MM-DD-\u003ctopic-slug>.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" (use ","type":"text"},{"text":"date +%Y-%m-%d","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"# Handoff: \u003cTopic>\n\n**Date:** YYYY-MM-DDTHH:MM:SSZ\n**Session:** \u003cbrief session description>\n**Status:** \u003cPaused mid-task | Between tasks | Blocked on X>\n\n---\n\n## What We Accomplished This Session\n\n### 1. \u003cAccomplishment 1>\n\n\u003cBrief description with file:line citations>\n\n**Files changed:**\n- `path/to/file.py` - Description\n\n### 2. \u003cAccomplishment 2>\n\n...\n\n---\n\n## Where We Paused\n\n\u003cClear description of pause point>\n\n**Last action:** \u003cwhat was just done>\n**Next action:** \u003cwhat should happen next>\n**Blockers (if any):** \u003canything blocking progress>\n\n---\n\n## Context to Gather for Next Session\n\n1. \u003cContext item 1> - \u003cwhy needed>\n2. \u003cContext item 2> - \u003cwhy needed>\n\n---\n\n## Questions to Answer\n\n1. \u003cOpen question needing decision>\n2. \u003cClarification needed>\n\n---\n\n## Files to Read\n","type":"text"}]},{"type":"heading","attrs":{"level":1},"content":[{"text":"Priority files (read first)","type":"text"}]},{"type":"paragraph","content":[{"text":"path/to/critical-file.py .agents/research/YYYY-MM-DD-topic.md","type":"text"}]},{"type":"heading","attrs":{"level":1},"content":[{"text":"Secondary files (for context)","type":"text"}]},{"type":"paragraph","content":[{"text":"path/to/related-file.py","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\n### Step 7: Write Continuation Prompt\n\n**Write to:** `.agents/handoff/YYYY-MM-DD-\u003ctopic-slug>-prompt.md` (use `date +%Y-%m-%d`)\n\n```markdown\n# Continuation Prompt for New Session\n\nCopy/paste this to start the next session:\n\n---\n\n## Context\n\n\u003c2-3 sentences describing the work and where we paused>\n\n## Read First\n\n1. The handoff doc: `.agents/handoff/YYYY-MM-DD-\u003ctopic-slug>.md`\n2. \u003cOther critical files>\n\n## What I Need Help With\n\n\u003cClear statement of what the next session should accomplish>\n\n## Key Files\n","type":"text"}]},{"type":"paragraph","content":[{"text":"\u003clist of paths to read>","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\n## Open Questions\n\n1. \u003cQuestion 1>\n2. \u003cQuestion 2>\n\n---\n\n\u003cSuggested skill to invoke, e.g., \"Use /implement to continue\">","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 8: Extract Learnings (Optional)","type":"text"}]},{"type":"paragraph","content":[{"text":"If significant learnings occurred this session, also run post-mortem:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Check if post-mortem skill should be invoked\n# (if >3 commits or major decisions made)\ngit log --oneline --since=\"2 hours ago\" 2>/dev/null | wc -l","type":"text"}]},{"type":"paragraph","content":[{"text":"If ≥3 commits:","type":"text","marks":[{"type":"strong"}]},{"text":" Suggest running ","type":"text"},{"text":"/post-mortem --quick","type":"text","marks":[{"type":"code_inline"}]},{"text":" to extract learnings. ","type":"text"},{"text":"If \u003c3 commits:","type":"text","marks":[{"type":"strong"}]},{"text":" Handoff alone is sufficient; learnings are likely minimal.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 9: Report to User","type":"text"}]},{"type":"paragraph","content":[{"text":"Tell the user:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Handoff document location","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Continuation prompt location","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Summary of what was captured","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Suggestion: Copy the continuation prompt for next session","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If learnings detected, suggest ","type":"text"},{"text":"/post-mortem --quick","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"paragraph","content":[{"text":"Output completion marker:","type":"text","marks":[{"type":"strong"}]}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\u003cpromise>DONE\u003c/promise>","type":"text"}]},{"type":"paragraph","content":[{"text":"If no context to capture (no commits, no changes):","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"\u003cpromise>EMPTY\u003c/promise>\nReason: No session activity found to hand off","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Example Output","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Handoff created:\n .agents/handoff/20260131T143000Z-auth-refactor.md\n .agents/handoff/20260131T143000Z-auth-refactor-prompt.md\n\nSession captured:\n- 5 commits, 12 files changed\n- Paused: mid-implementation of OAuth flow\n- Next: Complete token refresh logic\n\nTo continue: Copy the prompt from auth-refactor-prompt.md\n\n\u003cpromise>DONE\u003c/promise>","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Key Rules","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Capture state, not just summary","type":"text","marks":[{"type":"strong"}]},{"text":" - next session needs to pick up exactly where we left off","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Identify blockers clearly","type":"text","marks":[{"type":"strong"}]},{"text":" - don't leave the next session guessing","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"List files explicitly","type":"text","marks":[{"type":"strong"}]},{"text":" - paths, not descriptions","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Write the continuation prompt","type":"text","marks":[{"type":"strong"}]},{"text":" - make resumption effortless","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Cite everything","type":"text","marks":[{"type":"strong"}]},{"text":" - file:line for all references","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Integration with /post-mortem","type":"text"}]},{"type":"paragraph","content":[{"text":"Handoff captures ","type":"text"},{"text":"state","type":"text","marks":[{"type":"em"}]},{"text":" for continuation. Post-mortem captures ","type":"text"},{"text":"learnings","type":"text","marks":[{"type":"em"}]},{"text":" for the flywheel (full knowledge lifecycle).","type":"text"}]},{"type":"paragraph","content":[{"text":"For a clean session end:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"/handoff # Capture state for continuation\n/post-mortem --quick # Extract learnings for future","type":"text"}]},{"type":"paragraph","content":[{"text":"Both should be run when ending a productive session.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Without ao CLI","type":"text"}]},{"type":"paragraph","content":[{"text":"If ao CLI not available:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skip the ","type":"text"},{"text":"ao ratchet status","type":"text","marks":[{"type":"code_inline"}]},{"text":" check in Step 2","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step 8 retro suggestion still works (uses git commit count)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"All handoff documents are still written to ","type":"text"},{"text":".agents/handoff/","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Knowledge is captured for future sessions via handoff, just not indexed","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Examples","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Paused Mid-Implementation","type":"text"}]},{"type":"paragraph","content":[{"text":"User says:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"/handoff","type":"text","marks":[{"type":"code_inline"}]},{"text":" (after working on OAuth flow for 2 hours, need to stop)","type":"text"}]},{"type":"paragraph","content":[{"text":"What happens:","type":"text","marks":[{"type":"strong"}]}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent detects recent commits (5 commits in last 2 hours, auth-related)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent checks in-progress work with ","type":"text"},{"text":"bd list","type":"text","marks":[{"type":"code_inline"}]},{"text":" (issue #42 still open)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent identifies pause point: \"Completed token generation, about to start refresh logic\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent lists key files: auth.go, token.go, research doc, plan doc","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent writes handoff document with accomplishments and pause state","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent writes continuation prompt with clear next action","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent checks commits (5) and suggests running ","type":"text"},{"text":"/post-mortem --quick","type":"text","marks":[{"type":"code_inline"}]},{"text":" to extract learnings","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Result:","type":"text","marks":[{"type":"strong"}]},{"text":" Handoff captures state, continuation prompt ready, post-mortem suggested.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Between Tasks, Clean State","type":"text"}]},{"type":"paragraph","content":[{"text":"User says:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"/handoff","type":"text","marks":[{"type":"code_inline"}]},{"text":" (just closed issue #40, about to start #41 next session)","type":"text"}]},{"type":"paragraph","content":[{"text":"What happens:","type":"text","marks":[{"type":"strong"}]}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent detects 1 commit (closed issue #40), no pending changes","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent identifies pause point: \"Between tasks. Last: closed #40 (fixed rate limiting). Next: start #41 (add JWT refresh)\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent lists files from #40 (middleware.go, config.go)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent writes handoff with accomplishment summary and next-task preview","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent writes continuation prompt with ","type":"text"},{"text":"/implement #41","type":"text","marks":[{"type":"code_inline"}]},{"text":" suggestion","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent skips post-mortem suggestion (\u003c3 commits)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Result:","type":"text","marks":[{"type":"strong"}]},{"text":" Handoff captures clean boundary, continuation is simple.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Auto-Derived Topic","type":"text"}]},{"type":"paragraph","content":[{"text":"User says:","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"/handoff","type":"text","marks":[{"type":"code_inline"}]},{"text":" (no topic provided, agent derives from commits)","type":"text"}]},{"type":"paragraph","content":[{"text":"What happens:","type":"text","marks":[{"type":"strong"}]}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent reads recent commits: \"feat: add rate limiting\", \"fix: token expiry\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent derives topic slug: \"rate-limiting\" (from most recent commit)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent creates handoff files with derived topic in filename","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Agent reports: \"Handoff created: .agents/handoff/20260213T143000Z-rate-limiting.md\"","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Result:","type":"text","marks":[{"type":"strong"}]},{"text":" Topic auto-derived from git history, no user input needed.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Troubleshooting","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Problem","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Cause","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Solution","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"\"No session activity found to hand off\"","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"No commits, no file changes detected","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Expected for idle sessions. Nothing to hand off. Start new work or skip handoff.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Handoff files not written","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".agents/handoff/","type":"text","marks":[{"type":"code_inline"}]},{"text":" directory does not exist or not writable","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"mkdir -p .agents/handoff","type":"text","marks":[{"type":"code_inline"}]},{"text":" or check directory permissions","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Topic slug is generic \"session-1430\"","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"No descriptive commits or issues to derive topic from","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Provide explicit topic: ","type":"text"},{"text":"/handoff auth-refactor","type":"text","marks":[{"type":"code_inline"}]},{"text":" for better naming","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Continuation prompt missing key context","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Recent files or artifacts not listed in handoff","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Manually add missing files to handoff document or re-run with explicit topic","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Post-mortem suggested but no learnings","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Agent sees ≥3 commits and auto-suggests ","type":"text"},{"text":"/post-mortem --quick","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"/post-mortem --quick","type":"text","marks":[{"type":"code_inline"}]},{"text":" or skip if commits are trivial (agent can't judge learning quality, only commit count)","type":"text"}]}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Reference Documents","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/handoff.feature","type":"text","marks":[{"type":"link","attrs":{"href":"references/handoff.feature","title":null}}]},{"text":" — Executable spec: topic derivation, evidence-based accomplishments, pause-point + in-progress capture, next-files list, structured doc + continuation prompt (soc-qk4b)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"See Also","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"skills/post-mortem/SKILL.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — Full validation + knowledge lifecycle (council + extraction + activation + retirement)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"skills/retro/SKILL.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — Quick-capture a learning","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"handoff","author":"@skillopedia","source":{"stars":375,"repo_name":"agentops","origin_url":"https://github.com/boshu2/agentops/blob/HEAD/skills/handoff/SKILL.md","repo_owner":"boshu2","body_sha256":"297607b05ed0d4fe0ba1728870f17743f2b84c45180c873df8f93eee610a4968","cluster_key":"6123211e0440da316c6a44acf079a425aa275839370fe76387f402dbceac0e21","clean_bundle":{"format":"clean-skill-bundle-v1","source":"boshu2/agentops/skills/handoff/SKILL.md","attachments":[{"id":"51d556b7-1a92-550a-ae4b-3b7cd1c756a4","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/51d556b7-1a92-550a-ae4b-3b7cd1c756a4/attachment","path":"references/.gitkeep","size":0,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","contentType":"text/plain; charset=utf-8"},{"id":"1383e635-2a4e-5776-a879-c86e64dc5ce3","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/1383e635-2a4e-5776-a879-c86e64dc5ce3/attachment.feature","path":"references/handoff.feature","size":2070,"sha256":"fe758cfe02718e1d2f0b8b9d2f0fc22c52dafab7bfce8b01407220e8728ba732","contentType":"text/plain; charset=utf-8"},{"id":"72204c41-bb5e-5db3-b0e2-28039086a25f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/72204c41-bb5e-5db3-b0e2-28039086a25f/attachment.sh","path":"scripts/validate.sh","size":738,"sha256":"05042b4d3aa32e920c0b8cf7ef110af0429cf6315fcba1b23ab0f465922b714b","contentType":"application/x-sh; charset=utf-8"}],"bundle_sha256":"cf49fd1f78e3449013232675e5d3dfb1f3f306cfe409e00f36a0dbb05ffe59f8","attachment_count":3,"text_attachments":1,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":2,"excluded_attachments":[]},"cluster_size":2,"skill_md_path":"skills/handoff/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"general","category_label":"General"},"exact_dupes_collapsed_into_this":1},"context":{"intent":{"mode":"none"},"window":"inherit","intel_scope":"none"},"version":"v1","category":"general","consumes":[],"metadata":{"tier":"session","dependencies":[]},"produces":[".agents/research/*.md"],"practices":["adr","wiki-knowledge-surface","code-complete"],"import_tag":"clean-skills-v1","context_rel":[],"description":"Write compact session handoffs.","hexagonal_role":"supporting","output_contract":".agents/handoffs/YYYY-MM-DD-*.md","skill_api_version":1}},"renderedAt":1782989085072}

Handoff Skill Quick Ref: Create structured handoff for session continuation. Output: + continuation prompt. YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it. Create a handoff document that enables seamless session continuation. Execution Steps Given : Step 1: Create Output Directory Step 2: Identify Session Context If topic provided: Use it as the handoff identifier. If no topic: Derive from recent activity: Use the most descriptive source as the topic slug. Topic slug format: 2-4 words, lowercase, hyphen-separated (e.g., , ). Fallback: If no good topic found, use (e.g., ). Step 3: Gat…