Agent skill

OpenROAD Issue Triage

by The-OpenROAD-Project in The-OpenROAD-Project/OpenROAD

Reproduces an OpenROAD GitHub bug from an attached tarball and shrinks the failing design with whittle.py so maintainers get a minimal test case.

BSD-3-ClauseAuto-check passedDevelopment

Install OpenROAD Issue Triage

skills CLI
$ npx skills add The-OpenROAD-Project/OpenROAD --skill triage-issue -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install The-OpenROAD-Project/OpenROAD triage-issue --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/The-OpenROAD-Project/OpenROAD.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/triage-issue .claude/skills/triage-issue && rm -rf skills-src

Use ~/.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/

Facts

Skill name
triage-issue
GitHub stars
3.2k
Token cost
~842 tokens
SKILL.md length
283 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Reproduces an OpenROAD GitHub bug from an attached tarball and shrinks the failing design with whittle.py so maintainers get a minimal test case.

  • Works in 7 steps: Fetch issue details → Download and extract artifact → Fix the run script → …
  • An OpenROAD issue arrives with a .tar.gz from a make issue target
  • SKILL.md covers 1. Fetch issue details, 2. Download and extract artifact, 3. Fix the run script and 4. Build OpenROAD, plus 3 more sections
  • Calls gh, make and python3

What it does

Given an issue number, the agent fetches the issue with gh, looks for the error string, the tarball produced by a make issue target and the OpenROAD version, then downloads and extracts the archive into a temporary directory. The bundled run-me script usually needs fixes, such as adding set -e so it exits on error.

It builds OpenROAD with bazelisk, exports the resulting binary path, runs the script and counts occurrences of the error string to confirm the bug reproduces. If the latest build no longer fails, the agent reports that on the issue because it may already be fixed. Otherwise it runs whittle.py with the error string, the base database, and persistence, multiplier and timeout options.

While whittling, it watches the log lines: a growing ETA suggests a coarser persistence setting, a database that does not shrink suggests a larger multiplier, and generic error strings are called out as too vague. It aborts when the size has not changed after many steps or one step runs too long, and finally packs the whittled .odb into a new tarball to upload.

When your agent uses it

  • An OpenROAD issue arrives with a .tar.gz from a make issue target
  • Reproducing a reported error such as a GPL or DRT failure
  • Shrinking a large design down to a minimal failing case
  • Checking whether a reported bug still exists on the latest build

Example prompts

  • “Triage the OpenROAD issue I just opened and see if its tarball reproduces on the current build.”
  • “Run whittle.py on this extracted tarball with the error string GPL-0305 and a five-minute step timeout.”
  • “The whittle run keeps growing its ETA; what should I change?”

Requirements

  • GitHub CLI (gh)
  • Bazelisk and a checkout of the OpenROAD source tree
  • Python 3 to run whittle.py

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Fetch issue details
  2. Download and extract artifact
  3. Fix the run script
  4. Build OpenROAD
  5. Reproduce the bug
  6. Run whittle.py
  7. Upload results

What it can do on your machine

Read from SKILL.md and the folder at commit 22b7c53. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • make
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

OpenROAD Issue Triage loads about 842 tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 283 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~842

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from The-OpenROAD-Project/OpenROAD at commit 22b7c53, republished under its BSD-3-Clause licence (© The-OpenROAD-Project). 283 words, ~842 tokens.

