---
title: "Decision: ship graph_data inside the bundle URL"
url: https://memory.wiki/kxn9T-Vv
updated: 2026-05-14T17:52:48.410Z
hub: https://memory.wiki/hub/demo
bundle_count: 1
concept_count: 12
source: "memory.wiki"
---
# Decision: ship graph_data inside the bundle URL

**Status**: shipped 2026-05-12 (commit `ba7344c4`)

## Context

A bundle URL returns a markdown digest. Before this change the digest contained only the doc list + annotations. The canvas analysis (themes, insights, concept relations) lived only inside the mdfy.app web canvas — paste the URL into Claude and the AI got the doc list but had to redo the cross-doc analysis itself.

## Decision

Embed the `graph_data` JSON as markdown sections inside the `/raw/bundle/<id>` response by default. Add `?graph=0` opt-out for callers that want the legacy doc-list-only digest.

## Why

The viral loop runs through URLs. If pasting a URL gives the receiving AI *more* than the sending AI could give without mdfy, the URL is genuinely portable. Without `graph_data` in the payload, the URL is just a doc inventory — useful but not differentiating.

## Trade-offs

- **Token cost**: typical bundle adds ~600 tokens for the analysis section. Caller can drop via `?graph=0`.
- **Staleness**: `analysis_stale: true` frontmatter flag warns the AI when member docs were edited after the last analysis run.
- **Recompute cost**: regenerating `graph_data` requires an LLM call. Today this is owner-triggered; Pro will background-run on stale fetch.

## Validation

- e2e: every public bundle URL now carries the section by default (test `28/28 passing 2.2m`)
- Hub digest still omits the section — different surface, different default


---

## Concepts in this document
- **Structural moat** _(concept)_
  The defensible advantage created by mdfy's vendor-neutral positioning, which competitors cannot replicate due to inherent conflicts of interest.
- **Claude** _(entity)_
  Anthropic's AI model cited as an example of vendor lock-in through projects and memory features.
- **bundle URL** _(entity)_
  The delivery mechanism for markdown digests that now carries embedded graph analysis instead of doc list only
- **Cursor IDE** _(entity)_
  Code editor that can fetch and utilize mdfy bundle URLs for project context.
- **mdfy Platform** _(entity)_
  Knowledge management platform designed for AI-first workflows with URL-based sharing.
- **ChatGPT** _(entity)_
  Example of an AI provider whose memory feature is intentionally confined to its own product.
- **llms.txt** _(concept)_
  Plain-text discoverability standard for AI agents at site root, analogous to robots.txt and sitemap.xml.
- **AI Integration** _(tag)_
  Artificial intelligence features and infrastructure including vector search and multi-provider setup.
- **Vendor neutrality** _(concept)_
  Design commitment to support Claude, OpenAI, Gemini, and open-source models equally without single-vendor dependencies.
- **viral loop** _(concept)_
  Growth mechanism dependent on URLs being self-contained and more valuable to receivers than senders could provide
- **AI Memory** _(tag)_
  Broad category encompassing how AI systems maintain and access knowledge across sessions.
- **graph_data** _(entity)_
  JSON blob containing LLM-generated analysis (themes, insights, connections, summaries) attached to bundles for zero-latency AI retrieval.

## Concept relations (within this doc's concepts)
- **Cursor IDE** fetches **bundle URL**
- **bundle URL** embeds **graph_data**
- **Structural moat** requires **Vendor neutrality**
- **bundle URL** includes block **graph_data**

## Bundles containing this document
- [Engineering decisions + cross-AI strategy](https://memory.wiki/b/8IkpnVgX)
  > A working bundle: the ADR for shipping graph_data in URLs, the cross-AI moat argument, and a hands-on integration note for Cursor. Three docs that explain *what we're building and why* in 10 minutes o

_Hub canonical:_ https://memory.wiki/hub/demo
_Concept digest:_ https://memory.wiki/raw/hub/demo?digest=1&compact=1
