module Web.View.StaticPages.Capabilities where import Web.View.Prelude data CapabilitiesView = CapabilitiesView instance View CapabilitiesView where html CapabilitiesView = [hsx|
← Home

Platform Capabilities

IHF v0.2 — GAAF 3.68 Strong — 12 phases complete

{-- Phase map --}

12-Phase Capability Map

{phaseRow "1" "Core Domain Model" "Hubs, Widgets, WidgetVersions, InteractionEvents (append-only), Annotations, ViewContexts, CapabilityReferences. Widget envelope helper injects stable widget-id attributes."} {phaseRow "2" "Requirement Candidates" "Triage lifecycle, duplicate detection, policy sensitivity routing, reviewer assignment, promotion to Requirement."} {phaseRow "3" "Decision Records" "Requirement → DecisionRecord chain with policy references, implementation change references, and governance status."} {phaseRow "4" "Deployment & Outcomes" "DeploymentRecord, OutcomeSignal (append-only), ChangeEvaluation. Outcome feedback closes the loop to DecisionRecords."} {phaseRow "5" "Agent-Assisted Distillation" "AI agents (Anthropic API) draft Requirements from widget clusters, route via configurable model selection. AgentProposals with confidence annotations."} {phaseRow "6" "Cross-Framework UI Adaptation" "EnvelopeEmissionContracts, InteractionReportingContracts, WidgetAdapterSpecs. Adapts widgets across framework boundaries."} {phaseRow "7" "Advanced Observability" "FrictionScores, BottleneckRecords, HubHealthSnapshots, CrossHubPropagation detection. Heatmaps and operational review board."} {phaseRow "8" "Federated Hub Maturity" "WidgetOwnerships, HubRoutingRules, FederatedPolicyOverlays, StewardshipRoles, ArchiveRecords with LineageInspector."} {phaseRow "9" "External API Surface" "REST v1 + v2, JWT auth, OpenAPI 3.1, TypeScript + Python SDKs, WebhookSubscriptions, per-consumer ApiKeys, ApiDashboard."} {phaseRow "10" "Hub Registry & Widget Marketplace" "WidgetPatterns with versioned adoption, GovernanceTemplates, HubRegistry, Marketplace dashboard. Phase 10 API v2 endpoints."} {phaseRow "11" "Advanced AI Federation" "AgentRegistrations, ModelRoutingPolicies, AgentDelegations (tree), CollectiveProposals, AiGovernancePolicies, AgentPerformanceRecords."} {phaseRow "12" "Platform Memory & Continuous Learning" "OutcomeCorrelations, PatternPerformanceRecords, AdaptiveThresholdConfigs, InstitutionalKnowledgeBase (GIN FTS), LearningInsights, retroactive lineage enrichment."}
{-- GAAF scorecard --}

GAAF-2026 Scorecard

{scoreCard "Core Architecture" "3.9" "Append-only invariants, type registry, FK discipline"} {scoreCard "Functional Completeness" "3.8" "All 12 phases implemented with full controller+view coverage"} {scoreCard "Observability" "3.5" "Friction heatmaps, health snapshots, lineage inspector"} {scoreCard "Overall" "3.68" "Strong — GAAF 2026 threshold for production readiness"}
{-- API surface --}

API Surface

Version Endpoints Auth
v1 POST /api/v1/interaction-events None (legacy write path)
v2 Widgets, Events, Annotations, Candidates, Decisions, Deployments, Signals, Registries, Patterns, Learning JWT Bearer
v2 spec GET /api/v2/openapi.json · /api/v2/openapi.yaml · /api/v2/docs None (public)
{-- Learning loop --}

The Learning Loop

Phase 12 closes the full learning loop. The system continuously improves routing and triage thresholds based on observed outcomes:

Widget → Annotation → RequirementCandidate → Requirement
→ DecisionRecord → DeploymentRecord → OutcomeSignal
→ OutcomeCorrelation / PatternPerformanceRecord
→ InstitutionalKnowledgeEntry → AdaptiveThresholdConfig
→ improved routing + triage (loop closed)
{-- Type registry --}

Type Registry System

GAAF Rule 1: all type discriminator columns reference a registry table. New hub-owned types must be registered before use (GAAF Rule 2).

widget_type_registry — hub-owned widget types
event_type_registry — interaction event types
annotation_category_registry — annotation categories
policy_scope_registry — policy sensitivity scopes
Developer Tutorial → Extension Guide → Management UI →
|] where phaseRow num title_ desc = [hsx|
{num :: Text}
{title_ :: Text}
{desc :: Text}
|] scoreCard label_ score_ detail_ = [hsx|
{score_ :: Text}
{label_ :: Text}
{detail_ :: Text}
|]