Traceable code review artifacts for local Git diffs
Project description
EvidentLoop
Turn local Git diffs into evidence-backed, traceable audit reports.
EvidentLoop turns a local Git diff into a single HTML report. Any finding included in the risk score is tied to a real changed line, so you can verify it, record a decision, and ask your coding agent to update the same report without re-reviewing or changing code.
The Alpha report UI and review text are Simplified Chinese.
Quick start
Requirements: Git, Python 3.10 or newer, uv, Node.js/npx for Skill installation, and a coding agent with Skill support.
# Try the offline demo
uvx evidentloop demo
# Install the CLI and Skill
uv tool install evidentloop
npx skills@latest add evidentloop/evidentloop --skill evidentloop -g
evidentloop doctor
pipx install evidentloop is the CLI fallback.
Inside the Git repository to inspect, ask your coding agent:
Use EvidentLoop to audit my staged changes and generate the HTML report.
Output
| File | Purpose |
|---|---|
audit.json |
Validated audit record linking Git changes to findings. |
audit.html |
Single-file report showing the relevant diff and browser-local decisions. |
audit-feedback.jsonl |
Optional machine-readable decision export; the report's primary action copies the same payload for a coding agent. |
| Schema 0.4 report overview | Human adjudication and copy-to-AI flow |
|---|---|
Open the HTML locally, or publish a redacted copy to static hosting. Pending feedback stays in each viewer's browser until copied or downloaded; the report is shareable, but it is not a multi-user review service.
After recording decisions, click 复制给 AI 更新报告 (“Copy for AI to update report”). In the workspace that contains the original audit.json, paste the block into an EvidentLoop-enabled coding agent. By default, revise updates only audit.json and audit.html in the same directory; other files stay untouched. Explicit --out creates a new copy. Stale, conflicting, or ambiguous feedback stops without guessing; report revision never modifies business code or invokes model review.
EvidentLoop uses the model already available in your coding agent. It never executes commands found in the diff or model output.
How it works
complete means the host returned a valid, complete result. What it finds still depends on the host model and the context it received.
Alpha scope
| Supported | Not supported |
|---|---|
| Local Git staged, unstaged, ref, and range diffs | Folder diff, file-only review, or remote PR URLs |
| Added, modified, deleted, renamed, and binary-file metadata | Automatic fixes or command execution |
Schema 0.4, report revision, exact changed-line evidence |
Automatic fixes or model re-review from feedback |
| In-place feedback revision with paired JSON/HTML rollback and explicit copy output | Automatic stale-feedback merging or cross-workspace report search |
| Complete, partial, failed, and inconclusive states | Review targets other than Git diffs |
Integration and development
Use EvidentLoop through the Skill as a standalone product; no workflow integration is required.
EvidentLoop can also provide verifiable audit results to a workflow: diff_version identifies the reviewed Git diff, while report_version identifies the formal audit.json revision. Sopify is the first workflow to integrate this capability, and other workflows are welcome to use the same public integration contract.
Integrators can follow the prepare -> external review -> finalize path in AI host integration. The public Python API is available from evidentloop.api.
For local development:
python -m pip install -e '.[dev]'
python -m pytest -q
python -m ruff check .
python -m build
References: Pages and sample report · V0 scope · Data model · AI host integration
Alpha feedback and bug reports are welcome in GitHub Issues.
License
Licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evidentloop-0.1.0a2.tar.gz.
File metadata
- Download URL: evidentloop-0.1.0a2.tar.gz
- Upload date:
- Size: 103.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fbde1c261191b28dab487a11e2f4d0cb08a08b54ac70e9b8f426dfd1ab188f05
|
|
| MD5 |
525146335f59f42cf7212f75c6d46141
|
|
| BLAKE2b-256 |
3258b73b72d4af3727427c01ae235a1e72992818da99d2673098ec4b4aae0b66
|
Provenance
The following attestation bundles were made for evidentloop-0.1.0a2.tar.gz:
Publisher:
publish.yml on evidentloop/evidentloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidentloop-0.1.0a2.tar.gz -
Subject digest:
fbde1c261191b28dab487a11e2f4d0cb08a08b54ac70e9b8f426dfd1ab188f05 - Sigstore transparency entry: 2197123255
- Sigstore integration time:
-
Permalink:
evidentloop/evidentloop@fcefb77083d32b034e56b04dcd085dcf5a835550 -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/evidentloop
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fcefb77083d32b034e56b04dcd085dcf5a835550 -
Trigger Event:
push
-
Statement type:
File details
Details for the file evidentloop-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: evidentloop-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 88.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba4683e8700a0af5f8ef64d3e7fcc7dd8d5c23c4e84cbd48653f063a778a6cae
|
|
| MD5 |
4180edb4c6f05731ab68c0f6f9640e15
|
|
| BLAKE2b-256 |
49a7350c067cb58edea02d1979fb7bb069015a0c71cc25fd903191d67a6751e0
|
Provenance
The following attestation bundles were made for evidentloop-0.1.0a2-py3-none-any.whl:
Publisher:
publish.yml on evidentloop/evidentloop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evidentloop-0.1.0a2-py3-none-any.whl -
Subject digest:
ba4683e8700a0af5f8ef64d3e7fcc7dd8d5c23c4e84cbd48653f063a778a6cae - Sigstore transparency entry: 2197123475
- Sigstore integration time:
-
Permalink:
evidentloop/evidentloop@fcefb77083d32b034e56b04dcd085dcf5a835550 -
Branch / Tag:
refs/tags/v0.1.0a2 - Owner: https://github.com/evidentloop
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fcefb77083d32b034e56b04dcd085dcf5a835550 -
Trigger Event:
push
-
Statement type: