Check — status of background feature agents
SkillCloud & infraUse to check on background feature agents launched via /kickoff — running in tmux sessions or docker/podman containers. Reports each agent's state (Working / Idle / Waiting / Done / Error), captures recent output, and offers next-step commands. Trigger when the user says "check on the agent(s)", "how's the kickoff going", or names a `feat-*` / `crosslink-task-*` session.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Check — status of background feature agents skill
What this skill tells your AI
The instructions your AI receives, as published by openwpm/openwpm in .claude/skills/check/SKILL.md and read by ahel’s review.
The user optionally provides an agent name (e.g. crosslink-task-add-batch-retry or feat-add-batch-retry). If no name is given, check all active feature agents (both containers and tmux sessions) and report a summary for each.
1. Identify agents to check
a. Find container-based agents
- Get this repo's worktree paths:
git worktree list --porcelain | grep '^worktree ' | sed 's/^worktree //'(crosslink kickoffisolates each agent in a git worktree under.worktrees/). - List crosslink containers:
docker ps -a --filter label=crosslink-agent=true --format '{{.Names}} {{.Status}} {{.Label "crosslink-task"}}' 2>/dev/null - Match containers to this repo: for each container, check if its
crosslink-tasklabel value matches any of this repo's worktree directory names (the last path component) - If the user provided a name starting with
crosslink-task-, filter to that specific container
b. Find tmux-based agents
- Get
feat-*tmux sessions:tmux list-sessions -F '#{session_name} #{session_path}' 2>/dev/null | grep '^feat-' - Only include sessions whose
session_pathmatches one of this repo's worktree paths - If the user provided a name starting with
feat-, filter to that specific session
If no agents found in either mode, report "No active feature agents for this repo."
2. For each agent, perform these checks
For container-based agents
a. Check the sentinel file
Get the worktree path by matching the container's crosslink-task label to a worktree directory name from git worktree list.
- Check:
cat <worktree-path>/.kickoff-status 2>/dev/null - If it contains
DONE, mark as finished. - If it contains
CI_FAILED, mark as CI failure.
b. Check container status
docker inspect --format '{{.State.Status}} (exit {{.State.ExitCode}})' <container-name>
Possible states: running, exited (check exit code), restarting, paused.
c. Capture recent output
docker logs --tail 80 <container-name> 2>&1
d. Analyze state
- Working: Container status is
running, no sentinel file, recent tool calls visible in logs - Idle: Container is
runningbut no recent output changes — may be thinking or waiting for API - Error: Container
exitedwith non-zero exit code, or error messages in recent logs - Done: Sentinel file says
DONE, or container exited with code 0 - CI Failed: Sentinel file says
CI_FAILED
For tmux-based agents
a. Check the sentinel file
Get the worktree path for this session from tmux: tmux display-message -t <session-name> -p '#{session_path}'. Alternatively, match the session name to a feature branch in git worktree list.
- Check if
.kickoff-statusexists in the worktree:cat <worktree-path>/.kickoff-status 2>/dev/null - If it contains
DONE, mark this session as finished.
b. Capture the terminal state
tmux capture-pane -t <session-name> -p -S -80
This captures the last ~80 lines of visible output.
c. Analyze state
Read the captured output and determine the agent's current state:
- Working: Tool calls in progress, code being written/read
- Waiting for input: A question or prompt is displayed (look for
?, option lists, or input prompts) - Error/stuck: Error messages, repeated failures, or no recent activity
- Completed: The sentinel file says DONE, or the claude process has exited
3. Report
When checking multiple agents, use a compact table format with a backend indicator:
Feature Agents:
crosslink-task-add-retry [container] Working Implementing retry logic in _sources.py
crosslink-task-fix-lens [container] Done All changes committed and reviewed
feat-new-cli-cmd [tmux] Waiting Asking about CLI argument format
When checking a single agent, use the detailed format:
Agent: <name>
Backend: <container|tmux>
Status: <Working | Idle | Waiting | Done | Error>
<2-3 sentence summary of what the agent is currently doing or has accomplished>
For container agents, also show resource usage:
docker stats --no-stream --format ' CPU: {{.CPUPerc}} Memory: {{.MemUsage}}' <container-name> 2>/dev/null
4. Offer actions
For container agents
- If working/idle: "Check back later, or view live logs:
crosslink container logs <name> -f" - If done: "Agent finished. Review the changes:
cd <worktree-path> && git log --oneline <base-branch>..HEAD" - If error: Show the relevant error output. Suggest: "Debug with:
crosslink container shell <name>or view full logs:crosslink container logs <name> --tail 500" - If exited (non-zero): "Container exited with error. View logs:
crosslink container logs <name>. Restart with:crosslink container kill <name> && crosslink container start <worktree-path>"
For tmux agents
- If working: "Check back later, or attach directly:
tmux attach -t <name>" - If waiting for input: Read the question, and ask the user what to answer. If the user provides an answer, send it:
tmux send-keys -t <session-name> "<response>" Enter - If done: "Agent finished. Review the changes:
cd <worktree-path> && git log --oneline <base-branch>..HEAD" - If error: Show the relevant error output and suggest the user attach to debug:
tmux attach -t <name>
Constraints
- Do not modify any files in the worktree — this is a read-only check.
- Do not kill containers or tmux sessions unless the user explicitly asks.
- When relaying a user's answer to a waiting tmux prompt, send exactly what the user provides — do not embellish or modify.
Signals
- GitHub stars
- 1k
- Forks
- 335
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
check-openwpm- Source
- github.com/openwpm/openwpm