skilldrop-cli 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/catalogue.json +25 -2
- package/model-routing.json +20 -0
- package/package.json +1 -1
- package/packs/civil-architect/pack.json +60 -0
- package/packs/civil-architect/skills/floor-plan-layout/SKILL.md +103 -0
- package/packs/civil-architect/skills/floor-plan-layout/evals/eval_queries.json +30 -0
- package/packs/civil-architect/skills/floor-plan-layout/evals/evals.json +57 -0
- package/packs/civil-architect/skills/floor-plan-layout/evals/files/4/adu-programme.md +12 -0
- package/packs/civil-architect/skills/floor-plan-layout/examples/ground-floor.md +65 -0
- package/packs/civil-architect/skills/floor-plan-layout/examples/ground-floor.svg +135 -0
- package/packs/civil-architect/skills/floor-plan-layout/manifest.json +34 -0
- package/packs/civil-architect/skills/floor-plan-layout/scripts/plan_check.py +449 -0
- package/packs/civil-architect/skills/floor-plan-layout/templates/plan.json +38 -0
- package/packs/event-planner/pack.json +61 -0
- package/packs/event-planner/skills/run-of-show/SKILL.md +141 -0
- package/packs/event-planner/skills/run-of-show/evals/eval_queries.json +30 -0
- package/packs/event-planner/skills/run-of-show/evals/evals.json +103 -0
- package/packs/event-planner/skills/run-of-show/evals/files/1/agenda.md +16 -0
- package/packs/event-planner/skills/run-of-show/evals/files/2/schedule.csv +8 -0
- package/packs/event-planner/skills/run-of-show/evals/files/3/notes.txt +3 -0
- package/packs/event-planner/skills/run-of-show/evals/files/4/sessions_export.csv +25 -0
- package/packs/event-planner/skills/run-of-show/evals/files/4/venue_and_crew.txt +27 -0
- package/packs/event-planner/skills/run-of-show/evals/files/5/runsheet_v4.csv +28 -0
- package/packs/event-planner/skills/run-of-show/evals/files/5/venue_and_suppliers.txt +22 -0
- package/packs/event-planner/skills/run-of-show/evals/files/6/acts_from_booker.csv +26 -0
- package/packs/event-planner/skills/run-of-show/evals/files/6/venue_rooms_and_crew.txt +14 -0
- package/packs/event-planner/skills/run-of-show/evals/files/7/runsheet_draft_v4.csv +25 -0
- package/packs/event-planner/skills/run-of-show/evals/files/7/venue_and_fixed_times.txt +24 -0
- package/packs/event-planner/skills/run-of-show/examples/product-launch.md +77 -0
- package/packs/event-planner/skills/run-of-show/examples/product-launch.svg +58 -0
- package/packs/event-planner/skills/run-of-show/manifest.json +44 -0
- package/packs/event-planner/skills/run-of-show/scripts/show_check.py +295 -0
- package/packs/event-planner/skills/run-of-show/templates/show.json +15 -0
- package/packs/event-planner/skills/seating-plan/SKILL.md +152 -0
- package/packs/event-planner/skills/seating-plan/evals/eval_queries.json +30 -0
- package/packs/event-planner/skills/seating-plan/evals/evals.json +134 -0
- package/packs/event-planner/skills/seating-plan/evals/files/1/guests.csv +31 -0
- package/packs/event-planner/skills/seating-plan/evals/files/2/table-plan.txt +8 -0
- package/packs/event-planner/skills/seating-plan/evals/files/3/brief.txt +4 -0
- package/packs/event-planner/skills/seating-plan/evals/files/3/guests.csv +49 -0
- package/packs/event-planner/skills/seating-plan/evals/files/4/rsvp_export.csv +127 -0
- package/packs/event-planner/skills/seating-plan/evals/files/4/seating_notes.txt +21 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/organiser_notes.txt +10 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/registrations.csv +93 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/table_plan_v3.csv +94 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/bridgets_notes.txt +30 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/ticket_export.csv +117 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/venue_floorplan_notes.txt +14 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/keep_apart_CONFIDENTIAL.txt +9 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/prom_seating_v3.csv +101 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/ticket_list.csv +101 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/venue_info.txt +16 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/registrations_export.csv +147 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/room_layout.md +22 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/seating_requests.txt +31 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/guest_list.csv +84 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/notes.txt +16 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/table_plan.csv +85 -0
- package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.md +61 -0
- package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.svg +39 -0
- package/packs/event-planner/skills/seating-plan/manifest.json +44 -0
- package/packs/event-planner/skills/seating-plan/scripts/seating_check.py +324 -0
- package/packs/event-planner/skills/seating-plan/templates/seating.json +28 -0
- package/packs/experience-design/pack.json +5 -0
- package/packs/experience-design/skills/locale-check/SKILL.md +139 -0
- package/packs/experience-design/skills/locale-check/evals/eval_queries.json +38 -0
- package/packs/experience-design/skills/locale-check/evals/evals.json +104 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/budget.json +1 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/ar.json +16 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/de.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/en.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/pl.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values/strings.xml +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-es/strings.xml +11 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-fr/strings.xml +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/ja.po +20 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/messages.pot +23 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/ru.po +22 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/budgets.json +15 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/ar.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/de.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/en.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/fr.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/pl.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values/strings.xml +77 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-es/strings.xml +63 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-ja/strings.xml +61 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/cs.po +605 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/marlin.pot +602 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/pt_BR.po +602 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/ru.po +608 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.stringsdict +70 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.strings +157 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.stringsdict +86 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.stringsdict +68 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.stringsdict +62 -0
- package/packs/experience-design/skills/locale-check/examples/settings-release.md +107 -0
- package/packs/experience-design/skills/locale-check/manifest.json +45 -0
- package/packs/experience-design/skills/locale-check/scripts/locale_check.py +1105 -0
- package/packs/operations-manager/pack.json +60 -0
- package/packs/operations-manager/skills/shift-roster/SKILL.md +166 -0
- package/packs/operations-manager/skills/shift-roster/evals/eval_queries.json +38 -0
- package/packs/operations-manager/skills/shift-roster/evals/evals.json +135 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/1/shifts.csv +3 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/1/staff.csv +8 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/2/rota.csv +22 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/2/staff.csv +6 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/3/team.md +14 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/4/availability_export_wk47.csv +23 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/4/rota_notes.txt +20 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/5/rota_draft_16-29nov.csv +107 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/5/staff_list.csv +17 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/availability_notes.txt +24 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/peoplehub_staff_export.csv +14 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/rota_template.csv +25 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/leave_and_availability.txt +18 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/rota_wc_30nov.csv +47 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/staff_list.csv +15 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/availability_form_responses.csv +22 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/cover_requirements.csv +15 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/staff_export.csv +29 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/leave_and_restrictions.txt +16 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/rota_export_07-13Dec.csv +85 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/staff_list.csv +27 -0
- package/packs/operations-manager/skills/shift-roster/examples/cafe-week.md +72 -0
- package/packs/operations-manager/skills/shift-roster/examples/cafe-week.svg +123 -0
- package/packs/operations-manager/skills/shift-roster/manifest.json +34 -0
- package/packs/operations-manager/skills/shift-roster/scripts/roster_check.py +633 -0
- package/packs/operations-manager/skills/shift-roster/templates/roster.json +22 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Name,FLT licence,First aider,Contracted max hrs/wk,Leave / availability
|
|
2
|
+
Wojciech Nowak,Yes,No,40,Hol 23/11 - 29/11
|
|
3
|
+
Abena Mensah,Yes,Yes,40,No Sundays (contract)
|
|
4
|
+
Callum Reid,Yes,No,40,Hol Fri 27 - Sun 29
|
|
5
|
+
Delphine Moreau,Yes,No,32,Off Sun 29/11 - family wedding
|
|
6
|
+
Harpreet Gill,No,Yes,40,Training course Thu 26/11
|
|
7
|
+
Owen Price,No,Yes,40,
|
|
8
|
+
Lucia Romano,No,Yes,32,Earlies only (childcare)
|
|
9
|
+
Tariq Haddad,No,No,40,
|
|
10
|
+
Megan Doyle,No,No,40,Hol 16-18 Nov
|
|
11
|
+
Stefan Ilic,No,No,40,
|
|
12
|
+
Yasmin Khoury,No,No,24,
|
|
13
|
+
Ben Ashworth,No,No,40,
|
|
14
|
+
Nadia Petrova,No,Yes,24,
|
|
15
|
+
Kwame Asante,No,No,32,"Dentist Fri 20th, off all day"
|
|
16
|
+
Rhian Morgan,No,No,16,Student - not Sundays
|
|
17
|
+
Jonah Feld,No,No,40,
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Availability - claims line rota 16-29 Nov (copied out of emails / Teams / the sticky notes on my desk)
|
|
2
|
+
------------------------------------------------------------------------------------------------------
|
|
3
|
+
|
|
4
|
+
Jade - "can only do earlies at the mo, need to be gone by half 4 for the childminder. Sundays fine cos my mum has her"
|
|
5
|
+
|
|
6
|
+
Catrin: college Tuesdays and Thursdays all day, both weeks. any other day ok
|
|
7
|
+
|
|
8
|
+
Lewis (Teams msg): hi! uni timetable again so its just friday lates and weekends for me pls. not a fri early, i've got a lecture
|
|
9
|
+
|
|
10
|
+
Megan - annual leave Wed 25th, Thu 26th, Fri 27th (approved in PeopleHub)
|
|
11
|
+
|
|
12
|
+
Kwame - no Sundays (as always)
|
|
13
|
+
|
|
14
|
+
Priya - can't do a late on a Monday, she's got her dad Monday evenings. any other shift fine
|
|
15
|
+
|
|
16
|
+
Rhys: dentist 9am Weds 18th so not the early that day. "happy to do the late"
|
|
17
|
+
|
|
18
|
+
Sofia - off Fri 20th, sister's wedding. booked ages ago
|
|
19
|
+
|
|
20
|
+
Amara - Weds are her other job, never a Wednesday
|
|
21
|
+
|
|
22
|
+
Dariusz - evening class Wednesdays, so no late on a Weds. earlies fine
|
|
23
|
+
|
|
24
|
+
Bethan / Tom - nothing this time
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Employee ID,Surname,Forename,Job Title,Contracted Hrs/Wk,Skills / Endorsements,Start Date,Status,Leaving Date,Work Email
|
|
2
|
+
QM1171,ASHDOWN,Tom,Claims Handler,32.0,,30/10/2023,Active,,tom.ashdown@quillmoor.example
|
|
3
|
+
QM1240,DOYLE,Megan,Claims Handler,32.0,,07/07/2022,Active,,megan.doyle@quillmoor.example
|
|
4
|
+
QM1231,GRANT,Lewis,Claims Handler (student),16.0,,15/09/2025,Active,,lewis.grant@quillmoor.example
|
|
5
|
+
QM1150,HUGHES,Catrin,Claims Handler,24.0,Welsh (fluent),05/09/2025,Active,,catrin.hughes@quillmoor.example
|
|
6
|
+
QM1077,KOWAL,Dariusz,Team Leader,40.0,Team Leader cover,14/06/2021,Active,,dariusz.kowal@quillmoor.example
|
|
7
|
+
QM1118,LLEWELLYN,Rhys,Claims Handler,32.0,Welsh (fluent),22/01/2020,Active,,rhys.llewellyn@quillmoor.example
|
|
8
|
+
QM1205,MARCHETTI,Sofia,Claims Handler,24.0,,02/06/2025,Active,,sofia.marchetti@quillmoor.example
|
|
9
|
+
QM1192,MENSAH,Kwame,Claims Handler,32.0,,18/03/2024,Active,,kwame.mensah@quillmoor.example
|
|
10
|
+
QM1042,MORGAN,Bethan,Team Leader,40.0,Team Leader cover; Welsh (fluent),03/02/2019,Active,,bethan.morgan@quillmoor.example
|
|
11
|
+
QM1164,NAIR,Priya,Claims Handler,32.0,,11/04/2022,Active,,priya.nair@quillmoor.example
|
|
12
|
+
QM1103,OSEI,Amara,Team Leader,24.0,Team Leader cover,01/09/2023,Active,,amara.osei@quillmoor.example
|
|
13
|
+
QM1012,PENRY,Gareth,Team Leader,40.0,Team Leader cover; Welsh (fluent),12/05/2016,Leaver,31/10/2026,gareth.penry@quillmoor.example
|
|
14
|
+
QM1189,WHITLOCK,Jade,Claims Handler,24.0,,06/01/2025,Active,,jade.whitlock@quillmoor.example
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Date,Day,Shift,Start,Finish,Staff needed,Must include,Staff 1,Staff 2,Staff 3
|
|
2
|
+
16/11/2026,Mon,Early,07:30,15:30,3,1 x team leader,,,
|
|
3
|
+
16/11/2026,Mon,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
4
|
+
17/11/2026,Tue,Early,07:30,15:30,3,1 x team leader,,,
|
|
5
|
+
17/11/2026,Tue,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
6
|
+
18/11/2026,Wed,Early,07:30,15:30,3,1 x team leader,,,
|
|
7
|
+
18/11/2026,Wed,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
8
|
+
19/11/2026,Thu,Early,07:30,15:30,3,1 x team leader,,,
|
|
9
|
+
19/11/2026,Thu,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
10
|
+
20/11/2026,Fri,Early,07:30,15:30,3,1 x team leader,,,
|
|
11
|
+
20/11/2026,Fri,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
12
|
+
21/11/2026,Sat,Sat Day,09:00,17:00,2,1 x team leader + 1 x Welsh speaker,,,n/a
|
|
13
|
+
22/11/2026,Sun,Sun Day,10:00,16:00,2,1 x team leader,,,n/a
|
|
14
|
+
23/11/2026,Mon,Early,07:30,15:30,3,1 x team leader,,,
|
|
15
|
+
23/11/2026,Mon,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
16
|
+
24/11/2026,Tue,Early,07:30,15:30,3,1 x team leader,,,
|
|
17
|
+
24/11/2026,Tue,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
18
|
+
25/11/2026,Wed,Early,07:30,15:30,3,1 x team leader,,,
|
|
19
|
+
25/11/2026,Wed,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
20
|
+
26/11/2026,Thu,Early,07:30,15:30,3,1 x team leader,,,
|
|
21
|
+
26/11/2026,Thu,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
22
|
+
27/11/2026,Fri,Early,07:30,15:30,3,1 x team leader,,,
|
|
23
|
+
27/11/2026,Fri,Late,13:30,21:30,3,1 x team leader + 1 x Welsh speaker,,,
|
|
24
|
+
28/11/2026,Sat,Sat Day,09:00,17:00,2,1 x team leader + 1 x Welsh speaker,,,n/a
|
|
25
|
+
29/11/2026,Sun,Sun Day,10:00,16:00,2,1 x team leader,,,n/a
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Harbourside clinic - leave / availability w/c 30 Nov (from the leave calendar + my notebook)
|
|
2
|
+
|
|
3
|
+
LEAVE
|
|
4
|
+
- Lena Varga: annual leave Fri 4 Dec - Sun 6 Dec (approved)
|
|
5
|
+
|
|
6
|
+
STANDING PATTERNS
|
|
7
|
+
- Joel Ambrose - contract is Mon-Fri only, doesn't do Saturdays
|
|
8
|
+
- Fran Teale - never Mondays
|
|
9
|
+
- Rosa Lindqvist - doesn't work Fridays
|
|
10
|
+
- Hannah Brook - earlies only (school pick-up)
|
|
11
|
+
- Sam Okoro - Thu/Fri lates + Saturdays only (student)
|
|
12
|
+
- Nadia Fern - bank phlebotomist, does the phlebotomy clinic only (Mon/Wed/Fri mornings), up to her 12 hrs
|
|
13
|
+
|
|
14
|
+
SESSIONS (Sunday closed)
|
|
15
|
+
- Early 07:30-15:30: 2 nurses, 1 HCA, 1 reception
|
|
16
|
+
- Late 13:00-21:00: 2 nurses, 1 HCA, 1 reception
|
|
17
|
+
- Phlebotomy clinic Mon/Wed/Fri 08:00-12:00: 1 person with phlebotomy
|
|
18
|
+
- Sat Minor Injuries 09:00-13:00: 1 prescriber (must be - they see walk-ins and prescribe), 1 nurse, 1 reception
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Date,Day,Session,Time,Role,Staff member
|
|
2
|
+
30/11/2026,Mon,Early,07:30-15:30,Nurse,Gwen Pryce
|
|
3
|
+
30/11/2026,Mon,Early,07:30-15:30,Nurse,Marek Novak
|
|
4
|
+
30/11/2026,Mon,Early,07:30-15:30,HCA,Ben Carrow
|
|
5
|
+
30/11/2026,Mon,Early,07:30-15:30,Reception,Hannah Brook
|
|
6
|
+
30/11/2026,Mon,Phlebotomy clinic,08:00-12:00,Phlebotomist,Nadia Fern
|
|
7
|
+
30/11/2026,Mon,Late,13:00-21:00,Nurse,Joel Ambrose
|
|
8
|
+
30/11/2026,Mon,Late,13:00-21:00,Nurse,Aisha Rahman
|
|
9
|
+
30/11/2026,Mon,Late,13:00-21:00,HCA,Rosa Lindqvist
|
|
10
|
+
30/11/2026,Mon,Late,13:00-21:00,Reception,Callum Reid
|
|
11
|
+
01/12/2026,Tue,Early,07:30-15:30,Nurse,Gwen Pryce
|
|
12
|
+
01/12/2026,Tue,Early,07:30-15:30,Nurse,Lena Varga
|
|
13
|
+
01/12/2026,Tue,Early,07:30-15:30,HCA,Ben Carrow
|
|
14
|
+
01/12/2026,Tue,Early,07:30-15:30,Reception,Hannah Brook
|
|
15
|
+
01/12/2026,Tue,Late,13:00-21:00,Nurse,Fran Teale
|
|
16
|
+
01/12/2026,Tue,Late,13:00-21:00,Nurse,Joel Ambrose
|
|
17
|
+
01/12/2026,Tue,Late,13:00-21:00,HCA,Rosa Lindqvist
|
|
18
|
+
01/12/2026,Tue,Late,13:00-21:00,Reception,Callum Reid
|
|
19
|
+
02/12/2026,Wed,Early,07:30-15:30,Nurse,Gwen Pryce
|
|
20
|
+
02/12/2026,Wed,Early,07:30-15:30,Nurse,Aisha Rahman
|
|
21
|
+
02/12/2026,Wed,Early,07:30-15:30,HCA,Ola Adebayo
|
|
22
|
+
02/12/2026,Wed,Early,07:30-15:30,Reception,Hannah Brook
|
|
23
|
+
02/12/2026,Wed,Phlebotomy clinic,08:00-12:00,Phlebotomist,Ola Adebayo
|
|
24
|
+
02/12/2026,Wed,Late,13:00-21:00,Nurse,Lena Varga
|
|
25
|
+
02/12/2026,Wed,Late,13:00-21:00,Nurse,Joel Ambrose
|
|
26
|
+
02/12/2026,Wed,Late,13:00-21:00,HCA,Ben Carrow
|
|
27
|
+
02/12/2026,Wed,Late,13:00-21:00,Reception,Priti Desai
|
|
28
|
+
03/12/2026,Thu,Early,07:30-15:30,Nurse,Fran Teale
|
|
29
|
+
03/12/2026,Thu,Early,07:30-15:30,Nurse,Marek Novak
|
|
30
|
+
03/12/2026,Thu,Early,07:30-15:30,HCA,Rosa Lindqvist
|
|
31
|
+
03/12/2026,Thu,Early,07:30-15:30,Reception,Hannah Brook
|
|
32
|
+
03/12/2026,Thu,Late,13:00-21:00,Nurse,Gwen Pryce
|
|
33
|
+
03/12/2026,Thu,Late,13:00-21:00,Nurse,Aisha Rahman
|
|
34
|
+
03/12/2026,Thu,Late,13:00-21:00,HCA,Ola Adebayo
|
|
35
|
+
03/12/2026,Thu,Late,13:00-21:00,Reception,Sam Okoro
|
|
36
|
+
04/12/2026,Fri,Early,07:30-15:30,Nurse,Gwen Pryce
|
|
37
|
+
04/12/2026,Fri,Early,07:30-15:30,Nurse,Fran Teale
|
|
38
|
+
04/12/2026,Fri,Early,07:30-15:30,HCA,Ben Carrow
|
|
39
|
+
04/12/2026,Fri,Early,07:30-15:30,Reception,Priti Desai
|
|
40
|
+
04/12/2026,Fri,Phlebotomy clinic,08:00-12:00,Phlebotomist,Aisha Rahman
|
|
41
|
+
04/12/2026,Fri,Late,13:00-21:00,Nurse,Marek Novak
|
|
42
|
+
04/12/2026,Fri,Late,13:00-21:00,Nurse,Joel Ambrose
|
|
43
|
+
04/12/2026,Fri,Late,13:00-21:00,HCA,Ola Adebayo
|
|
44
|
+
04/12/2026,Fri,Late,13:00-21:00,Reception,Callum Reid
|
|
45
|
+
05/12/2026,Sat,Minor Injuries (Sat),09:00-13:00,Prescriber,Fran Teale
|
|
46
|
+
05/12/2026,Sat,Minor Injuries (Sat),09:00-13:00,Nurse,Marek Novak
|
|
47
|
+
05/12/2026,Sat,Minor Injuries (Sat),09:00-13:00,Reception,Sam Okoro
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Name,Job title,Contracted hours/week,Can cover,Email
|
|
2
|
+
Gwen Pryce,Practice Nurse,40,Nurse,gwen.pryce@harbourside-clinic.example
|
|
3
|
+
Fran Teale,Practice Nurse,32,Nurse,fran.teale@harbourside-clinic.example
|
|
4
|
+
Marek Novak,Practice Nurse,40,Nurse,marek.novak@harbourside-clinic.example
|
|
5
|
+
Aisha Rahman,Practice Nurse,32,Nurse / Phlebotomy,aisha.rahman@harbourside-clinic.example
|
|
6
|
+
Joel Ambrose,Nurse Prescriber,40,Nurse / Prescriber,joel.ambrose@harbourside-clinic.example
|
|
7
|
+
Lena Varga,Advanced Nurse Practitioner,32,Nurse / Prescriber,lena.varga@harbourside-clinic.example
|
|
8
|
+
Ola Adebayo,Healthcare Assistant,32,HCA / Phlebotomy,ola.adebayo@harbourside-clinic.example
|
|
9
|
+
Rosa Lindqvist,Healthcare Assistant,24,HCA,rosa.lindqvist@harbourside-clinic.example
|
|
10
|
+
Ben Carrow,Healthcare Assistant,40,HCA / Phlebotomy,ben.carrow@harbourside-clinic.example
|
|
11
|
+
Nadia Fern,Phlebotomist,12,Phlebotomy,nadia.fern@harbourside-clinic.example
|
|
12
|
+
Hannah Brook,Receptionist,24,Reception,hannah.brook@harbourside-clinic.example
|
|
13
|
+
Priti Desai,Senior Receptionist,40,Reception,priti.desai@harbourside-clinic.example
|
|
14
|
+
Callum Reid,Receptionist,32,Reception,callum.reid@harbourside-clinic.example
|
|
15
|
+
Sam Okoro,Receptionist (Sat),16,Reception,sam.okoro@harbourside-clinic.example
|
package/packs/operations-manager/skills/shift-roster/evals/files/8/availability_form_responses.csv
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Timestamp,Your name,Any dates/times you CAN'T work 23 Nov - 6 Dec?
|
|
2
|
+
09/11/2026 09:35:00,Rhiannon Tull,Annual leave Mon 30 Nov - Wed 2 Dec (approved)
|
|
3
|
+
09/11/2026 11:36:00,Fenella Orchard,Can't do Sundays
|
|
4
|
+
09/11/2026 14:43:00,Tadeusz Wren,Fully available
|
|
5
|
+
09/11/2026 19:02:00,Marisol Penhale,Weekdays lates only please (earlies clash with school run)
|
|
6
|
+
10/11/2026 01:26:00,Arjun Mistry-Hale,Off Thu 26 and Fri 27 Nov (hospital appointment + recovery)
|
|
7
|
+
10/11/2026 05:37:00,Siobhan Daley,No Sundays
|
|
8
|
+
10/11/2026 11:09:00,Oluwaseun Hartley,Fully available
|
|
9
|
+
10/11/2026 14:56:00,Callum Feeney,Away Fri 4 - Sun 6 Dec (brother's stag do)
|
|
10
|
+
10/11/2026 21:28:00,Priya Somerton,Fully available
|
|
11
|
+
11/11/2026 01:29:00,Benedict Ogunleye,Fully available
|
|
12
|
+
11/11/2026 06:56:00,Saskia Vermeulen,Earlies/AM only - I do evenings at my other job
|
|
13
|
+
11/11/2026 13:26:00,Jaden Okafor,College till 3 weekdays - after 3 and weekends fine
|
|
14
|
+
11/11/2026 18:10:00,Maisie Thorne,"Uni - weekday afternoons/evenings only (after 3pm), weekends ok"
|
|
15
|
+
11/11/2026 18:38:00,Rory Venn,"after 3pm weekdays, any weekend"
|
|
16
|
+
11/11/2026 21:08:00,Amira Haddad,"Sixth form, after 3 weekdays. weekends any"
|
|
17
|
+
11/11/2026 21:57:00,Theo Blackwood,after 3pm on weekdays. NOT Sat 28 Nov (exam)
|
|
18
|
+
12/11/2026 02:24:00,Lucia Ferrante,Weekday evenings + weekends
|
|
19
|
+
12/11/2026 04:35:00,Owen Garside,after 3 weekdays / weekends
|
|
20
|
+
12/11/2026 05:32:00,Bethan Lloyd-Pryce,Fully available
|
|
21
|
+
12/11/2026 07:11:00,Nikhil Rao,"Tuesdays, Thursdays and Saturdays only"
|
|
22
|
+
12/11/2026 09:28:00,Ifeoma Barrett,Not Mon 23 Nov
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Days,Area,Shift,Start,Finish,Staff needed,Must hold
|
|
2
|
+
Mon-Fri,Duty manager,Early,06:00,14:00,1,Duty Manager
|
|
3
|
+
Mon-Fri,Duty manager,Late,14:00,22:00,1,Duty Manager
|
|
4
|
+
Mon-Fri,Pool lifeguard,Early,06:15,14:15,3,NPLQ
|
|
5
|
+
Mon-Fri,Pool lifeguard,Late,14:00,22:15,3,NPLQ
|
|
6
|
+
Mon-Fri,Reception,Early,06:00,14:00,1,Reception
|
|
7
|
+
Mon-Fri,Reception,Late,14:00,22:00,1,Reception
|
|
8
|
+
Mon-Thu,Swim lessons,Evening,16:00,19:30,2,Swim Teacher L2
|
|
9
|
+
Sat-Sun,Duty manager,AM,07:30,14:00,1,Duty Manager
|
|
10
|
+
Sat-Sun,Duty manager,PM,13:30,20:30,1,Duty Manager
|
|
11
|
+
Sat-Sun,Pool lifeguard,AM,07:45,14:00,4,NPLQ
|
|
12
|
+
Sat-Sun,Pool lifeguard,PM,13:45,20:15,4,NPLQ
|
|
13
|
+
Sat-Sun,Reception,AM,07:30,14:00,1,Reception
|
|
14
|
+
Sat-Sun,Reception,PM,13:30,20:30,1,Reception
|
|
15
|
+
Sat,Swim lessons,Morning,09:00,13:00,3,Swim Teacher L2
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Employee No,First Name,Surname,Job Title,Contracted Hrs/Wk,Qualifications (current),Email
|
|
2
|
+
BL1001,Rhiannon,Tull,Duty Manager,37.5,Duty Manager; NPLQ; Reception; First Aid,rhiannon.tull@brackenmoor-leisure.example
|
|
3
|
+
BL1002,Kwame,Asante-Byrne,Duty Manager,37.5,Duty Manager; NPLQ; First Aid,kwame.asantebyrne@brackenmoor-leisure.example
|
|
4
|
+
BL1003,Fenella,Orchard,Duty Manager,37.5,Duty Manager; NPLQ; Reception; First Aid,fenella.orchard@brackenmoor-leisure.example
|
|
5
|
+
BL1004,Tadeusz,Wren,Assistant Duty Manager,30,Duty Manager; NPLQ; First Aid,tadeusz.wren@brackenmoor-leisure.example
|
|
6
|
+
BL1005,Marisol,Penhale,Assistant Duty Manager,24,Duty Manager; NPLQ; First Aid,marisol.penhale@brackenmoor-leisure.example
|
|
7
|
+
BL1101,Joanna,Kettleby,Receptionist,37.5,Reception; First Aid,joanna.kettleby@brackenmoor-leisure.example
|
|
8
|
+
BL1102,Arjun,Mistry-Hale,Receptionist,30,Reception,arjun.mistryhale@brackenmoor-leisure.example
|
|
9
|
+
BL1103,Siobhan,Daley,Receptionist,22.5,Reception,siobhan.daley@brackenmoor-leisure.example
|
|
10
|
+
BL1104,Ewan,Brackley,Receptionist (relief),16,Reception,ewan.brackley@brackenmoor-leisure.example
|
|
11
|
+
BL1201,Oluwaseun,Hartley,Lifeguard,37.5,NPLQ; First Aid,oluwaseun.hartley@brackenmoor-leisure.example
|
|
12
|
+
BL1202,Greta,Lindqvist,Lifeguard,37.5,NPLQ; Swim Teacher L2; First Aid,greta.lindqvist@brackenmoor-leisure.example
|
|
13
|
+
BL1203,Callum,Feeney,Lifeguard,37.5,NPLQ; First Aid,callum.feeney@brackenmoor-leisure.example
|
|
14
|
+
BL1204,Priya,Somerton,Lifeguard,37.5,NPLQ; First Aid,priya.somerton@brackenmoor-leisure.example
|
|
15
|
+
BL1205,Dmitri,Coles,Lifeguard,37.5,NPLQ,dmitri.coles@brackenmoor-leisure.example
|
|
16
|
+
BL1206,Hollie,Ashworth,Lifeguard,30,NPLQ; First Aid,hollie.ashworth@brackenmoor-leisure.example
|
|
17
|
+
BL1207,Benedict,Ogunleye,Lifeguard,37.5,NPLQ; First Aid,benedict.ogunleye@brackenmoor-leisure.example
|
|
18
|
+
BL1208,Saskia,Vermeulen,Lifeguard,24,NPLQ,saskia.vermeulen@brackenmoor-leisure.example
|
|
19
|
+
BL1301,Jaden,Okafor,Casual Lifeguard,20,NPLQ,jaden.okafor@brackenmoor-leisure.example
|
|
20
|
+
BL1302,Maisie,Thorne,Casual Lifeguard,20,NPLQ; Swim Teacher L2,maisie.thorne@brackenmoor-leisure.example
|
|
21
|
+
BL1303,Rory,Venn,Casual Lifeguard,16,NPLQ,rory.venn@brackenmoor-leisure.example
|
|
22
|
+
BL1304,Amira,Haddad,Casual Lifeguard,20,NPLQ,amira.haddad@brackenmoor-leisure.example
|
|
23
|
+
BL1305,Theo,Blackwood,Casual Lifeguard,16,NPLQ,theo.blackwood@brackenmoor-leisure.example
|
|
24
|
+
BL1306,Lucia,Ferrante,Casual Lifeguard,20,NPLQ,lucia.ferrante@brackenmoor-leisure.example
|
|
25
|
+
BL1307,Owen,Garside,Casual Lifeguard,16,NPLQ,owen.garside@brackenmoor-leisure.example
|
|
26
|
+
BL1401,Bethan,Lloyd-Pryce,Swim Teacher,16,Swim Teacher L2,bethan.lloydpryce@brackenmoor-leisure.example
|
|
27
|
+
BL1402,Nikhil,Rao,Swim Teacher,12,Swim Teacher L2,nikhil.rao@brackenmoor-leisure.example
|
|
28
|
+
BL1403,Cerys,Mallory,Swim Teacher,12,Swim Teacher L2,cerys.mallory@brackenmoor-leisure.example
|
|
29
|
+
BL1404,Ifeoma,Barrett,Swim Teacher,10,Swim Teacher L2,ifeoma.barrett@brackenmoor-leisure.example
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
QUILLMERE HOUSE - leave / restrictions as at 4 Dec
|
|
2
|
+
|
|
3
|
+
- Adaeze Moorcroft: Annual leave Sun 13 Dec - Tue 15 Dec (approved 2 Dec)
|
|
4
|
+
- Philippa Strand: Days only - OH restriction, no nights
|
|
5
|
+
- Godfrey Achterberg: Days only (contract)
|
|
6
|
+
- Rosalind Ebo: Cannot do Sunday nights (no childcare) - agreed
|
|
7
|
+
- Declan Furness: Annual leave Sun 13 Dec
|
|
8
|
+
- Yasmin Okonedo-Hart: Bank - can't do Sundays (other job)
|
|
9
|
+
- Imogen Saddler: Annual leave Thu 10 Dec
|
|
10
|
+
- Florence Adebayo: Nights only
|
|
11
|
+
- Niamh Corrigan: No lates on Wednesdays (college)
|
|
12
|
+
- Stanislav Petrov: Nights only
|
|
13
|
+
- Kofi Mensah-Lowe: Nights only
|
|
14
|
+
|
|
15
|
+
Reminder: every shift needs 1 Senior Carer who is medication trained (meds rounds 08:00, 12:00, 17:00, 22:00).
|
|
16
|
+
Cover: Early 1 senior + 4 CAs, Late 1 senior + 3 CAs, Night 1 senior + 2 CAs.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
Date,Day,Shift,Start,End,Role,Staff ID,Staff Name
|
|
2
|
+
07/12/2026,Mon,Early,07:00,14:30,Senior Carer,QH-202,Philippa Strand
|
|
3
|
+
07/12/2026,Mon,Early,07:00,14:30,Care Assistant,QH-301,Bronwen Tilsley
|
|
4
|
+
07/12/2026,Mon,Early,07:00,14:30,Care Assistant,QH-315,Agnieszka Wolak
|
|
5
|
+
07/12/2026,Mon,Early,07:00,14:30,Care Assistant,QH-320,Gwen Tarrant
|
|
6
|
+
07/12/2026,Mon,Early,07:00,14:30,Care Assistant,QH-309,Ravi Chaudhry
|
|
7
|
+
07/12/2026,Mon,Late,14:00,21:30,Senior Carer,QH-204,Rosalind Ebo
|
|
8
|
+
07/12/2026,Mon,Late,14:00,21:30,Care Assistant,QH-306,Shona McAllister
|
|
9
|
+
07/12/2026,Mon,Late,14:00,21:30,Care Assistant,QH-318,Bilal Qureshi
|
|
10
|
+
07/12/2026,Mon,Late,14:00,21:30,Care Assistant,QH-302,Mehmet Arslan
|
|
11
|
+
07/12/2026,Mon,Night,21:00,07:30,Senior Carer,QH-206,Yasmin Okonedo-Hart
|
|
12
|
+
07/12/2026,Mon,Night,21:00,07:30,Care Assistant,QH-316,Kofi Mensah-Lowe
|
|
13
|
+
07/12/2026,Mon,Night,21:00,07:30,Care Assistant,QH-307,Patrice Delacroix
|
|
14
|
+
08/12/2026,Tue,Early,07:00,14:30,Senior Carer,QH-203,Godfrey Achterberg
|
|
15
|
+
08/12/2026,Tue,Early,07:00,14:30,Care Assistant,QH-313,Harriet Quinlan
|
|
16
|
+
08/12/2026,Tue,Early,07:00,14:30,Care Assistant,QH-319,Eamon Fairlie
|
|
17
|
+
08/12/2026,Tue,Early,07:00,14:30,Care Assistant,QH-303,Corinne Vance
|
|
18
|
+
08/12/2026,Tue,Early,07:00,14:30,Care Assistant,QH-301,Bronwen Tilsley
|
|
19
|
+
08/12/2026,Tue,Late,14:00,21:30,Senior Carer,QH-202,Philippa Strand
|
|
20
|
+
08/12/2026,Tue,Late,14:00,21:30,Care Assistant,QH-301,Bronwen Tilsley
|
|
21
|
+
08/12/2026,Tue,Late,14:00,21:30,Care Assistant,QH-317,Tamsin Raeburn
|
|
22
|
+
08/12/2026,Tue,Late,14:00,21:30,Care Assistant,QH-311,Niamh Corrigan
|
|
23
|
+
08/12/2026,Tue,Night,21:00,07:30,Senior Carer,QH-205,Declan Furness
|
|
24
|
+
08/12/2026,Tue,Night,21:00,07:30,Care Assistant,QH-304,Lukas Brennan
|
|
25
|
+
08/12/2026,Tue,Night,21:00,07:30,Care Assistant,QH-308,Imogen Saddler
|
|
26
|
+
09/12/2026,Wed,Early,07:00,14:30,Senior Carer,QH-203,Godfrey Achterberg
|
|
27
|
+
09/12/2026,Wed,Early,07:00,14:30,Care Assistant,QH-307,Patrice Delacroix
|
|
28
|
+
09/12/2026,Wed,Early,07:00,14:30,Care Assistant,QH-306,Shona McAllister
|
|
29
|
+
09/12/2026,Wed,Early,07:00,14:30,Care Assistant,QH-313,Harriet Quinlan
|
|
30
|
+
09/12/2026,Wed,Early,07:00,14:30,Care Assistant,QH-315,Agnieszka Wolak
|
|
31
|
+
09/12/2026,Wed,Late,14:00,21:30,Senior Carer,QH-201,Adaeze Moorcroft
|
|
32
|
+
09/12/2026,Wed,Late,14:00,21:30,Care Assistant,QH-309,Ravi Chaudhry
|
|
33
|
+
09/12/2026,Wed,Late,14:00,21:30,Care Assistant,QH-318,Bilal Qureshi
|
|
34
|
+
09/12/2026,Wed,Late,14:00,21:30,Care Assistant,QH-303,Corinne Vance
|
|
35
|
+
09/12/2026,Wed,Night,21:00,07:30,Senior Carer,QH-204,Rosalind Ebo
|
|
36
|
+
09/12/2026,Wed,Night,21:00,07:30,Care Assistant,QH-314,Joel Ambrose
|
|
37
|
+
09/12/2026,Wed,Night,21:00,07:30,Care Assistant,QH-312,Stanislav Petrov
|
|
38
|
+
10/12/2026,Thu,Early,07:00,14:30,Senior Carer,QH-202,Philippa Strand
|
|
39
|
+
10/12/2026,Thu,Early,07:00,14:30,Care Assistant,QH-315,Agnieszka Wolak
|
|
40
|
+
10/12/2026,Thu,Early,07:00,14:30,Care Assistant,QH-319,Eamon Fairlie
|
|
41
|
+
10/12/2026,Thu,Early,07:00,14:30,Care Assistant,QH-306,Shona McAllister
|
|
42
|
+
10/12/2026,Thu,Early,07:00,14:30,Care Assistant,QH-311,Niamh Corrigan
|
|
43
|
+
10/12/2026,Thu,Late,14:00,21:30,Senior Carer,QH-318,Bilal Qureshi
|
|
44
|
+
10/12/2026,Thu,Late,14:00,21:30,Care Assistant,QH-309,Ravi Chaudhry
|
|
45
|
+
10/12/2026,Thu,Late,14:00,21:30,Care Assistant,QH-317,Tamsin Raeburn
|
|
46
|
+
10/12/2026,Thu,Late,14:00,21:30,Care Assistant,QH-305,Tendai Moyo
|
|
47
|
+
10/12/2026,Thu,Night,21:00,07:30,Senior Carer,QH-201,Adaeze Moorcroft
|
|
48
|
+
10/12/2026,Thu,Night,21:00,07:30,Care Assistant,QH-302,Mehmet Arslan
|
|
49
|
+
10/12/2026,Thu,Night,21:00,07:30,Care Assistant,QH-320,Gwen Tarrant
|
|
50
|
+
11/12/2026,Fri,Early,07:00,14:30,Senior Carer,QH-204,Rosalind Ebo
|
|
51
|
+
11/12/2026,Fri,Early,07:00,14:30,Care Assistant,QH-313,Harriet Quinlan
|
|
52
|
+
11/12/2026,Fri,Early,07:00,14:30,Care Assistant,QH-304,Lukas Brennan
|
|
53
|
+
11/12/2026,Fri,Early,07:00,14:30,Care Assistant,QH-314,Joel Ambrose
|
|
54
|
+
11/12/2026,Fri,Early,07:00,14:30,Care Assistant,QH-301,Bronwen Tilsley
|
|
55
|
+
11/12/2026,Fri,Late,14:00,21:30,Senior Carer,QH-203,Godfrey Achterberg
|
|
56
|
+
11/12/2026,Fri,Late,14:00,21:30,Care Assistant,QH-309,Ravi Chaudhry
|
|
57
|
+
11/12/2026,Fri,Late,14:00,21:30,Care Assistant,QH-308,Imogen Saddler
|
|
58
|
+
11/12/2026,Fri,Late,14:00,21:30,Care Assistant,QH-307,Patrice Delacroix
|
|
59
|
+
11/12/2026,Fri,Night,21:00,07:30,Senior Carer,QH-206,Yasmin Okonedo-Hart
|
|
60
|
+
11/12/2026,Fri,Night,21:00,07:30,Care Assistant,QH-303,Corinne Vance
|
|
61
|
+
11/12/2026,Fri,Night,21:00,07:30,Care Assistant,QH-310,Florence Adebayo
|
|
62
|
+
12/12/2026,Sat,Early,07:00,14:30,Senior Carer,QH-201,Adaeze Moorcroft
|
|
63
|
+
12/12/2026,Sat,Early,07:00,14:30,Care Assistant,QH-309,Ravi Chaudhry
|
|
64
|
+
12/12/2026,Sat,Early,07:00,14:30,Care Assistant,QH-317,Tamsin Raeburn
|
|
65
|
+
12/12/2026,Sat,Early,07:00,14:30,Care Assistant,QH-314,Joel Ambrose
|
|
66
|
+
12/12/2026,Sat,Early,07:00,14:30,Care Assistant,QH-311,Niamh Corrigan
|
|
67
|
+
12/12/2026,Sat,Late,14:00,21:30,Senior Carer,QH-205,Declan Furness
|
|
68
|
+
12/12/2026,Sat,Late,14:00,21:30,Care Assistant,QH-319,Eamon Fairlie
|
|
69
|
+
12/12/2026,Sat,Late,14:00,21:30,Care Assistant,QH-306,Shona McAllister
|
|
70
|
+
12/12/2026,Sat,Late,14:00,21:30,Care Assistant,QH-320,Gwen Tarrant
|
|
71
|
+
12/12/2026,Sat,Night,21:00,07:30,Senior Carer,QH-204,Rosalind Ebo
|
|
72
|
+
12/12/2026,Sat,Night,21:00,07:30,Care Assistant,QH-305,Tendai Moyo
|
|
73
|
+
12/12/2026,Sat,Night,21:00,07:30,Care Assistant,QH-310,Florence Adebayo
|
|
74
|
+
13/12/2026,Sun,Early,07:00,14:30,Senior Carer,QH-202,Philippa Strand
|
|
75
|
+
13/12/2026,Sun,Early,07:00,14:30,Care Assistant,QH-308,Imogen Saddler
|
|
76
|
+
13/12/2026,Sun,Early,07:00,14:30,Care Assistant,QH-318,Bilal Qureshi
|
|
77
|
+
13/12/2026,Sun,Early,07:00,14:30,Care Assistant,QH-315,Agnieszka Wolak
|
|
78
|
+
13/12/2026,Sun,Early,07:00,14:30,Care Assistant,QH-302,Mehmet Arslan
|
|
79
|
+
13/12/2026,Sun,Late,14:00,21:30,Senior Carer,QH-203,Godfrey Achterberg
|
|
80
|
+
13/12/2026,Sun,Late,14:00,21:30,Care Assistant,QH-303,Corinne Vance
|
|
81
|
+
13/12/2026,Sun,Late,14:00,21:30,Care Assistant,QH-313,Harriet Quinlan
|
|
82
|
+
13/12/2026,Sun,Late,14:00,21:30,Care Assistant,QH-314,Joel Ambrose
|
|
83
|
+
13/12/2026,Sun,Night,21:00,07:30,Senior Carer,QH-201,Adaeze Moorcroft
|
|
84
|
+
13/12/2026,Sun,Night,21:00,07:30,Care Assistant,QH-304,Lukas Brennan
|
|
85
|
+
13/12/2026,Sun,Night,21:00,07:30,Care Assistant,QH-316,Kofi Mensah-Lowe
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Staff ID,Name,Grade,Contracted hours,Medication trained,Email
|
|
2
|
+
QH-201,Adaeze Moorcroft,Senior Carer,37.5,Yes,adaeze.moorcroft@quillmerehouse.example
|
|
3
|
+
QH-202,Philippa Strand,Senior Carer,37.5,Yes,philippa.strand@quillmerehouse.example
|
|
4
|
+
QH-203,Godfrey Achterberg,Senior Carer,30,Yes,godfrey.achterberg@quillmerehouse.example
|
|
5
|
+
QH-204,Rosalind Ebo,Senior Carer,37.5,Yes,rosalind.ebo@quillmerehouse.example
|
|
6
|
+
QH-205,Declan Furness,Senior Carer,30,Yes,declan.furness@quillmerehouse.example
|
|
7
|
+
QH-206,Yasmin Okonedo-Hart,Senior Carer (bank),22.5,Yes,yasmin.okonedo-hart@quillmerehouse.example
|
|
8
|
+
QH-301,Bronwen Tilsley,Care Assistant,37.5,No,bronwen.tilsley@quillmerehouse.example
|
|
9
|
+
QH-302,Mehmet Arslan,Care Assistant,37.5,No,mehmet.arslan@quillmerehouse.example
|
|
10
|
+
QH-303,Corinne Vance,Care Assistant,37.5,No,corinne.vance@quillmerehouse.example
|
|
11
|
+
QH-304,Lukas Brennan,Care Assistant,30,No,lukas.brennan@quillmerehouse.example
|
|
12
|
+
QH-305,Tendai Moyo,Care Assistant,30,No,tendai.moyo@quillmerehouse.example
|
|
13
|
+
QH-306,Shona McAllister,Care Assistant,37.5,No,shona.mcallister@quillmerehouse.example
|
|
14
|
+
QH-307,Patrice Delacroix,Care Assistant,22.5,No,patrice.delacroix@quillmerehouse.example
|
|
15
|
+
QH-308,Imogen Saddler,Care Assistant,30,No,imogen.saddler@quillmerehouse.example
|
|
16
|
+
QH-309,Ravi Chaudhry,Care Assistant,37.5,No,ravi.chaudhry@quillmerehouse.example
|
|
17
|
+
QH-310,Florence Adebayo,Care Assistant,31.5,No,florence.adebayo@quillmerehouse.example
|
|
18
|
+
QH-311,Niamh Corrigan,Care Assistant,22.5,No,niamh.corrigan@quillmerehouse.example
|
|
19
|
+
QH-312,Stanislav Petrov,Care Assistant,31.5,No,stanislav.petrov@quillmerehouse.example
|
|
20
|
+
QH-313,Harriet Quinlan,Care Assistant,30,No,harriet.quinlan@quillmerehouse.example
|
|
21
|
+
QH-314,Joel Ambrose,Care Assistant,37.5,No,joel.ambrose@quillmerehouse.example
|
|
22
|
+
QH-315,Agnieszka Wolak,Care Assistant,37.5,No,agnieszka.wolak@quillmerehouse.example
|
|
23
|
+
QH-316,Kofi Mensah-Lowe,Care Assistant,31.5,No,kofi.mensah-lowe@quillmerehouse.example
|
|
24
|
+
QH-317,Tamsin Raeburn,Care Assistant,22.5,No,tamsin.raeburn@quillmerehouse.example
|
|
25
|
+
QH-318,Bilal Qureshi,Care Assistant,30,No,bilal.qureshi@quillmerehouse.example
|
|
26
|
+
QH-319,Eamon Fairlie,Care Assistant,37.5,No,eamon.fairlie@quillmerehouse.example
|
|
27
|
+
QH-320,Gwen Tarrant,Care Assistant,30,No,gwen.tarrant@quillmerehouse.example
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Worked example: a café week, and the turnaround the first draft hid
|
|
2
|
+
|
|
3
|
+
Input → output oracle for `shift-roster`. It shows a first draft that looks covered and puts a
|
|
4
|
+
closer back on the next morning's opening shift, and the rota that passes every rule.
|
|
5
|
+
|
|
6
|
+
## Input
|
|
7
|
+
|
|
8
|
+
> Make next week's rota for the café, Monday to Saturday. Every day there's an opening shift
|
|
9
|
+
> 06:30–14:30 and a closing shift 14:00–21:00, and each needs one keyholder and one barista.
|
|
10
|
+
> Staff:
|
|
11
|
+
> - Amira: keyholder, barista, max 40 h, contracted 37.5
|
|
12
|
+
> - Ben: barista, max 24 h, contracted 24, can't do Wednesdays (college)
|
|
13
|
+
> - Chloe: keyholder, barista, max 32 h, contracted 30
|
|
14
|
+
> - Dev: keyholder, barista, max 40 h, contracted 37.5
|
|
15
|
+
> - Ema: barista, max 24 h, contracted 20, not Mondays or Tuesdays
|
|
16
|
+
> - Fay: barista, max 32 h, contracted 30
|
|
17
|
+
>
|
|
18
|
+
> At least 11 hours between shifts, nobody more than 5 days in a row.
|
|
19
|
+
|
|
20
|
+
## The first draft, and what the check found
|
|
21
|
+
|
|
22
|
+
The draft filled every shift, two people each, with the keyholders on the keyholder needs.
|
|
23
|
+
It put Ben on Thursday's close and Friday's open. The check failed it:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
FAIL Ben gets 9.5 h rest between Thu close (ends Thu 21:00) and Fri open, under the 11 h minimum
|
|
27
|
+
FAIL Ben works 30 h in week 1, over their 24 h maximum
|
|
28
|
+
WARN Ema works 14 h against 20 h contracted
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Thursday's close went to Ema instead, who is free that evening and under her hours. That
|
|
32
|
+
fixed all three. The reply never shows the draft: the manager sees the rota that passed.
|
|
33
|
+
|
|
34
|
+
## Output
|
|
35
|
+
|
|
36
|
+
**Rota, week of 9 November**
|
|
37
|
+
|
|
38
|
+
| | Mon | Tue | Wed | Thu | Fri | Sat |
|
|
39
|
+
|---|---|---|---|---|---|---|
|
|
40
|
+
| Amira | open 06:30–14:30 (keys) | open (keys) | open (keys) | open (keys) | open (keys) | |
|
|
41
|
+
| Ben | close 14:00–21:00 | | | | open | open |
|
|
42
|
+
| Chloe | close (keys) | close (keys) | close (keys) | | | open (keys) |
|
|
43
|
+
| Dev | | close | close | close (keys) | close (keys) | close (keys) |
|
|
44
|
+
| Ema | | | | close | close | close |
|
|
45
|
+
| Fay | open | open | open | open | | |
|
|
46
|
+
|
|
47
|
+
Checked: every shift has a keyholder and a barista, and nobody is under 11 hours' rest, over
|
|
48
|
+
their hours, on a day they can't work or more than 5 days in a row.
|
|
49
|
+
|
|
50
|
+
**Hours:** Amira 40 (contracted 37.5), Ben 23 (24), Chloe 29 (30), Dev 35 (37.5), Ema 21 (20),
|
|
51
|
+
Fay 32 (30). Amira is at her 40-hour maximum, 2.5 over contract, because only three people hold
|
|
52
|
+
keys and twelve shifts need one. A fourth keyholder would let her drop a shift.
|
|
53
|
+
|
|
54
|
+
**Rules used, as you gave them:** 11 hours between shifts, 5 days in a row. **Assumed:** at most
|
|
55
|
+
12 hours in a day.
|
|
56
|
+
|
|
57
|
+
The week grid is saved as `rota-week-of-2026-11-09.svg`, and the rota as `roster.json`, both in
|
|
58
|
+
the working folder.
|
|
59
|
+
|
|
60
|
+
## Why this is the oracle
|
|
61
|
+
|
|
62
|
+
- **The check passes before the rota is shown.** The draft was covered, and still broke rest and
|
|
63
|
+
a maximum. A glance at a grid doesn't show a 21:00 close followed by a 06:30 open.
|
|
64
|
+
- **Skills are matched, not heads counted.** Every shift's keyholder is one of the three
|
|
65
|
+
keyholders. Two baristas on an opening shift would look covered and be short.
|
|
66
|
+
- **The fix is the smallest change,** one shift moved to the person with room in their week,
|
|
67
|
+
and the reply explains the one hours figure over contract.
|
|
68
|
+
|
|
69
|
+
A cheaper pass fills the grid evenly, says it "looks balanced", and publishes the draft:
|
|
70
|
+
Ben opens nine and a half hours after closing, and works six hours over his maximum.
|
|
71
|
+
|
|
72
|
+

|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 954 458" width="954" height="458" font-family="Helvetica, Arial, sans-serif" font-size="11">
|
|
2
|
+
<rect width="954" height="458" fill="#ffffff"/>
|
|
3
|
+
<text x="10" y="22" font-size="15" font-weight="bold">Rota</text>
|
|
4
|
+
<text x="10" y="40" fill="#555">0 failure(s), 0 warning(s). Red marks a shift or a person the check failed.</text>
|
|
5
|
+
<rect x="150" y="60" width="112" height="358" fill="#ffffff" stroke="#ddd"/>
|
|
6
|
+
<text x="206.0" y="72" text-anchor="middle" font-weight="bold">Mon</text>
|
|
7
|
+
<rect x="262" y="60" width="112" height="358" fill="#ffffff" stroke="#ddd"/>
|
|
8
|
+
<text x="318.0" y="72" text-anchor="middle" font-weight="bold">Tue</text>
|
|
9
|
+
<rect x="374" y="60" width="112" height="358" fill="#ffffff" stroke="#ddd"/>
|
|
10
|
+
<text x="430.0" y="72" text-anchor="middle" font-weight="bold">Wed</text>
|
|
11
|
+
<rect x="486" y="60" width="112" height="358" fill="#ffffff" stroke="#ddd"/>
|
|
12
|
+
<text x="542.0" y="72" text-anchor="middle" font-weight="bold">Thu</text>
|
|
13
|
+
<rect x="598" y="60" width="112" height="358" fill="#ffffff" stroke="#ddd"/>
|
|
14
|
+
<text x="654.0" y="72" text-anchor="middle" font-weight="bold">Fri</text>
|
|
15
|
+
<rect x="710" y="60" width="112" height="358" fill="#f4f4f6" stroke="#ddd"/>
|
|
16
|
+
<text x="766.0" y="72" text-anchor="middle" font-weight="bold">Sat</text>
|
|
17
|
+
<rect x="822" y="60" width="112" height="358" fill="#f4f4f6" stroke="#ddd"/>
|
|
18
|
+
<text x="878.0" y="72" text-anchor="middle" font-weight="bold">Sun</text>
|
|
19
|
+
<line x1="0" y1="76" x2="954" y2="76" stroke="#ccc"/>
|
|
20
|
+
<text x="10" y="94" font-weight="bold">Amira</text>
|
|
21
|
+
<text x="10" y="108" fill="#555">40 h / 37.5 contracted</text>
|
|
22
|
+
<rect x="154" y="82" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
23
|
+
<text x="159" y="94">06:30–14:30</text>
|
|
24
|
+
<text x="159" y="107" fill="#555">keyholder</text>
|
|
25
|
+
<rect x="266" y="82" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
26
|
+
<text x="271" y="94">06:30–14:30</text>
|
|
27
|
+
<text x="271" y="107" fill="#555">keyholder</text>
|
|
28
|
+
<rect x="378" y="82" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
29
|
+
<text x="383" y="94">06:30–14:30</text>
|
|
30
|
+
<text x="383" y="107" fill="#555">keyholder</text>
|
|
31
|
+
<rect x="490" y="82" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
32
|
+
<text x="495" y="94">06:30–14:30</text>
|
|
33
|
+
<text x="495" y="107" fill="#555">keyholder</text>
|
|
34
|
+
<rect x="602" y="82" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
35
|
+
<text x="607" y="94">06:30–14:30</text>
|
|
36
|
+
<text x="607" y="107" fill="#555">keyholder</text>
|
|
37
|
+
<line x1="0" y1="122" x2="954" y2="122" stroke="#ccc"/>
|
|
38
|
+
<text x="10" y="140" font-weight="bold">Ben</text>
|
|
39
|
+
<text x="10" y="154" fill="#555">23 h / 24 contracted</text>
|
|
40
|
+
<rect x="154" y="128" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
41
|
+
<text x="159" y="140">14:00–21:00</text>
|
|
42
|
+
<text x="159" y="153" fill="#555">barista</text>
|
|
43
|
+
<rect x="602" y="128" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
44
|
+
<text x="607" y="140">06:30–14:30</text>
|
|
45
|
+
<text x="607" y="153" fill="#555">barista</text>
|
|
46
|
+
<rect x="714" y="128" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
47
|
+
<text x="719" y="140">06:30–14:30</text>
|
|
48
|
+
<text x="719" y="153" fill="#555">barista</text>
|
|
49
|
+
<line x1="0" y1="168" x2="954" y2="168" stroke="#ccc"/>
|
|
50
|
+
<text x="10" y="186" font-weight="bold">Chloe</text>
|
|
51
|
+
<text x="10" y="200" fill="#555">29 h / 30 contracted</text>
|
|
52
|
+
<rect x="154" y="174" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
53
|
+
<text x="159" y="186">14:00–21:00</text>
|
|
54
|
+
<text x="159" y="199" fill="#555">keyholder</text>
|
|
55
|
+
<rect x="266" y="174" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
56
|
+
<text x="271" y="186">14:00–21:00</text>
|
|
57
|
+
<text x="271" y="199" fill="#555">keyholder</text>
|
|
58
|
+
<rect x="378" y="174" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
59
|
+
<text x="383" y="186">14:00–21:00</text>
|
|
60
|
+
<text x="383" y="199" fill="#555">keyholder</text>
|
|
61
|
+
<rect x="714" y="174" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
62
|
+
<text x="719" y="186">06:30–14:30</text>
|
|
63
|
+
<text x="719" y="199" fill="#555">keyholder</text>
|
|
64
|
+
<line x1="0" y1="214" x2="954" y2="214" stroke="#ccc"/>
|
|
65
|
+
<text x="10" y="232" font-weight="bold">Dev</text>
|
|
66
|
+
<text x="10" y="246" fill="#555">35 h / 37.5 contracted</text>
|
|
67
|
+
<rect x="266" y="220" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
68
|
+
<text x="271" y="232">14:00–21:00</text>
|
|
69
|
+
<text x="271" y="245" fill="#555">barista</text>
|
|
70
|
+
<rect x="378" y="220" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
71
|
+
<text x="383" y="232">14:00–21:00</text>
|
|
72
|
+
<text x="383" y="245" fill="#555">barista</text>
|
|
73
|
+
<rect x="490" y="220" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
74
|
+
<text x="495" y="232">14:00–21:00</text>
|
|
75
|
+
<text x="495" y="245" fill="#555">keyholder</text>
|
|
76
|
+
<rect x="602" y="220" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
77
|
+
<text x="607" y="232">14:00–21:00</text>
|
|
78
|
+
<text x="607" y="245" fill="#555">keyholder</text>
|
|
79
|
+
<rect x="714" y="220" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
80
|
+
<text x="719" y="232">14:00–21:00</text>
|
|
81
|
+
<text x="719" y="245" fill="#555">keyholder</text>
|
|
82
|
+
<line x1="0" y1="260" x2="954" y2="260" stroke="#ccc"/>
|
|
83
|
+
<text x="10" y="278" font-weight="bold">Ema</text>
|
|
84
|
+
<text x="10" y="292" fill="#555">21 h / 20 contracted</text>
|
|
85
|
+
<rect x="490" y="266" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
86
|
+
<text x="495" y="278">14:00–21:00</text>
|
|
87
|
+
<text x="495" y="291" fill="#555">barista</text>
|
|
88
|
+
<rect x="602" y="266" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
89
|
+
<text x="607" y="278">14:00–21:00</text>
|
|
90
|
+
<text x="607" y="291" fill="#555">barista</text>
|
|
91
|
+
<rect x="714" y="266" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
92
|
+
<text x="719" y="278">14:00–21:00</text>
|
|
93
|
+
<text x="719" y="291" fill="#555">barista</text>
|
|
94
|
+
<line x1="0" y1="306" x2="954" y2="306" stroke="#ccc"/>
|
|
95
|
+
<text x="10" y="324" font-weight="bold">Fay</text>
|
|
96
|
+
<text x="10" y="338" fill="#555">32 h / 30 contracted</text>
|
|
97
|
+
<rect x="154" y="312" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
98
|
+
<text x="159" y="324">06:30–14:30</text>
|
|
99
|
+
<text x="159" y="337" fill="#555">barista</text>
|
|
100
|
+
<rect x="266" y="312" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
101
|
+
<text x="271" y="324">06:30–14:30</text>
|
|
102
|
+
<text x="271" y="337" fill="#555">barista</text>
|
|
103
|
+
<rect x="378" y="312" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
104
|
+
<text x="383" y="324">06:30–14:30</text>
|
|
105
|
+
<text x="383" y="337" fill="#555">barista</text>
|
|
106
|
+
<rect x="490" y="312" width="104" height="30" rx="4" fill="#e6f0fb" stroke="#4a7fc1" stroke-width="1"/>
|
|
107
|
+
<text x="495" y="324">06:30–14:30</text>
|
|
108
|
+
<text x="495" y="337" fill="#555">barista</text>
|
|
109
|
+
<line x1="0" y1="352" x2="954" y2="352" stroke="#999"/>
|
|
110
|
+
<text x="10" y="370" font-weight="bold">Coverage</text>
|
|
111
|
+
<text x="156" y="370" fill="#2e7d32" font-weight="normal">Mon open 2/2</text>
|
|
112
|
+
<text x="156" y="388" fill="#2e7d32" font-weight="normal">Mon close 2/2</text>
|
|
113
|
+
<text x="268" y="370" fill="#2e7d32" font-weight="normal">Tue open 2/2</text>
|
|
114
|
+
<text x="268" y="388" fill="#2e7d32" font-weight="normal">Tue close 2/2</text>
|
|
115
|
+
<text x="380" y="370" fill="#2e7d32" font-weight="normal">Wed open 2/2</text>
|
|
116
|
+
<text x="380" y="388" fill="#2e7d32" font-weight="normal">Wed close 2/2</text>
|
|
117
|
+
<text x="492" y="370" fill="#2e7d32" font-weight="normal">Thu open 2/2</text>
|
|
118
|
+
<text x="492" y="388" fill="#2e7d32" font-weight="normal">Thu close 2/2</text>
|
|
119
|
+
<text x="604" y="370" fill="#2e7d32" font-weight="normal">Fri open 2/2</text>
|
|
120
|
+
<text x="604" y="388" fill="#2e7d32" font-weight="normal">Fri close 2/2</text>
|
|
121
|
+
<text x="716" y="370" fill="#2e7d32" font-weight="normal">Sat open 2/2</text>
|
|
122
|
+
<text x="716" y="388" fill="#2e7d32" font-weight="normal">Sat close 2/2</text>
|
|
123
|
+
</svg>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "shift-roster",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Build a staff rota for a week or a fortnight from who is available, what each shift needs and the working-time rules, and check it with a script before anyone sees it — every shift covered with the right skills, nobody double-booked, over their hours, short of rest between shifts or past the consecutive-day limit — drawn as a week grid. Use when a manager asks to \"make the rota\", \"build next week's schedule\", \"who should work which shift\", \"check this rota\", \"fill these shifts\", or has staff availability and shift needs for a shop, restaurant, clinic, warehouse or call centre.",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [],
|
|
15
|
+
"tags": [
|
|
16
|
+
"rota",
|
|
17
|
+
"roster",
|
|
18
|
+
"scheduling",
|
|
19
|
+
"shifts",
|
|
20
|
+
"staffing",
|
|
21
|
+
"working-time",
|
|
22
|
+
"coverage"
|
|
23
|
+
],
|
|
24
|
+
"permissions": {
|
|
25
|
+
"network": [],
|
|
26
|
+
"commands": [],
|
|
27
|
+
"files": "named-paths",
|
|
28
|
+
"notes": "Reads the roster.json it is given and writes the SVG to the path passed with --svg."
|
|
29
|
+
},
|
|
30
|
+
"model": {
|
|
31
|
+
"tier": "standard",
|
|
32
|
+
"rationale": "Assigning people to shifts is constraint-heavy but bounded: the script checks every rule, so the model's job is a good first assignment and fixing what the check reports."
|
|
33
|
+
}
|
|
34
|
+
}
|