The capsule
A todo’s identity lives in an HTML comment at the end of the line. Obsidian’s Reading view does not render it, and in Live Preview MarkTodo hides it unless you turn on Show todo ID capsule in editor.
- [/] Demo old floor @high due @ 2026-07-01 <!-- mt id=a2c3Xk9P -->- The id is 8 characters and is stamped lazily — only when a todo is first acted on or adopted. Plain checkboxes you never touch stay plain.
- Unknown keys inside the capsule are preserved verbatim, so a newer version of MarkTodo can add things without an older one destroying them.
- An early version kept priority in the capsule as
p=high. That is still read as a fallback when the line carries no inline@hightoken, and the next time MarkTodo writes the line the priority moves into the visible text and leaves the capsule. The id is the only thing MarkTodo puts there now.
Tags and [[links]] stay inline too, exactly where you put them; MarkTodo scans
them for indexing and filtering rather than lifting them out. Round-trips are
byte-stable by construction: every write aborts rather than drop a todo.