Lab: Give the notes server its tool contract
Module 3 · Lab · About 60 minutes · Needs: lessons 1 to 4 of this module, the Module 1 lab, and a free Groq or Gemini key for the last cell of Step 7 (course-guide/02)
What you are building
It is Monday 14 September 2026, the start of week 2. In four lessons you designed search_notes and create_note properly: names that survive a host's prefix, honest annotations, bounded arguments, structured results, errors the model can read, and a tool list small enough to send on every call. All of it lives in lesson folders. This lab moves Lesson 1's server into the repository as examples/m03_server.py, writes the tool contract, a test file that fails the moment any of those promises breaks, and adds examples/m03_lab.py, which measures which tool gets chosen for course-guide/06's 20 labelled questions. You finish by committing all three files.