repro-pilot
Evidence-driven GitHub issue reproduction and fixing workflow for Pi Coding Agent
Package details
Install repro-pilot from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:repro-pilot- Package
repro-pilot- Version
0.1.0- Published
- Sep 2, 2026
- Downloads
- 147/mo · 147/wk
- Author
- zey2
- License
- MIT
- Types
- extension, skill
- Size
- 49.2 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./extensions/repro-workflow/index.ts"
],
"skills": [
"./skills"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
ReproPilot
English | 简体中文
ReproPilot is an issue reproduction agent built on Pi Coding Agent.
Give it a GitHub issue URL. It investigates the matching local repository, reproduces the reported behavior, creates a regression test, and reports evidence from commands it actually ran. Add --fix to also request a fix and verification.
Who it is for
- Developers learning how an evidence-driven coding agent works.
- Maintainers who want an issue turned into a reproducible test case.
- Developers who want to confirm a bug before attempting a fix.
ReproPilot runs locally. It does not automatically commit, push, or create a pull request.
What it does
Load issue → Triage → Reproduce → Add a failing regression test
↓
No --fix: verify and report
With --fix: repair → verify → report
Reading code is not proof of reproduction. ReproPilot requires evidence from executed commands or tests.
Architecture
ReproPilot is a Pi package with four small layers:
| Path | Responsibility |
|---|---|
extensions/repro-workflow/ |
Connects ReproPilot to Pi: /repro, custom tools, session events, and TUI status |
skills/repro-workflow/ |
Gives the model the step-by-step reproduction procedure |
src/core/ |
Enforces workflow state, evidence rules, persistence validation, and report generation without depending on Pi |
src/github.ts |
Loads and validates the GitHub issue and verifies the current repository |
Pi provides the model loop and built-in repository tools. ReproPilot adds only the issue-reproduction workflow and its deterministic evidence gates.
Requirements
- Node.js 22.19 or later.
- Pi Coding Agent with a model configured.
- A local checkout of the repository that owns the issue, with the correct GitHub
origin. - The dependencies and toolchain needed to run that repository locally.
The target repository is not restricted to a programming language or test framework.
ReproPilot runs commands and may create or edit files in the current repository. Check your working tree first or use a separate branch.
Quick start
Install Pi with npm:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
--ignore-scripts disables dependency lifecycle scripts during installation. Pi does not require install scripts for normal npm installs.
Installer alternative:
curl -fsSL https://pi.dev/install.sh | sh
Authenticate with an API key:
export ANTHROPIC_API_KEY=sk-ant-...
pi
Or use an existing subscription:
pi
/login # Then select provider
Install ReproPilot once:
pi install npm:repro-pilot
Public issues require no GitHub token. For issues you can access only after authentication, set GITHUB_TOKEN before starting Pi.
Run
Clone or open the repository that owns the issue:
git clone https://github.com/OWNER/REPOSITORY.git
cd REPOSITORY
git switch -c test-repro-pilot
pi
Using a separate branch is recommended because ReproPilot may create tests or modify source files. You can choose any branch name.
Start Pi normally. Do not add --no-skills: it disables ReproPilot's workflow skill. ReproPilot does not include any unrelated skills.
Replace the uppercase placeholders, then run this inside Pi:
/repro https://github.com/OWNER/REPOSITORY/issues/ISSUE_NUMBER
This reproduces the issue and creates a regression test, but does not repair the source code.
To also request a fix:
/repro https://github.com/OWNER/REPOSITORY/issues/ISSUE_NUMBER --fix
The issue repository must match the current repository's GitHub origin. ReproPilot stops on a mismatch to avoid changing the wrong codebase.
Read the live status
Pi shows a status such as:
repro:triage evidence:0 test:not_started fix:not_started
repro: current workflow phase.evidence: number of recorded evidence items.test: regression test status.fix: fix status.
| Phase | Meaning |
|---|---|
triage |
Understand the issue and find relevant code and tests |
reproduce |
Run the code and compare actual with expected behavior |
test |
Add a regression test and observe it failing on the baseline |
fix |
Change source code; entered only when --fix was used |
verify |
Run the regression test and relevant existing tests |
report |
Write the final report |
test is not_started, failing, passing, or blocked. fix is not_started or applied.
Read the final result
| Outcome | Meaning |
|---|---|
reproduced |
The bug was reproduced and the regression test fails on the baseline; no source fix was applied |
fixed |
The bug was reproduced and fixed; the regression and relevant existing tests pass |
not_reproduced |
Reproduction was attempted, but the reported behavior was not observed |
blocked |
The run could not continue because of missing information, dependencies, or environment |
The final report is written inside the target repository:
.repro-pilot/runs/<run-id>/report.md
Read Outcome and Verification first. Use Evidence Details when you need the exact command, exit code, and relevant output behind a conclusion. Evidence items are numbered E1, E2, and so on.
Current limits
- Accepts issue URLs from
github.comonly. - Requires the user to open the matching local repository first.
- Requires the target project's dependencies and tests to run locally.
- Provides no cloud sandbox and does not automatically commit, push, or open a pull request.