# 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 Read active repository records from `GET /repos/`, select records whose `status` is `active` and whose `category` is null, then test the registered `local_path` for `.repo-classification.yaml`. The observed counts are: ```text 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.