Catalog PyPI
PACKAGE EXPLORERView in registry

agent-evidence-guard

PyPI

Deterministic validation of AI-agent completion claims against evidence and authority requirements.

agent-safetyai-agentscievidenceguardrails
Versions collected1
Direct dependencies0From release 0.1.1
Last observed20 Oct, 21:53 UTC

README

Version 0.1.1 documentation

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 — ALLOW
  • 2 — BLOCK
  • 64 — 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.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.

Downloads & popularity

5downloads
1-day window · source-reported counts18 Oct 2026
92460
2026-08-20: 92 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-20–2026-08-202026-08-21: 17 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-21–2026-08-212026-08-22: 10 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-22–2026-08-222026-08-23: 5 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-23–2026-08-232026-08-24: 6 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-24–2026-08-242026-08-25: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-25–2026-08-252026-08-27: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-27–2026-08-272026-08-28: 9 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-28–2026-08-282026-08-29: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-08-29–2026-08-292026-09-01: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-01–2026-09-012026-09-04: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-04–2026-09-042026-09-06: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-06–2026-09-062026-09-07: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-07–2026-09-072026-09-08: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-08–2026-09-082026-09-10: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-10–2026-09-102026-09-11: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-11–2026-09-112026-09-12: 6 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-12–2026-09-122026-09-13: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-13–2026-09-132026-09-14: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-14–2026-09-142026-09-16: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-16–2026-09-162026-09-18: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-18–2026-09-182026-09-20: 5 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-20–2026-09-202026-09-22: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-22–2026-09-222026-09-23: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-23–2026-09-232026-09-25: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-25–2026-09-252026-09-26: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-26–2026-09-262026-09-27: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-27–2026-09-272026-09-30: 4 · observed 2026-10-20T23:09:28.6210229Z · period 2026-09-30–2026-09-302026-10-02: 4 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-02–2026-10-022026-10-03: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-03–2026-10-032026-10-04: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-04–2026-10-042026-10-06: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-06–2026-10-062026-10-08: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-08–2026-10-082026-10-09: 4 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-09–2026-10-092026-10-11: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-11–2026-10-112026-10-12: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-12–2026-10-122026-10-13: 1 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-13–2026-10-132026-10-14: 9 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-14–2026-10-142026-10-15: 3 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-15–2026-10-152026-10-16: 2 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-16–2026-10-162026-10-17: 7 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-17–2026-10-172026-10-18: 5 · observed 2026-10-20T23:09:28.6210229Z · period 2026-10-18–2026-10-18
20 Aug18 Oct

pypistats · 42 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-18 – 2026-10-1852026-10-20T23:09:28.6210229Z
2026-10-17 – 2026-10-1772026-10-20T23:09:28.6210229Z
2026-10-16 – 2026-10-1622026-10-20T23:09:28.6210229Z
2026-10-15 – 2026-10-1532026-10-20T23:09:28.6210229Z
2026-10-14 – 2026-10-1492026-10-20T23:09:28.6210229Z
2026-10-13 – 2026-10-1312026-10-20T23:09:28.6210229Z
2026-10-12 – 2026-10-1222026-10-20T23:09:28.6210229Z
2026-10-11 – 2026-10-1122026-10-20T23:09:28.6210229Z
2026-10-09 – 2026-10-0942026-10-20T23:09:28.6210229Z
2026-10-08 – 2026-10-0822026-10-20T23:09:28.6210229Z
2026-10-06 – 2026-10-0632026-10-20T23:09:28.6210229Z
2026-10-04 – 2026-10-0412026-10-20T23:09:28.6210229Z
2026-10-03 – 2026-10-0312026-10-20T23:09:28.6210229Z
2026-10-02 – 2026-10-0242026-10-20T23:09:28.6210229Z
2026-09-30 – 2026-09-3042026-10-20T23:09:28.6210229Z
2026-09-27 – 2026-09-2712026-10-20T23:09:28.6210229Z
2026-09-26 – 2026-09-2612026-10-20T23:09:28.6210229Z
2026-09-25 – 2026-09-2522026-10-20T23:09:28.6210229Z
2026-09-23 – 2026-09-2322026-10-20T23:09:28.6210229Z
2026-09-22 – 2026-09-2212026-10-20T23:09:28.6210229Z
2026-09-20 – 2026-09-2052026-10-20T23:09:28.6210229Z
2026-09-18 – 2026-09-1822026-10-20T23:09:28.6210229Z
2026-09-16 – 2026-09-1632026-10-20T23:09:28.6210229Z
2026-09-14 – 2026-09-1432026-10-20T23:09:28.6210229Z
2026-09-13 – 2026-09-1332026-10-20T23:09:28.6210229Z
2026-09-12 – 2026-09-1262026-10-20T23:09:28.6210229Z
2026-09-11 – 2026-09-1112026-10-20T23:09:28.6210229Z
2026-09-10 – 2026-09-1012026-10-20T23:09:28.6210229Z
2026-09-08 – 2026-09-0822026-10-20T23:09:28.6210229Z
2026-09-07 – 2026-09-0732026-10-20T23:09:28.6210229Z
2026-09-06 – 2026-09-0612026-10-20T23:09:28.6210229Z
2026-09-04 – 2026-09-0432026-10-20T23:09:28.6210229Z
2026-09-01 – 2026-09-0132026-10-20T23:09:28.6210229Z
2026-08-29 – 2026-08-2922026-10-20T23:09:28.6210229Z
2026-08-28 – 2026-08-2892026-10-20T23:09:28.6210229Z
2026-08-27 – 2026-08-2712026-10-20T23:09:28.6210229Z
2026-08-25 – 2026-08-2522026-10-20T23:09:28.6210229Z
2026-08-24 – 2026-08-2462026-10-20T23:09:28.6210229Z
2026-08-23 – 2026-08-2352026-10-20T23:09:28.6210229Z
2026-08-22 – 2026-08-22102026-10-20T23:09:28.6210229Z
2026-08-21 – 2026-08-21172026-10-20T23:09:28.6210229Z
2026-08-20 – 2026-08-20922026-10-20T23:09:28.6210229Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.120 Aug 20260

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
ivanovaruso/agent-evidence-guard

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 21:53 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:267fc4fc3073a2c3b3b178433125dda34dcf897c090128c415dca1451747d94a