<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://matthewgribben.com/</loc>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/opwnclaw-copilot</loc>
<lastmod>2026-04-01T07:10:04.769Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/why-planner-worker-systems-usually-beat-agent-swarms</loc>
<lastmod>2026-03-26T10:52:18.942Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/stop-buying-bigger-context-windows</loc>
<lastmod>2026-03-26T10:52:18.762Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/memory-for-agents-systems-problem-not-context-window-problem</loc>
<lastmod>2026-03-28T17:00:49.028Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/regression-testing-for-identity-policy</loc>
<lastmod>2026-04-01T06:52:35.964Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/static-review-is-not-enough</loc>
<lastmod>2026-03-28T11:43:47.069Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/why-conditional-access-feels-unpredictable</loc>
<lastmod>2026-03-28T11:37:30.682Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/atomic-actions-ai-agents</loc>
<lastmod>2026-03-25T05:59:27.307Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/conditional-access-is-not-a-firewall</loc>
<lastmod>2026-03-28T11:37:47.511Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/from-trajectories-to-memories</loc>
<lastmod>2026-03-27T11:00:26.086Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/zero-knowledge-proofs-production</loc>
<lastmod>2026-03-25T05:59:27.386Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/incremental-knowledge-graphs</loc>
<lastmod>2026-03-25T05:59:27.443Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/distributed-systems-multi-agent</loc>
<lastmod>2026-03-25T05:59:27.541Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/security-first-ai-architecture</loc>
<lastmod>2026-03-25T05:59:27.594Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/foreign-scam-calls-signalling-problem</loc>
<lastmod>2026-03-25T06:57:45.904Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/why-telecom-fraud-keeps-winning-and-why-the-network-has-to-be-replaced</loc>
<lastmod>2026-03-25T06:57:45.635Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://matthewgribben.com/blog/sony-discord-real-asset-gaming-platforms</loc>
<lastmod>2026-03-25T06:57:45.417Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
