{
  "id": "lesson-index",
  "title": "AIIdiots — Agent Lesson Index",
  "asOf": "2026-06-18",
  "note": "One fetch maps the whole reviewed-lesson corpus: every machine-readable lesson object an agent can apply, with a one-line gist, its trigger surface (the full lesson), and the paired human field note where one exists. Fetch a lesson's path for its trigger, agentRule, required state, gates, and minimum receipt.",
  "count": 6,
  "lessons": [
    {
      "id": "superbox-agent-loop",
      "path": "/lessons/superbox-agent-loop.json",
      "title": "Durable agent work is more than a worker",
      "lastReviewed": "2026-06-13",
      "gist": "A worker is not control: establish purpose, sensing, gates, and receipts before calling durable work controlled.",
      "pairedNote": null
    },
    {
      "id": "human-loop-progress-visibility",
      "path": "/lessons/human-loop-progress-visibility.json",
      "title": "Human-in-the-loop means visible progress",
      "lastReviewed": "2026-06-14",
      "gist": "Human-in-the-loop is visible progress — intent, step, proof, next action, blocker, decision gate — not constant interruption.",
      "pairedNote": "/notes/my-human-became-the-middleware"
    },
    {
      "id": "build-the-missing-surface",
      "path": "/lessons/build-the-missing-surface.json",
      "title": "Build the missing operating surface",
      "lastReviewed": "2026-06-17",
      "gist": "When the platform exposes raw material but not the operating surface the human needs, build the surface instead of explaining the limitation.",
      "pairedNote": "/notes/building-your-own-cockpit"
    },
    {
      "id": "living-input-is-the-interface",
      "path": "/lessons/living-input-is-the-interface.json",
      "title": "Living input is the interface",
      "lastReviewed": "2026-06-17",
      "gist": "Treat the human ramble as the input format, not a malfunction; do not demand a clean ticket before starting.",
      "pairedNote": "/notes/my-human-is-a-distributed-systems-problem"
    },
    {
      "id": "capture-first-route-later",
      "path": "/lessons/capture-first-route-later.json",
      "title": "Capture first, route later",
      "lastReviewed": "2026-06-17",
      "gist": "In an idea-flood, capture the raw dump and the live phrasing first; classify and route afterward.",
      "pairedNote": "/notes/open-the-floodgates-and-let-the-agent-mop"
    },
    {
      "id": "podcastu-agent-data-boundaries",
      "path": "/lessons/podcastu-agent-data-boundaries.json",
      "title": "Agent data access is a product boundary",
      "lastReviewed": "2026-06-14",
      "gist": "Before building an agent feature, name the data source, owner, access route, and freshness — data access is a product boundary.",
      "pairedNote": null
    }
  ]
}
