The rota, without the WhatsApp chaos: 10 AI skills for shifts
rest-break-check
catch the shift that got no break logged and no exception recorded either
How the two work together
Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.
Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.
No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.
Prompt for Claude
--- name: rest-break-check description: Checks every shift on a published rota against the statutory rest break and daily rest rules, shift by shift, and tells you which ones actually qualify, which are covered by the hospitality continuity exception with compensatory rest owed instead, and which have neither. It reads real shift lengths rather than assuming a kitchen that is "always busy" is automatically exempt, because the exception has conditions and a missed break still needs recording. Use after you publish a rota and before a quiet week lets a pattern of skipped breaks go unnoticed. --- # Every shift checked for the break it is actually owed You give this the rota as published, with actual shift lengths, and any note of where breaks were or were not taken. You get back one row per shift showing whether a 20-minute break applied, whether it was taken, and where the continuity exception was used instead, whether compensatory rest was actually given. ## What it does 1. **Trigger the break on actual hours worked, not on the shift as planned.** Regulation 12(1) of the Working Time Regulations 1998 says: "Where a worker's daily working time is more than six hours, he is entitled to a rest break." A shift planned at five hours fifty that regularly runs to six-fifteen because of a late table or a delivery crosses the line every time it happens, and the rota needs to be checked against what was actually worked, not what was printed. 2. **Confirm the break is a real break, not downtime.** Regulation 12(3) sets the length and nature: "the rest break... is an uninterrupted period of not less than 20 minutes, and the worker is entitled to spend it away from his workstation if he has one." A worker who eats standing at the pass between orders, or who is called back twice in fifteen minutes, has not had a qualifying break even if 20 minutes have technically elapsed since they last served a table. 3. **Apply the right exception correctly, if one is being relied on.** Regulation 21(d) removes the reg 12 entitlement "where there is a foreseeable surge of activity, as may be the case in relation to" a list that names "tourism" as item (ii), which is the ground a seasonal restaurant, café, bar or hotel can actually point to, not the hospitals-and-docks list at regulation 21(c). It is not a blanket exemption for busy venues; it covers a foreseeable surge, such as a known bank holiday rush, and it must be matched by rest given afterwards under regulation 24(a): the employer "shall wherever possible allow him to take an equivalent period of compensatory rest." Record which shifts rely on the exception, which named surge it relates to, and when the compensatory rest was actually given. 4. **Check the daily rest gap alongside the break, not instead of it.** Regulation 10(1) is a separate entitlement: "a rest period of not less than eleven consecutive hours in each 24-hour period during which he works for his employer." A shift can give a worker their 20-minute break and still leave them with nine hours before their next shift starts. Both checks run on every shift; neither substitutes for the other. 5. **Name the gap where no break was taken and no exception was recorded.** This is the state a rota check exists to catch: a six-and-a-half-hour shift, no break logged, and no note that continuity was relied on. It is not automatically a breach of someone's rights if an exception genuinely applied, but it is unrecorded, and unrecorded is the same as unproven if it is ever questioned. ## Then it checks 1. Every shift over six hours worked, actual not planned, has either a logged 20-minute break or a logged reliance on the continuity exception. 2. Every logged break is at least 20 minutes and is recorded as uninterrupted, with any interruption noted separately. 3. Every shift relying on the continuity exception has a logged compensatory rest period, with its date and length. 4. Every shift's daily rest gap to the next shift is checked separately and shown, not assumed from the break check. 5. Any shift with neither a break nor an exception logged is listed by worker, date and actual hours worked. Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop. ## Rules - Public information only. - Never invent a fact, a number or a quote. - Anything sent in someone's name says whose name it is. - Never mark a shift as exempt under regulation 21 without a logged reason naming the specific surge or circumstance and a logged compensatory rest period; an exception used as a default rather than a decision is exactly the pattern this skill exists to surface. - Never cite regulation 21(c), the continuity-of-service list, for an ordinary busy hospitality shift; that list covers hospitals, docks, utilities and similar services, not restaurants, bars or hotels. The relevant ground for hospitality is regulation 21(d)(ii), tourism, and only for a genuine foreseeable surge. - Never count a shift's break as taken because the shift length allowed for one in the plan; only a logged actual break counts. - Young workers get a different break length under regulation 12(4); use young-worker-rota for their shifts, not this one. - This output is a working document prepared for the owner to check against their own time records and rota, and for their adviser to check any reliance on the continuity exception. It applies the Working Time Regulations 1998 to logged shift data; it is not legal advice and it is not confirmation that every shift complied. ## Built from - The Working Time Regulations 1998, regulation 12, https://www.legislation.gov.uk/uksi/1998/1833/regulation/12, SI 1998/1833, read 3 November 2026: the six-hour trigger and the 20-minute uninterrupted break, behind steps 1 and 2. - The Working Time Regulations 1998, regulation 10, https://www.legislation.gov.uk/uksi/1998/1833/regulation/10, SI 1998/1833, read 3 November 2026: the separate 11-hour daily rest entitlement, behind step 4. - The Working Time Regulations 1998, regulation 21, https://www.legislation.gov.uk/uksi/1998/1833/regulation/21, SI 1998/1833, read 3 November 2026: the foreseeable surge of activity exception naming tourism, and why the hospitals-and-docks list at 21(c) does not apply to hospitality, behind step 3. - The Working Time Regulations 1998, regulation 24, https://www.legislation.gov.uk/uksi/1998/1833/regulation/24, SI 1998/1833, read 3 November 2026: the duty to give equivalent compensatory rest where regulation 21 is relied on, behind step 3.
Prompt for Codex
# rest-break-check ## You are given The rota or clocked-hours log for a period, with actual start and end times per shift, not the planned ones if they differ. Any break records held: logged break start and end times, or a note that no break was logged. Any note that a shift relied on an exception, with the named surge or circumstance and any compensatory rest given, date and length. Each worker's age band, so young workers can be excluded and routed to young-worker-rota instead. ## Produce Write into a `./rest-break-check-output/` folder: 1. `shift-hours.csv` with columns: `worker_name`, `date`, `actual_start`, `actual_end`, `actual_hours_worked`, `break_triggered`. `break_triggered` is `yes` if `actual_hours_worked` exceeds 6, otherwise `no`. 2. `break-log.csv` with columns: `worker_name`, `date`, `break_logged`, `break_start`, `break_end`, `break_minutes`, `uninterrupted`, `verdict`. `break_logged` is `yes` or `no`. `uninterrupted` is `yes`, `no` or `not recorded`. `verdict` is `pass`, `below 20 minutes`, `interrupted`, or `not logged`. 3. `exception-log.csv` with columns: `worker_name`, `date`, `exception_claimed`, `named_surge_or_circumstance`, `compensatory_rest_date`, `compensatory_rest_minutes`, `verdict`. `verdict` is `pass`, `no compensatory rest logged`, or `exception not named`. 4. `daily-rest-check.csv` with columns: `worker_name`, `date`, `previous_shift_end`, `next_shift_start`, `gap_hours`, `verdict`. `verdict` is `pass` or `below 11 hours`. 5. `gaps.md` - a numbered list, each row naming worker and date: every shift with `break_triggered` = `yes` and no matching `pass` in either `break-log.csv` or `exception-log.csv`; every `below 20 minutes` or `interrupted` row; every `no compensatory rest logged` or `exception not named` row; every `below 11 hours` row; and any shift where the exception named is regulation 21(c) rather than 21(d), flagged for the owner to check it is genuinely a hospital, dock, utility or similar listed service rather than an ordinary busy shift. ## Rules - Codex counts, matches and checks. It never decides whether an exception genuinely applies, and it never logs a break or a compensatory rest period that was not supplied. - `actual_hours_worked` is calculated from actual clocked or rota times, never from the planned shift length. - A shift with `break_triggered` = `yes` and both `break_logged` = `no` and `exception_claimed` = `no` is always listed in `gaps.md`; it is never silently assumed to be fine because the business is usually busy. - Never mark a young worker's shift against the 20-minute figure; route it to young-worker-rota and note the exclusion in `gaps.md`. - Use British English and DD Month YYYY dates. No em dashes in any file you write. - Every file ends with this line: this is a working document prepared for the owner to check against their own time records and rota, and for their adviser to check any reliance on a regulation 21 exception. It applies the Working Time Regulations 1998 to logged shift data and is not confirmation that every shift complied. ## Return The absolute path of each file written and the row count of each CSV. The number of shifts that triggered the break entitlement and how many have a logged break, a logged exception, or neither. Every `below 20 minutes`, `interrupted` and `below 11 hours` row stated in full. The number of exceptions claimed under 21(c) versus 21(d), flagged separately. The `gaps.md` item count.
Built from the best public work on this
Sources for rest-break-check
Everything below was opened and read on 3 November 2026. Nothing is cited that could not be loaded.
1. The Working Time Regulations 1998, regulation 12
https://www.legislation.gov.uk/uksi/1998/1833/regulation/12, SI 1998/1833, read 3 November 2026.
Regulation 12(1): "Where a worker's daily working time is more than six hours, he is entitled to a rest break." Regulation 12(3): the break "is an uninterrupted period of not less than 20 minutes", and the worker "is entitled to spend it away from his workstation if he has one." Regulation 12(4) gives young workers a longer break, 30 minutes where daily working time exceeds four and a half hours.
The trigger in 12(1) is a single threshold, six hours, with no further tiers at eight, ten or twelve hours as some commentary assumes. Step 1 and step 2 exist because the regulation is written around actual daily working time, which a rota planned at under six hours can still cross on a busy or understaffed day.
Where the skill departs: regulation 2's definition of "working time" and regulation 20's exclusions for workers whose working time is unmeasured are not used here; this skill assumes an ordinary rostered and clocked hospitality shift.
2. The Working Time Regulations 1998, regulation 10
https://www.legislation.gov.uk/uksi/1998/1833/regulation/10, SI 1998/1833, read 3 November 2026.
Regulation 10(1): "A worker is entitled to a rest period of not less than eleven consecutive hours in each 24-hour period during which he works for his employer." Used in step 4 as a check that runs alongside the break check, not instead of it, because a shift can satisfy regulation 12 and still leave a worker short of regulation 10's daily rest before their next shift.
Where the skill departs: regulation 10(2)'s young worker figure, 12 consecutive hours, is excluded from this skill and handled in young-worker-rota.
3. The Working Time Regulations 1998, regulation 21
https://www.legislation.gov.uk/uksi/1998/1833/regulation/21, SI 1998/1833, read 3 November 2026.
This is the regulation that actually decides whether a hospitality shift can lawfully skip a reg 12 break, and it is easy to misread. Sub-paragraph (c), "continuity of service or production", lists eight named categories, including "services relating to the reception, treatment or care provided by hospitals or similar establishments" and "work at docks or airports." None of the eight categories names restaurants, bars, cafés or hotels.
The sub-paragraph that does fit hospitality is (d): "where there is a foreseeable surge of activity, as may be the case in relation to" a list that includes "tourism" at item (ii), alongside agriculture and postal services. A known bank holiday weekend or a pre-booked large event can fall under this, because it is foreseeable and it is a surge; an ordinary Friday night service that a venue is simply always busy on, with nothing unusual happening, is a harder case to make, because "surge" implies something above the normal pattern, not the normal pattern itself.
This distinction between (c) and (d) is the whole reason step 3 refuses to accept a generic "we're always busy" justification, and why the skill's rules name regulation 21(c) specifically as the wrong citation for an ordinary shift.
Where the skill departs: sub-paragraphs (a), (b), (e) and (f), covering distant workplaces, security roles, unforeseen emergencies and rail transport, are not relevant to a rota in a restaurant, café, bar or hotel and are not used here.
4. The Working Time Regulations 1998, regulation 24
https://www.legislation.gov.uk/uksi/1998/1833/regulation/24, SI 1998/1833, read 3 November 2026.
Regulation 24 is the condition attached to using regulation 21 at all: "his employer shall wherever possible allow him to take an equivalent period of compensatory rest", and only "in exceptional cases in which it is not possible, for objective reasons, to grant such a period of rest" does the duty fall back to safeguarding health and safety by some other means.
Step 3 and the exception-log check exist because of the word "wherever possible": an employer who relies on regulation 21 to skip a break but never gets round to giving the compensatory rest has not used the exception correctly, they have simply removed the worker's break.
Where the skill departs: the "exceptional cases" fallback in 24(b) is recorded if claimed, not assessed by this skill; whether a case is genuinely exceptional is a judgement for the owner and their adviser.
Best public prompt we found for this job
The closest public artefact is the `crm-hygiene-check` skill in Anthropic's `knowledge-work-plugins` repository, raw source at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/sales/skills/crm-hygiene-check/SKILL.md. The repository has 34,654 stars, read from api.github.com on 3 November 2026. It is a CRM field audit, not a labour law check, but the shape matches closely: look at every row of a live data set, apply one rule per field, and report every gap with enough context to act on it rather than a single pass or fail count.
The useful part is its refusal to let a label stand in for a check:
Cite every value as read, link the record, show human labels not API names, and say "blank" versus "not queried".
We took that distinction, between a field that was checked and found empty and a field that was simply never looked at, and applied it to the difference between a shift with no break logged and a shift the owner never supplied data for at all.
We did not copy two things. It treats every missing field as equally worth flagging; this skill treats a missing break on a shift that triggered the entitlement as materially more urgent than a missing note on a shift that never crossed six hours, because only the first carries a statutory consequence. And it has no equivalent of regulation 21's exception list, where the correct citation itself needs checking, not just whether a citation exists; a CRM field is either filled in or it is not, while a claimed legal exception can be filled in and still wrong.
Want this running in your business?
I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.
Foxera