Skip to content
Back to skills

Workflow Status

ASecurity

Show who has returned, who is still working and how much output a background Workflow run produced. Use when the user asks about workflow progress, says "/workflows doesn't work", asks "is the workflow done", "how's the workflow going", "check the workflow", or wants to inspect a multi-agent orchestration run.

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 26, 2026
ai-agentspythongobash

Works with

  • claude code
  • terminal
  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add JakeSelby/model-citizen --skill workflow-status --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Workflow Status?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Workflow Status
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/jakeselby-workflow-status-model-citizen/badge)](https://www.skillsdirectory.com/skills/jakeselby-workflow-status-model-citizen)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: workflow-status
description: Show who has returned, who is still working and how much output a background Workflow run produced. Use when the user asks about workflow progress, says "/workflows doesn't work", asks "is the workflow done", "how's the workflow going", "check the workflow", or wants to inspect a multi-agent orchestration run.
---

# Workflow status

For harness-owned isolated role workers, run `citizen role status` or
`citizen role status <worker-id>`. Report status, runtime, role and result path from those records.
They are separate CLI processes and do not appear as native subagent threads.

This reader inspects local Claude workflow journals from any client with filesystem access.
It does not inspect Codex native agent threads or hosted runs. For those, use the client's native
agent view; an empty local journal search does not mean no agents are running.

## Run it

```bash
python3 "${CLAUDE_SKILL_DIR}/scripts/status.py"            # most recent run
python3 "${CLAUDE_SKILL_DIR}/scripts/status.py" --all      # every run, newest first
python3 "${CLAUDE_SKILL_DIR}/scripts/status.py" --limit 3  # the last three
python3 "${CLAUDE_SKILL_DIR}/scripts/status.py" --run wf_eed4141a   # one specific run
```

Claude Code expands `CLAUDE_SKILL_DIR` to this skill's installed directory. In another client,
resolve this SKILL.md's absolute parent directory before invoking the script. Never execute an
unexpanded placeholder. Pass `--terminal-status completed|failed|cancelled` only with an exact
`--run` and an explicit terminal notification from the runtime; omit it when unknown.

Report the output to the user in prose β€” the counts, what is still in flight, and roughly how
far along the run is. Do not paste the raw table unless they ask for it.

## What it reads, and what it must not

The script reads:

- `~/.claude/projects/*/*/subagents/workflows/wf_*/journal.jsonl` β€” one line per agent start and
  one per agent result. This is the authoritative record of what has returned.
- the **first line only** of each `agent-*.jsonl`, to recover a human-readable identity (the
  workflow's `label` option is not persisted, so the agent's opening prompt is the best available
  name).
- the persisted script under `workflows/scripts/`, for the declared phase titles.

πŸ›‘ **Never read a full `agent-*.jsonl` transcript.** They routinely run to megabytes and will
overflow the context window. The journal plus first lines is always enough for status. If the user
wants an agent's actual findings, wait for the workflow to complete and read its returned result,
or read the file the workflow wrote β€” not the transcript.

## Interpreting it

- **`returned`, `pending`, `failed`, `unknown`** come from journal records joined by `agentId`
  and key. Transcript age describes activity only; it never proves that an agent returned.
- **`UNKNOWN (no terminal signal)`** means the journal cannot establish run completion, even
  when every currently known agent has returned. More phases may still launch.
- Missing or malformed journal records leave status unknown; they are not evidence of success.

## When a run has finished

The workflow's own completion notification carries the returned value, which is the thing to
report. This skill is for the interval before that arrives β€” or for checking on a run from a
different session, since the journal persists on disk.

Files in this skill

  • SKILL.md3.2 KB
  • scripts/status.py5.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.