L39 FINAL PROJECT - BRIEF A
Volunteer hours for the monthly board report
AI use: AI allowed — keep a record. Your specification, your acceptance
criteria and your evaluation set are your own work, written before you
ask an assistant for any code.

SITUATION
Northgate Food Pantry (invented) runs on volunteers. Each volunteer signs
in and out on a tablet by the door. The tablet saves one row per shift to
a file, L39_A_signins.csv, with these columns:

    volunteer, date, start, end, area

Dates are written 2026-10-03. Times are 24-hour clock, like 08:30 or
22:00. The warehouse restock team works evenings and sometimes late into
the night.

The pantry's insurance requires that nobody volunteers more than 40 hours
in a calendar month. Every month the coordinator, Priya, totals the
hours by hand for the board report and checks who is over 40. It takes
her most of an afternoon, and she is not confident in her totals.

WHAT PRIYA WANTS
A small program she can run each month on the tablet's file that:
1. gives each volunteer's total hours for a month she names, and
2. lists everyone over the 40-hour limit for that month.

She says: "If someone is over the limit and the report misses them, our
insurance is at risk. If the report says someone is over and they are
not, I have an awkward conversation for nothing. Either way I need to
trust the numbers, and I need to know about any row the program could not
make sense of."

The October 2026 file is supplied. Treat it as real data: look at it
before you specify anything.

WHAT YOU PRODUCE (details in the L39 lesson)
1. A specification with acceptance criteria, checked against the
   self-approval checklist before you build.
2. An implementation (Python, standard library only).
3. An evaluation set: test cases written from your criteria before you
   read any generated code, including cases you expect to fail.
4. A verification record: what you ran, what failed, what you changed,
   and what you checked by hand against the file.
5. An AI-use record.
