Skip to main content

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-source is 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; or
  • conflict - 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yy_corpus_evidence-0.1.0.tar.gz (37.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yy_corpus_evidence-0.1.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

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

Hashes for yy_corpus_evidence-0.1.0.tar.gz
Algorithm Hash digest
SHA256 afdeb1cb8f554788950d9cda5b0631aa4779471a9e0722f5e2276be9f7366d0b
MD5 bf0f213b2465cf142dd2fd3c6d19c13b
BLAKE2b-256 34cb3ea18b62f1e3fcb72fe7c7e1ad9a837db63a830fb54b23c076f5f81bce74

See more details on using hashes here.

Provenance

The following attestation bundles were made for yy_corpus_evidence-0.1.0.tar.gz:

Publisher: publish.yml on yycore/yy-corpus-evidence

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yy_corpus_evidence-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for yy_corpus_evidence-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3445814f3e04b09642fdeef7a049452c5f3fcbf907fa5792530703ff9c9d05b
MD5 97e02f0b58ddaec385b6ab40b4a8edd3
BLAKE2b-256 0eb99c2aa6ee380180708b1fd6bdd85f5f54d7f4be6683c4adbd36439460f6b3

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page