Bundle Spec v1.0

When an AI fetches a bundle URL with Accept: text/markdown, it gets a stable, parseable payload. This is what's in it.

URL shapes

  • memory.wiki/b/<id> for the human-rendered bundle viewer
  • memory.wiki/b/<id>.md for the raw markdown payload
  • memory.wiki/raw/bundle/<id> (same as .md)

The .md and /raw/bundle/<id> paths are aliases. AI bots (ChatGPTBot, Claude-Web, etc.) get the raw payload automatically when they hit /b/<id> because the User-Agent triggers a rewrite.

Frontmatter

yaml
--- mw_bundle: 1 id: <bundleId> title: "<bundle title>" url: https://memory.wiki/b/<bundleId> document_count: <N> updated: <ISO timestamp> source: "Memory.Wiki" ---

mw_bundle: 1 is the spec version marker. Future spec changes will bump it.

Body shape

markdown
# <bundle title> > <bundle description, if any> ## 1. <doc title> *Source: https://memory.wiki/<docId>* > <per-doc annotation, if any (why this doc is in this bundle)> <doc 1 markdown body> ## 2. <next doc title> *Source: https://memory.wiki/<docId>* <doc 2 markdown body> ...

Privacy

Member docs that became private after the bundle was created are filtered out at fetch time. The bundle structure stays intact (numbered sections), but unfetchable members are replaced with a neutral notice. Drafts, password-protected, expired, and email-restricted member docs never leak via the raw payload.

Why this shape

  • Numbered sections so an AI knows the intended reading order.
  • Per-doc *Source: <URL>* so the AI can cite individual docs back to the user, not just "the bundle."
  • Per-doc annotation is the bundle creator's chance to bias retrieval. "This one is the canonical reference, the others are alternatives."

Status

v1.0 is the current shape. The next spec change (v1.1, planned) adds optional reading_order_reason and per-doc relevance_score fields. Existing bundles will continue to render with the v1 contract.

Verification

Bundle URLs are part of the MWBench cross-AI eval. Same URL works at 100% accuracy across Claude, OpenAI, and Gemini, including on truly unseen content.