Dev-Loop Status Mode
Operator observability for a complex orchestration skill: preview only, no writes.
Invocation
Parent dev-loop sets MODE = status when args contain status or doctor (alias).
doctor here is not REFRESH doctor-worker — status reads
~/.claude/dev-loop/last-doctor.json when present.
/dev-loop status
/dev-loop status high
/dev-loop doctor
/dev-loop status --json
/dev-loop status --preview-mode investigate
/dev-loop status --preview-mode investigate --orchestration goal
Pipeline
- REFRESH (read-only subset) — config,
BACKEND_CAPS, vault path, caps previews. - PROBE —
node skills/dev-loop/scripts/dev-loop-status.js(see flags below). - REPORT —
dev-loop-status.v1JSON + Markdown under.claude/dev-loop/status/(gitignored). Use--no-writefor stdout-only. - EXIT — before WORK, SPEC, PLAN, EXECUTE, REVIEW, MERGE, SAVE, PUSH, DEPLOY.
The dev-loop-status.v1 report keeps two independent dimensions:
health.state(healthy,degraded, orblocked) and structuredhealth.reasonsexplain environment and capability readiness. The report retains all observed optional gaps inhealth.missing_optional, but only gaps relevant to the configured preview operation appear inhealth.relevant_missing_optionaland lower health.lifecycle.state(idleoractive),lifecycle.next_action, andlifecycle.reasondescribe work selection and the requested preview. A blocked operation remains active while its health is blocked.
For compatibility, overall.state, overall.next_action, and overall.reason
project the corresponding health/lifecycle values. Consumers should prefer the
explicit fields for new integrations.
Optional isolation: dev-loop:status-worker per agents/status-worker.md.
CLI flags (helper)
| Flag | Purpose |
|---|---|
--repo <path> |
Project repo (required) |
--host auto|codex|claude|unknown |
Active runtime for exact-version cache diagnosis |
--format markdown|json|both |
Output (default both) |
--no-write |
No files under .claude/dev-loop/status/ |
--intensity normal|high |
Idle / deep-research preview |
--preview-mode core|prep|investigate|status |
Simulated next mode |
--orchestration attended|goal |
Unattended /goal readiness simulation |
--vault <path> |
Vault override |
--project <slug> |
Slug override |
The cache probe is host-specific and exact-version-first. It never chooses a
cache by mtime. Codex remediation uses
codex plugin add dev-loop@karlorz-agent-skills --json plus a new session;
Claude remediation uses claude plugin update dev-loop@karlorz-agent-skills plus restart. Unknown hosts fail closed, and no
status path copies into a cache or deletes session history.
HUD / statusline
Read-only one-liner for ccstatusline, tmux, or shell polls (newest *-status.json under
.claude/dev-loop/status/, or --probe to refresh without writing files):
node skills/dev-loop/scripts/dev-loop-status-hud.js --repo .
node skills/dev-loop/scripts/dev-loop-status-hud.js --repo . --format json
node skills/dev-loop/scripts/dev-loop-status-hud.js --repo . --probe --project <slug>
Doctor compact HUD (separate): ~/.claude/dev-loop/last-doctor.json from REFRESH doctor-worker.
Related read-only helpers
- Config lint:
/dev-loop config-lint→dev-loop-config-lint.js - Config migrate:
dev-loop-config-migrate.js --repo .(vault alias advisor) - Dashboard:
dev-loop-dashboard.js --repo .(aggregate status/lint/migrate/doctor) - One work item:
dev-loop-why-skipped.js --project <slug> --work <folder>
Hard deny-list
No work-item creation, spec/plan edits, retros, git commit/push, PRs, deploy,
bump_script, tags, or vault SAVE/MERGE. Classify errors as blocked, degraded, or
info — do not swallow.
Full controller contract: parent skills/dev-loop/SKILL.md § Status pipeline.