Download SKILL.mdSave it as .claude/skills/triage-issue/SKILL.md (or your agent's skills folder).
name
triage-issue
description
Triage an OpenROAD GitHub issue by reproducing the bug and minimizing the test case with whittle.py. Use when an issue has an attached tarball artifact (.tar.gz) from `make *_issue`.
argument-hint
<issue-number>

Triage OpenROAD Issue

You are triaging OpenROAD issue $ARGUMENTS.

1. Fetch issue details

bash
gh issue view $ARGUMENTS --repo The-OpenROAD-Project/OpenROAD \
  --json title,body,labels,state,comments

Look for:

  • Error string (e.g. GPL-0305, GPL-0307, DRT-XXXX)
  • Attached tarball URL (from make *_issue)
  • OpenROAD version the bug was reported against

2. Download and extract artifact

Download any .tar.gz attached to the issue body or comments. Extract into a working directory:

bash
mkdir -p /tmp/triage-$ARGUMENTS
cd /tmp/triage-$ARGUMENTS
tar xzf <downloaded-tarball>
cd <extracted-dir>

3. Fix the run script

The run-me-*.sh scripts from make *_issue often need two fixes:

bash
# Add set -e to exit on error
sed -i '2i set -e' run-me-*.sh

# Add -exit so openroad exits after the tcl script
sed -i 's/openroad -no_init/openroad -exit -no_init/g' run-me-*.sh
sed -i 's/openroad -no_splash/openroad -exit -no_splash/g' run-me-*.sh

4. Build OpenROAD

Build from the OpenROAD source tree:

bash
cd <path-to>/OpenROAD
bazelisk build :openroad

The binary is at bazel-bin/openroad. Export it:

bash
export OPENROAD_EXE=$(pwd)/bazel-bin/openroad

5. Reproduce the bug

Run the step command and confirm the error string appears:

bash
cd /tmp/triage-$ARGUMENTS/<extracted-dir>
./run-me-*.sh 2>&1 | tee reproduce.log
grep -c "<error-string>" reproduce.log

If the bug does NOT reproduce with the latest OpenROAD, report this on the issue -- the bug may have been fixed.

6. Run whittle.py

bash
python3 <path-to>/OpenROAD/etc/whittle.py \
  --error_string "<error-string>" \
  --base_db_path <path-to>.odb \
  --use_stdout --exit_early_on_error \
  --step "./run-me-*.sh" \
  --persistence 3 --multiplier 2
Monitoring progress

Watch the [whittle] lines. Key things to check:

  • ETA growing? The design may be too large for the current persistence level. Try --persistence 1 for a coarse first pass.
  • .odb size not shrinking? The error may depend on most of the design. Try increasing --multiplier.
  • Step timeout too long? Use --timeout 300 to cap each step at 5 minutes.
  • After 5 minutes of a step, whittle.py shows the tail of the step's log so you can see what it is doing.
When to abort
  • If after 20+ steps the .odb size has not changed, abort and try different parameters.
  • If the step itself takes >10 minutes, consider whether the error string is specific enough (avoid generic strings like "ERROR").

7. Upload results

Create a new tarball with the whittled .odb:

bash
cp whittle_base_result_*.odb <original-odb-path>
tar czf whittled-$ARGUMENTS.tar.gz <extracted-dir>/

Comment on the issue with before/after stats:

bash
gh issue comment $ARGUMENTS --repo The-OpenROAD-Project/OpenROAD \
  --body "Whittled test case: original NNN insts -> MMM insts, \
.odb size: XXX MB -> YYY MB. Attached whittled tarball."

Upload the tarball to the issue comment via the GitHub web UI (gh CLI does not support file attachments on comments).

© The-OpenROAD-Project, 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

Files

Just SKILL.md in .agents/skills/triage-issue of The-OpenROAD-Project/OpenROAD.

Open the folder on GitHubat commit 22b7c53

Compare with similar skills

OpenROAD Issue Triage 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.

OpenROAD Issue Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
OpenROAD Issue Triage this skillThe-OpenROAD-Project/OpenROAD3.2k—~842Automated safety check: PassBSD-3-Clause
Triage Issuesoftspark/ai-toolkit179—~1.3kAutomated safety check: NotesApache-2.0
Issue Fixmono/SkiaSharp5.6k—~5.1kAutomated safety check: PassMIT
Bug Report TriageOrchestratorInc/agent-orchestrator13k—~1.8kAutomated safety check: PassApache-2.0
React Router Bug Fix Workflowremix-run/react-router57k—~1.3kAutomated safety check: PassMIT
Triagebot Action Bug Triagewithastro/astro63k—~639Automated safety check: PassCustom licence

Similar skills

  • Triage Issue

    softspark/ai-toolkit

    Bug triage: explores codebase for root cause, files GitHub issue with TDD fix plan.

    179 GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Issue Fix

    mono/SkiaSharp

    Fix bugs in SkiaSharp C bindings. An agent skill from mono/SkiaSharp.

    5.6k GitHub stars~5.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Bug Report Triage

    OrchestratorInc/agent-orchestrator

    Helps a reporter describe a bug, searches for duplicates and gathers diagnostic evidence kept separate from a short, human-worded issue draft.

    13k GitHub stars~1.8k tokensUpdated today
    DevelopmentAuto-check passed
  • React Router Bug Fix Workflow

    remix-run/react-router

    Fixes a React Router bug reported in a GitHub issue end to end: fetching the issue, validating the reproduction, writing a failing test and implementing the fix on a new branch.

    57k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Official

    Takes a bug report for the triagebot-action GitHub Action through reproduction, root-cause diagnosis, an intended-behavior check and a fix attempt.

    63k GitHub stars~639 tokensUpdated today
    DevelopmentAuto-check passed
  • Issue Tracer

    ZaxbyHub/opencode-swarm

    Drives a bug report from validation and root-cause tracing through a critic-reviewed plan, an approved minimal fix and a PR-ready closure, never merging without recorded human approval.

    493 GitHub stars~4.4k tokensUpdated today
    DevelopmentAuto-check passed

More from The-OpenROAD-Project/OpenROAD

  • OpenROAD Module Test Adder

    The-OpenROAD-Project/OpenROAD

    Adds integration or unit tests to an OpenROAD module: writes the Tcl test, generates golden files and registers it in both CMake and Bazel.

    3.2k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • OpenROAD Bug Fixer

    The-OpenROAD-Project/OpenROAD

    Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.

    3.2k GitHub stars~784 tokensUpdated yesterday
    Auto-check passed
  • OpenROAD PR Review

    The-OpenROAD-Project/OpenROAD

    Reviews an OpenROAD pull request in the project's priority order and prints draft review notes for a human reviewer to inspect and post.

    3.2k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about OpenROAD Issue Triage

What does OpenROAD Issue Triage do?

Reproduces an OpenROAD GitHub bug from an attached tarball and shrinks the failing design with whittle.py so maintainers get a minimal test case. Given an issue number, the agent fetches the issue with gh, looks for the error string, the tarball produced by a make issue target and the OpenROAD version, then downloads and extracts the archive into a temporary directory. The bundled run-me script usually needs fixes, such as adding set -e so it exits on error.

When should I use OpenROAD Issue Triage?

OpenROAD Issue Triage fits situations like: an OpenROAD issue arrives with a .tar.gz from a make issue target; reproducing a reported error such as a GPL or DRT failure; shrinking a large design down to a minimal failing case; checking whether a reported bug still exists on the latest build.

How do I install OpenROAD Issue Triage in Claude Code?

Run `npx skills add The-OpenROAD-Project/OpenROAD --skill triage-issue -a claude-code`. Or copy the skill folder (.agents/skills/triage-issue in The-OpenROAD-Project/OpenROAD) into .claude/skills/triage-issue in your project. Claude Code loads it when a task matches its description.

How do I install OpenROAD Issue Triage in Codex?

Run `npx skills add The-OpenROAD-Project/OpenROAD --skill triage-issue -a codex`. Or copy the skill folder (.agents/skills/triage-issue in The-OpenROAD-Project/OpenROAD) into .agents/skills/triage-issue in your project. Codex loads it when a task matches its description.

Can I use OpenROAD Issue Triage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add The-OpenROAD-Project/OpenROAD --skill triage-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/triage-issue, .gemini/skills/triage-issue, .github/skills/triage-issue and .opencode/skills/triage-issue in your project.

What does OpenROAD Issue Triage need to run?

Going by SKILL.md and its folder, OpenROAD Issue Triage needs the command-line tools its instructions call (gh, make and python3). Our summary lists: GitHub CLI (gh); Bazelisk and a checkout of the OpenROAD source tree; Python 3 to run whittle.py.

Does OpenROAD Issue Triage access the network?

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.

Is OpenROAD Issue Triage safe to install?

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.

What licence does OpenROAD Issue Triage use?

OpenROAD Issue Triage 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.

How many tokens does OpenROAD Issue Triage use?

About 842 tokens (SKILL.md is roughly 3.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to OpenROAD Issue Triage?

Skills that share tags, products or a category with OpenROAD Issue Triage: Triage Issue (softspark/ai-toolkit, 179 stars), Issue Fix (mono/SkiaSharp, 5.6k stars), Bug Report Triage (OrchestratorInc/agent-orchestrator, 13k stars) and React Router Bug Fix Workflow (remix-run/react-router, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains OpenROAD Issue Triage?

The-OpenROAD-Project (a GitHub organization) maintains it in The-OpenROAD-Project/OpenROAD, which has 3,159 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

Source: The-OpenROAD-Project/OpenROAD on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.