<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://canonical.agency/</loc>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://canonical.agency/capabilities</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/about</loc>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://canonical.agency/procurement</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/architecture-review</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/spend-diagnostic</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/essays</loc>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://canonical.agency/spec/tms</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/spec/qps</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://canonical.agency/essays/what-four-hours-of-human-ai-engineering-actually-ships</loc>
<lastmod>2026-05-30T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/who-cares-if-machines-understand</loc>
<lastmod>2026-05-16T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/8b-hts-classifier-h100-coffee-shop</loc>
<lastmod>2026-05-09T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/how-memory-actually-works-on-databricks</loc>
<lastmod>2026-05-02T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/storytelling-through-feature-engineering</loc>
<lastmod>2026-04-25T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/data-as-a-public-utility</loc>
<lastmod>2026-04-18T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/the-hidden-gaps-in-ai-deep-research</loc>
<lastmod>2026-04-11T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/shazam-and-the-art-of-classification</loc>
<lastmod>2026-04-04T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/the-backward-index</loc>
<lastmod>2026-03-28T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/the-architecture-that-ate-ai</loc>
<lastmod>2026-03-21T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/quantization-from-max-planck-to-faster-vector-search</loc>
<lastmod>2026-03-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/semantic-mesh-why-runtimes-arent-enough</loc>
<lastmod>2026-02-28T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/missing-runtime-knowledge-work</loc>
<lastmod>2026-02-21T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/query-provenance-store</loc>
<lastmod>2026-01-17T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://canonical.agency/essays/tabular-manifolds</loc>
<lastmod>2026-01-01T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
