Skip to main content

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

Install from PyPI

Requires Python 3.10+ and has no third-party runtime dependencies.

Currently published distribution: 0.1.1. The strengthened behavior described later in this README belongs to the source candidate 0.2.0 and is not available in the 0.1.1 PyPI package or v0.1.1 Action tag until a separate 0.2.0 release is approved and published. See 0.2.0 release candidate notes.

python -m pip install agent-evidence-guard==0.1.1

The public PyPI distribution has been clean-install verified on GitHub-hosted Python 3.12.

Quick start

agent-evidence-guard examples/supported.json
agent-evidence-guard examples/unsupported.json

Exit codes:

  • 0 — ALLOW
  • 2 — BLOCK
  • 64 — invalid input

For source development, run tests with:

python -m unittest discover -s tests -v

Reusable GitHub Action

Another repository can consume the released Action directly:

- name: Validate agent evidence
  uses: ivanovaruso/agent-evidence-guard@v0.1.1
  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.

For higher-assurance workflows, pin the Action to the immutable release commit SHA rather than relying only on a mutable version tag.

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 core now rejects structurally invalid contract values at runtime using only the Python standard library; unknown top-level fields, invalid field types and duplicate evidence names produce ERROR (exit 64). Missing or empty claim and authority references retain BLOCK (exit 2) for compatibility with existing consumers. A separate JSON Schema validator is optional.

agent-evidence-guard --help and agent-evidence-guard --version are supported.

CLI JSON parsing rejects duplicate object keys (including nested duplicates), nonstandard values NaN/Infinity, finite-number overflow, and overly nested JSON with ERROR / exit 64. The composite Action treats a filename starting with - (for example --help) as a literal path, not a command-line option. Use trusted workflow configuration for verdict and summary output paths; the two output files are not a transactional unit. IO failures produce an error exit rather than claiming success on stdout.

Artifact publication: The GitHub CI adapter writes a machine-readable verdict through a same-directory temporary file and atomic replacement where the filesystem supports it, after flushing and syncing the temporary file. An existing verdict at the configured output path is removed at the start of each invocation to reduce stale ALLOW artifacts. Existing symlinks, directories, and special-file destinations are rejected. A file may be absent after an unrecoverable I/O error; consumers must check the final step exit status and the originating workflow run, not an artifact or GitHub step summary in isolation. JSON and Markdown summary updates are not a multi-file transaction. Use a unique, trusted output path per invocation.

Security and trust limit: ALLOW checks only the declared contract. A text value such as "tests": "9999 passed" is not proof that CI ran; an authority_ref value is not independently authenticated. The guard never authorizes merge, release, deployment or access.

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.md guidance 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.

Metadata

Release files for agent-evidence-guard 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agent-evidence-guard 0.2.0
File Size Uploaded Provenance
agent_evidence_guard-0.2.0.tar.gz 21.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for agent-evidence-guard 0.2.0
File Interpreter ABI Platform
agent_evidence_guard-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.3 kB

Release files / agent_evidence_guard-0.2.0.tar.gz

Download URL agent_evidence_guard-0.2.0.tar.gz
Size 21.7 kB
Tags Source
SHA-256 checksum
How to use checksums
23f6877d905906a188bcda7c2eee791d9e5ce962459037089b46af5d9cd72bca
BLAKE2b-256 checksum
How to use checksums
b2c16d733635564f807fb4e9b8bfb440424a2ffe49a3eddc5a91a88b972a39af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 22, 2026.

Transparency log

Release files / agent_evidence_guard-0.2.0-py3-none-any.whl

Download URL agent_evidence_guard-0.2.0-py3-none-any.whl
Size 14.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
487b85abfc4fcf1be7bea157fe1dcfcf0cdbaf2f51824bdc102eee0a9eb6e75e
BLAKE2b-256 checksum
How to use checksums
9783f7e1d46733acc18e9a1d6dcb5bfd12be014896bc06003520143e0f7c4166
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 22, 2026.

Transparency log

Security for agent-evidence-guard 0.2.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for agent_evidence_guard-0.2.0.tar.gz

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 Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page