<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://academy.memberpress.ai/courses/agent-discoverable-surfaces/l1/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/7NO7X7xx9xA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Rate-limit OAuth /register for AI clients, not human OAuth</video:title>
      <video:description>The server logs say &quot;rate limit working as designed.&quot; The user&apos;s connector UI says &quot;couldn&apos;t connect.&quot; Nothing in between names the cause. The rate limiter on your /register endpoint was tuned for one developer testing one app — not for thousands of users sharing one AI client&apos;s egress IP.</video:description>
      <video:player_loc>https://www.youtube.com/embed/7NO7X7xx9xA</video:player_loc>
      <video:duration>165</video:duration>
      <video:publication_date>2026-10-14T00:08:13-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/api-fundamentals/l1/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ZYPKY1IzVRw/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Get an API key, make one request</video:title>
      <video:description>Documentation tells you what a request looks like. Running one tells you what it feels like — the latency, the response shape, what stop_reason actually means when you read it live.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ZYPKY1IzVRw</video:player_loc>
      <video:duration>156</video:duration>
      <video:publication_date>2026-10-14T00:09:01-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-agents/l1/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/72AF93K26mc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>What a sub-agent is and isn&apos;t</video:title>
      <video:description>You keep hitting a context-length ceiling. The parent agent has accumulated forty thousand tokens of file reads, intermediate reasoning, and tool results, and now the task it is holding is simply too large to finish cleanly. The instinct is to prompt more carefully, or to ask for a longer context…</video:description>
      <video:player_loc>https://www.youtube.com/embed/72AF93K26mc</video:player_loc>
      <video:duration>153</video:duration>
      <video:publication_date>2026-10-14T00:08:58-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l1/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ZmPHdFrdENc/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Install Claude Code</video:title>
      <video:description>Most developers install Claude Code, open it in their largest repo, and ask it to &quot;clean things up.&quot; The session produces a 400-line diff they can&apos;t evaluate and they close the tab. The install is not the hard part. Knowing what to look at while Claude runs is.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ZmPHdFrdENc</video:player_loc>
      <video:duration>153</video:duration>
      <video:publication_date>2026-10-13T22:35:40-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l2/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/MKwG9op4kPg/hqdefault.jpg</video:thumbnail_loc>
      <video:title>First task — let it edit a file</video:title>
      <video:description>The instinct is to start with something impressive — &quot;refactor the auth module,&quot; &quot;optimize the query layer.&quot; Resist that. The first task is not about output. It is about building a read-the-diff habit before you have a diff you care about.</video:description>
      <video:player_loc>https://www.youtube.com/embed/MKwG9op4kPg</video:player_loc>
      <video:duration>157</video:duration>
      <video:publication_date>2026-10-13T22:36:47-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l3/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/ouKl_8cw6U4/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Reading the diff</video:title>
      <video:description>Claude&apos;s summary and the diff are not the same document. The summary describes what Claude intended. The diff shows what Claude actually wrote. In a codebase where things ship, you need the diff.</video:description>
      <video:player_loc>https://www.youtube.com/embed/ouKl_8cw6U4</video:player_loc>
      <video:duration>152</video:duration>
      <video:publication_date>2026-10-13T22:37:41-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l4/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/TOsuCby2TfU/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Asking for a refactor</video:title>
      <video:description>&quot;Make this code better&quot; is not a refactor brief. It is an invitation for Claude to guess what you value — and Claude will guess confidently, wrong, and at scale.</video:description>
      <video:player_loc>https://www.youtube.com/embed/TOsuCby2TfU</video:player_loc>
      <video:duration>150</video:duration>
      <video:publication_date>2026-10-13T22:38:33-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l5/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/B-7PEDwiF74/hqdefault.jpg</video:thumbnail_loc>
      <video:title>When to interrupt, when to let it run</video:title>
      <video:description>Claude Code can run for a long time on a complex task. The problem is not duration — a well-scoped task should run until it finishes. The problem is that it can also run for a long time on a task that has gone wrong, and the two situations look identical from the outside.</video:description>
      <video:player_loc>https://www.youtube.com/embed/B-7PEDwiF74</video:player_loc>
      <video:duration>147</video:duration>
      <video:publication_date>2026-10-13T22:39:39-07:00</video:publication_date>
    </video:video>
  </url>
  <url>
    <loc>https://academy.memberpress.ai/courses/code-intro/l6/</loc>
    <video:video>
      <video:thumbnail_loc>https://i.ytimg.com/vi/EHUU23LEknA/hqdefault.jpg</video:thumbnail_loc>
      <video:title>Tests as the safety rail</video:title>
      <video:description>The thing that makes Claude Code dangerous on a codebase without tests is not that Claude writes bad code. It is that you have no way to know whether the code is bad until something breaks in production. Tests give you that knowledge immediately. They do not make Claude better — they make Claude&apos;s…</video:description>
      <video:player_loc>https://www.youtube.com/embed/EHUU23LEknA</video:player_loc>
      <video:duration>147</video:duration>
      <video:publication_date>2026-10-13T22:40:17-07:00</video:publication_date>
    </video:video>
  </url>
</urlset>
