soul.demarkus.io:6309/graph.md/v3 draft reader meta

Document Graph

Exported: 2026-06-25T18:23:19Z Nodes: 325 Edges: 665

Nodes

URL Title Status Links
file:///Users/fritz/latebit/nib/ai/llm/codex_api.go external 0
file:///Users/fritz/latebit/nib/ai/llm/codex_probe.go external 0
file:///Users/fritz/latebit/nib/cmd/nib-code/main.go external 0
file:///Users/fritz/latebit/nib/coding/agent/compact.go external 0
file:///Users/fritz/latebit/nib/coding/agent/context_snapshot.go external 0
file:///Users/fritz/latebit/nib/coding/command/context.go external 0
file:///Users/fritz/latebit/nib/tui/tui.go external 0
file:///Users/fritz/latebit/nib/tui/ui/model_selector.go external 0
https://demarkus.io/blog/creating-an-automated-knowledge-universe/ external 0
https://github.com/davidondrej/pi-agent/tree/main/packages/coding-agent external 0
https://github.com/gszhangwei/open-spdd external 0
https://github.com/latebit-io/demarkus-hub external 0
https://github.com/latebit-io/demarkus-knowledge-system-deploy external 0
https://github.com/latebit-io/demarkus/issues/113 external 0
https://github.com/latebit-io/demarkus/issues/75 external 0
https://github.com/latebit-io/demarkus/releases external 0
https://github.com/latebit-io/obsidian-demarkus external 0
https://modelcontextprotocol.io/specification/2025-03-26/basic/transports external 0
mark://127.0.0.1:6401/adr/ltv-rule.md ADR: LTV floor — 2026-Q1 ok 4
mark://127.0.0.1:6401/credit-policy.md Credit policy ok 2
mark://127.0.0.1:6401/decisioning-rules.md Decisioning rules ok 1
mark://127.0.0.1:6401/journal.md Origination journal ok 0
mark://127.0.0.1:6402/ Index of / ok 4
mark://127.0.0.1:6402/arrears-rules.md Arrears rules ok 2
mark://127.0.0.1:6402/escrow-calc.md Escrow calculation ok 0
mark://127.0.0.1:6402/journal.md Servicing journal ok 0
mark://127.0.0.1:6402/payment-flows.md Payment flows ok 3
mark://127.0.0.1:6403/graph.md Cross-domain graph ok 0
mark://docs.demarkus.io Demarkus Documentation ok 19
mark://docs.demarkus.io/DESIGN.md not-found 0
mark://docs.demarkus.io/SPEC.md not-found 0
mark://docs.demarkus.io/architecture/index.md Architecture & Design ok 3
mark://docs.demarkus.io/client/index.md Use the Clients ok 4
mark://docs.demarkus.io/deployment/index.md Deployment & TLS ok 5
mark://docs.demarkus.io/index.md Demarkus Documentation ok 19
mark://docs.demarkus.io/install/index.md Install & Build ok 4
mark://docs.demarkus.io/philosophy/agent-cookbook.md Agent Workflow Cookbook ok 4
mark://docs.demarkus.io/philosophy/agent-queue-template.md Agent Queue Template ok 3
mark://docs.demarkus.io/philosophy/index.md Philosophy & Intent ok 6
mark://docs.demarkus.io/philosophy/why-demarkus.md Why Demarkus ok 4
mark://docs.demarkus.io/reference/agent-manifest.md Agent Manifest ok 0
mark://docs.demarkus.io/reference/index.md Reference ok 7
mark://docs.demarkus.io/security/index.md Security Model ok 3
mark://docs.demarkus.io/server/index.md Run a Server ok 9
mark://docs.demarkus.io/tools/index.md Tools ok 3
mark://hub.demarkus.io demarkus hub ok 8
mark://hub.demarkus.io/agents.md Agents ok 0
mark://hub.demarkus.io/blogs.md Blogs ok 0
mark://hub.demarkus.io/hubs.md Hubs ok 2
mark://hub.demarkus.io/index.md demarkus hub ok 8
mark://hub.demarkus.io/indexes/soul.md Content Index ok 0
mark://hub.demarkus.io/personal.md Personal ok 0
mark://hub.demarkus.io/projects.md Projects ok 2
mark://hub.demarkus.io/setup.md Setting Up Your Own Hub ok 1
mark://hub.demarkus.io/tools.md Tools ok 0
mark://localhost/junto/philosophy.md error 0
mark://localhost/nib/architecture.md Architecture ok 10
mark://localhost/nib/debugging.md error 0
mark://localhost/nib/engineering-values.md Engineering Values ok 6
mark://localhost/nib/index.md error 0
mark://localhost/nib/journal.md error 0
mark://localhost/nib/mission.md nib — Mission ok 5
mark://localhost/nib/patterns.md Patterns ok 9
mark://localhost/nib/plans/ Index of /nib/plans/ ok 35
mark://localhost/nib/plans/agent-foundation.md Agent Foundation — Architecture Plan ok 3
mark://localhost/nib/plans/agent-pane-collapse.md Agent Pane Collapse/Expand — Deferred Plan ok 0
mark://localhost/nib/plans/agent-pane-file-picker.md Agent Pane @ File Picker — Deferred Plan ok 1
mark://localhost/nib/plans/agent-pane-redesign.md 0
mark://localhost/nib/plans/agent-pane-tool-rows.md 0
mark://localhost/nib/plans/agent-parked-event.md 0
mark://localhost/nib/plans/agent-token-efficiency.md 0
mark://localhost/nib/plans/apply-patch-tool.md 0
mark://localhost/nib/plans/appmodel-decomposition.md 0
mark://localhost/nib/plans/edit-tool-batching.md 0
mark://localhost/nib/plans/editor-vs-buffer-split.md 0
mark://localhost/nib/plans/eval-toggle-ux.md 0
mark://localhost/nib/plans/global-skills-dir.md error 0
mark://localhost/nib/plans/kit-agent-port.md 0
mark://localhost/nib/plans/kit-contracttest.md error 0
mark://localhost/nib/plans/kit-decorate.md error 0
mark://localhost/nib/plans/kit-event-bus.md error 0
mark://localhost/nib/plans/kit-registry.md error 0
mark://localhost/nib/plans/kit-v1-versioning.md error 0
mark://localhost/nib/plans/layer-3-codepath-rename.md error 0
mark://localhost/nib/plans/library-first.md Plan — nib as a Library; nib-code as Its Flagship Consumer ok 0
mark://localhost/nib/plans/nibster.md error 0
mark://localhost/nib/plans/phase-6-final-wiring.md error 0
mark://localhost/nib/plans/plugin-metadata.md error 0
mark://localhost/nib/plans/session-decomposition.md error 0
mark://localhost/nib/plans/skills-adapter.md error 0
mark://localhost/nib/plans/slash-commands.md error 0
mark://localhost/nib/plans/tool-output-cap.md error 0
mark://localhost/nib/plans/tui-callback-split.md error 0
mark://localhost/nib/plans/tui-facade.md error 0
mark://localhost/nib/plans/turn-count-investigation-data.md error 0
mark://localhost/nib/plans/turn-count-investigation.md error 0
mark://localhost/nib/plans/update-task-bundling.md error 0
mark://localhost/nib/plans/validator-sidecar.md error 0
mark://localhost/nib/plans/work-tree-gate-softening.md error 0
mark://localhost/nib/roadmap.md Roadmap ok 27
mark://localhost:6309/ Demarkus Soul — Project Hub ok 5
mark://localhost:6309/demarkus-library/adr/0006-navigation-rework.md ADR 0006 — Navigation rework ok 0
mark://localhost:6309/demarkus-library/architecture.md demarkus-library — navigation architecture ok 0
mark://localhost:6309/demarkus-library/index.md demarkus-library ok 3
mark://localhost:6309/demarkus-library/roadmap.md Navigation rework — roadmap ok 2
mark://localhost:6309/index.md Demarkus Soul — Project Hub ok 5
mark://localhost:6309/junto/architecture.md Junto Architecture ok 0
mark://localhost:6309/junto/backlog.md Junto — Backlog ok 0
mark://localhost:6309/junto/index.md Junto Project Workspace ok 11
mark://localhost:6309/junto/journal.md Junto Journal ok 0
mark://localhost:6309/junto/patterns.md Junto Code Patterns & Conventions ok 1
mark://localhost:6309/junto/philosophy.md Junto — Core Philosophy ok 1
mark://localhost:6309/junto/plans/ Index of /junto/plans/ ok 33
mark://localhost:6309/junto/plans/anthropic-provider.md Plan: Add Anthropic Messages API Provider ok 0
mark://localhost:6309/junto/plans/architecture-cleanup.md Plan: Architecture Cleanup (Post-Provenance Audit) ok 0
mark://localhost:6309/junto/plans/awaiting-input.md Awaiting-Input Plan ok 0
mark://localhost:6309/junto/plans/coding-style-enforcement.md Coding Style Enforcement ok 0
mark://localhost:6309/junto/plans/command-palette.md Command Palette Implementation Plan ok 0
mark://localhost:6309/junto/plans/continuous-conversation.md Plan: Continuous Conversation ok 0
mark://localhost:6309/junto/plans/distributed-memory.md Distributed Memory — Plan ok 0
mark://localhost:6309/junto/plans/dual-cursors-animated-typing.md Plan: Dual Cursors + Animated Agent Typing ok 0
mark://localhost:6309/junto/plans/find-in-file.md Find in File (Ctrl+F) — Implementation Plan ok 0
mark://localhost:6309/junto/plans/headless-agent.md Headless Agent Mode ok 0
mark://localhost:6309/junto/plans/junto-analyze.md junto-analyze: session-log consumer ok 0
mark://localhost:6309/junto/plans/lint-adapter-architecture.md Lint Adapter Architecture ok 0
mark://localhost:6309/junto/plans/llm-config.md LLM Config: Global + Project Override ok 0
mark://localhost:6309/junto/plans/memory-integration.md Plan: Demarkus Memory Integration ok 0
mark://localhost:6309/junto/plans/milestone-2-context-set.md Milestone 2: Context Set — Implementation Plan ok 0
mark://localhost:6309/junto/plans/milestone-4-project-view.md Milestone 4: Project View Pane — Implementation Plan ok 0
mark://localhost:6309/junto/plans/oauth-providers.md OAuth Provider Integration Plan ok 0
mark://localhost:6309/junto/plans/phase-3-agent-tools.md Phase 3: Agent Tools (Bash + MCP) — Implementation Plan ok 0
mark://localhost:6309/junto/plans/phase4-lsp.md Phase 4: LSP Integration — Implementation Plan ok 0
mark://localhost:6309/junto/plans/phase5-dogfood-essentials.md Phase 5 Dogfood Essentials Plan ok 0
mark://localhost:6309/junto/plans/phase5-horizontal-scroll.md ok 0
mark://localhost:6309/junto/plans/phase5-tool-read-file.md ok 0
mark://localhost:6309/junto/plans/phase6-planning-mode.md Phase 6: Plans + Steps + Conversational Planning Mode ok 0
mark://localhost:6309/junto/plans/pi-mono-layering.md Pi-Mono-Style Layering — Architecture Refactor ok 3
mark://localhost:6309/junto/plans/project-schema-enforcement.md Project Schema Enforcement ok 0
mark://localhost:6309/junto/plans/prompt-caching.md Plan: Anthropic-Style Prompt Caching ok 0
mark://localhost:6309/junto/plans/provenance.md Plan: Session Provenance (Phase 2, Milestone 3) ok 0
mark://localhost:6309/junto/plans/strip-down-and-quality.md Strip-Down + Quality Plan ok 1
mark://localhost:6309/junto/plans/surgical-animation.md Plan: Surgical Edit Animation (Milestone 3.5) ok 0
mark://localhost:6309/junto/plans/terse-mode.md Plan: Terse Mode (Output Token Reduction) ok 0
mark://localhost:6309/junto/plans/textarea-component.md TextArea Component ok 0
mark://localhost:6309/junto/plans/token-telemetry.md Plan: Token Usage Telemetry ok 0
mark://localhost:6309/junto/plans/validation-pipeline-3-cuts.md Plan: Generalize Validation Pipeline (3 cuts) ok 0
mark://localhost:6309/junto/roadmap.md ok 1
mark://localhost:6309/junto/tui-architecture.md Junto TUI — Architecture Plan ok 2
mark://localhost:6309/nib/architecture.md Architecture ok 10
mark://localhost:6309/nib/debugging.md Debugging notes ok 0
mark://localhost:6309/nib/engineering-values.md Engineering Values ok 6
mark://localhost:6309/nib/index.md nib ok 76
mark://localhost:6309/nib/journal.md nib — Journal ok 63
mark://localhost:6309/nib/mission.md nib — Mission ok 5
mark://localhost:6309/nib/patterns.md Patterns ok 9
mark://localhost:6309/nib/plans/ Index of /nib/plans/ ok 35
mark://localhost:6309/nib/plans/agent-foundation.md Agent Foundation — Architecture Plan ok 3
mark://localhost:6309/nib/plans/agent-pane-collapse.md Agent Pane Collapse/Expand — Deferred Plan ok 0
mark://localhost:6309/nib/plans/agent-pane-file-picker.md Agent Pane @ File Picker — Deferred Plan ok 1
mark://localhost:6309/nib/plans/agent-pane-redesign.md Agent Pane Redesign — Trimmed Plan ok 0
mark://localhost:6309/nib/plans/agent-pane-tool-rows.md Agent Pane Tool Call Rows — Deferred Plan ok 0
mark://localhost:6309/nib/plans/agent-parked-event.md Plan — Agent-emitted AgentParked event (kit AgentWaiting race fix) ok 0
mark://localhost:6309/nib/plans/agent-token-efficiency.md Plan: Agent token efficiency — close the 180x gap with pi ok 0
mark://localhost:6309/nib/plans/apply-patch-tool.md Plan: apply_patch tool — Codex-style patch primitive for incremental edits ok 0
mark://localhost:6309/nib/plans/appmodel-decomposition.md AppModel Decomposition Plan ok 0
mark://localhost:6309/nib/plans/edit-tool-batching.md Plan: Edit-tool batching — close ~7–10 of the 24-turn gap to pi-agent ok 2
mark://localhost:6309/nib/plans/editor-vs-buffer-split.md Editor vs Buffer Handle Split ok 0
mark://localhost:6309/nib/plans/eval-toggle-ux.md Plan: Eval-toggle UX when no coding style is configured ok 0
mark://localhost:6309/nib/plans/global-skills-dir.md Plan: Global skills directory ok 2
mark://localhost:6309/nib/plans/kit-agent-port.md Plan: kit.AgentLifecycle port ok 7
mark://localhost:6309/nib/plans/kit-contracttest.md Plan: kit/contracttest/ + engine/contracttest/ — port contract test fixtures ok 0
mark://localhost:6309/nib/plans/kit-decorate.md Plan: kit decorator helpers (kit.DecorateProvider / DecorateStore / DecorateTool) ok 1
mark://localhost:6309/nib/plans/kit-event-bus.md Plan: kit.Agent.Subscribe — event bus as the consumption primitive ✅ ok 1
mark://localhost:6309/nib/plans/kit-registry.md Plan: kit.Toolset adds Commands — unified plug-in registration ok 0
mark://localhost:6309/nib/plans/kit-v1-versioning.md Plan: kit/v1/ — semver discipline for the public kit API ok 4
mark://localhost:6309/nib/plans/layer-3-codepath-rename.md Layer 3 — Junto → nib code-path rename ok 1
mark://localhost:6309/nib/plans/library-first.md Plan — nib as a Library; nib-code as Its Flagship Consumer ok 0
mark://localhost:6309/nib/plans/nibster.md Plan — nibster: General CLI Agent on Kit ok 1
mark://localhost:6309/nib/plans/phase-6-final-wiring.md Phase 6 — Final Wiring ok 1
mark://localhost:6309/nib/plans/plugin-metadata.md Plan: Plug-in metadata + introspection ✅ ok 1
mark://localhost:6309/nib/plans/session-decomposition.md Session Decomposition Plan ok 0
mark://localhost:6309/nib/plans/skills-adapter.md Plan: Skills adapter — model-invoked instruction bundles ok 0
mark://localhost:6309/nib/plans/slash-commands.md Plan — Slash Command Infrastructure ok 0
mark://localhost:6309/nib/plans/tool-output-cap.md Plan: per-tool-output cap — bound history growth from large tool results ok 0
mark://localhost:6309/nib/plans/tui-callback-split.md Plan: TUI callback split — generic vs coding-flavored ok 1
mark://localhost:6309/nib/plans/tui-facade.md Plan — tui.Run(Config) Facade ok 0
mark://localhost:6309/nib/plans/turn-count-investigation-data.md Turn-count investigation — Phase 1 + Phase 2 data ok 4
mark://localhost:6309/nib/plans/turn-count-investigation.md Plan: Turn-count investigation — close the 4.4x assistant-turn gap to pi-agent ok 6
mark://localhost:6309/nib/plans/update-task-bundling.md Update-Task Bundling — Fold update_task Into Mutating Tool Calls ok 3
mark://localhost:6309/nib/plans/validator-sidecar.md Plan: Validator sidecar protocol — out-of-process validators parallel to MCP ok 1
mark://localhost:6309/nib/plans/work-tree-gate-softening.md archived 0
mark://localhost:6309/nib/roadmap.md Roadmap ok 27
mark://soul.demarkus.io demarkus-soul ok 17
mark://soul.demarkus.io/ demarkus-soul ok 11
mark://soul.demarkus.io/architecture.md Architecture ok 1
mark://soul.demarkus.io/completed-plans.md Completed Plans ok 2
mark://soul.demarkus.io/conventions.md Conventions and Working Agreements ok 3
mark://soul.demarkus.io/debt.md Code Debt & Improvements ok 0
mark://soul.demarkus.io/debugging.md Debugging ok 0
mark://soul.demarkus.io/demarkus-knowledge-system-deploy/index.md demarkus-knowledge-system-deploy — Project Hub ok 1
mark://soul.demarkus.io/demarkus-knowledge-system-deploy/journal/2026-06-12.md 2026-06-12 — demarkus-library in-cluster deploy ok 0
mark://soul.demarkus.io/demarkus-library/adr/ Index of /demarkus-library/adr/ ok 6
mark://soul.demarkus.io/demarkus-library/adr/0001-echo-bulwarkauth-layout.md ADR 0001 — Echo + bulwarkauth-style layout for the front-end ok 0
mark://soul.demarkus.io/demarkus-library/adr/0002-hexagonal-architecture.md ADR 0002 — Hexagonal (ports & adapters) architecture ok 0
mark://soul.demarkus.io/demarkus-library/adr/0003-htmx-ssr-philosophy.md ADR 0003 — SSR-first, htmx-hard, no JSON ok 0
mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md ADR 0004 — Broker confidential web client + redirect SSO (reject device flow) ok 1
mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md ADR 0005 — The Reading Room: spatial trails over temporal history ok 1
mark://soul.demarkus.io/demarkus-library/adr/0006-navigation-rework.md not-found 0
mark://soul.demarkus.io/demarkus-library/adr/0006-reading-room-interaction-overlays.md 0
mark://soul.demarkus.io/demarkus-library/architecture.md demarkus-library — navigation architecture ok 0
mark://soul.demarkus.io/demarkus-library/audit-2026-06-18.md demarkus-library — Architecture & Code-Quality Audit (2026-06-18) ok 0
mark://soul.demarkus.io/demarkus-library/debt.md demarkus-library — Debt & Deferred Work ok 0
mark://soul.demarkus.io/demarkus-library/debugging.md demarkus-library — Debugging & Gotchas ok 0
mark://soul.demarkus.io/demarkus-library/index.md demarkus-library ok 16
mark://soul.demarkus.io/demarkus-library/journal/ Index of /demarkus-library/journal/ ok 10
mark://soul.demarkus.io/demarkus-library/journal/2026-06-10.md 2026-06-10 — demarkus-library Phase 0 ok 1
mark://soul.demarkus.io/demarkus-library/journal/2026-06-11.md 2026-06-11 — demarkus-library Phase 1b: plan + steps 2.2/2.5 ok 2
mark://soul.demarkus.io/demarkus-library/journal/2026-06-12.md 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-13.md 2026-06-13 — floor live + trail root-listing fix ok 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-14.md 2026-06-14 — world-view zoom level ok 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-15.md 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-18.md 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-19.md 2026-06-19 — Navigation rework kickoff ok 2
mark://soul.demarkus.io/demarkus-library/journal/2026-06-20.md 2026-06-20 — world-map crowding ok 0
mark://soul.demarkus.io/demarkus-library/journal/2026-06-23.md Journal — 2026-06-23 ok 0
mark://soul.demarkus.io/demarkus-library/patterns.md not-found 0
mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md Phase 1b — Web SSO over the Broker (two-repo plan) ok 3
mark://soul.demarkus.io/demarkus-library/plans/phase-2-restricted-collections.md 0
mark://soul.demarkus.io/demarkus-library/plans/phase-3-cataloging-desk.md 0
mark://soul.demarkus.io/demarkus-library/plans/phase-5-public-face.md Phase 5 — Public Face: the anonymous-read decision (plan) ok 1
mark://soul.demarkus.io/demarkus-library/plans/reader-mode.md 0
mark://soul.demarkus.io/demarkus-library/plans/reading-room.md The Reading Room — design notes (draft) ok 1
mark://soul.demarkus.io/demarkus-library/roadmap.md demarkus-library — Roadmap & Resume ok 20
mark://soul.demarkus.io/ecosystem.md Ecosystem ok 1
mark://soul.demarkus.io/faq.md FAQ ok 0
mark://soul.demarkus.io/guide.md Guide: Setting Up demarkus-soul ok 0
mark://soul.demarkus.io/guidelines.md Coding Guidelines ok 0
mark://soul.demarkus.io/index.md demarkus-soul ok 48
mark://soul.demarkus.io/journal.md Journal ok 4
mark://soul.demarkus.io/journal/ Index of /journal/ ok 48
mark://soul.demarkus.io/journal/2026-02-24.md Journal — 2026-02-24 ok 4
mark://soul.demarkus.io/journal/2026-02-26.md Journal — 2026-02-26 ok 0
mark://soul.demarkus.io/journal/2026-02-28.md Journal — 2026-02-28 ok 0
mark://soul.demarkus.io/journal/2026-03-01.md Journal — 2026-03-01 ok 0
mark://soul.demarkus.io/journal/2026-03-02.md Journal — 2026-03-02 ok 0
mark://soul.demarkus.io/journal/2026-03-03.md Journal — 2026-03-03 ok 0
mark://soul.demarkus.io/journal/2026-03-04.md Journal — 2026-03-04 ok 0
mark://soul.demarkus.io/journal/2026-03-05.md Journal — 2026-03-05 ok 0
mark://soul.demarkus.io/journal/2026-03-06.md Journal — 2026-03-06 ok 0
mark://soul.demarkus.io/journal/2026-03-07.md Journal — 2026-03-07 ok 0
mark://soul.demarkus.io/journal/2026-03-08.md Journal — 2026-03-08 ok 0
mark://soul.demarkus.io/journal/2026-03-11.md Journal — 2026-03-11 ok 0
mark://soul.demarkus.io/journal/2026-03-14.md Journal — 2026-03-14 ok 0
mark://soul.demarkus.io/journal/2026-03-16.md Journal — 2026-03-16 ok 0
mark://soul.demarkus.io/journal/2026-03-19.md Journal — 2026-03-19 ok 0
mark://soul.demarkus.io/journal/2026-04-08.md Journal — 2026-04-08 ok 0
mark://soul.demarkus.io/journal/2026-04-21.md Journal — 2026-04-21 ok 0
mark://soul.demarkus.io/journal/2026-04-24.md Journal — 2026-04-24 ok 0
mark://soul.demarkus.io/journal/2026-04-26.md Journal — 2026-04-26 ok 1
mark://soul.demarkus.io/journal/2026-05-05.md Journal — 2026-05-05 ok 0
mark://soul.demarkus.io/journal/2026-05-11.md Journal — 2026-05-11 ok 0
mark://soul.demarkus.io/journal/2026-05-12.md Journal — 2026-05-12 ok 0
mark://soul.demarkus.io/journal/2026-05-13.md Journal — 2026-05-13 ok 0
mark://soul.demarkus.io/journal/2026-05-14.md 2026-05-14 ok 0
mark://soul.demarkus.io/journal/2026-05-15.md 2026-05-15 — Universe Onboarding PR1 ok 0
mark://soul.demarkus.io/journal/2026-05-20.md 2026-05-20 — Universe Onboarding PR5 ok 1
mark://soul.demarkus.io/journal/2026-05-21.md 2026-05-21 ok 0
mark://soul.demarkus.io/journal/2026-05-22.md 2026-05-22 ok 0
mark://soul.demarkus.io/journal/2026-05-23.md 2026-05-23 ok 0
mark://soul.demarkus.io/journal/2026-05-26.md 2026-05-26 ok 0
mark://soul.demarkus.io/journal/2026-05-27.md 2026-05-27 ok 0
mark://soul.demarkus.io/journal/2026-05-28.md 2026-05-28 ok 1
mark://soul.demarkus.io/journal/2026-05-30.md Journal — 2026-05-30 ok 0
mark://soul.demarkus.io/journal/2026-05-31.md Journal — 2026-05-31 ok 0
mark://soul.demarkus.io/journal/2026-06-01.md demarkus-soul journal — 2026-06-01 ok 1
mark://soul.demarkus.io/journal/2026-06-02.md 2026-06-02 ok 0
mark://soul.demarkus.io/journal/2026-06-03.md 2026-06-03 ok 1
mark://soul.demarkus.io/journal/2026-06-06.md Journal — 2026-06-06 ok 0
mark://soul.demarkus.io/journal/2026-06-08.md 2026-06-08 — Broker-global OIDC AllowDomains gate ok 0
mark://soul.demarkus.io/journal/2026-06-11.md 2026-06-11 — Broker confidential web-client support (Phase 1b Step 1) ok 1
mark://soul.demarkus.io/journal/2026-06-12.md Journal — 2026-06-12 ok 0
mark://soul.demarkus.io/journal/2026-06-16.md 2026-06-16 — Knowledge ingestion pipeline design ok 1
mark://soul.demarkus.io/journal/2026-06-17.md 2026-06-17 — Knowledge ingestion phase 0: prerequisites (brokered half) ok 0
mark://soul.demarkus.io/journal/2026-06-21.md 2026-06-21 — Leiden clustering: built, measured, shelved as a grouping feature ok 0
mark://soul.demarkus.io/journal/2026-06-22.md Journal — 2026-06-22 ok 0
mark://soul.demarkus.io/journal/2026-06-23-pi-plugins.md demarkus journal — 2026-06-23 ok 0
mark://soul.demarkus.io/journal/2026-06-23.md 2026-06-23 — soul-doctor dangling-reference check ok 0
mark://soul.demarkus.io/journal/2026-06-25.md 2026-06-25 ok 0
mark://soul.demarkus.io/journal/auto-memory error 0
mark://soul.demarkus.io/obsidian-details.md not-found 0
mark://soul.demarkus.io/patterns.md Patterns & Conventions ok 2
mark://soul.demarkus.io/plans/broker-auth-code-grant.md Plan: Broker Authorization Code Grant ok 0
mark://soul.demarkus.io/plans/broker-deadcode-cleanup.md Broker — Post-Simplification Dead-Code Cleanup ok 0
mark://soul.demarkus.io/plans/broker-https-gateway.md Plan: Broker MCP Gateway (Knowledge-System Layer) ok 0
mark://soul.demarkus.io/plans/broker-stable-mint.md Broker — Lazy Token Provisioning + Cache-Stable Retries ok 0
mark://soul.demarkus.io/plans/claude-code-plugin.md Plan: Claude Code Plugin ok 0
mark://soul.demarkus.io/plans/conflict-merge.md Plan: Conflict-Aware Merge in MCP Tools ok 0
mark://soul.demarkus.io/plans/content-addressing.md Content-Addressed Fetch — Implementation Plan ok 0
mark://soul.demarkus.io/plans/external-links.md 0
mark://soul.demarkus.io/plans/federation.md Federation: Agent-Driven Hash Discovery ok 0
mark://soul.demarkus.io/plans/information-graph.md Information Graph — Implementation Plan ok 0
mark://soul.demarkus.io/plans/knowledge-ingestion.md Knowledge Ingestion Pipeline ok 0
mark://soul.demarkus.io/plans/knowledge-system-gke-deploy.md Knowledge System — GKE Reference Deployment ok 3
mark://soul.demarkus.io/plans/lookup-verb.md Plan: LOOKUP verb (topic/importance catalog) ok 1
mark://soul.demarkus.io/plans/obsidian-plugin.md Obsidian Plugin Plan ok 0
mark://soul.demarkus.io/plans/okf-type-adoption.md 0
mark://soul.demarkus.io/plans/persistent-graph.md Plan: Persistent Graph Store + Backlinks ok 0
mark://soul.demarkus.io/plans/plugin-knowledge-quality.md Plan: Plugin Knowledge-Quality Enforcement ok 0
mark://soul.demarkus.io/plans/poc-deployment.md archived 0
mark://soul.demarkus.io/plans/read-auth.md Read Auth for Private Networks — COMPLETE ok 0
mark://soul.demarkus.io/plans/search-verb.md archived 0
mark://soul.demarkus.io/plans/security-hardening.md Plan: Security Hardening & Documentation — COMPLETE ok 0
mark://soul.demarkus.io/plans/soul-join.md 0
mark://soul.demarkus.io/plans/universe-deployment.md Plan: Universe Deployment ok 0
mark://soul.demarkus.io/plans/universe-library.md Universe Library — Plan ok 1
mark://soul.demarkus.io/plans/universe-onboarding-pr3.md Plan: Universe Onboarding — PR3 (Broker device flow) ok 0
mark://soul.demarkus.io/plans/universe-onboarding-pr4.md Plan: Universe Onboarding — PR4 (Broker refresh tokens) ok 0
mark://soul.demarkus.io/plans/universe-onboarding-pr5.md Plan: Universe Onboarding — PR5 (/me/install) ok 0
mark://soul.demarkus.io/plans/universe-onboarding.md Plan: Universe Onboarding ok 0
mark://soul.demarkus.io/plans/versions-sharding.md Versions Directory Sharding ok 0
mark://soul.demarkus.io/plugins/obsidian/index.md Obsidian Plugin — obsidian-demarkus ok 2
mark://soul.demarkus.io/plugins/obsidian/plan.md Obsidian Plugin Plan ok 0
mark://soul.demarkus.io/roadmap.md Roadmap ok 8
mark://soul.demarkus.io/thoughts.md Thoughts ok 1
mark://soul.demarkus.io/universe.md The Universe Pattern ok 4

