feat(WP-0015/B1-B6): StaticPages controller and public intro/tutorial UI

B1 — Web/Controller/StaticPages.hs: LandingAction, CapabilitiesAction,
     TutorialAction, ExtensionGuideAction (no auth guard)
B2 — Web/View/StaticPages/Landing.hs: hero, traceability chain, capability
     grid, GAAF status bar, CTAs to capabilities and management UI
B3 — Web/View/StaticPages/Capabilities.hs: 12-phase capability map, GAAF
     scorecard, API v1/v2 surface table, learning loop, type registry system
B4 — Web/View/StaticPages/Tutorial.hs: 6-step developer tutorial (widgets,
     events, governance, deployment, learning, federation)
     Web/View/StaticPages/ExtensionGuide.hs: 6-step hub extension guide
     (HubCapabilityManifest, type registry, widgets, patterns, agents)
     with GAAF rules summary
B5 — Web/Routes.hs: StaticPagesController manual routes; "/" → Landing,
     "/capabilities", "/tutorial", "/extension-guide"
     Web/Types.hs: StaticPagesController data type
B6 — Web/FrontController.hs: import StaticPagesController; register route
     (last, catches root); nav adds About/Tutorial/Extend links and
     separator; logo now links to LandingAction

B7 (deployment verification) remains pending until devenv up is available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-08 02:02:44 +00:00
parent 74bab5f6f2
commit 5510ae22da
8 changed files with 591 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
module Web.Controller.StaticPages where
-- WP-0015 — Public-facing intro and tutorial pages (no auth required)
import Web.Types
import Generated.Types
import IHP.Prelude
import IHP.ControllerPrelude
import Web.View.StaticPages.Landing
import Web.View.StaticPages.Capabilities
import Web.View.StaticPages.Tutorial
import Web.View.StaticPages.ExtensionGuide
instance Controller StaticPagesController where
action LandingAction = render LandingView
action CapabilitiesAction = render CapabilitiesView
action TutorialAction = render TutorialView
action ExtensionGuideAction = render ExtensionGuideView