其他
在清理上下文或长任务中断前创建 YAML handoff…
当需要在运行 `/clear` 前、上下文接近 70%+、多天实现、反复拿起放下的复杂重构、或预计达到 85%+ 上下文时,用 YAML handoff 保存会话状态,便于新会话恢复。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 40/100 ×0.15
适用场景
在清理上下文或长任务中断前创建 YAML特定
解决思路
- 确认该技能是 `/create_handoff` 的别名:两者输出相同的 YAML 格式,用于跨 `/clear` 保存状态。
- 先从已有 handoff 确定 session name:运行 `ls -td thoughts/shared/handoffs/*/ 2>/dev/null | head -1 | xargs basename`。
- 该命令返回最近修改的 handoff 文件夹名(例如 `open-source-release`),用它作为 handoff 文件夹名。
- 若没有已有 handoff,使用 `general` 作为文件夹名。
- 在 `thoughts/shared/handoffs/{session-name}/YYYY-MM-DD_HH-MM_description.yaml` 创建文件:`{session-name}` 来自已有 handoff 或 `general`;`YYYY-MM-DD` 为当天日期;`HH-MM` 为当前 24 小时时间(不需要秒);`description` 为简短 kebab-case 描述。
- 文件名示例:`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`。
- 写入约 400 tokens 的 YAML handoff。
- 关键:严格使用原技能给出的 YAML 格式,不要偏离,也不要使用替代字段名。
- `goal:` 和 `now:` 字段会显示在 statusline,必须完全按这两个名称命名。
- YAML frontmatter 使用:`session: {session-name from ledger}`、`date: YYYY-MM-DD`、`status: complete|partial|blocked`、`outcome: SUCCEEDED|PARTIAL_PLUS|PARTIAL_MINUS|FAILED`。
- 填写 `goal:`:本次会话完成了什么,显示在 statusline。
- 填写 `now:`:下个会话首先应做什么,显示在 statusline。
- 填写 `test:`:用于验证此次工作的命令,例如 `pytest tests/test_foo.py`。
- 填写 `done_this_session:`:每个已完成任务包含 `task` 和对应 `files`,例如第一个任务对应 `[{file1.py}, {file2.py}]`,第二个任务对应 `[{file3.py}]`。
- 填写 `blockers:`:任何阻塞问题。
- 填写 `questions:`:留给下个会话的未解决问题。
- 填写 `decisions:`:每个决策写决策名和理由。
- 填写 `findings:`:每个关键发现写发现名和细节。
- 填写 `worked:`:有效的方法;填写 `failed:`:失败的方法及原因。
- 填写 `next:`:下一步行动项列表。
- 填写 `files:`:`created:` 新文件,`modified:` 改动文件。
- 字段指南:`goal:` + `now:` 必填且显示在 statusline;`done_this_session:` 记录完成内容并引用文件;`decisions:` 记录重要选择和理由;`findings:` 记录关键学习;`worked:` / `failed:` 记录应重复与应避免的做法;`next:` 记录下个会话行动项。
- 不要使用替代字段名,例如 `session_goal`、`objective`、`focus`、`current` 等。
- statusline 解析器只查找完全一致的 `goal:` 和 `now:`,其他名称都无效。
- 标记会话结果(必需):在回复用户前,必须询问会话结果。
- 使用 AskUserQuestion 工具,问题为「How did this session go?」,选项必须精确为:`SUCCEEDED: Task completed successfully`、`PARTIAL_PLUS: Mostly done, minor issues remain`、`PARTIAL_MINUS: Some progress, major issues remain`、`FAILED: Task abandoned or blocked`。
- 用户回答后标记结果:先运行 `PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || echo "${CLAUDE_PROJECT_DIR:-.}")`,再运行 `cd "$PROJECT_ROOT/opc" && uv run python scripts/core/artifact_mark.py --latest --outcome <USER_CHOICE>`(适用于 PostgreSQL 或 SQLite)。
- 确认完成:标记结果后回复用户「Handoff created! Outcome marked as [OUTCOME].」,并提示「Resume in a new session with:」和「/resume_handoff path/to/handoff.yaml」。
- 采用 clear + 加载 handoff,而不是 compact:每次 compact 都是有损压缩,多次 compact 后上下文退化;clear 后加载 handoff 能得到完整信号的新上下文。
适用边界 · 注意事项
- 快速任务(< 30 分钟)
- 简单 bug 修复
- 单文件改动