@sreetej510/pi-shipd-checks
Pi extension that runs a strict, multi-agent fairness review of a benchmark task's agent_prompt.md, test.patch, and solution.patch, plus behavioral test-gap analysis, via /checks.
Package details
Install @sreetej510/pi-shipd-checks from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@sreetej510/pi-shipd-checks- Package
@sreetej510/pi-shipd-checks- Version
0.1.16- Published
- Jul 16, 2026
- Downloads
- 504/mo · 504/wk
- Author
- sreetej510
- License
- MIT
- Types
- extension
- Size
- 147.1 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"extensions": [
"./dist/index.js"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@sreetej510/pi-shipd-checks
A pi coding agent extension that finds behavioral coverage gaps in a benchmark task's hidden tests.
What it does
For the flags you pass, /checks:
- Snapshots the current git
HEADinto a throwaway temp directory (viagit archive HEAD | tar -x) — it never touches your working directory, staged, or uncommitted changes. - Copies
agent_prompt.md,solution.patch, andtest.patchfrom your project root into that temp dir. - Optionally runs a 3-agent behavioral test-gap analysis: two specialized finders run in parallel (positive required-behavior gaps + negative forbidden-behavior gaps), then a strict validator filters the combined list.
- Optionally runs the solver gap finder: several (configurable, default 3) TDD-style solver
agents, each in its own throwaway git repo with
test.patchandagent_prompt.mdapplied (neversolution.patch), given write/edit/bash access to iterate until./test.sh newpasses or they give up. The extension independently re-verifies each solver's result and captures its diff (excluding any filestest.patchtouched, and including any new, previously-uncommitted files the solver created), writes each solver's diff + test output tosolver_gap_solutions/solver_<n>/inside the shared snapshot dir (plus amanifest.jsonsummary) — rather than embedding them directly in a prompt — so a read-only comparison reviewer can read only what it needs via its normal read/grep/find/ls tools, keeping its context usage independent of solver count and diff size. That reviewer compares the solvers' diffs against the realagent_prompt.md/solution.patchto surface behavioral gaps — cases where a passing solver's approach diverges from the intended behavior, indicating a test that's under-specified. This is empirical (grounded in real agent attempts) rather than analytical, so it's reported separately from the--gap-finderresults. Each solver's fulltrajectory.json(its raw session entries),solution.patch, and./test.sh newoutput are also persisted to.pi/shipd-checks/<run-id>/solver_<n>/in your project root, for later inspection independent ofshipd_report.json. - Posts a chat summary and merges the gap-finder results into
shipd_report.jsonin your project root. Running either finder separately builds up one combined report without any PASS/FAIL verdict.
Commands
The two finder flags are additive/combinable; --config must be used alone.
| Command | Effect |
|---|---|
/checks |
List available options (runs nothing) |
/checks --gap-finder |
Run positive + negative gap finders (parallel), then validator |
/checks --solver-gap-finder |
Run several solver agents TDD-style against agent_prompt.md + test.patch, then compare their solutions to the real solution to find gaps |
/checks --config |
Configure behavioral and solver gap-finder models |
Shortcut: Ctrl+Shift+X cancels an in-progress /checks run.
Configuration
/checks --config opens the row-based settings menu with two sections:
- Reviewer: model and thinking level used by the behavioral gap finders, validator, and solver-solution comparison agent.
- Solver: model and thinking level for TDD solver agents, plus their timeout, parallel solver count, and artifact-saving setting.
Use ↑/↓ to select a row and Enter/Space to change it. The currently selected model is shown first
in its picker. Settings are saved to ~/.pi/agent/checks-config.json; solver settings are nested
under solverGap.
Install
npm install -g @sreetej510/pi-shipd-checks
Then add it to your pi settings.json:
{
"packages": ["npm:@sreetej510/pi-shipd-checks"]
}
Or, for local development, point at the entry point directly:
{
"extensions": ["/absolute/path/to/pi-extensions/extensions/pi-shipd-checks/src/index.ts"]
}
File layout
| File | Responsibility |
|---|---|
src/index.ts |
Extension entry point: message renderer, cancel shortcut, command registration |
src/command.ts |
The /checks command: argument parsing, --config flow, run orchestration |
src/agents.ts |
Spawns and races the reviewer + gap-finder/validator/solver agent sessions |
src/solvergap.ts |
Solver-gap-finder workspace lifecycle: setup, verification, artifact persistence, cleanup |
src/prompts.ts |
All prompt text sent to those agents |
src/tools.ts |
Custom tools the agents call to submit their structured results |
src/rubric.ts |
Embedded guidelines/fairness rubric text + per-role section loaders |
src/roles.ts |
The 3 reviewer roles (description/tests/solution) metadata |
src/report.ts |
shipd_report.json load/merge/summary logic |
src/config.ts |
~/.pi/agent/checks-config.json + settings.json helpers (models, thinking levels, shell path) |
src/git.ts |
Clean, non-mutating git HEAD snapshot into a scratch directory |
src/progress.ts |
Progress-bar widget rendering |
src/state.ts |
Shared "run in progress" / cancel state between the command and the shortcut |
src/types.ts |
Shared TypeScript types |
To change reviewer strictness or wording, edit prompts.ts. To change the rubric/fairness text
itself, edit rubric.ts. To add a new tool, add it in tools.ts and wire it up in agents.ts.
Development
npm install
npm run --workspace @sreetej510/pi-shipd-checks check # biome + typecheck
npm run --workspace @sreetej510/pi-shipd-checks format