brane 0.1.1 → 0.3.1
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.
- package/AGENTS.md +367 -0
- package/CHANGELOG.md +66 -0
- package/CONTRIBUTING.md +101 -0
- package/DESIGN.md +405 -0
- package/Dockerfile +61 -0
- package/LICENSE +656 -17
- package/README.md +174 -2
- package/SECURITY.md +213 -0
- package/dist/absorb/brane-id.js +11 -0
- package/dist/absorb/chatgpt.js +161 -0
- package/dist/absorb/claude-code.js +504 -0
- package/dist/absorb/index.js +543 -0
- package/dist/absorb/organelle.js +345 -0
- package/dist/absorb/run.js +520 -0
- package/dist/absorb/sources.js +168 -0
- package/dist/absorb/types.js +3 -0
- package/dist/agent-env.js +45 -0
- package/dist/agents.js +1168 -0
- package/dist/claude-live-session.js +124 -0
- package/dist/cli.js +50 -0
- package/dist/codex-tool-log.js +144 -0
- package/dist/commands/absorb.js +291 -0
- package/dist/commands/attach.js +31 -0
- package/dist/commands/certify.js +62 -0
- package/dist/commands/config.js +133 -0
- package/dist/commands/cost.js +126 -0
- package/dist/commands/daemon.js +350 -0
- package/dist/commands/doctor.js +262 -0
- package/dist/commands/fold.js +95 -0
- package/dist/commands/list.js +89 -0
- package/dist/commands/mcp.js +84 -0
- package/dist/commands/meld.js +360 -0
- package/dist/commands/memory.js +215 -0
- package/dist/commands/revive.js +74 -0
- package/dist/commands/run.js +85 -0
- package/dist/commands/spawn.js +1101 -0
- package/dist/commands/token.js +154 -0
- package/dist/copilot-tool-log.js +145 -0
- package/dist/cost/pricing.js +116 -0
- package/dist/cost/reprice.js +136 -0
- package/dist/crush-tool-log.js +293 -0
- package/dist/daemon/agent-scope.js +116 -0
- package/dist/daemon/awaiting.js +54 -0
- package/dist/daemon/cert-manager.js +349 -0
- package/dist/daemon/client.js +262 -0
- package/dist/daemon/gated-routes.js +112 -0
- package/dist/daemon/keep-awake.js +103 -0
- package/dist/daemon/local-socket.js +145 -0
- package/dist/daemon/presence-gate.js +206 -0
- package/dist/daemon/server.js +6353 -0
- package/dist/daemon/signal-source.js +35 -0
- package/dist/daemon/tailscale-rebind.js +58 -0
- package/dist/daemon/token-ring.js +263 -0
- package/dist/daemon/token-routes.js +190 -0
- package/dist/db/events.js +152 -0
- package/dist/db/mentions.js +179 -0
- package/dist/db/schema.js +643 -0
- package/dist/db/tokens.js +624 -0
- package/dist/db/tool-uses.js +647 -0
- package/dist/diagram/index.js +85 -0
- package/dist/diagram/label.js +455 -0
- package/dist/diagram/layout.js +476 -0
- package/dist/diagram/links.js +50 -0
- package/dist/diagram/metrics.js +152 -0
- package/dist/diagram/parse.js +487 -0
- package/dist/diagram/svg.js +389 -0
- package/dist/diagram/types.js +9 -0
- package/dist/export.js +629 -0
- package/dist/files/archive-types.js +2 -0
- package/dist/files/archive.js +182 -0
- package/dist/files/browse.js +327 -0
- package/dist/files/bytes.js +162 -0
- package/dist/files/codecs.js +33 -0
- package/dist/files/find.js +212 -0
- package/dist/files/tar.js +223 -0
- package/dist/files/zip.js +209 -0
- package/dist/folds.js +72 -0
- package/dist/grammars/ebnf.js +92 -0
- package/dist/highlight.js +250 -0
- package/dist/ids.js +24 -0
- package/dist/markdown-diagnostics.js +233 -0
- package/dist/math.js +168 -0
- package/dist/mcp/server.js +886 -0
- package/dist/memory/embedder.js +145 -0
- package/dist/memory/embedding-worker.js +71 -0
- package/dist/memory/embeddings.js +91 -0
- package/dist/memory/index.js +232 -0
- package/dist/memory/storage.js +587 -0
- package/dist/memory/wiki.js +688 -0
- package/dist/memory/wordpiece.js +247 -0
- package/dist/mentions-scan.js +40 -0
- package/dist/presence.js +259 -0
- package/dist/session-affinity.js +185 -0
- package/dist/shared/api-request.js +124 -0
- package/dist/shared/app-origin.js +26 -0
- package/dist/shared/block-glyphs.js +114 -0
- package/dist/shared/diagram-css.js +17 -0
- package/dist/shared/export-selection.js +101 -0
- package/dist/shared/find-in-text.js +110 -0
- package/dist/shared/glow-hues.js +225 -0
- package/dist/shared/hex-dump.js +62 -0
- package/dist/shared/hex-pages.js +52 -0
- package/dist/shared/hit-drum.js +79 -0
- package/dist/shared/known-nids.js +58 -0
- package/dist/shared/list-scroll-keys.js +56 -0
- package/dist/shared/markdown-lists.js +72 -0
- package/dist/shared/markdown-math.js +485 -0
- package/dist/shared/markdown-mentions.js +79 -0
- package/dist/shared/markdown-nids.js +41 -0
- package/dist/shared/markdown-protocols.js +53 -0
- package/dist/shared/markdown-refs.js +123 -0
- package/dist/shared/membrane-invasion.js +342 -0
- package/dist/shared/membrane-motion.js +83 -0
- package/dist/shared/membrane-palette.js +253 -0
- package/dist/shared/membrane-terrain.js +212 -0
- package/dist/shared/message-selection.js +123 -0
- package/dist/shared/mo-glyph.js +57 -0
- package/dist/shared/narrative-format.js +237 -0
- package/dist/shared/narrative-menu.js +84 -0
- package/dist/shared/narrative-sort.js +47 -0
- package/dist/shared/narrative-status.js +52 -0
- package/dist/shared/no-pan.js +85 -0
- package/dist/shared/pane-layout.js +50 -0
- package/dist/shared/payload-inline.js +83 -0
- package/dist/shared/speaker-color.js +61 -0
- package/dist/shared/token-rotation.js +14 -0
- package/dist/shared/view-url.js +216 -0
- package/dist/shared/wiki-links.js +70 -0
- package/dist/shared/wiki-window.js +4 -0
- package/dist/tailscale.js +55 -0
- package/dist/test/absorb-claude.test.js +892 -0
- package/dist/test/agent-scope.test.js +193 -0
- package/dist/test/agents.test.js +55 -0
- package/dist/test/api-request.test.js +122 -0
- package/dist/test/app-host-literal.test.js +53 -0
- package/dist/test/awaiting-glow.test.js +54 -0
- package/dist/test/awaiting.test.js +122 -0
- package/dist/test/bind-token.test.js +88 -0
- package/dist/test/block-glyphs.test.js +68 -0
- package/dist/test/cert-manager.test.js +262 -0
- package/dist/test/claude-live-session.test.js +110 -0
- package/dist/test/codex-tool-log.test.js +568 -0
- package/dist/test/config.test.js +71 -0
- package/dist/test/copilot-tool-log.test.js +93 -0
- package/dist/test/cors-preflight.test.js +56 -0
- package/dist/test/cost-linger.test.js +31 -0
- package/dist/test/cost-pricing.test.js +72 -0
- package/dist/test/cost-reprice.test.js +139 -0
- package/dist/test/cost-sessions.test.js +301 -0
- package/dist/test/crush-tool-log.test.js +289 -0
- package/dist/test/daemon-client.test.js +109 -0
- package/dist/test/daemon-socket.test.js +293 -0
- package/dist/test/diagram-arrows.test.js +205 -0
- package/dist/test/diagram-export.test.js +210 -0
- package/dist/test/diagram-labels.test.js +313 -0
- package/dist/test/diagram-parse.test.js +191 -0
- package/dist/test/diagram-render.test.js +175 -0
- package/dist/test/diagram-review.test.js +288 -0
- package/dist/test/diagram-self-loop-labels.test.js +303 -0
- package/dist/test/embedder.test.js +84 -0
- package/dist/test/events.test.js +123 -0
- package/dist/test/export-selection.test.js +102 -0
- package/dist/test/export.test.js +505 -0
- package/dist/test/files-browse.test.js +393 -0
- package/dist/test/files-find.test.js +272 -0
- package/dist/test/find-in-text.test.js +86 -0
- package/dist/test/first-paint-viewport.test.js +59 -0
- package/dist/test/fixtures/embedding-golden.js +23 -0
- package/dist/test/fixtures/wordpiece-golden.js +167 -0
- package/dist/test/glow-hues.test.js +202 -0
- package/dist/test/harness-cost.test.js +423 -0
- package/dist/test/helpers.js +21 -0
- package/dist/test/hex-pages.test.js +68 -0
- package/dist/test/highlight.test.js +69 -0
- package/dist/test/hit-drum.test.js +71 -0
- package/dist/test/hook-config.test.js +299 -0
- package/dist/test/json-gzip.test.js +70 -0
- package/dist/test/key-routing.test.js +58 -0
- package/dist/test/known-nids.test.js +106 -0
- package/dist/test/link-preview.test.js +67 -0
- package/dist/test/list-scroll-keys.test.js +66 -0
- package/dist/test/listen-own-words.test.js +147 -0
- package/dist/test/listen-timeout.test.js +33 -0
- package/dist/test/markdown-diagnostics.test.js +121 -0
- package/dist/test/markdown-lists.test.js +182 -0
- package/dist/test/markdown-math.test.js +256 -0
- package/dist/test/markdown-nids.test.js +146 -0
- package/dist/test/markdown-protocols.test.js +139 -0
- package/dist/test/mcp-bridge-cancel.test.js +98 -0
- package/dist/test/mcp-bridge-reconnect.test.js +121 -0
- package/dist/test/mcp-narrative.test.js +193 -0
- package/dist/test/mcp.test.js +548 -0
- package/dist/test/meld.test.js +143 -0
- package/dist/test/membrane-invasion.test.js +482 -0
- package/dist/test/membrane-motion.test.js +101 -0
- package/dist/test/membrane-palette.test.js +166 -0
- package/dist/test/membrane-terrain.test.js +170 -0
- package/dist/test/memory-log.test.js +202 -0
- package/dist/test/mentions-e2e.test.js +261 -0
- package/dist/test/mentions-ledger.test.js +265 -0
- package/dist/test/mentions-listen.test.js +265 -0
- package/dist/test/mentions.test.js +238 -0
- package/dist/test/message-selection.test.js +114 -0
- package/dist/test/mo-glyph.test.js +22 -0
- package/dist/test/model-resolution.test.js +166 -0
- package/dist/test/narrate-validate.test.js +77 -0
- package/dist/test/narrate-wait.test.js +160 -0
- package/dist/test/narrative-format.test.js +219 -0
- package/dist/test/narrative-menu.test.js +150 -0
- package/dist/test/narrative-sort.test.js +75 -0
- package/dist/test/no-pan.test.js +60 -0
- package/dist/test/pane-layout.test.js +153 -0
- package/dist/test/paths.test.js +37 -0
- package/dist/test/payload-inline.test.js +91 -0
- package/dist/test/precache-fonts.test.js +72 -0
- package/dist/test/presence-gate.test.js +440 -0
- package/dist/test/presence.test.js +160 -0
- package/dist/test/read-events.test.js +220 -0
- package/dist/test/remote-meld.test.js +128 -0
- package/dist/test/revive-cli.test.js +93 -0
- package/dist/test/search-floor.test.js +206 -0
- package/dist/test/search-fusion.test.js +168 -0
- package/dist/test/search.test.js +205 -0
- package/dist/test/security.test.js +48 -0
- package/dist/test/selection-wiring.test.js +61 -0
- package/dist/test/session-affinity.test.js +295 -0
- package/dist/test/signal-source.test.js +32 -0
- package/dist/test/socket-account.test.js +268 -0
- package/dist/test/spawn-toml.test.js +72 -0
- package/dist/test/speaker-color.test.js +90 -0
- package/dist/test/tailscale-rebind.test.js +79 -0
- package/dist/test/terminal-cursor.test.js +61 -0
- package/dist/test/terminal-resync.test.js +23 -0
- package/dist/test/terminal-size.test.js +36 -0
- package/dist/test/thin-cli.test.js +382 -0
- package/dist/test/token-bootstrap.test.js +272 -0
- package/dist/test/token-devices.test.js +646 -0
- package/dist/test/token-lapse.test.js +94 -0
- package/dist/test/token-ring.test.js +188 -0
- package/dist/test/token-rotate-cli.test.js +58 -0
- package/dist/test/token-routes.test.js +95 -0
- package/dist/test/tool-uses.test.js +1006 -0
- package/dist/test/usage-ledger.test.js +126 -0
- package/dist/test/view-url.test.js +627 -0
- package/dist/test/wiki-links.test.js +57 -0
- package/dist/test/wiki-sources.test.js +85 -0
- package/dist/test/wiki-window.test.js +31 -0
- package/dist/test/wiki.test.js +399 -0
- package/dist/test/wordpiece.test.js +68 -0
- package/dist/test/wrangler-route.test.js +27 -0
- package/dist/tls.js +148 -0
- package/dist/tmux.js +213 -0
- package/dist/user-agent.js +46 -0
- package/docker-entrypoint.sh +154 -0
- package/docs/README.md +3 -0
- package/docs/absorb.md +231 -0
- package/docs/cost-ledger.md +125 -0
- package/docs/daemon-api.md +189 -0
- package/docs/diagrams.md +163 -0
- package/docs/doctor.md +36 -0
- package/docs/export-scope.md +69 -0
- package/docs/files-view.md +133 -0
- package/docs/link-previews.md +38 -0
- package/docs/math.md +32 -0
- package/docs/mcp.md +69 -0
- package/docs/memory-search.md +75 -0
- package/docs/mentions.md +101 -0
- package/docs/multi-brane.md +14 -0
- package/docs/passkeys.md +165 -0
- package/docs/presence.md +202 -0
- package/docs/releasing.md +104 -0
- package/docs/rendering-warnings.md +22 -0
- package/docs/request-layer.md +72 -0
- package/docs/selection-store.md +50 -0
- package/docs/session-affinity.md +61 -0
- package/docs/terminal-mirroring.md +243 -0
- package/docs/token-rotation.md +431 -0
- package/docs/view-urls.md +134 -0
- package/docs/web-app.md +23 -0
- package/docs/wiki.md +43 -0
- package/expo/dist/_expo/static/js/web/entry-e94247f119fdcd3b424a1764233a41d2.js +1099 -0
- package/expo/dist/apple-touch-icon.png +0 -0
- package/expo/dist/favicon.svg +3 -0
- package/expo/dist/index.html +177 -0
- package/expo/dist/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- package/expo/dist/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/expo/dist/katex/katex.min.css +1 -0
- package/expo/dist/manifest.json +16 -0
- package/expo/dist/metadata.json +1 -0
- package/expo/dist/og/membrane.v1.png +0 -0
- package/expo/dist/pdf.min.mjs +28 -0
- package/expo/dist/pdf.worker.min.mjs +28 -0
- package/expo/dist/sw.js +154 -0
- package/package.json +79 -27
- package/protocols/LIVE_loop.md +407 -0
- package/protocols/bebrief.md +41 -0
- package/protocols/digest.md +231 -0
- package/protocols/fly.md +266 -0
- package/protocols/idle.md +81 -0
- package/protocols/keeper.md +829 -0
- package/protocols/markdown.md +80 -0
- package/protocols/memory.md +419 -0
- package/protocols/mentions.md +93 -0
- package/protocols/payloads.md +53 -0
- package/protocols/prelude.md +91 -0
- package/protocols/ramify.md +105 -0
- package/protocols/review.md +356 -0
- package/protocols/rrr.md +232 -0
- package/protocols/scribe.md +429 -0
- package/protocols/summarize.md +203 -0
- package/protocols/twin.md +174 -0
- package/protocols/wiki.md +438 -0
- package/protocols/worker.md +38 -0
- package/wiki/shared/append-only-event-log.md +148 -0
- package/wiki/shared/index.md +53 -0
- package/wiki/shared/owning-your-narratives.md +161 -0
- package/wiki/shared/premature-ontologies.md +435 -0
- package/wiki/shared/sedimentary-superintelligence.md +128 -0
- package/wiki/shared/sequestering-the-narrative.md +143 -0
- package/wiki/shared/why-wikis-work.md +216 -0
- package/.travis.yml +0 -7
- package/lib/brane.cjs.js +0 -12
- package/lib/brane.cjs.js.map +0 -1
- package/lib/brane.d.ts +0 -11
- package/lib/brane.js +0 -6
- package/lib/brane.js.map +0 -1
- package/lib/tests.d.ts +0 -1
- package/lib/tests.js +0 -8
- package/lib/tests.js.map +0 -1
- package/rollup.config.js +0 -21
- package/scripts/test.sh +0 -8
- package/src/brane.ts +0 -21
- package/src/tests.ts +0 -8
- 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).
|