Release Lineage Model¶
Status: active Last updated: 2026-05-29
This document defines the lineage artifact generated for release decisions.
1. Goal¶
Provide a single auditable graph that links:
- Workflow source
- Job outcomes
- Produced artifacts
- Final release decision
2. Artifact Outputs¶
Generated in the final release gate job:
artifacts/release_lineage.jsonartifacts/release_lineage.mdartifacts/release_lineage_contract_report.json
Producer:
tooling/generate_release_lineage.pytooling/verify_release_lineage_contract.py
3. Contract¶
Top-level contract id:
release_lineage_v1- schema version
1.1inprovenance.schema_version
Top-level fields:
generated_atcontractstatusprovenancesummarylineage.nodes[]lineage.edges[]completeness_checks[]
provenance includes:
schema_versiongeneratorsource_workflowartifacts_dirrequired_jobs.totalrequired_jobs.present_in_needsrequired_jobs.results
4. Node Types¶
Current node categories:
source(workflow origin)job(GitHub Actions jobs)artifact(JSON evidence files)decision(final release decision)
5. Edge Semantics¶
Current edge relations:
triggers(source -> job)produces(job -> artifact)drives(artifact -> decision)
6. Completeness Checks¶
The lineage generator validates minimum completeness:
- required jobs present in
needs - required artifacts present in downloaded outputs
- required lineage edges present
- node ids are unique
- required node types are present
- all edge endpoints reference existing nodes
- release gate contract and decision/status are well-formed
If --fail-on-incomplete is enabled, missing lineage elements fail the job.
7. Operational Use¶
Use lineage artifact for:
- Release audit trail
- Post-incident root-cause context
- Evidence packaging in release notes
8. Related¶
docs/PRODUCTION_READINESS.mddocs/PUBLIC_RELEASE_USE_CASES.mddocs/PRODUCT_100_EXECUTION_PLAN.mdtooling/generate_release_lineage.py