Architecture and contracts
==========================

PipeWhy separates source identity, typed normalization, versioned fingerprints,
observations, immutable snapshots and declared lineage. Missing or incompatible
observations remain explicit; fingerprints target accidental drift detection.

Versioned format and behavior contracts
---------------------------------------

* :download:`Array Contract <../../blueprint/ARRAY_CONTRACT.txt>`
* :download:`Cli Contract <../../blueprint/CLI_CONTRACT.txt>`
* :download:`Comparison Contract <../../blueprint/COMPARISON_CONTRACT.txt>`
* :download:`Cpu Contract <../../blueprint/CPU_CONTRACT.txt>`
* :download:`Cuda Contract <../../blueprint/CUDA_CONTRACT.txt>`
* :download:`Enron Contract <../../blueprint/ENRON_CONTRACT.txt>`
* :download:`Execution Contract <../../blueprint/EXECUTION_CONTRACT.txt>`
* :download:`Fingerprint Contract <../../blueprint/FINGERPRINT_CONTRACT.txt>`
* :download:`Lineage Contract <../../blueprint/LINEAGE_CONTRACT.txt>`
* :download:`Local Adapter Contract <../../blueprint/LOCAL_ADAPTER_CONTRACT.txt>`
* :download:`Normalization Contract <../../blueprint/NORMALIZATION_CONTRACT.txt>`
* :download:`Query Contract <../../blueprint/QUERY_CONTRACT.txt>`
* :download:`Snapshot Contract <../../blueprint/SNAPSHOT_CONTRACT.txt>`

Development and validation
--------------------------

See :doc:`contributing`, :doc:`packaging` and :doc:`benchmarks` for supported
environments, quality checks and measurement procedures. Historical qualification
is limited to its measured source, dependencies and hardware. Passing source tests
does not establish real-device qualification for every deployment.
