diff --git a/config/repository-metadata.json b/config/repository-metadata.json index fcf8471236..bb95527ee7 100644 --- a/config/repository-metadata.json +++ b/config/repository-metadata.json @@ -49,6 +49,90 @@ "topics": ["psychometrics", "assessment", "measurement", "longitudinal", "research", "privacy", "rust", "contextualwisdomlab"], "deepwiki": true, "pages": true + }, + "keyverse": { + "description": "Keyverse — passwordless identity, federation, provisioning, account unification, and authorization services for ContextualWisdomLab.", + "topics": ["identity", "openid-connect", "oauth2", "scim", "keycloak", "python", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "OriginWeave": { + "description": "Let agents use the web without losing control. OriginWeave gives AI agents a Chromium-compatible web runtime with isolated sessions, typed actions, resource governance, and verifiable evidence.", + "topics": ["browser-automation", "ai-agents", "chromium", "security", "rust", "web", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "accounting-information-platform": { + "description": "Accounting Information Platform — statutory accounting, journal posting, period control, reconciliation, and financial reporting authority for ContextualWisdomLab.", + "topics": ["accounting", "ledger", "journal", "reconciliation", "financial-reporting", "postgresql", "python", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "pg-erd-cloud": { + "description": "PostgreSQL 스키마를 리버스 엔지니어링하고 ERD·DDL 공유 흐름으로 관리하는 클라우드 서비스.", + "topics": ["cloud", "database-schema", "ddl", "erd", "postgresql", "reverse-engineering", "saas", "python", "javascript", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "clearfolio": { + "description": "Clearfolio — secure document conversion, tenant-scoped viewing, and controlled artifact delivery.", + "topics": ["document-viewer", "document-conversion", "file-preview", "pdf", "java", "spring-boot", "javascript", "web-app", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "DiagramWeave": { + "description": "DiagramWeave — a source-first, AI-assisted editor and tooling platform for PlantUML diagrams.", + "topics": ["diagram-editor", "plantuml", "developer-tools", "language-server", "javascript", "ai-assisted", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "semantic-data-portal": { + "description": "Semantic Data Portal — governed discovery, graph traversal, and semantic search for enterprise data catalogs.", + "topics": ["data-catalog", "knowledge-graph", "ontology", "semantic-web", "semantic-search", "data-governance", "postgresql", "python", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "contextual-orchestrator": { + "description": "Contextual Orchestrator — an OpenAI-compatible control plane for model routing, delegation, verification, and multi-agent orchestration.", + "topics": ["enterprise-admin", "llm-orchestration", "model-orchestration", "model-routing", "ai-agents", "openai-compatible", "research", "python", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "mhtml-etl-gateway": { + "description": "Enterprise MHTML ingestion gateway that converts browser, SAP ALV, and Excel Web Archive exports into governed PostgreSQL data assets.", + "topics": ["mhtml", "etl", "data-ingestion", "sap", "postgresql", "data-governance", "python", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "PolicyWeave": { + "description": "PolicyWeave — local-first privacy-policy fact authoring, completeness review, and deterministic draft generation for web and app operators.", + "topics": ["privacy", "privacy-policy", "privacy-engineering", "policy-authoring", "local-first", "react", "typescript", "vite", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "supply-chain-control-plane": { + "description": "Supply Chain Control Plane — evidence-backed supply-network dependency modeling and deterministic downstream disruption-impact analysis.", + "topics": ["supply-chain", "disruption-management", "dependency-graph", "provenance", "risk-analysis", "rust", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "learning-management-platform": { + "description": "Learning Management Platform — enrollment, learning-journey, completion, and credential orchestration for employee and external learners.", + "topics": ["learning-management-system", "learning-platform", "enrollment", "completion", "credentialing", "rust", "postgresql", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "learning-content-studio": { + "description": "Learning Content Studio — evidence-bound LCMS for authoring, approving, releasing, and deterministically publishing reusable learning content.", + "topics": ["lcms", "learning-content", "content-authoring", "content-management", "accessibility", "scorm", "cmi5", "rust", "contextualwisdomlab"], + "deepwiki": true, + "pages": true + }, + "learning-record-store": { + "description": "Authoritative xAPI learning-record persistence for the CWL Learning Platform.", + "topics": ["learning-record-store", "xapi", "cmi5", "learning-technology", "interoperability", "contextualwisdomlab"], + "deepwiki": true, + "pages": true } } } diff --git a/docs/doctoring/repository-public-surface-reconciliation.md b/docs/doctoring/repository-public-surface-reconciliation.md index 6fa36c5ddc..c674aa97ba 100644 --- a/docs/doctoring/repository-public-surface-reconciliation.md +++ b/docs/doctoring/repository-public-surface-reconciliation.md @@ -54,11 +54,15 @@ The fleet loop is deliberately non-blocking. Every repository or label assignmen ## Desired-state fleet in this increment -The repository metadata manifest currently covers eight repositories selected because their public-surface work already has a concrete leaf source or active writer: `CalendarWeave`, `ConceptWeave`, `context-graph-contracts`, `ThreadWeave`, `RankWeave`, `fast-mlsirm`, `EgressWeave`, and `psychometrics-commons`. EgressWeave and Psychometrics Commons joined the fleet after their exact-cased DeepWiki badges and bounded `docs/index.md` Pages sources reached their protected default branches. +The repository metadata manifest covers 22 reviewed repositories whose public-surface work has a concrete leaf source or active writer: `CalendarWeave`, `ConceptWeave`, `context-graph-contracts`, `ThreadWeave`, `RankWeave`, `fast-mlsirm`, `EgressWeave`, `psychometrics-commons`, `keyverse`, `OriginWeave`, `accounting-information-platform`, `pg-erd-cloud`, `clearfolio`, `DiagramWeave`, `semantic-data-portal`, `contextual-orchestrator`, `mhtml-etl-gateway`, `PolicyWeave`, `supply-chain-control-plane`, `learning-management-platform`, `learning-content-studio`, and `learning-record-store`. + +EgressWeave and Psychometrics Commons joined the original fleet after their exact-cased DeepWiki badges and bounded `docs/index.md` Pages sources reached their protected default branches. Later entries are deliberately declared before live convergence only when an owned leaf lane exists for the required badge and Pages source. Until those prerequisites reach each protected default branch, that repository fails closed while sibling repositories remain independently actionable. The `semantic-data-portal` desired description also removes the internal `(PRD/TRD draft implementation)` qualifier rather than propagating it to the customer-facing repository surface. + +The newest cohort has explicit source ownership: `ContextualWisdomLab/PolicyWeave#1` carries its exact-cased badge and `docs/index.md`; `ContextualWisdomLab/supply-chain-control-plane#1` carries its exact badge and bounded Pages landing source on the active product writer; `ContextualWisdomLab/learning-management-platform#1` owns the product-first README badge and `docs/index.md`; `ContextualWisdomLab/learning-content-studio#1` now owns its product-first README, exact badge, Apache-2.0 grant, and the `docs/index.md` content folded from closed child #8; and `ContextualWisdomLab/learning-record-store#1` now owns its product-first README, exact badge, Apache-2.0 grant, and the bounded `docs/index.md` content folded from closed child #7. The closed child PRs retain discussion history but no longer own unique public-surface source. Their live repositories still report Pages disabled until protected integration and trusted reconciliation complete. 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 now cover 19 evidence-backed targets: `.github#1582`, `CalendarWeave#1`, `ConceptWeave#1`, `context-graph-contracts#20`, `RankWeave#40`, `fast-mlsirm#1717`, `EgressWeave#231`, `psychometrics-commons#442`, `contextual-orchestrator#994`, `contextual-orchestrator#1003`, `appguardrail#1077`, `naruon#1513`, `LineageWeave#908`, `ContextualWisdomLab.github.io#203`, `TEPP#435`, `semantic-data-portal#72`, `Orgmetra#160`, `learning-interoperability-contracts#1`, and `noema#530`. The assignment reconciler preserves richer repository-local labels such as priority, status, and `type: maintenance` when those labels are outside the managed semantic set. +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. ## Verification contract @@ -72,7 +76,7 @@ A central source commit is not completion. After protected integration and apply 6. the Pages status is `built`, its URL remains under `https://contextualwisdomlab.github.io`, and the published endpoint returns non-empty content before publication is claimed; 7. reviewed issue/PR targets carry the desired managed label while unrelated labels remain intact. -GitHub's current REST Pages contract supports `build_type` values `legacy` and `workflow`, and branch sources with `/` or `/docs`. Legacy desired-state records continue to use `/docs`. The explicit workflow mode exists to preserve a repository whose deployment is already owned by a reviewed GitHub Actions workflow; it is not a central creation/conversion mechanism. +GitHub's current REST Pages contract supports `build_type` values `legacy` and `workflow`, and branch sources with `/` or `/docs`. Current fleet entries use the legacy `/docs` contract unless an entry explicitly declares `pages_mode: workflow`. The workflow mode exists to preserve a repository whose deployment is already owned by a reviewed GitHub Actions workflow; it is not a central creation/conversion mechanism. ## Workflow-mode operating procedure @@ -86,4 +90,4 @@ GitHub's current REST Pages contract supports `build_type` values `legacy` and ` ## Known integration boundary -Until the central PR is merged through normal governance or a verified queue-saturation chicken-and-egg exception, the workflow-mode preservation contract cannot run from trusted `.github/main`; leaf PRs whose badge or Pages source is still branch-only also remain repository-local precondition blockers. These are integration states, not reasons to stop independent repository work. The same run should continue classifying labels, preparing other leaf public surfaces, and re-checking earlier lanes when exact-head evidence becomes available. +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. diff --git a/tests/test_repository_metadata_reconciliation.py b/tests/test_repository_metadata_reconciliation.py index 2122c5d070..2bfc9d1386 100644 --- a/tests/test_repository_metadata_reconciliation.py +++ b/tests/test_repository_metadata_reconciliation.py @@ -71,6 +71,20 @@ def test_metadata_manifest_declares_exact_casing_and_public_surfaces() -> None: "fast-mlsirm": ("psychometrics", "rust"), "EgressWeave": ("ssrf", "python"), "psychometrics-commons": ("psychometrics", "rust"), + "keyverse": ("identity", "openid-connect"), + "OriginWeave": ("browser-automation", "ai-agents"), + "accounting-information-platform": ("accounting", "ledger"), + "pg-erd-cloud": ("erd", "postgresql"), + "clearfolio": ("document-viewer", "document-conversion"), + "DiagramWeave": ("diagram-editor", "plantuml"), + "semantic-data-portal": ("data-catalog", "semantic-search"), + "contextual-orchestrator": ("llm-orchestration", "model-routing"), + "mhtml-etl-gateway": ("mhtml", "etl"), + "PolicyWeave": ("privacy-policy", "typescript"), + "supply-chain-control-plane": ("supply-chain", "rust"), + "learning-management-platform": ("learning-management-system", "rust"), + "learning-content-studio": ("lcms", "content-authoring"), + "learning-record-store": ("learning-record-store", "xapi"), } assert set(repositories) == set(expected) for repository, required_topics in expected.items(): @@ -227,7 +241,7 @@ def test_pages_and_docs_probes(monkeypatch) -> None: responses = iter( [ - completed(out='{"type": "file"}'), + completed(out='{"type":"file"}'), completed(code=1, out="Not Found"), completed(code=1, err="boom"), ]