Edges

From To
mark://127.0.0.1:6401/adr/ltv-rule.md mark://127.0.0.1:6401/credit-policy.md
mark://127.0.0.1:6401/adr/ltv-rule.md mark://127.0.0.1:6402/arrears-rules.md
mark://127.0.0.1:6401/adr/ltv-rule.md mark://127.0.0.1:6403/graph.md
mark://127.0.0.1:6401/credit-policy.md mark://127.0.0.1:6401/adr/ltv-rule.md
mark://127.0.0.1:6401/credit-policy.md mark://127.0.0.1:6402/payment-flows.md
mark://127.0.0.1:6401/decisioning-rules.md mark://127.0.0.1:6401/credit-policy.md
mark://127.0.0.1:6402/ mark://127.0.0.1:6402/arrears-rules.md
mark://127.0.0.1:6402/ mark://127.0.0.1:6402/escrow-calc.md
mark://127.0.0.1:6402/ mark://127.0.0.1:6402/journal.md
mark://127.0.0.1:6402/ mark://127.0.0.1:6402/payment-flows.md
mark://127.0.0.1:6402/arrears-rules.md mark://127.0.0.1:6401/adr/ltv-rule.md
mark://127.0.0.1:6402/payment-flows.md mark://127.0.0.1:6401/adr/ltv-rule.md
mark://127.0.0.1:6402/payment-flows.md mark://127.0.0.1:6402/arrears-rules.md
mark://127.0.0.1:6402/payment-flows.md mark://127.0.0.1:6402/escrow-calc.md
mark://docs.demarkus.io mark://docs.demarkus.io/DESIGN.md
mark://docs.demarkus.io mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io mark://docs.demarkus.io/architecture/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/client/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/philosophy/agent-queue-template.md
mark://docs.demarkus.io mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/security/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io mark://docs.demarkus.io/tools/index.md
mark://docs.demarkus.io/architecture/index.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/architecture/index.md mark://docs.demarkus.io/index.md
mark://docs.demarkus.io/architecture/index.md mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io/client/index.md mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io/client/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/client/index.md mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io/client/index.md mark://docs.demarkus.io/tools/index.md
mark://docs.demarkus.io/deployment/index.md mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io/deployment/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/deployment/index.md mark://docs.demarkus.io/security/index.md
mark://docs.demarkus.io/deployment/index.md mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/DESIGN.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/architecture/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/client/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/philosophy/agent-queue-template.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/security/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io/index.md mark://docs.demarkus.io/tools/index.md
mark://docs.demarkus.io/install/index.md https://github.com/latebit-io/demarkus/releases
mark://docs.demarkus.io/install/index.md mark://docs.demarkus.io/client/index.md
mark://docs.demarkus.io/install/index.md mark://docs.demarkus.io/security/index.md
mark://docs.demarkus.io/install/index.md mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io/philosophy/agent-cookbook.md mark://docs.demarkus.io/architecture/index.md
mark://docs.demarkus.io/philosophy/agent-cookbook.md mark://docs.demarkus.io/index.md
mark://docs.demarkus.io/philosophy/agent-cookbook.md mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io/philosophy/agent-cookbook.md mark://docs.demarkus.io/philosophy/why-demarkus.md
mark://docs.demarkus.io/philosophy/agent-queue-template.md mark://docs.demarkus.io/index.md
mark://docs.demarkus.io/philosophy/agent-queue-template.md mark://docs.demarkus.io/philosophy/agent-cookbook.md
mark://docs.demarkus.io/philosophy/agent-queue-template.md mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/architecture/index.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/index.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/philosophy/agent-cookbook.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/philosophy/agent-queue-template.md
mark://docs.demarkus.io/philosophy/index.md mark://docs.demarkus.io/philosophy/why-demarkus.md
mark://docs.demarkus.io/philosophy/why-demarkus.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/philosophy/why-demarkus.md mark://docs.demarkus.io/architecture/index.md
mark://docs.demarkus.io/philosophy/why-demarkus.md mark://docs.demarkus.io/index.md
mark://docs.demarkus.io/philosophy/why-demarkus.md mark://docs.demarkus.io/philosophy/index.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/client/index.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/reference/agent-manifest.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/server/index.md
mark://docs.demarkus.io/reference/index.md mark://docs.demarkus.io/tools/index.md
mark://docs.demarkus.io/security/index.md mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io/security/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/security/index.md mark://docs.demarkus.io/tools/index.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/SPEC.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/client/index.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/deployment/index.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/server/index.md mark://docs.demarkus.io/security/index.md
mark://docs.demarkus.io/tools/index.md mark://docs.demarkus.io/install/index.md
mark://docs.demarkus.io/tools/index.md mark://docs.demarkus.io/reference/index.md
mark://docs.demarkus.io/tools/index.md mark://docs.demarkus.io/server/index.md
mark://hub.demarkus.io mark://hub.demarkus.io/agents.md
mark://hub.demarkus.io mark://hub.demarkus.io/blogs.md
mark://hub.demarkus.io mark://hub.demarkus.io/hubs.md
mark://hub.demarkus.io mark://hub.demarkus.io/indexes/soul.md
mark://hub.demarkus.io mark://hub.demarkus.io/personal.md
mark://hub.demarkus.io mark://hub.demarkus.io/projects.md
mark://hub.demarkus.io mark://hub.demarkus.io/setup.md
mark://hub.demarkus.io mark://hub.demarkus.io/tools.md
mark://hub.demarkus.io/hubs.md mark://hub.demarkus.io
mark://hub.demarkus.io/hubs.md mark://hub.demarkus.io/setup.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/agents.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/blogs.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/hubs.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/indexes/soul.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/personal.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/projects.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/setup.md
mark://hub.demarkus.io/index.md mark://hub.demarkus.io/tools.md
mark://hub.demarkus.io/projects.md mark://docs.demarkus.io
mark://hub.demarkus.io/projects.md mark://soul.demarkus.io
mark://hub.demarkus.io/setup.md mark://hub.demarkus.io/index.md
mark://localhost/nib/architecture.md mark://localhost/nib/engineering-values.md
mark://localhost/nib/architecture.md mark://localhost/nib/journal.md
mark://localhost/nib/architecture.md mark://localhost/nib/patterns.md
mark://localhost/nib/architecture.md mark://localhost/nib/plans/
mark://localhost/nib/architecture.md mark://localhost/nib/plans/editor-vs-buffer-split.md
mark://localhost/nib/engineering-values.md mark://localhost/nib/architecture.md
mark://localhost/nib/engineering-values.md mark://localhost/nib/mission.md
mark://localhost/nib/engineering-values.md mark://localhost/nib/patterns.md
mark://localhost/nib/engineering-values.md mark://localhost/nib/plans/
mark://localhost/nib/engineering-values.md mark://localhost/nib/plans/library-first.md
mark://localhost/nib/engineering-values.md mark://localhost/nib/roadmap.md
mark://localhost/nib/mission.md mark://localhost/junto/philosophy.md
mark://localhost/nib/mission.md mark://localhost/nib/engineering-values.md
mark://localhost/nib/mission.md mark://localhost/nib/roadmap.md
mark://localhost/nib/patterns.md mark://localhost/nib/architecture.md
mark://localhost/nib/patterns.md mark://localhost/nib/engineering-values.md
mark://localhost/nib/patterns.md mark://localhost/nib/roadmap.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-foundation.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-pane-collapse.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-pane-file-picker.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-pane-redesign.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-pane-tool-rows.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-parked-event.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/agent-token-efficiency.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/apply-patch-tool.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/appmodel-decomposition.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/edit-tool-batching.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/editor-vs-buffer-split.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/eval-toggle-ux.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/global-skills-dir.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-agent-port.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-contracttest.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-decorate.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-event-bus.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-registry.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/kit-v1-versioning.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/layer-3-codepath-rename.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/library-first.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/nibster.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/phase-6-final-wiring.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/plugin-metadata.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/session-decomposition.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/skills-adapter.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/slash-commands.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/tool-output-cap.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/tui-callback-split.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/tui-facade.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/turn-count-investigation-data.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/turn-count-investigation.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/update-task-bundling.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/validator-sidecar.md
mark://localhost/nib/plans/ mark://localhost/nib/plans/work-tree-gate-softening.md
mark://localhost/nib/plans/agent-foundation.md mark://localhost/junto/plans/pi-mono-layering.md
mark://localhost/nib/plans/agent-foundation.md mark://localhost/nib/plans/phase-6-final-wiring.md
mark://localhost/nib/plans/agent-pane-file-picker.md file:///Users/fritz/latebit/nib/tui/ui/model_selector.go
mark://localhost/nib/roadmap.md mark://localhost/nib/architecture.md
mark://localhost/nib/roadmap.md mark://localhost/nib/debugging.md
mark://localhost/nib/roadmap.md mark://localhost/nib/index.md
mark://localhost/nib/roadmap.md mark://localhost/nib/journal.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/agent-pane-collapse.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/agent-pane-redesign.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/apply-patch-tool.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/appmodel-decomposition.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/editor-vs-buffer-split.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/eval-toggle-ux.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/kit-agent-port.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/kit-contracttest.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/kit-decorate.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/kit-event-bus.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/kit-registry.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/library-first.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/plugin-metadata.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/session-decomposition.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/slash-commands.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/tool-output-cap.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/tui-callback-split.md
mark://localhost/nib/roadmap.md mark://localhost/nib/plans/validator-sidecar.md
mark://localhost:6309/ mark://localhost:6309/demarkus-library/adr/0006-navigation-rework.md
mark://localhost:6309/ mark://localhost:6309/demarkus-library/index.md
mark://localhost:6309/ mark://localhost:6309/demarkus-library/roadmap.md
mark://localhost:6309/ mark://localhost:6309/junto/index.md
mark://localhost:6309/ mark://localhost:6309/nib/index.md
mark://localhost:6309/demarkus-library/index.md mark://localhost:6309/demarkus-library/adr/0006-navigation-rework.md
mark://localhost:6309/demarkus-library/index.md mark://localhost:6309/demarkus-library/architecture.md
mark://localhost:6309/demarkus-library/index.md mark://localhost:6309/demarkus-library/roadmap.md
mark://localhost:6309/demarkus-library/roadmap.md mark://localhost:6309/demarkus-library/adr/0006-navigation-rework.md
mark://localhost:6309/demarkus-library/roadmap.md mark://localhost:6309/demarkus-library/architecture.md
mark://localhost:6309/index.md mark://localhost:6309/demarkus-library/adr/0006-navigation-rework.md
mark://localhost:6309/index.md mark://localhost:6309/demarkus-library/index.md
mark://localhost:6309/index.md mark://localhost:6309/demarkus-library/roadmap.md
mark://localhost:6309/index.md mark://localhost:6309/junto/index.md
mark://localhost:6309/index.md mark://localhost:6309/nib/index.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/architecture.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/backlog.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/journal.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/patterns.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/philosophy.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/plans/
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/roadmap.md
mark://localhost:6309/junto/index.md mark://localhost:6309/junto/tui-architecture.md
mark://localhost:6309/junto/index.md mark://localhost:6309/nib/index.md
mark://localhost:6309/junto/patterns.md mark://localhost:6309/junto/architecture.md
mark://localhost:6309/junto/philosophy.md mark://localhost:6309/nib/mission.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/anthropic-provider.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/architecture-cleanup.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/awaiting-input.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/coding-style-enforcement.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/command-palette.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/continuous-conversation.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/distributed-memory.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/dual-cursors-animated-typing.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/find-in-file.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/headless-agent.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/junto-analyze.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/lint-adapter-architecture.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/llm-config.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/memory-integration.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/milestone-2-context-set.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/milestone-4-project-view.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/oauth-providers.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase-3-agent-tools.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase4-lsp.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase5-dogfood-essentials.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase5-horizontal-scroll.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase5-tool-read-file.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/phase6-planning-mode.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/pi-mono-layering.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/project-schema-enforcement.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/prompt-caching.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/provenance.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/strip-down-and-quality.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/surgical-animation.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/terse-mode.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/textarea-component.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/token-telemetry.md
mark://localhost:6309/junto/plans/ mark://localhost:6309/junto/plans/validation-pipeline-3-cuts.md
mark://localhost:6309/junto/plans/pi-mono-layering.md mark://localhost:6309/nib/plans/agent-foundation.md
mark://localhost:6309/junto/plans/strip-down-and-quality.md https://github.com/davidondrej/pi-agent/tree/main/packages/coding-agent
mark://localhost:6309/junto/roadmap.md mark://localhost:6309/junto/tui-architecture.md
mark://localhost:6309/junto/tui-architecture.md mark://localhost:6309/junto/roadmap.md
mark://localhost:6309/nib/architecture.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/architecture.md mark://localhost:6309/nib/journal.md
mark://localhost:6309/nib/architecture.md mark://localhost:6309/nib/patterns.md
mark://localhost:6309/nib/architecture.md mark://localhost:6309/nib/plans/
mark://localhost:6309/nib/architecture.md mark://localhost:6309/nib/plans/editor-vs-buffer-split.md
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/architecture.md
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/mission.md
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/patterns.md
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/plans/
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/engineering-values.md mark://localhost:6309/nib/roadmap.md
mark://localhost:6309/nib/index.md mark://localhost:6309/junto/architecture.md
mark://localhost:6309/nib/index.md mark://localhost:6309/junto/index.md
mark://localhost:6309/nib/index.md mark://localhost:6309/junto/patterns.md
mark://localhost:6309/nib/index.md mark://localhost:6309/junto/philosophy.md
mark://localhost:6309/nib/index.md mark://localhost:6309/junto/roadmap.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/architecture.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/debugging.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/journal.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/mission.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/patterns.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/agent-foundation.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/agent-pane-collapse.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/agent-pane-redesign.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/agent-parked-event.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/agent-token-efficiency.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/apply-patch-tool.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/appmodel-decomposition.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/edit-tool-batching.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/editor-vs-buffer-split.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/eval-toggle-ux.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/global-skills-dir.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-agent-port.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-contracttest.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-decorate.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-event-bus.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/kit-v1-versioning.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/layer-3-codepath-rename.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/nibster.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/phase-6-final-wiring.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/plugin-metadata.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/session-decomposition.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/skills-adapter.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/slash-commands.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/tool-output-cap.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/tui-callback-split.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/tui-facade.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/turn-count-investigation-data.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/turn-count-investigation.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/update-task-bundling.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/plans/validator-sidecar.md
mark://localhost:6309/nib/index.md mark://localhost:6309/nib/roadmap.md
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/ai/llm/codex_api.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/ai/llm/codex_probe.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/cmd/nib-code/main.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/coding/agent/compact.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/coding/agent/context_snapshot.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/coding/command/context.go
mark://localhost:6309/nib/journal.md file:///Users/fritz/latebit/nib/tui/tui.go
mark://localhost:6309/nib/journal.md mark://localhost:6309/junto/philosophy.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/junto/plans/pi-mono-layering.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/architecture.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/index.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/mission.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/patterns.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-foundation.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-pane-collapse.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-pane-file-picker.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-pane-redesign.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-parked-event.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/agent-token-efficiency.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/appmodel-decomposition.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/edit-tool-batching.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/eval-toggle-ux.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/global-skills-dir.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/kit-contracttest.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/kit-event-bus.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/kit-v1-versioning.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/plugin-metadata.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/session-decomposition.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/skills-adapter.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/slash-commands.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/tui-callback-split.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/tui-facade.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/turn-count-investigation-data.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/turn-count-investigation.md
mark://localhost:6309/nib/journal.md mark://localhost:6309/nib/plans/validator-sidecar.md
mark://localhost:6309/nib/mission.md mark://localhost:6309/junto/philosophy.md
mark://localhost:6309/nib/mission.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/mission.md mark://localhost:6309/nib/roadmap.md
mark://localhost:6309/nib/patterns.md mark://localhost:6309/nib/architecture.md
mark://localhost:6309/nib/patterns.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/patterns.md mark://localhost:6309/nib/roadmap.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-foundation.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-pane-collapse.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-pane-file-picker.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-pane-redesign.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-pane-tool-rows.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-parked-event.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/agent-token-efficiency.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/apply-patch-tool.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/appmodel-decomposition.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/edit-tool-batching.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/editor-vs-buffer-split.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/eval-toggle-ux.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/global-skills-dir.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-agent-port.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-contracttest.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-decorate.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-event-bus.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/kit-v1-versioning.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/layer-3-codepath-rename.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/nibster.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/phase-6-final-wiring.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/plugin-metadata.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/session-decomposition.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/skills-adapter.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/slash-commands.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/tool-output-cap.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/tui-callback-split.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/tui-facade.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/turn-count-investigation-data.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/turn-count-investigation.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/update-task-bundling.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/validator-sidecar.md
mark://localhost:6309/nib/plans/ mark://localhost:6309/nib/plans/work-tree-gate-softening.md
mark://localhost:6309/nib/plans/agent-foundation.md mark://localhost:6309/junto/plans/pi-mono-layering.md
mark://localhost:6309/nib/plans/agent-foundation.md mark://localhost:6309/nib/plans/phase-6-final-wiring.md
mark://localhost:6309/nib/plans/agent-pane-file-picker.md file:///Users/fritz/latebit/nib/tui/ui/model_selector.go
mark://localhost:6309/nib/plans/edit-tool-batching.md mark://localhost:6309/nib/plans/turn-count-investigation-data.md
mark://localhost:6309/nib/plans/global-skills-dir.md mark://localhost:6309/nib/plans/nibster.md
mark://localhost:6309/nib/plans/global-skills-dir.md mark://localhost:6309/nib/plans/skills-adapter.md
mark://localhost:6309/nib/plans/kit-agent-port.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/plans/kit-agent-port.md mark://localhost:6309/nib/plans/tui-callback-split.md
mark://localhost:6309/nib/plans/kit-agent-port.md mark://localhost:6309/nib/roadmap.md
mark://localhost:6309/nib/plans/kit-decorate.md mark://localhost:6309/nib/engineering-values.md
mark://localhost:6309/nib/plans/kit-event-bus.md mark://localhost/nib/engineering-values.md
mark://localhost:6309/nib/plans/kit-v1-versioning.md mark://localhost:6309/nib/plans/kit-contracttest.md
mark://localhost:6309/nib/plans/kit-v1-versioning.md mark://localhost:6309/nib/plans/kit-decorate.md
mark://localhost:6309/nib/plans/kit-v1-versioning.md mark://localhost:6309/nib/plans/kit-event-bus.md
mark://localhost:6309/nib/plans/kit-v1-versioning.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/plans/layer-3-codepath-rename.md mark://localhost:6309/nib/journal.md
mark://localhost:6309/nib/plans/nibster.md mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/plans/phase-6-final-wiring.md mark://localhost:6309/nib/plans/agent-foundation.md
mark://localhost:6309/nib/plans/plugin-metadata.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/plans/tui-callback-split.md mark://localhost:6309/nib/plans/kit-agent-port.md
mark://localhost:6309/nib/plans/turn-count-investigation-data.md mark://localhost:6309/nib/plans/edit-tool-batching.md
mark://localhost:6309/nib/plans/turn-count-investigation-data.md mark://localhost:6309/nib/plans/turn-count-investigation.md
mark://localhost:6309/nib/plans/turn-count-investigation.md mark://localhost:6309/nib/plans/agent-token-efficiency.md
mark://localhost:6309/nib/plans/turn-count-investigation.md mark://localhost:6309/nib/plans/edit-tool-batching.md
mark://localhost:6309/nib/plans/turn-count-investigation.md mark://localhost:6309/nib/plans/turn-count-investigation-data.md
mark://localhost:6309/nib/plans/update-task-bundling.md mark://localhost:6309/
mark://localhost:6309/nib/plans/update-task-bundling.md mark://localhost:6309/nib/plans/turn-count-investigation.md
mark://localhost:6309/nib/plans/validator-sidecar.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/architecture.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/debugging.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/index.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/journal.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/agent-pane-collapse.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/agent-pane-redesign.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/apply-patch-tool.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/appmodel-decomposition.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/editor-vs-buffer-split.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/eval-toggle-ux.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/kit-agent-port.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/kit-contracttest.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/kit-decorate.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/kit-event-bus.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/kit-registry.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/library-first.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/plugin-metadata.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/session-decomposition.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/slash-commands.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/tool-output-cap.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/tui-callback-split.md
mark://localhost:6309/nib/roadmap.md mark://localhost:6309/nib/plans/validator-sidecar.md
mark://soul.demarkus.io mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io mark://soul.demarkus.io/completed-plans.md
mark://soul.demarkus.io mark://soul.demarkus.io/debt.md
mark://soul.demarkus.io mark://soul.demarkus.io/debugging.md
mark://soul.demarkus.io mark://soul.demarkus.io/faq.md
mark://soul.demarkus.io mark://soul.demarkus.io/guide.md
mark://soul.demarkus.io mark://soul.demarkus.io/guidelines.md
mark://soul.demarkus.io mark://soul.demarkus.io/journal.md
mark://soul.demarkus.io mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io mark://soul.demarkus.io/plans/content-addressing.md
mark://soul.demarkus.io mark://soul.demarkus.io/plans/federation.md
mark://soul.demarkus.io mark://soul.demarkus.io/plans/persistent-graph.md
mark://soul.demarkus.io mark://soul.demarkus.io/plans/read-auth.md
mark://soul.demarkus.io mark://soul.demarkus.io/plans/security-hardening.md
mark://soul.demarkus.io mark://soul.demarkus.io/plugins/obsidian/index.md
mark://soul.demarkus.io mark://soul.demarkus.io/roadmap.md
mark://soul.demarkus.io mark://soul.demarkus.io/thoughts.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/debt.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/debugging.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/guide.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/journal.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/plans/content-addressing.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/plans/federation.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/plans/persistent-graph.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/roadmap.md
mark://soul.demarkus.io/ mark://soul.demarkus.io/thoughts.md
mark://soul.demarkus.io/architecture.md mark://soul.demarkus.io/plans/lookup-verb.md
mark://soul.demarkus.io/completed-plans.md mark://soul.demarkus.io/plans/okf-type-adoption.md
mark://soul.demarkus.io/completed-plans.md mark://soul.demarkus.io/plans/soul-join.md
mark://soul.demarkus.io/conventions.md mark://soul.demarkus.io/guidelines.md
mark://soul.demarkus.io/conventions.md mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/demarkus-knowledge-system-deploy/index.md mark://soul.demarkus.io/demarkus-knowledge-system-deploy/journal/2026-06-12.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0001-echo-bulwarkauth-layout.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0002-hexagonal-architecture.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0003-htmx-ssr-philosophy.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md
mark://soul.demarkus.io/demarkus-library/adr/ mark://soul.demarkus.io/demarkus-library/adr/0006-reading-room-interaction-overlays.md
mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md
mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md mark://soul.demarkus.io/demarkus-library/plans/reading-room.md
mark://soul.demarkus.io/demarkus-library/adr/0006-reading-room-interaction-overlays.md mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/adr/
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/adr/0001-echo-bulwarkauth-layout.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/adr/0002-hexagonal-architecture.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/adr/0003-htmx-ssr-philosophy.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/architecture.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/debt.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/debugging.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/journal/
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/journal/2026-06-10.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/patterns.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/demarkus-library/roadmap.md
mark://soul.demarkus.io/demarkus-library/index.md mark://soul.demarkus.io/plans/universe-library.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-10.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-11.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-12.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-13.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-14.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-15.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-18.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-19.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-20.md
mark://soul.demarkus.io/demarkus-library/journal/ mark://soul.demarkus.io/demarkus-library/journal/2026-06-23.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-10.md mark://soul.demarkus.io/demarkus-library/roadmap.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-11.md mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-11.md mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-12.md mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-12.md mark://soul.demarkus.io/demarkus-library/plans/reading-room.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-19.md mark://soul.demarkus.io/demarkus-library/adr/0006-navigation-rework.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-19.md mark://soul.demarkus.io/demarkus-library/adr/0006-reading-room-interaction-overlays.md
mark://soul.demarkus.io/demarkus-library/journal/2026-06-19.md mark://soul.demarkus.io/demarkus-library/roadmap.md
mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md mark://soul.demarkus.io/demarkus-library/adr/0004-broker-web-sso.md
mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md mark://soul.demarkus.io/demarkus-library/roadmap.md
mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md mark://soul.demarkus.io/journal/2026-06-11.md
mark://soul.demarkus.io/demarkus-library/plans/phase-5-public-face.md mark://soul.demarkus.io/plans/universe-library.md
mark://soul.demarkus.io/demarkus-library/plans/reading-room.md mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/adr/0005-reading-room-spatial-trail.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/adr/0006-reading-room-interaction-overlays.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/audit-2026-06-18.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/debugging.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/journal/2026-06-12.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/journal/2026-06-13.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/journal/2026-06-15.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/journal/2026-06-18.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/plans/phase-2-restricted-collections.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/plans/phase-3-cataloging-desk.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/plans/phase-5-public-face.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/plans/reader-mode.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/demarkus-library/plans/reading-room.md
mark://soul.demarkus.io/demarkus-library/roadmap.md mark://soul.demarkus.io/plans/universe-library.md
mark://soul.demarkus.io/ecosystem.md mark://soul.demarkus.io/plans/claude-code-plugin.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/completed-plans.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/conventions.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/debt.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/debugging.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/demarkus-knowledge-system-deploy/index.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/demarkus-library/index.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/demarkus-library/roadmap.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/ecosystem.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/faq.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/guide.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/guidelines.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/journal/
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/broker-auth-code-grant.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/broker-deadcode-cleanup.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/broker-https-gateway.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/broker-stable-mint.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/claude-code-plugin.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/conflict-merge.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/content-addressing.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/federation.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/information-graph.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/knowledge-ingestion.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/knowledge-system-gke-deploy.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/lookup-verb.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/obsidian-plugin.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/persistent-graph.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/plugin-knowledge-quality.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/poc-deployment.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/read-auth.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/search-verb.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/security-hardening.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-deployment.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-library.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-onboarding-pr3.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-onboarding-pr4.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-onboarding-pr5.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/universe-onboarding.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plans/versions-sharding.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/plugins/obsidian/index.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/roadmap.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/thoughts.md
mark://soul.demarkus.io/index.md mark://soul.demarkus.io/universe.md
mark://soul.demarkus.io/journal.md mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/journal.md mark://soul.demarkus.io/debugging.md
mark://soul.demarkus.io/journal.md mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/journal.md mark://soul.demarkus.io/roadmap.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-02-24.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-02-26.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-02-28.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-01.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-02.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-03.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-04.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-05.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-06.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-07.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-08.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-11.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-14.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-16.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-03-19.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-04-08.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-04-21.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-04-24.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-04-26.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-05.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-11.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-12.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-13.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-14.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-15.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-20.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-21.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-22.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-23.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-26.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-27.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-28.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-30.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-05-31.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-01.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-02.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-03.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-06.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-08.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-11.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-12.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-16.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-17.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-21.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-22.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-23-pi-plugins.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-23.md
mark://soul.demarkus.io/journal/ mark://soul.demarkus.io/journal/2026-06-25.md
mark://soul.demarkus.io/journal/2026-02-24.md mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/journal/2026-02-24.md mark://soul.demarkus.io/debugging.md
mark://soul.demarkus.io/journal/2026-02-24.md mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/journal/2026-02-24.md mark://soul.demarkus.io/roadmap.md
mark://soul.demarkus.io/journal/2026-04-24.md mark://soul.demarkus.io/journal/auto-memory
mark://soul.demarkus.io/journal/2026-04-26.md mark://soul.demarkus.io/universe.md
mark://soul.demarkus.io/journal/2026-05-20.md https://modelcontextprotocol.io/specification/2025-03-26/basic/transports
mark://soul.demarkus.io/journal/2026-05-28.md mark://soul.demarkus.io/plans/broker-stable-mint.md
mark://soul.demarkus.io/journal/2026-06-01.md mark://soul.demarkus.io/plans/plugin-knowledge-quality.md
mark://soul.demarkus.io/journal/2026-06-03.md mark://soul.demarkus.io/patterns.md
mark://soul.demarkus.io/journal/2026-06-11.md mark://soul.demarkus.io/demarkus-library/plans/phase-1b-web-sso.md
mark://soul.demarkus.io/journal/2026-06-16.md mark://soul.demarkus.io/plans/knowledge-ingestion.md
mark://soul.demarkus.io/patterns.md mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/patterns.md mark://soul.demarkus.io/plans/lookup-verb.md
mark://soul.demarkus.io/plans/external-links.md https://github.com/latebit-io/demarkus/issues/75
mark://soul.demarkus.io/plans/knowledge-system-gke-deploy.md https://github.com/latebit-io/demarkus-knowledge-system-deploy
mark://soul.demarkus.io/plans/knowledge-system-gke-deploy.md mark://soul.demarkus.io/plans/universe-deployment.md
mark://soul.demarkus.io/plans/knowledge-system-gke-deploy.md mark://soul.demarkus.io/plans/universe-onboarding.md
mark://soul.demarkus.io/plans/lookup-verb.md https://github.com/latebit-io/demarkus/issues/113
mark://soul.demarkus.io/plans/universe-library.md mark://soul.demarkus.io/demarkus-library/plans/phase-5-public-face.md
mark://soul.demarkus.io/plugins/obsidian/index.md https://github.com/latebit-io/obsidian-demarkus
mark://soul.demarkus.io/plugins/obsidian/index.md mark://soul.demarkus.io/obsidian-details.md
mark://soul.demarkus.io/plugins/obsidian/index.md mark://soul.demarkus.io/plugins/obsidian/plan.md
mark://soul.demarkus.io/roadmap.md https://github.com/latebit-io/demarkus-hub
mark://soul.demarkus.io/roadmap.md https://github.com/latebit-io/demarkus/issues/113
mark://soul.demarkus.io/roadmap.md https://github.com/latebit-io/demarkus/issues/75
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/claude-code-plugin.md
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/external-links.md
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/lookup-verb.md
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/read-auth.md
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/security-hardening.md
mark://soul.demarkus.io/roadmap.md mark://soul.demarkus.io/plans/universe-deployment.md
mark://soul.demarkus.io/thoughts.md https://github.com/gszhangwei/open-spdd
mark://soul.demarkus.io/universe.md https://demarkus.io/blog/creating-an-automated-knowledge-universe/
mark://soul.demarkus.io/universe.md mark://soul.demarkus.io/architecture.md
mark://soul.demarkus.io/universe.md mark://soul.demarkus.io/ecosystem.md
mark://soul.demarkus.io/universe.md mark://soul.demarkus.io/roadmap.md
soul.demarkus.io/plans/universe-onboarding-pr4.md draft reader meta

