Agent Evidence Guard
A small, deterministic guardrail for AI-agent completion claims.
AI coding and automation agents often say things like:
- "tests passed"
- "the fix is complete"
- "deployment succeeded"
- "the requested change is done"
Agent Evidence Guard checks whether a completion claim is backed by the evidence and authority the task contract requires.
Why
The project is intentionally simple: claims should not become accepted state without evidence.
Example:
Agent output
↓
Completion claim
↓
Agent Evidence Guard
├─ authority present?
├─ required evidence present?
├─ tests reported?
└─ prohibited claims?
↓
ALLOW / BLOCK
Quick start
Requires Python 3.10+ and no third-party runtime dependencies.
python -m agent_evidence_guard.cli examples/supported.json
python -m agent_evidence_guard.cli examples/unsupported.json
Exit codes:
0— ALLOW2— BLOCK64— invalid input
Run tests:
python -m unittest discover -s tests -v
Reusable GitHub Action
Once a release/tag is available, another repository can use Agent Evidence Guard directly:
- name: Validate agent evidence
uses: ivanovaruso/agent-evidence-guard@v0.1.0
with:
input: evidence.json
json-output: guard-verdict.json
The Action writes a GitHub Actions step summary, emits a machine-readable verdict file, and preserves the fail-closed exit codes. It does not need an API key or model-provider account.
GitHub Actions CLI adapter
The underlying adapter can also be invoked directly:
agent-evidence-guard-github evidence.json --json-output guard-verdict.json
Inside GitHub Actions, the adapter automatically uses GITHUB_STEP_SUMMARY when available. See docs/GITHUB_ACTIONS.md for a complete workflow example.
The adapter is provider-neutral: it does not require Claude, Codex, OpenAI, Anthropic, or any other model provider.
Maintainer workflow with coding agents
See docs/MAINTAINER_AGENT_WORKFLOW.md for a concrete provider-neutral flow showing how Claude Code, Codex, GitHub Copilot, another coding agent, or a human contributor can produce changes and evidence while Agent Evidence Guard remains a separate deterministic validation layer.
The key boundary is:
WORKER != EVIDENCE GUARD != MERGE AUTHORITY
Input contract
A JSON document contains:
{
"claim": "implementation complete",
"authority_ref": "ISSUE-123",
"required_evidence": ["tests", "diff"],
"evidence": {
"tests": "18 passed",
"diff": "commit abc123"
},
"prohibited_claims": ["production deployed"]
}
The versioned JSON Schema for this contract is available at schemas/input-v1.schema.json. The schema is intentionally strict at the top level so misspelled or unexpected contract fields fail validation in downstream tooling instead of being silently ignored.
The guard itself remains dependency-free: consumers may validate against the schema with any Draft 2020-12 compatible JSON Schema implementation, while the core evaluator continues to use only the Python standard library.
The guard does not decide whether the code is good. It decides whether the claim is admissible given the declared contract.
Design principles
- deterministic by default
- zero external runtime dependencies
- fail closed
- evidence over narrative
- authority is explicit
- machine-readable result
- easy to embed in CI or agent workflows
- portable
SKILL.mdguidance included
Project status
Early-stage, experimental OSS. The core policy is intentionally narrow so it can be reviewed, tested, and extended safely.
License
Apache-2.0.
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 agent_evidence_guard-0.1.1.tar.gz.
File metadata
- Download URL: agent_evidence_guard-0.1.1.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d572b789b00a4160b550f3da553178f8c84bcb6866d26529f427021d506abff
|
|
| MD5 |
1a5abd6f3efb0554b2589a5969ef9587
|
|
| BLAKE2b-256 |
80eba80f2ccefe5cd5df9eb178bcd33f040335a5dae8bfb32e664c0827b0b581
|
Provenance
The following attestation bundles were made for agent_evidence_guard-0.1.1.tar.gz:
Publisher:
release.yml on ivanovaruso/agent-evidence-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_evidence_guard-0.1.1.tar.gz -
Subject digest:
1d572b789b00a4160b550f3da553178f8c84bcb6866d26529f427021d506abff - Sigstore transparency entry: 2538707430
- Sigstore integration time:
-
Permalink:
ivanovaruso/agent-evidence-guard@e1ee6b63aed94213d05dfc77bc1f1eb5102031b6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ivanovaruso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1ee6b63aed94213d05dfc77bc1f1eb5102031b6 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_evidence_guard-0.1.1-py3-none-any.whl.
File metadata
- Download URL: agent_evidence_guard-0.1.1-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d23738a048c2116f17c7d6f124aba50785a9518331125d121011952e04240c3
|
|
| MD5 |
38230cea595c5e92efa7474f49acbaa2
|
|
| BLAKE2b-256 |
6f0c6fbb30fa84eaa8c9d3cdb01e05758d4c5f03c3fd7364d4c0a7b1de4485af
|
Provenance
The following attestation bundles were made for agent_evidence_guard-0.1.1-py3-none-any.whl:
Publisher:
release.yml on ivanovaruso/agent-evidence-guard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_evidence_guard-0.1.1-py3-none-any.whl -
Subject digest:
9d23738a048c2116f17c7d6f124aba50785a9518331125d121011952e04240c3 - Sigstore transparency entry: 2538707577
- Sigstore integration time:
-
Permalink:
ivanovaruso/agent-evidence-guard@e1ee6b63aed94213d05dfc77bc1f1eb5102031b6 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/ivanovaruso
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e1ee6b63aed94213d05dfc77bc1f1eb5102031b6 -
Trigger Event:
release
-
Statement type: