--- 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: "b3329978-4645-5a11-b7ac-ff5982614495" --- # 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