Files
inter-hub/CLAUDE.md
Bernd Worsch 133dae3d23
Some checks failed
Test / test (push) Has been cancelled
feat(WP-0012): IHF Phase 11 — Advanced AI Federation
- Schema: AgentRegistration, ModelRoutingPolicy, AgentDelegation,
  CollectiveProposal, CollectiveProposalContribution, AiGovernancePolicy,
  AgentPerformanceRecord + ALTER TABLE agent_proposals
  (migration 1744156800; CHECK constraints on trust_level, status,
  consensus_status — GAAF compliant)

- Bridge: scripts/llm_bridge.py (llm-connect subprocess seam) +
  Application/Helper/AgentBridge.hs (callBridge, callAgent,
  checkGovernancePolicy, jsonArrayTexts)

- Routing: Application/Helper/ModelRouter.hs (resolveAgent,
  resolveAllAgents) + ModelRoutingPolicies CRUD

- Registry: AgentRegistrations CRUD (Index/Show/New/Edit/Performance),
  DeactivateAgentAction, ComputeAgentPerformanceAction

- Delegation: AgentDelegations controller + views, DelegateSubtaskAction
  with token budget enforcement at bridge call time

- Collective: CollectiveProposals controller + views,
  CreateCollectiveProposalAction (fan-out → synthesis → consensus detection)

- Governance: AiGovernancePolicies CRUD + ToggleAiGovernancePolicyAction;
  checkGovernancePolicy enforced at all 4 Phase 5 invocation points

- Phase 5 wiring: replaced callClaudeApi in Widgets, DecisionRecords,
  RequirementCandidates with resolveAgent + callAgent + token tracking

- llm-connect feature requests: ~/llm-connect/FEATURE_REQUESTS.md
  (FR-1 HTTP serve, FR-2 RoutingPolicy, FR-3 async, FR-4 BudgetTracker)

- GAAF scorecard: 3.61 (up from 3.56); Functional 3.4→3.6, Extensions 3.8→3.9

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:57:17 +00:00

7.6 KiB
Raw Blame History

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

inter-hub is the reference implementation of the Interaction Hub Framework (IHF) — a governed, observable interaction substrate for hub-based AI-enabled software systems. It treats every UI element as a governed artifact, creating a full traceability chain from rendered widget → user interaction → structured feedback → requirement candidate → decision record → implementation change → observed outcome.

Current state: Phases 111 complete (including GAAF Compliance Foundation, External API Surface, Hub Registry, and Advanced AI Federation). Phase 12 (Platform Memory and Continuous Learning) is the active implementation target.

For situational context, read SCOPE.md. For architecture depth, read specs/InteractionHubFrameworkSpecification_v0.1.md.

Stack

  • IHP (Integrated Haskell Platform) v1.5 — full-stack Haskell web framework, server-rendered + optional realtime
  • Haskell (GHC 9.10) — strongly typed, functional
  • PostgreSQL — canonical datastore, managed via Nix (no manual DB setup)
  • Nix / devenv — reproducible environment
  • Tailwind CSS — see specs/TailwindForInteractionHubs_v0.2.md for IHF-specific conventions

Development Setup

Requires Determinate Nix + direnv:

# One-time environment setup
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh
nix profile install nixpkgs#ihp-new
nix profile add nixpkgs#direnv

# Bootstrap IHP project (Phase 1, Task T01)
ihp-new inter-hub
cd inter-hub
devenv up

After devenv up:

  • App server: http://localhost:8000
  • IHP IDE + Schema Designer: http://localhost:8001

Key Commands

devenv up          # Start dev environment (app + postgres + file watchers)
migrate            # Run pending migrations
test               # Run tests (auto-creates temp Postgres DB)
make static/prod.js static/prod.css   # Production asset bundle
deploy-to-nixos production            # NixOS deploy

Schema editing: use the IHP IDE at localhost:8001 or edit Application/Schema.sql directly. Code generation via localhost:8001/Generators.

Architecture

Core Domain Model (Phase 1)

Entity Role
Hub Bounded domain of responsibility (Dev Hub, Ops Hub, etc.)
Widget Smallest semantically governable interaction unit with stable ID
WidgetVersion Version history of widget definitions
InteractionEvent Recorded user/agent interaction (viewed, clicked, submitted, etc.) — append-only (enforced by PostgreSQL trigger)
Annotation Structured comment attached to a widget with category
ViewContext Logical location in the UI
CapabilityReference Link to hub capability

Traceability Chain

Widget → InteractionEvent / Annotation
       → RequirementCandidate (Phase 2)
       → DecisionRecord (Phase 3)
       → ImplementationChange → DeploymentRecord → OutcomeSignal

