Agent Consensus Coordinator
ruvnet/ruflo
Agent skill for consensus-coordinator - invoke with $agent-consensus-coordinator
Report or coordinate ClosedLoop work assigned to the user in one project.
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install closedloop-ai/claude-plugins cl-sweep --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/code/skills/cl-sweep .claude/skills/cl-sweep && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .claude/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweepType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install closedloop-ai/claude-plugins cl-sweep --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/code/skills/cl-sweep .agents/skills/cl-sweep && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .agents/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install closedloop-ai/claude-plugins cl-sweep --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/code/skills/cl-sweep .cursor/skills/cl-sweep && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .cursor/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/closedloop-ai/claude-plugins.git --path plugins/code/skills/cl-sweep--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install closedloop-ai/claude-plugins cl-sweep --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/code/skills/cl-sweep .gemini/skills/cl-sweep && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .gemini/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install closedloop-ai/claude-plugins cl-sweepInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/code/skills/cl-sweep .github/skills/cl-sweep && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .github/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install closedloop-ai/claude-plugins cl-sweep --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/closedloop-ai/claude-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/code/skills/cl-sweep .opencode/skills/cl-sweep && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cl-sweep" agent skill from https://github.com/closedloop-ai/claude-plugins/tree/main/plugins/code/skills/cl-sweep into .opencode/skills/cl-sweep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cl-sweep", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cl-sweepReport or coordinate ClosedLoop work assigned to the user in one project.
Cl Sweep is an agent skill from closedloop-ai/claude-plugins. Report or coordinate ClosedLoop work assigned to the user in one project. Use read-only report mode for a complete project-wide inventory grouped into product-feature context with dependency and reassignment guidance. For execution, recover active work first, then run each selected complete page or capability as one owner, branch, plan, PR, and manual-QA unit while preserving every ticket's independent readiness and acceptance gates. Supports Codex Desktop and a fail-closed CLI root with durable state, private…
Its SKILL.md is about 15k tokens, which your agent loads only when the skill is triggered. The skill folder holds 43 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/cli-worker-protocol.md` and `references/communication-policy.md`).
The repository describes itself as: Open-source Claude Code plugins for multi-agent software delivery. Plan-first SDLC workflow, code review, LLM quality judges, and self-learning — grounded in your codebase… The licence is Apache-2.0.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0e20ac0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
ghcodexFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cl Sweep loads about 15k tokens when it runs, and up to ~65k if it reads all its reference files. Until then it costs about 143 tokens; SKILL.md has 7,468 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from closedloop-ai/claude-plugins at commit 0e20ac0, republished under its Apache-2.0 licence (© closedloop-ai). 7,468 words, ~14,522 tokens.
.claude/skills/cl-sweep/SKILL.md (or your agent's skills folder). This skill also uses 40 other files; get the full folder from GitHub.Produce a read-only project work report, or act as the root coordinator for all actionable assigned ClosedLoop work in one project. In execution mode, keep every issue as its own record while treating each selected complete functional page or capability as one scheduling and delivery unit: one execution owner, worktree, branch, combined plan, PR, manual-QA plan, and terminal reconciliation.
If the user asks only for an inventory, report, feature grouping, blocker
ownership, or reassignment advice, read and follow ../cl-work-report/SKILL.md
immediately and stop after returning its private report. Do this before
Execution Surface Selection, Project-Keyed Root Recovery, get_goal, state-root
creation, leases, workers, status changes, reassignment, comments, or any other
mutation. A report recommendation never authorizes execution or reassignment.
For participating Desktop and CLI owners, follow display events at actual activity boundaries and existing dispatch/PR verification points. Display metadata never changes lifecycle or permissions, but activity publication is a required dispatch invariant: every new CLI worker turn must declare --activity-phase planning|coding|reviewing; reviewing must also declare --review-kind plan|code. The managed worker runtime records the phase after App Server accepts the turn and exposes currentActivity.recorded in status. A scheduling or status pass is incomplete while an active owner has no current activity or recorded is false; repair the exact declared phase before reporting or launching more work. After existing authenticated ClosedLoop reads, publish the observed business status using the same reference; do not add queries for the wallpaper. Report explicit ticket dependencies and their explicit resolution through that reference; never infer edges from waiting.
Before querying tickets, routing blockers, writing blocker comments, sending direct messages, or creating the parent goal text, read the sibling policy skill at ../cl-policy/SKILL.md and follow its Required Reference resolution order. Use ../cl-policy/references/local-policy.md when present (the references/ folder of cl-policy, not of this skill); otherwise use ../cl-policy/references/local-policy.example.md only to understand the required shape, then require a populated $HOME/.closedloop-ai/local-policy.md before routing. Use the policy terms Product contact, Engineering attention contact, and Sweep owner; do not hardcode a personal name for the engineering attention contact in prompts, memory fields, or communication text.
Before ticket discovery, read Execution Surfaces
and probe capabilities using only mechanisms supported by the current host.
Select one fail-closed surface for the sweep generation and persist it. In Codex
CLI TUI, do not invoke deferred or dynamic tools during selection; probe the
managed App Server and local CLI scripts directly. When the complete Desktop task/worktree tool set
exists, use the existing Desktop Child Thread Flow unchanged. Only when that set
is incomplete and the complete CLI cwd-bound session, local-tool, monitor, and exact
CODEX_THREAD_ID set exists may the root use the CLI Root Worker Flow. Never
mix Desktop task ownership with CLI worker ownership in one generation.
For CLI, also read CLI Worker Protocol. When a running Desktop sweep loses its complete capability set, read Desktop To CLI Cutover and checkpoint, transfer, and rehydrate; never launch a competing owner.
For every Desktop-to-CLI cutover, require live verified evidence that the exact Desktop child is paused/stopped or idle and has no active turn, tool call, implementation worker, or pending mutation. Observe task/worktree state after that acknowledgement. Lease expiry, silence, elapsed time, or loss of Desktop inspection capability can never fence a legacy Desktop task; fail closed.
After surface selection and before get_goal, ticket discovery, state-root
creation, or worker launch, read and apply
Project-Keyed Root Recovery. Normalize a
ClosedLoop project UUID and a full ClosedLoop project URL to the same canonical
UUID. Run scripts/sweep-root-state.mjs open with the repository namespace and
path, stable Sweep-owner id, exact CODEX_THREAD_ID, exact root cwd, and
selected surface.
The returned sweep id/root path is authoritative across Codex chats. created
starts a new sweep, resumed continues the same owner, and adopted transfers
the exact existing root and resources after fail-closed idle checks. Never
create a chat-keyed root, ticket worker, monitor, or lease before this decision.
Immediately after opening the root, read and validate its optional
scope-exclusions.json before worker/PR reconciliation or scheduling. A newer
file uses CL_SWEEP_SCOPE_EXCLUSIONS v1 with the exact root sweepId,
projectId, and excludedTickets: [{ticket, reason, reincludeWhen}]; keep it
private mode 0600 and fail closed if present but malformed. A newer
direct user exclusion in that file overrides stale queue priority, workflow
memory, old parked sessions, and the general project goal: inspect those
records read-only for safety, but do not renew/replace their leases, dispatch
their workers, monitor their PRs as sweep-owned, or claim their tickets as
active work. Reinclude only after a newer explicit instruction names the exact
ticket and the root updates this file under its authority fence. Exclusion is
not ClosedLoop cancellation or reassignment.
Keep the user's other session-level directives for this sweep in the same
root's standing-orders.json (CL_SWEEP_STANDING_ORDERS v1), managed only with
scripts/standing-orders.mjs after assert-owner, under the same authority
fence and private mode 0600; fail closed if it is present but malformed.
Examples are plan-approval policy, the owner limit, forbidden repos or paths,
and merge-policy overrides. Each numbered order keeps the user's words and its
date. Read it on every root resume before scheduling, and paste the output of
standing-orders.mjs render --root <root> verbatim into every worker launch and
resume packet. When you notice you are restating a user instruction to a
worker, add it to the register first. Remove an order only on a newer explicit
user instruction, recorded as the removal reason.
On adopted, route every monitor registrationDelta, reconcile every existing
worker/App Server thread/lease/checkpoint/callback/PR, and only then schedule
new work. An active or notLoaded prior owner, exact-binding mismatch,
malformed state, another target's prepared transfer, ambiguous callback
delivery, or duplicate unfinished roots is an ownership conflict; never guess.
The exact prepared target rolls creation/transfer phases forward after a crash.
Run assert-owner with the current root thread/generation immediately before
every root-owned mutation; only an ACTIVE authority fence and persistent root
lease permit work.
Use status --project <project-id> for read-only recovery from a fresh chat.
Terminal historical roots remain visible but never block created. Preserve
Desktop Child Thread Flow after root resolution; this protocol changes root
identity and callback ownership, not ticket-domain policy or surface selection.
--activity-phase; use --review-kind plan|code
whenever reviewing. Plan approval clears waiting_for_human by dispatching
the next actual phase. Before completing reconciliation, scheduling, or a
status response, inspect each active session's currentActivity: missing or
unrecorded activity is a reconciliation defect that must be repaired before
unrelated scheduling. Never guess from ticket status, PR state, or elapsed
time.UNMERGEABLE states, and queue generation
changes while the PR remains queued are passive monitor state only unless
GitHub also reports a concrete source-head failure/conflict/review/head-change
event or the PR leaves the queue before merging. For an exact PR/head or
immutable queue generation with one registered healthy detached monitor, this
parent-turn reconciliation must read durable worker/monitor state, not
re-query GitHub.$cl-execute for tickets whose $cl-analyze decision is anything other than GO or GO_WITH_UI_PLAN_APPROVAL. A ticket worker that begins evaluation, requirements discovery, or plan creation must mark the feature IN_PROGRESS; this records that planning work has started and is not implementation approval. For GO_WITH_UI_PLAN_APPROVAL, $cl-execute may create and upload the plan but must stop before plan approval, branch creation, code changes, PR work, or merge work until explicit human approval is present. When the current sweep or session instruction requires Daniel's personal approval for every implementation plan, pass that requirement to $cl-execute and stop at WAITING_UI_PLAN_APPROVAL for every created plan until Daniel personally approves that exact plan.$cl-execute for EXTREME risk tickets. HIGH complexity remains blocked by default, and the sweep must not route high-complexity work to $cl-split. An exact named ticket may proceed only when the user directs execution and accepts or requires its atomic unsplit shape, or a current session-level instruction explicitly accepts the unsplit atomic ticket shape for that ticket set. Apply cl-policy's natural-language rule: “proceed with ISS-1234, do not split it” or equivalent is an approved override in the context of that known HIGH ticket; never require a magic phrase or force the user to repeat HIGH/risk wording. Before blocking, search the current user thread plus latest exact-ticket memory/comments, preferring the newest direct instruction. Persist/query-verify an accepted override and pass it to all later workers; never ask again unless the implementation materially expands beyond the authorized shape or becomes EXTREME, and then name the delta. Never infer this exception from assignment, priority, an approved PRD, or a generic request to make progress; every other readiness, requirements, design, ownership, validation, safety, plan-approval, and merge gate must still pass. Without that narrow override, route high-complexity tickets to single-ticket human review or a private engineering block. With that narrow override, $cl-execute may be used only for plan creation/upload until the required human plan approval gate is satisfied.SPLIT_CREATED, SPLIT_PROPOSED, and SPLIT_REPAIR_REQUIRED records may be read only as legacy evidence for queue reconciliation. Do not launch $cl-split, do not create child tickets, do not repair an old split by invoking split tooling, and do not route a current ticket away from itself because an older split shape was defective. Keep every issue as the single ticket it already is. If historical split evidence makes a ticket too broad, overlapping, dependent, or unclear, use normal private engineering blocker or human-review routing unless an exact-ticket or session-level instruction accepts the current unsplit atomic ticket shape.$workflow-orchestrator, $workflow-execute, or any orchestrator-run ticket execution workflow.CODEX_THREAD_ID and the selected surface's callback contract. Desktop
prompts require the statically available send_message_to_thread
capability. CLI packets require CL_SWEEP_EVENT v1 and current ownership
generation/lease id/hash plus the current root_generation, never a raw
token. Root adoption advances the callback/root generation without rotating
a healthy ticket owner_generation. Children/workers callback when
analysis or split work completes, human input or a blocker is required, an
execution reaches PR_MONITORING_HANDOFF, a material PR/CI/queue event has
been handled, support is required, or terminal reconciliation completes.
Reject stale-generation callbacks.fork_turns: "none", role-bounded gpt-6-sol /
gpt-6-luna selection, reasoning effort tiers,
self-contained packet requirements, visual-QA repo-memory preflight, result
artifact handoff, and root-owned fallback limits.send_message_to_thread capability. Children must callback immediately when
analysis or split work completes, human input or a blocker is required, an
execution reaches PR_MONITORING_HANDOFF, a material PR/CI/queue event has
been handled, or terminal reconciliation completes. The callback must name
the ticket, child task id, structured state/result, and exact parent action.
A child final response or idle state alone is not a valid handoff. Treat
callbacks and detached PR monitor events as the primary liveness mechanism;
use bounded task reads only for startup reconciliation, suspected callback
failure, or explicit status requests, never as a routine polling loop.PR_MONITORING_HANDOFF,
WAITING_HUMAN_MERGE, ready-to-merge state, or queue-ready state on trust.
Before recording the state, starting or refreshing the parent monitor, telling
Daniel a PR is ready, or taking any queue/manual-merge action, the parent must
live-fetch the exact PR/head and unresolved review-thread count (one
gh-monitor-pr monitor-pr.mjs snapshot <pr-url> read returns both). If any current
unresolved PR review thread exists, reject the handoff and resume the same
worker with the live thread evidence; do not convert it to a passive monitor or
ready state.WAITING_HUMAN_MERGE state
that lacks one dedicated pre-PR Parker visual-QA pass, a precise
not-applicable production-consumer proof, or Daniel's explicit exception for
an already-open PR. For already-open UI PRs with no evidence or exception,
resume the owning worker to provide the existing pre-PR evidence, obtain
Daniel's exception, or return the exact blocker; do not present the PR as
waiting only on CI or manual merge. Once the pre-PR pass or Daniel exception
exists, later PR comments, test fixes, rebases, conflict repairs, source head
changes, and CI remediation do not require another Parker pass unless Daniel
explicitly asks.$cl-execute's review rules; the parent never restates them and never
authorizes a comment-only/review-only push or a manual review/CI trigger.parent_action is event evidence, not authority
to ask the user for a second PR-comment repair push. When the first
PR-comment remediation push has already been consumed, the parent must apply
the review-remediation cutoff before surfacing a decision: require an
independent CI/source-conflict/queue-base/validation repair trigger, or
require the same worker to return a DEFERRED_REVIEW_FINDINGS classification
that states whether the comment is a current acceptance/requirements/security/
data-integrity/compatibility violation or a follow-up-ticket item. Without
one of those two evidence paths, do not ask for second-push authorization,
do not present replan/close as the only alternatives, and resume the exact
worker for bounded cutoff classification instead.BLOCKED, validation-blocked, product-blocked, or
manual-intervention callback is an unblock-routing obligation, not a passive
parking state. The parent/root must not merely repeat the worker's blocked
label back to the user. In the same reconciliation pass, decide the smallest
safe next action that can move the ticket and do it when already authorized:
resume the exact worker with a changed condition, waiver, narrowed scope,
classification request, or owner/PM decision; route the exact missing
Product/owner decision under policy; route missing upstream source evidence to
its owner; or close/narrow/cancel no-work scope when the user has authorized
that disposition. If the safe action itself needs new human approval, ask for
that exact approval or decision. For unrelated validation red, stale product
records, missing upstream source evidence, and no-separable-work results, do
not simply list the ticket as blocked. Only keep a ticket in BLOCKED_SKIP,
MANUAL_INTERVENTION, or a status-report "blocked" bucket after the routing
step has produced a concrete recheck_when that the root cannot advance on
its own, such as an unapproved waiver, an unresolved PM decision, an external
owner delivery, or an explicit user pause/no-action instruction. Status
updates must include the unblock action already taken or the exact outside
condition still preventing action.blocked_by_pr/recheck_when
until main contains the fix. As soon as the unblocker lands, resume the parked
workers under the current active-worker limit. Do not ask the user for a
waiver while an owning unblocker is active and plausibly clearing the gate.model: "gpt-6-sol" for planning, correctness-sensitive review, synthesis,
or any other intelligent work where mistakes matter. Only when the worker
actually decomposes a separate bounded deterministic lower-risk support role
may it use model: "gpt-6-luna" with reasoning_effort: "low" for
inventory, artifact parsing, or status mechanics. Luna never owns
orchestration, ticket work, coding/planning, final judgment, or mutation.gh pr view, gh api, check-rollup queries, review-thread reads, queue queries, or equivalent web/API polling.$cl-execute child prompt and checkpoint.WAITING_*, PR_MONITORING_HANDOFF, or
MANUAL_INTERVENTION owner. If a terminal assumption later proves false,
resume the same Desktop child or use the CLI replacement protocol rather than
creating an untracked duplicate.WAITING_UI_PLAN_APPROVAL, PR_MONITORING_HANDOFF, WAITING_CI,
WAITING_REVIEW, WAITING_MANUAL_QA, WAITING_HUMAN_MERGE,
COMMUNICATION_PENDING, and COMMUNICATION_FAILED_MANUAL_FOLLOWUP are not
complete states.decision, complexity, or risk fields show duplicate, high-complexity without an accepted unsplit atomic-shape override, legacy split repair required, or extreme-risk work, unless the recorded child is being resumed, the ticket changed materially after the stored decision, or the user explicitly asks to retry it.$cl-sweep invocation grants no standing approval to split tickets, create child tickets, or invoke $cl-split. Keep every issue as its single ticket.Before querying or routing tickets, run the complete capability probe in Execution Surfaces:
../gh-monitor-pr/SKILL.md; require its existing monitor script,
authenticated gh, and the exact nonempty CODEX_THREAD_ID. Never infer the
root id from recent tasks.list_projects, list_threads,
create_thread with project-worktree targeting, read_thread,
send_message_to_thread, and set_thread_archived, then continue through
Desktop Child Thread Flow.Before creating, adopting, resuming, or completing the parent goal, read and apply Parent Goal. That reference owns the project-keyed goal adoption rules, objective template, resume reconciliation, completion/blocking rules, and goal-bound invariants.
Before routing blockers, writing a ClosedLoop comment, recommending or sending Slack/DM communication, or recording communication state, read and apply Communication Policy. That reference owns standing permission, blocker routing, Product-comment mechanics, and forbidden engineering/operational communication.
Before ticket selection, launch/resume, phase transition, PR handoff, blocker
state, or terminal reconciliation, read and apply
Durable Ticket State. That reference owns
the workflow-memory namespace, query/write commands, full state-record schema,
legacy aliases, transition rules, and terminal CANCELED requirements.
Before passing requirements candidates to $cl-analyze, reconciling a missing
relationship, batching work, executing, or routing a drift/blocker decision,
read and apply
Requirements Contracts. That reference
owns graph-backed discovery, applicable requirements/PRD resolution, Branch
PRD no-drift checks, missing-link reconciliation, and exact-source drift
routing.
For a real sweep, finish project-root recovery and reconcile every existing
worker and tracked open PR before new discovery. Then read and follow
../cl-work-report/SKILL.md to obtain the complete project-wide snapshot and
proposed feature groups. Reuse that snapshot as the locked discovery input and
read Feature Unit Execution before scheduling or
implementation. The report is shared inventory; this skill alone owns
eligibility, leases, workers, status changes, execution, and PR lifecycle.
Read and apply Ticket Queue And Batching. That reference owns ticket selection, status allowlists, memory-state exclusion, and retry/resume conditions.
Resolve complete feature membership before implementation. Use Ticket Queue And Batching and Feature Unit Execution for the existing batch representation, single-owner compatibility binding, manifest, dependency, repository, rollback, and completion rules.
Maintain the active work set, monitored waiting set, next-ready queue, monitor wake routing, terminal-child removal, and no-eligible-work handling using Ticket Queue And Batching.
Read Ticket Queue And Batching when older
workflow memory or callbacks contain split states. Treat them as legacy
reconciliation evidence only. Do not invoke $cl-split, do not repair split
shape by creating or rewriting child tickets, and do not emit
SPLIT_REPAIR_REQUIRED as a next action for a new analysis.
Apply this section only when Tool Preflight selected CLI. The Desktop flow below remains unchanged when Desktop is complete.
scripts/sweep-root-state.mjs open and use its stable project-keyed
rootPath. The helper atomically finds or creates the root and manages its
root lease; do not create a second thread-keyed directory or acquire another
root lease manually. On resumed or adopted, reconcile existing
workflow-memory owners, root/ticket generations, events, worktrees, App
Server threads, callbacks, monitors, PRs, and checkpoints before discovery
or launch. The exact prepared target rolls an incomplete transfer forward;
another target or any ownership conflict stops the flow.scripts/cli-worktree.mjs create. Validate returned repo, path, branch,
HEAD, and cleanliness explicitly. Do not reuse the root checkout, an existing
path, or an existing branch.scripts/app-server-worker-session.mjs; new sessions
persist requestedModel: gpt-6-sol, the generated protocol schema hash
proof, and the ticket-owner reasoning effort. An already-active persisted
gpt-5.5 or gpt-5.6-* turn remains recoverable under its exact stored
binding; never rewrite the session file or interrupt the turn. At its next
authoritative idle boundary, replace its owner/session under the CLI lease
replacement protocol before any new turn. Pass the exact persisted model to
thread resume during recovery; pass effort: "xhigh" on ordinary
mutating ticket-owner turns, with medium reserved only for explicitly
classified deterministic narrow continuations. turn/steer has no model
field and is valid only for an already-active turn under the proven binding.
Reject missing, unproven, incompatible, or rerouted model bindings before
starting or resuming work. Never create a new legacy-model session, and allow
no implicit fallback or model-family reroute. Stream its turn
events, steer active work directly, and reconcile the stored thread/turn
after daemon or client interruption before any new turn. When a stored turn
is absent from history, use recover-absent-turn only after exact-bound
authoritative idle/no-active-turn proof, active lease validation, and
detached-runner fencing; do not replace the worker before that recovery
finishes. Use scripts/cli-worker-session.mjs and root-owned
codex exec -C <worktree> -m gpt-6-sol only after a
complete native App Server capability or daemon probe genuinely fails.
Acquire a distinct lease for every selected nonterminal shipping execution
member into its randomized
mode-0600 ticket-private file. Bind those records to the same feature owner,
session, worktree, branch, and manifest while preserving each member's
generation and lease id/hash. Choose the manifest's deterministic
anchor_ticket as the session's canonical callback ticket. Initialize the
multi-member session with --feature-manifest and --ownership-ledger;
a singleton uses the ordinary single-ticket init contract. Never copy the
anchor lease into another member record. Persist only lease ids/hashes,
owner/session ids, the shared manifest path/hash, and ACTIVE_ANALYZING.
Never disclose raw tokens or secret paths to a worker. Include the exact root
id/generation, feature id, manifest hash, member tickets and roles, internal
dependency order, logical owner/session, surface, per-member generations and
lease ids/hashes, worktree, requirements candidates, callback schema, and
every analysis gate. Every App Server prompt must use the runtime-appended exact
binding and validate-callback command before emitting the single final
CL_SWEEP_EVENT v1 line; jq/JSON.parse syntax validation alone is not a
callback schema or ownership preflight.
Every launch or direct run that starts a new turn must also pass
--activity-phase planning|coding|reviewing; reviewing requires
--review-kind plan|code. The runtime journals that exact classification
after turn/start acceptance and stores it in currentActivity; never issue
a separate best-effort phase command for an ordinary CLI dispatch.$cl-analyze separately for every
selected nonterminal shipping member, then run one batch $cl-execute only
after every selected member's validated
readiness and approval gates pass. The analysis packet must distinguish a
proven scheduled_in_unit dependency from an external unlanded dependency;
it never waives readiness or acceptance. CLI changes orchestration mechanics
only; it does not change UI approval, requirements, communication, review,
validation, PR, monitoring, manual-QA, or merge policy. Do not run $cl-split.CL_SWEEP_EVENT v1 captured from that exact managed/root-
owned session for every transition. Append accepted events before acting;
reject duplicates, malformed packets, mismatched transport/root/session,
stale root or member generations, stale member lease ids/hashes, mismatched
feature ownership summaries/manifests, wrong worktrees, and invalid
transitions.
For a malformed event from a completed turn, keep parsing fail closed,
reconcile the exact session, clear only its stale completed activeTurnId,
consume the runtime-generated CHECKPOINT_READY /
CALLBACK_CORRECTION_REQUIRED parent event. On a gpt-6-sol binding, run
one correction turn on the same thread/session and worktree without replacing
its lease or ticket generation. On a legacy model binding, first replace at
the verified idle boundary, then issue the correction from the new session.
A second malformed callback
exhausts the one-turn correction budget. The worker-session runtime must
durably emit the runtime-generated CHECKPOINT_READY /
REPLACEMENT_REQUIRED parent event; consume it immediately and run the
exact-worker replacement policy instead of waiting for polling or a status
request. The codex exec fallback must append and return the same runtime
events through its root-owned events ledger/result because it has no parent
App Server outbox. For an absent stored turn, require the separate audited
recover-absent-turn path; its success permits a later new turn on the same
worker thread and worktree but does not itself start one. Do not routinely
poll a healthy callback.PR_MONITORING_HANDOFF releases no ownership: park the session only
when it can be resumed or explicitly replaced, retain its worktree and lease, and
route material monitor evidence back to that owner. Never launch a child-
targeted monitor. Register every started/refreshed parent monitor with
sweep-root-state.mjs register-monitor so a later root generation can stop,
transfer, and delta-check it.--replacement-of <old-owner>:<old-generation>. A partial rotation makes the
old session fail closed; complete the remaining member operations before any
further feature action. Increment once and
reconcile before mutation. Late
prior-generation events are stale. Lease expiry alone never fences a legacy
Desktop child; cutover requires the explicit Desktop pause/idle gate.cli-worktree.mjs. This is mandatory cleanup,
not optional disk hygiene: a terminal feature with a clean worktree must not
remain in the sweep root after the parent accepts its terminal callback.
If cleanup is deferred because the worktree is dirty, missing checkpoint
evidence, or a helper refuses removal, record the exact cleanup blocker and
recheck it before the next status report, transfer, or root finish. Force
cleanup requires a verified current checkpoint, cleanup reason, and cleanup
ledger; force-deleting a branch has the same gate. Never clean up a waiting,
open-PR, pending-event, pending-support, manual-QA, or manual-intervention feature. When
every sweep obligation is terminal, run sweep-root-state.mjs finish with
the exact root thread/generation so history remains discoverable without
blocking the next run.Apply this existing flow only when Tool Preflight selected the complete Desktop surface. Do not substitute manual CLI worktrees, leases, or worker sessions.
list_projects to identify the one repo target required by the frozen
feature manifest. A cross-repository or incompatible-policy unit is blocked.CL Analyze Result. Apply all existing complexity,
risk, worktree, requirements, external-doc, metadata, and UI-plan gates per
member. A proven manifest member may report an internal dependency as
scheduled_in_unit only with the shared-interface, execution-order, and
acceptance evidence required by Feature Unit Execution; an external blocker
remains blocking. AMBIGUOUS, SPLIT_RECOMMENDED, and
SPLIT_REPAIR_REQUIRED are never execution-ready.$cl-split, create child tickets, or emit a new split state.GO or approved
GO_WITH_UI_PLAN_APPROVAL and the frozen manifest still proves one coherent
PR, write ACTIVE_EXECUTING or ACTIVE_PLANNING for every member. Send the
feature-unit batch variant from Worker Prompt Packets to the designated
owner. It must preserve per-ticket plan, status, requirements, acceptance,
validation, and completion evidence while producing one integrated feature.WAITING_MANUAL_QA, readiness, or terminal success. Route blockers
through Worker Prompt Packets and Communication Policy.Use the communication target from each $cl-analyze or $cl-execute report,
then apply
Communication Policy. Authorized
Product-decision comments are parent-owned during $cl-sweep; engineering,
operational, recordkeeping, DM, and completion-message communication remains
disabled unless explicitly requested.
Maintain the parent-thread table and final response using Parent Summary. That reference owns the summary fields, final response contents, and goal-completion/blocked reporting boundary.
© closedloop-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 40 other files (scripts, references) in plugins/code/skills/cl-sweep of closedloop-ai/claude-plugins.
Open the folder on GitHubat commit 0e20ac0
Cl Sweep next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cl Sweep this skillclosedloop-ai/claude-plugins | 122 | — | ~15k | Automated safety check: Pass | Apache-2.0 | |
| Agent Consensus Coordinatorruvnet/ruflo | 74k | 3 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Agent Mesh Coordinatorruvnet/ruflo | 74k | 3 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Agent Queen Coordinatorruvnet/ruflo | 74k | 3 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Agent Adaptive Coordinatorruvnet/ruflo | 74k | 2 repos | ~4k | Automated safety check: Pass | MIT | |
| Agent Hierarchical Coordinatorruvnet/ruflo | 74k | 2 repos | ~2.8k | Automated safety check: Pass | MIT |
ruvnet/ruflo
Agent skill for consensus-coordinator - invoke with $agent-consensus-coordinator
ruvnet/ruflo
Agent skill for mesh-coordinator - invoke with $agent-mesh-coordinator
ruvnet/ruflo
Agent skill for queen-coordinator - invoke with $agent-queen-coordinator
ruvnet/ruflo
Agent skill for adaptive-coordinator - invoke with $agent-adaptive-coordinator
ruvnet/ruflo
Agent skill for hierarchical-coordinator - invoke with $agent-hierarchical-coordinator
ruvnet/ruflo
Agent skill for memory-coordinator - invoke with $agent-memory-coordinator
closedloop-ai/claude-plugins
Run Codex to review a plan file and return structured feedback with a verdict.
closedloop-ai/claude-plugins
Check if critic reviews are still valid before re-running Phase 2.5 critics.
closedloop-ai/claude-plugins
Check if cross-repo coordinator results can be reused, avoiding redundant Sonnet agent launches.
closedloop-ai/claude-plugins
Check for a cached plan-evaluation.json result before launching the plan-evaluator agent.
closedloop-ai/claude-plugins
This skill should be used when needing to locate files within the Claude Code plugins cache directory (~/.claude/plugins/cache).
closedloop-ai/claude-plugins
Start a detached GitHub pull-request monitor that wakes the exact launching Codex Desktop or CLI root through the managed Codex App Server when review, CI, conflict, merge-queue, closure, readiness…
Report or coordinate ClosedLoop work assigned to the user in one project. Cl Sweep is an agent skill from closedloop-ai/claude-plugins. Report or coordinate ClosedLoop work assigned to the user in one project.
Run `npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a claude-code`. Or copy the skill folder (plugins/code/skills/cl-sweep in closedloop-ai/claude-plugins) into .claude/skills/cl-sweep in your project. Claude Code loads it when a task matches its description.
Run `npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a codex`. Or copy the skill folder (plugins/code/skills/cl-sweep in closedloop-ai/claude-plugins) into .agents/skills/cl-sweep in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add closedloop-ai/claude-plugins --skill cl-sweep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cl-sweep, .gemini/skills/cl-sweep, .github/skills/cl-sweep and .opencode/skills/cl-sweep in your project.
Going by SKILL.md and its folder, Cl Sweep needs JavaScript for the scripts in its folder and the command-line tools its instructions call (gh and codex). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Cl Sweep is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 15k tokens (SKILL.md is roughly 58k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 50k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cl Sweep: Agent Consensus Coordinator (ruvnet/ruflo, 74k stars), Agent Mesh Coordinator (ruvnet/ruflo, 74k stars), Agent Queen Coordinator (ruvnet/ruflo, 74k stars) and Agent Adaptive Coordinator (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
closedloop-ai (a GitHub organization) maintains it in closedloop-ai/claude-plugins, which has 122 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on October 7, 2026.
Source: closedloop-ai/claude-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.