You maintain an open-source library. A bug report lands with a link to a reproduction repo. The usual routine is to clone both repos, wire them together by hand, and run npm pack in a loop until the bug reproduces and the fix holds.
One Polygraph session holds your library and the contributor's public repro at once. You reproduce the bug, fix it in the library, confirm the fix in the repro, and open a PR, without the back-and-forth. The repro is a public repo you don't own, so Polygraph never opens a PR against it. Only your library gets one.
Scenario: A bug report with a reproduction
Section titled “Scenario: A bug report with a reproduction”A contributor filed an issue with a repro repo. You want to confirm the bug, fix it, and verify the fix before you publish anything.
Reproduce first
Section titled “Reproduce first”I run polygraph session start in my library and add the repro.
Add github.com/jaysoo/acme-lib-repro to this session. It reproduces anissue in github.com/acme/lib.
Read the issue at <issue-url> and the repro's README. Run the failing commandin the repro and confirm you can reproduce the bug before changing anything.The repro is public, so the agent pulls it in on demand. The contributor doesn't install or register anything. Their job ended when they filed the report.
Investigate and fix
Section titled “Investigate and fix”Once the bug reproduces, point the agent at the library:
Find the code path in acme/lib responsible for this. Make the smallest fix youcan justify. Don't run the library's own tests yet, I want to verify againstthe repro first.The agent has both repos in one workspace, so it can read the repro and edit the library in the same turn.
Verify the fix in the repro
Section titled “Verify the fix in the repro”Test the fixed library against the repro and rerun the failing command. If itstill breaks, keep iterating. Once the repro passes, run the library's unittests for the files you touched.This is the step that used to be a multi-terminal dance. The agent builds your fixed library, puts it in front of the repro, and reruns the failing command, so "is it actually fixed" is one turn instead of a manual loop.
Open the PR against your library
Section titled “Open the PR against your library”Open a PR against acme/lib with the fix. Title it "fix: <one-line summary>"and link the issue and the repro in the body.The PR lands on your library, never on the repro. Share the session link on the issue so the reporter and your reviewers see how you got to the fix, not just the diff.