repro-pilot

Evidence-driven GitHub issue reproduction and fixing workflow for Pi Coding Agent

Packages

Package details

extensionskill

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.com only.
  • 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.