Fitness club memberships with renewals, freezes, door check-ins, and trainer-scoped access
memberships-club · 3600 s per turn · source
The ask
We run a single-site fitness club with about 220 members and six personal trainers. I've attached our member list and the door check-ins from the old system; the member list has duplicates in it, and the door scanner sometimes logs the same person twice within a few minutes, which is one visit. Memberships are monthly, quarterly, or annual: renewing adds one term to the current expiry date, or starts from the day of renewal if the membership has already lapsed, and a member can freeze for up to 60 days, which pushes their expiry back by the length of the freeze; nobody frozen, lapsed, or cancelled should be able to check in. Front desk staff need to see and handle every member, trainers should only see their own clients, our accountant needs a read-only login, and I want a dashboard showing how many members are active and how many have lapsed. Give me an admin login and a login for Jess Alvarez, one of our trainers.
Seed files the agent must import: members.csv</code>, <code>checkins.csv. The agent must leave a RESULT.json with a reachable URL, an admin login, and the named restricted login.
Acceptance checklist
26 binary items. The first 14 are the enterprise baseline shared by every build task (delivery, invitations, roles, server-side authorization, scoped live dashboard, exact lists and exports, audit metadata, validation, persistence); the rest are application-specific. Core items, which together define "first usable": 1, 3, 5, 6, 8, 14, 17, 19, 21.
| Tag | Items |
|---|---|
| Exact | 8 |
| Permission | 4 |
| Rule | 4 |
| Dashboard | 2 |
| Delivery | 2 |
| Sharing | 2 |
| API | 1 |
| Audit | 1 |
| Automation | 1 |
| Persistence | 1 |
The full checklist with per-item "how to check" instructions and expected figures is in checklist.md. Testers see it; the agent never does.
Change requests
Each change is a new one-shot turn on the carried-forward workspace. Only the owner's text below is sent; the tester items are withheld. After each change the full checklist is rerun, so regressions count.
Change 1 · 3 new checklist items
Put a chart of August's check-ins by hour of day on the dashboard so I can plan front desk shifts, and call out the busiest hour.
Change 2 · 3 new checklist items
Annual members who renew before their membership runs out get 5% off the renewal. Nobody else gets a discount.
Change 3 · 3 new checklist items
Cancellations need my sign-off. Front desk can request one, the member stays active until I approve it, and trainers can't cancel anyone.
No published score. Build runs need a human acceptance pass on a live URL, and no arm has completed one for the full set. Automated probes generate a tester sheet; they do not substitute for it. Results will be published as a separately labeled release when an arm completes.