Dataset- and location-agnostic loop to improve the tscircuit autorouter's solve performance. Primary target is lowering P50 and P95 solve time on a user-chosen dataset, but any rise in solve rate (Completed %) always wins. Asks the user which dataset and where to run (local vs Blacksmith), then drives baseline → idea backlog → one git worktree + subagent per idea → re-benchmark → keep/reject, serializing benchmark runs locally and parallelizing them on Blacksmith CI.
Work with tscircuit visualization in this repo. Use when changing `GraphicsObject` solver `visualize()` or `preview()` output, `convertSrjToGraphicsObject`, layer-aware SVG/PNG rendering, visual snapshot tests, final routed-output graphics, topology graphics, capacity-node rects, or graphics-debug image export.
Create a new solver with @tscircuit/solver-utils. Use when adding a solver that extends BaseSolver (one iterative algorithm) or BasePipelineSolver (an ordered sequence of sub-solvers), or when wiring up the GenericSolverDebugger. Covers import paths, the override contract, fail-fast on invalid state, and reference solvers (BGA, rectdiff, find-convex-regions).
Validate code changes against real CI. Use for all tests, builds, migrations, and any command that depends on secrets or services. Use when testing, validating, checking, verifying, or before any commit or push.