work-review-queue

Installation
SKILL.md

work-review-queue

Drain the repo's queue of issues awaiting review — every issue in reviewRequested — and give each a verdict by delegating to work-review. The review half of the two-loop workflow: it consumes what work-implement-queue pushed, and each issue leaves as done, changes-requested (back to the implement loop), needs human, or blocked. Each issue is reviewed by a fresh worker — a different agent than the one that built it. Run it under /loop work-review-queue for continuous operation, alongside the implement loop.

Opted out? If the repo config sets work to false, all work-* skills are disabled — stop and tell the user they are turned off in .tituskirch-skills.json. Check .work == false on the resolved config before acquiring the lock or building the queue — step 1 resolves it, right after the required-worker check that has to come first. A missing jq or config exits non-zero too, so a pass is not evidence the config was read.

Workflow

1. Load config & lock

  • work-review is required, and checked first. This loop reviews nothing itself — every issue is handed to it — so if it is not installed, stop here, before resolving anything and before taking the lock: name the missing skill and report that no issue was touched. Checking up front is the whole point; a required call first noticed mid-drain has already leased issues into reviewing that the next run must reclaim. It is also what lets this skill name the three contracts its worker's REFERENCE already states — Reading the config, The single-flight lock and The forge and its host — rather than carry a second copy of each: no path reaches any of them with the worker absent, because this check runs before all of them.
  • Config + tracker as in work-review (the work.* section, where work.review.maxRounds governs escalation; its REFERENCE's Config, read by the rules its Reading the config states). Resolve it with this skill's own templates/resolve-config.sh — the same copy every skill ships — and apply those rules unchanged. Where the tracker is a forge (github, gitlab), the host it talks to is resolved per repo rather than assumed — The forge and its host in work-review's REFERENCE.
  • Acquire the review single-flight lockmkdir the lock at $(git rev-parse --git-common-dir)/tituskirch-skills/work/review.lock (atomic create-or-fail), a separate path from the implement loop's …/work/implement.lock, so an implement-drain and a review-drain run at the same time in the same checkout. On adopting this path, first rm -f the old loose tituskirch-work-review-queue.lock (see the migration in the spec) so the two cannot coexist. The path, the mkdir primitive, the heartbeat-timestamp stale rule, the migration and the single-checkout boundary are specified in The single-flight lock in work-review's REFERENCE.

2. Reconcile — close out out-of-band actions, reclaim stale review leases

Before building the queue, two idempotent sweeps:

(a) Out-of-band human actions on the PR — for every issue in reviewRequested, check whether a human acted on its PR out-of-band:

Installs
1
GitHub Stars
1
First Seen
Aug 26, 2026
work-review-queue — tituskirch/skills