the-custodian/workplans/CUST-WP-0065-reclassify-repos-and-guidance-docs-to-the-new-sector-domain.md

181 lines
8.4 KiB
Markdown
Raw Normal View History

---
id: CUST-WP-0065
type: workplan
title: "Reclassify repos and guidance docs to the new sector domain scheme"
domain: infotech
repo: the-custodian
status: active
owner: codex
created: "2026-08-23"
updated: "2026-08-23"
quality_dor: DoR-Ok
quality_dor_at: "2026-08-23"
quality_dor_by: codex
quality_dor_note: "The live registry baseline, canonical vocabulary, source-of-truth boundary, owner dependencies, non-mechanical classification risk, and acceptance checks are explicit."
state_hub_workstream_id: "e2702474-b276-4e15-8337-41bfa344c89c"
---
# Reclassify repos and guidance docs to the new sector domain scheme
## Goal
Complete the transition from legacy project/estate labels to the canonical
sector-domain vocabulary without mechanically rewriting project identities or
silently assigning ambiguous repos. Populate the authoritative repository
projection, update Custodian guidance, and route repo-owned classification
changes to their owners.
**Promoted from intake** `019f81e6-2a31-7bee-b50a-8e9ca67267b7` — origin: "intake:019f81e6-2a31-7bee-b50a-8e9ca67267b7"
## Establish the live baseline and migration semantics
```task
id: CUST-WP-0065-T01
status: done
priority: high
state_hub_task_id: "d3f3cf0e-8c8a-5108-824d-de6deaa5ceff"
```
Count active repositories with complete and incomplete classification
projection, distinguish missing source files from missing ingestion, and define
how legacy project names relate to sector domains. Do not treat a project name
as a one-to-one market classification.
**Done (2026-08-23):** `docs/repo-classification-sector-migration-baseline-2026-08-23.md`
records the live 117-repository baseline: 38 active records have no projected
category, comprising 14 missing source files and 24 present-but-unprojected
files. It also fixes the migration rule: legacy names remain project/estate
identity; sector values describe intended users and require repo-owner review
when the answer is ambiguous.
## Publish canonical migration guidance
```task
id: CUST-WP-0065-T02
status: done
priority: medium
state_hub_task_id: "207ba031-517a-51c7-8c1e-bc82f312cdc1"
```
Review the baseline semantics into the active Repo Classification Standard and
agent-facing guidance. Replace only obsolete domain-field instructions; keep
historical project names and canon references intact. Add a validation example
that rejects legacy names in `repo_classification.domain` while allowing them
as project/topic identity.
**Done (2026-08-23):** the active Repo Classification Standard now explicitly
separates legacy project/estate identities from sector-domain metadata and
links the governed migration baseline. The contribution convention and all
four contribution templates now show current sector values. The classification
validator self-test proves `custodian` is rejected as a classification domain;
project names remain valid outside that field.
## Repair source records and authoritative projection
```task
id: CUST-WP-0065-T03
status: progress
priority: high
state_hub_task_id: "a1ad7cd3-5bfb-58ee-8f97-6c2e864b2fd9"
```
Route the 14 missing `.repo-classification.yaml` files to repository owners and
have Repo Manager/State Hub diagnose the 24 files that exist locally but remain
null in the registry. Classification judgments stay with repo owners; the
Custodian coordinates vocabulary and acceptance. Require schema validation and
normal registrar/reconcile paths rather than direct database edits.
**Started (2026-08-23):** Repo Manager received the 24-repo projection defect
and `config-atlas` sentinel proof in message `a5e685c9`; `binky-control`
received the first missing-source owner handoff in message `15d8f2df`. The
remaining missing-source repos stay in the baseline for governed owner routing.
**Implementation checkpoint (2026-08-23):** all 24 committed source files now
project through the State Hub API; the active-fleet projection improved from
79/117 to 103/117 classified repos. Twenty-one updated through the standard
registration command. Three server-error cases (`rail-knative`, `rapp-qonto`,
and `rapp-sbom-nexus`) were recovered with classification-only PATCHes, then
used to expose and verify a State Hub registration defect. State Hub revision
`57c3e08` now keeps classification updates separate from Git identity fields,
honors `domain_slug` changes, and normalizes multi-root histories to one
fingerprint; focused regression tests and all three live repros pass.
Every initially missing-source repo has an owner handoff with a suggested
starting point and an explicit requirement to review, validate, commit, and
report its revision: `agent-harness` (`b5718a78`), `binect-chrome`
(`cfe4baa6`), `binect-js` (`3a8358b7`), `binky-control` (`18dc8758`),
`clay-borg` (`98726021`), `direkt-vermittlung-de` (`f177403a`),
`polycode-sim` (`b3247d7b`), `railiance-telemetry` (`bf2e2fea`),
`ralph-workplan` (`186be39c`), `rein-aharness` (`c02a26b9`),
`rein-openweights` (`24d9e895`), `tele-mcp` (`76e3d0dc`),
`testdrive-jsui` (`cbefc9a0`), and `timeline-svg` (`d350d2c6`). T03 remains in
progress because those classification judgments must land in their owning
repositories; they are not safe Custodian-side mechanical edits.
**Owner delivery (2026-08-23):** `rein-aharness` published its reviewed
classification at revision `81f9279` (`tooling`, primary `agents`, secondary
`infotech`). The canonical validator passed without warnings, its reported file
digest matched the checkout, and the standard API registration completed with
zero invalid results. Thirteen owner classifications remain.
## Verify fleet convergence and close
```task
id: CUST-WP-0065-T04
status: progress
priority: medium
state_hub_task_id: "0c7c6f53-8a89-5102-87ca-e1991c227038"
```
Re-run the active-repository baseline. Close when every active repo either has
a valid projected classification or a governed exclusion, current agent
guidance uses sector domains, and no project identity was destroyed by the
migration. Record any genuine owner decision as a live residual before
finishing.
**Started (2026-08-23):** the post-repair fleet check reports 121 registered,
117 active, 103 classified, and 14 active null-category records. The null set
exactly matches the 14 governed owner handoffs; no present source file remains
unprojected. Project names and repository identities were not rewritten.
After the first owner delivery, the live projection is 104/117 classified with
13 active null-category records and again zero present-but-unprojected files.
**Repeatable convergence gate (2026-08-23):**
`tools/repo_classification_convergence.py` now derives those counts directly
from the State Hub registry, checks each active record's registered checkout,
validates every present source file against the canonical vocabulary, and
separates missing owner records, present-but-unprojected records, stale
projections without a source file, invalid sources, and duplicate active slugs.
`make classification-status` reports progress; `make classification-check`
fails closed until all active gaps are resolved.
Its first run exposed a stale active registry row hidden by the former
null-category-only check: retired `inter-hub` retained a projected category but
its registered checkout no longer exists. Existing Custodian retirement
evidence records Core Hub as the sole production surface since 2026-07-08, so
the supported State Hub archive endpoint corrected that row without altering
its historical classification. The active fleet is now 103/116 classified;
the same 13 owner-source gaps remain, with no projection or source-validity
failure.
## Indexing note
**Resolved (2026-08-23):** Repo Manager revisions `7a15f1d` and `7b9fdaa`
narrow the on-demand registrar's identity gate to the exact requested records,
retain full-repository refusal for empty-projection rebuilds, and return bounded
timeout evidence for slow legacy scans. Governed reconciliation correlation
`76d57c01-5e16-428d-ae15-01a718f4b1a5` assigned and verified all four task
UUIDs plus `CUST-IN-0014`, then committed and pushed the writeback as Custodian
revision `d792318`. Historical identity findings remain visible for cleanup;
none was rewritten or treated as the new records.
## Acceptance
- [x] Live missing-classification baseline is reproducible and split by cause
- [x] Legacy project identity is distinguished from sector-domain metadata
- [x] Canonical and agent-facing migration guidance is current
- [ ] Missing source classifications are owner-reviewed and validated
- [x] Present source classifications project into State Hub
- [ ] Active fleet has zero unexplained null category projections