Diagnose Gateway
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
Watch a PR's CI, diagnose every failing check, fix what's actually broken, resolve CodeRabbit's major findings, and keep iterating until the PR is green.
$ npx skills add analogjs/analog --skill handhold-pr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install analogjs/analog handhold-pr --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/analogjs/analog.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/handhold-pr .claude/skills/handhold-pr && 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 "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .claude/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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/analogjs/analog/tree/beta/.agents/skills/handhold-prType 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 analogjs/analog --skill handhold-pr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install analogjs/analog handhold-pr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/analogjs/analog.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/handhold-pr .agents/skills/handhold-pr && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .agents/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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 analogjs/analog --skill handhold-pr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install analogjs/analog handhold-pr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/analogjs/analog.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/handhold-pr .cursor/skills/handhold-pr && 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 "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .cursor/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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/analogjs/analog.git --path .agents/skills/handhold-pr--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 analogjs/analog --skill handhold-pr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install analogjs/analog handhold-pr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/analogjs/analog.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/handhold-pr .gemini/skills/handhold-pr && 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 "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .gemini/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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 analogjs/analog handhold-prInstalls 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 analogjs/analog --skill handhold-pr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/analogjs/analog.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/handhold-pr .github/skills/handhold-pr && 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 "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .github/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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 analogjs/analog --skill handhold-pr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install analogjs/analog handhold-pr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/analogjs/analog.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/handhold-pr .opencode/skills/handhold-pr && 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 "handhold-pr" agent skill from https://github.com/analogjs/analog/tree/beta/.agents/skills/handhold-pr into .opencode/skills/handhold-pr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "handhold-pr", 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.
handhold-prWatch a PR's CI, diagnose every failing check, fix what's actually broken, resolve CodeRabbit's major findings, and keep iterating until the PR is green.
Handhold PR is an agent skill from analogjs/analog. Watch a PR's CI, diagnose every failing check, fix what's actually broken, resolve CodeRabbit's major findings, and keep iterating until the PR is green. Use when the user says "handhold the PR", "check CI", "get CI green", "resolve any issues until green", or asks why a PR's checks are failing.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: The fullstack meta-framework for Angular. Powered by Vite and Nitro. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit eedd920. 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:
ghnxgitnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, 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.
Handhold PR loads about 1.6k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 941 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 analogjs/analog at commit eedd920, republished under its MIT licence (© analogjs). 941 words, ~1,583 tokens.
.claude/skills/handhold-pr/SKILL.md (or your agent's skills folder).Take a pull request from "checks failing" to "all green". This skill owns watching CI, diagnosing failures, deciding whether a failure is yours, and driving fixes until every required check passes.
Target the PR the user names (number or URL). With no argument, use the PR for the current branch: gh pr view --json number,url,headRefName. If the branch has no PR, say so and stop — this skill doesn't open PRs (that's open-pr).
gh pr checks <n> — the whole picture in one call. Netlify skipping rows are noise; ignore them.gh pr view <n> --json statusCheckRollup). A failing advisory check may not block, but still report it.Don't diagnose from a check name. Read the log.
gh api repos/<owner>/<repo>/actions/runs/<runId>/jobs -q '.jobs[] | "\(.id) \(.name) \(.conclusion)"' to find the failing job id.gh run view --job <jobId> --log-failed for the failing step.--log-failed is often not enough on this repo. Nx distributed execution prints a task summary table there; the actual test/build output is earlier in the full log. Pull it and search:
gh run view --job <jobId> --log | grep -n "FAIL\|Error:\|✖\|<task-name>" then sed -n '<start>,<end>p' the surrounding block (pipe through sed 's/\x1b\[[0-9;]*m//g' to strip ANSI).cloud.nx.app/logs/...) are auth-gated — don't burn turns fetching them; the GitHub job log has the output.For each failure, answer: is this caused by the diff on this branch?
git diff <base>...HEAD --name-only. A failure in a package the PR never touched is a strong signal it isn't yours.gh run list --branch beta --limit 5 --json conclusion,name. A red base means pre-existing breakage.@analogjs/vitest-angular/setup-testbed) because tsconfig.base.json maps only the bare specifier, so test → ^build doesn't guarantee that dist is on the agent that picked up the task.node --version against .node-version; a newer Node changes TS/ESM resolution in Vite config loading and produces failures CI never sees.nx test <project>, nx build <project>, nx format:check, nx lint <project>. Say plainly when you could not reproduce.open-pr), push. Keep fixes scoped to the failure; don't fold in unrelated cleanups.gh run rerun <runId> --failed. Re-run once. If the same task fails a second time, treat it as real and investigate — don't re-run a third time hoping.until [ "$(gh run view <runId> --json status -q .status)" = "completed" ]; do sleep 30; done
(run it with run_in_background, then read the output file when notified).Green CI isn't done. CodeRabbit reports as a passing check even when it has posted actionable inline comments, so its review has to be read separately.
gh pr view <n> --json reviews for the summary (it states how many actionable comments it posted), and gh api repos/<owner>/<repo>/pulls/<n>/comments for the inline findings. Each is tagged with a severity — 🟠 Major, 🟡 Minor, and so on.gh pr checks result.© analogjs, MIT. 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/handhold-pr of analogjs/analog.
Open the folder on GitHubat commit eedd920
Handhold PR 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 |
|---|---|---|---|---|---|---|
| Handhold PR this skillanalogjs/analog | 3.2k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Diagnose Gatewayopenclaw/openclaw | 392k | — | ~670 | Automated safety check: Pass | MIT | |
| Diagnosegithub/awesome-copilot | 40k | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Diagnose Playwright Failure as Product Bugappsmithorg/appsmith | 41k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing CI And Merge BottlenecksPostHog/posthog | 40k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Diagnose a Red Rundifferent-ai/openwork | 24k | — | ~779 | Automated safety check: Pass | Custom licence |
openclaw/openclaw
Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.
github/awesome-copilot
Perform a systematic diagnostic scan of an AI workflow across 5 quality dimensions — prompt quality, context efficiency, tool health, architecture fitness, and safety — producing a scored report…
appsmithorg/appsmith
Investigates a stubbornly failing Playwright test as a possible product bug, using error output, screenshots, traces and server code, and writes a structured bug report.
PostHog/posthog
Diagnoses CI and pull-request pipeline health for a GitHub repo using the engineering analytics MCP tools — pull-requests (PR list with CI status), workflow-health (per-workflow CI trends), and…
different-ai/openwork
Classifies a failing test, typecheck or CI job before any code changes, by recording the failure and running a clean control to show whether it was already broken.
affaan-m/ECC
A skill your agent uses to monitor and verify a deployed URL after releases — checks HTTP endpoints, SSE streams, static assets, console errors, and performance regressions after deploys, merges, or…
analogjs/analog
Conventions for working in an AnalogJS app (an Angular meta-framework powered by Vite) — file-based routing with .page.ts files, RouteMeta, server and API routes on Nitro/h3, page load functions and…
analogjs/analog
Commit the current work, push the current feature branch, and open a GitHub PR filled out from the repo's PR template.
analogjs/analog
End-to-end flow for resolving a GitHub issue — fetch and understand the issue, create a feature branch off beta, implement and verify the fix, then hand off to the open-pr skill.
analogjs/analog
Investigate a GitHub issue end to end — reproduce the reporter's repo or code snippet in an isolated sandbox outside the monorepo, trace the root cause in the source, and draft a reply back to the…
Watch a PR's CI, diagnose every failing check, fix what's actually broken, resolve CodeRabbit's major findings, and keep iterating until the PR is green. Handhold PR is an agent skill from analogjs/analog. Watch a PR's CI, diagnose every failing check, fix what's actually broken, resolve CodeRabbit's major findings, and keep iterating until the PR is green.
Handhold PR fits situations like: the user says handhold the PR; resolve any issues until green; asks why a PRs checks are failing.
Run `npx skills add analogjs/analog --skill handhold-pr -a claude-code`. Or copy the skill folder (.agents/skills/handhold-pr in analogjs/analog) into .claude/skills/handhold-pr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add analogjs/analog --skill handhold-pr -a codex`. Or copy the skill folder (.agents/skills/handhold-pr in analogjs/analog) into .agents/skills/handhold-pr 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 analogjs/analog --skill handhold-pr -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/handhold-pr, .gemini/skills/handhold-pr, .github/skills/handhold-pr and .opencode/skills/handhold-pr in your project.
Going by SKILL.md and its folder, Handhold PR needs the command-line tools its instructions call (gh, nx, git and node).
SKILL.md contains no URLs. Its commands use gh and git, 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. Review the folder before installing.
Handhold PR is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.3k 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 Handhold PR: Diagnose Gateway (openclaw/openclaw, 392k stars), Diagnose (github/awesome-copilot, 40k stars), Diagnose Playwright Failure as Product Bug (appsmithorg/appsmith, 41k stars) and Diagnosing CI And Merge Bottlenecks (PostHog/posthog, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
analogjs (a GitHub organization) maintains it in analogjs/analog, which has 3,188 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: analogjs/analog on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.