{"blyg":"0.3","id":"3j9hfqg2aq7e6b1qgmn91t74m0","kind":"thread","origin":"https://pioneering-spirit-blyg.patrickatwater.workers.dev/","page":"t/3j9hfqg2aq7e6b1qgmn91t74m0/","author":{"name":"PAtwater","url":"https://pioneering-spirit-blyg.patrickatwater.workers.dev/"},"created":"2026-10-04T06:15:02Z","updated":"2026-10-05T03:42:50Z","version":1,"content_md":"![[3zhv0nwfkanra1mcqm29pgsh53]]\n\nMan I need to start a running Claude session to translate this stuff. I am a simple guy. \n\n[Transclusion is when one document pulls in another piece of content *by reference* instead of copying it. Rather than pasting the text, you drop in a pointer, like that `![[...]]` at the top, and the tool shows the real thing inline, live, right where the pointer sits.\n\nTed Nelson came up with the term back in the '60s as part of Project Xanadu. His idea was that quoting shouldn't mean duplicating. It should mean pointing straight at the original, so you always know where a passage came from and can click through to its full context. In his version, a transclusion could point at a *specific version* of a text, so the quote never drifts or breaks, even if the source keeps changing.\n\nObsidian-style `![[note]]` embeds are a lightweight version of the same idea. The `!` means \"show it here,\" and the stuff in brackets says what to show. Edit the source, and every place that transcludes it updates too. It's one source of truth that appears in many places.]\n\nAh ha I like the idea of a sort of special linking to the specific version of a text. So no screenshot shenanigans or link updates. \n\nLet's have AI explain all of this. \n\n\n\n[The note is about what happens when you **fork** a piece of text that has transclusions inside it.\n\nQuick setup: a **pin** locks a piece of content to a specific version, so it won't drift. A **fork** takes that pinned text and makes your own copy you can build on. The question is what a fork does with any `![[...]]` pointers sitting inside the text you're copying.\n\nUntil now, a fork grabbed the text exactly as written, pointers included. So if the original said \"as explained in `![[some-note]]`,\" your fork kept that pointer instead of the words it pointed to. That's a problem. Your fork is supposed to be stable, but those pointers still reach out to live content that can change underneath you. Part of your \"frozen\" copy isn't actually frozen.\n\nThe fix is that **forks must flatten**. When you fork, every transclusion gets resolved and replaced with the actual text it points to at that moment, all the way down. The result is a solid copy with no live wires hanging out of it.\n\nThere was another option on the table: require that anything a pin transcludes must also be pinned, and anything *those* transclude, and so on. It was rejected for two reasons. It's the wrong idea, because you shouldn't need control over someone else's content just to stand behind your own. It's also exhausting, since you'd have to chase down and lock every link in the chain before you could pin anything.\n\nSo a fork now means two things together. It's your promise to stand behind what you wrote, plus a snapshot of whatever you borrowed, taken at the moment you forked. You lock down the thing you're pointing at without having to lock down everything *it* points at.]\n\nSidebar: I am one who likes the idea of bot graphics to demarcate AI text in a fun and playful way. Focus on communicating ideas clearly. \n\n\n","content_html":"<blockquote class=\"blyg-transclusion\" data-blyg-id=\"3zhv0nwfkanra1mcqm29pgsh53\" data-blyg-version=\"1\" data-blyg-origin=\"https://venkateshrao.com/blyg/\">\n<h1>Forks must flatten</h1>\n<p>Figured out and resolved an ambiguity in how forks behave. Currently, a fork just captures the literal text of the immediate pinned text. If it includes any transcludes, those are included as id markups rather than retrieved and flattened text. After a discussion with Fable, the behavior needed is that forks must flatten everything in the source. We considered the alternative that a pin must require everything it transcludes to also be pinned, but this is both the wrong behavior logically, and obviously mindlessly tedious.\nA fork is now a promise to stand behind your content plus the snapshots of any other content you use. Stabilize the referrent without requiring recursive stabilization of everything beyond it.</p>\n\n</blockquote>\n<p>Man I need to start a running Claude session to translate this stuff. I am a simple guy.</p>\n<p>[<span class=\"blyg-tk-gen\">Transclusion is when one document pulls in another piece of content <em>by reference</em> instead of copying it. Rather than pasting the text, you drop in a pointer, like that <code>![[...]]</code> at the top, and the tool shows the real thing inline, live, right where the pointer sits.</p>\n<p>Ted Nelson came up with the term back in the '60s as part of Project Xanadu. His idea was that quoting shouldn't mean duplicating. It should mean pointing straight at the original, so you always know where a passage came from and can click through to its full context. In his version, a transclusion could point at a <em>specific version</em> of a text, so the quote never drifts or breaks, even if the source keeps changing.</p>\n<p>Obsidian-style <code>![[note]]</code> embeds are a lightweight version of the same idea. The <code>!</code> means &quot;show it here,&quot; and the stuff in brackets says what to show. Edit the source, and every place that transcludes it updates too. It's one source of truth that appears in many places.</span>]</p>\n<p>Ah ha I like the idea of a sort of special linking to the specific version of a text. So no screenshot shenanigans or link updates.</p>\n<p>Let's have AI explain all of this.</p>\n<p>[<span class=\"blyg-tk-gen\">The note is about what happens when you <strong>fork</strong> a piece of text that has transclusions inside it.</p>\n<p>Quick setup: a <strong>pin</strong> locks a piece of content to a specific version, so it won't drift. A <strong>fork</strong> takes that pinned text and makes your own copy you can build on. The question is what a fork does with any <code>![[...]]</code> pointers sitting inside the text you're copying.</p>\n<p>Until now, a fork grabbed the text exactly as written, pointers included. So if the original said &quot;as explained in <code>![[some-note]]</code>,&quot; your fork kept that pointer instead of the words it pointed to. That's a problem. Your fork is supposed to be stable, but those pointers still reach out to live content that can change underneath you. Part of your &quot;frozen&quot; copy isn't actually frozen.</p>\n<p>The fix is that <strong>forks must flatten</strong>. When you fork, every transclusion gets resolved and replaced with the actual text it points to at that moment, all the way down. The result is a solid copy with no live wires hanging out of it.</p>\n<p>There was another option on the table: require that anything a pin transcludes must also be pinned, and anything <em>those</em> transclude, and so on. It was rejected for two reasons. It's the wrong idea, because you shouldn't need control over someone else's content just to stand behind your own. It's also exhausting, since you'd have to chase down and lock every link in the chain before you could pin anything.</p>\n<p>So a fork now means two things together. It's your promise to stand behind what you wrote, plus a snapshot of whatever you borrowed, taken at the moment you forked. You lock down the thing you're pointing at without having to lock down everything <em>it</em> points at.</span>]</p>\n<p>Sidebar: I am one who likes the idea of bot graphics to demarcate AI text in a fun and playful way. Focus on communicating ideas clearly.</p>\n","content_hash":"sha256:71f58e06e273d50a2d0e4c772e50169d869e7b833d96ca98af69dbefe7f20f0b","media":[],"transclusions":[{"id":"3zhv0nwfkanra1mcqm29pgsh53","version":1,"origin":"https://venkateshrao.com/blyg/"}],"stub_of":{"origin":"https://venkateshrao.com/blyg/","id":"3zhv0nwfkanra1mcqm29pgsh53","version":1},"generated":[{"sources":[],"model":"claude-opus-5-5","at":"2026-10-05T03:40:55Z"},{"sources":[],"model":"claude-opus-5-5","at":"2026-10-05T03:41:51Z"}],"changelog":[{"version":1,"at":"2026-10-05T03:42:50Z","note":null}]}