一键导入
handoff
Save workstream state as workspace-context. Use anytime during work to capture progress, decisions, and next steps. Accepts optional name parameter.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Save workstream state as workspace-context. Use anytime during work to capture progress, decisions, and next steps. Accepts optional name parameter.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Finalize a work session — rebase, synthesize release notes from spec/plan/session tracker/commits, create PRs with unified presentation. Handles all project repos and workspace repo. Use when work on a session is done.
Workspace maintenance — audit integrity, clean up stale context, suggest merges. Run periodically or before /release.
Suspend current work — updates session tracker, captures state to the tracker body, pushes all repos, creates draft PRs. Use when stepping away from work that isn't finished.
First-time workspace initialization. Clones repos, installs template components, extracts team knowledge from documentation sources and Claude chat history, activates rules, configures user identity. Run once after scaffolding with --init.
Prepend a new CHANGELOG.md entry per project repo by synthesizing unreleased branch notes. Deletes consumed branch notes and synthesizes workspace-context into canonical (locked) entries. Use at release time.
Apply a staged template update to an initialized workspace. The CLI stages a payload in .workspace-update/; this skill processes it. Runs maintenance audit before and after.
| name | handoff |
| description | Save workstream state as workspace-context. Use anytime during work to capture progress, decisions, and next steps. Accepts optional name parameter. |
Save structured workstream state to workspace-context. Usable anytime, any number of times. Per-user (team-member/{user}/) is the default scope.
/handoff {name} — create or update a named handoff/handoff (no param) — analyze session and suggest name(s)When called within an active work session (the active-session pointer at .claude/.active-session.json exists inside the current worktree):
work-sessions/{session-name}/workspace/session.md## Progress section with current state (coherent-revisions rule)cd work-sessions/{session-name}/workspace
git add session.md
git commit -m "handoff: update {session-name} tracker"
When called from the workspace root (no active session):
local-only-* files are writable from the root--local-onlyThe flows below apply when NOT in an active work session, or when the user explicitly asks for a standalone handoff file.
.claude/settings.local.json (workspace.user)--scope team-member --user {user}--scope shared--local-only to either scopehandoff_ prefix, and write the file with full frontmatter:echo "$BODY" | node .claude/scripts/capture-context.mjs \
--type handoff \
--topic {kebab-case-name} \
--scope team-member \
--user {workspace.user} \
--description "{one-line summary}"
Pass --update to overwrite an existing handoff with the same name (otherwise the helper appends -2, -3, … to avoid clobbering). The helper prints the absolute path of the written file on stdout — use that path for the commit step.
The body content sent on stdin should follow this template:
## Status
{What was accomplished in this session}
## Key Decisions
{Important choices made and their rationale}
## Next Steps
- [ ] {Specific next actions}
## Open Questions
{Unresolved questions, if any}
The helper writes the frontmatter (state: ephemeral, lifecycle: active, type: handoff, topic, author, updated). If you need extra fields like branch: or repo:, append them to the frontmatter after the helper writes (or include them inline in the body).
git add {printed-path}
git commit -m "handoff: {name}"
If an active session exists (detected via .claude/.active-session.json), include a ## Tasks at capture time section in the handoff body before piping it to capture-context.mjs:
## Tasks at capture time
- [x] Start work
- [x] Reproduce on iOS Safari
- [ ] Identify race condition
- [ ] Complete work
Use the same GFM checkbox format as session.md's ## Tasks section (just content and status per task — no activeForm field, no blockquote line). Do NOT call sync-tasks.mjs --write — handoffs are snapshots, not the canonical store.
When updating an existing handoff, rewrite it as a fresh snapshot of current understanding (coherent-revisions rule) and pass --update to capture-context.mjs. Don't append below the old content. The updated handoff should read as if written in one pass reflecting the current state.
The helper updates the updated date in frontmatter automatically.
--scope shared is for content deliberately made team-visible