handoff-in
Use when resuming Miller-backed work from a handoff packet or validating a packet before continuing in another harness, model, or session.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when resuming Miller-backed work from a handoff packet or validating a packet before continuing in another harness, model, or session.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use before changing existing indexed files with Miller edit, especially symbol rewrites, text replacements, renames, or refactors.
Use when an agent needs extractor-recognized code-shape facts such as routes, htmx attributes, Alpine directives, SQL DDL/DML, or data-document structure.
Use when starting a Miller task, choosing a Miller tool, or choosing a Miller search mode.
Use when tracing Miller bridge paths in supported providers: dotnet-web URL literals and fetch/axios client requests to ASP.NET signals, client requests to Next.js route handlers or Nuxt server routes, Next.js/Nuxt route references to file routes, Vue/React references to route definitions, or backend-http client requests to Express/FastAPI/Flask/Django/Spring/Go/gin/echo/Rails/NestJS/Laravel/Phoenix/axum/actix/Symfony/Ktor route facts.
Use when orienting on an unfamiliar code area with Miller, explaining a module, finding entry points, or gathering context before a change.
Use when assessing blast radius with Miller, choosing tests for a change, answering who uses a symbol, or planning a refactor.
| name | handoff-in |
| description | Use when resuming Miller-backed work from a handoff packet or validating a packet before continuing in another harness, model, or session. |
| user-invocable | true |
| arguments | [packet path] |
| allowed-tools | mcp__miller__workspace, mcp__miller__impact, mcp__miller__context, mcp__miller__search, mcp__miller__inspect, mcp__miller__trace, Bash |
Read a Miller handoff packet, validate it against the current workspace, and produce a compact resume summary. Do not blindly trust stale packet context.
If no packet path is supplied, read:
.miller/handoffs/latest.md
Packets should use packet_format: miller-handoff-v1 and live under .miller/handoffs/.
workspace_rootworkspace_idbranchheaddirty_stateindex_built_revisionindex_latest_revisionAlso extract the packet's changed-file list from the Changed Files section, especially the git status --short and git diff --name-only blocks.
workspace(operation="status", format="json")
workspace(operation="health")
git rev-parse --show-toplevel
git branch --show-current
git rev-parse --short HEAD
git status --short
git diff --stat
git diff --name-only
git status --shortgit diff --name-onlyindex_built_revision / index_latest_revision from index.built_revision and index.latest_revision| Status | Meaning | Action |
|---|---|---|
safe-to-resume | Same workspace root, same branch, same HEAD, matching dirty state, matching changed-file list, and Miller health is fresh enough. | Use packet impact/context and continue from Next Action. |
drifted-but-resumable | Same workspace root, but branch, HEAD, dirty state, changed-file list, or Miller index revisions drifted in an explainable way. | Say what drifted, rerun Miller checks, then continue with updated facts. |
blocked | Packet is missing, root points at a different repo, Miller health is unusable, or drift changes the product intent. | Stop and ask for the smallest needed decision. |
When there is a current dirty diff, rerun:
impact(git=true)
When packet context is stale or the next action is vague, rerun:
context(query="<packet goal or next action>", token_budget=<budget>)
Output a compact summary, not a dump of the whole packet:
## Handoff Intake
status: safe-to-resume | drifted-but-resumable | blocked
packet: <path>
workspace: <current root>
branch/head: <branch> <head>
drift: <none or concrete differences>
miller: <fresh/needs refresh/problem>
## Continue From
<One-paragraph session note summary.>
## Next Action
<The next command, file, test, or Miller call to run.>
.miller/handoffs/latest.md but it is missing, report blocked and ask for the packet path.