skilldrop-cli 1.6.0 → 1.8.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.
Files changed (152) hide show
  1. package/README.md +3 -0
  2. package/catalogue.json +25 -2
  3. package/model-routing.json +20 -0
  4. package/package.json +1 -1
  5. package/packs/event-planner/pack.json +61 -0
  6. package/packs/event-planner/skills/run-of-show/SKILL.md +144 -0
  7. package/packs/event-planner/skills/run-of-show/evals/eval_queries.json +30 -0
  8. package/packs/event-planner/skills/run-of-show/evals/evals.json +103 -0
  9. package/packs/event-planner/skills/run-of-show/evals/files/1/agenda.md +16 -0
  10. package/packs/event-planner/skills/run-of-show/evals/files/2/schedule.csv +8 -0
  11. package/packs/event-planner/skills/run-of-show/evals/files/3/notes.txt +3 -0
  12. package/packs/event-planner/skills/run-of-show/evals/files/4/sessions_export.csv +25 -0
  13. package/packs/event-planner/skills/run-of-show/evals/files/4/venue_and_crew.txt +27 -0
  14. package/packs/event-planner/skills/run-of-show/evals/files/5/runsheet_v4.csv +28 -0
  15. package/packs/event-planner/skills/run-of-show/evals/files/5/venue_and_suppliers.txt +22 -0
  16. package/packs/event-planner/skills/run-of-show/evals/files/6/acts_from_booker.csv +26 -0
  17. package/packs/event-planner/skills/run-of-show/evals/files/6/venue_rooms_and_crew.txt +14 -0
  18. package/packs/event-planner/skills/run-of-show/evals/files/7/runsheet_draft_v4.csv +25 -0
  19. package/packs/event-planner/skills/run-of-show/evals/files/7/venue_and_fixed_times.txt +24 -0
  20. package/packs/event-planner/skills/run-of-show/examples/product-launch.md +77 -0
  21. package/packs/event-planner/skills/run-of-show/examples/product-launch.svg +58 -0
  22. package/packs/event-planner/skills/run-of-show/manifest.json +44 -0
  23. package/packs/event-planner/skills/run-of-show/scripts/show_check.py +295 -0
  24. package/packs/event-planner/skills/run-of-show/templates/show.json +15 -0
  25. package/packs/event-planner/skills/seating-plan/SKILL.md +155 -0
  26. package/packs/event-planner/skills/seating-plan/evals/eval_queries.json +30 -0
  27. package/packs/event-planner/skills/seating-plan/evals/evals.json +164 -0
  28. package/packs/event-planner/skills/seating-plan/evals/files/1/guests.csv +31 -0
  29. package/packs/event-planner/skills/seating-plan/evals/files/10/hall_notes.txt +13 -0
  30. package/packs/event-planner/skills/seating-plan/evals/files/10/quiz_night_registrations.csv +67 -0
  31. package/packs/event-planner/skills/seating-plan/evals/files/11/notes_for_the_plan.txt +21 -0
  32. package/packs/event-planner/skills/seating-plan/evals/files/11/rsvp_list.csv +77 -0
  33. package/packs/event-planner/skills/seating-plan/evals/files/11/table_plan_draft.csv +78 -0
  34. package/packs/event-planner/skills/seating-plan/evals/files/2/table-plan.txt +8 -0
  35. package/packs/event-planner/skills/seating-plan/evals/files/3/brief.txt +4 -0
  36. package/packs/event-planner/skills/seating-plan/evals/files/3/guests.csv +49 -0
  37. package/packs/event-planner/skills/seating-plan/evals/files/4/rsvp_export.csv +127 -0
  38. package/packs/event-planner/skills/seating-plan/evals/files/4/seating_notes.txt +21 -0
  39. package/packs/event-planner/skills/seating-plan/evals/files/5/organiser_notes.txt +10 -0
  40. package/packs/event-planner/skills/seating-plan/evals/files/5/registrations.csv +93 -0
  41. package/packs/event-planner/skills/seating-plan/evals/files/5/table_plan_v3.csv +94 -0
  42. package/packs/event-planner/skills/seating-plan/evals/files/6/bridgets_notes.txt +30 -0
  43. package/packs/event-planner/skills/seating-plan/evals/files/6/ticket_export.csv +117 -0
  44. package/packs/event-planner/skills/seating-plan/evals/files/6/venue_floorplan_notes.txt +14 -0
  45. package/packs/event-planner/skills/seating-plan/evals/files/7/keep_apart_CONFIDENTIAL.txt +9 -0
  46. package/packs/event-planner/skills/seating-plan/evals/files/7/prom_seating_v3.csv +101 -0
  47. package/packs/event-planner/skills/seating-plan/evals/files/7/ticket_list.csv +101 -0
  48. package/packs/event-planner/skills/seating-plan/evals/files/7/venue_info.txt +16 -0
  49. package/packs/event-planner/skills/seating-plan/evals/files/8/registrations_export.csv +147 -0
  50. package/packs/event-planner/skills/seating-plan/evals/files/8/room_layout.md +22 -0
  51. package/packs/event-planner/skills/seating-plan/evals/files/8/seating_requests.txt +31 -0
  52. package/packs/event-planner/skills/seating-plan/evals/files/9/guest_list.csv +84 -0
  53. package/packs/event-planner/skills/seating-plan/evals/files/9/notes.txt +16 -0
  54. package/packs/event-planner/skills/seating-plan/evals/files/9/table_plan.csv +85 -0
  55. package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.md +61 -0
  56. package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.svg +39 -0
  57. package/packs/event-planner/skills/seating-plan/manifest.json +44 -0
  58. package/packs/event-planner/skills/seating-plan/scripts/seating_check.py +324 -0
  59. package/packs/event-planner/skills/seating-plan/templates/seating.json +28 -0
  60. package/packs/experience-design/pack.json +5 -0
  61. package/packs/experience-design/skills/locale-check/SKILL.md +139 -0
  62. package/packs/experience-design/skills/locale-check/evals/eval_queries.json +38 -0
  63. package/packs/experience-design/skills/locale-check/evals/evals.json +104 -0
  64. package/packs/experience-design/skills/locale-check/evals/files/1/budget.json +1 -0
  65. package/packs/experience-design/skills/locale-check/evals/files/1/locales/ar.json +16 -0
  66. package/packs/experience-design/skills/locale-check/evals/files/1/locales/de.json +12 -0
  67. package/packs/experience-design/skills/locale-check/evals/files/1/locales/en.json +12 -0
  68. package/packs/experience-design/skills/locale-check/evals/files/1/locales/pl.json +12 -0
  69. package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values/strings.xml +12 -0
  70. package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-es/strings.xml +11 -0
  71. package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-fr/strings.xml +12 -0
  72. package/packs/experience-design/skills/locale-check/evals/files/3/po/ja.po +20 -0
  73. package/packs/experience-design/skills/locale-check/evals/files/3/po/messages.pot +23 -0
  74. package/packs/experience-design/skills/locale-check/evals/files/3/po/ru.po +22 -0
  75. package/packs/experience-design/skills/locale-check/evals/files/4/budgets.json +15 -0
  76. package/packs/experience-design/skills/locale-check/evals/files/4/locales/ar.json +265 -0
  77. package/packs/experience-design/skills/locale-check/evals/files/4/locales/de.json +265 -0
  78. package/packs/experience-design/skills/locale-check/evals/files/4/locales/en.json +265 -0
  79. package/packs/experience-design/skills/locale-check/evals/files/4/locales/fr.json +265 -0
  80. package/packs/experience-design/skills/locale-check/evals/files/4/locales/pl.json +265 -0
  81. package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values/strings.xml +77 -0
  82. package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-es/strings.xml +63 -0
  83. package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-ja/strings.xml +61 -0
  84. package/packs/experience-design/skills/locale-check/evals/files/6/po/cs.po +605 -0
  85. package/packs/experience-design/skills/locale-check/evals/files/6/po/marlin.pot +602 -0
  86. package/packs/experience-design/skills/locale-check/evals/files/6/po/pt_BR.po +602 -0
  87. package/packs/experience-design/skills/locale-check/evals/files/6/po/ru.po +608 -0
  88. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.strings +160 -0
  89. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.stringsdict +70 -0
  90. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.strings +157 -0
  91. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.stringsdict +86 -0
  92. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.strings +160 -0
  93. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.stringsdict +68 -0
  94. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.strings +160 -0
  95. package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.stringsdict +62 -0
  96. package/packs/experience-design/skills/locale-check/examples/settings-release.md +107 -0
  97. package/packs/experience-design/skills/locale-check/manifest.json +45 -0
  98. package/packs/experience-design/skills/locale-check/scripts/locale_check.py +1105 -0
  99. package/packs/interior-designer/pack.json +60 -0
  100. package/packs/interior-designer/skills/furniture-layout/SKILL.md +182 -0
  101. package/packs/interior-designer/skills/furniture-layout/evals/eval_queries.json +11 -0
  102. package/packs/interior-designer/skills/furniture-layout/evals/evals.json +133 -0
  103. package/packs/interior-designer/skills/furniture-layout/evals/files/2/living-room-notes.md +24 -0
  104. package/packs/interior-designer/skills/furniture-layout/evals/files/3/office-brief.md +18 -0
  105. package/packs/interior-designer/skills/furniture-layout/evals/files/4/furniture_schedule.csv +15 -0
  106. package/packs/interior-designer/skills/furniture-layout/evals/files/4/site_survey.txt +22 -0
  107. package/packs/interior-designer/skills/furniture-layout/evals/files/5/layout_v2.csv +14 -0
  108. package/packs/interior-designer/skills/furniture-layout/evals/files/5/measurements.txt +16 -0
  109. package/packs/interior-designer/skills/furniture-layout/evals/files/6/access_consultant_email.txt +19 -0
  110. package/packs/interior-designer/skills/furniture-layout/evals/files/6/furniture_stock.csv +5 -0
  111. package/packs/interior-designer/skills/furniture-layout/evals/files/6/site_measurements.txt +14 -0
  112. package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_214_layout.csv +11 -0
  113. package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_and_brand_standard.txt +20 -0
  114. package/packs/interior-designer/skills/furniture-layout/evals/files/8/email_from_practice_manager.txt +44 -0
  115. package/packs/interior-designer/skills/furniture-layout/evals/files/8/furniture_we_are_keeping.csv +10 -0
  116. package/packs/interior-designer/skills/furniture-layout/evals/files/9/reading_room_schedule.csv +15 -0
  117. package/packs/interior-designer/skills/furniture-layout/evals/files/9/room_notes.txt +23 -0
  118. package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.md +121 -0
  119. package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.svg +57 -0
  120. package/packs/interior-designer/skills/furniture-layout/manifest.json +44 -0
  121. package/packs/interior-designer/skills/furniture-layout/scripts/layout_check.py +1130 -0
  122. package/packs/interior-designer/skills/furniture-layout/templates/layout.json +26 -0
  123. package/packs/operations-manager/pack.json +60 -0
  124. package/packs/operations-manager/skills/shift-roster/SKILL.md +169 -0
  125. package/packs/operations-manager/skills/shift-roster/evals/eval_queries.json +38 -0
  126. package/packs/operations-manager/skills/shift-roster/evals/evals.json +135 -0
  127. package/packs/operations-manager/skills/shift-roster/evals/files/1/shifts.csv +3 -0
  128. package/packs/operations-manager/skills/shift-roster/evals/files/1/staff.csv +8 -0
  129. package/packs/operations-manager/skills/shift-roster/evals/files/2/rota.csv +22 -0
  130. package/packs/operations-manager/skills/shift-roster/evals/files/2/staff.csv +6 -0
  131. package/packs/operations-manager/skills/shift-roster/evals/files/3/team.md +14 -0
  132. package/packs/operations-manager/skills/shift-roster/evals/files/4/availability_export_wk47.csv +23 -0
  133. package/packs/operations-manager/skills/shift-roster/evals/files/4/rota_notes.txt +20 -0
  134. package/packs/operations-manager/skills/shift-roster/evals/files/5/rota_draft_16-29nov.csv +107 -0
  135. package/packs/operations-manager/skills/shift-roster/evals/files/5/staff_list.csv +17 -0
  136. package/packs/operations-manager/skills/shift-roster/evals/files/6/availability_notes.txt +24 -0
  137. package/packs/operations-manager/skills/shift-roster/evals/files/6/peoplehub_staff_export.csv +14 -0
  138. package/packs/operations-manager/skills/shift-roster/evals/files/6/rota_template.csv +25 -0
  139. package/packs/operations-manager/skills/shift-roster/evals/files/7/leave_and_availability.txt +18 -0
  140. package/packs/operations-manager/skills/shift-roster/evals/files/7/rota_wc_30nov.csv +47 -0
  141. package/packs/operations-manager/skills/shift-roster/evals/files/7/staff_list.csv +15 -0
  142. package/packs/operations-manager/skills/shift-roster/evals/files/8/availability_form_responses.csv +22 -0
  143. package/packs/operations-manager/skills/shift-roster/evals/files/8/cover_requirements.csv +15 -0
  144. package/packs/operations-manager/skills/shift-roster/evals/files/8/staff_export.csv +29 -0
  145. package/packs/operations-manager/skills/shift-roster/evals/files/9/leave_and_restrictions.txt +16 -0
  146. package/packs/operations-manager/skills/shift-roster/evals/files/9/rota_export_07-13Dec.csv +85 -0
  147. package/packs/operations-manager/skills/shift-roster/evals/files/9/staff_list.csv +27 -0
  148. package/packs/operations-manager/skills/shift-roster/examples/cafe-week.md +72 -0
  149. package/packs/operations-manager/skills/shift-roster/examples/cafe-week.svg +123 -0
  150. package/packs/operations-manager/skills/shift-roster/manifest.json +34 -0
  151. package/packs/operations-manager/skills/shift-roster/scripts/roster_check.py +633 -0
  152. package/packs/operations-manager/skills/shift-roster/templates/roster.json +22 -0
@@ -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.1",
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
+ }