From 7adfe1369f9947740cb91f0037ebf0e7268c1d51 Mon Sep 17 00:00:00 2001 From: tegwick Date: Thu, 20 Aug 2026 09:10:55 +0200 Subject: [PATCH] docs(STATE-WP-0079): A2a executed, dual-run live for repo-manager pilot First live cutover slice. Installed the shipped pilot config (writeback and reconcile on, writeback_push off, scoped to repo-manager), reloaded the API via its own --reload watcher rather than restarting the operator's process, and confirmed reconcile routed through rmgr with a new mutation meter entry (8 workplans, 53 tasks, 61 records). Divergence check clean: the one-workplan delta against the hub is RMGR-WP-0008, unregistered because this instance is not the identifier registrar, not a dual-run divergence. Slice sits at dual, not owner -- the hub stays authoritative until a full sweep cycle shows zero divergence. Co-Authored-By: Claude Opus 5 --- .../STATE-WP-0079-retirement-strangler.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/workplans/STATE-WP-0079-retirement-strangler.md b/workplans/STATE-WP-0079-retirement-strangler.md index a2352ff..222a068 100644 --- a/workplans/STATE-WP-0079-retirement-strangler.md +++ b/workplans/STATE-WP-0079-retirement-strangler.md @@ -160,6 +160,30 @@ it changes how live task writes flow. Net: of 425 inventory items, roughly **6 can move today**. The retirement is gated almost entirely on owner-side capability in `repo-manager` and `hub-core`. +**A2a executed (2026-08-20) — first live cutover slice.** Dual-run is on for the +pilot repo: + +- `~/.repo-manager/dual-run.yaml` installed from + `repo-manager/config/dual-run.pilot.example.yaml` — `writeback: true`, + `reconcile: true`, `writeback_push: false`, `pilot_repos: [repo-manager]` +- State Hub API reloaded via its own `--reload` watcher (no service restart, the + operator's foreground `make api` was left alone) +- `statehub fix-consistency --repo repo-manager` reported + `RM dual-run reconcile ok: index=/home/worsch/repo-manager/.repo-manager/index.json` +- mutation meter grew 23 → 24 with + `{"kind": "reconcile", "repo_slug": "repo-manager", "workplan_count": 8, "task_count": 53, "record_count": 61}` + +**Divergence check:** rmgr's index holds 8 workplans; the hub has +`rmgr-wp-0001`–`0007` registered. The single-item delta is `RMGR-WP-0008`, whose +C-06 registration was skipped because this instance is not the identifier +registrar (ADR-007 interim). That is a known registrar limitation, **not** +dual-run divergence — rmgr correctly indexed the file that exists on disk. + +Slice state: **A2a is `dual`, not `owner`** — the hub remains authoritative and +rmgr executes checkout mutation alongside it. Promotion to `owner` needs a full +consistency-sweep cycle at `dual` with zero divergence, per this plan's adapter +rules. Rollback is `rm ~/.repo-manager/dual-run.yaml`. + **Inherited (2026-08-19) from `STATE-WP-0080-T04`:** this slice now also owns deletion of the templating path in `statehub_register.py` — `INTENT.md` generation, the `AGENTS.md` / `CLAUDE.md` / `.custodian-brief.md` templates,