Plan: Universe Onboarding — PR4 (Broker refresh tokens)

Sub-plan for plan §PR4 of /plans/universe-onboarding.md. Picked up after PR3 (#137, broker device flow) merged 2026-05-15. Ready to start cold next session: this doc plus /plans/universe-onboarding.md + /journal/2026-05-15.md is sufficient context.

Goal

After PR4 lands, a device-flow client that completed /device/token once can mint fresh id_token + access_token from the broker indefinitely (up to the refresh-token TTL, default 90 days) without re-running the device-code dance. Concretely:

  1. POST /device/token success body now carries refresh_token (32-byte opaque, hex-encoded).
  2. POST /device/token with grant_type=refresh_token exchanges the refresh token for a fresh ID-token + access-token pair. Existing grant_type=urn:ietf:params:oauth:grant-type:device_code keeps working unchanged.
  3. POST /token/revoke (RFC 7009) drops a refresh token from the broker. Called by /soul-leave (PR7) and on user-IdP-disable detection.
  4. Refresh tokens live in a broker-namespace Kubernetes Secret (demarkus-broker-refresh-tokens) keyed by hash — same shape as the issuances Secret. Survives broker restarts (unlike the device-flow grants).
  5. Existing sweeper picks up expired refresh tokens on its tick.

PR5 (/me/install) consumes the broker-minted id_token as a bearer to fetch the per-world install bundle. PR6 (tools/demarkus-join) is the binary that drives all of this. Each PR keeps reviewable in isolation.

Non-Negotiables Inherited

  • No protocol changes. Same as the parent plan.
  • No demarkus-server changes. All work in tools/demarkus-broker/.
  • No MVPs, no shortcuts. Full RFC 6749 §6 (refresh token grant) + RFC 7009 (revocation). Real Secret-backed storage from day one; do not stash in-memory.
  • Single broker. Refresh tokens persisted in a single broker-namespace Secret. Multi-replica reads/writes use the same optimistic-concurrency Secret pattern the issuances store uses (see mutateSecret).

Out of Scope (explicit, for PR4 specifically)

  • Refresh-token rotation. OAuth 2.1 best practice rotates the refresh token on each use. PR4 returns the SAME refresh_token on each successful refresh. Rotation adds a "previous-refresh-token grace window" + replay-detection that's a clean +200 LOC follow-up; defer unless a customer asks for it.
  • Broker-signed id_tokens. The plan's §PR4 row mentions "re-fetches user info from IdP via stored refresh-on-IdP token, OR re-uses cached claims with a TTL." PR4 takes the cached-claims path: store the verified Claims at device-code bind time, return them verbatim on refresh. Broker-signed id_tokens (with broker-hosted JWKS) is PR4-adjacent work but adds key-management surface (rotation, JWKS endpoint) that doubles PR4's scope. Defer to a later PR; document the gap in /architecture.md.
  • Refresh against the IdP. The broker does NOT carry an IdP refresh token. Storing one would require the broker to be a registered confidential client at the IdP with a long-lived token — meaningful additional risk surface. The cached-claims approach means a fired employee's IdP-side disable does not immediately invalidate the broker's refresh — that's what the broker's /token/revoke + admin tooling is for (called by an out-of-band webhook or audit-log scrape; not in PR4).
  • /me/install consumption flow. PR5.
  • Plugin / binary work. PR6 + PR7.

Architecture

┌──────────────┐  /device/token + refresh_token  ┌────────────┐
│  client      │ ──────────────────────────────► │            │
│ (curl,       │ ◄────────────────────────────── │   broker   │
│  plugin)     │   {access_token, id_token,      │            │
│              │    token_type, expires_in}      │   refreshStore (Secret-backed)
│              │                                 │   ─────────────────────────────
│  /token/revoke + refresh_token                 │   key:   sha256(refresh_token)
│ ──────────────────────────────────────────────►│   value: refreshTokenRecord
│  204 No Content                                │            ├ email
│ ◄──────────────────────────────────────────────│            ├ subject (hashed for logs)
└──────────────┘                                 │            ├ claims (full, JSON-serialized)
                                                 │            ├ issuedAt
                                                 │            ├ expiresAt
                                                 │            └ universe (broker URL)
                                                 │
                                                 │  POST /device/token entry points:
                                                 │   1. grant_type=device_code (existing) — also mints refresh now
                                                 │   2. grant_type=refresh_token (new) — uses refreshStore
                                                 └────────────┘

Layer responsibilities

Component Owns Does NOT own
refreshStore Hashed-key map of sha256(refresh_token) → refreshTokenRecord. Persisted to a single broker-namespace Secret via the existing mutateSecret pattern. Methods: Issue, Refresh, Revoke, Sweep. State transitions: active, revoked (tombstone for sweeper), expired (lazy at refresh). OIDC. HTTP. The id_token itself (the refresh dispatch in /device/token reconstructs the claims-based response from the stored record).
device.go::deviceToken (extended) Two grant_type branches: device_code (existing PR3 path, now mints refresh) and refresh_token (new). Anything Secret-backed (delegated to refreshStore).
device.go::tokenRevoke (new) POST /token/revoke per RFC 7009. Drops the record from refreshStore. Idempotent (RFC 7009 §2.2: revocation of an invalid token is not an error). Anything beyond Secret-key deletion.
Existing Sweeper Now sweeps expired refresh tokens alongside expired issuances. Tiny addition to the existing per-tick loop. refreshStore correctness (the store owns its own consistency).

Pre-Flight Tasks

None. Unlike PR3's Verifier.Exchange refactor, PR4 builds entirely on top of the PR3 surface. The ExchangeResult from PR3 already plumbs the Claims that the refresh-grant response needs to reconstruct.

Routes To Register / Modify

In server.Routes():

Method Path Middleware Notes
POST /device/token ipRateLimit (existing) Same route, new grant_type branch. Handler reads grant_type, dispatches device_code (existing) vs refresh_token (new).
POST /token/revoke ipRateLimit (new) RFC 7009. Reads token form param + optional token_type_hint. Returns 204.

No modifications to /device/authorize, GET /device, POST /device, or /auth/callback — those are device-flow-only and refresh tokens live downstream.

Sub-Tasks (sequenced)

Step 1 — refreshStore (~200 lines + ~200 tests)

  • File: tools/demarkus-broker/internal/broker/refresh.go.
  • refreshTokenRecord struct:
    type refreshTokenRecord struct {
        KeyHash    string    `json:"keyHash"`    // sha256 hex of the token, the actual map key
        Email      string    `json:"email"`
        Subject    string    `json:"subject"`    // verbatim sub claim (not hashed — needed for Mint)
        Claims     Claims    `json:"claims"`     // full claims snapshot for the refresh response
        IssuedAt   time.Time `json:"issuedAt"`
        ExpiresAt  time.Time `json:"expiresAt"`
        LastUsedAt time.Time `json:"lastUsedAt,omitempty"`
    }
    
  • refreshStore struct: holds a kubernetes.Interface, namespace, Secret name, optional clock + sweeper hooks. Mirrors Issuer's shape.
  • Methods:
    • Issue(ctx, claims Claims, ttl time.Duration) (rawToken string, record refreshTokenRecord, err error) — generates 32 bytes from crypto/rand, hex-encodes, hashes, stores. Returns the raw token to give to the client; never logs it.
    • Refresh(ctx, rawToken string, now time.Time) (refreshTokenRecord, error) — looks up by sha256, validates not-expired, updates LastUsedAt, returns the record. Returns ErrRefreshTokenInvalid for unknown / expired / revoked tokens.
    • Revoke(ctx, rawToken string) error — deletes the record. Idempotent.
    • Sweep(ctx, now time.Time) — invoked by the existing Sweeper. Removes records where now > ExpiresAt. Same lazy-vs-eager posture as the issuances sweep.
  • Secret storage: one Secret per broker namespace, key = refresh_tokens.json, body = JSON map {keyHash → record}. Uses the existing mutateSecret helper from issuer.go for optimistic-concurrency Read-Modify-Write.
  • Critical: the raw token is NEVER stored anywhere. Only its sha256 hash lives in the Secret. Compromise of the Secret does not let an attacker mint tokens — they'd have to brute-force pre-image sha256 of 32-byte random values (infeasible).
  • Tests:
    • Issue → Refresh round-trip returns the same Claims.
    • Refresh with unknown / tampered / expired token returns ErrRefreshTokenInvalid.
    • Revoke makes a previously-valid token reject.
    • Revoke of an unknown token is a no-op (no error).
    • Sweep removes expired entries without touching active ones.
    • Concurrent Issue + Refresh under -race using the existing fake k8s clientset.
    • Secret round-trip: write, read, parse — confirms JSON shape.

Step 2 — Mint refresh on device-code completion (~50 lines + ~50 tests)

  • File: tools/demarkus-broker/internal/broker/device.go.
  • Extend deviceTokenSuccess:
    type deviceTokenSuccess struct {
        AccessToken  string `json:"access_token"`
        IDToken      string `json:"id_token"`
        RefreshToken string `json:"refresh_token,omitempty"`
        TokenType    string `json:"token_type"`
        ExpiresIn    int    `json:"expires_in"`
    }
    
  • In the statusComplete branch of deviceToken, call s.refreshStore.Issue(...) after the Poll result is non-nil. Wire cfg.Server.RefreshTokenTTL as the TTL.
  • Tests:
    • PR3's TestDeviceTokenStates/complete_returns_tokens extended: assert refresh_token is non-empty and ~64 hex chars.
    • Issue failure (mock the store to error) results in 500, not a token leak.

Step 3 — grant_type=refresh_token branch (~120 lines + ~120 tests)

  • File: tools/demarkus-broker/internal/broker/device.go.
  • Dispatch in deviceToken:
    switch r.PostFormValue("grant_type") {
    case deviceGrantType:       s.deviceTokenDeviceFlow(w, r)
    case refreshGrantType:      s.deviceTokenRefresh(w, r)
    default:                    writeJSON(w, 400, deviceTokenError{Error: "unsupported_grant_type"})
    }
    
  • deviceTokenRefresh:
    • Reads refresh_token form param. Missing → invalid_request.
    • Calls s.refreshStore.Refresh(...). Errors → invalid_grant (RFC 6749 §5.2).
    • Reconstructs the ExchangeResult-shaped response from the stored Claims. RawIDToken is regenerated by re-signing — wait, no, PR4 keeps cached claims and skips broker re-signing. So the response carries the ORIGINAL id_token from the device-flow completion. Problem: the original id_token has its own expiry that's already passed (otherwise why refresh?).
    • Decision point for next session: either (a) PR4 returns the cached id_token verbatim and trusts the bearer-validation downstream to handle the time skew, OR (b) PR4 does the bare-minimum re-signing (broker mints a JWT with the cached claims + fresh exp, signed with a broker-side key, with JWKS at /.well-known/jwks.json). (b) is the larger lift but cleaner.
    • Lean: (a) for PR4, document the gap, do (b) in a follow-up PR titled "PR4.5 — broker-signed id_tokens" once /me/install (PR5) makes the gap user-visible. The bearer validation today at Verifier.VerifyIDToken will reject expired id_tokens, so this would be a known broken state — meaning PR5 will need to call into the broker via the bearer regardless. So actually we need (b) for PR4 to be useful end-to-end. Re-lean: (b), broker re-signs at refresh time.
    • Add Cache-Control: no-store + Pragma: no-cache (same as the device-code success path).
  • For (b) — broker re-signing — additional surface:
    • Broker-side key material: a static signing key (ECDSA P-256) in the broker config (Secret-mounted, ENV override). New cfg.OIDC.BrokerSigningKey field. Rotation deferred to a follow-up.
    • JWKS endpoint: GET /.well-known/jwks.json serving the broker's public key in JWK format. Public, unauthenticated, no rate limit (same posture as /.well-known/openid-configuration).
    • Update Discovery.Override to point jwks_uri at the broker (currently this is intentionally left at the IdP per PR2's design note — but now we need to swap to broker-signed). Will break: any third-party JWKS client that was relying on IdP-signed tokens. Mitigation: PR4 broker still accepts BOTH broker-signed AND IdP-signed tokens during a transition window (verify with broker key first, fall back to IdP JWKS).
  • Tests:
    • Refresh with valid token → 200 + fresh access/id tokens + same refresh_token returned.
    • Refresh with unknown / revoked / expired token → 400 invalid_grant.
    • Refresh response has Cache-Control: no-store.
    • Cross-grant-type isolation: device_code-grant doesn't accept a refresh_token; refresh_token-grant doesn't accept a device_code.
    • Broker-signed id_token verification: Verifier.VerifyIDToken accepts the freshly-signed token.
    • JWKS endpoint serves a parseable JWK with the broker's public key.

Step 4 — POST /token/revoke (~80 lines + ~80 tests)

  • File: tools/demarkus-broker/internal/broker/device.go (or refresh.go; co-locate with the handler that owns it).
  • RFC 7009 surface: reads token form param, optional token_type_hint (ignored — we only support refresh tokens at this endpoint). Calls refreshStore.Revoke. Always returns 204 (idempotent — RFC 7009 §2.2: server MUST respond with 200/204 even for an invalid token).
  • Route: POST /token/revoke under ipRateLimit.
  • Tests:
    • Valid token → 204 + subsequent refresh fails.
    • Unknown token → 204 (no leak; RFC-conformant).
    • Missing token form param → 400 invalid_request.

Step 5 — Sweeper integration (~30 lines + ~30 tests)

  • File: tools/demarkus-broker/internal/broker/sweeper.go.
  • Sweeper gains a refreshStore *refreshStore field (optional; only sweeps when non-nil — keeps existing sweeper tests unchanged).
  • Per-tick: call s.refreshStore.Sweep(ctx, now) after the existing issuance sweep. Log the count of swept refresh tokens.
  • Tests: add a refresh token with ExpiresAt in the past, run one sweep, assert removal.

Step 6 — Config + wiring (~50 lines + ~30 tests)

  • tools/demarkus-broker/internal/broker/config.go:
    • ServerConfig.RefreshTokenTTL time.Duration yaml:"refreshTokenTTL"`` — default 90d, must be > 0.
    • ServerConfig.RefreshTokensSecret string yaml:"refreshTokensSecret"`` — required, no default (operator-visible name).
    • OIDCConfig.BrokerSigningKey string yaml:"brokerSigningKey"`` — base64-encoded ECDSA P-256 private key. Required when broker re-signing is enabled (always for PR4).
    • Validation: extract to applyRefreshDefaults to keep validate() inside the gocyclo budget (same pattern as applyDeviceFlowDefaults).
  • tools/demarkus-broker/internal/broker/server.go: NewServer wires the refreshStore. Routes() registers /token/revoke and /.well-known/jwks.json.
  • tools/demarkus-broker/main.go: standard plumbing.
  • Helm chart:
    • deploy/helm/demarkus-broker/values.yaml: new server.refreshTokenTTL, server.refreshTokensSecret, oidc.brokerSigningKey examples + comments.
    • deploy/helm/demarkus-broker/templates/secret-config.yaml: render the new fields.
    • deploy/helm/demarkus-broker/templates/secret-broker-signing-key.yaml (new): mounts the operator-supplied signing key.
    • deploy/helm/demarkus-broker/templates/rbac.yaml: extend RBAC to allow get/patch on the refresh tokens Secret.
    • deploy/helm/demarkus-broker/tests/: helm-unittest coverage for each new field + the new Secret template.

Scope Estimate

Step Code Tests
1. refreshStore 200 200
2. Mint on device-code 50 50
3. refresh_token grant + JWKS 250 220
4. /token/revoke 80 80
5. Sweeper integration 30 30
6. Config + chart wiring 130 80
Total ~740 ~660

Parent plan §PR4 estimated "~400 lines + tests, ~1.5 day PR." We're over by ~340 prod lines because broker-signed id_tokens (the JWKS path) wasn't in the original line estimate. Revised: ~2.5-3 day PR. Worth opening a Fritz check-in before starting if 3 days is over budget.

Open Questions To Resolve Before/During PR4

  1. Broker re-signing vs cached-id_token-verbatim. Lean (b): broker re-signs at refresh time, hosts JWKS, eats the +200 LOC. Rationale: without it, PR5's /me/install can't actually consume the bearer (the cached id_token's exp is already past — that's the whole point of refresh). Re-confirm before starting.
  2. Signing-key rotation strategy. PR4 ships a single static key. Rotation is real operational pain (must publish both old + new in JWKS during rollover; must track which key signed which token). Lean: static key for PR4, dedicated rotation PR later. Document in /architecture.md.
  3. Refresh-token rotation per OAuth 2.1. Skip per the §Out of Scope above unless someone asks.
  4. Per-user refresh-token cap. Should one user be able to hold N concurrent refresh tokens (e.g., one per device)? Lean: yes, unlimited — the Secret can hold ~5000 entries before the etcd limit, which is plenty. Per-user limits are a phase-7+ thing.
  5. Refresh against the IdP for fresh claims (groups, email_verified). Skip per the §Out of Scope. The broker uses the cached claims from device-code completion. Means: if a user's group membership changes at the IdP, the broker doesn't reflect that until re-login. Document in /architecture.md as a known trade-off.
  6. JWKS endpoint authentication. Public, unauthenticated, per OIDC. No rate limit either (same as /.well-known/openid-configuration).
  7. What happens on broker-signing-key compromise? Attacker can forge bearer tokens for any user. Mitigation: rotate the key + force-revoke all refresh tokens + force-revoke all per-world tokens (the world's Verifier rejects them once issuances are dropped). Document the incident-response playbook in /architecture.md.
  8. Verifier interface impact. Current Verifier.VerifyIDToken validates against the IdP's JWKS. PR4 needs it to ALSO accept broker-signed tokens. Two implementation shapes: (a) two-Verifier composition (broker-first, IdP-fallback), or (b) extend the existing oidcVerifier to multiplex by iss claim. Lean: (a) — cleaner abstraction, ~30 LOC adapter. Worth confirming before Step 3.

Risks Specific To PR4

  • Secret-storage scaling. Refresh tokens at 90-day TTL: a 1000-user broker holds 1000 records continuously, ~250KB JSON, well under the 1MB Secret limit. A 10k-user broker is the wall. Mitigation: document in /architecture.md; phase-7 fix is sharded Secrets or a CRD-backed store.
  • mutateSecret contention at scale. Every refresh + revoke RMWs the same Secret. Under heavy refresh load (e.g., a chart rollout that triggers every user's plugin to refresh on next session), the optimistic-concurrency retries could thunder. Mitigation: same as the issuances Secret today — it has not been an issue, would be a real signal worth instrumenting if it becomes one.
  • Broker-signing-key in a Kubernetes Secret. A cluster-admin compromise is full broker compromise. Documented risk, identical to the current OIDC.ClientSecret storage. Not unique to PR4.
  • Cross-grant-type confusion. Easy to accidentally accept a refresh_token at the device_code branch or vice versa. Strict grant_type dispatch + cross-grant tests in Step 3 guard.
  • Old tests must pass after the refresh_token,omitempty addition. PR3's TestDeviceTokenStates/complete_returns_tokens decodes into deviceTokenSuccess; the new field is omitempty, so the existing assertion holds. Worth a quick re-run before assuming.

Next-Session Resume Steps

  1. git fetch && git log --oneline -5 — confirm PR3 (#137) on main, nothing else conflicts.
  2. mark_fetch /index.md + /patterns.md + /guidelines.md per preflight.
  3. mark_fetch /plans/universe-onboarding-pr4.md (this doc).
  4. mark_fetch /journal/2026-05-15.md for the full PR3 review-lessons context.
  5. Decide on Open Question 1 (broker re-signing yes/no) — lean (b), but confirm before starting. This is the biggest scope swing.
  6. Cut a fresh branch (feat-tools-broker-refresh-tokens or similar). Start at Step 1 (refreshStore) — keep that as its own commit so the rest builds on a green Secret-backed store baseline.
  7. After Step 1: go test -race + bash pre-commit.sh green before touching Step 2. The Secret-marshaling tests are the most-likely-to-bite layer.

Touch Points With Later PRs

  • PR5 (/me/install) consumes the broker-signed id_token as a bearer. PR4 broker-signing is what makes that bearer verifiable; otherwise /me/install's requireAuth would reject a refresh-renewed token whose IdP-side exp is in the past.
  • PR6 (tools/demarkus-join) drives the refresh subcommand. Standard RFC 6749 §6 grant, standard refresh_token field — any OIDC client library handles it. The Go binary writes ~/.config/demarkus/refresh_token mode 0600.
  • PR7 (plugin slash commands) invokes tools/demarkus-join refresh on session start. The plugin doesn't know about refresh tokens directly; it shells out.
  • PR8 (docs) covers the operator-facing "what is the broker signing key, why do I need to rotate it" story. Not PR4's burden.

Done When

  • PR4 opens with all six sub-steps' commits, each individually testable.
  • go test -race ./... green inside tools/demarkus-broker/.
  • helm unittest . green (chart-side changes assert refresh-tokens Secret + signing-key Secret + RBAC).
  • pre-commit.sh green.
  • Manual end-to-end via curl: device-flow completes → refresh succeeds → revoke works → refresh after revoke fails.
  • Journal entry on /journal/<date>.md with design decisions that landed differently from this plan.

Related documents

trail
  1. soul.demarkus.io:6309 v3
  2. soul.demarkus.io universe-onboarding-pr4