diff --git a/config/repository-label-taxonomy.json b/config/repository-label-taxonomy.json index a1831221ed..0dd7ac6ee4 100644 --- a/config/repository-label-taxonomy.json +++ b/config/repository-label-taxonomy.json @@ -11,6 +11,21 @@ "issue": 1582, "type": "feature" }, + { + "repository": ".github", + "issue": 1622, + "type": "feature" + }, + { + "repository": ".github", + "issue": 1625, + "type": "bug" + }, + { + "repository": ".github", + "issue": 1634, + "type": "documentation" + }, { "repository": "CalendarWeave", "issue": 1, @@ -100,6 +115,91 @@ "repository": "noema", "issue": 530, "type": "feature" + }, + { + "repository": "bandscope", + "issue": 1125, + "type": "documentation" + }, + { + "repository": "saju-caldav", + "issue": 44, + "type": "documentation" + }, + { + "repository": "OriginWeave", + "issue": 274, + "type": "documentation" + }, + { + "repository": "semantic-data-portal", + "issue": 90, + "type": "documentation" + }, + { + "repository": "accounting-information-platform", + "issue": 45, + "type": "documentation" + }, + { + "repository": "clearfolio", + "issue": 538, + "type": "documentation" + }, + { + "repository": "pg-erd-cloud", + "issue": 1046, + "type": "documentation" + }, + { + "repository": "DiagramWeave", + "issue": 34, + "type": "documentation" + }, + { + "repository": "keyverse", + "issue": 127, + "type": "documentation" + }, + { + "repository": "mhtml-etl-gateway", + "issue": 56, + "type": "documentation" + }, + { + "repository": "j-planner", + "issue": 2, + "type": "documentation" + }, + { + "repository": "learning-record-store", + "issue": 1, + "type": "documentation" + }, + { + "repository": "learning-content-studio", + "issue": 1, + "type": "documentation" + }, + { + "repository": "learning-management-platform", + "issue": 1, + "type": "documentation" + }, + { + "repository": "metering-billing-platform", + "issue": 157, + "type": "documentation" + }, + { + "repository": "PolicyWeave", + "issue": 1, + "type": "feature" + }, + { + "repository": "supply-chain-control-plane", + "issue": 1, + "type": "feature" } ] } diff --git a/docs/doctoring/repository-public-surface-reconciliation.md b/docs/doctoring/repository-public-surface-reconciliation.md index c674aa97ba..0f5fc0e370 100644 --- a/docs/doctoring/repository-public-surface-reconciliation.md +++ b/docs/doctoring/repository-public-surface-reconciliation.md @@ -42,7 +42,7 @@ The fleet loop is deliberately non-blocking. Every repository or label assignmen - Pull-request validation has `contents: read` only. It cannot mutate repository settings or labels. - Apply runs only when the scheduled workflow is executing from trusted `refs/heads/main` after validation. -- The apply step uses the established maintainer credential rather than widening the ordinary workflow token. +- The apply step uses the established maintainer credential rather than widening the ordinary workflow token. PR #1625 owns the reviewed migration to the dedicated `CWL_REPOSITORY_METADATA_TOKEN`; until that reaches protected main, no documentation may claim the dedicated credential is live. - Repository README changes remain leaf-owned. The central reconciler verifies exact DeepWiki linkage but never fabricates or silently edits customer-facing README copy. - Pages has two reviewed deployment modes. Legacy mode requires a regular `docs/index.md` file on the live default branch. Explicit `pages_mode: workflow` requires a regular `.github/workflows/pages.yml` file **and** an already-configured live Pages site whose `build_type` is `workflow`. - Workflow mode is preserve-only: the reconciler does not create or convert the Pages configuration. Missing Pages, a legacy live configuration, a directory at the required workflow path, or a missing workflow file fails before description/topic/Page writes for that repository. @@ -62,7 +62,7 @@ The newest cohort has explicit source ownership: `ContextualWisdomLab/PolicyWeav An Actions-backed repository is not enrolled merely because `pages_mode: workflow` is supported. Enrollment requires an explicit reviewed manifest change after the repository's standard Pages workflow and live `build_type: workflow` configuration both exist. This preserves the deployment architecture of repositories such as ScopeWeave instead of silently rewriting them to legacy `/docs`. -The explicit label assignments on protected main remain a separate reviewed taxonomy lane. Richer repository-local labels such as priority, status, and `type: maintenance` are preserved when those labels are outside the centrally managed semantic set. +The explicit label assignments now cover 39 active evidence-backed targets: `ContextualWisdomLab/.github#1582`, `ContextualWisdomLab/.github#1622`, `ContextualWisdomLab/.github#1625`, `ContextualWisdomLab/.github#1634`, `ContextualWisdomLab/CalendarWeave#1`, `ContextualWisdomLab/ConceptWeave#1`, `ContextualWisdomLab/context-graph-contracts#20`, `ContextualWisdomLab/RankWeave#40`, `ContextualWisdomLab/fast-mlsirm#1717`, `ContextualWisdomLab/EgressWeave#231`, `ContextualWisdomLab/psychometrics-commons#442`, `ContextualWisdomLab/contextual-orchestrator#994`, `ContextualWisdomLab/contextual-orchestrator#1003`, `ContextualWisdomLab/appguardrail#1077`, `ContextualWisdomLab/naruon#1513`, `ContextualWisdomLab/LineageWeave#908`, `ContextualWisdomLab/ContextualWisdomLab.github.io#203`, `ContextualWisdomLab/TEPP#435`, `ContextualWisdomLab/semantic-data-portal#72`, `ContextualWisdomLab/Orgmetra#160`, `ContextualWisdomLab/learning-interoperability-contracts#1`, `ContextualWisdomLab/noema#530`, `ContextualWisdomLab/bandscope#1125`, `ContextualWisdomLab/saju-caldav#44`, `ContextualWisdomLab/OriginWeave#274`, `ContextualWisdomLab/semantic-data-portal#90`, `ContextualWisdomLab/accounting-information-platform#45`, `ContextualWisdomLab/clearfolio#538`, `ContextualWisdomLab/pg-erd-cloud#1046`, `ContextualWisdomLab/DiagramWeave#34`, `ContextualWisdomLab/keyverse#127`, `ContextualWisdomLab/mhtml-etl-gateway#56`, `ContextualWisdomLab/j-planner#2`, `ContextualWisdomLab/learning-record-store#1`, `ContextualWisdomLab/learning-content-studio#1`, `ContextualWisdomLab/learning-management-platform#1`, `ContextualWisdomLab/metering-billing-platform#157`, `ContextualWisdomLab/PolicyWeave#1`, and `ContextualWisdomLab/supply-chain-control-plane#1`. Closed superseded child PRs `learning-record-store#7`, `learning-content-studio#8`, and `metering-billing-platform#175` are deliberately absent from the active reconciliation target list because their unique documentation deltas were folded into their authoritative parent writers. Historical labels on those closed PRs are not erased by this desired-state change. The assignment reconciler preserves richer repository-local labels such as priority, status, and `type: maintenance` when those labels are outside the managed semantic set. ## Verification contract @@ -90,4 +90,4 @@ GitHub's current REST Pages contract supports `build_type` values `legacy` and ` ## Known integration boundary -Until this 22-repository desired-state extension reaches protected `.github/main`, its additional settings reconciliation cannot run from the trusted control plane. Leaf PRs whose badge or Pages source is still branch-only remain repository-local precondition blockers. These are integration states, not reasons to idle the fleet: continue eligible siblings, labels, and independent public-surface work while blocked leaves fail closed. +The 22-repository desired-state extension is now protected on `.github/main@611feef038ad52d7ee1214d03ea3527289ebf711`; this label-taxonomy lane is the remaining central source delta in the metadata stack. Live settings convergence still requires repository-local badge/Pages prerequisites, trusted protected-main apply, and postcondition re-reads. The dedicated settings-credential migration remains owned by #1625 and is not claimed live before that PR lands. These integration states are not reasons to idle the fleet: blocked leaves fail closed while eligible siblings, labels, and independent public-surface work continue. diff --git a/tests/test_repository_label_taxonomy.py b/tests/test_repository_label_taxonomy.py index 0a9161c803..67762347ef 100644 --- a/tests/test_repository_label_taxonomy.py +++ b/tests/test_repository_label_taxonomy.py @@ -24,6 +24,9 @@ def test_repository_label_taxonomy_maps_evidence_backed_types() -> None: # Keep assignments exact so reviewed target drift cannot silently escape CI. assert payload["assignments"] == [ {"repository": ".github", "issue": 1582, "type": "feature"}, + {"repository": ".github", "issue": 1622, "type": "feature"}, + {"repository": ".github", "issue": 1625, "type": "bug"}, + {"repository": ".github", "issue": 1634, "type": "documentation"}, {"repository": "CalendarWeave", "issue": 1, "type": "documentation"}, {"repository": "ConceptWeave", "issue": 1, "type": "feature"}, { @@ -70,5 +73,54 @@ def test_repository_label_taxonomy_maps_evidence_backed_types() -> None: "type": "feature", }, {"repository": "noema", "issue": 530, "type": "feature"}, + {"repository": "bandscope", "issue": 1125, "type": "documentation"}, + {"repository": "saju-caldav", "issue": 44, "type": "documentation"}, + {"repository": "OriginWeave", "issue": 274, "type": "documentation"}, + { + "repository": "semantic-data-portal", + "issue": 90, + "type": "documentation", + }, + { + "repository": "accounting-information-platform", + "issue": 45, + "type": "documentation", + }, + {"repository": "clearfolio", "issue": 538, "type": "documentation"}, + {"repository": "pg-erd-cloud", "issue": 1046, "type": "documentation"}, + {"repository": "DiagramWeave", "issue": 34, "type": "documentation"}, + {"repository": "keyverse", "issue": 127, "type": "documentation"}, + { + "repository": "mhtml-etl-gateway", + "issue": 56, + "type": "documentation", + }, + {"repository": "j-planner", "issue": 2, "type": "documentation"}, + { + "repository": "learning-record-store", + "issue": 1, + "type": "documentation", + }, + { + "repository": "learning-content-studio", + "issue": 1, + "type": "documentation", + }, + { + "repository": "learning-management-platform", + "issue": 1, + "type": "documentation", + }, + { + "repository": "metering-billing-platform", + "issue": 157, + "type": "documentation", + }, + {"repository": "PolicyWeave", "issue": 1, "type": "feature"}, + { + "repository": "supply-chain-control-plane", + "issue": 1, + "type": "feature", + }, ] assert len(set(payload["type"].values())) == len(payload["type"])