feat(WP-0011): IHF Phase 10 — Hub Registry and Widget Marketplace
Some checks failed
Test / test (push) Has been cancelled

Delivers the hub registry discovery UI, widget pattern library,
governance template library, and marketplace dashboard.

Key changes:
- Schema: widget_patterns (widget_type FK to registry), widget_pattern_versions,
  pattern_adoptions, governance_templates (categories JSONB, validated at
  controller), governance_template_clones — all GAAF-compliant, no bare TEXT
  type discriminators
- Migration: 1743897600-ihf-phase10-hub-registry.sql
- HubRegistry controller + views: browsable view over hub_capability_manifests,
  hub_health_snapshots, hubs with per-hub GAAF compliance indicator
- WidgetPatterns controller + views: publish, version, adopt; adoption
  triggers manifest amendment draft when new types are introduced
- GovernanceTemplates controller + views: CRUD, clone with category
  validation against annotation_category_registry
- MarketplaceDashboard controller + view: full-text search, widget-type
  filter, sort, trending panel, autoRefresh
- API v2: /api/v2/hub-registry, /api/v2/widget-patterns (+ adopt endpoint)
- OpenAPI spec updated with Phase 10 paths
- GAAF scorecard: Customization 2.5 → 3.2; overall 3.41 → 3.56 (Strong)
- CLAUDE.md: Phase 10 complete; active workplan → Phase 11

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-01 20:14:43 +00:00
parent 254fd04fd0
commit 6e8972f828
25 changed files with 2019 additions and 37 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "IHF Phase 10 — Hub Registry and Widget Marketplace"
domain: inter_hub
repo: inter-hub
status: todo
status: done
owner: custodian
topic_slug: inter_hub
created: "2026-04-01"
@@ -140,7 +140,7 @@ CREATE TABLE governance_template_clones (
```task
id: IHUB-WP-0011-T01
status: todo
status: done
priority: high
state_hub_task_id: "9c26859d-d910-4c5d-a684-3d94ea8019d9"
```
@@ -165,7 +165,7 @@ Run `migrate` after writing.
```task
id: IHUB-WP-0011-T02
status: todo
status: done
priority: high
state_hub_task_id: "718b93a7-4e0a-4f79-af15-53af13ef9a92"
```
@@ -208,7 +208,7 @@ Add route and nav link.
```task
id: IHUB-WP-0011-T03
status: todo
status: done
priority: high
state_hub_task_id: "5d2ce269-25de-4251-afae-0478901f85f6"
```
@@ -241,7 +241,7 @@ let isCrossHub = typeOwner.hubId /= Just pattern.hubId
```task
id: IHUB-WP-0011-T04
status: todo
status: done
priority: medium
state_hub_task_id: "33003835-48fd-45d1-addd-75db85340968"
```
@@ -267,7 +267,7 @@ Show pinned vs follow-latest status in the adopter hub's pattern list.
```task
id: IHUB-WP-0011-T05
status: todo
status: done
priority: high
state_hub_task_id: "44b354ac-b94a-4c71-9c43-79f5e67f671f"
```
@@ -316,7 +316,7 @@ When no amendment is needed, redirect to hub's pattern list with success message
```task
id: IHUB-WP-0011-T06
status: todo
status: done
priority: medium
state_hub_task_id: "f31b86d3-573e-4a87-b179-609872565b0c"
```
@@ -354,7 +354,7 @@ validateCategories cats = do
```task
id: IHUB-WP-0011-T07
status: todo
status: done
priority: medium
state_hub_task_id: "5642dd12-4255-42d7-9411-63e032cc2b57"
```
@@ -393,7 +393,7 @@ Show:
```task
id: IHUB-WP-0011-T08
status: todo
status: done
priority: medium
state_hub_task_id: "01ea4d7d-cbd3-4149-b772-7e131f4f7e9c"
```
@@ -426,7 +426,7 @@ Add route and nav link ("Marketplace").
```task
id: IHUB-WP-0011-T09
status: todo
status: done
priority: medium
state_hub_task_id: "34d3339a-cf17-4475-b848-eeb077ede8e6"
```
@@ -459,7 +459,7 @@ registry query (no hardcoding).
```task
id: IHUB-WP-0011-T10
status: todo
status: done
priority: medium
state_hub_task_id: "9af8cd05-7864-438d-92a2-052d0af3bcbc"
```