Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5510131
feat(metadata): extend public-surface desired state
seonghobae Sep 1, 2026
15e1a9a
feat(metadata): add document and schema product surfaces
seonghobae Sep 1, 2026
f8ece4b
test(metadata): cover extended desired-state fleet
seonghobae Sep 1, 2026
7437c77
docs(metadata): update desired-state fleet inventory
seonghobae Sep 1, 2026
82002da
Merge branch 'main' into metadata/extend-public-surface-desired-state
opencode-agent[bot] Sep 1, 2026
6697495
feat(metadata): extend desired state to prepared public surfaces
seonghobae Sep 1, 2026
8188299
test(metadata): cover prepared public surfaces
seonghobae Sep 1, 2026
f3b54bc
docs(metadata): align baseline with 17-repository fleet
seonghobae Sep 1, 2026
4bd0f9b
docs(metadata): reconcile 17-repo fleet with workflow Pages
seonghobae Sep 1, 2026
aefbc8d
merge main: reconcile metadata fleet extension
seonghobae Sep 1, 2026
a862d41
test(metadata): model file probe response
seonghobae Sep 1, 2026
213c8fa
feat(metadata): enroll next public-surface cohort
seonghobae Sep 1, 2026
853a37b
test(metadata): cover next public-surface cohort
seonghobae Sep 1, 2026
72e0d92
docs(metadata): record 21-repository public-surface fleet
seonghobae Sep 1, 2026
861ace9
feat(metadata): enroll learning record store
seonghobae Sep 1, 2026
81724fa
test(metadata): cover learning record store
seonghobae Sep 1, 2026
91de7df
docs(metadata): enroll learning record store surface
seonghobae Sep 1, 2026
c60a9aa
merge(main): reconcile metadata desired-state writer with protected main
seonghobae Sep 1, 2026
5679f4c
docs(metadata): fully qualify sibling PR ownership references
seonghobae Sep 1, 2026
676d011
merge(main): keep public-surface desired-state writer current
seonghobae Sep 1, 2026
8b246d0
docs: reconcile consolidated public-surface owners
seonghobae Sep 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions config/repository-metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
Comment thread
seonghobae marked this conversation as resolved.
},
"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
Comment thread
seonghobae marked this conversation as resolved.
},
"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
}
}
}
12 changes: 8 additions & 4 deletions docs/doctoring/repository-public-surface-reconciliation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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

Expand All @@ -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.
16 changes: 15 additions & 1 deletion tests/test_repository_metadata_reconciliation.py
Original file line number Diff line number Diff line change
Expand Up @@ -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():
Expand Down Expand Up @@ -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"),
]
Expand Down
Loading