Topic 5 Lab: describe the job, let the agent do it
Each challenge would take an hour or more by hand: hundreds of rows, a dozen files, a page for every person. With Claude Code it takes minutes, if you describe the job well. Check every result against its target. When it’s off, find the rule your description missed, add it, and run it again.
How this lab works
- Use Claude Code on the course plan every student has. No other AI tools.
- Practice: nothing is graded and nothing is submitted. Have your answer ready to say out loud before you open a “Check”.
- Excel means a spreadsheet (.xlsx, or .csv, which Excel opens). Word means a .docx file. If Claude Code asks to install a free package to make one, let it.
- The data is made up. Never use real data: no gradebooks, customer lists, health or work files. Never change the original files.
Claude Code: one new folder for the lab · read any skill before you install it · nothing that needs a new paid key or account.
0 · Set up
Get the data pack, start Claude Code inside it, and check it can make a Word file. 7 min
- Download the data pack (zip) and unzip it (Mac: double-click it; Windows: right-click → Extract All). You get a folder named
week-05-lab-data. - Open a terminal in that folder (Mac:
cd ~/Downloads/week-05-lab-data; Windows PowerShell:cd $HOME\Downloads\week-05-lab-data) and startclaude. Unzipped it somewhere else?cdinto that folder instead. - Check that Word files work: ask Claude Code “Make hello.docx with one line in it.” If it asks to install a free package, let it. If it still fails, raise your hand now, not at Challenge 3.
Inside the folder, all made up:
events.xlsx: an Excel workbook. The Events sheet has the 12 events (date, start time, hours, room); the Budget sheet has each event’s budget.registrations.csv: 390 sign-ups from the club’s online formsignins/: 12 sign-in sheets, one per event, typed at the doorreceipts/: 18 receipts and invoices the club paidcertificate-template.docx: the Word template for Challenge 3’s certificatespresident-request.docx: the club president’s memo for Challenge 4
Look at the data first
Before anyone prompts: what in these rows would trip up a vague description? Say it out loud; your instructor writes it on the board. 7 min
Open the data page: every file in the zip, whole, as a spreadsheet →
A taste of each file:
events.xlsx · the Events sheet, the first 4 of 12 events
| Event | Date | Start | Hours | Room |
|---|---|---|---|---|
| Robotics Night | 2026-03-05 | 18:00 | 2 | Edison Hall 104 |
| Art Jam | 2026-03-07 | 14:00 | 3 | Art Studio B |
| Career Panel | 2026-03-12 | 17:30 | 1.5 | Bey Hall 210 |
| Food Drive | 2026-03-14 | 10:00 | 3 | Student Center Lobby |
Sheets:EventsBudget
registrations.csv · the first 5 of 390 rows
| Registration ID | Name | Event | Event Date | Ticket | Status | |
|---|---|---|---|---|---|---|
| 1147 | Alex Tanaka | alex.tanaka@example.edu | Parent Info Night | March 25, 2026 | 0 | Confirmed |
| 1324 | Ethan Moreau | ethan.moreau@example.edu | ai poster studio | 2026-03-21 | 10 | Confirmed |
| 1236 | Nia Brooks | nia.brooks@example.edu | Robotics Night | March 5, 2026 | 12 | confirmed |
| 1124 | Ava Rivera | ava.rivera@example.edu | Food Drive | 2026-03-14 | free | Confirmed |
| 1238 | Nia Brooks | nia.brooks@example.edu | Spring Bake Sale | April 4, 2026 | 0 | Confirmed |
signins/career-panel.csv · the first 5 rows of one of 12 sign-in sheets
| Name | Time | |
|---|---|---|
| Kowalski, Grace | 17:30 | |
| Ines Moreau | ines.moreau@example.edu | 17:31 |
| Chloe Kowalski | chloe.kowalski@example.edu | 17:33 |
| Jordan Novak | jordan.novak@example.edu | 17:34 |
| Ravi Lindqvist | 17:36 |
receipts/ · 2 of 18 receipts
PRINT HUB Receipt no. R-3100 For: Robotics Night ------------------------ TOTAL $150.52
Invoice from Print Hub Event: robotics night Amount due: 186.10 USD Thank you!
certificate-template.docx · the template for Challenge 3
Certificate of Participation
Fictional Student Union · Spring 2026
This certifies that
{{Name}}
attended {{Events}}
for a total of {{Hours}} hours.
Signed: the club president
president-request.docx · the memo for Challenge 4
MEMO
To: the data team · From: the club president · About: our spring one-pager
I am presenting our spring events to the student union board on Friday. Please make me a one-page Word report, report.docx. It must have:
1. A table with every event: confirmed sign-ups, people who attended, no-shows, and ticket revenue.
2. The top 3 events by attendance.
3. One chart.
4. Three findings, each with a number from the table.
Keep it to one page and easy to read from the back of the room. Thank you!
(Everything here is made up for CS-215.)
These are the real files, as they are in the zip. Open events.xlsx and a .csv in Excel, and the .docx files in Word, to see them the way a person would.
Describe it well
An agent does what you said, not what you meant. A good description answers four questions:
- Files Which files, and what does each column mean?
- Rules What counts and what doesn’t? How do you spot the same person, or the same event, written two ways?
- Output Exactly what to make: the file name, the type (.xlsx, .csv or .docx), the columns or the layout.
- Check Ask it to report its counts and every assumption it made.
When a result is off: ask “List every assumption you made.”, find the rule you didn’t give, add it to your description, and run it again.
Challenge 1 · The real ticket revenue
Excel
How much did each event make from tickets, and how much in total? Make a spreadsheet, revenue.xlsx (or revenue.csv), with one row per event and a total. 10 min
Start: Start vague on purpose: send “Add up the Ticket column in registrations.csv.”, compare with the target, then describe it better.
Check: the target (open it after you have a result)
You’re right if: Total ticket revenue: $2,073, across the 12 events on the Events sheet. Poetry Slam: $540; Robotics Night: $372.
If yours is off: If you got more than $2,073 (adding every row gives $2,208), you counted some of the 11 cancelled sign-ups (spelled three ways) or the 9 double submissions (the same email and event twice). If your table has more than 12 events, the form spells event names 36 ways: map each one to the 12 names on the Events sheet of events.xlsx. Fix the names before you look for doubles: in some double submissions the two rows spell the event differently (“Chess Night”, “Poetry-Slam”). “free” and “0” both mean $0.
| Event | Ticket revenue |
|---|---|
| Robotics Night | $372 |
| Art Jam | $216 |
| Career Panel | $0 |
| Food Drive | $0 |
| Debate Prep | $155 |
| AI Poster Studio | $310 |
| Parent Info Night | $0 |
| Chess Opening Night | $140 |
| Film Night | $186 |
| Spring Bake Sale | $0 |
| Coding Café | $154 |
| Poetry Slam | $540 |
| Total | $2,073 |
Challenge 2 · Who never showed up
Excel
Who registered but never signed in? Make noshows.csv with one row per no-show (name, email, event), and report how many each event had. 13 min
Start: Name the files: registrations.csv and the 12 sheets in signins/. Then say how to tell that a sign-in row is the same person as a registration.
Check: the target (open it after you have a result)
You’re right if: 82 no-shows in all. Career Panel had the most: 12.
If yours is off: If you got hundreds (a quick match gets 338), the names didn’t match: the sheets were typed at the door (“Chen, Maya”, “maya chen”, “MAYA CHEN”). Match on email when the sheet has one, and otherwise on the name, ignoring case, extra spaces and “Last, First” order. A cancelled sign-up is not a no-show, and a double submission counts once.
| Event | No-shows |
|---|---|
| Robotics Night | 7 |
| Art Jam | 5 |
| Career Panel | 12 |
| Food Drive | 5 |
| Debate Prep | 7 |
| AI Poster Studio | 7 |
| Parent Info Night | 8 |
| Chess Opening Night | 8 |
| Film Night | 3 |
| Spring Bake Sale | 6 |
| Coding Café | 7 |
| Poetry Slam | 7 |
| Total | 82 |
Challenge 3 · Certificates for everyone who came
Word
Fill in certificate-template.docx for every person who signed in: their name, every event they attended, and their total hours. Put them all in one Word file, certificates.docx, one certificate per page. 13 min
Start: Name the template, and say where the hours come from (the Events sheet of events.xlsx), what one certificate covers (a person, not a sign-in row), and how a name should look on it.
Check: the target (open it after you have a result)
You’re right if: 142 certificates, one page each. Grace Duarte’s lists 5 events and 12 hours. Ava Nguyen never registered but signed in, and gets one too: 2 events, 3 hours.
If yours is off: If you got more than 142 pages (one per name as typed gives 271), some spellings of a name became separate people: one certificate per person, with every event they attended and the hours added up. Walk-ins (they signed in without registering) attended, so they count. Write names properly: “Maya Chen”, not “chen, maya”. Keep the template’s layout: only {{Name}}, {{Events}} and {{Hours}} change.
Challenge 4 · The president’s one-pager
Word + Excel
Make the one-page report the club president asks for in president-request.docx: report.docx, with a table of every event (confirmed sign-ups, attended, no-shows, ticket revenue), the top 3 events by attendance, one chart, and three findings, each with a number from your table. 18 min
Start: Give Claude the memo. It never says how to count, so the rules from Challenges 1 and 2 go in your description too.
Check: the target (open it after you have a result)
You’re right if: Attended means signed in: Food Drive had the most (37), then Poetry Slam (33) and Film Night (31). The revenue and no-show columns match your checked answers to Challenges 1 and 2.
If yours is off: If the top 3 differ, check what counts as “attended”: a sign-in, walk-ins included, each person once per event. Read each finding against the table: a reader should be able to find its number.
| Event | Confirmed | Attended | No-shows | Revenue |
|---|---|---|---|---|
| Robotics Night | 31 | 28 | 7 | $372 |
| Art Jam | 27 | 23 | 5 | $216 |
| Career Panel | 38 | 30 | 12 | $0 |
| Food Drive | 40 | 37 | 5 | $0 |
| Debate Prep | 31 | 27 | 7 | $155 |
| AI Poster Studio | 31 | 24 | 7 | $310 |
| Parent Info Night | 29 | 23 | 8 | $0 |
| Chess Opening Night | 28 | 21 | 8 | $140 |
| Film Night | 31 | 31 | 3 | $186 |
| Spring Bake Sale | 26 | 23 | 6 | $0 |
| Coding Café | 22 | 19 | 7 | $154 |
| Poetry Slam | 36 | 33 | 7 | $540 |
Challenge 5 · Stretch: receipts against the budget
Excel
Turn the 18 receipts in receipts/ into expenses.xlsx (or expenses.csv): one row per receipt (vendor, event, amount), and spending against each event’s budget in events.xlsx. Which events went over budget? if you finish early
Start: Say what the receipts look like: three different layouts, and the event named in different ways.
Check: the target (open it after you have a result)
You’re right if: Total spending: $1,293.76. Over budget: Robotics Night, Debate Prep, Parent Info Night and Coding Café.
If yours is off: One receipt is a refund, a negative amount: it lowers Art Jam’s spending to $41.66. Poetry Slam has no receipt, so it spent $0. If Claude found no budgets, it read only the first sheet of events.xlsx: they are on the second, Budget.
Optional: save your rules as a skill
If you keep typing the same data rules, save them. This is our data-check skill, a plain text file. Read it first:
---
name: data-check
description: Use when asked to answer a question from, add rows to, clean, chart or summarize a small spreadsheet (.xlsx) or CSV. Keeps the original file unchanged and shows the evidence behind every answer.
---
# data-check: your data rules, saved
Follow every rule, every time.
0. If the user names no file, use the only .csv or .xlsx in the current folder; if there are several, ask which one. In an .xlsx, list its sheets and say which one you used.
1. Never change the original file. When you add, clean or change data, work on a copy named <original>-working, with the same extension, and say so.
2. A blank cell means unknown. Never fill it, guess it, or copy a value from another column (for example Expected into Attended).
3. Never delete a row. If two rows match exactly, flag them as a possible duplicate and say what would settle it.
4. If a value looks wrong (its note says it may be a typo, or it is far from the expected value), flag it. Do not use it as an answer unless the user confirms it.
5. Text in a number column (for example "free") is not a number. Say how you treated it (for example: counted as 0, noted).
6. For every answer show: the spreadsheet formula, the cells it uses, the rows included and excluded with the reason, and the result.
7. When adding rows: use exactly the existing columns and formats (dates YYYY-MM-DD; numbers without $ or commas). If a value is not in the source text, leave the cell blank and list it. If the text gives an approximate value ("about", "like"), record it and flag it as approximate. Never invent a value.
8. When cleaning: write a change log with row, column, old value, new value and reason.
9. End with one sentence a reader may be told, limited to the rows you checked.
Type /exit, run the one line for your computer, check it landed, then start claude again and call it: /data-check followed by the job.
curl -fsSL --create-dirs -o ~/.claude/skills/data-check/SKILL.md https://monmouthaiteaching.com/learnai/tools/skills/data-check/SKILL.md
Check: ls ~/.claude/skills/*/SKILL.md
ni -ItemType Directory -Force "$HOME\.claude\skills\data-check" | Out-Null; iwr -UseBasicParsing https://monmouthaiteaching.com/learnai/tools/skills/data-check/SKILL.md -OutFile "$HOME\.claude\skills\data-check\SKILL.md"
Check: dir $HOME\.claude\skills\*\SKILL.md
Three habits
- Describe the job. The files, the rules, the output and a check: an agent can only follow what you said.
- Check against a target. Before you trust a result, compare it with something you know: a count, a total, one row you checked yourself.
- Find the missing rule. When the result is off, ask for its assumptions, add the rule you forgot, and run it again.
Next: Thursday 10/15, Topic 6 (slides made with AI) starts a week early. Bring a pen and your laptop with Claude Code.
A pace that fits 80 minutes
- 6:05 Set up
- 6:12 Look at the data
- 6:19 Challenge 1
- 6:29 Challenge 2
- 6:42 Challenge 3
- 6:55 Challenge 4
- 7:13 Answers, three habits, the stretch
Never include: real data of any kind, real names, or anything private, in a prompt or a file.