Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/oalders/kitchen-sinkWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/oalders/kitchen-sink/poll-ci)<a href="https://agentmods.dev/commands/oalders/kitchen-sink/poll-ci"><img src="https://agentmods.dev/badge/commands/oalders/kitchen-sink/poll-ci.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00021 | $0.00851 |
| Opus 5 | $0.00010 | $0.00426 |
| Sonnet 5 | $0.00004 | $0.00170 |
| Haiku 4.5 | $0.00002 | $0.00085 |
Grade A, and why
poll-ci scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Poll the status of the current branch's CI run and report back when it finishes.
Use this as a fallback for monitoring CI when a /monitor-ci command is not present in the environment. If /monitor-ci is available, prefer it — it is purpose-built for this project. poll-ci is the generic, gh-based fallback.
Steps:
-
Determine the current branch:
git rev-parse --abbrev-ref HEAD -
Find the most recent CI run for that branch (
<branch>is the value from step 1):gh run list --branch "<branch>" --limit 1 \ --json databaseId,status,conclusion,workflowName,headSha,url- If no runs are found, tell the user no CI run exists for the branch yet (CI may not have started, or the branch may not be pushed). Suggest
git pushif the branch has no remote counterpart, then stop. - If the latest run's
headShadoes not matchgit rev-parse HEAD, warn the user that the newest commit has not triggered a run yet, and ask whether to poll the existing run or wait. If they choose to wait, re-run thisgh run listcommand every ~20 seconds (capped at ~30 minutes, as in step 3) until a run whoseheadShamatches the current HEAD appears, then poll that run.
- If no runs are found, tell the user no CI run exists for the branch yet (CI may not have started, or the branch may not be pushed). Suggest
-
Poll until the run completes. Prefer
gh run watch, which blocks until the run finishes:gh run watch <databaseId> --exit-status--exit-statusmakes the command exit non-zero if the run fails, so you can branch on the result.gh run watchstreams per-job progress to the terminal on its own, so no extra status reporting is needed on that path.- If
gh run watchis unavailable or you need finer control, poll manually instead: re-run thegh run listcommand from step 2 every ~20 seconds untilstatusiscompleted, reportingqueued->in_progress->completedtransitions as they happen. Cap polling at a sensible limit (e.g. 30 minutes) and stop with a timeout message if exceeded.
-
Report the final status to the user:
- Pass —
conclusionissuccess. State that CI passed and include the run URL. Treatskippedandneutralas non-failing outcomes too: report success but note the qualifier. - Fail —
conclusionisfailure,cancelled,timed_out,startup_failure, orstale. State that CI failed, include the run URL, and surface the failing jobs:
Offer to show failing logs withgh run view <databaseId> --json jobs \ -q '.jobs[] | select(.conclusion != "success") | .name'gh run view <databaseId> --log-failed. - Needs attention —
conclusionisaction_required(e.g. a job awaiting manual approval). This is not a failure; report that the run is paused pending action and include the run URL so the user can approve or investigate. - In progress — only if polling was stopped early (timeout or user interrupt). Report the current
statusand the run URL so the user can resume checking. - Any other
conclusion— report the raw value verbatim along with the run URL rather than guessing, so no terminal state is silently swallowed.
- Pass —
Notes:
- Operate on the current branch's CI; do not switch branches.
- On the manual-polling path, report status changes as they happen rather than only at the end, so the user has visibility into long-running pipelines.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 46 lines · 21 tokens per session scan A 47c5fffab1df
poll-ci is a command published in the GitHub repository oalders/kitchen-sink (4 stars, last pushed 8d ago), licensed MIT. It adds 21 tokens to every session and 851 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
domains
Apply the CLI runtime and safety contract before executing a command. Runtime --help is authoritative.
access
Apply the CLI runtime and safety contract before executing a command. Runtime --help is authoritative.
check-release-health
Summarize the CI health of an OpenShift release using live data from the openshift-ci-mcp server.
merge-conflict-analysis
You are analyzing merge conflicts for PR #${{ pr-number }}.
analyst
Use when performing local analyst review before pushing PR changes. Assesses code quality, impact analysis, and maintainability.
release
Standalone SDK release command for the BUILD repo. Not a workspace phase — runs independently after any number of implement/redteam cycles. Handles PyPI publishing, documentation deployment, and CI management for the kailash Python SDK and its framework packages.