Skip to main content

triage-issue

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`.

インストールへ移動

ソース情報

リポジトリ
The-OpenROAD-Project/OpenROAD
ソースの最終更新活動
2026年4月1日 14:33
検出された SKILL.md の言語
英語
スター
3,105
フォーク
1,011

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
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).
GitHubで見る