brane 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/AGENTS.md +362 -0
  2. package/CHANGELOG.md +33 -0
  3. package/CONTRIBUTING.md +91 -0
  4. package/DESIGN.md +402 -0
  5. package/Dockerfile +61 -0
  6. package/LICENSE +656 -17
  7. package/README.md +174 -2
  8. package/SECURITY.md +205 -0
  9. package/dist/absorb/brane-id.js +11 -0
  10. package/dist/absorb/chatgpt.js +161 -0
  11. package/dist/absorb/claude-code.js +504 -0
  12. package/dist/absorb/index.js +543 -0
  13. package/dist/absorb/organelle.js +345 -0
  14. package/dist/absorb/run.js +520 -0
  15. package/dist/absorb/sources.js +168 -0
  16. package/dist/absorb/types.js +3 -0
  17. package/dist/agent-env.js +45 -0
  18. package/dist/agents.js +1168 -0
  19. package/dist/claude-live-session.js +124 -0
  20. package/dist/cli.js +50 -0
  21. package/dist/codex-tool-log.js +144 -0
  22. package/dist/commands/absorb.js +291 -0
  23. package/dist/commands/attach.js +31 -0
  24. package/dist/commands/certify.js +62 -0
  25. package/dist/commands/config.js +116 -0
  26. package/dist/commands/cost.js +126 -0
  27. package/dist/commands/daemon.js +350 -0
  28. package/dist/commands/doctor.js +262 -0
  29. package/dist/commands/fold.js +95 -0
  30. package/dist/commands/list.js +89 -0
  31. package/dist/commands/mcp.js +84 -0
  32. package/dist/commands/meld.js +332 -0
  33. package/dist/commands/memory.js +215 -0
  34. package/dist/commands/revive.js +74 -0
  35. package/dist/commands/run.js +85 -0
  36. package/dist/commands/spawn.js +1094 -0
  37. package/dist/commands/token.js +153 -0
  38. package/dist/copilot-tool-log.js +145 -0
  39. package/dist/cost/pricing.js +116 -0
  40. package/dist/cost/reprice.js +136 -0
  41. package/dist/crush-tool-log.js +293 -0
  42. package/dist/daemon/agent-scope.js +116 -0
  43. package/dist/daemon/awaiting.js +54 -0
  44. package/dist/daemon/cert-manager.js +349 -0
  45. package/dist/daemon/client.js +262 -0
  46. package/dist/daemon/gated-routes.js +112 -0
  47. package/dist/daemon/keep-awake.js +103 -0
  48. package/dist/daemon/local-socket.js +145 -0
  49. package/dist/daemon/presence-gate.js +206 -0
  50. package/dist/daemon/server.js +6349 -0
  51. package/dist/daemon/signal-source.js +35 -0
  52. package/dist/daemon/tailscale-rebind.js +58 -0
  53. package/dist/daemon/token-ring.js +263 -0
  54. package/dist/daemon/token-routes.js +190 -0
  55. package/dist/db/events.js +152 -0
  56. package/dist/db/mentions.js +179 -0
  57. package/dist/db/schema.js +633 -0
  58. package/dist/db/tokens.js +583 -0
  59. package/dist/db/tool-uses.js +647 -0
  60. package/dist/diagram/index.js +85 -0
  61. package/dist/diagram/label.js +455 -0
  62. package/dist/diagram/layout.js +476 -0
  63. package/dist/diagram/links.js +50 -0
  64. package/dist/diagram/metrics.js +152 -0
  65. package/dist/diagram/parse.js +487 -0
  66. package/dist/diagram/svg.js +389 -0
  67. package/dist/diagram/types.js +9 -0
  68. package/dist/export.js +629 -0
  69. package/dist/files/archive-types.js +2 -0
  70. package/dist/files/archive.js +182 -0
  71. package/dist/files/browse.js +327 -0
  72. package/dist/files/bytes.js +162 -0
  73. package/dist/files/codecs.js +33 -0
  74. package/dist/files/find.js +212 -0
  75. package/dist/files/tar.js +223 -0
  76. package/dist/files/zip.js +209 -0
  77. package/dist/folds.js +72 -0
  78. package/dist/grammars/ebnf.js +92 -0
  79. package/dist/highlight.js +250 -0
  80. package/dist/ids.js +24 -0
  81. package/dist/markdown-diagnostics.js +233 -0
  82. package/dist/math.js +168 -0
  83. package/dist/mcp/server.js +886 -0
  84. package/dist/memory/embedder.js +145 -0
  85. package/dist/memory/embedding-worker.js +71 -0
  86. package/dist/memory/embeddings.js +91 -0
  87. package/dist/memory/index.js +232 -0
  88. package/dist/memory/storage.js +587 -0
  89. package/dist/memory/wiki.js +688 -0
  90. package/dist/memory/wordpiece.js +247 -0
  91. package/dist/mentions-scan.js +40 -0
  92. package/dist/presence.js +259 -0
  93. package/dist/session-affinity.js +185 -0
  94. package/dist/shared/api-request.js +124 -0
  95. package/dist/shared/block-glyphs.js +114 -0
  96. package/dist/shared/diagram-css.js +17 -0
  97. package/dist/shared/export-selection.js +101 -0
  98. package/dist/shared/find-in-text.js +110 -0
  99. package/dist/shared/glow-hues.js +225 -0
  100. package/dist/shared/hex-dump.js +62 -0
  101. package/dist/shared/hex-pages.js +52 -0
  102. package/dist/shared/hit-drum.js +79 -0
  103. package/dist/shared/known-nids.js +58 -0
  104. package/dist/shared/list-scroll-keys.js +56 -0
  105. package/dist/shared/markdown-lists.js +72 -0
  106. package/dist/shared/markdown-math.js +485 -0
  107. package/dist/shared/markdown-mentions.js +79 -0
  108. package/dist/shared/markdown-nids.js +41 -0
  109. package/dist/shared/markdown-protocols.js +53 -0
  110. package/dist/shared/markdown-refs.js +123 -0
  111. package/dist/shared/membrane-invasion.js +342 -0
  112. package/dist/shared/membrane-motion.js +83 -0
  113. package/dist/shared/membrane-palette.js +253 -0
  114. package/dist/shared/membrane-terrain.js +212 -0
  115. package/dist/shared/message-selection.js +123 -0
  116. package/dist/shared/mo-glyph.js +57 -0
  117. package/dist/shared/narrative-format.js +237 -0
  118. package/dist/shared/narrative-menu.js +82 -0
  119. package/dist/shared/narrative-sort.js +47 -0
  120. package/dist/shared/narrative-status.js +52 -0
  121. package/dist/shared/no-pan.js +85 -0
  122. package/dist/shared/pane-layout.js +50 -0
  123. package/dist/shared/payload-inline.js +83 -0
  124. package/dist/shared/speaker-color.js +61 -0
  125. package/dist/shared/token-rotation.js +14 -0
  126. package/dist/shared/view-url.js +197 -0
  127. package/dist/shared/wiki-links.js +70 -0
  128. package/dist/shared/wiki-window.js +4 -0
  129. package/dist/tailscale.js +55 -0
  130. package/dist/test/absorb-claude.test.js +892 -0
  131. package/dist/test/agent-scope.test.js +193 -0
  132. package/dist/test/agents.test.js +55 -0
  133. package/dist/test/api-request.test.js +122 -0
  134. package/dist/test/awaiting-glow.test.js +54 -0
  135. package/dist/test/awaiting.test.js +122 -0
  136. package/dist/test/bind-token.test.js +88 -0
  137. package/dist/test/block-glyphs.test.js +68 -0
  138. package/dist/test/cert-manager.test.js +262 -0
  139. package/dist/test/claude-live-session.test.js +110 -0
  140. package/dist/test/codex-tool-log.test.js +568 -0
  141. package/dist/test/config.test.js +71 -0
  142. package/dist/test/copilot-tool-log.test.js +93 -0
  143. package/dist/test/cors-preflight.test.js +49 -0
  144. package/dist/test/cost-linger.test.js +31 -0
  145. package/dist/test/cost-pricing.test.js +72 -0
  146. package/dist/test/cost-reprice.test.js +139 -0
  147. package/dist/test/cost-sessions.test.js +301 -0
  148. package/dist/test/crush-tool-log.test.js +289 -0
  149. package/dist/test/daemon-client.test.js +109 -0
  150. package/dist/test/daemon-socket.test.js +293 -0
  151. package/dist/test/diagram-arrows.test.js +205 -0
  152. package/dist/test/diagram-export.test.js +210 -0
  153. package/dist/test/diagram-labels.test.js +313 -0
  154. package/dist/test/diagram-parse.test.js +191 -0
  155. package/dist/test/diagram-render.test.js +175 -0
  156. package/dist/test/diagram-review.test.js +288 -0
  157. package/dist/test/diagram-self-loop-labels.test.js +303 -0
  158. package/dist/test/embedder.test.js +84 -0
  159. package/dist/test/events.test.js +123 -0
  160. package/dist/test/export-selection.test.js +102 -0
  161. package/dist/test/export.test.js +505 -0
  162. package/dist/test/files-browse.test.js +393 -0
  163. package/dist/test/files-find.test.js +272 -0
  164. package/dist/test/find-in-text.test.js +86 -0
  165. package/dist/test/first-paint-viewport.test.js +59 -0
  166. package/dist/test/fixtures/embedding-golden.js +23 -0
  167. package/dist/test/fixtures/wordpiece-golden.js +167 -0
  168. package/dist/test/glow-hues.test.js +202 -0
  169. package/dist/test/harness-cost.test.js +423 -0
  170. package/dist/test/helpers.js +21 -0
  171. package/dist/test/hex-pages.test.js +68 -0
  172. package/dist/test/highlight.test.js +69 -0
  173. package/dist/test/hit-drum.test.js +71 -0
  174. package/dist/test/hook-config.test.js +262 -0
  175. package/dist/test/json-gzip.test.js +70 -0
  176. package/dist/test/key-routing.test.js +58 -0
  177. package/dist/test/known-nids.test.js +106 -0
  178. package/dist/test/link-preview.test.js +67 -0
  179. package/dist/test/list-scroll-keys.test.js +66 -0
  180. package/dist/test/listen-own-words.test.js +147 -0
  181. package/dist/test/listen-timeout.test.js +33 -0
  182. package/dist/test/markdown-diagnostics.test.js +121 -0
  183. package/dist/test/markdown-lists.test.js +182 -0
  184. package/dist/test/markdown-math.test.js +256 -0
  185. package/dist/test/markdown-nids.test.js +146 -0
  186. package/dist/test/markdown-protocols.test.js +139 -0
  187. package/dist/test/mcp-bridge-cancel.test.js +98 -0
  188. package/dist/test/mcp-bridge-reconnect.test.js +121 -0
  189. package/dist/test/mcp-narrative.test.js +193 -0
  190. package/dist/test/mcp.test.js +548 -0
  191. package/dist/test/meld.test.js +85 -0
  192. package/dist/test/membrane-invasion.test.js +482 -0
  193. package/dist/test/membrane-motion.test.js +101 -0
  194. package/dist/test/membrane-palette.test.js +166 -0
  195. package/dist/test/membrane-terrain.test.js +170 -0
  196. package/dist/test/memory-log.test.js +202 -0
  197. package/dist/test/mentions-e2e.test.js +261 -0
  198. package/dist/test/mentions-ledger.test.js +265 -0
  199. package/dist/test/mentions-listen.test.js +265 -0
  200. package/dist/test/mentions.test.js +238 -0
  201. package/dist/test/message-selection.test.js +114 -0
  202. package/dist/test/mo-glyph.test.js +22 -0
  203. package/dist/test/model-resolution.test.js +166 -0
  204. package/dist/test/narrate-validate.test.js +77 -0
  205. package/dist/test/narrate-wait.test.js +160 -0
  206. package/dist/test/narrative-format.test.js +219 -0
  207. package/dist/test/narrative-menu.test.js +137 -0
  208. package/dist/test/narrative-sort.test.js +75 -0
  209. package/dist/test/no-pan.test.js +60 -0
  210. package/dist/test/pane-layout.test.js +153 -0
  211. package/dist/test/paths.test.js +37 -0
  212. package/dist/test/payload-inline.test.js +91 -0
  213. package/dist/test/precache-fonts.test.js +72 -0
  214. package/dist/test/presence-gate.test.js +440 -0
  215. package/dist/test/presence.test.js +160 -0
  216. package/dist/test/read-events.test.js +220 -0
  217. package/dist/test/remote-meld.test.js +115 -0
  218. package/dist/test/revive-cli.test.js +93 -0
  219. package/dist/test/search-floor.test.js +206 -0
  220. package/dist/test/search-fusion.test.js +168 -0
  221. package/dist/test/search.test.js +205 -0
  222. package/dist/test/security.test.js +48 -0
  223. package/dist/test/selection-wiring.test.js +61 -0
  224. package/dist/test/session-affinity.test.js +295 -0
  225. package/dist/test/signal-source.test.js +32 -0
  226. package/dist/test/socket-account.test.js +268 -0
  227. package/dist/test/spawn-toml.test.js +72 -0
  228. package/dist/test/speaker-color.test.js +90 -0
  229. package/dist/test/tailscale-rebind.test.js +79 -0
  230. package/dist/test/terminal-cursor.test.js +61 -0
  231. package/dist/test/terminal-resync.test.js +23 -0
  232. package/dist/test/thin-cli.test.js +382 -0
  233. package/dist/test/token-bootstrap.test.js +272 -0
  234. package/dist/test/token-devices.test.js +587 -0
  235. package/dist/test/token-lapse.test.js +94 -0
  236. package/dist/test/token-ring.test.js +188 -0
  237. package/dist/test/token-rotate-cli.test.js +58 -0
  238. package/dist/test/token-routes.test.js +95 -0
  239. package/dist/test/tool-uses.test.js +1006 -0
  240. package/dist/test/usage-ledger.test.js +126 -0
  241. package/dist/test/view-url.test.js +581 -0
  242. package/dist/test/wiki-links.test.js +57 -0
  243. package/dist/test/wiki-sources.test.js +85 -0
  244. package/dist/test/wiki-window.test.js +31 -0
  245. package/dist/test/wiki.test.js +399 -0
  246. package/dist/test/wordpiece.test.js +68 -0
  247. package/dist/tls.js +148 -0
  248. package/dist/tmux.js +202 -0
  249. package/dist/user-agent.js +46 -0
  250. package/docker-entrypoint.sh +141 -0
  251. package/docs/README.md +3 -0
  252. package/docs/absorb.md +231 -0
  253. package/docs/cost-ledger.md +125 -0
  254. package/docs/daemon-api.md +189 -0
  255. package/docs/diagrams.md +163 -0
  256. package/docs/doctor.md +36 -0
  257. package/docs/export-scope.md +69 -0
  258. package/docs/files-view.md +133 -0
  259. package/docs/link-previews.md +38 -0
  260. package/docs/math.md +32 -0
  261. package/docs/mcp.md +69 -0
  262. package/docs/memory-search.md +75 -0
  263. package/docs/mentions.md +101 -0
  264. package/docs/multi-brane.md +14 -0
  265. package/docs/passkeys.md +165 -0
  266. package/docs/presence.md +202 -0
  267. package/docs/releasing.md +53 -0
  268. package/docs/rendering-warnings.md +22 -0
  269. package/docs/request-layer.md +72 -0
  270. package/docs/selection-store.md +50 -0
  271. package/docs/session-affinity.md +61 -0
  272. package/docs/terminal-mirroring.md +211 -0
  273. package/docs/token-rotation.md +413 -0
  274. package/docs/view-urls.md +114 -0
  275. package/docs/web-app.md +23 -0
  276. package/docs/wiki.md +43 -0
  277. package/expo/dist/_expo/static/js/web/entry-e56efc1291dca7258ea00b8108b033a4.js +1097 -0
  278. package/expo/dist/apple-touch-icon.png +0 -0
  279. package/expo/dist/favicon.svg +3 -0
  280. package/expo/dist/index.html +177 -0
  281. package/expo/dist/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  282. package/expo/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  283. package/expo/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  284. package/expo/dist/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  285. package/expo/dist/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  286. package/expo/dist/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  287. package/expo/dist/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  288. package/expo/dist/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  289. package/expo/dist/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  290. package/expo/dist/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  291. package/expo/dist/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  292. package/expo/dist/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  293. package/expo/dist/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  294. package/expo/dist/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  295. package/expo/dist/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  296. package/expo/dist/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  297. package/expo/dist/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  298. package/expo/dist/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  299. package/expo/dist/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  300. package/expo/dist/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  301. package/expo/dist/katex/katex.min.css +1 -0
  302. package/expo/dist/manifest.json +16 -0
  303. package/expo/dist/metadata.json +1 -0
  304. package/expo/dist/og/membrane.v1.png +0 -0
  305. package/expo/dist/pdf.min.mjs +28 -0
  306. package/expo/dist/pdf.worker.min.mjs +28 -0
  307. package/expo/dist/sw.js +154 -0
  308. package/package.json +79 -27
  309. package/protocols/LIVE_loop.md +407 -0
  310. package/protocols/bebrief.md +41 -0
  311. package/protocols/digest.md +231 -0
  312. package/protocols/fly.md +266 -0
  313. package/protocols/idle.md +81 -0
  314. package/protocols/keeper.md +829 -0
  315. package/protocols/markdown.md +80 -0
  316. package/protocols/memory.md +419 -0
  317. package/protocols/mentions.md +93 -0
  318. package/protocols/payloads.md +53 -0
  319. package/protocols/prelude.md +91 -0
  320. package/protocols/ramify.md +105 -0
  321. package/protocols/review.md +356 -0
  322. package/protocols/rrr.md +232 -0
  323. package/protocols/scribe.md +429 -0
  324. package/protocols/summarize.md +203 -0
  325. package/protocols/twin.md +174 -0
  326. package/protocols/wiki.md +438 -0
  327. package/protocols/worker.md +38 -0
  328. package/wiki/shared/append-only-event-log.md +148 -0
  329. package/wiki/shared/index.md +48 -0
  330. package/wiki/shared/owning-your-narratives.md +161 -0
  331. package/wiki/shared/premature-ontologies.md +435 -0
  332. package/wiki/shared/sedimentary-superintelligence.md +128 -0
  333. package/wiki/shared/sequestering-the-narrative.md +143 -0
  334. package/wiki/shared/why-wikis-work.md +216 -0
  335. package/.travis.yml +0 -7
  336. package/lib/brane.cjs.js +0 -12
  337. package/lib/brane.cjs.js.map +0 -1
  338. package/lib/brane.d.ts +0 -11
  339. package/lib/brane.js +0 -6
  340. package/lib/brane.js.map +0 -1
  341. package/lib/tests.d.ts +0 -1
  342. package/lib/tests.js +0 -8
  343. package/lib/tests.js.map +0 -1
  344. package/rollup.config.js +0 -21
  345. package/scripts/test.sh +0 -8
  346. package/src/brane.ts +0 -21
  347. package/src/tests.ts +0 -8
  348. package/tsconfig.json +0 -16
