Migration drill and mainline takeover (WS-050)

Ver fuente en GitHub

Intent

Prove backup → preview → migrate → restore on an independent realistic fixture first, then run this project's mainline takeover along that proven path. Keep a single fact source and existing identities.

Owner-only Team PG surfaces (awr-server access backup-*, history-*) remain the operational tools. awr_core::migration_takeover is the fixture-first oracle that encodes acceptance rules without inventing a parallel migration stack.

Independent fixture

Path: tests/fixtures/workstreams/migration-takeover/

The fixture covers:

  • Goal lines Team / EVO / DEC / AUTO with person owners
  • Actors (persons and agents), sessions, claims, reviews
  • Provable and unprovable person→agent delegations
  • Incomplete work, an active session, and historical release evidence

Classification rules

HistoryResult
Person actorIdentity retained (person_retained)
Agent with provable delegation, non-sensitive rolepreserved under the person binding
Agent with provable delegation declared as owner / independent approverpending_confirmation — never auto-promoted
Agent without provable person-delegationpending_confirmation
Unknown actor idpending_confirmation

Agents are never auto-promoted to owner or independent approver.

Drill

backup(fixture) → preview(backup) → migrate(backup, preview) → restore(backup, result)

Project takeover dry-run is refused until fixture_drill_ok is true for a successful independent drill digest.

Receipts

Operator receipts for this workstream are written under .local/awr-workstream-implementation-20260921/migration/ (local only; not published in the public tree). Run:

python3 scripts/team-deploy/migration-takeover-drill.py