IHP Conventions

  • Controllers live in Web/Controller/, views in Web/View/, types in Web/Types.hs
  • Schema changes go in Application/Schema.sql, then generate with IHP IDE
  • Use AutoRefresh for operator dashboards (server push on DB change) — not DataSync or Server-Side Components in Phase 1
  • See docs/ihp-ihf-mapping.md for how IHP capabilities map to IHF requirements

Widget Envelope

Every rendered widget wraps its HSX in a widgetEnvelope helper (Task T08) that injects the stable widget-id and view-context attributes, enabling client-side event capture without coupling to implementation.

UI Conventions

All hub interfaces follow the Tailwind layer model in specs/TailwindForInteractionHubs_v0.2.md:

Semantic Role → Visual Primitive → Tailwind Token → Screen Composition

Key rules:

  • Every interactive element belongs to a named semantic role (action-primary, nav-item, data-cell, etc.)
  • Use spacing rhythm from the spec; do not invent ad-hoc spacing
  • State cues (hover, active, disabled, error) follow the defined color roles

Required Environment Variables

Variable Purpose
IHP_SESSION_SECRET Session encryption key
DATABASE_URL Postgres connection string
IHP_BASEURL External URL (e.g., https://example.com)
IHP_ANTHROPIC_API_KEY Anthropic API key for Phase 5 agent-assisted distillation

Active Workplan

Phase 12 (Platform Memory and Continuous Learning) is the next target. Create workplan workplans/IHUB-WP-0013-ihf-phase12-platform-memory.md when ready. Use /ralph-workplan to drive implementation.

Completed workplans: IHUB-WP-0001 (Phase 1), IHUB-WP-0002 (Phase 2), IHUB-WP-0003 (Phase 3), IHUB-WP-0004 (Phase 4), IHUB-WP-0005 (Phase 5), IHUB-WP-0006 (Phase 6), IHUB-WP-0007 (Phase 7), IHUB-WP-0008 (Phase 8), IHUB-WP-0009 (GAAF Compliance Foundation), IHUB-WP-0010 (Phase 9 — External API Surface and Consumer SDKs), IHUB-WP-0011 (Phase 10 — Hub Registry and Widget Marketplace), IHUB-WP-0012 (Phase 11 — Advanced AI Federation).

GAAF Architecture Rules (enforced from IHUB-WP-0009)

These rules apply to all code written after Phase 8 completion:

  1. Type discriminator columns (widget_type, event_type, category, policy_scope) must reference a registry table or carry a CHECK constraint. No bare TEXT for new type discriminators.
  2. New hub-owned types must be declared in the hub's HubCapabilityManifest before use. Register via the Extensions admin UI.
  3. Core tables (widgets, interaction_events, annotations, hubs, and their Phase 14 dependents) must not have new columns added without a corresponding update to /contracts/core/.
  4. Append-only invariant on interaction_events and outcome_signals is permanent. Never propose a migration that removes or bypasses those triggers.

Key Reference Docs

File Purpose
SCOPE.md Situational guide — in/out of scope, terminology, entry points
ARCHITECTURE-LAYERS.md GAAF-2026 layer map, scorecard, and compliance status
specs/InteractionHubFrameworkSpecification_v0.1.md Full IHF spec (Phases 08, risks, design principles)
specs/InteractionHubFrameworkSpecification_v0.2.md IHF extension spec (Phases 912) with GAAF foundation notes
specs/GoodSoftwareArchitectureFramework_2026.md GAAF-2026 standard — the architectural compliance framework
specs/TailwindForInteractionHubs_v0.2.md Agent-optimized Tailwind coding guide
contracts/README.md Contract catalog — all IHF contracts by layer
docs/domain-hub-extension-guide.md How to register a new domain hub (dev, ops, fin, sec)
docs/functional-modules.md Functional module maturity register
docs/ihp-overview.md IHP v1.5 fundamentals and dev workflow
docs/ihp-data-and-queries.md Schema design, auto-generated types, query builder, migrations
docs/ihp-controllers-views-forms.md Controller patterns, HSX, forms, validation, auth
docs/ihp-realtime.md AutoRefresh vs DataSync vs HTMX decision guide
docs/ihp-ihf-mapping.md IHP capability → IHF requirement mapping with schema templates
  • hub-core — planned shared Haskell library for domain hub bootstrapping; HubCapabilityManifest in inter-hub provides the DB-side registration contract until hub-core is implemented
  • the-custodian — State Hub (decision records, workstreams) that IHF governance integrates with
  • Downstream consumers: dev-hub, ops-hub, fin-hub, sec-hub — must register via HubCapabilityManifest before creating hub-owned type discriminators