# demarkus-library Sub-project hub for **demarkus-library** — the web front-end ("Universe Library") for a demarkus universe: a server-rendered Go + htmx reading room over a broker-fronted knowledge system. Standalone repo `latebit-io/demarkus-library`, own release cadence (mirrors `obsidian-demarkus`). All durable knowledge about this project lives under `/demarkus-library/`. This hub is the discovery backstop — keep it current. ## Source of truth - [Plan — Universe Library](/plans/universe-library.md) — the authoritative plan (architecture, identity model, phases 0–5, build-model strategy, resolved decisions, open questions). Fetch this first in any new session. ## Sections - [Architecture](/demarkus-library/architecture.md) — app structure, transport, MCP-client/session model, render pipeline (TBD) - [Decisions (ADRs)](/demarkus-library/adr/) — one file per decision at `adr/-.md` (TBD) - [Patterns](/demarkus-library/patterns.md) — Go + htmx + goldmark idioms, conventions (TBD) - [Debugging](/demarkus-library/debugging.md) — bugs, gotchas, investigations (TBD) - [Roadmap / status](/demarkus-library/roadmap.md) — phase progress, what's in flight (TBD) - [Debt](/demarkus-library/debt.md) — technical debt, deferred work (TBD) - [Journal](/demarkus-library/journal/) — session notes, one file per day at `journal/<YYYY-MM-DD>.md` ## Status - **Phase 0 — Foundation spike:** not started. Repo currently empty (only `.mcp.json`). Next: scaffold Go module + single route that FETCHes one demarkus doc and renders it via goldmark + bluemonday, served as HTML, auth-free against a local/dev world. ## Open questions - Does the broker expose any anonymous-readable surface? Decides whether the Phase 0 spike can hit the broker directly vs a local dev world. (See plan.) ## Stack (decided) Server-rendered Go (html/template + htmx), goldmark + bluemonday for markdown→sanitized HTML, MCP client over the broker MCP gateway, org-scoped OIDC (auth-code/PKCE/DCR), tokens server-side only. Single Go binary, no Node build. Build on Opus 4.8 by default; Fable 5 as the escalation valve.