Metadata-Version: 2.4
Name: evidentloop
Version: 0.1.0a0
Summary: Traceable code review artifacts for local Git diffs
License-Expression: MIT
Project-URL: Homepage, https://github.com/evidentloop/evidentloop
Project-URL: Repository, https://github.com/evidentloop/evidentloop
Project-URL: Issues, https://github.com/evidentloop/evidentloop/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jinja2>=3.1
Requires-Dist: jsonschema>=4.23
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: pyyaml>=6.0; extra == "dev"
Requires-Dist: ruff>=0.9; extra == "dev"
Dynamic: license-file

<h1 align="center">EvidentLoop</h1>

<p align="center"><strong>Turn local Git diffs into evidence-backed, traceable audit reports.</strong></p>

<p align="center">
  <a href="https://github.com/evidentloop/evidentloop/blob/main/README.md">English</a> ·
  <a href="https://github.com/evidentloop/evidentloop/blob/main/README.zh-CN.md">简体中文</a>
</p>

<p align="center">
  <img alt="Status: Alpha" src="https://img.shields.io/badge/status-alpha-F59E0B">
  <img alt="Python 3.10+" src="https://img.shields.io/badge/python-3.10%2B-3776AB">
  <img alt="Code-diff schema 0.3" src="https://img.shields.io/badge/code--diff%20schema-0.3-0F766E">
</p>

![EvidentLoop product path from Git diff to human decisions](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-cover.png)

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, mark false positives, add context, and export your decisions.

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.

```bash
# 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:

```text
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 decision export. In this Alpha, exported feedback does not update the report or change code. |

| EvidentLoop self-audit overview | Offline demo: finding, changed line, and decision |
|---|---|
| [![EvidentLoop self-audit overview](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-report-overview.png)](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-report-overview.png) | [![Offline demo finding with changed-line evidence and browser-local decision](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-report-feedback.png)](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-report-feedback.png) |

Open the HTML locally, or publish a redacted copy to static hosting. Feedback stays in each viewer's browser until exported; the report is shareable, but it is not a multi-user review service.

EvidentLoop uses the model already available in your coding agent. It never executes commands found in the diff or model output.

## How it works

[![EvidentLoop architecture from host review to validated artifact pair](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-architecture.png)](https://raw.githubusercontent.com/evidentloop/evidentloop/v0.1.0a0/docs/assets/evidentloop-architecture.png)

`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.3`, findings tied to exact changed lines, nearby Git context | Feedback ingestion or automatic report revision |
| Complete, partial, failed, and inconclusive states | Review targets other than Git diffs |

## Integration and development

Most users should use the Skill. Host integrators can use the `prepare -> external review -> finalize` path documented in [AI host integration](https://github.com/evidentloop/evidentloop/blob/main/docs/ai-host-integration.md). The public Python API is available from `evidentloop.api`.

For local development:

```bash
python -m pip install -e '.[dev]'
python -m pytest -q
python -m ruff check .
python -m build
```

References: [Pages and sample report](https://evidentloop.github.io/evidentloop/) · [V0 scope](https://github.com/evidentloop/evidentloop/blob/main/docs/v0-scope.md) · [Data model](https://github.com/evidentloop/evidentloop/blob/main/docs/data-model.md) · [AI host integration](https://github.com/evidentloop/evidentloop/blob/main/docs/ai-host-integration.md)

## License

Licensed under the [MIT License](https://github.com/evidentloop/evidentloop/blob/main/LICENSE).
