Evaluator guide · Exact public evidence

Inspect the feature boundary without revealing the dataset.

This guide maps the public v1 contract, values-free column schema, and synthetic manifests into a buyer-readable evaluation path: what the freezer accepts, how a field becomes eligible, which identities are retained, what verification detects, and what no manifest can prove.

Mental model

The ordering is the product: declare, freeze, then read outcomes.

01 / Describe

Publish a values-free schema.

List each column name, normalized type, role, and optional nullability. The document must declare data_values_present: false.

02 / Bound

Name protected roles twice.

Target, identity, and time names are declared in the contract and must agree with the schema roles while remaining disjoint.

03 / Select

Apply one explicit policy.

Allowed types, ordered include and exclude expressions, forbidden exact names, and selected-count bounds decide eligibility mechanically.

04 / Freeze

Bind the ordered result.

The manifest records target_values_read: false, input and policy hashes, the ordered selected list, and hashes for the retained CSV ledgers.

The interface can constrain this tool's inputs. It cannot prove that an upstream author never saw a target, that a declared role is true, or that a selected name is free of semantic leakage.

02 / Contract map

Make the eligibility rule reviewable before execution.

Three strict Draft 2020-12 schemas separate the freeze request, the values-free column declaration, and the resulting manifest. Unknown properties are rejected.

Freeze-contract schema

Column schema

Names and roles, never rows.

  • dataset_idA portable identifier carried into the manifest.
  • data_values_presentMust be exactly false.
  • name + typeBoolean, integer, number, string, or category metadata.
  • roleCandidate, target, identity, time, or metadata.
  • nullableAn optional declaration retained for selected fields.

Selection policy

Eligibility requires every applicable gate.

  • allowed_typesThe candidate's declared type must be permitted.
  • include_patternsAt least one expression must match when the list is non-empty.
  • exclude_patternsA matching exclusion keeps the field out.
  • forbidden_exact_namesExplicit deny-list protection in addition to role boundaries.
  • min_selected + max_selectedThe completed ordered selection must stay inside the declared envelope.

Resource envelope

Bound the metadata read first.

max_schema_bytes, max_columns, max_patterns, and max_name_chars are required. Version 1 also rejects duplicate object keys, duplicate column names, invalid regular expressions, contained-path violations, and symbolic-link inputs.

03 / Synthetic evidence

Compare a narrow policy with a permissive-looking one.

Both public records are exact deterministic manifests from synthetic values-free inputs. Neither case contains dataset rows, target values, customer data, private paths, market semantics, or implementation code.

Manifest schema

Clean case

Seven declared columns become three ordered candidates.

The policy includes names beginning with support_, active_, or plan_. Identity, time, metadata, and target roles remain excluded. The manifest retains three selected fields in source order and four exclusions.

status: FROZEN_BEFORE_TARGET_READ
source columns: 7 · selected: 3 · excluded: 4
target values read: false · dataset values read: false
dataset_values_read: false
selection SHA-256: 46AA1947...23F4645

Contract SHA-2562AA007C59538DD8FF628785A4C78E2A1FD16A85622ADAFD759E70D042F2A5A94

Exclusion-focused case

A match-all include still does not make every field eligible.

The contract uses .* as its include expression, but role, type, explicit-name, and exclusion-pattern gates still apply. Of six declared columns, only messages_before_review is selected; five remain excluded.

status: FROZEN_BEFORE_TARGET_READ
source columns: 6 · selected: 1 · excluded: 5
target values read: false · dataset values read: false
dataset_values_read: false
selection SHA-256: FD42B202...4A955A5

Contract SHA-2568E7E68BC7BDE9527571702F010FB70756EE1A1C84D1EE11FD066F92C72D805AE

04 / Output semantics

Five retained files, one create-only pack.

The licensed CLI publishes into a new output directory. It refuses to overwrite an existing destination, and verify checks the retained set later.

Machine-readable offer

Files

Structured, tabular, human, and integrity views.

  • manifest.jsonThe schema-identified freeze record with product version, identities, counts, selected fields, boundaries, limitations, and artifact hashes.
  • selected-features.csvThe ordered selected field name, normalized type, nullability, and source ordinal.
  • exclusions.csvEvery unselected declaration with a retained mechanical reason.
  • summary.mdA compact operator-readable view of the freeze identity, counts, hashes, boundaries, and limitations.
  • SHA256SUMS.txtExact hashes for the governed output files.

Verification

Detect changed, missing, and unexpected files.

verify re-hashes the declared files and checks the pack membership. A successful check establishes consistency with the retained checksum set; it does not authenticate an author, timestamp the freeze, or prove the declarations are true.

Identity layers

Keep inputs, policy, selection, and artifacts distinct.

The manifest exposes separate SHA-256 values for the canonical contract, exact schema bytes, normalized policy, ordered selected names, selected CSV, and exclusion CSV. This allows a reviewer to distinguish “same inputs” from “same rule” and “same result.”

Buyer answers

Six questions to settle before requesting a license.

These answers match the current v1.0.0 offer and public evaluation boundary.

Does target_values_read false prove no one used targets elsewhere?

No. It states what the licensed freezer accepted and read during that freeze. It does not establish what an upstream author, another process, or a downstream model workflow accessed.

Why must the column schema be values-free?

The interface is designed to decide eligibility from names, normalized types, declared roles, and policy only. Dataset rows, samples, statistics, labels, and target values are outside the accepted input contract.

Do exclusion patterns detect every proxy or leakage channel?

No. Patterns mechanically inspect declared names. They cannot detect semantic proxies, incorrect roles, target-derived upstream computation, hidden lineage, or leakage that is not represented in the supplied metadata.

What happens when selection count bounds are not satisfied?

The freeze is invalid rather than silently widening or narrowing the policy. A FROZEN_BEFORE_TARGET_READ manifest is not published for a contract that fails its declared minimum or maximum.

Should a buyer send a real schema before purchase?

No. Purchase intake asks only for the purchasing legal entity, billing contact, country, Python version, and approximate column count. Do not send datasets, target values, confidential feature names, source code, credentials, customer information, or regulated data.

What does the one-organization license permit?

It permits perpetual internal use of the delivered version by one purchasing legal entity, including internal installation, testing, business use, backups, and contractor use solely for that entity under protective terms. Redistribution, sublicensing, resale, publication, public hosting, and third-party service-bureau use are prohibited.

Next step

Evaluate the evidence, then request only non-sensitive intake.

The schemas and synthetic records help determine whether this contract fits the governance decision. They do not grant the software license or expose the private implementation.