<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://ericmacdougall.com/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/feed/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/about/</loc></url>
  <url><loc>https://ericmacdougall.com/experiments/agent-harness/</loc></url>
  <url><loc>https://ericmacdougall.com/journal/agents-need-an-independent-exam/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/model-consensus-is-not-engineering-evidence/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/where-model-control-actually-lives/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-gpu-number-is-not-the-compute-product/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/ai-in-industrial-control-needs-physical-evidence/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/your-agentic-workflow-depends-on-other-peoples-rules/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/hire-engineers-for-the-decisions/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-release-gate-is-the-product/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/what-computer-use-agents-can-prove/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-attention-drift-bubble/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/where-jev-and-model-control-actually-live/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-agent-missed-the-one-fact-that-mattered/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-agent-timed-out-after-the-change-went-through/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-demo-worked-the-engineering-problem-began-afterward/</loc><lastmod>2026-09-25</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/your-hook-ran-did-the-forbidden-action-stay-blocked/</loc><lastmod>2026-09-28</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/name-the-layer-before-you-merge-the-stack/</loc><lastmod>2026-09-28</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/delivery-you-can-recover/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/guards-that-say-which-way-they-lean/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/escalation-rules-and-the-bill/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-spec-the-reviewers-and-the-evidence-ledger/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/why-agents-cannot-grade-their-own-work/</loc><lastmod>2026-11-07</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/late-replies-must-match-the-current-identity-before-they-write/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-path-contract-has-more-readers-than-the-review-names/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-request-ledger-has-to-survive-its-own-extractor/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/parallel-branches-need-one-owner-for-the-migration-index/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/nothing-that-runs-should-live-where-cleanup-can-reach-it/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/when-two-hooks-disagree-write-the-precedence-order-down/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-agents-used-8-percent-of-the-host-the-polling-used-more/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/check-that-each-git-worktree-resolves-to-itself/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-fail-closed-allow-list-can-silently-disable-your-failover/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/fourteen-control-files-became-one-release-command/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/measure-the-split-before-you-redesign-the-agent-loop/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/tests-that-spawn-processes-need-a-group-a-cap-and-a-stop-order/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/landed-is-not-done-define-done-before-agents-report-it/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-rate-is-a-belief-with-a-width/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/counting-honestly-ranges-zero-failures-paired-changes/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/your-answer-key-is-the-product/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/pick-the-metric-by-what-a-mistake-does-next/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/counts-out-of-a-thousand-what-a-flag-really-means/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-99-percent-approval-rate-is-not-an-accuracy-number/</loc><lastmod>2026-11-05</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/let-a-business-operator-request-a-site-change-without-handing-ai-a/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-offline-test-that-spent-the-production-quota/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-192-core-server-was-still-waiting-on-one-kernel-worker/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/let-an-agent-ask-for-a-credential-without-ever-seeing-it/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/shared-git-state-is-the-fleet-coordination-bug/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/restart-is-where-a-deletion-tool-can-lose-the-only-backup/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/when-an-agent-writes-a-one-off-script-it-skips-your-safety-rails/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/what-the-subscription-meter-actually-charged-for-tokens/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-five-minute-cache-cliff-that-made-waiting-subagents-expensive/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/one-per-session-line-broke-the-shared-prompt-cache/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-merge-gate-must-prove-the-tests-ran/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-merge-needs-proof-of-no-change/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/key-rotation-has-two-readers-and-one-writing-authority/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/retire-worktrees-by-consumer-lifetime-not-terminal-task-status/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/design-the-evidence-review-screen-before-automating-the-decision/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-read-only-observer-still-needs-backpressure/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-fleet-pause-must-reach-the-process-tree/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/the-dependency-cache-belongs-before-the-credential-boundary/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/measure-context-costs-before-building-an-agent-steward/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-safe-ai-widget-is-a-small-capability-system/</loc><lastmod>2026-10-22</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/make-model-failover-preserve-the-agent-contract/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/design-recovery-semantics-into-the-safety-state-machine/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/decompose-work-around-contracts-and-integration-costs/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/personal-agents-need-private-authority-recoverable-work-and-measured/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/trace-agent-decisions-without-turning-telemetry-into-a-private-content/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/port-agent-controls-across-runtimes-without-assuming-hook-parity/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/build-the-test-harness-around-cross-system-invariants/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/separate-probabilistic-development-from-deterministic-shipping/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/regional-cells-need-one-home-for-mutable-authority/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/agent-fleets-need-explicit-ownership-transfers-before-more-workers/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/parallel-ai-checks-need-a-release-contract-before-they-need-more-workers/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/memory-success-has-to-confirm-the-requester-address-and-receipt/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-retrieval-system-needs-to-know-who-will-read-the-answer/</loc><lastmod>2026-10-20</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/design-agent-supervision-around-delivery-intervention-and-bounded/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/budget-agent-work-before-dispatch-then-reconcile-what-actually-happened/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/route-ai-work-by-the-cost-of-accepted-outcomes/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/turn-engineering-standards-into-agent-execution-contracts/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/recheck-current-policy-authority-before-protected-bytes-leave/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/unknown-is-an-outcome-designing-agent-systems-around-lost-replies/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/durable-agents-need-agreement-between-delivery-ownership-and-effects/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/where-jev-earned-a-decision-and-where-we-replaced-it/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/authorized-recall-the-retrieval-budget-has-to-belong-to-the-caller/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-browser-is-an-outbound-capability-how-i-separate-destination-data-and/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/fourteen-cuts-through-a-streaming-security-boundary/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/we-measured-local-safety-models-the-hard-part-was-deciding-what-works/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/a-semantic-firewall-needs-an-enforcement-architecture/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/build-the-tool-broker-around-the-authority-that-survives-alternate-paths/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/make-human-approval-survive-changes-in-payload-and-context/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/give-each-agent-turn-its-own-authority/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/journal/design-the-authority-boundary-between-a-chatbot-an-assistant-and-an/</loc><lastmod>2026-10-19</lastmod></url>
  <url><loc>https://ericmacdougall.com/podcast/</loc></url>
<url><loc>https://ericmacdougall.com/work-together/</loc></url>
</urlset>
