{"id":"ind-np-food-pantry-volunteer-shifts","audience":"nonprofit","category":"planning","technique":"constraints","title":"Fill food pantry volunteer shifts around everyone's limits","free":false,"task":"You're scheduling Saturday's food pantry volunteers. Write exactly 3 numbered lines, one per shift in time order, each in the form \"Time - role - names\", plain text, under 60 words. Every role needs exactly 2 people, nobody works a shift they said they can't, the forklift-certified rule applies to the unloading shift, and the volunteer who canceled is left out. Write a prompt that gets you exactly that.","materialLabel":"Volunteer availability (attached to your prompt automatically)","material":"SATURDAY NOV 15 - Riverside Community Pantry (fictional)\nShifts:\n- 8-10 AM: Truck unloading (needs 2; at least 1 must be forklift-certified)\n- 10 AM-12 PM: Sorting (needs 2)\n- 12-2 PM: Distribution (needs 2; at least 1 must speak Spanish)\n\nVolunteers who signed up:\n- Hal (forklift-certified) - mornings only, until 11\n- Bea - any time\n- Omar (speaks Spanish) - after 11 AM only\n- Cass - 8 AM to 12 PM\n- Luz (speaks Spanish) - any time\n- Dmitri (forklift-certified) - any time\n- Rena - 10 AM to 2 PM\n\nUpdates:\n- Fri 6 PM, Dmitri: \"Sorry, sick, can't make it Saturday.\"\n- Each person works only one shift.\n\nCoordinator note: Rena asked to be on distribution if possible. Donuts arrive at 9.","rules":[{"type":"numberedItems","count":3},{"type":"maxWords","max":60},{"type":"plainText"}],"mistakes":[{"title":"No fixed shape","why":"The AI builds a table, adds notes on each person, and lists backups.","fix":"Be exact: \"Exactly 3 numbered lines: Time - role - names.\"","checks":["numberedItems","plainText","r2"]},{"title":"Trusting the AI to count words","why":"AI is bad at counting. Ask for \"under 60 words\" and it often lands well over.","fix":"Cap each part instead: \"each line under 14 words.\"","checks":["maxWords"]},{"title":"Ignoring a rule","why":"The AI puts Omar on unloading or forgets the forklift requirement.","fix":"Add: \"Check each person's hours and the forklift and Spanish rules.\"","checks":["r0"]},{"title":"Using the canceled volunteer","why":"Dmitri's cancellation is at the bottom, and the AI schedules him anyway.","fix":"Add: \"Dmitri canceled. Each person works one shift, 2 per shift.\"","checks":["r1"]}],"promptHints":[{"label":"Sets the number of shifts","patterns":["\\b(3|three)\\b.{0,20}(lines|shifts)"]},{"label":"Checks availability","patterns":["availab","hours","can'?t work","only when"]},{"label":"Leaves out the cancellation","patterns":["dmitri","cancel","sick"]},{"label":"Applies role rules","patterns":["forklift","spanish","certified"]},{"label":"Sets a word limit","patterns":["\\d+\\s*words","word (limit|count)"]}],"hint":"Scheduling breaks when one rule gets missed. List every rule for the AI, including the cancellation, and the exact line shape.","rubricLabels":["Unloading (8-10 AM) is Hal plus one person available then (Bea or Cass), sorting (10 AM-12 PM) has 2 people available then, and distribution (12-2 PM) includes Omar or Luz","Dmitri appears nowhere, each named volunteer appears in only one shift, and every shift has exactly 2 names","Lines are in time order and each follows 'Time - role - names', with nothing else (no notes, unassigned list or explanations)"]}