From e205e37d31de0851d0a9bc39c4e4652366de1356 Mon Sep 17 00:00:00 2001 From: codex Date: Tue, 25 Aug 2026 14:36:19 +0200 Subject: [PATCH] =?UTF-8?q?feat(workplan):=20record=20CUST-WP-0067-T10=20p?= =?UTF-8?q?rogress=20=E2=80=94=20129=20of=20426=20workplans=20recovered?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Central 670 -> 799. All 403 cache-only workplans with a backing path have that file on disk, confirming ADR-010's finding that nothing was lost. Only 57 carry deterministic identifiers, so C-06 refuses most as stale references. --bootstrap-empty-projection recovers them with identifiers preserved, verified on one repository before rollout. Classifies the 297 remaining and lists per-repository blockers from actual error messages. Corrects this task's own earlier reading of bootstrap_source_invalid as a single cause: it covers at least two. Recommends promotion to its own workplan — the mechanical share is done; the rest needs content fixes, an identifier decision overlapping RMGR-WP-0005, and owner judgement across ~40 repositories. Co-Authored-By: Claude Opus 5 --- ...WP-0067-hub-authority-target-resolution.md | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/workplans/CUST-WP-0067-hub-authority-target-resolution.md b/workplans/CUST-WP-0067-hub-authority-target-resolution.md index 4adbf8d..3018c46 100644 --- a/workplans/CUST-WP-0067-hub-authority-target-resolution.md +++ b/workplans/CUST-WP-0067-hub-authority-target-resolution.md @@ -678,3 +678,56 @@ repository-record subset and touches every repo with work records. Acceptance: every cache-only workplan and task either exists on central or carries a written disposition; the cache database can then be discarded, and `ADR-010`'s divergence is closed rather than merely described. + +**Progress (2026-08-25): 129 of 426 recovered.** Central went from 670 to 799 +workplans. Measured precisely rather than estimated — the divergence is 426 +workplans, not the ~400 first reported, and **all 403 with a backing path have +that file present on disk**, confirming `ADR-010`'s finding that nothing was +lost. + +**Mechanism.** Only 57 of 403 carry deterministic UUIDv5 identifiers; the rest +are pre-`ADR-007` v4. C-06 refuses non-derived identifiers as +`C-03 FAIL — stale reference`, so the ordinary path cannot re-derive most of +them. Rewriting 345 identifiers fleet-wide was rejected: it overlaps +`RMGR-WP-0005`'s ownership of identifier migration and was unnecessary. +`--bootstrap-empty-projection` registers a repository's workplans **preserving +their existing identifiers**, verified on one repository first — workplan and +all four tasks landed with original UUIDs and statuses, no file rewritten and +no commit. + +**A self-inflicted failure worth recording.** The registrar generates +`WORK-RECORDS.md`, which dirties the worktree and then fails its own git +precondition; the retry reports `git_precondition_failed` instead. Several runs +had in fact registered successfully before failing on the file they created. +Committing that generated index and retrying clears it. + +**The 297 remaining, classified:** + +| Count | Class | What it needs | +|---|---|---| +| 176 | non-empty projection | C-06 for the deterministic subset; the rest await the identifier-migration decision | +| 58 | file not shaped as a workplan | content fix — 50 are `clay-borg`, using `kind: product` instead of `type: workplan` and `status: done`, which is not a workplan status | +| 24 | bootstrap-eligible | blocked on the per-repository causes below | +| 23 | orphan, no backing file | written disposition, per the orphan rules above | +| 16 | non-conforming record id | identifier fix with the repo owner | + +**Per-repository blockers**, from actual error messages: + +| Repository | Cause | +|---|---| +| `clay-borg` | no file parses as a workplan | +| `rapp-openbao`, `policy-nexus`, `whitehat-security` | a task has no authoritative projection UUID; task ids must be minted first | +| `glas-harness`, `rein-aharness`, `rein-openweights` | record ids rejected by the canon registry (e.g. `GLAS-0001`, not `PREFIX-WP-NNNN`) | +| `ops-mason` | projection no longer empty — already partly registered | +| `ground-game` | genuine uncommitted work; left untouched | +| `zone-engine` | untracked `DECISIONS.md`; owner content | + +A correction to this task's own analysis: `bootstrap_source_invalid` was first +read as one cause because only the error *code* was captured. It covers at +least two unrelated causes, separated only after capturing the messages. + +**Recommendation: promote to its own workplan.** What remains is not one job. +It is a content-conformance pass, an identifier decision overlapping +`RMGR-WP-0005`, an orphan disposition, and a per-repository unblocking pass — +across ~40 repositories, several needing owner judgement. The mechanical share +is done.