docs(STATE-WP-0079): A2 readiness detail and dual-run state
Applied the A3 readiness check one level down. The State Hub adapter exposes exactly three operations: rm_update_task_status, rm_reconcile, rm_scaffold. No adapter for workplan CRUD, intake, decision, dependency or human-flag records, and no repo-manager parser for them either. A2 splits into A2a (task status + reconcile, ~6 items, receivable) and A2b-A2e (~32 items, not receivable). A2a is the only slice in the plan executable today -- roughly 6 of 425 inventory items. Also records that dual-run is currently off entirely: no config file, writeback and reconcile false, no pilot repos. The 23 metered mutations are RMGR-WP-0002/0003 pilot residue. A2a's next step is operational, not code. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
5f747fbc1e
commit
a824fd5dfe
2 changed files with 67 additions and 6 deletions
|
|
@ -140,6 +140,51 @@ whole slice at once.
|
|||
the job portion is `activity-core` (Wave C1). Cut the repo-manager portion first
|
||||
and leave the job dual-running.
|
||||
|
||||
### A2 readiness detail (2026-08-20)
|
||||
|
||||
Same check as for A3, applied one level down. The State Hub adapter
|
||||
(`api/services/repo_manager_dual_run.py`) exposes exactly three operations:
|
||||
|
||||
| Adapter function | Routes to | Covers |
|
||||
| --- | --- | --- |
|
||||
| `rm_update_task_status` | `rmgr task-status` | task status writes |
|
||||
| `rm_reconcile` | `rmgr reconcile` | work-record index rebuild |
|
||||
| `rm_scaffold` | `rmgr scaffold` | repo scaffolding (A1 `repo-onboarding`, already cut over) |
|
||||
|
||||
There is no adapter for workplan create/update/delete, intake, decision,
|
||||
dependency, or human-flag records — and no parser for them on the repo-manager
|
||||
side either (`parse/` is `workplan.py` only). So A2 splits:
|
||||
|
||||
| Sub-slice | Items | Receivable |
|
||||
| --- | --- | --- |
|
||||
| **A2a** task status + reconcile | ~6 (`update_task_status`, `bulk_update_task_statuses`, `PATCH /tasks/{id}`, `POST /tasks/bulk-status-sync`, index refresh job, `table:tasks`) | **Yes — adapter exists and was proven by RMGR-WP-0002/0003** |
|
||||
| A2b workplan CRUD | ~9 routes + `table:workplans` | No adapter; repo-manager parses workplans but exposes no write path |
|
||||
| A2c intake | 9 | No parser, no adapter |
|
||||
| A2d decision | 8 | No parser, no adapter |
|
||||
| A2e dependencies + human-flag | ~6 | No parser, no adapter |
|
||||
|
||||
**A2a is the only slice in the entire plan that is executable today**, and it is
|
||||
roughly 6 items, not 59.
|
||||
|
||||
### Dual-run is currently off
|
||||
|
||||
`rmgr dual-run-status` on 2026-08-20:
|
||||
|
||||
```
|
||||
config_exists: false writeback: false reconcile: false pilot_repos: null
|
||||
meter: {state-hub: 15, repo-manager: 8, total: 23}
|
||||
```
|
||||
|
||||
The 23 metered mutations are the RMGR-WP-0002/0003 pilot runs. Nothing is
|
||||
dual-running now — the adapter is proven but switched off, and there is no
|
||||
`~/.repo-manager/dual-run.yaml`.
|
||||
|
||||
**So the concrete next executable step is operational, not code:** create the
|
||||
dual-run config and enable `RM_WRITEBACK` + `RM_RECONCILE` for a pilot repo,
|
||||
then watch the mutation meter for divergence. That is A2a moving from `off` to
|
||||
`dual`. It needs an operator decision because it changes how live task writes
|
||||
flow; it is reversible by clearing the flags.
|
||||
|
||||
### A3 · Registers — 49 items
|
||||
`sbom-inventory` (10) · `repo-goals` (9) · `upstream-contributions` (9) ·
|
||||
`register-technical-debt` (9) · `register-extension-points` (6) · `register-entries` (6)
|
||||
|
|
@ -378,9 +423,10 @@ discovered live at cutover.
|
|||
surface (A4), and the topic-spine contract (A5). Until that exists, 79 of
|
||||
Wave A's 165 items have nowhere to go. This is now the critical path for the
|
||||
whole retirement, ahead of anything State Hub can do to itself.
|
||||
3. Cut **A2** (work records, 59 items) as the first real slice — it is the only
|
||||
Wave A slice with a proven adapter. Split `RM_SLICE_WORKRECORDS` by record
|
||||
kind to manage the blast radius rather than cutting it whole.
|
||||
3. Cut **A2a** (task status + reconcile, ~6 items) — the only slice in the plan
|
||||
executable today. First step is operational: create `~/.repo-manager/dual-run.yaml`
|
||||
and enable writeback/reconcile for one pilot repo, then watch the mutation
|
||||
meter. A2b–A2e need repo-manager parsers and adapters that do not exist.
|
||||
4. Do not open Wave B until HUB-WP-0004 reaches `ready`; 125 items sit behind it.
|
||||
5. Do not build register, UI, or topic capability in State Hub to unblock
|
||||
items 2–3 — `policies/retirement-freeze.md` makes that inadmissible.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue