# RMGR-WP-0002 completion evidence **Date:** 2026-08-09 **Stage:** ArchitectureBlueprint Stage B (dual-run) ## Delivered | Task | Result | | --- | --- | | T01 flags + meter | `src/repo_manager/dual_run.py`, `docs/dual-run.md` | | T02 hardened command | idempotency, expected_head_sha, UUID match, optional push | | T03 SH facade | `state-hub/api/services/repo_manager_dual_run.py` + PATCH `/tasks` hook | | T04 reconcile proxy | `fix_repo` calls `rmgr reconcile` when `RM_RECONCILE` + pilot | | T05 pilot | Fixture + SH facade call → `applied` + git_sha; meter lines | | T06 package | this file + `wp0002-pilot.json` + `mutation-meter-pilot.jsonl` | ## Operator enable (pilot) ```bash export RM_WRITEBACK=1 export RM_RECONCILE=1 export RM_PILOT_REPOS=repo-manager # ensure SH can import/run rmgr: export REPO_MANAGER_SRC=$HOME/repo-manager/src # optional; adapter defaults to ~/repo-manager/src ``` Restart State Hub API process so env is picked up for PATCH dual-run. ## Rollback ```bash unset RM_WRITEBACK RM_RECONCILE RM_PILOT_REPOS # restart SH API ``` ## Tests ```bash cd ~/repo-manager && pytest -q # includes test_dual_run.py ``` ## STATE-WP-0079 handoff Expand `RM_PILOT_REPOS` fleet-wide after meter shows RM writebacks healthy. Meter path: `~/.repo-manager/mutation-meter.jsonl` (or `RM_METER_PATH`). Strangler exit: zero `source=state-hub` checkout mutations for pilot set under load.