the-custodian/docs/repo-classification-sector-migration-baseline-2026-08-23.md
codex ff334f1a40
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Python Tests / pytest (push) Successful in 21s
feat: automate classification convergence
2026-08-23 13:05:47 +02:00

5.5 KiB

Repo classification sector migration baseline — 2026-08-23

Result

The live State Hub registry contains 121 repositories, of which 117 are active. Thirty-eight active records have a domain association but no projected category; they are not complete Repo Classification Standard projections.

The gap has two distinct causes:

  • 14 local checkouts do not contain .repo-classification.yaml;
  • 24 local checkouts contain the file, but the live registry still projects a null category.

Those paths require different fixes. The first requires a repo-owner classification decision. The second requires validation and normal Repo Manager/State Hub reconciliation; it must not be repaired by directly editing registry rows.

Migration rule

The older labels custodian, railiance, markitect, coulomb_social, personhood, foerster_capabilities, and netkingdom identify projects, estates, or bodies of canon. They are not sector-domain aliases.

Keep those names in project titles, topic identity, architecture, provenance, and historical records. For repo_classification.domain, apply the current standard's user/customer question and select one allowed sector. Useful review seeds are:

Legacy identity Likely sector starting point Review constraint
Custodian infotech Add agents only where agent infrastructure is materially served.
Railiance infotech Use industrials only for repos whose intended users are actually in rail/industrial operations.
Markitect infotech Use agents as primary only for agent-native products, not merely AI-assisted tooling.
Coulomb.social communication Add other sectors only when a concrete product audience warrants them.
Personhood agents or government Rights/governance scope is ambiguous and requires owner review.
Foerster Capabilities agents Preserve the named research project separately from market metadata.
NetKingdom infotech Identity, tenancy, and access control are platform capabilities, not a market alias.

This table is a triage aid, not an automatic rewrite map.

Missing source files (14)

agent-harness, binect-chrome, binect-js, binky-control, clay-borg, direkt-vermittlung-de, polycode-sim, railiance-telemetry, ralph-workplan, rein-aharness, rein-openweights, tele-mcp, testdrive-jsui, and timeline-svg.

Source file present but registry category null (24)

config-atlas, disaster-control, glas-harness, ground-game, kings-guard, ops-mason, policy-nexus, prj-canon-federation, prj-forgejo-org-refactor, prj-state-hub-retirement, qonto-assistant, rail-knative, rapp-openbao, rapp-policy-nexus, rapp-postgres, rapp-qonto, rapp-sbom-nexus, resource-control, risk-nexus, sand-boxer, secrets-engine, tenant-engine, test-driver, and zone-engine.

Reproduction

Run make classification-status. The command reads active repository records from GET /repos/, compares every registered local_path with its .repo-classification.yaml, validates present source files against the canon, and reports owner-source gaps separately from projection gaps. Use make classification-check as the eventual fail-closed convergence gate. The initial observed counts were:

registered: 121
active: 117
active with null category: 38
missing source file: 14
source file present but unprojected: 24

Acceptance is zero unexplained null category projections among active repos. A governed archived/decommissioned record or an explicit classification exclusion is not unexplained.

Implementation checkpoint

The same query after API reconciliation reports:

registered: 121
active: 117
active with projected classification: 103
active with null category: 14
missing source file: 14
source file present but unprojected: 0

All 24 present source files were validated and projected through State Hub's REST API. Twenty-one completed through the existing registration utility. rail-knative, rapp-qonto, and rapp-sbom-nexus initially exposed a utility defect because classification PATCHes also sent Git identity metadata; their multi-root fingerprints exceeded the single-SHA database field. State Hub revision 57c3e08 separates those concerns, supports primary-domain updates, and uses the same single-root fingerprint projection as token attribution. The three live repros subsequently completed without invalid results.

The initial remaining null set exactly equalled the 14 missing-source repositories above. Each owner received a State Hub handoff requiring human review, local validation, a committed .repo-classification.yaml, and revision evidence. rein-aharness subsequently delivered revision 81f9279; validation, digest verification, and API projection passed. The current checkpoint is 104/117 classified, 13 missing-source/null-category repos, and zero present source files left unprojected. This is governed pending work rather than an unexplained projection failure.

The first automated convergence run additionally found inter-hub still marked active with a projected classification even though its registered checkout had been removed. Custodian retirement evidence already records Core Hub as the sole production surface from 2026-07-08. The supported State Hub archive transition corrected the stale row while preserving its history. The current active denominator is therefore 116: 103 classified, 13 missing-source/null-category, zero present-but-unprojected, and zero invalid source records.