* test(#1956): failing-first contract for cross-artifact fact-drift pass
* feat(#1956): flag cross-artifact fact drift in the plan drift guard
* fix(#1956): correct config-key assertion and bidirectional lifecycle-lag exemption
* docs(#1956): document the cross-artifact axis in the architecture reference
* feat(#1956): decide the phase-status drift axis deterministically
* fix(#1956): scope the progress-table lookup, abstain without a position section, rank deferred
* docs(#1956): backfill changeset pr number
---------
Co-authored-by: sim <sim@local>