Lane
babysit (safe tier, /loop 15m /source-control:babysit-prs)
Triggering example
Same session, observed 3 times across 2 cycles:
- Cycle 1 (5 workers dispatched): cron fired at +15m and again at +30m while the original cycle's workers were still running (total cycle wall-clock ~47 min for 5 parallel Opus workers, longest single worker took ~26 min).
- Cycle 2 (10 workers dispatched, batch cap): cron fired again at +15m while 6 of 10 workers were still outstanding.
Each overlapping fire re-invoked the full /source-control:babysit-prs skill (a large prompt/context load), and the only useful action taken was: recognize the queue lease is already held by this same run, heartbeat it, and wait — no new snapshot, no new dispatch. The skill has no explicit instruction for this case; I inferred "heartbeat and wait" from the lease-contention mechanics in reference/orchestration.md, not from any stated re-entrant-invocation contract in SKILL.md.
Observed vs expected
- Observed: a 15-minute loop interval against a fan-out that can legitimately take 30-45+ minutes (10 workers × several-minute Opus rounds each, sequenced through lease acquisition + readiness-gate verification) causes routine overlap, not an edge case. Each overlapping fire burns a full skill-load + context re-read for a session that does nothing but heartbeat and wait.
- Expected: either (a)
SKILL.md's operational runbook explicitly documents the re-entrant case — "if the queue lease is already held by this session, heartbeat and return immediately without re-snapshotting" — as a first-class step, not something the orchestrator must infer; or (b) the /loop skill / this skill's own guidance recommends an interval scaled to babysit_worker_concurrency_cap (e.g. batch-cap-10 fan-out warrants ≥30m, not the commonly-suggested 15m in SKILL.md's own examples: Looped worker: /loop 15m /source-control:babysit-prs worker).
Category
operational
Note
This is also a rule-8 "manual course correction" candidate in the strict sense — I was not given explicit instructions and had to infer the right re-entrant behavior on the fly. No user redirect occurred (I inferred correctly and no harm resulted), so filing here rather than as a separate rule-8 issue since it's the same underlying instruction gap.
Lane
babysit (safe tier, /loop 15m /source-control:babysit-prs)
Triggering example
Same session, observed 3 times across 2 cycles:
Each overlapping fire re-invoked the full
/source-control:babysit-prsskill (a large prompt/context load), and the only useful action taken was: recognize the queue lease is already held by this same run, heartbeat it, and wait — no new snapshot, no new dispatch. The skill has no explicit instruction for this case; I inferred "heartbeat and wait" from the lease-contention mechanics inreference/orchestration.md, not from any stated re-entrant-invocation contract inSKILL.md.Observed vs expected
SKILL.md's operational runbook explicitly documents the re-entrant case — "if the queue lease is already held by this session, heartbeat and return immediately without re-snapshotting" — as a first-class step, not something the orchestrator must infer; or (b) the/loopskill / this skill's own guidance recommends an interval scaled tobabysit_worker_concurrency_cap(e.g. batch-cap-10 fan-out warrants ≥30m, not the commonly-suggested 15m in SKILL.md's own examples:Looped worker: /loop 15m /source-control:babysit-prs worker).Category
operational
Note
This is also a rule-8 "manual course correction" candidate in the strict sense — I was not given explicit instructions and had to infer the right re-entrant behavior on the fly. No user redirect occurred (I inferred correctly and no harm resulted), so filing here rather than as a separate rule-8 issue since it's the same underlying instruction gap.