{
  "version": 1,
  "clusters": [
    {
      "id": "agents-assurance",
      "label": "Agent systems, authority, and assurance",
      "summary": "How delegated work stays bounded, reviewable, attributable, and safe to operate."
    },
    {
      "id": "architecture-contracts",
      "label": "Architecture, data, and contracts",
      "summary": "Contracts, reference models, durable data, and boundaries that make change legible."
    },
    {
      "id": "infrastructure-recovery",
      "label": "Infrastructure, operations, and recovery",
      "summary": "Migration, rollback, release, and recovery work in systems that must remain operable."
    },
    {
      "id": "organizational-practice",
      "label": "Work, institutions, and accountability",
      "summary": "How institutions form expertise, recognize contribution, allocate responsibility, and make decisions as work changes."
    },
    {
      "id": "physical-systems",
      "label": "Physical systems, energy, and place",
      "summary": "Energy, hardware, and household systems tested against physical and operational limits."
    },
    {
      "id": "knowledge-editorial",
      "label": "Knowledge systems and creative practice",
      "summary": "Writing, publishing, media-making, and the systems used to create, preserve, verify, and retrieve their artifacts."
    }
  ],
  "nodes": [
    {
      "id": "a-field-guide-to-assurance-managed-ai-development",
      "type": "note",
      "title": "A field guide to assurance-managed AI development",
      "summary": "A reading map for building AI systems that can show what they were asked to do, what they did, why a result should be trusted, and how failures are contained. It starts with established assurance practice and ends with a dated watch list of open work.",
      "href": "/notes/a-field-guide-to-assurance-managed-ai-development/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "assurance",
        "references",
        "software-engineering"
      ],
      "area": "software assurance",
      "role": "synthesis",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 228,
      "y": 137
    },
    {
      "id": "a-gitops-rollback-needs-time-to-reach-git",
      "type": "note",
      "title": "A GitOps rollback needs time to reach Git",
      "summary": "A live rollback fixed a crashlooping workload, but the more interesting part was needing to suspend reconciliation long enough for the fix to become the desired state instead of a temporary lie.",
      "href": "/notes/a-gitops-rollback-needs-time-to-reach-git/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "gitops",
        "operations"
      ],
      "area": "GitOps operations",
      "role": "project-history",
      "status": "archival",
      "lifecycle": "archived",
      "anchor": false,
      "x": 853,
      "y": 197
    },
    {
      "id": "a-merged-pr-is-not-an-architectural-decision",
      "type": "note",
      "title": "A merged PR is not an architectural decision",
      "summary": "An agent asks for a design decision mid-implementation, the operator answers at pull-request depth, and the answer gets filed as architecture. The fix is not a better escalation prompt but keeping three separate reviews from borrowing each other's authority.",
      "href": "/notes/a-merged-pr-is-not-an-architectural-decision/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "code-review",
        "decision-making",
        "provenance",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 244,
      "y": 175
    },
    {
      "id": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "type": "note",
      "title": "A personal knowledge system that happens to render as a website",
      "summary": "Chronology is one projection of this site's notes, not the structure underneath them. The corpus is the artifact of record; pages, feeds, and prompts built from it are derived realizations that should stay regenerable rather than independently maintained.",
      "href": "/notes/a-personal-knowledge-system-that-happens-to-render-as-a-website/",
      "cluster": "knowledge-editorial",
      "tags": [
        "agents",
        "software-architecture",
        "workflow",
        "writing"
      ],
      "area": "agent workflow",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": true,
      "x": 840,
      "y": 411
    },
    {
      "id": "a-pipeline-without-a-successor-is-personal-tooling",
      "type": "note",
      "title": "Design internal pipelines for succession, not just operation",
      "summary": "Working model: a production-critical agent pipeline becomes an institutional capability only when a second person can reconstruct, operate, change, and recover it from recorded substrate and evidence.",
      "href": "/notes/a-pipeline-without-a-successor-is-personal-tooling/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "audit",
        "succession",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 87
    },
    {
      "id": "a-platform-capability-does-not-exist-all-at-once",
      "type": "note",
      "title": "A platform capability does not exist all at once",
      "summary": "Outctl began as an answer to tool results flooding model context. Programmatic tool calling now moves that work into the harness, invalidating the original product boundary while leaving a narrower durable-evidence question open.",
      "href": "/notes/a-platform-capability-does-not-exist-all-at-once/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "context-management",
        "harness-engineering",
        "project-history",
        "tool-use"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 228,
      "y": 213
    },
    {
      "id": "a-project-folder-is-a-view-not-an-authority",
      "type": "note",
      "title": "Treat project folders as views over authoritative state",
      "summary": "A multi-repository project folder may assemble member worktrees, shared guidance and project context, but it must not acquire ownership of Git, backlog, execution or deployment state merely because every tool can see it.",
      "href": "/notes/a-project-folder-is-a-view-not-an-authority/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "authority",
        "git",
        "workflow",
        "workspaces"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 80,
      "y": 285
    },
    {
      "id": "a-reference-architecture-is-a-hypothesis-library",
      "type": "note",
      "title": "A reference architecture is a hypothesis library",
      "summary": "A reference architecture is a set of ideas to test, not a target to copy. It can suggest capabilities, controls, and common failure modes; local strategy and evidence decide which parts survive.",
      "href": "/notes/a-reference-architecture-is-a-hypothesis-library/",
      "cluster": "architecture-contracts",
      "tags": [
        "architecture",
        "capabilities",
        "planning",
        "reference-models",
        "strategy"
      ],
      "area": "architecture practice",
      "role": "synthesis",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 538,
      "y": 117
    },
    {
      "id": "a-repository-should-not-contain-everything-its-agents-know",
      "type": "note",
      "title": "A repository should not contain everything its agents know",
      "summary": "Agent context is a dependency of each run: bind shared instructions to concrete versions in a per-run record, and because no linker composes prose, record every conflict outcome and refuse what cannot be classified.",
      "href": "/notes/a-repository-should-not-contain-everything-its-agents-know/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "context-management",
        "documentation",
        "workflow",
        "workspaces"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 229
    },
    {
      "id": "acceptance-lab",
      "type": "project",
      "title": "Acceptance Lab",
      "summary": "A local-first prototype for turning agent requirements, observed evidence, authority rules, and operating budgets into executable promotion decisions.",
      "href": "/projects/acceptance-lab/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "evidence",
        "governance",
        "trajectory"
      ],
      "status": "Runnable local prototype; deterministic fixtures only",
      "lifecycle": "current",
      "anchor": false,
      "x": 152,
      "y": 213
    },
    {
      "id": "authority-must-travel-with-the-action",
      "type": "note",
      "title": "Authority must travel with the action",
      "summary": "Direct agent operation removes a universal deployment handoff, so authority, evidence, and reconciliation must bind to each consequential action instead of to its location.",
      "href": "/notes/authority-must-travel-with-the-action/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "audit",
        "authorization",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 136,
      "y": 175
    },
    {
      "id": "compatibility-reports-should-be-a-little-rude",
      "type": "note",
      "title": "Compatibility reports should be a little rude",
      "summary": "Backend-owned contracts only become useful release artifacts once the compatibility tooling is conservative enough to complain about real breakage instead of politely missing it.",
      "href": "/notes/compatibility-reports-should-be-a-little-rude/",
      "cluster": "architecture-contracts",
      "tags": [
        "contracts",
        "release-engineering"
      ],
      "area": "contract governance",
      "role": "project-history",
      "status": "archival",
      "lifecycle": "archived",
      "anchor": false,
      "x": 554,
      "y": 155
    },
    {
      "id": "contract-first-box",
      "type": "project",
      "title": "Freezing service boundaries before the demo platform gets ideas",
      "summary": "Box is a contract-first platform scaffold that fixes a small service kernel before runtime convenience can blur its boundaries. Scenario packs stay as overlays, and local validation checks their coherence before a runtime exists.",
      "href": "/projects/contract-first-box/",
      "cluster": "architecture-contracts",
      "tags": [
        "architecture",
        "contracts",
        "simulation"
      ],
      "status": "Phase 0 initialized",
      "lifecycle": "current",
      "anchor": false,
      "x": 500,
      "y": 209
    },
    {
      "id": "delivered-energy",
      "type": "note",
      "title": "Delivered energy",
      "summary": "A business plan for battery-swap delivered energy, corrected after a tenfold amortization error. Seasonal swap alone prices like diesel, not like grid, and what survives matters most for EVs, home batteries, and off-grid design.",
      "href": "/notes/delivered-energy/",
      "cluster": "physical-systems",
      "tags": [
        "batteries",
        "ev",
        "off-grid"
      ],
      "area": "energy systems",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 560,
      "y": 524
    },
    {
      "id": "derived-status-is-earned",
      "type": "note",
      "title": "Derive status only from reproducible evidence",
      "summary": "Continuing assurance can move away from an exact generated output only when retained inputs and independent checks can produce another acceptable result; retention remains a separate decision.",
      "href": "/notes/derived-status-is-earned/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "provenance",
        "software-architecture",
        "verification"
      ],
      "area": "software assurance",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 152,
      "y": 137
    },
    {
      "id": "every-stratum-has-its-own-null",
      "type": "note",
      "title": "Every stratum has its own null",
      "summary": "A missing report, an empty field, an unverified value, and an inapplicable reading need different actions even if a layered system displays them alike.",
      "href": "/notes/every-stratum-has-its-own-null/",
      "cluster": "architecture-contracts",
      "tags": [
        "data-modeling",
        "interfaces",
        "null"
      ],
      "area": "data architecture",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 538,
      "y": 193
    },
    {
      "id": "gitops-cluster",
      "type": "project",
      "title": "Running a homelab cluster as a Git repository, not as muscle memory",
      "summary": "Appservice is the operations repository for a Talos-based Kubernetes cluster. Reconciliation, encrypted secrets, recovery gates, upgrades, and incident evidence live with the desired state instead of in operator memory.",
      "href": "/projects/gitops-cluster/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "gitops",
        "kubernetes",
        "operations"
      ],
      "status": "Active operations repo",
      "lifecycle": "current",
      "anchor": false,
      "x": 777,
      "y": 234
    },
    {
      "id": "governance-for-a-team-of-one",
      "type": "note",
      "title": "Governance for a team of one",
      "summary": "A solo operator's tooling keeps adopting controls that look stolen from an organization. The controls are not for headcount; they are for coordination between actors who share neither memory nor judgment, which describes one operator across time as much as it describes a team.",
      "href": "/notes/governance-for-a-team-of-one/",
      "cluster": "organizational-practice",
      "tags": [
        "accountability",
        "agents",
        "architecture",
        "audit",
        "governance"
      ],
      "area": "organizational systems",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 304,
      "y": 465
    },
    {
      "id": "household-operating-platform",
      "type": "project",
      "title": "Turning household analytics into an operating platform",
      "summary": "Homelab Analytics keeps household reporting, planning, simulation, policy, trust, and agent-facing retrieval in one semantic model. Home Assistant is the device-facing partner, not the system of record for household reasoning.",
      "href": "/projects/household-operating-platform/",
      "cluster": "physical-systems",
      "tags": [
        "architecture",
        "data-platforms",
        "home-assistant"
      ],
      "status": "Active household operating platform",
      "lifecycle": "current",
      "anchor": false,
      "x": 506,
      "y": 470
    },
    {
      "id": "intelligence-has-a-lifecycle",
      "type": "note",
      "title": "Intelligence has a lifecycle",
      "summary": "A hobby game AI is a cheap laboratory for deciding which decisions should stay with an LLM, which should become learned, and which should become ordinary code, settled by replayable contests rather than diagrams.",
      "href": "/notes/intelligence-has-a-lifecycle/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "experimentation",
        "games",
        "hierarchical control",
        "jev"
      ],
      "area": "agent architecture",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 252,
      "y": 113
    },
    {
      "id": "judge-agents-by-the-next-prompt",
      "type": "note",
      "title": "Judge agents by the next prompt",
      "summary": "New agents carry more work from intent to evidence, but that changes rather than removes the supervision problem. The next prompt reveals whether the result needs repair or is ready to extend.",
      "href": "/notes/judge-agents-by-the-next-prompt/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 278,
      "y": 175
    },
    {
      "id": "layering-you-cant-violate-by-accident",
      "type": "note",
      "title": "Layering you can't violate by accident",
      "summary": "homelab-analytics enforces its named layer seams with pytest. A documented architecture is a request; a tested one is a constraint — and the note now shows a violation failing, plus where the check stops.",
      "href": "/notes/layering-you-cant-violate-by-accident/",
      "cluster": "architecture-contracts",
      "tags": [
        "architecture",
        "contracts"
      ],
      "area": "software architecture",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 462,
      "y": 193
    },
    {
      "id": "legibility-is-an-operating-property",
      "type": "note",
      "title": "Legibility is an operating property",
      "summary": "Agent-ready work keeps the reason, permission, attempted action, observed result, and correction connected while the work happens instead of reconstructing them later.",
      "href": "/notes/legibility-is-an-operating-property/",
      "cluster": "organizational-practice",
      "tags": [
        "agents",
        "audit",
        "organizational-design",
        "workflow"
      ],
      "area": "organizational systems",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 288,
      "y": 503
    },
    {
      "id": "log-as-system",
      "type": "note",
      "title": "Log as system",
      "summary": "A reference design for audit-native systems where code, layout, control decisions, and data are all log artifacts.",
      "href": "/notes/log-as-system/",
      "cluster": "architecture-contracts",
      "tags": [
        "audit",
        "event-sourcing",
        "systems"
      ],
      "area": "data architecture",
      "role": "exploration",
      "status": "prospective",
      "lifecycle": "current",
      "anchor": false,
      "x": 446,
      "y": 155
    },
    {
      "id": "measure-the-diagnosis-not-only-the-transcript",
      "type": "note",
      "title": "Measure the diagnosis, not only the transcript",
      "summary": "Outctl cut model-visible Kubernetes output by about 84%, while pair-level cost and diagnostic quality remained unresolved. The useful result was a four-part evaluation model: mechanism, quality, economics, and authority.",
      "href": "/notes/measure-the-diagnosis-not-only-the-transcript/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "cli-tooling",
        "context-management",
        "evaluation",
        "verification"
      ],
      "area": "model evaluation",
      "role": "project-history",
      "status": "archival",
      "lifecycle": "disproven",
      "anchor": false,
      "x": 252,
      "y": 237
    },
    {
      "id": "moving-a-live-cluster-to-a-new-subnet",
      "type": "note",
      "title": "Moving a live cluster to a new subnet",
      "summary": "Migrating a Talos cluster from a legacy subnet to its own VLAN while it kept serving. The design was mostly an ordering problem, plus one bootstrap loop: the network controller lives inside the network it manages.",
      "href": "/notes/moving-a-live-cluster-to-a-new-subnet/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "kubernetes",
        "operations"
      ],
      "area": "cluster operations",
      "role": "project-history",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 800,
      "y": 131
    },
    {
      "id": "nfc-tokens-pointing-at-a-manifest",
      "type": "note",
      "title": "NFC tokens pointing at a manifest",
      "summary": "Cassettes, diskettes, and cartridges as physical handles for digital media. The rule that makes the whole family of projects work: the tag points, it never hosts.",
      "href": "/notes/nfc-tokens-pointing-at-a-manifest/",
      "cluster": "physical-systems",
      "tags": [
        "contracts",
        "hardware"
      ],
      "area": "hardware contracts",
      "role": "exploration",
      "status": "prospective",
      "lifecycle": "current",
      "anchor": true,
      "x": 614,
      "y": 470
    },
    {
      "id": "reachability-is-architecture",
      "type": "note",
      "title": "Reachability is architecture",
      "summary": "The coordination services behind my agent work kept running after the agents moved into hosted runtimes. Because those runtimes could not reach them, the record became partial without producing an error.",
      "href": "/notes/reachability-is-architecture/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "authorization",
        "availability",
        "coordination",
        "infrastructure",
        "mcp"
      ],
      "area": "agent infrastructure",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 263
    },
    {
      "id": "schema-on-split",
      "type": "note",
      "title": "Schema on split",
      "summary": "A pipeline rule: land raw, split deterministically, enrich point-in-time, then shape for consumers.",
      "href": "/notes/schema-on-split/",
      "cluster": "architecture-contracts",
      "tags": [
        "audit",
        "data-platforms",
        "replay"
      ],
      "area": "data architecture",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 500,
      "y": 101
    },
    {
      "id": "simplicity-is-an-ambitious-property",
      "type": "note",
      "title": "Simplicity is an ambitious property",
      "summary": "Architectural ambition is delivering the strongest version of a system's purpose with the fewest independently meaningful mechanisms that can become wrong.",
      "href": "/notes/simplicity-is-an-ambitious-property/",
      "cluster": "architecture-contracts",
      "tags": [
        "architecture",
        "planning",
        "systems-design",
        "workflow"
      ],
      "area": "architecture practice",
      "role": "synthesis",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 462,
      "y": 117
    },
    {
      "id": "size-the-spa-to-the-river",
      "type": "note",
      "title": "Size the spa to the river",
      "summary": "An operating sketch for a boutique Finnish mill-site retreat where the river sets the scale of the baths, restaurant, lodging, and renewal reserve.",
      "href": "/notes/size-the-spa-to-the-river/",
      "cluster": "physical-systems",
      "tags": [
        "finland",
        "heat-pumps",
        "hydropower",
        "spa"
      ],
      "area": "energy systems",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": true,
      "x": 560,
      "y": 416
    },
    {
      "id": "subprocess-not-service",
      "type": "note",
      "title": "Subprocess, not service",
      "summary": "actionq-dispatcher runs agent work as subprocesses inside a per-invocation coordinator. The rejected alternative was a long-running agent service, and the rejection is most of the design.",
      "href": "/notes/subprocess-not-service/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 128,
      "y": 237
    },
    {
      "id": "the-aftertaste-of-resolution",
      "type": "note",
      "title": "The aftertaste of resolution",
      "summary": "Conversational refinement produces the feeling of having thought clearly, which is not the same thing as having thought clearly. The fix was not discipline. It was writing the stop rule into the counterpart.",
      "href": "/notes/the-aftertaste-of-resolution/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "llm",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 102,
      "y": 175
    },
    {
      "id": "the-agent-is-not-the-application",
      "type": "note",
      "title": "The agent is not the application",
      "summary": "A durable agent application keeps permissions, records, checks, and recovery outside the model, so changing models does not also replace the system's memory or rules.",
      "href": "/notes/the-agent-is-not-the-application/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "authorization",
        "software-architecture",
        "verification"
      ],
      "area": "agent architecture",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 128,
      "y": 113
    },
    {
      "id": "the-boring-auth-boundary-was-right",
      "type": "note",
      "title": "The boring auth boundary was right",
      "summary": "Homelab analytics had enough auth surface to accidentally grow a second identity product. The useful decision was to keep identity proof upstream, keep authorization local, and demote local login to a narrow break-glass path.",
      "href": "/notes/the-boring-auth-boundary-was-right/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "architecture",
        "auth"
      ],
      "area": "authentication architecture",
      "role": "project-history",
      "status": "archival",
      "lifecycle": "archived",
      "anchor": false,
      "x": 747,
      "y": 197
    },
    {
      "id": "the-candidate-passed-the-upgrade-did-not",
      "type": "note",
      "title": "The candidate passed. The upgrade did not.",
      "summary": "A release candidate passed every gate and failed on contact with production six minutes later. The gates proved compatibility with the target database state; nothing had proved the transition from the state actually running.",
      "href": "/notes/the-candidate-passed-the-upgrade-did-not/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "contracts",
        "operations",
        "release-engineering",
        "verification"
      ],
      "area": "release engineering",
      "role": "project-history",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 758,
      "y": 151
    },
    {
      "id": "the-candidate-produced-somewhere-else",
      "type": "note",
      "title": "The candidate produced somewhere else",
      "summary": "Senior specs in Finnish regulated reporting bundle proxies for someone else's apprenticeship system; the newest slice, auditable AI automation, has no such system yet, so the working hypothesis is to form it in place rather than wait for it to appear in a listing.",
      "href": "/notes/the-candidate-produced-somewhere-else/",
      "cluster": "organizational-practice",
      "tags": [
        "career",
        "future-of-work",
        "labor-market",
        "regulation"
      ],
      "area": "career",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": true,
      "x": 288,
      "y": 427
    },
    {
      "id": "the-cluster-did-not-need-another-lock",
      "type": "note",
      "title": "The cluster did not need another lock",
      "summary": "One session upgrades a control-plane node while another watches the API flap, unable to tell failure from maintenance. Instead of a new cluster-wide lock, a wrapper-derived maintenance notice should let the next Talos upgrade be correlated — if it cannot, the hypothesis fails.",
      "href": "/notes/the-cluster-did-not-need-another-lock/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "cluster-operations",
        "devops",
        "harness-engineering",
        "kubernetes",
        "study-notes"
      ],
      "area": "software assurance",
      "role": "exploration",
      "status": "prospective",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 53
    },
    {
      "id": "the-context-window-is-not-the-continuity-boundary",
      "type": "note",
      "title": "The context window is not the continuity boundary",
      "summary": "Long-running agent work should continue through a validated handoff and an addressable predecessor, rather than depending on a compacted conversation as its only memory.",
      "href": "/notes/the-context-window-is-not-the-continuity-boundary/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "context-management",
        "handoffs",
        "state",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 276,
      "y": 89
    },
    {
      "id": "the-coordinator-never-touches-the-repo",
      "type": "note",
      "title": "The coordinator never touches the repo",
      "summary": "Sprint work is split into plan, build, and review dispatches, and the orchestrating session is structurally barred from editing deliverables. The bar is the point.",
      "href": "/notes/the-coordinator-never-touches-the-repo/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 190,
      "y": 121
    },
    {
      "id": "the-deadline-was-not-the-stopping-rule",
      "type": "note",
      "title": "The deadline was not the stopping rule",
      "summary": "A missed date can disprove a career forecast without settling whether the underlying work is still worth pursuing. Ownership, recognition, and market response provide the next decision tests.",
      "href": "/notes/the-deadline-was-not-the-stopping-rule/",
      "cluster": "organizational-practice",
      "tags": [
        "career",
        "falsifiability",
        "planning"
      ],
      "area": "career",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 250,
      "y": 519
    },
    {
      "id": "the-deployment-boundary-was-only-a-place",
      "type": "note",
      "title": "The deployment boundary was only a place",
      "summary": "Agents can bypass the physical handoff between execution and runtime, so authorization, evidence, and reconciliation have to attach to each consequential action instead.",
      "href": "/notes/the-deployment-boundary-was-only-a-place/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "audit",
        "runtime",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 312,
      "y": 175
    },
    {
      "id": "the-devbox-is-an-access-cell",
      "type": "note",
      "title": "The devbox is an access cell",
      "summary": "A devbox can bind identity, tools, network reach, and session evidence, but it should remain a replaceable access cell rather than becoming the organizational authority.",
      "href": "/notes/the-devbox-is-an-access-cell/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "audit",
        "authorization",
        "infrastructure"
      ],
      "area": "agent infrastructure",
      "role": "exploration",
      "status": "prospective",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 276,
      "y": 261
    },
    {
      "id": "the-embarrassment-is-mine",
      "type": "note",
      "title": "The paragraphs are cheap. The embarrassment is mine.",
      "summary": "AI makes synthesis cheap enough that the prose has little scarcity. The human remainder is the changed judgment and an attributable position that can age badly in public.",
      "href": "/notes/the-embarrassment-is-mine/",
      "cluster": "knowledge-editorial",
      "tags": [
        "accountability",
        "agents",
        "authorship",
        "writing"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 872,
      "y": 509
    },
    {
      "id": "the-hotspots-survived",
      "type": "note",
      "title": "The workshop disappeared. The hotspots survived.",
      "summary": "An EventStorming pass run solo, over agent session logs instead of a stakeholder workshop, still produced six ranked findings. The notation survived; the workshop did not; the value was in clustering the absences.",
      "href": "/notes/the-hotspots-survived/",
      "cluster": "organizational-practice",
      "tags": [
        "agents",
        "assurance",
        "audit",
        "workflow"
      ],
      "area": "organizational systems",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 250,
      "y": 377
    },
    {
      "id": "the-human-is-in-the-slow-loop",
      "type": "note",
      "title": "The human is in the slow loop",
      "summary": "A prior \"human perpendicular to the loop\" claim only describes one interface. The fuller model is two coupled loops at different speeds, with a settlement boundary, rather than an empirical/normative split, deciding when the slow loop must be consulted.",
      "href": "/notes/the-human-is-in-the-slow-loop/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "authority",
        "automation",
        "oversight",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 297
    },
    {
      "id": "the-junior-ladder-was-a-joint-product",
      "type": "note",
      "title": "The junior ladder was a joint product",
      "summary": "Routine junior work once paid for useful production and professional formation at the same time; agent automation separates those goods and leaves succession needing an explicit operating model.",
      "href": "/notes/the-junior-ladder-was-a-joint-product/",
      "cluster": "organizational-practice",
      "tags": [
        "agents",
        "apprenticeship",
        "future-of-work",
        "organizational-design"
      ],
      "area": "organizational systems",
      "role": "project-history",
      "status": "exploration",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 212,
      "y": 503
    },
    {
      "id": "the-missing-layer-is-binding-not-intelligence",
      "type": "note",
      "title": "The missing layer is binding, not intelligence",
      "summary": "The useful workflow layer for solo agent work is not a giant orchestration stack. It is a local-first system that remembers claims, checkpoints, routing choices, and promotion boundaries without pretending one operator needs a whole platform team.",
      "href": "/notes/the-missing-layer-is-binding-not-intelligence/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "project-history",
      "status": "archival",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 104,
      "y": 261
    },
    {
      "id": "the-next-prompt-was-only-the-visible-error",
      "type": "note",
      "title": "The next prompt was only the visible error",
      "summary": "The next-prompt heuristic measures what became visible at the human interface. A merged PR later filed as architecture, and a self-report that turned out to be reconstructable rather than introspective, both passed that test and still needed a different check further down.",
      "href": "/notes/the-next-prompt-was-only-the-visible-error/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "observability",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 68,
      "y": 175
    },
    {
      "id": "the-node-remembers-what-git-does-not",
      "type": "note",
      "title": "Account for node-local state in GitOps recovery",
      "summary": "Two upgrade failures came from persistent node-local state outside Git: malformed UEFI NVRAM and an iSCSI record that poisoned shared parsing. The fix was bounded exceptions, preflight checks, controlled migration and verification.",
      "href": "/notes/the-node-remembers-what-git-does-not/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "gitops",
        "operations",
        "preflight",
        "rollback",
        "storage",
        "talos"
      ],
      "area": "GitOps operations",
      "role": "project-history",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 823,
      "y": 234
    },
    {
      "id": "the-patch-was-open-sources-proof-of-work",
      "type": "note",
      "title": "The patch was open source's proof of work",
      "summary": "AI weakens the old correlation between producing a plausible patch and understanding a project, so OSS contribution shifts toward evidence, verification, standing, and durable ownership.",
      "href": "/notes/the-patch-was-open-sources-proof-of-work/",
      "cluster": "organizational-practice",
      "tags": [
        "agents",
        "maintenance",
        "open-source",
        "verification"
      ],
      "area": "open source",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 196,
      "y": 465
    },
    {
      "id": "the-person-of-record",
      "type": "note",
      "title": "The person of record",
      "summary": "Agents may perform most of a professional workflow while a named person still supplies local judgment, trusted relationships, or accountable approval.",
      "href": "/notes/the-person-of-record/",
      "cluster": "organizational-practice",
      "tags": [
        "accountability",
        "agents",
        "future-of-work",
        "organizational-design"
      ],
      "area": "organizational systems",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": true,
      "x": 250,
      "y": 411
    },
    {
      "id": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "note",
      "title": "The platform can retrieve; the application still has to decide",
      "summary": "RAG, vector search, graph engines, and generic evaluation tooling are moving into managed platforms. The durable work is defining which evidence may count, what failure means, and when an agentic system is acceptable to ship.",
      "href": "/notes/the-platform-can-retrieve-the-application-still-has-to-decide/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "career",
        "evaluation",
        "governance",
        "rag",
        "retrieval"
      ],
      "area": "model evaluation",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 104,
      "y": 89
    },
    {
      "id": "the-queue-was-never-the-hard-part",
      "type": "note",
      "title": "The queue was never the hard part",
      "summary": "The queue chassis behind ActionQ is now commodity, split across a Postgres-native library, a durable-workflow runtime, an execution control plane, and an automation platform. How much of ActionQ survives once that chassis is removed is the open spike.",
      "href": "/notes/the-queue-was-never-the-hard-part/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "infrastructure",
        "postgres",
        "workflow"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 19
    },
    {
      "id": "the-recommendation-does-not-need-authority",
      "type": "note",
      "title": "The recommendation does not need authority",
      "summary": "Senior analysts rarely start with complete information or a blank strategic canvas. Their job is to produce a recommendation that holds together when other people challenge it; AI can help maintain that reasoning without making the decision.",
      "href": "/notes/the-recommendation-does-not-need-authority/",
      "cluster": "organizational-practice",
      "tags": [
        "ai",
        "architecture",
        "decision-making",
        "organizational-design",
        "requirements"
      ],
      "area": "organizational systems",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 212,
      "y": 427
    },
    {
      "id": "the-ref-nobody-adds",
      "type": "note",
      "title": "The ref nobody adds",
      "summary": "The sprint database held 831 work items and seven doc refs, six of them the same document. The reference command existed the whole time. The missing piece was never a tool — it was placement on the path the agent actually walks.",
      "href": "/notes/the-ref-nobody-adds/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "documentation",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 300,
      "y": 65
    },
    {
      "id": "the-router-was-larger-than-the-model",
      "type": "note",
      "title": "The router was larger than the model",
      "summary": "Jev, Claude Haiku 4.5 and keyword rules triaged 100 agent work items from ticket text, and none was reliably better. The ranking moved with the judge, the question's wording and the price of each error, so the next tests vary the router around the model.",
      "href": "/notes/the-router-was-larger-than-the-model/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "jev",
        "routing"
      ],
      "area": "model evaluation",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 346,
      "y": 175
    },
    {
      "id": "the-second-operator-is-the-test",
      "type": "note",
      "title": "The second operator is the test",
      "summary": "sprintctl and actionq enforce useful execution discipline, but five current invariants rely on one operator remaining the only source of identity, authority, and audit judgment.",
      "href": "/notes/the-second-operator-is-the-test/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "coordination",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "project-history",
      "status": "exploration",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 300,
      "y": 285
    },
    {
      "id": "the-target-state-is-not-the-plan",
      "type": "note",
      "title": "Plan migrations through verified intermediate states",
      "summary": "A live migration needs more than a target diagram. Before changing the first node, name the temporary configurations, the checks between them, who controls each handoff, and the point after which rollback stops being cheap.",
      "href": "/notes/the-target-state-is-not-the-plan/",
      "cluster": "infrastructure-recovery",
      "tags": [
        "gitops",
        "homelab",
        "migrations",
        "operations",
        "systems-design"
      ],
      "area": "homelab operations",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 842,
      "y": 151
    },
    {
      "id": "the-wallpaper-is-a-build-artifact",
      "type": "note",
      "title": "The wallpaper is a build artifact",
      "summary": "A 48-second generated loop stays out of Git, and ~21 MiB of tracked source, manifests and receipts identify ~2.2 GiB of untracked media and verify any retained or reconstructed copy. That buys identity, not availability or reproducibility — the gates taught the rest.",
      "href": "/notes/the-wallpaper-is-a-build-artifact/",
      "cluster": "knowledge-editorial",
      "tags": [
        "creative-tooling",
        "provenance",
        "reproducibility",
        "verification"
      ],
      "area": "creative tooling",
      "role": "project-history",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": true,
      "x": 891,
      "y": 448
    },
    {
      "id": "the-work-between-the-ticket-and-the-agent",
      "type": "note",
      "title": "The work between the ticket and the agent",
      "summary": "Work-management systems can delegate and coding agents can execute, but authority, attempts, evidence, and acceptance still have no obvious neutral owner between them.",
      "href": "/notes/the-work-between-the-ticket-and-the-agent/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "coordination",
        "workflow"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": 331
    },
    {
      "id": "the-workshop-is-learning-my-accent",
      "type": "note",
      "title": "The workshop is learning my accent",
      "summary": "Coding agents now shape my project structures, notes, prose, and tolerance for complexity. I shape them in return, mostly by deciding what survives.",
      "href": "/notes/the-workshop-is-learning-my-accent/",
      "cluster": "knowledge-editorial",
      "tags": [
        "agents",
        "maintenance",
        "writing"
      ],
      "area": "agent workflow",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 808,
      "y": 509
    },
    {
      "id": "utilization-is-a-signal-not-a-limit",
      "type": "note",
      "title": "Utilization is a signal, not a limit",
      "summary": "Model allowance, reset time, latency, cost, and concurrency should influence where agent work runs without becoming durable rules that redefine the work.",
      "href": "/notes/utilization-is-a-signal-not-a-limit/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "infrastructure",
        "planning",
        "routing",
        "workflow"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 34,
      "y": 175
    },
    {
      "id": "vuoro",
      "type": "project",
      "title": "Vuoro: governed work without a cockpit-shaped monolith",
      "summary": "A working family of sprint, queue, knowledge, audit, and cockpit tools now composes into one served layer, without giving up explicit state ownership or machine-local execution.",
      "href": "/projects/vuoro/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "cli-tooling",
        "workflow"
      ],
      "status": "Published and in active use",
      "lifecycle": "current",
      "anchor": false,
      "x": 80,
      "y": 65
    },
    {
      "id": "what-107-isolated-completions-did-not-show",
      "type": "note",
      "title": "What 107 isolated completions did not show",
      "summary": "A small isolated-completion pilot asked whether a model can report influences on its own output. External-reconstruction controls qualitatively reproduced the effects, so the useful residue was operational, not introspective.",
      "href": "/notes/what-107-isolated-completions-did-not-show/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "evaluation",
        "llm",
        "verification"
      ],
      "area": "model evaluation",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 190,
      "y": -15
    },
    {
      "id": "when-evidence-stops-applying",
      "type": "note",
      "title": "When evidence stops applying",
      "summary": "A passing retry experiment supports a decision under its tested conditions. When the implementation or replay window changes, the old result remains true but its use in the new decision needs reassessment.",
      "href": "/notes/when-evidence-stops-applying/",
      "cluster": "agents-assurance",
      "tags": [
        "decision-making",
        "evidence",
        "experiments",
        "retries"
      ],
      "area": "software assurance",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 371,
      "y": 116
    },
    {
      "id": "where-agent-tooling-fits",
      "type": "note",
      "title": "Where agent tooling fits after “agent” stops helping",
      "summary": "A dated map of agent-system tooling by the responsibility it primarily owns, beginning with the Markdown-and-skills setup that is enough until a specific failure earns another layer.",
      "href": "/notes/where-agent-tooling-fits/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "harness-engineering",
        "references",
        "tooling",
        "workflow"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 302,
      "y": 329
    },
    {
      "id": "where-the-assurance-questions-are-already-answered",
      "type": "note",
      "title": "Where the assurance questions are already answered",
      "summary": "The assurance questions behind my recent agent-workflow notes are established engineering problems. The useful work is learning their vocabulary and testing their methods at small scale.",
      "href": "/notes/where-the-assurance-questions-are-already-answered/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "assurance",
        "software-engineering",
        "study-notes"
      ],
      "area": "software assurance",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 78,
      "y": 329
    },
    {
      "id": "where-the-cohort-comes-from",
      "type": "note",
      "title": "Where the cohort comes from",
      "summary": "Four plausible sources for the eventual cohort of auditable AI-automation specialists in regulated reporting, recorded now so the guess is falsifiable against later hiring patterns.",
      "href": "/notes/where-the-cohort-comes-from/",
      "cluster": "organizational-practice",
      "tags": [
        "apprenticeship",
        "career",
        "future-of-work",
        "labor-market",
        "regulation"
      ],
      "area": "career",
      "role": "exploration",
      "status": "exploration",
      "lifecycle": "superseded",
      "anchor": false,
      "x": 250,
      "y": 553
    },
    {
      "id": "why-i-publish-explore-prompts",
      "type": "note",
      "title": "Why I publish explore prompts",
      "summary": "A note explains what survived editing. An explorePrompt is a separate, deliberately post-hoc artifact that explains where the investigation should continue, whether for a reader, their agent, or a later version of me.",
      "href": "/notes/why-i-publish-explore-prompts/",
      "cluster": "knowledge-editorial",
      "tags": [
        "agents",
        "llm",
        "workflow",
        "writing"
      ],
      "area": "agent workflow",
      "role": "operating",
      "status": "guiding",
      "lifecycle": "current",
      "anchor": false,
      "x": 789,
      "y": 448
    },
    {
      "id": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "note",
      "title": "Why production access changes the shape of agent tooling",
      "summary": "Production access exposes the limits of prompt-only agent design. A useful operational run binds a general harness to domain context, scoped authority, evidence, and completion rules.",
      "href": "/notes/why-production-access-changes-the-shape-of-agent-tooling/",
      "cluster": "agents-assurance",
      "tags": [
        "agents",
        "authorization",
        "cluster-operations",
        "evidence",
        "harness-engineering"
      ],
      "area": "agent infrastructure",
      "role": "synthesis",
      "status": "exploration",
      "lifecycle": "current",
      "anchor": false,
      "x": 9,
      "y": 116
    }
  ],
  "edges": [
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-gitops-rollback-needs-time-to-reach-git",
      "target": "gitops-cluster",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "delivered-energy",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "derived-status-is-earned",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "layering-you-cant-violate-by-accident",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "log-as-system",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "moving-a-live-cluster-to-a-new-subnet",
      "target": "gitops-cluster",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "reachability-is-architecture",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "schema-on-split",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "simplicity-is-an-ambitious-property",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "subprocess-not-service",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-aftertaste-of-resolution",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-boring-auth-boundary-was-right",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-candidate-passed-the-upgrade-did-not",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "household-operating-platform",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-deployment-boundary-was-only-a-place",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-devbox-is-an-access-cell",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-hotspots-survived",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-human-is-in-the-slow-loop",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-next-prompt-was-only-the-visible-error",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-node-remembers-what-git-does-not",
      "target": "gitops-cluster",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-patch-was-open-sources-proof-of-work",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-person-of-record",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "target": "acceptance-lab",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-queue-was-never-the-hard-part",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-ref-nobody-adds",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-router-was-larger-than-the-model",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-second-operator-is-the-test",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-target-state-is-not-the-plan",
      "target": "gitops-cluster",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-work-between-the-ticket-and-the-agent",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "the-workshop-is-learning-my-accent",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "where-agent-tooling-fits",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "where-the-assurance-questions-are-already-answered",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "why-production-access-changes-the-shape-of-agent-tooling",
      "target": "vuoro",
      "type": "project-membership",
      "directed": true
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "derived-status-is-earned",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "the-candidate-produced-somewhere-else",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "where-agent-tooling-fits",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-field-guide-to-assurance-managed-ai-development",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-gitops-rollback-needs-time-to-reach-git",
      "target": "the-candidate-passed-the-upgrade-did-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-gitops-rollback-needs-time-to-reach-git",
      "target": "the-node-remembers-what-git-does-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-gitops-rollback-needs-time-to-reach-git",
      "target": "the-target-state-is-not-the-plan",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "authority-must-travel-with-the-action",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "derived-status-is-earned",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "judge-agents-by-the-next-prompt",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "the-recommendation-does-not-need-authority",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-merged-pr-is-not-an-architectural-decision",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "derived-status-is-earned",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "reachability-is-architecture",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "the-embarrassment-is-mine",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "the-wallpaper-is-a-build-artifact",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "where-agent-tooling-fits",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-personal-knowledge-system-that-happens-to-render-as-a-website",
      "target": "why-i-publish-explore-prompts",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-junior-ladder-was-a-joint-product",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-patch-was-open-sources-proof-of-work",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-wallpaper-is-a-build-artifact",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-pipeline-without-a-successor-is-personal-tooling",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "measure-the-diagnosis-not-only-the-transcript",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "the-queue-was-never-the-hard-part",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "where-agent-tooling-fits",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-platform-capability-does-not-exist-all-at-once",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "a-repository-should-not-contain-everything-its-agents-know",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "authority-must-travel-with-the-action",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "legibility-is-an-operating-property",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "the-context-window-is-not-the-continuity-boundary",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-project-folder-is-a-view-not-an-authority",
      "target": "the-coordinator-never-touches-the-repo",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "intelligence-has-a-lifecycle",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "moving-a-live-cluster-to-a-new-subnet",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "simplicity-is-an-ambitious-property",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "the-recommendation-does-not-need-authority",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "when-evidence-stops-applying",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-reference-architecture-is-a-hypothesis-library",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-repository-should-not-contain-everything-its-agents-know",
      "target": "layering-you-cant-violate-by-accident",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-repository-should-not-contain-everything-its-agents-know",
      "target": "simplicity-is-an-ambitious-property",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-repository-should-not-contain-everything-its-agents-know",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-repository-should-not-contain-everything-its-agents-know",
      "target": "the-context-window-is-not-the-continuity-boundary",
      "type": "relates",
      "directed": false
    },
    {
      "source": "a-repository-should-not-contain-everything-its-agents-know",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "intelligence-has-a-lifecycle",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "legibility-is-an-operating-property",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "measure-the-diagnosis-not-only-the-transcript",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "reachability-is-architecture",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-candidate-passed-the-upgrade-did-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-cluster-did-not-need-another-lock",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-deployment-boundary-was-only-a-place",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-devbox-is-an-access-cell",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "authority-must-travel-with-the-action",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "derived-status-is-earned",
      "type": "relates",
      "directed": false
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "judge-agents-by-the-next-prompt",
      "type": "relates",
      "directed": false
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "legibility-is-an-operating-property",
      "type": "relates",
      "directed": false
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "the-candidate-passed-the-upgrade-did-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "compatibility-reports-should-be-a-little-rude",
      "target": "the-patch-was-open-sources-proof-of-work",
      "type": "relates",
      "directed": false
    },
    {
      "source": "delivered-energy",
      "target": "size-the-spa-to-the-river",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "governance-for-a-team-of-one",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "log-as-system",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "measure-the-diagnosis-not-only-the-transcript",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "schema-on-split",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-candidate-passed-the-upgrade-did-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-embarrassment-is-mine",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-junior-ladder-was-a-joint-product",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-node-remembers-what-git-does-not",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-patch-was-open-sources-proof-of-work",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "the-wallpaper-is-a-build-artifact",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "when-evidence-stops-applying",
      "type": "relates",
      "directed": false
    },
    {
      "source": "derived-status-is-earned",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "every-stratum-has-its-own-null",
      "target": "schema-on-split",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "layering-you-cant-violate-by-accident",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "subprocess-not-service",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "the-coordinator-never-touches-the-repo",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "the-hotspots-survived",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "governance-for-a-team-of-one",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "intelligence-has-a-lifecycle",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "intelligence-has-a-lifecycle",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "intelligence-has-a-lifecycle",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "measure-the-diagnosis-not-only-the-transcript",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-coordinator-never-touches-the-repo",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-junior-ladder-was-a-joint-product",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "layering-you-cant-violate-by-accident",
      "target": "the-coordinator-never-touches-the-repo",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-deployment-boundary-was-only-a-place",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-devbox-is-an-access-cell",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-hotspots-survived",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-patch-was-open-sources-proof-of-work",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "legibility-is-an-operating-property",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "log-as-system",
      "target": "schema-on-split",
      "type": "relates",
      "directed": false
    },
    {
      "source": "log-as-system",
      "target": "the-deployment-boundary-was-only-a-place",
      "type": "relates",
      "directed": false
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "moving-a-live-cluster-to-a-new-subnet",
      "target": "the-target-state-is-not-the-plan",
      "type": "relates",
      "directed": false
    },
    {
      "source": "nfc-tokens-pointing-at-a-manifest",
      "target": "the-wallpaper-is-a-build-artifact",
      "type": "relates",
      "directed": false
    },
    {
      "source": "reachability-is-architecture",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "reachability-is-architecture",
      "target": "where-agent-tooling-fits",
      "type": "relates",
      "directed": false
    },
    {
      "source": "reachability-is-architecture",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "simplicity-is-an-ambitious-property",
      "target": "the-agent-is-not-the-application",
      "type": "relates",
      "directed": false
    },
    {
      "source": "simplicity-is-an-ambitious-property",
      "target": "the-queue-was-never-the-hard-part",
      "type": "relates",
      "directed": false
    },
    {
      "source": "simplicity-is-an-ambitious-property",
      "target": "the-target-state-is-not-the-plan",
      "type": "relates",
      "directed": false
    },
    {
      "source": "simplicity-is-an-ambitious-property",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "subprocess-not-service",
      "target": "the-coordinator-never-touches-the-repo",
      "type": "relates",
      "directed": false
    },
    {
      "source": "subprocess-not-service",
      "target": "the-devbox-is-an-access-cell",
      "type": "relates",
      "directed": false
    },
    {
      "source": "subprocess-not-service",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "subprocess-not-service",
      "target": "the-queue-was-never-the-hard-part",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-aftertaste-of-resolution",
      "target": "the-embarrassment-is-mine",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-aftertaste-of-resolution",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-aftertaste-of-resolution",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-aftertaste-of-resolution",
      "target": "why-i-publish-explore-prompts",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-context-window-is-not-the-continuity-boundary",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-deployment-boundary-was-only-a-place",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-agent-is-not-the-application",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-boring-auth-boundary-was-right",
      "target": "the-devbox-is-an-access-cell",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-candidate-passed-the-upgrade-did-not",
      "target": "the-deployment-boundary-was-only-a-place",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-candidate-produced-somewhere-else",
      "target": "the-deadline-was-not-the-stopping-rule",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-candidate-produced-somewhere-else",
      "target": "the-junior-ladder-was-a-joint-product",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-candidate-produced-somewhere-else",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-candidate-produced-somewhere-else",
      "target": "where-the-cohort-comes-from",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-cluster-did-not-need-another-lock",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-cluster-did-not-need-another-lock",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-context-window-is-not-the-continuity-boundary",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-context-window-is-not-the-continuity-boundary",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-context-window-is-not-the-continuity-boundary",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "the-missing-layer-is-binding-not-intelligence",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "the-ref-nobody-adds",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-coordinator-never-touches-the-repo",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-deployment-boundary-was-only-a-place",
      "target": "the-devbox-is-an-access-cell",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-deployment-boundary-was-only-a-place",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-devbox-is-an-access-cell",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-embarrassment-is-mine",
      "target": "the-junior-ladder-was-a-joint-product",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-embarrassment-is-mine",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-embarrassment-is-mine",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-embarrassment-is-mine",
      "target": "why-i-publish-explore-prompts",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-hotspots-survived",
      "target": "the-human-is-in-the-slow-loop",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-hotspots-survived",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-human-is-in-the-slow-loop",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-human-is-in-the-slow-loop",
      "target": "the-recommendation-does-not-need-authority",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-human-is-in-the-slow-loop",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "the-patch-was-open-sources-proof-of-work",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "the-person-of-record",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "where-the-cohort-comes-from",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "the-queue-was-never-the-hard-part",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "the-ref-nobody-adds",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "the-workshop-is-learning-my-accent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-next-prompt-was-only-the-visible-error",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-next-prompt-was-only-the-visible-error",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-node-remembers-what-git-does-not",
      "target": "the-target-state-is-not-the-plan",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-patch-was-open-sources-proof-of-work",
      "target": "where-the-cohort-comes-from",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-person-of-record",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-platform-can-retrieve-the-application-still-has-to-decide",
      "target": "the-router-was-larger-than-the-model",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-queue-was-never-the-hard-part",
      "target": "the-second-operator-is-the-test",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-queue-was-never-the-hard-part",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-router-was-larger-than-the-model",
      "target": "utilization-is-a-signal-not-a-limit",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-router-was-larger-than-the-model",
      "target": "what-107-isolated-completions-did-not-show",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-second-operator-is-the-test",
      "target": "the-work-between-the-ticket-and-the-agent",
      "type": "relates",
      "directed": false
    },
    {
      "source": "the-work-between-the-ticket-and-the-agent",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "relates",
      "directed": false
    },
    {
      "source": "where-agent-tooling-fits",
      "target": "why-production-access-changes-the-shape-of-agent-tooling",
      "type": "relates",
      "directed": false
    },
    {
      "source": "judge-agents-by-the-next-prompt",
      "target": "the-next-prompt-was-only-the-visible-error",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "measure-the-diagnosis-not-only-the-transcript",
      "target": "a-platform-capability-does-not-exist-all-at-once",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "the-deployment-boundary-was-only-a-place",
      "target": "authority-must-travel-with-the-action",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "the-devbox-is-an-access-cell",
      "target": "authority-must-travel-with-the-action",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "the-junior-ladder-was-a-joint-product",
      "target": "a-pipeline-without-a-successor-is-personal-tooling",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "the-missing-layer-is-binding-not-intelligence",
      "target": "where-the-assurance-questions-are-already-answered",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "the-second-operator-is-the-test",
      "target": "a-pipeline-without-a-successor-is-personal-tooling",
      "type": "superseded-by",
      "directed": true
    },
    {
      "source": "where-the-cohort-comes-from",
      "target": "the-candidate-produced-somewhere-else",
      "type": "superseded-by",
      "directed": true
    }
  ]
}