<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss/styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sean Winslow — Architecture</title><description>Architectural arguments where the proof is the code, linked.</description><link>https://seanwinslow.com/</link><language>en-us</language><item><title>Vault as Agent Infrastructure</title><link>https://seanwinslow.com/architecture/vault-scorecard/</link><guid isPermaLink="true">https://seanwinslow.com/architecture/vault-scorecard/</guid><description>Five structural tests. Four knowledge systems. Three passes, two losses to Linear, and one of the two closers is already on disk.</description><pubDate>Sun, 31 May 2026 12:00:00 GMT</pubDate><content:encoded>## What is this?

A five-test scoreboard that scores knowledge systems on the axes that matter when an agent has to *act* on the vault, not just read it: Persistent State, Defined Verbs, Ownership, Permissions, and a Queryable Audit History. Notion, Obsidian (default), Linear, and Sean&apos;s vault each get a row. Three passes, two failures, and the two failures are the architectural argument for what ships next. Every cell is backed by live telemetry from `vault/.vault-index.db`: 632 typed edges across ~110 nodes, six SQL-enforced relations, 15,582 indexed chunks, regenerable with `scripts/generate_schema.py`.

## Why this approach?

Most &quot;PM tools&quot; discourse is about how nice the editing surface feels. That&apos;s a content question. The agent question is structural: does the system have *typed edges* the agent can query without scanning, *defined verbs* it can call without a free-form LLM bridge, an *audit history* a reviewer can replay? The scorecard turns that structural question into a single visible result, and scoring against Nate Jones&apos;s published tests means citing an external standard instead of grading my own homework. Comparison is the discipline: equal presentation across all four systems is the honesty signal. The reader reaches the conclusion from the symbols, not from a highlighted &quot;Sean&apos;s-vault&quot; row.

## What would break?

Three named failure modes: (1) the synthetic public vault fixture drifts from the production schema as `concept_edges` evolves, mitigated by the `scripts/generate_schema.py` step that re-emits the ER diagram and stats from the live SQLite file (the edge count already moved 478 → 632 in nine days, which is why the numbers are regenerated, not hand-typed); (2) the Notion/Obsidian/Linear rows go stale as those products ship features, mitigated by a quarterly rescore; (3) recruiters expecting a &quot;Notion-killer&quot; pitch bounce because the scoreboard is honest about the axes where Linear wins; that&apos;s the intended cost. The page filters for the audience that values calibration over salesmanship.

## What did I learn?

Equality of presentation *is* the credibility signal. The temptation was to highlight Sean&apos;s-vault row, wash the passing cells in success green, or stack the columns in my order. Resisting that produced a scoreboard a Linear PM could read without rolling their eyes. The two honest-note callouts (Ownership and Permissions, both Linear-better) are the load-bearing part of earning that read. And the most useful loss to name turned out to be the one whose fix already exists: the closer for the permissions gap, the Judge Layer, was already built and tested, which reframed that &quot;failure&quot; from a someday into a rollout.</content:encoded><status>SHIPPED</status></item></channel></rss>