-/$LISTNAME/m/$MESSAGE_ID.html -> HTML content (short quotes)
-/$LISTNAME/m/$MESSAGE_ID.txt -> raw mbox
-/$LISTNAME/m/$MESSAGE_ID -> 301 to .html version
-/$LISTNAME/f/$MESSAGE_ID.html -> HTML content (full quotes)
-/$LISTNAME/f/$MESSAGE_ID -> 301 to .html version
-/$LISTNAME/f/$MESSAGE_ID.txt -> 301 to ../m/$MESSAGE_ID.txt
+/$INBOX/$MESSAGE_ID/ -> HTML content
+ anchors:
+ #r location of the current message in thread skeleton
+ (requires Xapian search)
+ #b start of the message body (linked from thread skeleton)
+
+/$INBOX/$MESSAGE_ID -> 301 to /$INBOX/$MESSAGE_ID/
+/$INBOX/$MESSAGE_ID/raw -> raw mbox
+/$INBOX/$MESSAGE_ID/#R -> HTML reply instructions
+
+# Covering up a pre-1.0 design mistake:
+/$INBOX/$MESSAGE_ID/f/ -> 301 to /$INBOX/$MESSAGE_ID/
+
+### Legacy endpoints (may be ambiguous given Message-IDs with similar suffixes)
+/$INBOX/m/$MESSAGE_ID/ -> 301 to /$INBOX/$MESSAGE_ID/
+/$INBOX/m/$MESSAGE_ID.html -> 301 to /$INBOX/$MESSAGE_ID/
+/$INBOX/m/$MESSAGE_ID.txt -> 301 to /$INBOX/$MESSAGE_ID/raw
+/$INBOX/f/$MESSAGE_ID.html -> 301 to /$INBOX/$MESSAGE_ID/
+/$INBOX/f/$MESSAGE_ID.txt [1] -> 301 to /$INBOX/$MESSAGE_ID/raw
+
+/$INBOX/atom.xml [2] -> identical to /$INBOX/new.atom
+
+Additionally, we support git clone/fetch over HTTP (dumb and smart):
+
+ git clone --mirror http://$HOSTNAME/$INBOX