This file provides project-specific guidance for AI agent sessions working on the OpenROAD codebase.
Detailed guides are in docs/agents/ subdirectory:
- Build Pitfalls: See
docs/agents/build.md - Testing Guide: See
docs/agents/testing.md - Git & CI: See
docs/agents/ci.md - Coding Patterns: See
docs/agents/coding.md
- Never modify
src/sta/files -- OpenSTA is managed upstream (Sdc.cc,Power.cc,Sdc.tcl, etc.). Only test files may be modified. All fixes must be in OpenROAD code (e.g.,src/dbSta/,src/rsz/). If OpenSTA code change is inevitable, notify user. Exception: you may modifysrc/sta/files temporarily for debugging purposes only. - Run
clang-format -i <files>for C++ files before commit. NEVER forsrc/sta/*and*.ifiles. - Always use
git commit -sfor DCO compliance. - When amending submodule commits, parent repo submodule reference must also be updated via
git submodule update --init --recursive. It is needed after any merge/pull. - Trace bugs upstream -- when a bug appears in output (e.g., Verilog), find the data creation point (e.g.,
buffer_ports,remove_buffers), not the serialization point (e.g.,VerilogWriter).
Skills are located in .agents/skills/ (with .claude/skills symlink for Claude Code).
| Skill | Purpose | Invocation |
|---|---|---|
triage-issue |
Reproduce bug and minimize test case with whittle.py | /triage-issue <issue#> |
fix-bug |
Trace root cause, implement fix, create tests, prepare commit | /fix-bug <issue#-or-error-code> |
add-test |
Add integration/unit tests with dual CMake+Bazel registration | /add-test <module> [description] |
review-pr |
Draft local PR review notes (correctness > QoR > testing); human posts | /review-pr <pr#-or-url> |