OpenLogi macOS Permissions Triage
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
Runs a CI health check on an ai-dynamo/dynamo pull request — report check status, explain why full CI has or has not triggered, root-cause failed job logs, cross-reference failures against main to…
$ npx skills add ai-dynamo/dynamo --skill pr-monitor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ai-dynamo/dynamo pr-monitor --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/ai-dynamo/dynamo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/pr-monitor .claude/skills/pr-monitor && 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 "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .claude/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitorType 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 ai-dynamo/dynamo --skill pr-monitor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ai-dynamo/dynamo pr-monitor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/pr-monitor .agents/skills/pr-monitor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .agents/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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 ai-dynamo/dynamo --skill pr-monitor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ai-dynamo/dynamo pr-monitor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/pr-monitor .cursor/skills/pr-monitor && 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 "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .cursor/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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/ai-dynamo/dynamo.git --path .agents/skills/pr-monitor--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 ai-dynamo/dynamo --skill pr-monitor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ai-dynamo/dynamo pr-monitor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/pr-monitor .gemini/skills/pr-monitor && 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 "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .gemini/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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 ai-dynamo/dynamo pr-monitorInstalls 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 ai-dynamo/dynamo --skill pr-monitor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/pr-monitor .github/skills/pr-monitor && 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 "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .github/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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 ai-dynamo/dynamo --skill pr-monitor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ai-dynamo/dynamo pr-monitor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ai-dynamo/dynamo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/pr-monitor .opencode/skills/pr-monitor && 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 "pr-monitor" agent skill from https://github.com/ai-dynamo/dynamo/tree/main/.agents/skills/pr-monitor into .opencode/skills/pr-monitor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pr-monitor", 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.
pr-monitorRuns a CI health check on an ai-dynamo/dynamo pull request — report check status, explain why full CI has or has not triggered, root-cause failed job logs, cross-reference failures against main to…
PR Monitor is an agent skill from ai-dynamo/dynamo. Runs a CI health check on an ai-dynamo/dynamo pull request — report check status, explain why full CI has or has not triggered, root-cause failed job logs, cross-reference failures against main to separate PR-caused regressions from pre-existing flakes, and flag unexpected skips. Use when asked whether a PR's CI is healthy, why checks are failing or missing, or whether a failure is a flake.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Root cause analysis and Pull requests. It works with Rust. The repository describes itself as: A Datacenter Scale Distributed Inference Serving Framework. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b208989. 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.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
PR Monitor loads about 3.8k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,732 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); files beside SKILL.md are not scanned.
The full file from ai-dynamo/dynamo at commit b208989, republished under its Apache-2.0 licence (© ai-dynamo). 1,732 words, ~3,829 tokens.
.claude/skills/pr-monitor/SKILL.md (or your agent's skills folder).<!--
SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: CC-BY-4.0
-->
Perform a full health check on a Dynamo pull request. Takes a PR number as argument (e.g., /dynamo:pr-monitor 6554).
Gather PR metadata and determine what CI should look like for this PR.
gh pr view $PR_NUMBER --repo ai-dynamo/dynamo --json title,body,author,state,isDraft,additions,deletions,changedFiles,labels,reviewDecision,headRefName,baseRefName
gh pr diff $PR_NUMBER --repo ai-dynamo/dynamo --name-onlyCheck if full CI should be running. The dynamo repo has two tiers of CI:
pre-merge.yml): Triggers on all pull_request events. Runs pre-commit, copyright checks, DCO, and optionally rust-clippy/rust-tests (if rust filter matches). This always runs.pr.yaml, container-validation-dynamo.yml): Triggers on push to main or pull-request/[0-9]+ branches ONLY. This includes docker builds, GPU tests, deploy tests. It does NOT trigger on regular PR branches.To get full CI on a PR, a pull-request/$PR_NUMBER branch must exist (created by copy-pr-bot after an NVIDIA maintainer approves). Check:
gh api repos/ai-dynamo/dynamo/branches/pull-request/$PR_NUMBER 2>/dev/nullIf the branch does not exist, full CI has not been triggered. Common reasons:
/ok to test <commit_sha> on the PR to create the branch and trigger full CI. This applies to both fork PRs and internal PRs from authors not yet in the approval list.Signed-off-by line missing). Check for a DCO bot comment. Fix: author signs their commits (see DCO.md)./ok to test flow requires GitHub to report every PR commit as Verified. A DCO sign-off alone does not meet this requirement. This applies only after the PR has an automatic approval path; signing commits does not create that path. Check the workflow's unsigned-commit comment or inspect .commit.verification for every PR commit; sign each unverified commit, then push again. A maintainer can manually review the current head and comment /ok to test <sha> when automatic approval is unavailable.For a fork PR that is otherwise eligible for automatic approval, check every commit's verification result:
gh api --paginate "repos/ai-dynamo/dynamo/pulls/$PR_NUMBER/commits?per_page=100" --jq '.[].sha' | while read -r sha; do
gh api "repos/ai-dynamo/dynamo/commits/$sha" --jq '"\(.sha[0:7]) verified=\(.commit.verification.verified) reason=\(.commit.verification.reason)"'
doneVerify which workflows actually ran against the PR's HEAD commit:
# Get the HEAD SHA
HEAD_SHA=$(gh pr view $PR_NUMBER --repo ai-dynamo/dynamo --json headRefOid --jq '.headRefOid')
# Check which workflow runs exist for this SHA
gh api "repos/ai-dynamo/dynamo/actions/runs?head_sha=$HEAD_SHA" --jq '.workflow_runs[] | {name: .name, status: .status, conclusion: .conclusion}'Compare the workflows that ran against what's expected. If only Pre Merge, Copyright Checks, DCO Commenter, etc. appear but NOT PR or Dynamo Validation, then full CI was not triggered.
Determine which CI filters are active. If full CI ran, read the changed-files job output from the actual workflow run — this is the authoritative source for which filters are true:
# Find the PR workflow run ID
PR_RUN_ID=$(gh api "repos/ai-dynamo/dynamo/actions/runs?head_sha=$HEAD_SHA" --jq '.workflow_runs[] | select(.name == "PR") | .id')
# Get the changed-files job output (look for the filter results in the logs)
gh api "repos/ai-dynamo/dynamo/actions/runs/$PR_RUN_ID/jobs" --jq '.jobs[] | select(.name == "changed-files") | {id: .id, status: .status, conclusion: .conclusion}'If full CI hasn't run, fall back to fetching filters.yaml and matching manually:
gh api repos/ai-dynamo/dynamo/contents/.github/filters.yaml --jq '.content' | base64 -dKey rules for manual matching:
core being true triggers ALL framework pipelines (vllm, sglang, trtllm).*ci) — resolve these when reading.!**/*.md in a filter mean markdown-only changes do NOT trigger that filter.Jobs that always run in pr.yaml regardless of filters:
changed-files, deploy-operator, backend-status-check, clean-k8s-builder, cleanup — these run unconditionally or with if: always().Fetch all check runs. Note: gh pr checks returns non-zero exit codes when checks are pending or failed — this is normal, not an error.
gh pr checks $PR_NUMBER --repo ai-dynamo/dynamoIf no checks are returned at all, refer back to the Step 1 diagnosis (DCO, approval, draft status).
Ignore external CI checks (e.g., GitLab mirror ci/gitlab/*). These are NVIDIA-internal pipelines that cannot be inspected from GitHub. Only analyze GitHub Actions checks.
Distinguish two situations:
PR, Dynamo Validation): Analyze all jobs normally.Pre Merge and utility workflows only): Report this clearly. The filter predictions from Step 1 describe what would run once full CI triggers, but there's nothing to analyze yet beyond the lightweight checks.If full CI ran, identify the critical path — which checks are most relevant to this PR's changes based on the filter mapping from Step 1.
Produce a concise dashboard grouped by status:
For each failed GitHub Actions job, drill into the logs to extract root cause.
First, identify the failed jobs within each run:
gh api repos/ai-dynamo/dynamo/actions/runs/$RUN_ID/jobs --jq '.jobs[] | select(.conclusion == "failure") | {name: .name, id: .id, html_url: .html_url}'Then fetch logs for specific failed jobs. The check URL format from gh pr checks is https://github.com/.../actions/runs/{RUN_ID}/job/{JOB_ID}. Extract the RUN_ID (first number):
gh run view $RUN_ID --repo ai-dynamo/dynamo --log-failed 2>&1 | tail -200Note: --log-failed concatenates all failed job logs, which can be noisy. For multi-failure runs, prefer fetching per-job to isolate root causes.
For each failure, report:
gh run rerun $RUN_ID --repo ai-dynamo/dynamo --failedIf there are no failures, say so and move on.
For each failed job identified in Step 3, check if the same job also fails on main. This distinguishes PR-caused regressions from pre-existing flakes.
First, check how far behind the PR is from main:
gh api "repos/ai-dynamo/dynamo/compare/main...$HEAD_SHA" --jq '{behind_by: .behind_by, ahead_by: .ahead_by, status: .status}'If the PR is significantly behind main (>20 commits), note this in the report — some failures may already be fixed on main, and some apparent "regressions" may just be the PR missing recent fixes.
Then, check recent main branch CI results:
# Get last 3 completed PR workflow runs on main
MAIN_RUNS=$(gh api "repos/ai-dynamo/dynamo/actions/workflows/pr.yaml/runs?branch=main&per_page=3&status=completed" --jq '[.workflow_runs[].id] | join(" ")')
# For each failed job name from Step 3, check if it also failed on main
for RUN_ID in $MAIN_RUNS; do
gh api "repos/ai-dynamo/dynamo/actions/runs/$RUN_ID/jobs?per_page=100&filter=latest" \
--jq ".jobs[] | select(.name == \"$FAILED_JOB_NAME\") | {run: $RUN_ID, conclusion: .conclusion}"
doneClassification:
[PR-CAUSED] — Fails on this PR but passes on all recent main runs → Likely a regression introduced by this PR. Needs attention.[PRE-EXISTING] — Also fails on recent main runs → Pre-existing flake, not caused by this PR. Suggest rerun.[UNCLEAR] — Mixed results on main (sometimes passes, sometimes fails) → Flaky test. Note flakiness and suggest rerun.[NEW JOB] — Job doesn't exist on main runs → New CI job added by this PR, can't compare.Important caveats to include in the report:
[PR-CAUSED] classification may be a false positive — the failure could already be fixed on main. Suggest: "Consider rebasing on main before investigating."This step is exception-based only. Do NOT enumerate expected skips — that's noise.
If full CI did not trigger, skip this step entirely — there are no jobs to analyze. The absence of full CI was already explained in Steps 1-2.
If full CI ran, compare the filter results from Step 1 against actual CI results from Step 2. Only report surprises:
true (files matched its paths) but the corresponding job was skipped or missingbackend-status-check, dynamo-status-check) was skipped — these use if: always() and should always runcore files changed (core should trigger all frameworks)Things that are NOT surprises (do not report):
false (e.g., docs jobs skipped when no docs changed)deploy-operator running despite operator=false — this job always runs in pr.yamlIf everything matches expectations, say "No unexpected skips or discrepancies" and move on.
Synthesize into a concise report:
PR Health: [PASSING | FAILING | PENDING | CI NOT TRIGGERED | PARTIAL — lightweight only]
If full CI not triggered:
/ok to test <sha> to create the pull-request/$PR_NUMBER branch."Verified; DCO sign-off alone is insufficient."Blocking issues (PR-caused) — failures that pass on main but fail here:
backend-status-check or dynamo-status-check gate is failingPre-existing failures — also failing on main, not caused by this PR:
Non-blocking issues (if any):
[UNCLEAR] from Step 3b), infra timeouts, unexpected skipsCritical path status — the checks most relevant to this PR's changes:
Next steps — concrete actions ordered by priority:
/ok to test <sha>" if full CI hasn't triggeredgit commit --amend -s" for DCO failures/ok to test <sha>" when automatic approval is unavailablegh run rerun $RUN_ID --repo ai-dynamo/dynamo --failedIf any checks are still pending or in-progress, offer to monitor them.
List remaining checks:
gh pr checks $PR_NUMBER --repo ai-dynamo/dynamo | grep -E 'pending|queued|in_progress'Report:
vllm-cuda12.9-amd64 / Test took 20m and vllm-cuda13.0-amd64 / Test is still running, estimate ~20m remaining)If the user wants to wait, poll periodically:
# Re-check status
gh pr checks $PR_NUMBER --repo ai-dynamo/dynamo | grep -cE 'pass|fail|skipped' # completed count
gh pr checks $PR_NUMBER --repo ai-dynamo/dynamo | grep -cE 'pending|queued|in_progress' # remaining countWhen all checks complete, re-run the summary from Step 5 with final results. Report any checks that changed from pending to failed since the last check.
gh commands fail due to rate limiting, report what you could gather and suggest retrying later.pr.yaml, pre-merge.yml, and container-validation-dynamo.yml. Check all of them.pull-request/[0-9]+ branches: Created by copy-pr-bot after maintainer approval. Required for full CI — applies to both fork and internal PRs.external-contribution label: Fork PRs get this label automatically. Its presence confirms the PR is from an external contributor.ci/gitlab/* checks entirely. These are NVIDIA-internal and cannot be diagnosed from GitHub.© ai-dynamo, 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
Just SKILL.md in .agents/skills/pr-monitor of ai-dynamo/dynamo.
Open the folder on GitHubat commit b208989
PR Monitor 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 |
|---|---|---|---|---|---|---|
| PR Monitor this skillai-dynamo/dynamo | 8.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| OpenLogi macOS Permissions TriageAprilNEA/OpenLogi | 23k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 | |
| Review PRapache/shardingsphere | 21k | — | ~6.5k | Automated safety check: Pass | Apache-2.0 | |
| Om Auto Fix Issuego-musicfox/go-musicfox | 2.6k | 1 repos | ~5k | Automated safety check: Notes | GPL-3.0 | |
| SeekDB Code Reviewoceanbase/seekdb | 3.1k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Commit ScopeDevolutions/IronRDP | 3.2k | — | ~854 | Automated safety check: Pass | Apache-2.0 |
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
apache/shardingsphere
Review Apache ShardingSphere or user-authorized downstream pull requests and PR discussions from public or authorized repository evidence.
go-musicfox/go-musicfox
Fix or implement a tracker issue end to end from a single command — takes an issue id or a plain problem description (filed first via om-prepare-issue), classifies, then drives the bug autofix chain…
oceanbase/seekdb
Reviews seekdb pull requests and diffs for real defects in correctness, resources, concurrency, security and tests, reporting only Blocker or Major findings.
Devolutions/IronRDP
Derive and validate the canonical scope for IronRDP Conventional Commit and pull-request titles.
jaemk/cached
PR review-and-update cycle — the orchestrator that takes a PR from review to resolved.
ai-dynamo/dynamo
Create self-contained interactive HTML code-review dashboards from GitHub or GitLab pull requests, checked-out branch diffs, or supplied unified diffs, with correctness and safe-to-merge scores…
ai-dynamo/dynamo
Knowledge of Fern's built-in MDX component library (accordions, callouts, cards, steps, tabs, code blocks, API-reference snippets, and more) for authoring docs pages.
ai-dynamo/dynamo
Knowledge of Fern's site-level navigation and structure configuration — how a docs site is organized in docs.yml (and product/version .yml files) using sections, pages, folders, tabs, tab variants…
ai-dynamo/dynamo
Drives persistent Claude Code, Codex, or OpenCode agent sessions through a Dynamo OpenAI/Anthropic-compatible endpoint over Agent Client Protocol (ACP).
ai-dynamo/dynamo
Benchmark and profile the Dynamo frontend (dynamo.frontend HTTP + tokenizer + KV router) against mock workers (dynamo.mocker).
ai-dynamo/dynamo
Selects and freezes a question-driven AIPerf workload, objective, load policy, and Kubernetes execution manifest for a successfully deployed Dynamo candidate.
Works with
Categories
Runs a CI health check on an ai-dynamo/dynamo pull request — report check status, explain why full CI has or has not triggered, root-cause failed job logs, cross-reference failures against main to…. PR Monitor is an agent skill from ai-dynamo/dynamo. Runs a CI health check on an ai-dynamo/dynamo pull request — report check status, explain why full CI has or has not triggered, root-cause failed job logs, cross-reference failures against main to separate PR-caused regressions from pre-existing flakes, and flag unexpected skips.
PR Monitor fits situations like: asked whether a PRs CI is healthy; why checks are failing; whether a failure is a flake.
Run `npx skills add ai-dynamo/dynamo --skill pr-monitor -a claude-code`. Or copy the skill folder (.agents/skills/pr-monitor in ai-dynamo/dynamo) into .claude/skills/pr-monitor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ai-dynamo/dynamo --skill pr-monitor -a codex`. Or copy the skill folder (.agents/skills/pr-monitor in ai-dynamo/dynamo) into .agents/skills/pr-monitor 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 ai-dynamo/dynamo --skill pr-monitor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-monitor, .gemini/skills/pr-monitor, .github/skills/pr-monitor and .opencode/skills/pr-monitor in your project.
Going by SKILL.md and its folder, PR Monitor needs the command-line tools its instructions call (gh and git). Our summary lists: Docker.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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. Review the folder before installing.
PR Monitor is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with PR Monitor: OpenLogi macOS Permissions Triage (AprilNEA/OpenLogi, 23k stars), Review PR (apache/shardingsphere, 21k stars), Om Auto Fix Issue (go-musicfox/go-musicfox, 2.6k stars) and SeekDB Code Review (oceanbase/seekdb, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ai-dynamo (a GitHub organization) maintains it in ai-dynamo/dynamo, which has 8,256 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 11, 2026.
Source: ai-dynamo/dynamo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.