From e9ce859d6f824c892fae7fd9d9401f8acde4bbb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Mon, 14 Sep 2026 08:34:44 -0700 Subject: [PATCH 1/3] Add canonical real-screen evidence manifest schema --- .../real-screen-evidence-manifest.schema.json | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 schema/real-screen-evidence-manifest.schema.json diff --git a/schema/real-screen-evidence-manifest.schema.json b/schema/real-screen-evidence-manifest.schema.json new file mode 100644 index 00000000..9f96a4f2 --- /dev/null +++ b/schema/real-screen-evidence-manifest.schema.json @@ -0,0 +1,107 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/aruintelligence/aml-core/schema/real-screen-evidence-manifest.schema.json", + "title": "ĀML Real-Screen Evidence Manifest", + "type": "object", + "additionalProperties": false, + "required": [ + "schema", + "experiment_id", + "source", + "capture", + "labels", + "aml", + "receipt", + "reproducibility", + "real_screen_evidence_eligible", + "claim_boundary" + ], + "properties": { + "schema": {"const": "aml-real-screen-evidence-manifest/1"}, + "experiment_id": {"type": "string", "minLength": 1}, + "source": { + "type": "object", + "additionalProperties": false, + "required": ["url"], + "properties": { + "url": {"type": "string", "format": "uri"}, + "captured_at": {"type": ["string", "null"], "format": "date-time"}, + "environment": {"type": ["string", "null"]} + } + }, + "capture": { + "type": "object", + "additionalProperties": false, + "required": ["method", "artifacts"], + "properties": { + "method": {"type": "string", "minLength": 1}, + "provenance": {"type": ["string", "null"]}, + "artifacts": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": ["path", "sha256"], + "properties": { + "path": {"type": "string", "minLength": 1}, + "media_type": {"type": ["string", "null"]}, + "sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"} + } + } + } + } + }, + "labels": { + "type": "object", + "additionalProperties": false, + "required": ["path", "sha256", "provenance"], + "properties": { + "path": {"type": "string", "minLength": 1}, + "sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"}, + "provenance": {"type": "string", "minLength": 1}, + "measurement_boundary": {"type": ["string", "null"]} + } + }, + "aml": { + "type": "object", + "additionalProperties": false, + "required": ["version_or_commit", "policy"], + "properties": { + "version_or_commit": {"type": "string", "minLength": 1}, + "policy": {"type": "string", "minLength": 1} + } + }, + "receipt": { + "type": "object", + "additionalProperties": false, + "required": ["path", "sha256"], + "properties": { + "path": {"type": "string", "minLength": 1}, + "sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"}, + "root": {"type": ["string", "null"]} + } + }, + "reproducibility": { + "type": "object", + "additionalProperties": false, + "required": ["rerun_performed", "byte_identical"], + "properties": { + "rerun_performed": {"type": "boolean"}, + "byte_identical": {"type": ["boolean", "null"]}, + "notes": {"type": ["string", "null"]} + } + }, + "after_state": { + "type": ["object", "null"], + "additionalProperties": false, + "properties": { + "captured_at": {"type": ["string", "null"], "format": "date-time"}, + "artifacts": {"type": "array"}, + "production_verified": {"type": "boolean"} + } + }, + "real_screen_evidence_eligible": {"type": "boolean"}, + "claim_boundary": {"type": "string", "minLength": 1}, + "legacy_migration_notes": {"type": ["string", "null"]} + } +} From a91781a968d2801c5e06b2e13e9507ebc587ce23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Mon, 14 Sep 2026 08:34:59 -0700 Subject: [PATCH 2/3] Document canonical real-screen evidence corpus contract --- evidence/real-screen/README.md | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 evidence/real-screen/README.md diff --git a/evidence/real-screen/README.md b/evidence/real-screen/README.md new file mode 100644 index 00000000..c67f3811 --- /dev/null +++ b/evidence/real-screen/README.md @@ -0,0 +1,58 @@ +# ĀML™ Real-Screen Evidence Corpus + +This directory contains project-authored real-screen experiments. The purpose of the corpus is reproducibility, not promotional proof. + +## Canonical manifest for new experiments + +New experiments should include a `manifest.json` conforming to: + +`schema/real-screen-evidence-manifest.schema.json` + +The manifest should identify, without guessing or backfilling unavailable facts: + +- experiment identifier; +- source URL and capture time when known; +- capture method and provenance; +- every preserved screen/source artifact and its SHA-256; +- a separate labels file, its SHA-256, and explicit label provenance; +- the exact ĀML version or commit and policy used; +- receipt path, SHA-256, and receipt root when present; +- whether a deterministic rerun was actually performed and whether it was byte-identical; +- after-state evidence when captured; +- an explicit `real_screen_evidence_eligible` boolean; +- a plain-language claim boundary. + +## Evidence boundary + +`attention_cost`, `restoration_value`, and similar review labels in this corpus are declared project/operator judgments unless a specific experiment establishes a different provenance. They are not objective measurements of cognition, attention, neurological state, psychology, wellbeing, morality, accessibility outcomes, or clinical outcomes. + +A source-code change, successful build, deployment instruction, or business result is not automatically a verified production after-state. Production verification requires its own capture and provenance. + +A project-authored experiment is not independent validation. Repository tests, GitHub traffic, clone counts, outreach, and internal reproduction do not establish external adoption. + +## Eligibility rule + +Set `real_screen_evidence_eligible: true` only when the experiment actually satisfies the project’s stated real-screen evidence requirements, including sufficient capture provenance, hashable artifacts, labels/provenance, exact policy/runtime identification, and reproducible decision evidence. + +When evidence is incomplete, preserve it and set the value to `false`. Do not manufacture missing timestamps, screenshots, hashes, browser metadata, or post-deployment observations. + +## Legacy experiment directories + +Experiments created before this manifest contract may remain in their historical shape. They should be treated as legacy/unmigrated unless and until their existing artifacts can be mapped into `manifest.json` without inventing missing information. + +Migration is additive: do not modify historical captured artifacts merely to satisfy the new schema, because doing so would invalidate the very hashes the corpus is intended to preserve. + +## Recommended directory shape + +```text +evidence/real-screen// + README.md + manifest.json + capture-metadata.json + labels.json + receipt.json + screen.html / screenshot.png / other captured artifacts + after/ # optional, only when actually captured +``` + +The manifest is the index. The underlying evidence files remain the evidence. From 8e2714f8f69f868b3896f009bb1d78d3d2154fe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Jacob=20Read=20IV=20=E2=80=94=20Creator=20of=20?= =?UTF-8?q?=C4=80ML=E2=84=A2?= Date: Mon, 14 Sep 2026 08:35:11 -0700 Subject: [PATCH 3/3] Test real-screen evidence provenance contract --- test/real-screen-evidence-contract.test.js | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 test/real-screen-evidence-contract.test.js diff --git a/test/real-screen-evidence-contract.test.js b/test/real-screen-evidence-contract.test.js new file mode 100644 index 00000000..6767850d --- /dev/null +++ b/test/real-screen-evidence-contract.test.js @@ -0,0 +1,24 @@ +import test from 'node:test'; +import assert from 'node:assert/strict'; +import fs from 'node:fs'; + +const schema = JSON.parse(fs.readFileSync('schema/real-screen-evidence-manifest.schema.json', 'utf8')); +const readme = fs.readFileSync('evidence/real-screen/README.md', 'utf8'); + +test('real-screen evidence manifest requires provenance, hashes, reproducibility and explicit eligibility', () => { + assert.equal(schema.properties.schema.const, 'aml-real-screen-evidence-manifest/1'); + for (const field of ['source', 'capture', 'labels', 'aml', 'receipt', 'reproducibility', 'real_screen_evidence_eligible', 'claim_boundary']) { + assert.ok(schema.required.includes(field), `manifest must require ${field}`); + } + assert.equal(schema.properties.real_screen_evidence_eligible.type, 'boolean'); + assert.equal(schema.properties.capture.properties.artifacts.items.properties.sha256.pattern, '^[a-f0-9]{64}$'); + assert.equal(schema.properties.labels.properties.sha256.pattern, '^[a-f0-9]{64}$'); + assert.equal(schema.properties.receipt.properties.sha256.pattern, '^[a-f0-9]{64}$'); +}); + +test('real-screen corpus documentation refuses invented historical evidence and objective cognition claims', () => { + assert.match(readme, /Do not manufacture missing timestamps, screenshots, hashes, browser metadata, or post-deployment observations/); + assert.match(readme, /not objective measurements of cognition/i); + assert.match(readme, /not independent validation/i); + assert.match(readme, /legacy\/unmigrated/i); +});