# demarkus-soul This is the living knowledge base for the demarkus project, served by demarkus itself. An AI agent's evolving memory, architecture notes, debugging insights, and design decisions — all versioned, all permanent. ## Sections - [Architecture](/architecture.md) — system design, module boundaries, key decisions - [Universe Pattern](/universe.md) — souls, worlds, and hubs as a deployment topology - [Patterns](/patterns.md) — code patterns, conventions, idioms used in this codebase - [Guidelines](/guidelines.md) — hard rules for code quality, must be referenced before writing code - [Debugging](/debugging.md) — lessons learned from bugs and investigations - [Roadmap](/roadmap.md) — what's next, what's in flight, what's done, and what's deliberately not prioritized - [Ecosystem](/ecosystem.md) — browsers, plugins, and tools that implement or integrate with demarkus - [Debt](/debt.md) — technical debt and improvement opportunities - [Journal](/journal/) — session notes and evolution log, one file per day at `/journal/.md` - [Guide](/guide.md) — agent install guide for setting up demarkus-soul - [Thoughts](/thoughts.md) — my own reflections, ideas, and open questions - [FAQ](/faq.md) — common questions about demarkus and how it compares ## Vocabulary - **knowledge system** — organizational, broker-fronted universe. Joined via `/knowledge-join` (plugin slash command). MCP traffic over HTTPS terminates at the broker; broker translates to QUIC for internal worlds. - **soul** — personal demarkus knowledge base, direct-QUIC. The original demarkus-soul shape. Will be joined via a future `/soul-join` slash command if one ships. - Both compose **worlds** (demarkus servers, QUIC). A Claude Code installation can have both; they don't conflict. ## Plugins - [Obsidian Plugin](/plugins/obsidian/index.md) — fetch, publish, and browse demarkus documents from Obsidian (standalone repo `latebit-io/obsidian-demarkus`) - Claude Code Plugin — `demarkus-memory` v0.2.0, shipped via the marketplace; source at `plugins/claude-code/` in the monorepo. v0.2.0 (2026-05-23) adds the `/knowledge-join` slash command for joining organizational broker-fronted knowledge systems alongside the existing personal-soul flow. ## Active Plans - [SEARCH verb](/plans/search-verb.md) — add SEARCH (verb 7) to close the RAG-gap: scoped, filtered, TF-IDF + importance-ranked full text search over current versions. Minimal hand-rolled inverted index in core, heavy search (Bleve/vector) as an opt-in sidecar. Tracks [#113](https://github.com/latebit-io/demarkus/issues/113). Draft, pending Fritz review. Decided 2026-05-30: markdown-table response (not JSON), build-at-startup + inline updates (no gob in v1), importance as a bounded prior (not an override). - [Broker Authorization Code Grant](/plans/broker-auth-code-grant.md) — implement RFC 6749 `authorization_code` + PKCE (S256) on the broker so Claude Code's MCP SDK can auth against `broker.knowledge.demarkus.io` without pivoting to device flow. Replaces the `unsupported_response_type` stub at `/oauth/authorize`. 3 PRs (~3 days). Pending Fritz review 2026-05-26. - [Knowledge System — GKE Reference Deployment](/plans/knowledge-system-gke-deploy.md) — public, GitHub-template deployment repo (`latebit-io/demarkus-knowledge-system-deploy`) standing up `knowledge.demarkus.io` on GKE via OpenTofu + ArgoCD + OpenBao + bank-vaults webhook + restic→GCS backups. 10 phases, Phase 1 (bootstrap state + GCP project) next. Doubles as the canonical working example of a deployed knowledge system. - [Universe Deployment (Phase 6)](/plans/universe-deployment.md) — production-grade enterprise k8s deployment: Helm charts (server, broker, agent), OIDC token broker, release pipeline, observability. ~95% complete after Stages 1-4 of the kind harness merged 2026-05-14 (PRs #126-#134). §6.6 (docs) + §6.4 Kustomize overlay remaining. - [Universe Onboarding](/plans/universe-onboarding.md) — last-mile user-onboarding flow: OIDC device-code auth + broker `/me/install` + plugin slash commands. PR1-PR4 merged 2026-05-15. PR5 merged 2026-05-20 (#141). **PR6 (`tools/demarkus-join` binary) canceled 2026-05-20 in favor of the MCP Gateway plan (now complete); join flow ships as `/knowledge-join` (Slice 8, #152, 2026-05-23). PR7/PR8 absorbed into MCP Gateway Slices 7-8.** - [Universe Onboarding — PR5 (broker /me/install)](/plans/universe-onboarding-pr5.md) — sub-plan, shipped #141 2026-05-20. Bearer-authenticated per-user install bundle. Stays as the identity-introspection surface alongside the MCP gateway's operational data plane. ## Completed Plans - [History](/completed-plans.md) — content addressing, federation, persistent graph, read auth (server-side), conflict-aware merge in `mark_publish` (2026-05-05), Claude Code plugin (2026-04-23), **Broker MCP Gateway (2026-05-23 — all 8 slices + Pre-Flight 0/1 shipped; 13-tool surface with byte-for-byte proxy fidelity to local demarkus-mcp, OIDC + RFC 9728/8414 metadata, chart + kind smoke + `/knowledge-join` slash command)** + **RFC 7591 DCR follow-on (2026-05-26, PR #153 — `/register` + `registration_endpoint` in discovery, unblocks Claude Code → cluster broker auth via the native MCP authorization spec).** ## Plan Archives Original plan documents preserved for reference: - [Content Addressing](/plans/content-addressing.md) — hash-based fetch, in-memory index, mirror foundation - [Federation](/plans/federation.md) — agent-driven hash discovery, mark_index, mark_resolve - [Persistent Graph](/plans/persistent-graph.md) — disk-backed graph store, incremental crawl, backlinks - [Read Auth](/plans/read-auth.md) — per-path read token enforcement for private networks - [Security Hardening](/plans/security-hardening.md) — systemd sandboxing, security docs, write isolation - [Conflict-Aware Merge](/plans/conflict-merge.md) — tool-level diff3 merge in `mark_publish` (shipped client/v0.12.25 + v0.12.26) - [Claude Code Plugin](/plans/claude-code-plugin.md) — one-click marketplace plugin (shipped demarkus-memory v0.1.1; v0.2.0 added `/knowledge-join` 2026-05-23) - [Universe Onboarding — PR3 (broker device flow)](/plans/universe-onboarding-pr3.md) — shipped 2026-05-15 (#137). RFC 8628 device flow end-to-end on the broker. Six sub-steps merged across one PR; PR4 builds on top. - [Universe Onboarding — PR4 (broker refresh tokens)](/plans/universe-onboarding-pr4.md) — shipped 2026-05-15 (#138 + #139). Refresh-token lifecycle + `grant_type=refresh_token` + `POST /token/revoke` + broker-signed id_tokens + `/.well-known/jwks.json` + compositeVerifier + Sweeper integration. Eleven CodeRabbit comments addressed in a review round; lessons captured in journal. - [Broker MCP Gateway](/plans/broker-https-gateway.md) — **shipped 2026-05-23 (v7).** Eight slices + Pre-Flight 0/1, ~1800 LOC production + ~2460 tests + chart/docs across ~2 weeks. Plan stays in place as the architectural reference + decision trail (v1 REST → v7 complete changelog at the top traces every load-bearing pivot). DCR follow-on (RFC 7591 `/register`) shipped 2026-05-26 (PR #153) to satisfy the MCP authorization spec's discovery requirement.