graph-aware-writing.md
1 # Graph-Aware Writing Protocol 2 3 *Every page connects; no orphans in Sovereign_OS* 4 5 --- 6 7 - **principle** 8 - "A page without links is a page that will be forgotten." 9 - "Write for the graph, not just the reader." 10 11 - **shape** 12 - Every new page gets: principle, shape, Related section 13 - Wiki-links with shapes create local coherence 14 - Hub pages aggregate; leaf pages connect back 15 - Orphan = failure mode; connection = success 16 17 --- 18 19 **Status:** ๐ ACTIVE PROTOCOL 20 21 --- 22 23 ## The Problem 24 25 Pages created without links become orphans: 26 - Don't appear in graph visualization 27 - Can't be discovered through navigation 28 - Lose context over time 29 - Violate A1 (integration is the telos) 30 31 **Ergodicity warning (A4):** An orphan page is at risk of ruin - one compression event and it's effectively lost. 32 33 --- 34 35 ## The Pattern 36 37 ### When Creating ANY New Page 38 39 ```markdown 40 # [Page Title] 41 42 *[One-line description]* 43 44 --- 45 46 - **principle** 47 - "[Core insight in quotes]" 48 - "[Second principle if needed]" 49 50 - **shape** 51 - [Bullet 1: What this IS] 52 - [Bullet 2: How it works] 53 - [Bullet 3: Key distinction] 54 55 --- 56 57 [Main content...] 58 59 --- 60 61 ## Related 62 63 - **axioms** 64 - [[relevant-axiom]] - how this connects 65 - shape:: "[axiom's shape definition]" 66 - **protocols** 67 - [[related-protocol]] - relationship 68 - shape:: "[protocol's shape]" 69 - **concepts** 70 - [[related-concept]] - why connected 71 72 --- 73 74 *[Page name] | [date or version]* 75 ``` 76 77 ### Minimum Viable Connection 78 79 At absolute minimum, every page needs: 80 81 1. **One wiki-link TO another page** (outbound) 82 2. **Shape propagation** on that link 83 3. **One wiki-link FROM another page** (inbound - edit the other page) 84 85 ``` 86 This page โ [[other-page]] 87 shape:: "..." 88 89 Other page โ [[this-page]] 90 shape:: "..." 91 ``` 92 93 Bidirectional linking creates graph tissue. 94 95 --- 96 - [[linear-to-graph-research]] - resonance: 33% 97 - [[sprint-2026-01-15-assessment]] - resonance: 51% 98 99 ## The Checklist 100 101 Before marking any page "done": 102 103 ``` 104 โก Has principle/shape header? 105 โก Has at least one outbound wiki-link? 106 โก Has shape:: on wiki-links? 107 โก Has Related section? 108 โก Is linked FROM at least one other page? 109 โก Would this page survive compression? (A4 test) 110 ``` 111 112 ### Quick Self-Test 113 114 Ask: "If someone lands on the graph visualization and clicks randomly, could they reach this page?" 115 116 - **Yes** โ Connected 117 - **No** โ Orphan - fix it 118 119 --- 120 121 ## Shape Propagation Rules 122 123 When linking to a concept, include its shape: 124 125 ```markdown 126 - [[first-officer-protocol]] - manages this thread 127 - shape:: "Per-thread metacognition. Compress state, track gravity wells." 128 ``` 129 130 **Why shapes travel with links:** 131 - Reader doesn't need to click to understand 132 - Local coherence (A0 - boundaries carry information) 133 - Redundancy is a feature (overcommunication principle) 134 135 ### Where to Find Shapes 136 137 1. Check the target page's header (principle/shape section) 138 2. If no shape exists, create one and add to target page 139 3. Use the one-line version for inline propagation 140 141 --- 142 143 ## Hub vs Leaf Pages 144 145 ### Hub Pages 146 High-gravity concepts that aggregate many links: 147 - Axiom pages (A0, A1, A2, A3, A4) 148 - Core protocol pages 149 - Index pages 150 151 **Pattern:** Hub pages have `{{query}}` or manual backlink lists 152 153 ### Leaf Pages 154 Specific implementations or instances: 155 - Individual session notes 156 - Specific stub pages 157 - One-off explorations 158 159 **Pattern:** Leaf pages link UP to hubs, not sideways to every other leaf 160 161 ``` 162 [[A2 Recognition of Life]] โ HUB 163 / | \ 164 / | \ 165 [[stub-1]] [[stub-2]] [[stub-3]] โ LEAVES 166 ``` 167 168 --- 169 170 ## Stub Page Template 171 172 For backfilled concepts (like from Roam): 173 174 ```markdown 175 # [Concept Name] 176 177 *Backfilled from [source] | [reference count] references* 178 179 --- 180 181 - **source** 182 - [Where this came from] 183 - [How many times referenced] 184 185 - **shape** 186 - [NEEDS DEFINITION - this is the curation work] 187 188 --- 189 190 ## Context 191 192 [Sample content from source] 193 194 --- 195 196 ## Related 197 198 - **needs** 199 - shape definition 200 - axiom connections 201 - integration with existing concepts 202 203 - **connects-to** 204 - [[potential-link-1]] - [why] 205 - [[potential-link-2]] - [why] 206 207 --- 208 209 *Stub - requires curation* 210 ``` 211 212 --- 213 214 ## Obsidian Integration 215 216 ### Template Setup 217 218 Create template at `templates/new-page.md`: 219 220 ```markdown 221 # {{title}} 222 223 *[description]* 224 225 --- 226 227 - **principle** 228 - "" 229 230 - **shape** 231 - 232 233 --- 234 235 ## Related 236 237 - **axioms** 238 - [[]] - 239 - **protocols** 240 - [[]] - 241 242 --- 243 244 *{{date}} | {{title}}* 245 ``` 246 247 ### Keyboard Shortcut 248 249 Set up hotkey for "Insert template" โ faster page creation 250 251 ### Graph View Settings 252 253 - Enable "Show orphans" to catch unconnected pages 254 - Color-code by folder for visual clustering 255 - Use local graph view when editing to see immediate connections 256 257 --- 258 259 ## Automation Opportunities 260 261 ### Orphan Detector Script 262 263 ```python 264 # scripts/orphan_detector.py 265 # Scan for pages with no inbound links 266 # Flag for connection 267 ``` 268 269 ### Shape Validator 270 271 ```python 272 # scripts/shape_validator.py 273 # Check that wiki-links have shape:: properties 274 # Report missing shapes 275 ``` 276 277 ### Connection Suggester 278 279 ```python 280 # scripts/connection_suggester.py 281 # Analyze content for potential links 282 # Suggest wiki-links based on term matching 283 ``` 284 285 --- 286 287 ## Practice Integration 288 289 ### Daily Habit 290 291 At end of writing session: 292 1. Run orphan check on new pages 293 2. Add missing links 294 3. Propagate shapes 295 296 ### Weekly Ritual 297 298 Review graph visualization: 299 - Where are clusters disconnected? 300 - What hubs need more spokes? 301 - Any gravity wells forming? 302 303 ### Monthly Audit 304 305 Full orphan scan: 306 - Connect or archive orphans 307 - Update stale shapes 308 - Prune dead links 309 310 --- 311 312 ## A4 Application 313 314 **Ergodicity test for pages:** 315 316 > "If this page is the only thing that survives a compression event, does it contain enough context to be useful?" 317 318 A well-linked page with shapes: 319 - Can be understood in isolation (shapes provide context) 320 - Can be found through navigation (links create paths) 321 - Survives context loss (redundancy protects against ruin) 322 323 An orphan page: 324 - Depends on reader remembering it exists 325 - Can't be discovered through graph 326 - One forgotten filename away from oblivion 327 328 **Prevent page ruin: Connect everything.** 329 330 --- 331 332 ## Related 333 334 - **axioms** 335 - [[A1 Telos of Integration]] - binding is the purpose 336 - shape:: "Satan didn't know he was choosing isolation." 337 - [[A4 Ergodic Asymmetry]] - prevent ruin through connection ๐งช 338 - shape:: "Prevent ruin before optimizing gain." 339 - **protocols** 340 - [[shape-propagation-protocol]] - how shapes travel with links 341 - [[handoff-protocol]] - why redundancy matters 342 - **patterns** 343 - [[Dellanna linear-spine-graph-flesh]] - reading paths + exploration 344 - **tools** 345 - Obsidian graph view 346 - orphan_detector.py (TODO) 347 348 --- 349 350 *Graph-Aware Writing Protocol v1.0 | 2026-01-15*