Diagnose a Red Run
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.
Bisect regressions or broken builds in the Chromium repository using deterministic binary search, checking out midpoint commits, syncing dependencies with gclient sync, compiling the target with…
$ npx skills add nwjs/chromium.src --skill bisect -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nwjs/chromium.src bisect --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/nwjs/chromium.src.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agents/skills/bisect .claude/skills/bisect && 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 "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .claude/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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/nwjs/chromium.src/tree/main/agents/skills/bisectType 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 nwjs/chromium.src --skill bisect -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nwjs/chromium.src bisect --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agents/skills/bisect .agents/skills/bisect && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .agents/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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 nwjs/chromium.src --skill bisect -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nwjs/chromium.src bisect --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agents/skills/bisect .cursor/skills/bisect && 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 "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .cursor/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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/nwjs/chromium.src.git --path agents/skills/bisect--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 nwjs/chromium.src --skill bisect -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nwjs/chromium.src bisect --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agents/skills/bisect .gemini/skills/bisect && 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 "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .gemini/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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 nwjs/chromium.src bisectInstalls 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 nwjs/chromium.src --skill bisect -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .github/skills && cp -r skills-src/agents/skills/bisect .github/skills/bisect && 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 "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .github/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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 nwjs/chromium.src --skill bisect -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nwjs/chromium.src bisect --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nwjs/chromium.src.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agents/skills/bisect .opencode/skills/bisect && 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 "bisect" agent skill from https://github.com/nwjs/chromium.src/tree/main/agents/skills/bisect into .opencode/skills/bisect/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bisect", 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.
bisectBisect regressions or broken builds in the Chromium repository using deterministic binary search, checking out midpoint commits, syncing dependencies with gclient sync, compiling the target with…
Bisect is an agent skill from nwjs/chromium.src. Bisect regressions or broken builds in the Chromium repository using deterministic binary search, checking out midpoint commits, syncing dependencies with gclient sync, compiling the target with autoninja, and querying the user for test results until the culprit commit is isolated.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `README.md`).
It sits in Testing & QA, covering Failing and flaky tests. It works with Git. The repository describes itself as: Chromium codebase with NW.js modifications. Based on https://chromium.googlesource.com/chromium/src.git. The licence is BSD-3-Clause.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a9e8946. 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:
gitFrom 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:
chromium.googlesource.comchromium-review.googlesource.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.
Bisect loads about 1.6k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 586 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 nwjs/chromium.src at commit a9e8946, republished under its BSD-3-Clause licence (© nwjs). 586 words, ~1,598 tokens.
.claude/skills/bisect/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill guides the agent through bisecting a regression or broken build in the Chromium repository using a deterministic binary search across git commits.
When bisecting, the following information is needed:
out/ALDebug,
out/Debug, out/Default).chrome_apk, chrome,
content_shell_test_apk, unit_tests).The skill can be invoked with a commit range and optional build settings, such as:
/bisect <good_commit>..<bad_commit> , <out_dir> , <build_target>Examples:
/bisect hash1..hash2 , out/Debug , content_shell_test_apkIf any required parameters are not provided in the user's prompt:
out/ALDebug, out/Debug, or out/Default).chrome_apk, chrome).Before checking out commits or beginning the bisect loop, verify that the
workspace has no uncommitted modifications to tracked files, as local changes
can block git checkout or cause merge conflicts.
Run:
git status --porcelain -unogit commit), stash
(git stash), or revert (git restore) them before proceeding.To ensure fast and deterministic midpoint selection across the linear git
history, use git rev-list --reverse rather than full graph traversal:
COMMITS=$(git rev-list --reverse <GOOD_COMMIT>..<BAD_COMMIT>)
TOTAL=$(echo "$COMMITS" | wc -l)
MID=$(( (TOTAL + 1) / 2 ))
MID_COMMIT=$(echo "$COMMITS" | sed -n "${MID}p")
echo "Total commits in range: $TOTAL"
echo "Midpoint index: $MID"
echo "Midpoint commit: $MID_COMMIT"
git log -1 --oneline "$MID_COMMIT"Execute the following steps for each iteration until the regression is isolated to a single commit:
Check out the computed midpoint commit hash:
git checkout <MID_COMMIT> && git log -1 --onelineRun gclient sync -DR to align submodules, third-party dependencies,
toolchains, DEPS, and build hooks with the checked-out commit:
gclient sync -DRBuild the specified target in the target output directory using autoninja:
autoninja -C <out_dir> <target>Note: If the build runs in the background, monitor its status or use scheduled timers until completion.
Once the build completes successfully, present the user with an interactive question to verify the build on their test setup or device:
ask_question tool with options:The build is Good (working)The build is Bad (broken)Skip commit (unbuildable / untestable)Based on the user's response:
<MID_COMMIT>.<MID_COMMIT>.MID + 1 or MID - 1)
within the range and retest while keeping the outer bounds.Track each step's commit, result, and remaining range count in memory.
Repeat Steps 1–5 until only 1 commit remains in the range (i.e., the good
and bad commits are immediate neighbors: TOTAL == 1 in
<GOOD_COMMIT>..<BAD_COMMIT>).
Once the search converges, the single remaining bad commit in the range is the culprit (the first bad commit).
Run:
git log -1 <CULPRIT_COMMIT>Extract:
https://chromium.googlesource.com/chromium/src/+/<CULPRIT_COMMIT>Author: ...)Reviewed-on: in the commit message or
https://chromium-review.googlesource.com/c/chromium/src/+/<cl_number>Cr-Commit-Position: (e.g.,
refs/heads/main@{#...})Bug: or Fixed: lineProduce a final report matching the following structure:
The bisect has completed successfully and isolated the regression to the first bad commit.
---
### Bisect Summary
| Step | Commit Tested | Result | Range Left |
|---|---|---|---|
| 1 | <commit_hash_1> | <Good|Bad> | <remaining_commits_1> |
| 2 | <commit_hash_2> | <Good|Bad> | <remaining_commits_2> |
| ... | ... | ... | ... |
| N | <commit_hash_N> | <Good|Bad> | 1 |
---
### First Bad Commit (Culprit)
* **Commit**: [<CULPRIT_COMMIT>](https://chromium.googlesource.com/chromium/src/+/<CULPRIT_COMMIT>)
* **Author**: <author_name> (<author_email>)
* **Review**: [crrev.com/c/<cl_number>](https://chromium-review.googlesource.com/c/chromium/src/+/<cl_number>)
* **Commit Position**: `refs/heads/main@{#<position>}`
* **Title**: <commit_title>
* **Bug**: <bug_ID>© nwjs, BSD-3-Clause. 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 2 other files in agents/skills/bisect of nwjs/chromium.src.
Open the folder on GitHubat commit a9e8946
Bisect 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 |
|---|---|---|---|---|---|---|
| Bisect this skillnwjs/chromium.src | 160 | — | ~1.6k | Automated safety check: Pass | BSD-3-Clause | |
| Diagnose a Red Rundifferent-ai/openwork | 24k | — | ~779 | Automated safety check: Pass | Custom licence | |
| Make Git Escrowinternet-court/internet-court-skill | 6.4k | 2 repos | ~922 | Automated safety check: Notes | MIT | |
| cmux Package Test Bisectmanaflow-ai/cmux | 28k | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Bisect Aware InstrumentationArabelaTso/Skills-4-SE | 253 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| CI Fix MonitorZaxbyHub/opencode-swarm | 490 | — | ~551 | Automated safety check: Pass | MIT |
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.
internet-court/internet-court-skill
Create a new git escrow bounty for a test suite. An agent skill from internet-court/internet-court-skill.
manaflow-ai/cmux
Finds which commit broke a failing Swift package suite in the cmux repo by bisecting on CI, then judges per test whether it went stale or the code regressed.
ArabelaTso/Skills-4-SE
Instrument code to support efficient git bisect by producing deterministic pass/fail signals and concise runtime summaries for each tested commit.
ZaxbyHub/opencode-swarm
Codex adapter for monitoring and fixing CI failures on opencode-swarm PRs.
ArabelaTso/Skills-4-SE
Automatically performs git bisect to identify the first bad commit that introduced a bug or failure.
nwjs/chromium.src
Extracts raw trace data from Perfetto traces, runs arbitrary SQL queries for custom follow-up analysis, and applies expert cognitive principles (Tiered Flow Analysis, Semantic Mismatch, Redundancy)…
nwjs/chromium.src
Autonomous multi-agent performance optimization loop for Chromium and V8.
nwjs/chromium.src
Automated Tracing & Performance Telemetry in Chromium using Perfetto and Telemetry benchmarks.
nwjs/chromium.src
Queries Chrome commit, version, release, and milestone metadata.
nwjs/chromium.src
Search and reference Chromium documentation from the local docs index, including design docs, APIs, and development guides.
nwjs/chromium.src
Diagnose Chromium GN dependency and include-visibility failures, including BUILD.gn deps/publicdeps, DEPS include rules, private headers, and circular dependencies.
Works with
Categories
Bisect regressions or broken builds in the Chromium repository using deterministic binary search, checking out midpoint commits, syncing dependencies with gclient sync, compiling the target with…. src. Bisect regressions or broken builds in the Chromium repository using deterministic binary search, checking out midpoint commits, syncing dependencies with gclient sync, compiling the target with autoninja, and querying the user for test results until the culprit commit is isolated.
Bisect fits situations like: tasks that involve Failing and flaky tests.
Run `npx skills add nwjs/chromium.src --skill bisect -a claude-code`. Or copy the skill folder (agents/skills/bisect in nwjs/chromium.src) into .claude/skills/bisect in your project. Claude Code loads it when a task matches its description.
Run `npx skills add nwjs/chromium.src --skill bisect -a codex`. Or copy the skill folder (agents/skills/bisect in nwjs/chromium.src) into .agents/skills/bisect 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 nwjs/chromium.src --skill bisect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bisect, .gemini/skills/bisect, .github/skills/bisect and .opencode/skills/bisect in your project.
Going by SKILL.md and its folder, Bisect needs the command-line tools its instructions call (git).
SKILL.md names 2 domains. In commands or code: chromium.googlesource.com and chromium-review.googlesource.com; the agent is likely to contact these 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.
Bisect is published under the BSD-3-Clause 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.4k 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 Bisect: Diagnose a Red Run (different-ai/openwork, 24k stars), Make Git Escrow (internet-court/internet-court-skill, 6.4k stars), cmux Package Test Bisect (manaflow-ai/cmux, 28k stars) and Bisect Aware Instrumentation (ArabelaTso/Skills-4-SE, 253 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
nwjs (a GitHub organization) maintains it in nwjs/chromium.src, which has 160 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 3, 2026.
Source: nwjs/chromium.src on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.