Debug CI
web-infra-dev/rslint
Reproduce Linux CI failures locally using Docker when the same tests pass on the host, especially Go platform differences and VS Code extension tests requiring xvfb.
Debug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt.
$ npx skills add strands-agents/box --skill debug-os-failure-on-github -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install strands-agents/box debug-os-failure-on-github --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/strands-agents/box.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .claude/skills/debug-os-failure-on-github && 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 "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .claude/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-githubType 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 strands-agents/box --skill debug-os-failure-on-github -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install strands-agents/box debug-os-failure-on-github --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/box.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .agents/skills/debug-os-failure-on-github && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .agents/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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 strands-agents/box --skill debug-os-failure-on-github -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install strands-agents/box debug-os-failure-on-github --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/box.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .cursor/skills/debug-os-failure-on-github && 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 "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .cursor/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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/strands-agents/box.git --path .agents/skills/debug-os-failure-on-github--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 strands-agents/box --skill debug-os-failure-on-github -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install strands-agents/box debug-os-failure-on-github --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/box.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .gemini/skills/debug-os-failure-on-github && 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 "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .gemini/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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 strands-agents/box debug-os-failure-on-githubInstalls 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 strands-agents/box --skill debug-os-failure-on-github -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/strands-agents/box.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .github/skills/debug-os-failure-on-github && 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 "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .github/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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 strands-agents/box --skill debug-os-failure-on-github -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install strands-agents/box debug-os-failure-on-github --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/strands-agents/box.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/debug-os-failure-on-github .opencode/skills/debug-os-failure-on-github && 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 "debug-os-failure-on-github" agent skill from https://github.com/strands-agents/box/tree/main/.agents/skills/debug-os-failure-on-github into .opencode/skills/debug-os-failure-on-github/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "debug-os-failure-on-github", 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.
debug-os-failure-on-githubDebug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt.
Debug Os Failure On GitHub is an agent skill from strands-agents/box. Debug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt. Use when a test is green on your machine and red on a GitHub runner, or when you need to run one test or one shell probe on a runner and read the result fast. The core move is a dispatchable, scoped workflow on your own fork: pick one OS, skip lint, filter to one test, and for environment questions run a no-build probe that returns in seconds instead of a ten-minute…
Its SKILL.md is about 1.3k 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 Failing and flaky tests, Pull requests and Linting and formatting. It works with GitHub, macOS and Linux. The repository describes itself as: Run AI agents in a sandbox that restricts what they can execute, read, write, and reach on the network. Box combines OS isolation with default-deny Dogwood policies and… The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2c874ea. 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:
ghxcrunpython3From 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.
Debug Os Failure On GitHub loads about 1.3k tokens when it runs. Until then it costs about 158 tokens; SKILL.md has 716 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 noted patterns worth knowing about, such as sudo or a known installer.
`sudo log show --style syslog --last 3m --predicate 'eventMessage CONTAINS "deny"'`; on LinuxAutomated 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 strands-agents/box at commit 2c874ea, republished under its Apache-2.0 licence (© strands-agents). 716 words, ~1,334 tokens.
.claude/skills/debug-os-failure-on-github/SKILL.md (or your agent's skills folder).You are on Linux and a test fails only on macos-latest (or you are on a Mac and it fails only on
ubuntu-latest). The slow way is a pull request per attempt: each push reruns the whole matrix,
builds everything, and takes about fifteen minutes to tell you one thing. Do not do that.
The fast way is a dispatchable workflow on your own fork, scoped to the smallest run that answers your question. You iterate by pushing to a fork branch and re-dispatching. No pull request is involved until you have the answer.
Scope the run. Do not run the matrix, the lint job, and the whole suite to learn one test.
Run one OS, no lint, and one test. full-tests.yml takes three inputs for exactly this:
gh workflow run full-tests.yml -f ref=<branch|sha> -f os=macos-latest -f lint=false -f filter=<substring>os picks a single runner (macos-latest, ubuntu-latest, or both).lint=false skips fmt and clippy.filter is a substring of the cargo test name (not the test-binary name). It runs only the
tests whose name matches.filter (the build is --all-targets for the trampoline). The
saving is one OS instead of two, no lint, and far fewer tests that execute. To also cut build
time, scope the build in a throwaway workflow with --test <binary> or -p <crate>.For an environment question, build nothing. Most "green here, red there" failures are the environment, not the code: a different active toolchain, a different system path, a pointer file, a library location. A workflow that only runs shell commands returns in about fifteen seconds, so you can ask five questions in the time one build takes. Print what you suspect differs:
sw_vers, xcode-select -p, xcrun --find <tool>, which -a <tool>, otool -L <bin>,
readlink of any pointer files, the relevant env vars, and for an interpreter
python3 -c 'import sys,os; print(sys.executable, os.path.realpath(sys.executable))'.uname -a, the distribution release, which -a <tool>, readlink -f <bin>, ldd <bin>,
and the mount or namespace state that matters.workflow_dispatch needs the workflow file on the fork's default branch to be dispatchable at
all. Push the workflow to the fork default branch once; after that you can dispatch it against any
branch or sha with -f ref=....gh run watch <id>, or gh api repos/<owner>/<fork>/actions/jobs/<jobid>/logs
for the raw log. The runner's own log names the cause; do not infer it from a test timeout.If the failing test starts a contained workload and it dies at startup (a leaf launch, a Seatbelt or
namespace refusal, a startup-marker timeout), the environment difference is usually a path the box's
floor does not grant on the runner. Two extra moves apply, and the full method plus a worked example
(the macOS /usr/bin/python3 xcode-select leaf) live in
docs/dev/debug-os-specific-ci-failures.md:
sandbox-exec profile from the agent and
leaf cells in crates/containment/src/containment-data/os-paths.macos.json; on Linux
reconstruct the launcher's binds or run the trampoline directly. Validate the reconstruction
passes locally before you trust its runner failure.sudo log show --style syslog --last 3m --predicate 'eventMessage CONTAINS "deny"'; on Linux
dmesg, journalctl, or an strace of the refused syscall.© strands-agents, 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/debug-os-failure-on-github of strands-agents/box.
Open the folder on GitHubat commit 2c874ea
Debug Os Failure On GitHub 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 |
|---|---|---|---|---|---|---|
| Debug Os Failure On GitHub this skillstrands-agents/box | 110 | — | ~1.3k | Automated safety check: Notes | Apache-2.0 | |
| Debug CIweb-infra-dev/rslint | 460 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Neru File Issuey3owk1n/neru | 785 | — | ~890 | Automated safety check: Pass | MIT | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Exposed Bug Fix WorkflowJetBrains/Exposed | 9.3k | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Create PRRLinf/RLinf | 5.5k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 |
web-infra-dev/rslint
Reproduce Linux CI failures locally using Docker when the same tests pass on the host, especially Go platform differences and VS Code extension tests requiring xvfb.
y3owk1n/neru
File a Neru bug report or feature request that matches the repo's issue forms: duplicate check first, every required field filled with real diagnostics, correct labels.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
JetBrains/Exposed
Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.
RLinf/RLinf
Open a GitHub pull request for RLinf, or fix an existing one — checks the PR title against Conventional Commits, writes a precise description that follows .github/PULLREQUESTTEMPLATE.md, and lints…
openai/openai-agents-python
Run the required final formatting, lint, type, and test checks after eligible SDK changes pass review.
strands-agents/box
Author or edit a Strands Box policy (policy.dw) — turn an operator's natural-language allow/deny intent into a validated Dogwood policy over the box's fixed action vocabulary, including when…
strands-agents/box
Find the gaps in the Box documentation and produce a prioritized backlog for docs/user/ and docs/design/.
strands-agents/box
Draft or rewrite a Box documentation page in docs/user/ (tutorial, how-to, or reference for an operator) or docs/design/ (explanation for a security evaluator or a contributor), or a crate README.md…
strands-agents/box
Deep-dive a SINGLE key decision. An agent skill from strands-agents/box.
strands-agents/box
Walk through spec-driven development, design then requirements, producing a local .spec.md and .requirements.md for one feature.
strands-agents/box
Assess an existing Box documentation page (docs/user/, docs/design/, or a crate README.md) for accuracy against the code and its tests, placement, and voice, and recommend what to fix.
Categories
Debug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt. Debug Os Failure On GitHub is an agent skill from strands-agents/box. Debug a CI failure on an OS you are not on (you are on Linux, it fails on macos-latest, or the reverse) without opening a pull request per attempt.
Debug Os Failure On GitHub fits situations like: A test is green on your machine and red on a GitHub runner; you need to run one test; one shell probe on a runner and read the result fast.
Run `npx skills add strands-agents/box --skill debug-os-failure-on-github -a claude-code`. Or copy the skill folder (.agents/skills/debug-os-failure-on-github in strands-agents/box) into .claude/skills/debug-os-failure-on-github in your project. Claude Code loads it when a task matches its description.
Run `npx skills add strands-agents/box --skill debug-os-failure-on-github -a codex`. Or copy the skill folder (.agents/skills/debug-os-failure-on-github in strands-agents/box) into .agents/skills/debug-os-failure-on-github 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 strands-agents/box --skill debug-os-failure-on-github -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/debug-os-failure-on-github, .gemini/skills/debug-os-failure-on-github, .github/skills/debug-os-failure-on-github and .opencode/skills/debug-os-failure-on-github in your project.
Going by SKILL.md and its folder, Debug Os Failure On GitHub needs the command-line tools its instructions call (gh, xcrun and python3). Our summary lists: Python 3.
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 notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Debug Os Failure On GitHub 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 1.3k tokens (SKILL.md is roughly 5.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 Debug Os Failure On GitHub: Debug CI (web-infra-dev/rslint, 460 stars), Neru File Issue (y3owk1n/neru, 785 stars), PR Babysitter (openinterpreter/openinterpreter, 69k stars) and Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
strands-agents (a GitHub organization) maintains it in strands-agents/box, which has 110 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 8, 2026.
Source: strands-agents/box on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.