finish CUST-WP-0068: recover, disposition, discard the cache
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s

Close T02–T06 from live hub evidence, disposition clay-borg product
records as not workplans, lift the task-reset restriction in state-hub,
dump and remove the retired local Postgres instance, and record ADR-010's
work-record divergence as closed.
This commit is contained in:
codex 2026-08-28 21:06:25 +02:00
parent 362e32aa04
commit 6cd450fa55
3 changed files with 142 additions and 8 deletions

View file

@ -0,0 +1,76 @@
# Cache-only work-record disposition — 2026-08-28
Coordination: `CUST-WP-0068`. Direct comparison of the retired local hub
(`infra-postgres-1`, 1075 workplans / 6073 tasks) against central
(1167 workplans). Slug equality is the wrong test after identifier
requalification; the same work now lives on central under a derived UUID
and a canonical slug.
## T02 — bootstrap-eligible repositories
All six named repositories now have file-backed workplans on central:
| Repository | Files (top-level) | Hub workplans |
|---|---|---|
| `rapp-openbao` | 2 | 2 |
| `policy-nexus` | 3 | 3 |
| `whitehat-security` | 5 | 5 |
| `ops-mason` | 5 | 5 |
| `ground-game` | 10 | 9 (+ ad-hoc bound as `ground-wp-adhoc-2026-08-08`) |
| `zone-engine` | 2 | 2 |
The original blockers (missing task UUIDs, partial projection, dirty
worktrees) are gone. No owner action remains.
## T03 — non-conforming identifiers
Renamed at source and present on central:
| Old id (cache slug) | Live id | Hub slug |
|---|---|---|
| `GLAS-0001` | `GLAS-WP-0001` | `glas-wp-0001` |
| `REIN-A-0001``0004` | `REINAH-WP-0001``0004` | `reinah-wp-0001``0004` |
| `REIN-OW-0001` | `REINOW-WP-0001` | `reinow-wp-0001` |
`RAIL-BS-ADHOC-2026-07-27` has no live file. It is unqualified historic
ad-hoc, grandfathered by `CUST-WP-0066`, and is not worth carrying onto
central as a new record. Cache copy retained only until the cache is
discarded.
## T04 — clay-borg
Fifty files under `clay-borg/workplans/` use `kind: product|meta|mixed`
and `status: done`. They are not workplans. Fleet tooling correctly
ignores them (`type: workplan` is required). They are clay-borg's own
product records, not Custodian work-record recovery.
Disposition: **do not rewrite, do not project as workplans.** The files
remain the owner's source. The 50 `cb-wp-*` cache rows are not unique
fleet work.
## T05 / T06
Central held 669 workplans when this workplan opened and holds 1167
now. The 176 non-empty-projection records were recovered by the
registrar's absent-from-projection path plus the identifier re-key
already recorded in this workplan's 2026-08-25 outcome. T06's ruling
was that re-key, not a second decision. Remainder is T03/T04 above.
## Cache-only residue (not load-bearing)
Of 190 cache slugs absent from central:
- 50 `cb-wp-*` — T04, not workplans
- ~17 `railiance-wp-*` — prefix migration, retired on central (T09)
- requalified ad-hocs and renamed identifiers — live under new slugs
- title slugs and pre-ADR-007 labels of records recovered by UUID re-key
No open work record exists only in the cache.
## T09
`reset_repository_projection` now syncs identified tasks of existing
workplans. Deploy of that `state-hub` change is required before the 21
closed identifier-mismatch task rows are retired by re-derivation. They
are all already closed (0 open), so they are not a live surface.
`record_id`-less rows stay out of this pass, as scoped.