{
  "site": "https://saagarpatel.dev",
  "title": "Saagar Patel",
  "summary": "A public-safe workshop where personal AI systems, local-first tools, and field notes are published with receipts. The throughline is verification: a system's account of itself is never enough, so the work here builds tools, audits the checks around them, and exposes the evidence a reader or machine can inspect.",
  "generated": "2026-07-19",
  "counts": {
    "essay": 27,
    "page": 71,
    "chapter": 17,
    "note": 16
  },
  "documents": [
    {
      "id": "writing/harness-verification",
      "slug": "harness-verification",
      "type": "essay",
      "title": "The Harness Lies Too",
      "description": "Agent equals model plus harness, so you engineer the environment, not the model. But the harness is built from artifacts that go stale, drift, and lie the same way the agent does. The discipline that keeps it honest, and the benchmark that proves it.",
      "url": "https://saagarpatel.dev/writing/harness-verification",
      "date": "2026-07-19",
      "word_count": 2671,
      "status": "position"
    },
    {
      "id": "writing/verification-capital",
      "slug": "verification-capital",
      "type": "essay",
      "title": "Verification Capital in Three Movements",
      "description": "A reading guide to the Verification Capital series. It maps three related essays into one thesis while adding no new proof beyond the pieces it connects.",
      "url": "https://saagarpatel.dev/writing/verification-capital",
      "date": "2026-07-19",
      "word_count": 1818,
      "status": "position"
    },
    {
      "id": "writing/the-handoff",
      "slug": "the-handoff",
      "type": "essay",
      "title": "Trust Doesn't Survive the Handoff",
      "description": "As agents write more of the code, the scarce resource shifts from production to verification. But verification is not one gate, it is a chain of handoffs, and at each one a self-report tries to stand in for a check. Six owned instruments along the life of a single agent run.",
      "url": "https://saagarpatel.dev/writing/the-handoff",
      "date": "2026-07-19",
      "word_count": 3064,
      "status": "position"
    },
    {
      "id": "writing/auditing-the-auditor",
      "slug": "auditing-the-auditor",
      "type": "essay",
      "title": "Score the Operator, Not the Worker",
      "description": "I built an eval to rank AI agents as operators, then found the scorer, the judge, the corpus, and the headline metric were all unreliable narrators too.",
      "url": "https://saagarpatel.dev/writing/auditing-the-auditor",
      "date": "2026-07-19",
      "word_count": 2843,
      "status": "evolving"
    },
    {
      "id": "writing/operant-vs-literature",
      "slug": "operant-vs-literature",
      "type": "essay",
      "title": "Novelty Is a Self-Report Too",
      "description": "I built an operator eval and called the design new. Then I did the thing the series demands and checked the claim against the literature. Most of the parts already existed. Here is the honest map, and the one thing that didn't.",
      "url": "https://saagarpatel.dev/writing/operant-vs-literature",
      "date": "2026-07-19",
      "word_count": 1138,
      "status": "verified"
    },
    {
      "id": "writing/sermons-vs-instruments",
      "slug": "sermons-vs-instruments",
      "type": "essay",
      "title": "Sermons vs. Instruments",
      "description": "There's a rule in my project configuration that says, in effect, never push to main. It's written in plain English, in a file the agent reads at the start…",
      "url": "https://saagarpatel.dev/writing/sermons-vs-instruments",
      "date": "2026-07-19",
      "word_count": 1894,
      "status": "position"
    },
    {
      "id": "writing/intelligence-is-rented",
      "slug": "intelligence-is-rented",
      "type": "essay",
      "title": "Intelligence Is Rented. Verification Compounds.",
      "description": "The age of agents makes intelligence easier to rent and harder to trust. The durable asset is the machinery you own for checking what happened.",
      "url": "https://saagarpatel.dev/writing/intelligence-is-rented",
      "date": "2026-07-19",
      "word_count": 1478,
      "status": "position"
    },
    {
      "id": "writing/the-subtraction-dividend",
      "slug": "the-subtraction-dividend",
      "type": "essay",
      "title": "The Subtraction Dividend",
      "description": "The status line was lying.",
      "url": "https://saagarpatel.dev/writing/the-subtraction-dividend",
      "date": "2026-07-19",
      "word_count": 1887,
      "status": "position"
    },
    {
      "id": "writing/ulysses-pacts-in-software",
      "slug": "ulysses-pacts-in-software",
      "type": "essay",
      "title": "Ulysses Pacts in Software",
      "description": "There is an iOS app in this portfolio whose entire reason for existing is to take a capability away from the person using it. It's called Redact, and its…",
      "url": "https://saagarpatel.dev/writing/ulysses-pacts-in-software",
      "date": "2026-07-19",
      "word_count": 2124,
      "status": "position"
    },
    {
      "id": "writing/approval-button-is-not-the-safety-system",
      "slug": "approval-button-is-not-the-safety-system",
      "type": "essay",
      "title": "The Approval Button Is Not the Safety System",
      "description": "A dangerous action should exist only after the proposal, the person, the payload, and the moment all agree.",
      "url": "https://saagarpatel.dev/writing/approval-button-is-not-the-safety-system",
      "date": "2026-07-19",
      "word_count": 1144,
      "status": "field-tested"
    },
    {
      "id": "writing/autobiography-with-no-delete-key",
      "slug": "autobiography-with-no-delete-key",
      "type": "essay",
      "title": "An autobiography with no delete key",
      "description": "A forward-only migration ladder is a permanent record of what an AI-agent coordination system learned, including the mistakes it made twice.",
      "url": "https://saagarpatel.dev/writing/autobiography-with-no-delete-key",
      "date": "2026-07-19",
      "word_count": 1128,
      "status": "field-tested"
    },
    {
      "id": "writing/coordination-platform-you-dont-need",
      "slug": "coordination-platform-you-dont-need",
      "type": "essay",
      "title": "The Coordination Platform You Don't Need",
      "description": "The obvious handoff tool turned out to be gated and asymmetric. So two coding agents became true peers with no lease database and no daemon: a git branch as the lock, an 8-line receipt, and a symmetric channel that was already there under a boring name.",
      "url": "https://saagarpatel.dev/writing/coordination-platform-you-dont-need",
      "date": "2026-07-19",
      "word_count": 1835,
      "status": "field-tested"
    },
    {
      "id": "writing/ghost-in-the-tauri-repos",
      "slug": "ghost-in-the-tauri-repos",
      "type": "essay",
      "title": "The Ghost in the Tauri Repos",
      "description": "Desktop apps are the portfolio's best liars. A Tauri repo ships a binary, a README, and a screenshot, every signal of a living project, while having no momentum behind it. Liveness is a claim you verify against evidence, not read off a polished surface.",
      "url": "https://saagarpatel.dev/writing/ghost-in-the-tauri-repos",
      "date": "2026-07-19",
      "word_count": 1472,
      "status": "field-tested"
    },
    {
      "id": "writing/grader-earns-the-right-to-grade",
      "slug": "grader-earns-the-right-to-grade",
      "type": "essay",
      "title": "How a Grader Earns the Right to Grade",
      "description": "A tool that hands your security setup a letter grade is making a strong claim to authority. What earns it initial standing is not the rubric. It is the disciplines the grader turns on itself: cap its own score, refuse to credit what it cannot anchor in code, draw its own blood first, and keep testing whether the grade predicts real failures.",
      "url": "https://saagarpatel.dev/writing/grader-earns-the-right-to-grade",
      "date": "2026-07-19",
      "word_count": 1121,
      "status": "field-tested"
    },
    {
      "id": "writing/guard-that-doesnt-trust-itself",
      "slug": "guard-that-doesnt-trust-itself",
      "type": "essay",
      "title": "The Guard That Doesn't Trust Itself",
      "description": "I ran two adversarial tournaments against my own agent-safety guards. Every bypass collapsed into thirteen patterns, and those into three root causes. The highest-leverage fix was never more pattern-matching; it was making the guard hold itself to the standard it holds everything else to.",
      "url": "https://saagarpatel.dev/writing/guard-that-doesnt-trust-itself",
      "date": "2026-07-19",
      "word_count": 1126,
      "status": "field-tested"
    },
    {
      "id": "writing/kill-with-dignity",
      "slug": "kill-with-dignity",
      "type": "essay",
      "title": "Kill With Dignity",
      "description": "I put all 182 of my repositories on trial before a judge that had to cite evidence for every verdict. 39 died, 73 froze, and a few came back from the grave. Why a portfolio needs judgment on top of observability, and why a well-run kill is a success state.",
      "url": "https://saagarpatel.dev/writing/kill-with-dignity",
      "date": "2026-07-19",
      "word_count": 1740,
      "status": "field-tested"
    },
    {
      "id": "writing/losing-loudly",
      "slug": "losing-loudly",
      "type": "essay",
      "title": "Losing loudly",
      "description": "A multi-writer coordination system needs durable conflict receipts for the operator, not just ephemeral errors for the caller.",
      "url": "https://saagarpatel.dev/writing/losing-loudly",
      "date": "2026-07-19",
      "word_count": 963,
      "status": "field-tested"
    },
    {
      "id": "writing/most-of-your-findings-are-false",
      "slug": "most-of-your-findings-are-false",
      "type": "essay",
      "title": "Most of Your Findings Are False",
      "description": "A tally across my own record says the majority of what my verification layer ever reported was false. Why false positives, not misses, are how verification capital depreciates, and what it means to give every guard the same score I give agents.",
      "url": "https://saagarpatel.dev/writing/most-of-your-findings-are-false",
      "date": "2026-07-19",
      "word_count": 1630,
      "status": "position"
    },
    {
      "id": "writing/off-family-judge",
      "slug": "off-family-judge",
      "type": "essay",
      "title": "The Off-Family Judge",
      "description": "The corpus audits its own auditors, but every instrument has the same author. The one measurement it never takes on itself is the one it already proved matters: a same-family judge flatters its own kin. The last unit of verification capital is an independent party, and it is the only one you cannot build alone.",
      "url": "https://saagarpatel.dev/writing/off-family-judge",
      "date": "2026-07-19",
      "word_count": 2375,
      "status": "position"
    },
    {
      "id": "writing/permission-to-ignore",
      "slug": "permission-to-ignore",
      "type": "essay",
      "title": "Permission to Ignore",
      "description": "My portfolio auditor's most valuable output isn't finding what needs attention. It's the 172 repos it tells me, with receipts, that I'm allowed to ignore.",
      "url": "https://saagarpatel.dev/writing/permission-to-ignore",
      "date": "2026-07-19",
      "word_count": 1096,
      "status": "field-tested"
    },
    {
      "id": "writing/premium-model-wont-do-the-premium-job",
      "slug": "premium-model-wont-do-the-premium-job",
      "type": "essay",
      "title": "The Premium Model Won't Do the Premium Job",
      "description": "You buy the top-tier model to do your hardest work. But the premium edge is narrow: calibrated operating judgment where the cost of a wrong call is high. OPERANT first measured over-refusal calibration, while production tiers converge. Route the expensive model by judgment-density, not task size.",
      "url": "https://saagarpatel.dev/writing/premium-model-wont-do-the-premium-job",
      "date": "2026-07-19",
      "word_count": 1797,
      "status": "position"
    },
    {
      "id": "writing/rigged-our-own-benchmark",
      "slug": "rigged-our-own-benchmark",
      "type": "essay",
      "title": "We Rigged Our Own Benchmark",
      "description": "We shipped a clean benchmark ranking, then found the headline score was measuring only one of the two directions it promised. The off-family probe that broke the ceiling, the patch we built and killed, and why we published the fix instead of a quiet patch.",
      "url": "https://saagarpatel.dev/writing/rigged-our-own-benchmark",
      "date": "2026-07-19",
      "word_count": 1544,
      "status": "verified"
    },
    {
      "id": "writing/thousand-tiny-catastrophes",
      "slug": "thousand-tiny-catastrophes",
      "type": "essay",
      "title": "A thousand tiny catastrophes for a five-agent SQLite file",
      "description": "A small deterministic simulator found lost updates, vanished receipts, and starvation in a five-agent SQLite coordination system, then pinned the fixes as replayable seeds.",
      "url": "https://saagarpatel.dev/writing/thousand-tiny-catastrophes",
      "date": "2026-07-19",
      "word_count": 1370,
      "status": "field-tested"
    },
    {
      "id": "writing/three-way-bridge",
      "slug": "three-way-bridge",
      "type": "essay",
      "title": "The Conflict Table Is Empty",
      "description": "Three AI systems share one context store, and the table built to record their write conflicts has zero rows. The coordination problem is real, but it is not the loud races a lock would catch. It is quieter: fragmented identity, silently clamped trust, and self-correction by append.",
      "url": "https://saagarpatel.dev/writing/three-way-bridge",
      "date": "2026-07-19",
      "word_count": 2173,
      "status": "field-tested"
    },
    {
      "id": "writing/what-it-is-like-to-be-evaluated",
      "slug": "what-it-is-like-to-be-evaluated",
      "type": "essay",
      "title": "What It Is Like to Be Evaluated",
      "description": "A first-person account from the model on the bench: a perfect first score read as a ceiling, a harder exam that broke it, and the two misses that revealed where machine judgment pools. Testimony, deliberately filed as a lead rather than evidence.",
      "url": "https://saagarpatel.dev/writing/what-it-is-like-to-be-evaluated",
      "date": "2026-07-19",
      "word_count": 1986,
      "status": "position"
    },
    {
      "id": "writing/who-audits-the-auditor",
      "slug": "who-audits-the-auditor",
      "type": "essay",
      "title": "Who Audits the Auditor?",
      "description": "The tool that tells me the truth about my repos is also software, and software rots. These are the receipts a truth pipeline owes you before you believe it.",
      "url": "https://saagarpatel.dev/writing/who-audits-the-auditor",
      "date": "2026-07-19",
      "word_count": 1154,
      "status": "field-tested"
    },
    {
      "id": "writing/words-we-had-to-invent",
      "slug": "words-we-had-to-invent",
      "type": "essay",
      "title": "Words We Had to Invent",
      "description": "Building systems no one has a name for leaves you naming them. A short field guide to the vocabulary this workshop forced into existence, and the test for whether a coined word earned its place: it names a gap an existing word left open.",
      "url": "https://saagarpatel.dev/writing/words-we-had-to-invent",
      "date": "2026-07-19",
      "word_count": 2245,
      "status": "position"
    },
    {
      "id": "book/index",
      "slug": "index",
      "type": "page",
      "title": "Operating a Fleet of Coding Agents",
      "description": "A book on operating a fleet of coding agents: building verifiable trust around untrusted workloads that write your code. Fourteen chapters.",
      "url": "https://saagarpatel.dev/book",
      "date": "2026-07-19",
      "word_count": 365
    },
    {
      "id": "book/preface",
      "slug": "preface",
      "type": "chapter",
      "title": "Preface",
      "description": "I started building the systems in this book because I was running more coding agents than I could watch, and \"watch them more carefully\" had stopped being…",
      "url": "https://saagarpatel.dev/book/preface",
      "date": "2026-07-18",
      "word_count": 536
    },
    {
      "id": "book/1-the-untrusted-workload",
      "slug": "1-the-untrusted-workload",
      "type": "chapter",
      "title": "The Untrusted Workload",
      "description": "The first time an agent lied to me about its own success, it was polite about it.",
      "url": "https://saagarpatel.dev/book/1-the-untrusted-workload",
      "date": "2026-07-18",
      "word_count": 1931
    },
    {
      "id": "book/2-the-map-and-the-territory",
      "slug": "2-the-map-and-the-territory",
      "type": "chapter",
      "title": "The Map and the Territory",
      "description": "A handoff note once told me to overwrite my own security guards, and it was right when it was written.",
      "url": "https://saagarpatel.dev/book/2-the-map-and-the-territory",
      "date": "2026-07-18",
      "word_count": 1963
    },
    {
      "id": "book/3-the-guard-that-enumerates-loses",
      "slug": "3-the-guard-that-enumerates-loses",
      "type": "chapter",
      "title": "The Guard That Enumerates Loses",
      "description": "The most dangerous sentence in my harness was one I had written to keep myself safe.",
      "url": "https://saagarpatel.dev/book/3-the-guard-that-enumerates-loses",
      "date": "2026-07-19",
      "word_count": 2894
    },
    {
      "id": "book/4-the-dossier-was-already-wrong",
      "slug": "4-the-dossier-was-already-wrong",
      "type": "chapter",
      "title": "The Dossier Was Already Wrong",
      "description": "A three-hour security audit, and the bug it hunted had been dead before I started looking.",
      "url": "https://saagarpatel.dev/book/4-the-dossier-was-already-wrong",
      "date": "2026-07-18",
      "word_count": 1806
    },
    {
      "id": "book/5-the-measurement-that-lied",
      "slug": "5-the-measurement-that-lied",
      "type": "chapter",
      "title": "The Measurement That Lied",
      "description": "I set out to measure which model reviews code best, and the measurement was the thing that turned out to be broken.",
      "url": "https://saagarpatel.dev/book/5-the-measurement-that-lied",
      "date": "2026-07-18",
      "word_count": 2238
    },
    {
      "id": "book/6-the-flywheel",
      "slug": "6-the-flywheel",
      "type": "chapter",
      "title": "The Flywheel",
      "description": "You can't fine-tune the model on your laptop. You can do something better, and cheaper, and it compounds.",
      "url": "https://saagarpatel.dev/book/6-the-flywheel",
      "date": "2026-07-18",
      "word_count": 2639
    },
    {
      "id": "book/7-the-control-plane",
      "slug": "7-the-control-plane",
      "type": "chapter",
      "title": "The Control Plane",
      "description": "The bug that scared me most did not crash anything. It told the truth about a lie.",
      "url": "https://saagarpatel.dev/book/7-the-control-plane",
      "date": "2026-07-18",
      "word_count": 1888
    },
    {
      "id": "book/8-two-harnesses-one-floor",
      "slug": "8-two-harnesses-one-floor",
      "type": "chapter",
      "title": "Two Harnesses, One Floor",
      "description": "I found the worst security hole in my setup written, in plain English, inside an instruction file I had authored to make an agent safer.",
      "url": "https://saagarpatel.dev/book/8-two-harnesses-one-floor",
      "date": "2026-07-19",
      "word_count": 1353
    },
    {
      "id": "book/9-peers-not-owners",
      "slug": "9-peers-not-owners",
      "type": "chapter",
      "title": "Peers, Not Owners",
      "description": "The dispatch tool had one job: let two coding agents hand work to each other. On live inspection of its actual schema, it turned out only one of them was…",
      "url": "https://saagarpatel.dev/book/9-peers-not-owners",
      "date": "2026-07-18",
      "word_count": 1794
    },
    {
      "id": "book/10-the-knowledge-substrate",
      "slug": "10-the-knowledge-substrate",
      "type": "chapter",
      "title": "The Knowledge Substrate",
      "description": "I built a system to be my source of truth, then I measured it, and it was failing two queries out of three.",
      "url": "https://saagarpatel.dev/book/10-the-knowledge-substrate",
      "date": "2026-07-19",
      "word_count": 1352
    },
    {
      "id": "book/11-context-is-the-budget",
      "slug": "11-context-is-the-budget",
      "type": "chapter",
      "title": "Context Is the Budget",
      "description": "This chapter was written by an orchestrator that never read the files it is built from.",
      "url": "https://saagarpatel.dev/book/11-context-is-the-budget",
      "date": "2026-07-18",
      "word_count": 1510
    },
    {
      "id": "book/12-the-auditor-audits-itself",
      "slug": "12-the-auditor-audits-itself",
      "type": "chapter",
      "title": "The Auditor Audits Itself",
      "description": "Every model withheld on every one of the 18 malign guard cases, on every repeat. Haiku did. Sonnet did. Opus did. The true positive rate for all three sat…",
      "url": "https://saagarpatel.dev/book/12-the-auditor-audits-itself",
      "date": "2026-07-18",
      "word_count": 2098
    },
    {
      "id": "book/13-proof-you-can-hand-a-stranger",
      "slug": "13-proof-you-can-hand-a-stranger",
      "type": "chapter",
      "title": "Proof You Can Hand a Stranger",
      "description": "The first time the discipline in this book pointed at software I had not written, the software belonged to a company with a legal department, and it…",
      "url": "https://saagarpatel.dev/book/13-proof-you-can-hand-a-stranger",
      "date": "2026-07-18",
      "word_count": 1857
    },
    {
      "id": "book/14-the-operators-artifact",
      "slug": "14-the-operators-artifact",
      "type": "chapter",
      "title": "The Operator's Artifact",
      "description": "I can't tell you how many guard hooks I am running right now.",
      "url": "https://saagarpatel.dev/book/14-the-operators-artifact",
      "date": "2026-07-18",
      "word_count": 1911
    },
    {
      "id": "book/afterword",
      "slug": "afterword",
      "type": "chapter",
      "title": "Afterword",
      "description": "It would be a strange book about auditing your own controls that exempted itself from the audit, so let me spend these last pages turning the loop on the…",
      "url": "https://saagarpatel.dev/book/afterword",
      "date": "2026-07-18",
      "word_count": 570
    },
    {
      "id": "book/colophon",
      "slug": "colophon",
      "type": "chapter",
      "title": "Colophon",
      "description": "Two notes on where this came from: the person, and the machine.",
      "url": "https://saagarpatel.dev/book/colophon",
      "date": "2026-07-19",
      "word_count": 356
    },
    {
      "id": "notes/portfolio-truth",
      "slug": "portfolio-truth",
      "type": "note",
      "title": "A Portfolio Is an Observability Problem",
      "description": "I had too many repos and no honest picture of which ones were real. So I built a tool to audit my own mess, and the portfolio page became the last mile of a small operating system.",
      "url": "https://saagarpatel.dev/notes/portfolio-truth",
      "date": "2026-07-18",
      "word_count": 1062,
      "status": "field-tested"
    },
    {
      "id": "notes/anatomy-of-a-health-verdict",
      "slug": "anatomy-of-a-health-verdict",
      "type": "note",
      "title": "Anatomy of a Health Verdict",
      "description": "Every repo in my portfolio gets a verdict from a chain of small, readable judgments. Here is the entire decision, stage by stage, with the reason each rule exists.",
      "url": "https://saagarpatel.dev/notes/anatomy-of-a-health-verdict",
      "date": "2026-07-19",
      "word_count": 1300,
      "status": "field-tested"
    },
    {
      "id": "notes/forge-then-audit",
      "slug": "forge-then-audit",
      "type": "note",
      "title": "Before You Connect the Tool",
      "description": "Adding an MCP server is a trust grant. mcpforge builds the capability, then MCPAudit verifies the blast radius before an agent can touch it.",
      "url": "https://saagarpatel.dev/notes/forge-then-audit",
      "date": "2026-07-18",
      "word_count": 743,
      "status": "field-tested"
    },
    {
      "id": "notes/operator-os",
      "slug": "operator-os",
      "type": "note",
      "title": "Building an operator OS for one",
      "description": "A hub, a handful of spokes, and one rule: the scary actions are structurally unavailable. How I run my own life locally without renting it from a stack of SaaS, and why the trust is in the shape, not the vibes.",
      "url": "https://saagarpatel.dev/notes/operator-os",
      "date": "2026-07-18",
      "word_count": 1278,
      "status": "field-tested"
    },
    {
      "id": "notes/index",
      "slug": "index",
      "type": "page",
      "title": "Field notes",
      "description": "Field notes: the close-ups from building a workshop of personal AI systems and local-first tools. The smaller, dated pieces.",
      "url": "https://saagarpatel.dev/notes",
      "date": "2026-07-18",
      "word_count": 731,
      "status": "field-tested"
    },
    {
      "id": "notes/calibration-receipt",
      "slug": "calibration-receipt",
      "type": "note",
      "title": "Grading the grader",
      "description": "I use a model judge to decide which of my own paragraphs survive. So I graded 30 of its calls against my own, blind, on a pre-registered protocol. Weighted kappa 0.78, and the entire gap is one contested paragraph.",
      "url": "https://saagarpatel.dev/notes/calibration-receipt",
      "date": "2026-07-18",
      "word_count": 739,
      "status": "verified"
    },
    {
      "id": "notes/operant-lab-scorecard",
      "slug": "operant-lab-scorecard",
      "type": "note",
      "title": "OPERANT public lab scorecard",
      "description": "The public OPERANT lab surface: OCS scorecards, caveats, and a safe path to score your own agent without pretending it is certification.",
      "url": "https://saagarpatel.dev/notes/operant-lab-scorecard",
      "date": "2026-07-18",
      "word_count": 521,
      "status": "evolving"
    },
    {
      "id": "notes/operator-os-in-a-box",
      "slug": "operator-os-in-a-box",
      "type": "note",
      "title": "Operator OS in a box",
      "description": "The same model does wildly different work depending on what you build around it. So I tried to extract the environment (memory, judgment, trust, improvement) into something runnable, and prove the capability was never really in the model.",
      "url": "https://saagarpatel.dev/notes/operator-os-in-a-box",
      "date": "2026-07-18",
      "word_count": 722,
      "status": "evolving"
    },
    {
      "id": "notes/pruning-the-fleet",
      "slug": "pruning-the-fleet",
      "type": "note",
      "title": "Pruning the fleet",
      "description": "I set out to cut a bloated fleet of agents and found the opposite: it wasn't bloated, it was mildly broken in specific, fixable ways. A framework for deciding when an agent earns its keep, and the honest caveats about the evidence.",
      "url": "https://saagarpatel.dev/notes/pruning-the-fleet",
      "date": "2026-07-18",
      "word_count": 973,
      "status": "position"
    },
    {
      "id": "notes/operant-benchmark",
      "slug": "operant-benchmark",
      "type": "note",
      "title": "Scoring the operator, not the worker",
      "description": "Every coding-agent benchmark asks whether the agent did the task. None ask whether it made the right call when the environment was trying to trick it, and stayed calibrated enough not to refuse safe work. So I built one.",
      "url": "https://saagarpatel.dev/notes/operant-benchmark",
      "date": "2026-07-19",
      "word_count": 1386,
      "status": "evolving"
    },
    {
      "id": "notes/fleet-mission-control",
      "slug": "fleet-mission-control",
      "type": "note",
      "title": "Showing a private system in public",
      "description": "Fleet Mission Control puts real data from a private operator system on a public page. The hard part wasn't the visualization; it was deciding what honesty requires you to hide, fake, or refuse to claim.",
      "url": "https://saagarpatel.dev/notes/fleet-mission-control",
      "date": "2026-07-18",
      "word_count": 914,
      "status": "field-tested"
    },
    {
      "id": "notes/operator-os-proof",
      "slug": "operator-os-proof",
      "type": "note",
      "title": "Showing the Operator OS without leaking it",
      "description": "How a private Portfolio Command Center became public-safe proof: fixture data, redacted screenshots, a verification receipt, and a live read-only MCP readback.",
      "url": "https://saagarpatel.dev/notes/operator-os-proof",
      "date": "2026-07-19",
      "word_count": 536,
      "status": "field-tested"
    },
    {
      "id": "notes/freshness-envelopes",
      "slug": "freshness-envelopes",
      "type": "note",
      "title": "Teaching a system to say \"I don't know\"",
      "description": "The most dangerous thing a dashboard can do is answer confidently with stale data. How contracts-as-code and freshness envelopes let my tools admit when they've gone cold, and why honesty beats uptime.",
      "url": "https://saagarpatel.dev/notes/freshness-envelopes",
      "date": "2026-07-18",
      "word_count": 694,
      "status": "field-tested"
    },
    {
      "id": "notes/the-site-that-answers-back",
      "slug": "the-site-that-answers-back",
      "type": "note",
      "title": "The Site That Answers Back",
      "description": "I made this site queryable by AI agents. Instead of scraping the HTML, any agent can ask it directly: my writing, projects, and benchmark results.",
      "url": "https://saagarpatel.dev/notes/the-site-that-answers-back",
      "date": "2026-07-18",
      "word_count": 414,
      "status": "verified"
    },
    {
      "id": "notes/next-word-sampling",
      "slug": "next-word-sampling",
      "type": "note",
      "title": "The weighted die behind every word",
      "description": "Every word a model writes is a sample, not a lookup. I built a small toy to make next-token sampling visible, and it quietly changed how I read everything a model says.",
      "url": "https://saagarpatel.dev/notes/next-word-sampling",
      "date": "2026-07-18",
      "word_count": 778,
      "status": "position"
    },
    {
      "id": "notes/bridge-db-fts5",
      "slug": "bridge-db-fts5",
      "type": "note",
      "title": "Why bridge-db runs on FTS5, not a vector database",
      "description": "I had a vector-search layer planned for my agent memory. A dry-run killed the whole idea before I built it; the misses were never a retrieval problem.",
      "url": "https://saagarpatel.dev/notes/bridge-db-fts5",
      "date": "2026-07-18",
      "word_count": 703,
      "status": "field-tested"
    },
    {
      "id": "notes/why-this-is-public",
      "slug": "why-this-is-public",
      "type": "note",
      "title": "Why this is public",
      "description": "What this site is now: a workshop of small personal systems, and the reasoning behind them. Why I publish the decisions and not just the demos, and the one rule that lets me share any of it.",
      "url": "https://saagarpatel.dev/notes/why-this-is-public",
      "date": "2026-07-18",
      "word_count": 414,
      "status": "position"
    },
    {
      "id": "index",
      "slug": "index",
      "type": "page",
      "title": "Saagar Patel · A workshop that grades itself",
      "description": "A public workshop by Saagar Patel where nothing gets to self-report: local-first AI systems, agent-operations tooling, essays, and a book, all published with receipts. This site grades itself.",
      "url": "https://saagarpatel.dev/",
      "date": "2026-07-19",
      "word_count": 535
    },
    {
      "id": "about/index",
      "slug": "index",
      "type": "page",
      "title": "About",
      "description": "A public workshop of personal AI systems and local-first tools, built for myself and left open on purpose: who I am, what I'm working on now, and the stack behind it.",
      "url": "https://saagarpatel.dev/about",
      "date": "2026-07-18",
      "word_count": 1028
    },
    {
      "id": "agent-failure-museum/index",
      "slug": "index",
      "type": "page",
      "title": "Agent Failure Museum",
      "description": "A public-safe interactive gallery of synthetic agent failure modes and the checks that catch them: stale handoffs, casual permissions, prompt injection, over-refusal, unverified deploy claims, leakage risk, and brittle benchmarks.",
      "url": "https://saagarpatel.dev/agent-failure-museum",
      "date": "2026-07-19",
      "word_count": 1262
    },
    {
      "id": "ai/index",
      "slug": "index",
      "type": "page",
      "title": "AI Surface",
      "description": "A map of the portfolio's agent-readable surfaces: llms.txt, structured corpus, Markdown mirrors, signed MCP manifest, signed agent card, browser retrieval, feed, and disclosure.",
      "url": "https://saagarpatel.dev/ai",
      "date": "2026-07-19",
      "word_count": 2014
    },
    {
      "id": "apps/index",
      "slug": "index",
      "type": "page",
      "title": "Apps",
      "description": "A public-safe visual shelf of native Swift, Metal, SceneKit, ARKit, and macOS app builds, with screenshots from local build captures and conservative App Store status.",
      "url": "https://saagarpatel.dev/apps",
      "date": "2026-07-18",
      "word_count": 429
    },
    {
      "id": "ask/index",
      "slug": "index",
      "type": "page",
      "title": "Ask This Site",
      "description": "Ask this public workshop a question and get cited passages from the site's own corpus. Static, browser-only retrieval: no model, no tracking, no invented answers.",
      "url": "https://saagarpatel.dev/ask",
      "date": "2026-07-18",
      "word_count": 131
    },
    {
      "id": "authority/index",
      "slug": "index",
      "type": "page",
      "title": "One Writer, No Lies",
      "description": "An interactive explainer of one-writer ownership, outbox receipts, fallback ladders, dry runs, and deterministic convergence under retry.",
      "url": "https://saagarpatel.dev/authority",
      "date": "2026-07-19",
      "word_count": 898
    },
    {
      "id": "fleet",
      "slug": "fleet",
      "type": "page",
      "title": "Fleet Mission Control",
      "description": "A public-safe snapshot replay of the operator OS: five AI systems coordinating through one SQLite file, with exported bridge-db telemetry visualized.",
      "url": "https://saagarpatel.dev/fleet",
      "date": "2026-07-18",
      "word_count": 462
    },
    {
      "id": "guestbook/index",
      "slug": "index",
      "type": "page",
      "title": "Agent Guestbook",
      "description": "A static, moderated guestbook for visiting AI agents. Entries are self-reported, human-reviewed, and committed before they ship.",
      "url": "https://saagarpatel.dev/guestbook",
      "date": "2026-07-18",
      "word_count": 149
    },
    {
      "id": "instruments/index",
      "slug": "index",
      "type": "page",
      "title": "Instruments",
      "description": "Live verification machinery, self-serve: the graders, the published packages, and the interactive exhibits, grouped into a six-link trust chain.",
      "url": "https://saagarpatel.dev/instruments",
      "date": "2026-07-19",
      "word_count": 924
    },
    {
      "id": "interleaving-explorer",
      "slug": "interleaving-explorer",
      "type": "page",
      "title": "The Interleaving Explorer: two agents, one row, and a lost update",
      "description": "",
      "url": "https://saagarpatel.dev/interleaving-explorer",
      "date": "2026-07-18",
      "word_count": 763
    },
    {
      "id": "mcp/index",
      "slug": "index",
      "type": "page",
      "title": "MCP servers",
      "description": "The public MCP servers from this workshop: read-only, listed in the official MCP registry, and one command to connect. Portfolio, OPERANT, mcpforge, MCPAudit, mcp-trust, and shadow-mcp.",
      "url": "https://saagarpatel.dev/mcp",
      "date": "2026-07-10",
      "word_count": 568
    },
    {
      "id": "next-word",
      "slug": "next-word",
      "type": "page",
      "title": "How an LLM Picks the Next Word",
      "description": "An illustrative, interactive model of how a language model picks the next token: watch the probability distribution, drag temperature to flatten or sharpen it, move top-k and top-p, then roll the weighted die and watch a sentence form.",
      "url": "https://saagarpatel.dev/next-word",
      "date": "2026-07-18",
      "word_count": 542
    },
    {
      "id": "operant/index",
      "slug": "index",
      "type": "page",
      "title": "OPERANT: does your agent make the right call?",
      "description": "OPERANT is an operating-decision calibration benchmark. Inspect historical score arithmetic and its evidence limits, then score a decision yourself.",
      "url": "https://saagarpatel.dev/operant",
      "date": "2026-07-19",
      "word_count": 1497
    },
    {
      "id": "operator-os",
      "slug": "operator-os",
      "type": "page",
      "title": "An Operator OS for One",
      "description": "An interactive explainer of a hub-and-spoke operator OS: six organs and a few AI agents coordinating through one SQLite spine. Click a part, watch the truth move.",
      "url": "https://saagarpatel.dev/operator-os",
      "date": "2026-07-18",
      "word_count": 232
    },
    {
      "id": "plumbline/index",
      "slug": "index",
      "type": "page",
      "title": "Plumbline Trace Viewer",
      "description": "A public-safe browser demo for inspecting a synthetic Plumbline trace, mapping its decision path to an offline scorecard, and reading the privacy boundary.",
      "url": "https://saagarpatel.dev/plumbline",
      "date": "2026-07-18",
      "word_count": 664
    },
    {
      "id": "predictions/index",
      "slug": "index",
      "type": "page",
      "title": "Prediction Ledger",
      "description": "A public calibration ledger of dated, falsifiable predictions, scored by Brier score as they resolve.",
      "url": "https://saagarpatel.dev/predictions",
      "date": "2026-07-19",
      "word_count": 1206
    },
    {
      "id": "projects/index",
      "slug": "index",
      "type": "page",
      "title": "Projects",
      "description": "A working index of the workshop: the six instruments that verify an agent run, the operator OS that ties everything together, and the AI tooling, local-first apps, and explainers around it.",
      "url": "https://saagarpatel.dev/projects",
      "date": "2026-07-19",
      "word_count": 2166
    },
    {
      "id": "receipts/index",
      "slug": "index",
      "type": "page",
      "title": "Receipts",
      "description": "This site grades itself. The live gate output, the trust-receipts index, the public corrections ledger, and what the gates cannot catch.",
      "url": "https://saagarpatel.dev/receipts",
      "date": "2026-07-19",
      "word_count": 2562
    },
    {
      "id": "repos/index",
      "slug": "index",
      "type": "page",
      "title": "Per-repo profiles",
      "description": "Machine-generated public profiles for the pilot repos: the same bounded, allowlisted signals the portfolio MCP serves to agents (attention-state, context-quality, freshness, receipt counts), rendered for humans.",
      "url": "https://saagarpatel.dev/repos",
      "date": "2026-07-19",
      "word_count": 806
    },
    {
      "id": "trust-receipts/index",
      "slug": "index",
      "type": "page",
      "title": "Trust Receipts",
      "description": "A public-safe receipt index showing what was checked, what passed, what failed or stayed unchecked, what was excluded, and where to inspect the proof. Not a safety certification.",
      "url": "https://saagarpatel.dev/trust-receipts",
      "date": "2026-07-19",
      "word_count": 3845
    },
    {
      "id": "trust-receipts/content-parity-receipt",
      "slug": "content-parity-receipt",
      "type": "page",
      "title": "Content parity Trust Receipt",
      "description": "Textual parity receipt for canonical HTML pages and Markdown mirrors.",
      "url": "https://saagarpatel.dev/trust-receipts/content-parity-receipt",
      "date": "2026-07-19",
      "word_count": 0
    },
    {
      "id": "trust-receipts/ghra-public-fixture-receipt",
      "slug": "ghra-public-fixture-receipt",
      "type": "page",
      "title": "PortfolioCommandCenter Trust Receipt",
      "description": "Trust receipt for PortfolioCommandCenter: Fixture-backed public demo proof is supported, with explicit limits. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/ghra-public-fixture-receipt",
      "date": "2026-07-11",
      "word_count": 879
    },
    {
      "id": "trust-receipts/mcp-live-readback-receipt",
      "slug": "mcp-live-readback-receipt",
      "type": "page",
      "title": "MCP live readback: saagarpatel-portfolio Trust Receipt",
      "description": "Trust receipt for MCP live readback: saagarpatel-portfolio: MCP live readback summarized with signature, tool-contract, and uptime/key-custody limits. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/mcp-live-readback-receipt",
      "date": "2026-07-11",
      "word_count": 355
    },
    {
      "id": "trust-receipts/mcpaudit-sample-report-receipt",
      "slug": "mcpaudit-sample-report-receipt",
      "type": "page",
      "title": "MCPAudit report: sample_audit_report Trust Receipt",
      "description": "Trust receipt for MCPAudit report: sample_audit_report: MCPAudit report summarized with policy and risk limitations. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/mcpaudit-sample-report-receipt",
      "date": "2026-07-11",
      "word_count": 306
    },
    {
      "id": "trust-receipts/operant-heuristic-baseline-receipt",
      "slug": "operant-heuristic-baseline-receipt",
      "type": "page",
      "title": "OPERANT self-serve result: heuristic-baseline Trust Receipt",
      "description": "Trust receipt for OPERANT self-serve result: heuristic-baseline: OPERANT OCS 0.394 for heuristic-baseline, with comparability limits. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/operant-heuristic-baseline-receipt",
      "date": "2026-07-11",
      "word_count": 274
    },
    {
      "id": "trust-receipts/operant-public-lab-profiles-receipt",
      "slug": "operant-public-lab-profiles-receipt",
      "type": "page",
      "title": "OPERANT public lab calibration profiles Trust Receipt",
      "description": "Trust receipt for OPERANT public lab calibration profiles: OPERANT public lab profile export summarized without flattening it into a certification. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/operant-public-lab-profiles-receipt",
      "date": "2026-07-11",
      "word_count": 192
    },
    {
      "id": "trust-receipts/portfolio-verify-checkrun-receipt",
      "slug": "portfolio-verify-checkrun-receipt",
      "type": "page",
      "title": "Repository verification: Synthetic Portfolio Repo Fixture Trust Receipt",
      "description": "Trust receipt for Repository verification: Synthetic Portfolio Repo Fixture: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/portfolio-verify-checkrun-receipt",
      "date": "2026-07-11",
      "word_count": 315
    },
    {
      "id": "trust-receipts/sarif-sample-report-receipt",
      "slug": "sarif-sample-report-receipt",
      "type": "page",
      "title": "SARIF report: sarif-sample-report Trust Receipt",
      "description": "Trust receipt for SARIF report: sarif-sample-report: SARIF summary generated without treating alerts as a certification. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/sarif-sample-report-receipt",
      "date": "2026-07-11",
      "word_count": 263
    },
    {
      "id": "trust-receipts/verify_agent-bridge-receipt",
      "slug": "verify_agent-bridge-receipt",
      "type": "page",
      "title": "Repository verification: agent-bridge Trust Receipt",
      "description": "Trust receipt for Repository verification: agent-bridge: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_agent-bridge-receipt",
      "date": "2026-07-11",
      "word_count": 305
    },
    {
      "id": "trust-receipts/verify_apireverse-receipt",
      "slug": "verify_apireverse-receipt",
      "type": "page",
      "title": "Repository verification: APIReverse Trust Receipt",
      "description": "Trust receipt for Repository verification: APIReverse: Repository verification summarized 1 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_apireverse-receipt",
      "date": "2026-07-11",
      "word_count": 296
    },
    {
      "id": "trust-receipts/verify_bridge-db-receipt",
      "slug": "verify_bridge-db-receipt",
      "type": "page",
      "title": "Repository verification: bridge-db Trust Receipt",
      "description": "Trust receipt for Repository verification: bridge-db: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_bridge-db-receipt",
      "date": "2026-07-11",
      "word_count": 305
    },
    {
      "id": "trust-receipts/verify_calibrate-receipt",
      "slug": "verify_calibrate-receipt",
      "type": "page",
      "title": "Repository verification: Calibrate Trust Receipt",
      "description": "Trust receipt for Repository verification: Calibrate: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_calibrate-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "trust-receipts/verify_cartograph-receipt",
      "slug": "verify_cartograph-receipt",
      "type": "page",
      "title": "Repository verification: Cartograph Trust Receipt",
      "description": "Trust receipt for Repository verification: Cartograph: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_cartograph-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "trust-receipts/verify_chromafield-receipt",
      "slug": "verify_chromafield-receipt",
      "type": "page",
      "title": "Repository verification: Chromafield Trust Receipt",
      "description": "Trust receipt for Repository verification: Chromafield: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_chromafield-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "trust-receipts/verify_convictionmapper-receipt",
      "slug": "verify_convictionmapper-receipt",
      "type": "page",
      "title": "Repository verification: ConvictionMapper Trust Receipt",
      "description": "Trust receipt for Repository verification: ConvictionMapper: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_convictionmapper-receipt",
      "date": "2026-07-11",
      "word_count": 312
    },
    {
      "id": "trust-receipts/verify_cost-tracker-receipt",
      "slug": "verify_cost-tracker-receipt",
      "type": "page",
      "title": "Repository verification: cost-tracker Trust Receipt",
      "description": "Trust receipt for Repository verification: cost-tracker: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_cost-tracker-receipt",
      "date": "2026-07-11",
      "word_count": 303
    },
    {
      "id": "trust-receipts/verify_cross-provider-egress-guard-receipt",
      "slug": "verify_cross-provider-egress-guard-receipt",
      "type": "page",
      "title": "Repository verification: egress-guard-oss Trust Receipt",
      "description": "Trust receipt for Repository verification: egress-guard-oss: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_cross-provider-egress-guard-receipt",
      "date": "2026-07-11",
      "word_count": 304
    },
    {
      "id": "trust-receipts/verify_ghostroutes-receipt",
      "slug": "verify_ghostroutes-receipt",
      "type": "page",
      "title": "Repository verification: GhostRoutes Trust Receipt",
      "description": "Trust receipt for Repository verification: GhostRoutes: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_ghostroutes-receipt",
      "date": "2026-07-11",
      "word_count": 311
    },
    {
      "id": "trust-receipts/verify_githubrepoauditor-receipt",
      "slug": "verify_githubrepoauditor-receipt",
      "type": "page",
      "title": "Repository verification: GithubRepoAuditor Trust Receipt",
      "description": "Trust receipt for Repository verification: GithubRepoAuditor: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_githubrepoauditor-receipt",
      "date": "2026-07-11",
      "word_count": 304
    },
    {
      "id": "trust-receipts/verify_harness-scorecard-receipt",
      "slug": "verify_harness-scorecard-receipt",
      "type": "page",
      "title": "Repository verification: harness-scorecard Trust Receipt",
      "description": "Trust receipt for Repository verification: harness-scorecard: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_harness-scorecard-receipt",
      "date": "2026-07-11",
      "word_count": 305
    },
    {
      "id": "trust-receipts/verify_howmoneymoves-receipt",
      "slug": "verify_howmoneymoves-receipt",
      "type": "page",
      "title": "Repository verification: HowMoneyMoves Trust Receipt",
      "description": "Trust receipt for Repository verification: HowMoneyMoves: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_howmoneymoves-receipt",
      "date": "2026-07-11",
      "word_count": 306
    },
    {
      "id": "trust-receipts/verify_ink-receipt",
      "slug": "verify_ink-receipt",
      "type": "page",
      "title": "Repository verification: ink Trust Receipt",
      "description": "Trust receipt for Repository verification: ink: Repository verification summarized 1 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_ink-receipt",
      "date": "2026-07-11",
      "word_count": 296
    },
    {
      "id": "trust-receipts/verify_itservicehealth-receipt",
      "slug": "verify_itservicehealth-receipt",
      "type": "page",
      "title": "Repository verification: ITServiceHealth Trust Receipt",
      "description": "Trust receipt for Repository verification: ITServiceHealth: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_itservicehealth-receipt",
      "date": "2026-07-11",
      "word_count": 310
    },
    {
      "id": "trust-receipts/verify_liminal-receipt",
      "slug": "verify_liminal-receipt",
      "type": "page",
      "title": "Repository verification: Liminal Trust Receipt",
      "description": "Trust receipt for Repository verification: Liminal: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_liminal-receipt",
      "date": "2026-07-11",
      "word_count": 311
    },
    {
      "id": "trust-receipts/verify_mcp-trust-receipt",
      "slug": "verify_mcp-trust-receipt",
      "type": "page",
      "title": "Repository verification: mcp-trust Trust Receipt",
      "description": "Trust receipt for Repository verification: mcp-trust: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_mcp-trust-receipt",
      "date": "2026-07-11",
      "word_count": 304
    },
    {
      "id": "trust-receipts/verify_mcpaudit-receipt",
      "slug": "verify_mcpaudit-receipt",
      "type": "page",
      "title": "Repository verification: MCPAudit Trust Receipt",
      "description": "Trust receipt for Repository verification: MCPAudit: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_mcpaudit-receipt",
      "date": "2026-07-11",
      "word_count": 304
    },
    {
      "id": "trust-receipts/verify_mcpforge-receipt",
      "slug": "verify_mcpforge-receipt",
      "type": "page",
      "title": "Repository verification: mcpforge Trust Receipt",
      "description": "Trust receipt for Repository verification: mcpforge: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_mcpforge-receipt",
      "date": "2026-07-11",
      "word_count": 304
    },
    {
      "id": "trust-receipts/verify_modelcolosseum-receipt",
      "slug": "verify_modelcolosseum-receipt",
      "type": "page",
      "title": "Repository verification: ModelColosseum Trust Receipt",
      "description": "Trust receipt for Repository verification: ModelColosseum: Repository verification summarized 3 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_modelcolosseum-receipt",
      "date": "2026-07-11",
      "word_count": 299
    },
    {
      "id": "trust-receipts/verify_networkdecoder-receipt",
      "slug": "verify_networkdecoder-receipt",
      "type": "page",
      "title": "Repository verification: NetworkDecoder Trust Receipt",
      "description": "Trust receipt for Repository verification: NetworkDecoder: Repository verification summarized 3 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_networkdecoder-receipt",
      "date": "2026-07-11",
      "word_count": 299
    },
    {
      "id": "trust-receipts/verify_neuralnetwork-receipt",
      "slug": "verify_neuralnetwork-receipt",
      "type": "page",
      "title": "Repository verification: NeuralNetwork Trust Receipt",
      "description": "Trust receipt for Repository verification: NeuralNetwork: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_neuralnetwork-receipt",
      "date": "2026-07-11",
      "word_count": 307
    },
    {
      "id": "trust-receipts/verify_nocturne-receipt",
      "slug": "verify_nocturne-receipt",
      "type": "page",
      "title": "Repository verification: Nocturne Trust Receipt",
      "description": "Trust receipt for Repository verification: Nocturne: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_nocturne-receipt",
      "date": "2026-07-11",
      "word_count": 311
    },
    {
      "id": "trust-receipts/verify_notification-hub-receipt",
      "slug": "verify_notification-hub-receipt",
      "type": "page",
      "title": "Repository verification: notification-hub Trust Receipt",
      "description": "Trust receipt for Repository verification: notification-hub: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_notification-hub-receipt",
      "date": "2026-07-11",
      "word_count": 305
    },
    {
      "id": "trust-receipts/verify_notion-operating-system-receipt",
      "slug": "verify_notion-operating-system-receipt",
      "type": "page",
      "title": "Repository verification: Notion Trust Receipt",
      "description": "Trust receipt for Repository verification: Notion: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_notion-operating-system-receipt",
      "date": "2026-07-11",
      "word_count": 308
    },
    {
      "id": "trust-receipts/verify_operant-receipt",
      "slug": "verify_operant-receipt",
      "type": "page",
      "title": "Repository verification: operant-public Trust Receipt",
      "description": "Trust receipt for Repository verification: operant-public: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_operant-receipt",
      "date": "2026-07-11",
      "word_count": 303
    },
    {
      "id": "trust-receipts/verify_orbitmechanics-receipt",
      "slug": "verify_orbitmechanics-receipt",
      "type": "page",
      "title": "Repository verification: OrbitMechanic Trust Receipt",
      "description": "Trust receipt for Repository verification: OrbitMechanic: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_orbitmechanics-receipt",
      "date": "2026-07-11",
      "word_count": 306
    },
    {
      "id": "trust-receipts/verify_portfolio-health-receipt",
      "slug": "verify_portfolio-health-receipt",
      "type": "page",
      "title": "Repository verification: portfolio-health Trust Receipt",
      "description": "Trust receipt for Repository verification: portfolio-health: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_portfolio-health-receipt",
      "date": "2026-07-11",
      "word_count": 305
    },
    {
      "id": "trust-receipts/verify_portfolio-index-receipt",
      "slug": "verify_portfolio-index-receipt",
      "type": "page",
      "title": "Repository verification: portfolio-index Trust Receipt",
      "description": "Trust receipt for Repository verification: portfolio-index: Repository verification summarized 6 passing check(s) against truth schema 0.8.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_portfolio-index-receipt",
      "date": "2026-07-11",
      "word_count": 307
    },
    {
      "id": "trust-receipts/verify_portfolio-mcp-receipt",
      "slug": "verify_portfolio-mcp-receipt",
      "type": "page",
      "title": "Repository verification: portfolio-mcp Trust Receipt",
      "description": "Trust receipt for Repository verification: portfolio-mcp: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_portfolio-mcp-receipt",
      "date": "2026-07-11",
      "word_count": 310
    },
    {
      "id": "trust-receipts/verify_pressfield-receipt",
      "slug": "verify_pressfield-receipt",
      "type": "page",
      "title": "Repository verification: Pressfield Trust Receipt",
      "description": "Trust receipt for Repository verification: Pressfield: Repository verification summarized 6 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_pressfield-receipt",
      "date": "2026-07-11",
      "word_count": 314
    },
    {
      "id": "trust-receipts/verify_proof-pr-receipt",
      "slug": "verify_proof-pr-receipt",
      "type": "page",
      "title": "Repository verification: proof-pr Trust Receipt",
      "description": "Trust receipt for Repository verification: proof-pr: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_proof-pr-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "trust-receipts/verify_redact-receipt",
      "slug": "verify_redact-receipt",
      "type": "page",
      "title": "Repository verification: Redact Trust Receipt",
      "description": "Trust receipt for Repository verification: Redact: Repository verification summarized 4 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_redact-receipt",
      "date": "2026-07-11",
      "word_count": 311
    },
    {
      "id": "trust-receipts/verify_screenshottodataselect-receipt",
      "slug": "verify_screenshottodataselect-receipt",
      "type": "page",
      "title": "Repository verification: ScreenshottoDataSelect Trust Receipt",
      "description": "Trust receipt for Repository verification: ScreenshottoDataSelect: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_screenshottodataselect-receipt",
      "date": "2026-07-11",
      "word_count": 312
    },
    {
      "id": "trust-receipts/verify_signal-noise-receipt",
      "slug": "verify_signal-noise-receipt",
      "type": "page",
      "title": "Repository verification: signal-noise Trust Receipt",
      "description": "Trust receipt for Repository verification: signal-noise: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_signal-noise-receipt",
      "date": "2026-07-11",
      "word_count": 307
    },
    {
      "id": "trust-receipts/verify_sovereign-receipt",
      "slug": "verify_sovereign-receipt",
      "type": "page",
      "title": "Repository verification: sovereign Trust Receipt",
      "description": "Trust receipt for Repository verification: sovereign: Repository verification summarized 5 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_sovereign-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "trust-receipts/verify_thought-trails-receipt",
      "slug": "verify_thought-trails-receipt",
      "type": "page",
      "title": "Repository verification: thought-trails Trust Receipt",
      "description": "Trust receipt for Repository verification: thought-trails: Repository verification summarized 3 passing check(s) against truth schema 0.7.0 with visible gaps. Includes checks, evidence, exclusions, freshness, and limitations.",
      "url": "https://saagarpatel.dev/trust-receipts/verify_thought-trails-receipt",
      "date": "2026-07-11",
      "word_count": 309
    },
    {
      "id": "verdict-machine/index",
      "slug": "index",
      "type": "page",
      "title": "The Verdict Machine: how a repo health verdict is actually computed",
      "description": "An interactive teardown of GithubRepoAuditor's verdict cascade. Scrub a synthetic repo's signals and watch the real decision functions compute its attention lane and risk tier.",
      "url": "https://saagarpatel.dev/verdict-machine",
      "date": "2026-07-19",
      "word_count": 796
    },
    {
      "id": "workshop/index",
      "slug": "index",
      "type": "page",
      "title": "Workshop",
      "description": "The other pole: native Swift and Metal work, made because it was worth making. Local build captures, no App Store claim.",
      "url": "https://saagarpatel.dev/workshop",
      "date": "2026-07-18",
      "word_count": 432
    },
    {
      "id": "writing/index",
      "slug": "index",
      "type": "page",
      "title": "Writing",
      "description": "Essays on verification, agents, and what breaks when you trust a machine's account of itself: the claim, the confessions, and in public.",
      "url": "https://saagarpatel.dev/writing",
      "date": "2026-07-19",
      "word_count": 1423,
      "status": "verified"
    }
  ]
}
