/synthex:list-loops/synthex:list-loops
BuildEnumerate running and recent loops in the project. Read-only.
Invocation
Run from inside Claude Code in any project where Synthex is installed:
/synthex:list-loopsSome commands accept parameters; see the source-of-truth file linked below for the full parameter list and workflow.
Lifecycle phase
Build. Parallel-executed, peer-reviewed task delivery.
Related agents
- Tech Lead · Full-stack orchestrator. Breaks tasks down, delegates to specialists, rolls up the result.
- Lead Frontend Engineer · Coordinates frontend delivery, enforces UX quality, accessibility, and design-system fidelity.
- Architect · System design, ADRs, plan-review feasibility, technology trade-offs.
- Code Reviewer · Craftsmanship review — correctness, maintainability, reuse, conventions.
- Security Reviewer · Mandatory gate. Secrets, injection, auth, supply chain, OWASP.
- Quality Engineer · Test strategy, gap analysis, behavior-driven test authoring.
- Design System · Token ownership, component governance, compliance audit.
- Technical Writer · API docs, guides, migrations, changelogs verifiable against code.
Source
The command's parameters, workflow, and sub-agent invocations are defined in markdown at bluminal/lumenai/blob/main/plugins/synthex/commands/list-loops.md.
Last modified:
What it does, end-to-end
/synthex:list-loops/synthex:list-loops enumerates the loops tracked in <project>/.synthex/loops/
— running first, then recent terminal-status loops. Output is short, human-readable, and
read-only. Loops moved to .synthex/loops/.archive/ are intentionally excluded; to inspect
the archive, list the directory directly.
The command takes no arguments and never mutates any state file. If no .synthex/loops/
directory exists yet, it prints No loops in this project. and exits 0.
Output format
RUNNING (2):
next-priority-3f2a iter 5/20 started 2h ago session abc12345
team-implement-7e1d iter 11/30 started 4h ago session (none, resumable)
COMPLETED (3):
refine-requirements-9b22 completed (promise) iter 3/20 finished 1h ago
loop-write-rfc-1a08 max-iterations iter 20/20 finished 30m ago
team-plan-4c66 cancelled iter 6/15 finished 5m agoEach block is omitted entirely when empty (no RUNNING (0): header).
Sort and truncation rules
- RUNNING loops sort by
last_updateddescending (most-recently-touched first). - TERMINAL loops sort by
exited_atdescending (most-recently-finished first), capped at the 20 most-recent entries. If more exist, a final line names the truncation count:… and N more terminal loops (see .synthex/loops/.archive/). - Session column shows the first 8 characters of the loop's
session_id; if the loop's session is no longer running (orsession_idis null), it shows(none, resumable)to signal that you can--resumeit from any session.
Common scenarios
"Did my loop survive my laptop crash?"
Re-open Claude Code in the project and run /synthex:list-loops/synthex:list-loops. Any loop with
status: running shows up under RUNNING. Resume it with
<SlashCommand verb="loop" /> --resume <loop-id> (or --resume-last if you don't recall
the name).
"Why isn't my loop terminating?"
Check the iter count. If it's incrementing as expected but the completion-promise hasn't
fired, the issue is the workflow's emission logic — the iteration framework itself is fine.
If iter is stuck at the same number across multiple list-loops checks, the iteration is
hung; cancel it with /synthex:cancel-loop/synthex:cancel-loop.
"What's still cluttering my archive?"
This command excludes .archive/ by design. To inspect the archive run a normal directory
listing on .synthex/loops/.archive/ — entries are JSON state files named
<loop-id>-<timestamp>.json.
What it does not do
- Recurse into
.archive/. Archived loops are historical; surfacing them in the active list would defeat the archive's purpose. Use a direct directory listing instead. - Mutate any state file. Read-only by contract.
- Surface malformed state files as errors. The command best-effort-skips unparseable
files and lists them in a final
WARNINGS:block instead of aborting.
See also
- Native looping — the full framework explainer.
- /synthex:loop/synthex:loop — start or resume a loop.
- /synthex:cancel-loop/synthex:cancel-loop — cancel a loop by id or
--all.