<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://ulrich.dev/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/ai-security/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/ai-productivity/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/ai-shipping/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/topics/prompt-injection/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/topics/agents/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/topics/rag/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/topics/audit-logs/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/topics/threat-modeling/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/work/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/about/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/contact/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/newsletter/sample/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/mentions-legales/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/confidentialite/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/cookies/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/cgu/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/cgv/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/newsletter/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/legal/charte-ia/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/audit-log-underrated-ai-safety-feature/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/charging-for-local-software/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/fallbacks-timeouts-and-the-art-of-degrading-gracefully/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/how-i-keep-an-ai-pair-from-rewriting-half-the-repo/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/least-privilege-for-language-models/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/memory-files-giving-your-agent-a-working-short-term-brain/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/rag-pipeline-confused-deputy/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/reading-other-peoples-threat-models/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/secrets-tools-and-the-agent-that-read-your-env-file/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/shipped-ai-feature-friday-liability-monday/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/small-automations-that-compound-over-a-quarter/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/stop-pasting-context-a-better-ide-workflow/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/streaming-responses-are-a-ux-decision-not-a-transport-one/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/the-agent-loop-that-replaced-my-saturday/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/the-model-upgrade-that-quietly-broke-production/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/the-prompt-is-the-new-perimeter/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/what-it-actually-costs-to-run-an-llm-feature-for-a-year/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/what-owasp-misses-about-llm-agents/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/writing-skills-your-coding-agent-will-actually-use/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/writing/your-retry-logic-is-lying-to-you/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/prompt-injection-tester/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/llm-threat-model-generator/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/ai-feature-risk-scorer/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/prompt-hardener/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/secret-pii-scanner/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/ai-crawler-checker/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/security-review-skill/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/threat-model-companion/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/prompt-injection-test-pack/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/n8n-ai-incident-triage/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/secure-llm-agent-starter/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/securing-an-llm-feature/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/your-first-ai-incident/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
  <url>
    <loc>https://ulrich.dev/tools/threat-modeling-for-agents/</loc>
    <lastmod>2026-05-31</lastmod>
  </url>
</urlset>
