create-handoff — скилл для Claude Code: передача работы новой сессии
Скилл пишет YAML-документ о ходе работы, чтобы следующая сессия агента подхватила задачу без потери контекста.
npx skills add parcadei/Continuous-Claude-v3 --skill create-handoff -a claude-code
npx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a claude-codeЧто делает create-handoff
Скилл create-handoff собирает итог текущей сессии в один YAML-файл. Агент проходит по шагам: определяет имя сессии по последней папке в thoughts/shared/handoffs/, формирует путь вида YYYY-MM-DD_HH-MM_description.yaml и заполняет поля. Если готовых хендоффов нет, папкой становится general.
Формат строгий. Поля goal: и now: обязательны, потому что их читает statusline, и переименовывать их нельзя. Остальное — что сделано за сессию с привязкой к файлам, принятые решения, находки, удачные и провалившиеся подходы, следующие шаги. Автор советует ссылаться на код через /path/to/file.ext:line, а не вставлять большие диффы.
После записи файла скилл спрашивает про исход сессии через AskUserQuestion (SUCCEEDED, PARTIAL_PLUS, PARTIAL_MINUS, FAILED) и индексирует документ в базе командой uv run python scripts/core/artifact_index.py. Для этого нужны uv и каталог opc в корне проекта — без них шаг с отметкой исхода не сработает.
Какие задачи решает
- передать незаконченную задачу агенту в новой сессии
- зафиксировать принятые решения и их причины
- записать, какие подходы сработали, а какие нет
- отметить исход сессии в базе для истории
- собрать список следующих шагов с привязкой к файлам
Примеры запросов агенту
- сделай хендофф по текущей сессии
- create-handoff: зафиксируй, что мы сделали и что дальше
- подготовь handoff-документ для следующей сессии
Как установить create-handoff
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill create-handoff -a claude-codenpx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a claude-code2Вручную: положить файлы
~/.claude/skills/create_handoff/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/create_handoff/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a codex2Вручную: положить файлы
.agents/skills/create_handoff/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a cursor2Вручную: положить файлы
.cursor/skills/create_handoff/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install parcadei/Continuous-Claude-v3 create_handoff2Вручную: положить файлы
.github/skills/create_handoff/SKILL.md1Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a gemini-cli2Командой платформы
gemini skills install https://github.com/parcadei/Continuous-Claude-v3 --path .claude/skills/create_handoffВручную: положить файлы
.devin/skills/create_handoff/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add parcadei/Continuous-Claude-v3 --skill create_handoff -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о create-handoff
Как установить create-handoff в Claude?
Через skills CLI: npx skills add parcadei/Continuous-Claude-v3 --skill create-handoff -a claude-code. После установки файл скилла лежит в ~/.claude/skills/create_handoff/SKILL.md.
Что делает create-handoff?
Пишет YAML-документ о ходе работы: цель, текущий шаг, сделанные задачи с файлами, решения, находки и следующие шаги. Документ нужен, чтобы другая сессия агента продолжила работу.
Что нужно для отметки исхода сессии?
Скилл спрашивает исход через AskUserQuestion, затем индексирует файл командой uv run python scripts/core/artifact_index.py из каталога opc в корне проекта. Нужны uv и этот каталог; база определяется автоматически — PostgreSQL, если настроена, иначе SQLite.
Исходный текст
SKILL.md · MIT
---
name: create-handoff
description: Create handoff document for transferring work to another session
---
# Create Handoff
You 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.
## Process
### 1. Filepath & Metadata
Use the following information to understand how to create your document:
**First, determine the session name from existing handoffs:**
```bash
ls -td thoughts/shared/handoffs/*/ 2>/dev/null | head -1 | xargs basename
```
This returns the most recently modified handoff folder name (e.g., `open-source-release`). Use this as the handoff folder name.
If no handoffs exist, use `general` as the folder name.
**Create your file under:** `thoughts/shared/handoffs/{session-name}/YYYY-MM-DD_HH-MM_description.yaml`, where:
- `{session-name}` is from existing handoffs (e.g., `open-source-release`) or `general` if none exist
- `YYYY-MM-DD` is today's date
- `HH-MM` is the current time in 24-hour format (no seconds needed)
- `description` is a brief kebab-case description
**Examples:**
- `thoughts/shared/handoffs/open-source-release/2026-01-08_16-30_memory-system-fix.yaml`
- `thoughts/shared/handoffs/general/2026-01-08_16-30_bug-investigation.yaml`
### 2. Write YAML handoff (~400 tokens vs ~2000 for markdown)
**CRITICAL: Use EXACTLY this YAML format. Do NOT deviate or use alternative field names.**
The `goal:` and `now:` fields are shown in the statusline - they MUST be named exactly this.
```yaml
---
session: {session-name from ledger}
date: YYYY-MM-DD
status: complete|partial|blocked
outcome: SUCCEEDED|PARTIAL_PLUS|PARTIAL_MINUS|FAILED
---
goal: {What this session accomplished - shown in statusline}
now: {What next session should do first - shown in statusline}
test: {Command to verify this work, e.g., pytest tests/test_foo.py}
done_this_session:
- task: {First completed task}
files: [{file1.py}, {file2.py}]
- task: {Second completed task}
files: [{file3.py}]
blockers: [{any blocking issues}]
questions: [{unresolved questions for next session}]
decisions:
- {decision_name}: {rationale}
findings:
- {key_finding}: {details}
worked: [{approaches that worked}]
failed: [{approaches that failed and why}]
next:
- {First next step}
- {Second next step}
files:
created: [{new files}]
modified: [{changed files}]
```
**Field guide:**
- `goal:` + `now:` - REQUIRED, shown in statusline
- `done_this_session:` - What was accomplished with file references
- `decisions:` - Important choices and rationale
- `findings:` - Key learnings
- `worked:` / `failed:` - What to repeat vs avoid
- `next:` - Action items for next session
**DO NOT use alternative field names like `session_goal`, `objective`, `focus`, `current`, etc.**
**The statusline parser looks for EXACTLY `goal:` and `now:` - nothing else works.**
---
### 3. Mark Session Outcome (REQUIRED)
**IMPORTANT:** Before responding to the user, you MUST ask about the session outcome.
Use the AskUserQuestion tool with these exact options:
```
Question: "How did this session go?"
Options:
- SUCCEEDED: Task completed successfully
- PARTIAL_PLUS: Mostly done, minor issues remain
- PARTIAL_MINUS: Some progress, major issues remain
- FAILED: Task abandoned or blocked
```
After the user responds, index and mark the outcome:
```bash
# Mark the most recent handoff (works with PostgreSQL or SQLite)
# Use git root to find project, then opc/scripts/core/
PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "${CLAUDE_PROJECT_DIR:-.}")
# First, index the handoff into the database
cd "$PROJECT_ROOT/opc" && uv run python scripts/core/artifact_index.py --file thoughts/shared/handoffs/{session_name}/{filename}.yaml
# Then mark the outcome
cd "$PROJECT_ROOT/opc" && uv run python scripts/core/artifact_mark.py --latest --outcome <USER_CHOICE>
```
**IMPORTANT:** Replace `{session_name}` and `{filename}` with the actual values from step 1.
These commands auto-detect the database (PostgreSQL if configured, SQLite fallback).
**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.
### 4. Confirm completion
After marking the outcome, respond to the user:
```
Handoff created! Outcome marked as [OUTCOME].
Resume in a new session with:
/resume_handoff path/to/handoff.yaml
```
---
##. Additional Notes & Instructions
- **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.
- **be thorough and precise**. include both top-level objectives, and lower-level details as necessary.
- **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`
© parcadei · MIT · parcadei/Continuous-Claude-v3