From coordination
Use when starting work on a project or entering a worktree - reads handoff records and active agent state to synthesize a briefing; prevents cold-start ramp-up and duplicate work
npx claudepluginhub nice-wolf-studio/wolf-skills-marketplace --plugin coordinationThis skill uses the workspace's default tool permissions.
Reconstruct working context from handoff records, active agent state, and repo history. Inspired by [Smith's](https://github.com/callmeradical/smith) loop startup protocol — each iteration starts fresh, reconstructs state from the repository, not from model memory.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Reconstruct working context from handoff records, active agent state, and repo history. Inspired by Smith's loop startup protocol — each iteration starts fresh, reconstructs state from the repository, not from model memory.
Pickup is the inverse of handoff. Where handoff externalizes context, pickup internalizes it.
.claude/handoff/ directory exists — there's nothing to pick upFind the main worktree and verify handoff data exists:
MAIN_WORKTREE=$(git worktree list --porcelain | head -1 | sed 's/worktree //')
HANDOFF_DIR="${MAIN_WORKTREE}/.claude/handoff"
Check what's available:
# Does the handoff directory exist?
ls "${HANDOFF_DIR}/" 2>/dev/null
# Who's currently active?
ls "${HANDOFF_DIR}/active/" 2>/dev/null
# What handoffs exist?
ls "${HANDOFF_DIR}/handoffs/" 2>/dev/null
If ${HANDOFF_DIR} doesn't exist, report "No handoff history found" and stop. This project hasn't used the protocol yet.
Gate: You've confirmed handoff data exists and know the paths.
Check who's currently working by reading all files in active/:
# List all active agents
for f in "${HANDOFF_DIR}/active/"*.json; do
cat "$f" 2>/dev/null
done
For each active agent, note:
heartbeat + 30 minutes < now, consider the agent dead (ghost presence). Flag it but don't delete it.Build a summary: "N agents currently active. Agent X is working on Y, touching files A, B, C."
If there are claimed files that overlap with your planned work, flag the conflict before proceeding.
If the project uses distributed coordination via /coordinate, also check the switchboard repo for active agents and claims. The switchboard has the most current state since it's updated in real-time (vs handoff files which are point-in-time snapshots).
Gate: You know who's active, what they're doing, and whether there are conflicts with your work.
Read handoff records in reverse chronological order (newest first). Start with the HANDOFFS.md index:
cat "${HANDOFF_DIR}/HANDOFFS.md" 2>/dev/null
Then read the most recent handoff from each agent directory:
for agent_dir in "${HANDOFF_DIR}/handoffs/"*/; do
AGENT=$(basename "$agent_dir")
LATEST=$(ls "$agent_dir" | sort -n | tail -1)
echo "=== ${AGENT} (${LATEST}) ==="
cat "${agent_dir}/${LATEST}"
done
For each handoff, extract:
Do NOT blindly trust handoffs. Verify against current repo state:
git log --oneline {handoff_sha}..HEAD — has someone else completed them since?git log --oneline --grep="revert" {handoff_sha}..HEAD — was the handoff's work reverted?If a handoff's claims conflict with current repo state, note it in your briefing as "STALE" and explain the discrepancy.
Gate: You have a reconciled view — what's still relevant from handoffs vs. what's changed since.
Produce a structured briefing. This is your output — present it to the user or use it to guide your work:
## Pickup Briefing — {project} ({timestamp})
### Active Agents
- {agent-name}: working on {task}, touching {files} (heartbeat: {freshness})
- (or "No active agents")
### Recent Handoffs
- {agent-name} ({timestamp}): {one-line summary}
- Remaining: {key remaining items}
- Decisions: {key decisions still in effect}
### Conflicts
- {file/area}: claimed by {agent} AND relevant to your work
- (or "No conflicts detected")
### Stale Records
- {handoff ref}: {what's stale and why}
- (or "All records current")
### Recommended Starting Point
Based on remaining items and current repo state:
1. {Highest priority remaining item}
2. {Next priority item}
3. {Next priority item}
Gate: Briefing is complete, reconciled, and actionable.
If you're starting work (not just reading history), write a presence file:
AGENT_NAME="{your-agent-name}" # worktree name or branch
cat > "${HANDOFF_DIR}/active/${AGENT_NAME}.json" << 'EOF'
{
"agent": "{agent-name}",
"branch": "{branch-name}",
"started": "{ISO-8601}",
"heartbeat": "{ISO-8601}",
"task": "{what you're about to work on}",
"touching": ["{file1}", "{file2}"],
"status": "working"
}
EOF
This tells other agents you're active. Update the heartbeat field periodically if working for a long session.
If you catch yourself:
STOP. Complete the full pickup protocol before writing code.
Before starting work:
active/ (if starting work)/handoff — The producer of handoff records. Run this when finishing work./signal — Mid-work coordination signals. Check these during pickup for recent decisions/problems./coordinate — If the project uses the switchboard, pickup should read both handoff records AND the live coordination state for the most complete picture./repo-ingest — Updates the coordination protocol by learning from external repos.MANDATORY NEXT STEPS:
OPTIONAL NEXT STEPS:
/signal if you're claiming files not listed in your presencev1.1.0 (2026-04-11)
v1.0.0 (2026-04-11)