Glossary¶
Use these terms to distinguish graph truth, software identity, runtime identity, and execution receipts. The distinctions matter because a workflow can satisfy one while failing another.
flowchart LR
rule["job contract"] --> adapter["execution adapter"]
adapter --> software["software identity"]
runtime["runtime identity"] --> software
software --> artifact["artifact"]
artifact --> provenance["execution receipt"]
flowchart LR
drift["identity changes"] --> invalidation{"invalidation policy"}
invalidation -->|observed| rebuild["rebuild or reject"]
invalidation -->|hidden| stale["stale artifact accepted"]
experiment["controlled drift experiment"] --> invalidation
Workflow and software ownership¶
Job contract
The rule-level declaration of files, scalar policy, capacity, runtime, implementation, and operational evidence for one kind of job.
Execution adapter
Code or command translation that connects Snakemake's named values to ordinary software.
A script: file, wrapper, or CLI invocation can serve as an adapter.
Workflow-adjacent script
An implementation owned by one workflow job, commonly under workflow/scripts/. It may
use the injected snakemake object and therefore is not automatically a reusable package.
Domain function
An ordinary function that receives domain values and returns domain values without reading workflow globals, config, or repository paths.
Package CLI
A command-line interface over package behavior. It separates ordinary software invocation from Snakemake binding, but its source identity may still be hidden from the workflow.
Wrapper
A versioned adapter around a tool invocation, environment, and file contract. A wrapper must be reviewed by immutable revision and interface, not trusted from its name.
Snakemake module
A reusable rule or workflow boundary imported through module and use rule. It reuses
workflow declarations, whereas a package reuses software behavior.
Identity and runtime¶
Software identity
The source revision, package artifact, source bundle, wrapper revision, lock, or image digest selected to represent the implementation that produced an artifact.
Runtime identity
The resolved interpreter, packages, libraries, image, platform, and execution context relevant to a job.
Compatibility range
A set of allowed versions, such as >=9.14,<9.24. It does not identify the exact version
used.
Environment declaration
Inputs to a package resolver, such as channels and python=3.11. It can select a family
without fixing an exact resolution.
Exact lock
A retained resolution containing precise versions and, where supported, builds and hashes for a target platform.
Container tag
A registry name that may refer to different image content over time unless registry policy guarantees immutability.
Container digest
A content-addressed image identity. It fixes image bytes but not host kernel, hardware, external services, or scientific validity.
Path injection
Making local source importable through a path such as PYTHONPATH=src. It identifies a
location, not an immutable built package.
Resolver context
The solver, version, channels or indexes, priority policy, and target platform that turn an environment declaration into installed packages.
Drift and rebuilds¶
Software drift
A material change to implementation or runtime while declared data and requested output remain stable.
Observable identity
A software or runtime identity that Snakemake or the surrounding release process can use to invalidate existing artifacts.
Hidden package source
Local package implementation invoked behind an unchanged shell command without source, package, lock, or image identity in rebuild policy.
Rerun trigger
A class of change Snakemake uses when deciding whether output is stale, such as input, params, code, or software environment changes.
Converged workflow
A state where an immediate invocation or dry-run plans no relevant work. Drift experiments need convergence so missing output does not explain a later rerun.
Incremental rebuild
An invocation that begins with existing artifacts. It can test whether a changed influence invalidates prior output.
Clean rebuild
Construction from absent generated outputs. It tests whether declared source and runtime can produce the artifact, but cannot by itself expose under-rebuild.
Under-rebuild
Failure to plan a job after a material influence changes, leaving stale output accepted.
Controlled drift experiment
A comparison that converges output, changes one software or runtime identity, inspects the plan, invokes the workflow, and checks artifact meaning.
Evidence and review¶
Provenance receipt
A record of source, runtime, config, platform, and time observed by an execution. It helps explain a run but does not cause invalidation or guarantee reconstruction.
Artifact identity
A checksum, semantic digest, schema-aware comparison, or other evidence used to distinguish artifact content or meaning.
Preservation evidence
Evidence that extraction or migration retained graph files, software behavior, runtime support, failures, and artifact meaning.
Negative evidence
Evidence that a deliberate hidden dependency, drift, or invalid runtime is rejected for the expected reason.
Result
Whether an audit experiment observed its expected behavior.
Decision
Whether the demonstrated design should be accepted or rejected. A defect-reproduction
model may report PASS / REJECT.
Finding
A specific named observation such as HIDDEN_PACKAGE_DRIFT_MISSES_RERUN. It prevents a
bare pass result from losing meaning.
Claim boundary
The explicit limit on what evidence establishes. For example, one declared source file proves the specimen's drift edge, not a whole package's transitive identity.
Confusion pairs¶
| Do not collapse | Distinction |
|---|---|
| explicit command / observable source | a CLI can be explicit while its implementation remains hidden from rebuild policy |
| version range / exact version | a range allows several resolutions |
| environment declaration / lock | one feeds a resolver; the other records a resolution |
| image tag / image digest | a tag can move; a digest identifies content |
| software identity / provenance | identity drives selection or invalidation; provenance records observation |
| unit test / workflow test | one checks software behavior; the other checks orchestration binding |
| clean rebuild / incremental drift | one proves construction; the other can expose stale acceptance |
PASS / ACCEPT |
experiment success does not approve a defect model |
| package / Snakemake module | one reuses software; the other reuses rules |
| runtime reproducibility / scientific validity | identical software does not prove the method answers the right question |
Retrieval check¶
Explain without returning to the definitions:
- why
python -m packagecan hide source drift - why
python=3.11is not an exact lock - why deleting output weakens an under-rebuild experiment
- why provenance cannot substitute for invalidation policy
- why
PASS / REJECTis the correct result for a reproduced stale-output design