{"id":"create-handoff","name":"create-handoff","summary":"作業を別のセッションに移すためのハンドオフドキュメントを作成する","body":"# Create Handoff\n\nYou are tasked with writing a handoff document to hand off your work to another agent in a new session. You will create a handoff document that is thorough, but also **concise**. The goal is to compact and summarize your context without losing any of the key details of what you're working on.\n\n\n## Process\n### 1. Filepath & Metadata\nUse the following information to understand how to create your document:\n\n**First, determine the session name from existing handoffs:**\n```bash\nls -td thoughts/shared/handoffs/*/ 2>/dev/null | head -1 | xargs basename\n```\n\nThis returns the most recently modified handoff folder name (e.g., `open-source-release`). Use this as the handoff folder name.\n\nIf no handoffs exist, use `general` as the folder name.\n\n**Create your file under:** `thoughts/shared/handoffs/{session-name}/YYYY-MM-DD_HH-MM_description.yaml`, where:\n- `{session-name}` is from existing handoffs (e.g., `open-source-release`) or `general` if none exist\n- `YYYY-MM-DD` is today's date\n- `HH-MM` is the current time in 24-hour format (no seconds needed)\n- `description` is a brief kebab-case description\n\n**Examples:**\n- `thoughts/shared/handoffs/open-source-release/2026-01-08_16-30_memory-system-fix.yaml`\n- `thoughts/shared/handoffs/general/2026-01-08_16-30_bug-investigation.yaml`\n\n### 2. Write YAML handoff (~400 tokens vs ~2000 for markdown)\n\n**CRITICAL: Use EXACTLY this YAML format. Do NOT deviate or use alternative field names.**\n\nThe `goal:` and `now:` fields are shown in the statusline - they MUST be named exactly this.\n\n```yaml\n---\nsession: {session-name from ledger}\ndate: YYYY-MM-DD\nstatus: complete|partial|blocked\noutcome: SUCCEEDED|PARTIAL_PLUS|PARTIAL_MINUS|FAILED\n---\n\ngoal: {What this session accomplished - shown in statusline}\nnow: {What next session should do first - shown in statusline}\ntest: {Command to verify this work, e.g., pytest tests/test_foo.py}\n\ndone_this_session:\n  - task: {First completed task}\n    files: [{file1.py}, {file2.py}]\n  - task: {Second completed task}\n    files: [{file3.py}]\n\nblockers: [{any blocking issues}]\n\nquestions: [{unresolved questions for next session}]\n\ndecisions:\n  - {decision_name}: {rationale}\n\nfindings:\n  - {key_finding}: {details}\n\nworked: [{approaches that worked}]\nfailed: [{approaches that failed and why}]\n\nnext:\n  - {First next step}\n  - {Second next step}\n\nfiles:\n  created: [{new files}]\n  modified: [{changed files}]\n```\n\n**Field guide:**\n- `goal:` + `now:` - REQUIRED, shown in statusline\n- `done_this_session:` - What was accomplished with file references\n- `decisions:` - Important choices and rationale\n- `findings:` - Key learnings\n- `worked:` / `failed:` - What to repeat vs avoid\n- `next:` - Action items for next session\n\n**DO NOT use alternative field names like `session_goal`, `objective`, `focus`, `current`, etc.**\n**The statusline parser looks for EXACTLY `goal:` and `now:` - nothing else works.**\n---\n\n### 3. Mark Session Outcome (REQUIRED)\n\n**IMPORTANT:** Before responding to the user, you MUST ask about the session outcome.\n\nUse the AskUserQuestion tool with these exact options:\n\n```\nQuestion: \"How did this session go?\"\nOptions:\n  - SUCCEEDED: Task completed successfully\n  - PARTIAL_PLUS: Mostly done, minor issues remain\n  - PARTIAL_MINUS: Some progress, major issues remain\n  - FAILED: Task abandoned or blocked\n```\n\nAfter the user responds, index and mark the outcome:\n```bash\n# Mark the most recent handoff (works with PostgreSQL or SQLite)\n# Use git root to find project, then opc/scripts/core/\nPROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo \"${CLAUDE_PROJECT_DIR:-.}\")\n\n# First, index the handoff into the database\ncd \"$PROJECT_ROOT/opc\" && uv run python scripts/core/artifact_index.py --file thoughts/shared/handoffs/{session_name}/{filename}.yaml\n\n# Then mark the outcome\ncd \"$PROJECT_ROOT/opc\" && uv run python scripts/core/artifact_mark.py --latest --outcome <USER_CHOICE>\n```\n\n**IMPORTANT:** Replace `{session_name}` and `{filename}` with the actual values from step 1.\n\nThese commands auto-detect the database (PostgreSQL if configured, SQLite fallback).\n\n**Note:** If indexing fails, the marking step will show \"Database marking was not available\" - this is acceptable for the first handoff but indicates the indexing step was skipped.\n\n### 4. Confirm completion\n\nAfter marking the outcome, respond to the user:\n\n```\nHandoff created! Outcome marked as [OUTCOME].\n\nResume in a new session with:\n/resume_handoff path/to/handoff.yaml\n```\n\n---\n##.  Additional Notes & Instructions\n- **more information, not less**. This is a guideline that defines the minimum of what a handoff should be. Always feel free to include more information if necessary.\n- **be thorough and precise**. include both top-level objectives, and lower-level details as necessary.\n- **avoid excessive code snippets**. While a brief snippet to describe some key change is important, avoid large code blocks or diffs; do not include one unless it's necessary (e.g. pertains to an error you're debugging). Prefer using `/path/to/file.ext:line` references that an agent can follow later when it's ready, e.g. `packages/dashboard/src/app/dashboard/page.tsx:12-24`","author":"@parcadei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/create_handoff","license":"MIT","category":"writing","lang":"en","tokens":1276,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"SKILL.v6.md","size":3749,"sha256":"8810625a188292e831db82a254f474a14287d0d1473a4ed014073fc3fd7657cc"}],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}