diff --git a/docs/logo-concepts.md b/docs/logo-concepts.md
new file mode 100644
index 0000000..b1e9384
--- /dev/null
+++ b/docs/logo-concepts.md
@@ -0,0 +1,159 @@
+# Logo concepts
+
+**Status:** exploration, nothing adopted
+**Drafted:** 2026-08-12
+
+Ten directions for the `shared-memory` mark. Eight are fresh concepts, two are
+refinements of the mark currently shipping in `apps/web/public/logo.svg` and
+`apps/web/app/icon.svg`.
+
+Every concept is drafted as a real SVG in `docs/logo-concepts/`, authored the
+same way the shipped mark is: a 64×64 viewBox, `currentColor` so it inherits the
+surrounding text colour, round caps, and opacity rather than a second hue for
+depth. That means any of them can be dropped straight into the app, and the tile
+(favicon) variant is a mechanical derivation — wrap it in the rounded `#11151b`
+rect and substitute the accent blues.
+
+## How these were judged
+
+A mark for this project has to survive three places: the browser tab at 16px,
+the app header at 32–64px, and a README at whatever size GitHub renders. Small
+size is the brutal filter — it is where most of the concepts below die, and it
+is where the *currently shipped* mark is weakest, which is the single most
+useful finding here.
+
+Each was rendered at 120px, 24px and 16px and looked at, not just reasoned
+about. The failures noted below are observed, not predicted.
+
+---
+
+## The concepts
+
+### 01 · Venn core
+
+Two outlined circles; the lens where they overlap is filled solid. The overlap
+*is* the shared memory.
+
+The most literal, most immediately-readable statement of "shared" in the set —
+nobody needs it explained. That is also the problem: Venn diagrams are visual
+public domain, and this would not be ownable. At 16px the two outlines fuse into
+a single blob with a bright centre, which is legible but says nothing.
+
+### 02 · Handoff
+
+Two brackets facing each other around a single node — one session passing a
+memory to the next.
+
+Calm and symmetric, and the metaphor is exactly right for what the MCP does
+across sessions. It reads as `( • )`, which unfortunately is also how a hundred
+focus / aperture / eye icons read. Holds together at 16px better than 01.
+
+### 03 · Braid
+
+Two threads woven through each other with real over/under crossings, neither
+subordinate to the other.
+
+The most distinctive mark here by a wide margin, and the only one that looks
+*crafted* rather than assembled from primitives. It also has the cleanest
+meaning: two agents, one durable strand, and the weave is what makes it hold.
+
+**It fails as a favicon.** At 16px the crossings collapse and it becomes an
+unreadable smudge. This is not fixable by thickening strokes — the weave needs
+the crossings to be visible, and they need room. Use it as a hero graphic or a
+wordmark companion, not as the app icon.
+
+### 04 · Return arc
+
+An open ring with a solid node inside it: write it down, leave, come back to it.
+The gap in the ring is where the next session enters.
+
+The best small-size performer of the fresh concepts — completely legible at
+16px, and the interior node keeps it from being just a shape. The risk is
+literal: at small sizes it reads as a **©**. Worth checking against that
+association before committing.
+
+### 05 · Anchor
+
+One fixed point that three separate agents reference from wherever they are.
+
+Clean, balanced, and conceptually accurate — the memory is the fixed thing and
+the clients are transient. But a three-spoke hub at this weight lands very close
+to the Mercedes-Benz mark, and adjacent to the peace symbol. Both would come up
+in any trademark review. Included for completeness; hard to recommend.
+
+### 06 · Spine
+
+A vertical spine with entries branching off it, the active one reaching furthest
+to a node. An index, a ledger.
+
+The only rectilinear mark in the set, so it stands apart from the others
+immediately. It is also the most honest about what the product actually is —
+a queryable index, not an abstraction. The risk is that it reads as a bar chart,
+which pushes the association toward analytics rather than memory.
+
+### 07 · Knot
+
+A single continuous thread with no start and no end.
+
+Renders flawlessly at every size tested — genuinely the most legible mark here.
+That is its only advantage. It is the infinity symbol, which means near-zero
+ownability, and it says "endless", not "shared". Kept in the set as the
+legibility baseline the others are measured against.
+
+### 08 · Triad
+
+Three nodes joined by edges, one lit brighter than the others: the smallest
+possible shared graph, with one participant currently active.
+
+The strongest *conceptual* fit after the braid — it shows plurality, connection,
+and activity in one figure, and the lit node gives it somewhere to go for a
+loading or live state. Degrades gracefully: at 16px the edges thin out but three
+dots in a triangle still reads. The concern is category crowding — triangular
+node graphs are the default visual language of network and blockchain branding.
+
+### 09 · Current mark, rebalanced
+
+The shipped mark with three targeted changes, all aimed at 16px:
+
+| | Shipped | Rebalanced |
+|---|---|---|
+| Converging strokes end at | `x=35` (2.5px from the node) | `x=30` (4px clear) |
+| Outer stroke opacity | `.45` / `.55` | `.7` |
+| Node radius | `7.5` | `8.5` |
+
+At 16px the shipped mark loses its outer strokes to rasterisation and the
+remaining gap between stroke and node fills in, so it renders as an
+indeterminate horizontal smear. The rebalanced version resolves as an arrow
+meeting a node at the same size.
+
+This is the lowest-risk option on the table: it is not a rebrand, it keeps
+whatever recognition the current mark has already earned, and it fixes a real
+defect. It is worth doing *regardless* of what happens with the eight concepts
+above.
+
+### 10 · Lockup
+
+Not an alternative mark — the missing asset. The rebalanced mark set against the
+wordmark in the project's monospace stack, on a shared baseline, with the hyphen
+dropped to 45% so `shared` and `memory` read as two things joined.
+
+For README headers, the docs site, and the OAuth consent screen, where a bare
+64px glyph is too little and the full app header is too much.
+
+---
+
+## Recommendation
+
+Three separate decisions, not one:
+
+1. **Ship 09 now.** The small-size failure of the current mark is a real defect
+ and the fix is a five-line diff. It does not depend on choosing a new
+ direction.
+2. **Adopt 10** for the README and docs headers, using whichever mark wins.
+3. **If a genuine replacement is wanted**, the shortlist is **08 Triad** (best
+ concept-to-legibility ratio) and **04 Return arc** (best legibility, pending
+ the © check). **03 Braid** is the most beautiful and should be used
+ *somewhere* — as a hero graphic — but cannot be the icon.
+
+Concepts 01, 05 and 07 are documented here so the reasoning against them is on
+record, not because they are live candidates.
diff --git a/docs/logo-concepts/01-venn-core.svg b/docs/logo-concepts/01-venn-core.svg
new file mode 100644
index 0000000..5735ba8
--- /dev/null
+++ b/docs/logo-concepts/01-venn-core.svg
@@ -0,0 +1,9 @@
+
diff --git a/docs/logo-concepts/02-handoff.svg b/docs/logo-concepts/02-handoff.svg
new file mode 100644
index 0000000..2a2b48d
--- /dev/null
+++ b/docs/logo-concepts/02-handoff.svg
@@ -0,0 +1,9 @@
+
diff --git a/docs/logo-concepts/03-braid.svg b/docs/logo-concepts/03-braid.svg
new file mode 100644
index 0000000..e4c9f8e
--- /dev/null
+++ b/docs/logo-concepts/03-braid.svg
@@ -0,0 +1,16 @@
+
diff --git a/docs/logo-concepts/04-return-arc.svg b/docs/logo-concepts/04-return-arc.svg
new file mode 100644
index 0000000..4790fe4
--- /dev/null
+++ b/docs/logo-concepts/04-return-arc.svg
@@ -0,0 +1,7 @@
+
diff --git a/docs/logo-concepts/05-anchor.svg b/docs/logo-concepts/05-anchor.svg
new file mode 100644
index 0000000..28dc795
--- /dev/null
+++ b/docs/logo-concepts/05-anchor.svg
@@ -0,0 +1,10 @@
+
diff --git a/docs/logo-concepts/06-spine.svg b/docs/logo-concepts/06-spine.svg
new file mode 100644
index 0000000..526b17d
--- /dev/null
+++ b/docs/logo-concepts/06-spine.svg
@@ -0,0 +1,11 @@
+
diff --git a/docs/logo-concepts/07-knot.svg b/docs/logo-concepts/07-knot.svg
new file mode 100644
index 0000000..6b41419
--- /dev/null
+++ b/docs/logo-concepts/07-knot.svg
@@ -0,0 +1,6 @@
+
diff --git a/docs/logo-concepts/08-triad.svg b/docs/logo-concepts/08-triad.svg
new file mode 100644
index 0000000..16b8c8b
--- /dev/null
+++ b/docs/logo-concepts/08-triad.svg
@@ -0,0 +1,11 @@
+
diff --git a/docs/logo-concepts/09-refine-current.svg b/docs/logo-concepts/09-refine-current.svg
new file mode 100644
index 0000000..e2b12cc
--- /dev/null
+++ b/docs/logo-concepts/09-refine-current.svg
@@ -0,0 +1,14 @@
+
diff --git a/docs/logo-concepts/10-lockup.svg b/docs/logo-concepts/10-lockup.svg
new file mode 100644
index 0000000..fdca366
--- /dev/null
+++ b/docs/logo-concepts/10-lockup.svg
@@ -0,0 +1,13 @@
+