Skip to content

loops/skills: self-paced /loop idles between non-empty cycles — cadence should be work-state-driven (no delay when queue non-empty), not a guessed clock #500

Description

@kyle-sexton

Lane: triage (applies to every self-paced /loop lane) · Category: operational (throughput) · Source: live triage loop, 2026-07-19, user course-correction.

Triggering example

Triage loop, dynamic (self-paced) mode. Two consecutive cycles ended with the queue non-empty (14 items, then 9 items) and each scheduled the next cycle with a 600s delay ("short delay when queue has items" + "let concurrent filings settle"). The operator flagged it: with real work already queued, the delay is pure idle latency — waiting never improves triage quality, and "let filings settle" is a rationalization (intake arrives continuously; there is no settled state to wait for).

Observed vs expected

  • Observed: the standing loop-prompt rule ("self-paced: short delay when queue has items, ~30 min when empty") and the /loop skill's dynamic-mode guidance ("lean 1200–1800s fallback") push the lane to insert a non-zero wall-clock delay between cycles even when the queue is non-empty. Cycle boundaries exist to refresh context (avoid degradation) — not to burn wall-clock. A delay-when-work-exists adds latency with zero quality benefit.
  • Expected: loop cadence keys to work state, not a guessed clock. Queue non-empty → start the next cycle immediately (delay ≈ 0; the cap-per-cycle + fresh-context-per-cycle already bound each cycle's size — see loops/skills: orchestrator context economy — subagent return-payload contracts + GitHub-externalized state #496). Delay applies only when the queue is empty (idle poll, ~30 min) or when genuinely gated on an external event (CI, a Monitor). "Short delay when queue has items" should read "no delay when queue non-empty."

Category

operational (throughput). Every idle delay between non-empty cycles is dead time on a lane whose whole value is turning intake around.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions