Local, deterministic corpus evidence manifests and drift checks
Project description
YY Corpus Evidence
Create deterministic, local corpus manifests and make missing, incomplete, or conflicting provenance declarations visible before a dataset release or training run.
YY Corpus Evidence records evidence. It does not decide whether data is legal, compliant, safe, or authorized for training.
Requirements
The initial release supports CPython 3.11 on Windows. Other Python versions and platforms are unsupported until they pass the release matrix.
Installation
python -m pip install yy-corpus-evidence
Commands
yy-corpus-evidence scan DATASET --declarations declarations.json --output manifest.json
yy-corpus-evidence verify DATASET manifest.json --declarations declarations.json
yy-corpus-evidence check manifest.json --require-declarations
scan inventories a local file tree. verify compares the current tree and
declarations with a prior manifest. check --require-declarations fails when
required evidence is unknown, incomplete, or conflicting.
Manifest disclosure
A manifest is not redacted. Review it before sharing it.
- Relative file paths appear verbatim.
- Declaration text appears verbatim, including
declared_by,statement.value,source_url,note, and the source name. - File contents do not appear. Byte sizes and SHA-256 digests do.
- A digest can confirm whether a file already possessed by another party is present in the corpus.
There is no hashed-path or redaction mode. Treat a manifest as being as sensitive as the names and statements it contains.
Privacy and safety defaults
- no network access, telemetry, or update check;
- no file content in output;
- no absolute root, username, hostname, or timestamp in output;
- no traversal of symlinks, junctions, or other reparse points; and
- output refuses to sit inside the scanned source unless
--allow-output-inside-sourceis explicitly passed.
The scanner reads file content locally to calculate SHA-256. It does not retain or emit the raw content.
Evidence states
Declarations are human assertions. The tool records them and reports gaps; it does not determine whether an assertion is correct.
Each asset receives one state:
unknown- no applicable declaration;declared- one internally consistent set of applicable declarations;incomplete- a governing declaration references an absent evidence file; orconflict- equally specific declarations of the same kind disagree.
An exact declaration outranks a prefix declaration. Among prefix declarations, the longest matching prefix wins.
The tool deliberately performs no cross-kind legal reasoning. For example, it does not infer whether a free-text permission contradicts a free-text restriction. Human review remains necessary.
Integrity limitations
manifest_id is a deterministic, unkeyed identity calculated from the
manifest's canonical bytes. It detects corruption and accidental divergence.
It is not a signature, authentication mechanism, or tamper-evidence system.
Anyone who changes a manifest can recompute a valid identifier.
A scan also reads a live filesystem and is not an atomic snapshot. It detects common concurrent changes using size, modification time, and inode checks, but the intended threat model is a cooperative local scan rather than a hostile filesystem.
Exit codes
| Code | Meaning |
|---|---|
| 0 | scan produced no issues; verify matched; or check passed |
| 1 | Findings, drift, or a failed check |
| 2 | Expected input or filesystem error |
| 3 | Unexpected internal fault |
Errors do not emit tracebacks or exception text because those may disclose local paths, file names, or declaration text.
JSON Schemas
The distribution includes exact Draft 2020-12 structural schemas for
declaration input and manifest output under
yy_corpus_evidence/schemas/.
The schemas constrain emitted structure. Runtime checks still enforce computed identities, declaration references, semantic duplicates, summary counts, and evidence-state behavior.
Support and security
Read SUPPORT.md before filing an issue and SECURITY.md before reporting a
security-sensitive defect. Do not submit proprietary corpora, unredacted
manifests, secrets, personal information, or private paths.
Project overview and documentation: yycore.ai/projects/corpus-evidence.
Development provenance
YY Corpus Evidence was developed under Cameron Emery's direction with material code-generation and review assistance from multiple generative-AI systems. Cameron defined the product scope, requirements, and risk boundaries and is responsible for maintenance and distribution.
AI agents generated, reviewed, selected, rejected, and revised implementation material. The tool and provider identities are preserved in a private internal provenance record. No AI system is identified as a legal author or owner, and this disclosure does not imply affiliation or endorsement.
The copyright notice applies only to protectable human-authored contributions,
selection, coordination, arrangement, modifications, and separately owned
adapted material. No claim is made that machine-generated expression becomes
human-authored or independently copyrightable. Read PROVENANCE.md for the
public development summary, clean-export policy, and limits of Git attribution
evidence.
License
Copyright 2026 Cameron Emery for protectable human-authored contributions, selection, coordination, arrangement, modifications, and separately owned adapted material.
Licensed under the Apache License, Version 2.0, only to the extent of rights
held by the applicable contributor. See LICENSE, NOTICE, and
PROVENANCE.md.
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 yy_corpus_evidence-0.1.0.tar.gz.
File metadata
- Download URL: yy_corpus_evidence-0.1.0.tar.gz
- Upload date:
- Size: 37.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afdeb1cb8f554788950d9cda5b0631aa4779471a9e0722f5e2276be9f7366d0b
|
|
| MD5 |
bf0f213b2465cf142dd2fd3c6d19c13b
|
|
| BLAKE2b-256 |
34cb3ea18b62f1e3fcb72fe7c7e1ad9a837db63a830fb54b23c076f5f81bce74
|
Provenance
The following attestation bundles were made for yy_corpus_evidence-0.1.0.tar.gz:
Publisher:
publish.yml on yycore/yy-corpus-evidence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yy_corpus_evidence-0.1.0.tar.gz -
Subject digest:
afdeb1cb8f554788950d9cda5b0631aa4779471a9e0722f5e2276be9f7366d0b - Sigstore transparency entry: 2293635300
- Sigstore integration time:
-
Permalink:
yycore/yy-corpus-evidence@f2eaf3f6a2056f9b6f904ab0e2d602c5aab8b893 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yycore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f2eaf3f6a2056f9b6f904ab0e2d602c5aab8b893 -
Trigger Event:
release
-
Statement type:
File details
Details for the file yy_corpus_evidence-0.1.0-py3-none-any.whl.
File metadata
- Download URL: yy_corpus_evidence-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.9 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 |
c3445814f3e04b09642fdeef7a049452c5f3fcbf907fa5792530703ff9c9d05b
|
|
| MD5 |
97e02f0b58ddaec385b6ab40b4a8edd3
|
|
| BLAKE2b-256 |
0eb99c2aa6ee380180708b1fd6bdd85f5f54d7f4be6683c4adbd36439460f6b3
|
Provenance
The following attestation bundles were made for yy_corpus_evidence-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on yycore/yy-corpus-evidence
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yy_corpus_evidence-0.1.0-py3-none-any.whl -
Subject digest:
c3445814f3e04b09642fdeef7a049452c5f3fcbf907fa5792530703ff9c9d05b - Sigstore transparency entry: 2293635406
- Sigstore integration time:
-
Permalink:
yycore/yy-corpus-evidence@f2eaf3f6a2056f9b6f904ab0e2d602c5aab8b893 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/yycore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f2eaf3f6a2056f9b6f904ab0e2d602c5aab8b893 -
Trigger Event:
release
-
Statement type: