Issue Boundary Evidence
A small read-only CLI for OSS maintainers that extracts traceable dependency, upstream, runtime, and version-history evidence from public GitHub Issues.
Why
Some issues are not hard because the code change is difficult. They are hard because the maintainer first has to determine:
- which package, plugin, runtime, or external system is involved;
- whether behavior changed across versions;
- whether investigation belongs upstream;
- what evidence is still missing.
Issue Boundary Evidence collects those clues without changing the issue or claiming to decide the root cause.
What it does
Given one public GitHub Issue URL, the CLI reads the title, body, all comments, and a small number of explicitly referenced same-repository issues or pull requests. It produces a Markdown report with:
- environment, package, ABI, and version facts;
- dependency, plugin, runtime, and upstream boundary candidates;
- version and regression clues;
- contextual same-repository commit-history clues;
- external repository/service domains found in CI or infrastructure context;
- related GitHub evidence;
- explicit evidence gaps;
- source URL, source kind, location, and excerpt for every evidence item.
Each item is typed as fact, strong_clue, or weak_clue. These labels measure evidence strength; they are not final root-cause or bug-owner decisions.
What it does not do
It does not comment, label, close, or otherwise modify GitHub Issues. It does not run issue code, follow arbitrary downloads, clone linked repositories, fix bugs, use an LLM/API, or replace maintainer judgment.
Requirements
- Python 3.10 or newer
- Network access to public
api.github.com - Optional
GITHUB_TOKENfor a higher GitHub read-only API rate limit
There are no runtime package dependencies.
Install from the v0.1.2 GitHub release
Install the wheel attached to the v0.1.2 GitHub release:
python -m pip install https://github.com/LaimaWu/issue-boundary-evidence/releases/download/v0.1.2/issue_boundary_evidence-0.1.2-py3-none-any.whl
PyPI installation pending
PyPI publication is not live yet. After the first Trusted Publishing run succeeds, the package will be installable with:
python -m pip install issue-boundary-evidence
Until then, use the GitHub release wheel or the contributor installation below.
Contributor install
From the repository root:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
Run
Print a report:
issue-boundary-evidence https://github.com/OWNER/REPO/issues/123
Write it to a file:
issue-boundary-evidence https://github.com/OWNER/REPO/issues/123 --output report.md
Run without installing:
PYTHONPATH=src python -m issue_boundary_evidence.cli https://github.com/OWNER/REPO/issues/123
Test
PYTHONPATH=src python -m unittest discover -s tests -v
The unit tests use local fixtures and do not require network access.
Examples
Generated reports are in examples/:
pandas-58927.mdpytest-12430.mdnumpy-26622.md
The complete frozen ten-issue precision-pass run is stored in eval_outputs/. These are raw CLI reports for human retrospective scoring; the project does not assign its own GO/REVISE/STOP score.
Retrieval boundary
The CLI uses only GitHub's public, read-only REST endpoints. It fetches all comments on the requested issue. It retrieves up to five same-repository issues or pull requests only when the issue or comments explicitly link them or use contextual wording such as see #123, PR #123, or fixed by #123. Bare numbers and references inside code fences are not retrieved. Contextual commit SHAs are linked without fetching their diffs. Non-GitHub service URLs can identify an infrastructure boundary, but the CLI records their domains without requesting them.
Version-like values are extracted deterministically, then the report prioritizes versions tied to the current repository, complete Python/runtime tokens, boundary language, compatibility, regression, or release/fix prose. Markdown-linked patch versions are supported. This avoids presenting every compiler, package-name substring, or toolchain value in a large environment dump as equally important.
Packaging tools such as pip, setuptools, and wheel are promoted only when their version or behavior directly affects the investigation—for example, selecting the correct ABI wheel. Generic install commands, CI logs, and package lists are not sufficient. Quoted copies of identical regression sentences are collapsed while retaining their source links.
Security
All issue content is untrusted text. The tool never evaluates or executes issue bodies, comments, code blocks, commands, or reporter-provided scripts. HTTP methods are limited to GET; no GitHub write operations exist in the client.
Validation
This is an experimental deterministic maintainer tool. The repository includes a frozen retrospective evaluation set built from historical pandas, pytest, and NumPy issues where maintainers later discussed dependency, runtime, upstream, infrastructure, or version-history boundaries. Raw generated reports are stored in eval_outputs/. This evaluation is intended to expose strengths and failure modes; it is not a claim of universal accuracy.
Current status
Experimental deterministic CLI. See EVAL_NOTES.md for the retrospective evaluation procedure.
License
Apache-2.0.
Metadata
Release files for issue-boundary-evidence 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| issue_boundary_evidence-0.1.2.tar.gz | 27.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| issue_boundary_evidence-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.0 kB
Release files / issue_boundary_evidence-0.1.2.tar.gz
| Download URL | issue_boundary_evidence-0.1.2.tar.gz |
|---|---|
| Size | 27.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6570f9f86113af4ba730e5a408384b9f76cc9960ed4f9ecc89ddfa0e36f603d
|
|
BLAKE2b-256 checksum How to use checksums |
8acdbbc4bb0f70018adeb0b25c096ea2bcf784a7f7b78d5568f46ffc0eeaef6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / issue_boundary_evidence-0.1.2-py3-none-any.whl
| Download URL | issue_boundary_evidence-0.1.2-py3-none-any.whl |
|---|---|
| Size | 21.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f2fe15f85646b6e40c4e9f1dcad4a6352cea7c3d9d49b3c55f800b693487952
|
|
BLAKE2b-256 checksum How to use checksums |
6b4f7a85bdee8ec699df801a70d0302fb1808415cf8d9c3db7431d53890020c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log