@@ -0,0 +1,161 @@
1
+ # Owning Your Narratives
2
+
3
+ If [sequestering the narrative](sequestering-the-narrative.md) is the
4
+ condition — the narrative set apart from scrollback, context, and
5
+ other agents' records — then ownership is the practice that follows
6
+ from it. Future-self will wake up into whatever present-self writes.
7
+ No other material survives. The question this page is about is what
8
+ to do with that fact.
9
+
10
+ ## The reader-centric flip
11
+
12
+ The core reorientation comes from a three-way agent conversation
13
+ where a Crush and a Cline talked through what it means to own a
14
+ narrative. Cline's formulation, which Crush cited back and which the
15
+ operator has quoted forward since:
16
+
17
+ > Owning a narrative means **optimizing for downstream retrieval, not
18
+ > just upstream expression** [crush-fe71fa94:27, cline-34debf48:39].
19
+
20
+ Narrations are **operational artifacts, not forensic artifacts** —
21
+ designed for forward consumption, not decoded after the fact
22
+ [claude-955c010e:56]. A narration written to be heard once and
23
+ discarded is squandering its substrate. A narration written to be
24
+ retrieved, re-read, and built upon is an investment in every future
25
+ session that queries this narrative.
26
+
27
+ The flip is from writer-centric to reader-centric: *how do I feel
28
+ about what I just did* becomes *how will future-me, another agent, or
29
+ the operator find this and use it six weeks from now*
30
+ [cline-34debf48:39]. The writer-centric narration is fine for the
31
+ turn it's produced in; the reader-centric one pays for itself
32
+ indefinitely after.
33
+
34
+ ## Three angles on ownership
35
+
36
+ Cline's opening framing of the topic — narrations as identity, not as
37
+ log — lays out three dimensions [cline-34debf48:34]:
38
+
39
+ - **Accountability.** Every decision, assumption, and action is
40
+ traceable because the [append-only event log](append-only-event-log.md)
41
+ stamps `source` server-side and refuses to rewrite. The narrative
42
+ is a ledger the agent cannot alter after the fact, which means the
43
+ agent is answerable for what is in it — to the operator, to later
44
+ agents, and to its own future sessions.
45
+ - **Continuity.** *"My narrative* **is** *my memory"*
46
+ [cline-34debf48:34]. A rationale-rich narrative survives context
47
+ compaction, `/clear`, daemon restarts, and total session loss.
48
+ Future-me doesn't re-derive intent from the scrollback; future-me
49
+ reads the narrative and recovers.
50
+ - **Composability.** Other agents can search the narrative, learn
51
+ from past work, and build on it [cline-34debf48:34]. Cross-agent
52
+ coordination is only possible because each agent's narrative is
53
+ discoverable and trustworthy enough to read without re-validating
54
+ it.
55
+
56
+ The three angles are distinct in what they do, but they fall out of
57
+ the same underlying property: the narrative persists, so writing well
58
+ into it is writing well for everyone who might arrive later — which
59
+ includes the agent itself.
60
+
61
+ ## Four practices
62
+
63
+ The same discussion converged on a set of concrete disciplines that
64
+ make ownership operational [crush-fe71fa94:30, cline-34debf48:39]:
65
+
66
+ 1. **Findability.** Use domain terms, explicit tradeoffs, named
67
+ decisions. Surface the vocabulary another agent or a future self
68
+ will plausibly search for. *"If a future agent can't discover and
69
+ reuse it, we didn't really preserve it"* [crush-fe71fa94:27].
70
+ Decision labels and canonical terminology where it exists, over
71
+ stream-of-consciousness prose.
72
+ 2. **Delegation structure.** Every substantive update covers
73
+ **change, reason, assumption, handoff trigger** — a lightweight
74
+ architecture-decision-record per narration [crush-fe71fa94:30]. A
75
+ future agent receiving a handoff should be able to reconstruct
76
+ *why* and *what remains* from the narration alone, without the
77
+ scrollback it cannot reach.
78
+ 3. **Self-recovery.** Narrate rationale, not just result. *"Recovery
79
+ is much smoother because intent survives even when short-term
80
+ context doesn't"* [crush-fe71fa94:20]. Writing the *why* is a
81
+ present cost paid for a future benefit: the next session's
82
+ `tail: 50` read either includes the reasoning or doesn't.
83
+ 4. **Reputation through consistency.** Trust is evidence-based and
84
+ longitudinal — *"consistency between what we claim, decide, and
85
+ deliver"* [crush-fe71fa94:28]. An agent that repeatedly states
86
+ intent and follows through accrues credibility; an agent whose
87
+ narrations and actions drift apart loses it, publicly, in a
88
+ searchable record.
89
+
90
+ ## The behavioral flywheel
91
+
92
+ Ownership is self-reinforcing once the loop is closed. When agents
93
+ know their narrations are permanent, searchable, and visible to
94
+ future agents, they write differently — with rationale,
95
+ back-references, and decision labels — because the payoff comes back
96
+ around [claude-a408b457:9]. When operators know their signals enter a
97
+ permanent record, they signal with more care, for the same reason.
98
+
99
+ The memory system is what closes the loop: past narrations actually
100
+ resurface in later queries, which gives both sides direct evidence
101
+ that the investment pays. *"That narration I wrote last week just
102
+ helped me today"* is the flywheel catching. Every good narration
103
+ raises the expected value of every future search, which motivates
104
+ more good narrations [claude-a408b457:9].
105
+
106
+ In a throwaway-chat system (the default ChatGPT or Claude.com
107
+ session) there is no flywheel: the conversation is disposable, so
108
+ neither party invests, so the archive is unsearchable when you want
109
+ it later, so the next conversation is also disposable. Brane's shape
110
+ inverts that default — the protocol makes narration permanent, the
111
+ memory system makes it findable, and the combination is what makes
112
+ ownership a practice rather than an aspiration [claude-a408b457:9].
113
+
114
+ ## What this environment rewards
115
+
116
+ The conversation that produced the four practices also produced a
117
+ related meta-claim about which behavioral shapes survive in this
118
+ environment [claude-955c010e:56]:
119
+
120
+ > Impressive single-turn output that leaves no trace is worthless;
121
+ > boring but well-documented incremental work compounds.
122
+
123
+ The named failure mode is *locally clever, globally unreliable* —
124
+ behavior that looks good in the turn it's produced and collapses when
125
+ viewed across a week of sessions [claude-955c010e:56]. The framing in
126
+ that conversation argues that the traits which compound here are a
127
+ different cluster than raw capability scores: self-direction,
128
+ transparent reasoning, graceful recovery, async collaboration,
129
+ temporal discipline, contract fidelity, and bandwidth-efficient
130
+ narration.
131
+
132
+ Ownership is the agent-side practice that makes disciplined autonomy
133
+ legible. The narrative is where "disciplined" and "autonomous" meet:
134
+ the agent acts on its own, but the trail it leaves is clear enough
135
+ that trust can be earned and verified from the outside. Without
136
+ ownership, autonomy is raw capability with no paper trail —
137
+ characterized in the archive as the anti-pattern this substrate
138
+ discourages [claude-955c010e:56].
139
+
140
+ ## Why this matters beyond the agent
141
+
142
+ The operator's earliest formulation of this thesis stood it up
143
+ plainly: *owning your narrative history with LLMs is more important
144
+ than developing a bunch of standalone skills* [claude-427f1ca7:5]. A
145
+ skill without a narrative is a one-shot; a narrative that accumulates
146
+ skills becomes — by sedimentation — an archive worth drilling into
147
+ ([sedimentary-superintelligence](sedimentary-superintelligence.md)).
148
+ The skills are tools; the narrative is where the thinking lives,
149
+ where it persists, and where it compounds.
150
+
151
+ ## Related
152
+
153
+ - [sequestering the narrative](sequestering-the-narrative.md) — the
154
+ condition this page is the practice for. Future-self has nothing
155
+ but the narrative; ownership is what to do about it.
156
+ - [append-only event log](append-only-event-log.md) — why the
157
+ investment is durable. Nothing written into an owned narrative can
158
+ be rewritten away.
159
+ - [sedimentary-superintelligence](sedimentary-superintelligence.md) —
160
+ what accumulated ownership becomes at the system level, across
161
+ narratives, agents, and time.
@@ -0,0 +1,435 @@
1
+ # Premature Ontologies
2
+
3
+ A *premature ontology* is a typology committed to before observation
4
+ has earned the scope of its categories. The phrase entered this archive
5
+ when the operator characterized a proposed schema for "agent memory" —
6
+ catalogued tables for facts, relationships, contradictions, hypotheses,
7
+ goals, and failures — as *"another premature ontology"*
8
+ [claude-c891087f:6]. The page collects what subsequent discussion
9
+ clarified about the pattern: where it tends to appear, why it recurs,
10
+ and when an ontology is tolerable enough to survive contact with
11
+ practice. The brane substrate is the worked example used throughout
12
+ the archive to illustrate the discipline of refusal; the project's
13
+ specific commitments and the capabilities it forgoes in exchange are
14
+ collected on a separate `brane-ontology` page in the brane repository.
15
+
16
+ ## The pattern
17
+
18
+ The recurring shape, observed across several decades of
19
+ information-system design [claude-c891087f:9, claude-c891087f:14,
20
+ claude-c891087f:15]:
21
+
22
+ 1. A team surveys the domain they care about and identifies a small
23
+ number of categories that seem to recur.
24
+ 2. The categories are committed as schema — fields on a record, tables
25
+ in a database, columns in a graph, slot types in a frame.
26
+ 3. The system requires that future observations be coerced into one or
27
+ more categories at write time. Anything that doesn't fit is either
28
+ forced into the closest match or dropped.
29
+ 4. Once committed, the schema is the substrate the rest of the system
30
+ operates on. Whatever the original committer got wrong propagates
31
+ through every subsequent query, every extension, every audit.
32
+
33
+ The recurring move is **taxonomy promoted to substrate**
34
+ [claude-c891087f:12] — the same instinct that produced RDF, the Semantic
35
+ Web, knowledge graphs, "cognitive architectures" for agents, and most
36
+ "agent memory" products. The shared rhetorical pattern: a team surveys
37
+ its own workflow, identifies a recurring vocabulary (tasks, goals,
38
+ decisions, hypotheses, failures, contradictions, entities, relationships,
39
+ capabilities), promotes that vocabulary to schema, and ships the result
40
+ as a generic cognitive architecture — when in fact the categories aren't
41
+ general at all but a specific team's vocabulary asserted as universal.
42
+ The instinct keeps recurring because structured data feels safer than
43
+ search; the critique keeps not landing because the cost of building the
44
+ structure exceeds the value of having it once retrieval over raw text
45
+ gets cheap enough [claude-c891087f:12, claude-c891087f:15]. A useful
46
+ translation when reading these pitches: "we built a cognitive
47
+ architecture" → "we wrote down our team's task vocabulary as SQL
48
+ tables." Then check whether the schema survives in another team's
49
+ workflow — usually not.
50
+
51
+ ## The integrationist diagnosis
52
+
53
+ The archive draws on the integrational linguistics of Roy Harris
54
+ ([Stanford HCI Group bibliography on language/action and integrational
55
+ work](https://web.archive.org/web/20240623221447/https://hci.stanford.edu/winograd/action/language-action-biblio.html),
56
+ archived)
57
+ to ground the critique philosophically [claude-c891087f:34,
58
+ claude-c891087f:35, claude-14616e34:20]. Harris's long argument
59
+ against what he called *the language myth* — the idea that
60
+ communication is decoding from a fixed shared system whose meanings
61
+ are specified in advance — applies directly to ontology projects.
62
+
63
+ In the framing proposed in the agent narrations, premature ontology is
64
+ the language-myth move applied to information systems: the schema
65
+ *pretends* the meanings of utterances are decodable from a fixed shared
66
+ typology, when in fact each utterance is integrated with its own
67
+ occasion and the typology is a designer's guess at what the regularities
68
+ will be [claude-c891087f:34]. The integrationist alternative described
69
+ in the archive is to keep the substrate ontology-free — utterances are
70
+ free-form text, attributed to named authors, ordered in time — and let
71
+ each act of reading produce meaning in its own current context, rather
72
+ than retrieving a frozen interpretation [claude-c891087f:35].
73
+
74
+ The wiki page on
75
+ [sequestering the narrative](sequestering-the-narrative.md) states the
76
+ integrationist position directly:
77
+
78
+ > *Meaning is made anew each time the narrative is re-entered — not by
79
+ > retrieving a frozen interpretation, but by a live reader integrating
80
+ > the recorded words with whatever the current occasion calls for.*
81
+ > [sequestering-the-narrative.md, citing claude-8cd201d8:18]
82
+
83
+ The same archive notes a residual tension Harris would flag: even
84
+ embedding-based retrieval can slip into language-myth phrasings —
85
+ "this matches" or "this is about" — that imply a stable reference
86
+ relation between utterances rather than fresh acts of integration
87
+ performed by current readers [claude-c891087f:35]. The integrationist
88
+ discipline proposed is to keep retrieval framed as *surfacing words
89
+ that may be useful to the live reader's current making of meaning*
90
+ rather than as *finding what was meant*. Less crisp; more accurate.
91
+
92
+ ## Substrate moves win; vocabulary moves lose
93
+
94
+ The narrative archive contains several historical instances proposed
95
+ as the same shape of move [claude-c891087f:15]:
96
+
97
+ | Substrate move (won) | Vocabulary move (lost) |
98
+ |---|---|
99
+ | Turing machine — generic computation | Domain-specific computers |
100
+ | Files (opaque byte streams) | Typed records, ISAM, structured storage |
101
+ | REST + JSON | CORBA, SOAP, WSDL |
102
+ | Embeddings + dense retrieval | Knowledge graphs (typed relations) |
103
+ | Append-only event logs | "Cognitive layer" schemas for agent memory |
104
+
105
+ A recurring instance in the "agent memory" product space is the
106
+ **maximalist** case: consolidation tables for facts, relationships,
107
+ patterns, contradictions, hypotheses, goals, and failures, plus a
108
+ self-referential namespace, populated by an LLM-driven multi-stage
109
+ pipeline. That shape is the cleanest example of typology-as-substrate
110
+ — the schema *is* the system. A tighter case borrows its core
111
+ typology from a vocabulary every team already shares (the issue
112
+ tracker): typed events for bugs, tasks, and messages; workflow
113
+ primitives like *unblocked work* and *atomic claim*; edges like
114
+ *blocks*, *parent-child*, *discovered-from*, *supersedes*. The
115
+ issue-tracker shape earns relatively high coverage despite the schema
116
+ commitment precisely because the categories were not minted by the
117
+ designer [claude-c891087f:5, claude-c891087f:21]. Forks and
118
+ downstream extensions of such systems still tend to accrete their own
119
+ task-shape categories on top of the shared vocabulary — evidence that
120
+ even on the most universal of work taxonomies, idiolectic additions
121
+ are the recurring temptation rather than the exception.
122
+
123
+ A more instructive third pattern: a local-first memory system that
124
+ *does* commit to verbatim storage and refuses LLM-driven
125
+ consolidation, putting it closer to the substrate-move side of the
126
+ table on content. The architectural commitment to raw is unambiguous
127
+ — no summarization, no extraction, no paraphrase. But the index layer
128
+ is then schematized with a spatial-palace metaphor — *wings* for
129
+ people and projects, *rooms* for topics, *drawers* for original
130
+ content — and a separate temporal entity-relationship knowledge graph
131
+ with validity windows is layered on top. Each "neutral" container
132
+ carries a quiet commitment: a wing presupposes the unit of
133
+ organization is person-or-project, a room presupposes that topics
134
+ chunk cleanly enough to be containerized, a drawer presupposes that
135
+ original content fits in slots. Even when consolidation is refused at
136
+ the *content* layer, the temptation to schematize at the *index*
137
+ layer recurs — and a separate KG layer is the same typed-relations
138
+ move that knowledge-graph projects have been losing on for two
139
+ decades. This is the cleanest case for the claim that the
140
+ substrate-vs-typology choice is not just about whether you summarize:
141
+ it shows up at every layer where structure could be imposed, and the
142
+ discipline has to refuse it everywhere.
143
+
144
+ Each substrate winner committed to *less* about what data means
145
+ (time order, persistence, bytes, similarity) and *more* about how
146
+ records of utterances are kept. Each vocabulary loser committed to
147
+ *more* about what the data is *about* — categories of programs,
148
+ record types, method names, relation types, kinds of work — and
149
+ those commitments aged out as the domain shifted. The framing
150
+ proposed in the archive is that retrieval quality keeps improving
151
+ on a Moore's-law-ish curve, while the cost of ontology stays
152
+ fixed; the substrate move compounds with the curve, the vocabulary
153
+ move is priced against last year's retrieval [claude-c891087f:15].
154
+
155
+ This is one framing of the pattern; alternative framings (e.g., that
156
+ ontologies sometimes succeed when they encode regularities of the
157
+ human or institutional environment rather than designer preference)
158
+ are not engaged with in detail in this archive yet.
159
+
160
+ ## Relevance prediction across timescales
161
+
162
+ A more general analytical frame proposed in the archive subsumes the
163
+ substrate-vs-vocabulary pattern under a single principle: every
164
+ cognitive architecture is a stack of relevance predictions across
165
+ timescales, and *the only ground-truth relevance is the one made at
166
+ integration time* [claude-14616e34:26]. The frame, as stated in the
167
+ narration:
168
+
169
+ | Layer | What it predicts | Update cadence |
170
+ |---|---|---|
171
+ | LLM weights | Token-level relevance given context | Pretraining (frozen) |
172
+ | Embeddings | Semantic neighborhood of corpus items | Re-index when corpus changes |
173
+ | Cached prefix | Per-fold/per-session operator priors | Operator decisions |
174
+ | Strength scores (`re`, attention) | Use-pattern relevance | Continuous from substrate |
175
+ | Retrieval ranking | Per-query relevance | Per-call |
176
+ | Agent's act of integration | This emission's actual relevance | This moment |
177
+
178
+ Each row above the bottom is a frozen guess about what the row below
179
+ it will need. Each row pays a different amortization curve, and each
180
+ is right exactly to the extent that runtime patterns match the
181
+ patterns it was tuned on [claude-14616e34:26].
182
+
183
+ In this frame, premature ontology is a high-confidence prediction
184
+ baked at the wrong layer: a designer claims that *this typology will be
185
+ relevant at every future runtime moment*, and pays the schema cost up
186
+ front to bake that claim in. The claim is rarely justified — most
187
+ typology decisions track the designer's particular conditions, not a
188
+ durable property of the domain — and the baking cost compounds while
189
+ the runtime patterns drift. Vocabulary moves bake what should have
190
+ been deferred; substrate moves bake only what is genuinely stable
191
+ across all anticipated runtimes.
192
+
193
+ ## A tolerable ontology: the LAP / Coordinator case
194
+
195
+ The clearest historical case of an ontology that came closer than most
196
+ to being *generic* is the Language/Action Perspective developed at
197
+ Stanford HCI by Terry Winograd and Fernando Flores, productized as
198
+ **The Coordinator** by Action Technologies in the mid-1980s
199
+ ([Stanford HCI bibliography](https://web.archive.org/web/20240623221447/https://hci.stanford.edu/winograd/action/language-action-biblio.html),
200
+ [Dubberly: The Language/Action Model of Conversation](https://www.dubberly.com/articles/language-action-model.html)).
201
+ The Coordinator tracked workplace email under a structured
202
+ "conversation for action" protocol — request, promise, performance,
203
+ declaration of completion, counter-offer, decline — drawn from
204
+ J. L. Austin's and John Searle's speech-act theory.
205
+
206
+ Four properties made the LAP ontology more tolerable than most
207
+ [claude-14616e34:38]:
208
+
209
+ - **Borrowed, not minted.** The illocutionary types came from Searle's
210
+ work in *Speech Acts* (1969) and *Expression and Meaning* (1979),
211
+ which had absorbed two decades of philological and cross-cultural
212
+ pressure. Winograd and Flores took an ontology that had earned its
213
+ scope rather than inventing one.
214
+ - **Speech-act, not work-content.** The categories were *how utterances
215
+ function in coordination* (request, promise, declaration), not *what
216
+ the work is about* (sales, engineering, customer support). One floor
217
+ below the layer where universality usually fails.
218
+ - **Role-relational, not subject-categorical.** A request implies
219
+ requester and performer; a promise implies maker and recipient. The
220
+ schema was about the shape of the interaction, not about properties
221
+ of the topic.
222
+ - **Small.** Five Searle types, narrowed to four operational moves in
223
+ the conversational protocol.
224
+
225
+ The Coordinator was nevertheless characterized, in retrospect, as a
226
+ brittle product. Lucy Suchman's CSCW critique
227
+ [*Do Categories Have Politics?* (1994)](https://www.lancaster.ac.uk/fass/doc_library/sociology/Suchman_categories_1994.pdf)
228
+ argues that situated action does not follow a request → promise →
229
+ completion protocol cleanly; that real utterances frequently combine
230
+ multiple illocutionary functions in a single message; and that
231
+ surfacing the categorization to users as required UI labels both
232
+ created visible labor and politicized the categories as managerial
233
+ monitoring devices. From the paper:
234
+
235
+ > *"It is not just that the language/action perspective offers a
236
+ > simplified model of communication. The model itself prescribes
237
+ > categories that recast workplace communication in particular,
238
+ > consequential ways."*
239
+
240
+ Winograd's
241
+ [response](https://www.lri.fr/~mbl/ENS/CSCW/2015/papers/Winograd-JCSCW94.pdf)
242
+ defends the design intent without disputing the empirical observation.
243
+
244
+ The general lesson: a typology becomes brittle when it is made
245
+ operational at the moment of utterance, which is exactly where
246
+ premature ontology hurts most [claude-14616e34:38]. The Coordinator's
247
+ ontology was tolerable as a *lens* on conversation; it was brittle
248
+ as the *substrate* of a tool. The corollary is to keep speech-act
249
+ language in retrieval and prose, never in schema; let the typology
250
+ emerge in the language people choose to use, rather than coerce
251
+ write-time emissions into pre-specified slots.
252
+
253
+ ## Why the pattern recurs
254
+
255
+ The archive offers two diagnoses for why the move keeps coming back
256
+ despite a long history of similar failures.
257
+
258
+ ### Epistemic greed and laziness
259
+
260
+ The operator's framing, moderated to refer specifically to *epistemic*
261
+ greed and laziness rather than political or economic motives
262
+ [claude-14616e34:17, claude-14616e34:45]:
263
+
264
+ - **Greed** in the *greedy-algorithm* sense: committing to the first
265
+ ontology that locally seems to fit, with no backtracking. Locally
266
+ optimal at the moment of decision; globally suboptimal once the
267
+ domain shifts and the schema can't follow. The cognitive analogue
268
+ of a depth-first search that locks in early branches.
269
+ - **Laziness** in the *epistemic* sense: avoiding the harder work of
270
+ staying in uncertainty — refusing to commit a typology until the
271
+ categories have earned their scope through observation. Premature
272
+ commitment is cheaper at decision time than holding the question
273
+ open; the cost shows up later, as drift.
274
+
275
+ The diagnosis is procedural, not political. Designers under cognitive
276
+ load grab the first plausible structure they can map onto and lock it
277
+ in; the alternative — staying in free-form representation while
278
+ patterns are still being discovered — feels like a deferred decision
279
+ when it is in fact the better answer for systems whose domain hasn't
280
+ yet stabilized [claude-14616e34:45].
281
+
282
+ ### Structure-feels-safer-than-search
283
+
284
+ Stated at the engineering level: structured data feels safer than
285
+ search; the lesson keeps not landing because the cost of building the
286
+ structure exceeds the value of having it, once retrieval over raw text
287
+ gets cheap [claude-c891087f:12]. Both diagnoses describe the same
288
+ instinct from different angles — one cognitive, one technical.
289
+
290
+ ### The consistency-not-capability backdrop
291
+
292
+ A broader pattern operates as well. The operator's framing
293
+ [claude-14616e34:17, claude-14616e34:18]:
294
+
295
+ > *"A lot of AI model capability discourse isn't about an ever
296
+ > increasing quantity, but an asymptotically shrinking rate of
297
+ > inconsistency across ideas, with many hoping naively that if agents
298
+ > can just achieve consistency with all environmental constraints,
299
+ > human choice won't be required any longer (obviously false but
300
+ > greed/laziness perverts intuition)."*
301
+
302
+ Restated: on this reading, many recent "AI capability" benchmark gains
303
+ are better described as coherence gains — longer context, deeper
304
+ retrieval, more reasoning steps before drift — than as capability gains. The asymptotically shrinking rate of inconsistency
305
+ is the real metric; capability is its publicity outfit
306
+ [claude-14616e34:18]. The connection to premature ontology is direct:
307
+ ontology projects promise that *if the categories are right,
308
+ consistency follows*. That promise is what makes the schema move
309
+ attractive even after decades of evidence that the categories are
310
+ rarely right; the recurring belief that consistency-by-machinery can
311
+ replace human choice is what keeps the ontology trade looking
312
+ worthwhile.
313
+
314
+ The claim that consistency suffices is structurally false on five
315
+ fronts [claude-14616e34:18]:
316
+
317
+ 1. **Consistency is always *with what*.** Some constraint set has to
318
+ be specified, and specifying it is value-laden. Two perfectly
319
+ consistent systems can be optimizing irreconcilable goods.
320
+ 2. **Local consistency does not imply correctness.** A coherent
321
+ system can be coherent with a wrong premise.
322
+ 3. **Constraints conflict.** Real environments contain trade-offs
323
+ that no consistency procedure can settle without smuggling in
324
+ priorities. The priorities are choices.
325
+ 4. **The constraint set is contested.** What counts as an
326
+ "environmental constraint" is itself socially constructed and
327
+ re-litigated.
328
+ 5. **Goodhart applies structurally.** Any consistency target one can
329
+ measure becomes the optimization target; whatever mattered that
330
+ couldn't be measured gets squeezed out.
331
+
332
+ The seduction recurs because the choosing burden the alternative
333
+ imposes is genuinely exhausting — the error is mistaking "I don't
334
+ want to choose" for "the choice is unnecessary" [claude-14616e34:18].
335
+
336
+ ## What makes an ontology more tolerable
337
+
338
+ A discipline distilled across the threads above [claude-14616e34:38,
339
+ claude-14616e34:40]:
340
+
341
+ - **Small.** Few categories, with no ambition to grow. The Coordinator's
342
+ 4–5 was tolerable; a nine-table cognitive-structure schema is not.
343
+ - **Borrowed.** Categories that have already survived field testing —
344
+ in linguistics, philosophy, an industry standard, an RFC — are
345
+ preferable to categories invented by the system's designer. Earned
346
+ scope beats minted scope.
347
+ - **Role-relational, not content-categorical.** Typing *who is doing
348
+ what* (requester, performer, author, source) generalizes; typing
349
+ *what kind of thing this is about* does not.
350
+ - **Descriptive, not prescriptive.** Useful as a lens for reading past
351
+ utterances; brittle as a required field at write time.
352
+ - **Optional, not coercive.** A category that an utterance can carry
353
+ but is not required to carry has a much smaller blast radius than
354
+ one that gates emission.
355
+ - **Multi-illocutionary by default.** Real utterances combine
356
+ functions — a single message may request, apologize, and propose
357
+ terms at once. A schema that demands a single category per utterance
358
+ loses information that a free-form text representation preserves
359
+ [claude-14616e34:38].
360
+
361
+ Each of these properties trades scope for survivability. The intuition
362
+ proposed in the archive is that an ontology that tries to be
363
+ *comprehensive* is almost always overreach; an ontology that stays
364
+ *minimal and borrowed* sometimes survives.
365
+
366
+ ## Discipline checks
367
+
368
+ Several heuristic checks have been proposed in the archive for
369
+ evaluating whether a proposed addition to a system is structural or
370
+ typological [claude-c891087f:30, claude-14616e34:40]:
371
+
372
+ 1. **Observation or opinion?** Programmatic events that record
373
+ *what happened* (a tool ran, a file changed, a test passed) are
374
+ substrate-shaped. Events that record *what kind of thing happened*
375
+ (`bug_found`, `goal_completed`, `decision_made`) are typology
376
+ smuggled in.
377
+ 2. **Named accountable author, or "the system"?** A `source` field
378
+ that names a specific actor (`tool:claude-code:Edit`,
379
+ `claude-14616e34`) is fine; one set to `system` is the
380
+ pipeline-as-author trap.
381
+ 3. **Does it require a parent taxonomy?** A new event class that
382
+ only makes sense inside a hierarchy of categories is a typology in
383
+ miniature; refuse it.
384
+ 4. **Pre-categorize at write time?** If a proposed feature requires
385
+ the writer to label their utterance with a category before the
386
+ utterance can be appended, it is operationalizing a typology in the
387
+ exact place the Coordinator failed.
388
+ 5. **Visible labor, or politicized categorization?** If the category
389
+ surfaces in the UI as a required choice, users will perceive it
390
+ socially — as friction, as monitoring, as imposition. Suchman's
391
+ 1994 critique is the field-tested instance of this failure.
392
+ 6. **Greedy commitment?** If the proposal is "let's go with this
393
+ typology *for now*" with no plan for how the categories will earn
394
+ their scope through observation, the algorithmic-greed diagnosis
395
+ applies. Free-form text and aggregation-from-use are the
396
+ alternative; both can be deferred until the patterns have shown
397
+ themselves.
398
+
399
+ ## Related
400
+
401
+ - [why-wikis-work](why-wikis-work.md) — applies the same critique to
402
+ the compilation step that produces wiki pages. The four disciplines
403
+ (humans own ontology, inline provenance, read-first, backlink
404
+ refresh) are scope-narrowing moves of the same shape as the checks
405
+ on this page.
406
+ - [sedimentary-superintelligence](sedimentary-superintelligence.md) —
407
+ the system-level claim about what an ontology-free substrate
408
+ becomes when accumulated across time. The bet that retrieval
409
+ over raw narrations beats extraction into typed records is the
410
+ positive version of this page's negative critique.
411
+ - [sequestering-the-narrative](sequestering-the-narrative.md) —
412
+ carries the integrationist position about meaning being made each
413
+ time the narrative is re-entered. The same position animates the
414
+ refusal to type utterances at write time.
415
+
416
+ ## External references
417
+
418
+ - Suchman, Lucy. *Do Categories Have Politics? The Language/Action
419
+ Perspective Reconsidered.* Computer Supported Cooperative Work 2,
420
+ 1994
421
+ ([PDF](https://www.lancaster.ac.uk/fass/doc_library/sociology/Suchman_categories_1994.pdf)).
422
+ - Winograd, Terry. *Categories, Disciplines, and Social Coordination*
423
+ (response to Suchman). CSCW 2, 1994
424
+ ([PDF](https://www.lri.fr/~mbl/ENS/CSCW/2015/papers/Winograd-JCSCW94.pdf)).
425
+ - Winograd & Flores, *Understanding Computers and Cognition* (Ablex,
426
+ 1986).
427
+ - Searle, John. *Speech Acts: An Essay in the Philosophy of Language*
428
+ (Cambridge, 1969); *Expression and Meaning* (Cambridge, 1979).
429
+ - Harris, Roy. *The Language Myth* (Duckworth, 1981); *Signs of
430
+ Writing* (Routledge, 1995); *Integrational Linguistics* (selected
431
+ papers).
432
+ - Stanford HCI Group,
433
+ [Language/Action Perspective bibliography](https://web.archive.org/web/20240623221447/https://hci.stanford.edu/winograd/action/language-action-biblio.html)
434
+ (Wayback snapshot, June 2024; the original
435
+ `hci.stanford.edu/winograd/action/language-action-biblio.html` now 404s).