DisclosureOS · v2 Beta documentation
Physical samples and custody
Connect collected specimens to the records describing their custody.
A specimen is a physical object, distinct from a file or measurement. This workflow checks selected collected-specimen declarations, their supplied handoff sequence and the exact bytes of cited records.
Explore the physical-sample structure, or run the synthetic examples.
Describe the selection
| Field | Meaning |
|---|---|
id | Local specimen declaration ID; not proof of physical identity. |
lineage | Collected specimen, derived sample, mixture or unknown. Only collected specimens are within this profile's scope. |
label | Known recorded label, or an explicit unknown reason. |
collection | Declared collector and source-record reference, or unknown context. |
custody | Documented ordered handoffs, or explicitly unknown custody. |
currentCustodian | Declared holder and source-record reference, or unknown context. |
catalogIdentifier | Optional existing external identifier; do not invent one to satisfy a recommendation. |
Derived samples and mixtures are representable declarations but fail this selected profile's applicability. Do not relabel processed material to obtain a pass. Specimen preparation, lineage and laboratory results are covered by newer source-candidate contracts, separate from this published profile.
Run the published evaluator
Run this from the extracted example folder, after installing its pinned dependency:
import { readFileSync } from "node:fs";
import { evaluatePhysicalSamples } from "@disclosureos/schema/experimental/v2";
const read = (name: string) => readFileSync(`physical-samples/${name}`);
const result = await evaluatePhysicalSamples(
JSON.parse(read("history.json").toString("utf8")),
JSON.parse(read("selection.json").toString("utf8")),
{ assets: new Map([["source:report", new Uint8Array(read("custody.txt"))]]) },
);
console.log(result.samples, result.checks, result.custodyAuthenticity);The JSON Schema export is @disclosureos/schema/experimental/v2/physical-samples/schema, with identifier urn:disclosureos:experimental:physical-sample-selection:0.1.0.
What custody continuity means here
Each handoff declares an ID, from, to and recordRef. The first sender must match the collector, subsequent senders must match the preceding recipient, and the final recipient must match the current custodian. Matching uses exact strings. Self-transfers fail; a return through connected handoffs is permitted.
A documented empty transfer list declares no handoffs and can pass when collector and current holder agree. It must not replace missing history: use unknown custody for that. With incomplete endpoints, a conflict-free sequence remains unchecked.
No transfer timestamps are modeled here. Ordered declarations do not establish chronology, actual possession or completeness. Collection time and place must not be inferred from observation metadata.
Check the records, preserve the limits
Each cited record must resolve to a source in the history and declare SHA-256. Supply the nonempty local bytes under the source reference. Reusing a record does not create independent corroboration. The evaluator neither fetches URLs nor reads the record to determine whether it truly describes the named specimen or holder.
Missing required declarations, conflicting handoffs and mismatching bytes fail. Unavailable bytes leave an otherwise eligible profile unchecked. The result preserves per-sample requirements, reasons, blocked prerequisites and next actions.
external: passed means cited record bytes match their declared digests. Specimen identity, collection/custody authenticity, custody chronology/completeness, record contents, contamination control, composition, origin, redistribution rights, assessment support and scientific eligibility remain unchecked.
Material descriptions and laboratory results
The source-candidate reference adds material and trace categories, collection and storage descriptions, specimen preparation, laboratory analyses, results and attributed reviews. The Meridian example demonstrates portions with different result scopes. Use its pinned source instructions to reproduce those checks; installing the npm beta alone does not supply these newer contracts.
Neither workflow is a forensic certification. Cited records and access labels do not create an automatic public projection or establish a specimen's origin.
Field reference
Browse the sample-provenance fields for the complete nested structure.
The material and laboratory reference covers newer source-candidate contracts. It is explicitly separate from the installed npm beta. See the Meridian implementation for a connected example using that candidate.