Visuals · Companion Internal · v2026.05.08Companion to Project Plan
Maps, flows, and a Gantt.
Visual companion to the project plan — a Gantt of all ten phases, two flow charts
(job lifecycle and hybrid retrieval), a system map of every service and how the
bytes actually move between them, and a mind map of the repo to keep one's bearings.
Doc kind
Visuals · companion
Pairs with
Project Plan.html
Generated
2026-05-08
Owner
Dave Cockson
§A
Gantt — phases on a calendar
~17 weeks · solo · estimate
Durations are estimates for one operator working part-time. PF is complete; P0 is in flight.
The NOW marker sits at the start of week 1 (2026-05-08).
Critical-path bars (P3, P4, P7) are drawn in terracotta — slipping these slips the cutover.
Mostly linear, but P2 (observability) feeds P3 forward (tracing endpoint), and P7 (RAG+KG)
collects work from P3 (compose), P5 (web), and P6 (MCP). P9 cutover gates everything that touches the old runner.
Phase DAGSPEC §05 + tasks.md
§C
System map — runtime
Contabo · Davas · Cloud
The runner runs on Contabo behind Cloudflare Tunnel. Davas is a remote Ollama box reached over the same tunnel.
Stateful stores (Qdrant, Neo4j, vault) sit beside the workers. Alloy is the only thing that talks outbound to Grafana Cloud.
Runtime topologySPEC §10 · §11
§D
Flow — job lifecycle
Submit → enqueue → execute → archive
Filesystem is the message queue. Every transition is a single shutil.move — never copy + delete.
A 2-second mtime guard tolerates Syncthing partial writes; _active/ is requeued on worker startup so a crash never strands a job.
Job lifecycleSPEC §08
§E
Flow — LangGraph hybrid retrieval
Decompose · parallel · rerank · synthesise
The query splits, fans out to Qdrant and Neo4j in parallel, the merged context is reranked, then a final LLM call synthesises the answer.
Nightly cron re-indexes new vault notes into both stores.
services/rag/graph.pySPEC §09
§F
Flow — provider routing
Davas health-check · no silent fallback
The Davas health-check rule is the one bit of subtle logic in the router: if Davas is unreachable,
the UI greys out Davas-routed models, and any submission targeting Davas returns 503 immediately with a clear reason. Never silently fall back.
shared/providers/router.pySPEC §06
§G
Flow — secrets at deploy
Infisical · machine identities · compose
Secrets pipelineSPEC §11 · run-log 2026-05-08
§H
Mind map — repos & modules
Five repos · the whole tree
Centred on llm-runner. The four sibling repos hand IaC, observability roles, and runbooks to it; everything bottoms out in containerised services.
Five repos, one centreSPEC §04 · §07
§I
Mind map — the spec, in one glance
17 sections · five clusters
Spec at a glanceSPEC.md table of contents
§J
Cutover — sequence diagram
P9 · seven steps · rollback aware
P9 sequencetasks.md · P9.1–P9.7
§K
Cost & time — what this build will burn
Tweakable · solo · estimate
Phase durations come from the Gantt; AI-token costs assume a Claude-Code-style pair-programming style at
~tokens-per-hour authored by the assistant. Model mix per phase follows the recommendations in tasks.md:
Sonnet by default, Opus on the subtle-logic tasks called out (P1.3, P3.4, P4.1, P6.5, P7.5, P9.2),
Haiku for scaffolding (P0.5, P2 dashboards). Open the Tweaks panel (bottom-right) to adjust pace, token rates, infra costs, and Pro cap.
Total assistant tokens
—MTok
across all phases
Est. API cost
$—
if billed à la carte
Est. operator hours
—h
over project span
% Pro weekly cap (peak wk)
—%
peak phase / Pro Sonnet-equiv
Phase
Name
Weeks
Hours
Model mix
Tokens
API $
% Pro / wk
Totals
—
—
—
—
—
Per-phase breakdown■ Sonnet ·
■ Opus ·
■ Haiku
Peak-week Pro burn
—
0%of cap
Sonnet-equivalent tokens during the heaviest phase week.
Average-week Pro burn
—
0%of cap
Average across the build span; useful for steady-state planning.
Monthly burn breakdown
$— / mo · build period
API tokensContaboS3Davas elec.Grafana Cloud
Operating cost during the buildExcludes hardware sunk cost
Caveats. These are order-of-magnitude estimates, not invoices.
Token rates per provider drift; defaults reflect rough public rates as of May 2026 — override in Tweaks if your numbers differ.
Pair-programming token throughput varies wildly by task (refactors burn far more than scaffolds). The default 60k tok/h is mid-range for Claude Code-style sessions.
Claude Pro weekly cap is normalised to Sonnet-equivalent tokens. Opus tokens count ~5× toward the cap; Haiku ~⅓×.
Infra costs assume eu-west-2 / us-east-1 list prices at solo-scale traffic; Grafana Cloud and Infisical free tiers are assumed unless overridden.
Operator hourly rate is set to $0 by default (solo, unpaid). Plug in a benchmark rate to model an opportunity-cost view.