All three active inter-hub workplans are complete: - WP-0017: all E1–E5 done (clean build, 615 modules) - WP-0014: A1–A5 done (smoke test passed on haskelseed 2026-04-29) - WP-0015: B1–B7 done (static pages live, root route fixed) Release: v0.2.0-alpha.1 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.8 KiB
id, type, title, domain, repo, status, owner, topic_slug, created, updated, state_hub_sync, state_hub_workstream_id, depends_on
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_sync | state_hub_workstream_id | depends_on |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IHUB-WP-0015 | workplan | Local Deployment — Intro and Tutorial Web UI | inter_hub | inter-hub | done | custodian | inter_hub | 2026-04-03 | 2026-04-03 | done | 946d50b8-441c-4c0a-b1a0-2a4fb3340d16 | IHUB-WP-0014 |
IHUB-WP-0015 — Local Deployment: Intro and Tutorial Web UI
Goal
Deploy inter-hub locally and add the public-facing intro/tutorial web interface so that the running instance presents both a self-contained introduction to the framework and access to the management UI — with no domain extensions registered yet.
Background
Depends on IHUB-WP-0014 (clean build, Tailwind CSS, admin user). Once the
pre-flight gaps are closed, this workplan adds the missing web layer: a
landing page, capabilities overview, and domain-extension tutorial as actual
rendered pages within the IHP app — surfacing the rich content already in
docs/ and specs/ through the web interface rather than only as files.
The management UI (58 controllers, all dashboards) already exists and needs no new code — only a navigational entry point.
Tasks
B1 — Create StaticPages controller
New Web/Controller/StaticPages.hs with actions:
LandingAction, CapabilitiesAction, TutorialAction, ExtensionGuideAction.
No auth guard — these pages are public. Register routes in Web/Routes.hs.
B2 — Landing page view
Web/View/StaticPages/Landing.hs — what inter-hub is, the traceability chain
(Widget → InteractionEvent/Annotation → RequirementCandidate → Requirement →
DecisionRecord → DeploymentRecord → OutcomeSignal → Learning), key capabilities
at a glance, and two CTAs: "Explore Capabilities" + "Go to Management UI".
Content drawn from SCOPE.md and ARCHITECTURE-LAYERS.md.
B3 — Capabilities page view
Web/View/StaticPages/Capabilities.hs — the 12-phase capability map, GAAF
scorecard (3.68 Strong), the API surface (v1 + v2), the learning loop, the
type registry system, and the hub federation model. Structured HTML with
section anchors. Draws from ARCHITECTURE-LAYERS.md and
specs/InteractionHubFrameworkSpecification_v0.2.md.
B4 — Tutorial and extension guide views
Web/View/StaticPages/Tutorial.hs — step-by-step overview of how the IHF
works from a developer perspective (Widget lifecycle, governance flow, outcome
loop).
Web/View/StaticPages/ExtensionGuide.hs — how to build and register a domain
hub extension: HubCapabilityManifest, type registry entries, hub-owned widget
types, hub-scoped controllers. Content drawn from
docs/domain-hub-extension-guide.md.
B5 — Update root route
Change GET / from HubsAction to LandingAction in Web/FrontController.hs
or Web/Routes.hs. Management entry point becomes GET /hubs.
B6 — Navigation integration
Add "Docs" / "About" / "Tutorial" links to the existing nav bar in
Web/FrontController.hs. Add "Management" link pointing to /hubs.
Ensure the nav is accessible from all static pages without requiring login.
B7 — Final deployment run and verification ✓
Verified 2026-04-29 on haskelseed (192.168.178.135:8080):
- / → Landing (200), /capabilities (200), /tutorial (200), /extension-guide (200)
- Login as admin@inter-hub.local succeeds, all dashboards load
- Root route fix: parseRoute' changed from endOfInput to string "/" >> endOfInput
- Tagged v0.2.0-alpha.1
Exit Criteria
http://localhost:8000shows the landing page (no login required)- Landing → Capabilities → Tutorial → ExtensionGuide navigation works
- "Management UI" link from landing takes authenticated users to
/hubs - Hub management, all dashboards, and API v2 remain functional
- No domain extensions pre-registered (clean starting state confirmed)
- All pages render with correct Tailwind styling