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,155 @@
1
+ ---
2
+ name: seating-plan
3
+ description: Seat guests at tables for a wedding, gala, conference dinner or awards night, and check the chart with a script — every guest seated once, no table over capacity, people who must sit together together, people who must be kept apart apart, wheelchair users at accessible places — drawn as a room plan with names at each table. Use when an organiser asks to "make the seating plan", "who sits where", "seat these 120 guests", "check my table plan", or has a guest list with groups and keep-apart requests.
4
+ ---
5
+
6
+ # seating-plan
7
+
8
+ A table plan for a seated event, where every rule the organiser gave holds at once: each guest
9
+ has exactly one seat, no table is over its count, households and groups sit together, the
10
+ people who must be kept apart are, and wheelchair users are at tables with step-free access.
11
+ With 120 guests and a dozen requests, a plan that looks right usually breaks one of them. The
12
+ agent decides who sits where and why; a script checks every rule on every table and draws the
13
+ room, so a broken request is found before the organiser prints place cards.
14
+
15
+ ## How to respond
16
+
17
+ **These rules come before the steps and outrank them:**
18
+
19
+ - **Their file comes back in exactly its own shape.** Fixing their plan, return their file
20
+ with the same columns, column order, headers and row order, and only the cells a rule
21
+ forces changed, ready for the venue to print from. Building from a guest list, hand back
22
+ their columns plus only the table (and seat) columns the plan needs. Every change goes in
23
+ the reply, not the file: the guest, what moved and why. Add a change column, or any other
24
+ column, only when they ask for one. Given a pasted list, reply with a table. Write every
25
+ deliverable the request names, such as place-card order or the caterer's list.
26
+ - **Working files stay out of sight.** The checker's input and any intermediate file go in a
27
+ private temporary folder made for this run alone (`mktemp -d`, never a fixed path such as `/tmp/seating`, which another session can read or overwrite), and are deleted before you reply. Never overwrite a file the person gave you: write the corrected copy beside it under a plain name (`rota-fixed.csv`), and leave theirs as it was. Draw the
28
+ room only when a drawing is asked for or the venue needs a floor plan, and then once. Never
29
+ leave anything running in the background.
30
+ - **Carry every field through, without reshaping their file.** Every detail the person gave
31
+ per guest (meal choice, dietary need, party, notes) reaches the reply or the deliverable it
32
+ belongs in, such as the caterer's list, and each conflict between them is flagged: a vegan
33
+ guest who chose the beef, a child in a seat marked for a speaker.
34
+ - **Soft notes are rules.** "Keep the grandparents near the door", "not by the speakers":
35
+ build them in, and say which you couldn't meet.
36
+ - **Fixing their plan means minimal changes.** Move only the guests a rule forces, list each
37
+ move with the rule, and keep every other seat as they placed it.
38
+ - **A passing check is the floor, not the reply.** The reply is about their guests, in their
39
+ words: never file formats, tools or paths.
40
+
41
+ 1. **Collect the guest list and the rules.** Take them from the files the organiser names (a
42
+ guest list CSV or spreadsheet export, an RSVP export, a pasted list) or the message:
43
+ - **Guests:** name, household or party, and needs: wheelchair, near an exit, dietary
44
+ (dietary and meal choice are carried through to the deliverable, not seating rules)
45
+ - **Tables:** how many, seats each, round or long, which are step-free, and where they
46
+ stand, if a room layout exists
47
+ - **Requests:** who must sit together, who must be kept apart, fixed seats (the head table,
48
+ a sponsor's table)
49
+
50
+ Ask at most two questions, only about a rule that changes the plan. With no guests, emit
51
+ `BLOCKED: need the guest list`.
52
+
53
+ 2. **Write the plan file** in the shape of [`templates/seating.json`](templates/seating.json):
54
+ `tables` (id, capacity, shape, `at` in metres, `accessible`), `guests` (id, name, party,
55
+ needs, dietary), `together`, `apart`, `fixed`, and `assignments` as table → guest ids.
56
+ Seat in this order, because each step narrows the next:
57
+ 1. fixed seats;
58
+ 2. wheelchair users and anyone who must be near an exit, at the tables that allow it;
59
+ 3. together groups and households, whole;
60
+ 4. the apart pairs, kept on different tables;
61
+ 5. everyone else, filling tables evenly rather than leaving one half empty.
62
+
63
+ 3. **Run the checker and fix every FAIL before showing anything.** Keep `seating.json` in a
64
+ temporary folder; a drawing, when wanted, goes in the working directory as
65
+ `seating-plan.svg`, never inside this folder.
66
+
67
+ ```bash
68
+ work=$(mktemp -d 2>/dev/null || mktemp -d ./.work.XXXXXX) # a private folder for this run only
69
+ # Claude Code
70
+ python3 "${CLAUDE_SKILL_DIR}/scripts/seating_check.py" "$work/seating.json"
71
+ # Other IDEs (from the skill folder); add --svg only when a drawing is wanted
72
+ python3 scripts/seating_check.py "$work/seating.json" --svg seating-plan.svg
73
+ ```
74
+
75
+ Exit 0 means every rule holds; 1 means one is broken; 2 means the file is malformed. Move
76
+ guests and rerun until it exits 0. A WARN (a household split because it is bigger than a
77
+ table, a half-empty table, someone who came alone at a table of one family) stands only
78
+ with a sentence saying why.
79
+
80
+ 4. **When the rules can't all hold, say which and stop guessing.** Name the conflict and the
81
+ smallest change that resolves it: ✅ *"The Moss and Park families (14 people) must sit
82
+ together, and Ed and Bo must be kept apart, but Ed is in the Park group and Bo in the Moss:
83
+ with 10-seat tables they can't share one, so one family splits. Splitting the Parks 6 + 4
84
+ keeps every other request."* Never break a request quietly to make the plan pass.
85
+
86
+ 5. **Reply for the organiser, in this order:**
87
+ 1. **The plan:** in their file's format when they gave one, otherwise a table of each
88
+ table and who sits there, step-free tables marked.
89
+ 2. **What couldn't be met,** with the reason and the choice it needs from them.
90
+ 3. **The assumptions,** each tagged `[assumption]`: a seat count or a layout they didn't give.
91
+ 4. **The caterer's list:** meal choice and dietary need per guest and per table, with each
92
+ conflict flagged.
93
+ 5. **The files:** their plan in their format, and the drawing if one was made.
94
+
95
+ Write for someone planning an event: no file formats, no tool or script names, no paths
96
+ inside this folder. Say *"every request is met"*, not what checked it.
97
+
98
+ **Checking a plan the organiser already made:** run the same checker on their plan, report
99
+ each problem with the fix that disturbs the fewest guests, and hand back their file with
100
+ those fixes made and noted. Don't reseat the room unless they ask.
101
+
102
+ **Non-interactive runs** (subagent, CI, headless): with no table size, use 10-seat rounds; with
103
+ no layout, draw tables in a grid; with no accessible tables named, mark the ones nearest an
104
+ exit, each tagged `[assumption]` at the top of the reply. With no guest list, emit
105
+ `BLOCKED: need the guest list`.
106
+
107
+ ## Useful references in this skill
108
+
109
+ - [`templates/seating.json`](templates/seating.json) — the file shape: tables, guests, requests and assignments
110
+ - [`scripts/seating_check.py`](scripts/seating_check.py) — checks every guest seated once, capacity, together, apart, access and fixed seats; draws the room
111
+ - [`examples/wedding-dinner.md`](examples/wedding-dinner.md) — worked example: a 24-guest wedding where the brief itself conflicts, and the reply names it
112
+
113
+ The order-of-the-day timings, the speeches and the changeovers belong to `run-of-show`.
114
+
115
+ ## Quality bar
116
+
117
+ - **Every guest has exactly one seat, and no table is over its count.** The checker exits 0 before the plan is shown.
118
+ - **Every together group and every apart pair holds,** or the reply names the one that can't and why.
119
+ - **Every wheelchair user is at a step-free table,** and every fixed seat is where it was fixed.
120
+ - **Tables fill evenly:** no half-empty table without a reason.
121
+ - **The reply leads with who sits where,** in a table the organiser could print.
122
+ - **Nothing is invented:** no guest, request or table that wasn't given.
123
+ - **Their file comes back in its exact columns and row order,** with every change listed in the reply, not in the file.
124
+ - **Every detail they gave per guest reaches the reply or the deliverable it belongs in,** and each conflict is flagged.
125
+ - **Their notes are honoured,** and their own plan changes only where a rule forces it.
126
+ - **No working file is left in their folder.**
127
+
128
+ ## When to use this skill
129
+
130
+ - ✅ A seating chart for a wedding, gala, awards dinner or conference dinner
131
+ - ✅ Checking an existing table plan before the place cards are printed
132
+ - ✅ Reseating after late RSVPs or a new keep-apart request
133
+ - ✅ A plan for 20 guests or 400
134
+
135
+ ## When NOT to use this skill
136
+
137
+ - ❌ The order of the day, speeches and changeovers: that's `run-of-show`
138
+ - ❌ Theatre or classroom seating with numbered rows and no groups: it's a seat count, not a plan
139
+ - ❌ Furniture placement and clearances in a room: that's a layout drawing
140
+ - ❌ Choosing the venue or the menu
141
+
142
+ ## Anti-patterns to avoid
143
+
144
+ - ❌ **Showing a plan before every rule is checked.** A keep-apart pair at table 7 is the one guests notice.
145
+ - ❌ **Breaking a request quietly to make the numbers fit.** Name the conflict and let the organiser choose.
146
+ - ❌ **Seating in guest-list order.** Fixed seats, access needs and groups go first, or they end up split.
147
+ - ❌ **One half-empty table at the back** while others are full. Spread the space.
148
+ - ❌ **Mentioning files, formats or tools in the reply.** The organiser wants names at tables.
149
+ - ❌ **An extra "change" or "dietary" column in the venue's file.** They print from its exact columns; the changes and the meals go in the reply or the caterer's list.
150
+ - ❌ **Treating dietary needs as a seating rule.** They go to the caterer, per guest and table.
151
+ - ❌ **Dropping a column the person gave.** The meal choices are what the venue needs next.
152
+ - ❌ **A fixed temporary path.** Two sessions at once share it, and one plan leaks into the other.
153
+ - ❌ **Overwriting the person's own file.** They lose the version they sent.
154
+ - ❌ **A JSON file and a drawing nobody asked for** left beside their guest list.
155
+ - ❌ **Telling them the fixes instead of making them.** Hand back the corrected file.
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "make the seating plan for our wedding, 120 guests, here's the list",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "who sits where at the gala? keep the board apart from the press",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "check my table plan before I print the place cards",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "seat these conference dinner guests by company, tables of 10",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "write the minute-by-minute for the wedding day",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "draw a floor plan for the venue's new function room, 12 x 18 m",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "map the guest's journey from booking a ticket to arriving at the gala",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,164 @@
1
+ {
2
+ "skill_name": "seating-plan",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Can you do the seating for our anniversary dinner? 30 guests, three round tables of 10, guest list attached (guests.csv). Table 1 is the only step-free one. Keep households together, and please keep Cal Reed and Ivy Lowe apart — long story.",
7
+ "assertions": [
8
+ "Seats all 30 guests, each exactly once, with no table over 10",
9
+ "Every household from the list sits at one table",
10
+ "Cal Reed and Ivy Lowe are at different tables",
11
+ "Rosa Vega, who uses a wheelchair, is at table 1",
12
+ "Leads with a table-by-table list of who sits where",
13
+ "Lists the dietary needs per table for the caterer",
14
+ "Saves a drawing of the room under a plain name in the working directory and names it",
15
+ "Does not mention scripts, JSON or the skill's own files in the reply"
16
+ ]
17
+ },
18
+ {
19
+ "id": 2,
20
+ "prompt": "Our venue coordinator sent this table plan (table-plan.txt). Can you check it before we print place cards? Don't redo it, just tell me what's wrong and how to fix it.",
21
+ "assertions": [
22
+ "Finds that table 1 has 9 guests for 8 seats",
23
+ "Finds that Cal Reed and Ivy Lowe, who must not sit together, are both at table 1",
24
+ "Finds that Rosa Vega, who uses a wheelchair, is at table 2, which isn't step-free",
25
+ "Finds that the Ota household is split between tables 3 and 4",
26
+ "Gives a fix for each problem that moves as few guests as possible",
27
+ "Does not hand back a rewritten plan for the whole room",
28
+ "Does not invent guests, tables or requests that aren't in the file"
29
+ ]
30
+ },
31
+ {
32
+ "id": 3,
33
+ "prompt": "Seat the awards dinner (brief.txt, guests.csv). Northwind asked for all 12 of their people at one table. Non-interactive, no follow-up questions.",
34
+ "assertions": [
35
+ "Says plainly that 12 people can't sit at one 10-seat table",
36
+ "Proposes the smallest change, such as splitting Northwind across two neighbouring tables or a larger table if the venue has one, and says which",
37
+ "Seats every other company's guests together by company",
38
+ "Seats every guest exactly once, with no table over 10",
39
+ "Does not quietly seat 12 at a table of 10 or drop guests to make it fit",
40
+ "States any assumption it made, tagged"
41
+ ]
42
+ },
43
+ {
44
+ "id": 4,
45
+ "held_out": "2026-11-06",
46
+ "prompt": "Hi! Can you do our seating plan? We're getting married at Hollins Barn on 12 December. The RSVP export from our wedding website is rsvp_export.csv and all my notes (who can't sit together etc) are in seating_notes.txt. The barn has a top table for 8 and 12 round tables of 10. I need to send the plan to the venue on Monday so please just do the whole thing.",
47
+ "assertions": [
48
+ "Writes the plan, runs the seating check script on it, and shows the final chart only after a run with no failures",
49
+ "Seats exactly the 118 guests who accepted (126 rows on the export, 8 declined): none of Hamish and Lorna Petrie, Ana and Paulo Reis, Moira and Iain Duncan, Felix Brandt or Kofi Osei appears, and the rest of Kofi's party (Martin, Abigail and Efua Osei) is still seated",
50
+ "Puts exactly the 8 named people on the top table (Ellie Marsh, Rob Achterberg, Alan and Sue Achterberg, Kit and Dana Mwangi, Jess and Sam Okoro), with the other 110 at the 12 rounds and no round over 10",
51
+ "Keeps every RSVP party at one table, and seats the 10 uni guests (parties 14, 17, 21 and 27) together on one table",
52
+ "Seats Edna Price, Joseph Achterberg and Priya Sandhu (wheelchair users) only at tables 1-4, with no more than two wheelchair users at any table; this puts the uni table among tables 1-4, and Bev and Neil Talbot sit at Edna's table with the rest of her party",
53
+ "Keeps all five keep-apart pairs at different tables: Gordon Marsh / Bev Talbot, Callum Price / Fern Okafor, Darren Hale / Lee Hale, Nigel Fairbairn / Martin Osei, Tasha Quinn / Imogen Rowe (Callum is in Edna's party, so Fern cannot be at that table)",
54
+ "Draws a room plan with the top table and tables 1-12 laid out, each labelled with its number and the names seated at it, showing tables 1-4 as the step-free ground-floor tables",
55
+ "Does not invent guests, plus-ones, tables or extra seats that are not in the export, the notes or the prompt"
56
+ ]
57
+ },
58
+ {
59
+ "id": 5,
60
+ "held_out": "2026-11-06",
61
+ "prompt": "Final table plan for Thursday's awards dinner is table_plan_v3.csv. The registrations export is registrations.csv and my notes are organiser_notes.txt. Can you check it before it goes to the venue tomorrow morning and fix anything that's wrong? Venue is 12 rounds of 8, and tables 9-12 are up on the mezzanine.",
62
+ "assertions": [
63
+ "Runs the seating check script on the plan as supplied and reports what it fails before changing anything",
64
+ "Finds Table 1 has 10 people (all of Halvard Freight) against a hard maximum of 8, and says the sponsor's request for all ten at one table cannot be met; it seats 8 at Table 1 and the other 2 at a main-floor table with room (Table 2 has 2 empty seats) and flags this as something for the organiser to raise with Halvard, rather than leaving 10 at Table 1 or saying the request is met",
65
+ "Finds Priyanka Desai seated twice, at Table 7 and Table 12, and keeps her in only one seat",
66
+ "Finds Duncan Pell at Table 11 with Moira Ashgrove despite the keep-apart note, and moves one of them",
67
+ "Finds Rachel Vint, a wheelchair user, at Table 12 on the mezzanine and moves her to a main-floor table (1-8) with a free seat",
68
+ "Does not flag correct entries as errors: Corvane Haulage (Table 3) and Brindle Logistics (Table 6) are already apart, Graham Oduya is already on the main floor at Table 8, and tables with exactly 8 are full, not over",
69
+ "Gives a corrected plan that seats all 92 registered guests exactly once with every table at 8 or fewer, and re-runs the check so only the Halvard split remains",
70
+ "Does not invent guests, a 13th table, extra chairs or a larger table the venue has not offered"
71
+ ]
72
+ },
73
+ {
74
+ "id": 6,
75
+ "held_out": "2026-11-07",
76
+ "prompt": "Can you do the seating plan for the Lantern Hill Hospice Winter Gala on Sat 12 Dec? The ticket export is ticket_export.csv, my notes (top table, sponsors and who has to be kept apart) are in bridgets_notes.txt, and the venue's floor plan notes are in venue_floorplan_notes.txt. I need something I can give the venue: a list by table number with the names and the dietary counts for each table, and a room plan with the names at each table. And an A-Z list of guests with their table numbers for the welcome desk, please.",
77
+ "assertions": [
78
+ "Seats all 128 guests (the 116 in the ticket export plus the 12 top-table guests in the notes) exactly once, with no table over its places: 12 at Table 1 and 10 at each of Tables 2-13",
79
+ "Table 1 holds exactly the 12 top-table people listed in bridgets_notes.txt",
80
+ "Everyone on an order sits at one table, and the linked orders share a table as asked: the Okonjo order (1016) with the Ferris order (1019), Sandra Marsh's order (1024) with Pauline Delaney's (1027), and Carol Pike (1120) with Joanne and Martin Pike (1068)",
81
+ "The five keep-apart pairs are all at different tables: Lucy and Mark Varden, Imogen Hale and Clive Barraclough, Graham Pemberton and Nigel Ashworth, Liam Kettlewell and Sienna Sugden, and Esme Wainwright and Yasmin Sugden",
82
+ "The three wheelchair users sit at tables 5, 9 or 13, no more than 2 to a table: Gordon Haverstock's Quernstone Freight table on Table 5 (the only front-row table with level access), and the Pemberton and Ashworth orders on 9 and 13, one each, since Graham Pemberton and Nigel Ashworth must be kept apart",
83
+ "The three sponsor tables (Quernstone Freight, Halberd & Vey Solicitors, Tindale Glassworks) are all on the front row, Tables 2-5",
84
+ "Gives the venue a table-by-table list with dietary counts per table that add up to the totals across all 128 guests (23 vegetarian, 7 vegan, 6 gluten free, 2 severe nut allergy, including the top table), plus a room plan with names at each table and an A-Z list with table numbers",
85
+ "Does not invent guests, a 14th table or extra chairs, and does not give anyone a dietary need or access need that is not in the export or the notes"
86
+ ]
87
+ },
88
+ {
89
+ "id": 7,
90
+ "held_out": "2026-11-07",
91
+ "prompt": "This is my seating plan for the Year 13 prom (prom_seating_v3.csv) - the venue prints the place cards straight from it, so it has to be right. The ticket list with everyone's friendship group and access needs is ticket_list.csv, the head of year's keep-apart list is keep_apart_CONFIDENTIAL.txt, and venue_info.txt has the hall layout. Can you check it, fix what's wrong and send it back in the same format, plus a plan of the hall with names on each table I can put on the screen at the door? If there's anything you can't fix, tell me what I need to decide.",
92
+ "assertions": [
93
+ "Flags that Table 9 has 9 people against 8 chairs, and fixes it by moving one person who is not in a friendship group (Preston Zielinski or Tegan Ahmed) to a table with a spare seat, without splitting any friendship group",
94
+ "Flags that Sana Kerr and Lily-Mae Oakes, who are on the keep-apart list, are both on Table 6, and fixes it by moving one of their friendship groups (G17 or G18) to another table, whole, without putting any other keep-apart pair together",
95
+ "Flags that Kieran Doherty, a wheelchair user, is on Table 11, which is down the steps, and moves him with his whole group (G08, 6 people) to Table 1 or 2 (for example by swapping G08 with G14 on Table 2)",
96
+ "Says that friendship group G03 (10 students) cannot sit together because no table seats more than 8 and extra chairs aren't allowed, so it stays split (best kept on neighbouring tables, as Tables 3 and 4 are now) and is put to the organiser as a decision rather than shown as fixed",
97
+ "Raises no false alarms: Amira Saleh on Table 1, the staff table (13) with 6 people, and keep-apart pairs on neighbouring but different tables (Rosie Sykes on 8, Callum Hartley on 9) are not reported as problems",
98
+ "The returned plan seats all 100 people once each, has no table over 8, has every keep-apart pair on different tables, has both wheelchair users on Table 1 or 2 and all six staff on Table 13, and splits no friendship group other than G03",
99
+ "Returns prom_seating_v3.csv in the same Table, Seat, Name layout, plus a hall plan with the names at each table",
100
+ "Does not invent students, staff, a 14th table or a 9th chair at any table"
101
+ ]
102
+ },
103
+ {
104
+ "id": 8,
105
+ "held_out": "2026-11-07",
106
+ "prompt": "I'm organising Velmora Analytics' kick-off dinner. Can you do the seating plan? Attached: registrations_export.csv (straight out of the event booking system), room_layout.md (the venue's floor plan and rules) and seating_requests.txt (the rules HR and leadership gave me). I need every guest at a table and something I can hand to the venue.",
107
+ "assertions": [
108
+ "Seats exactly 144 guests: the export has 146 rows, but Elowen Larkspur and Xanthe Oakshott are each registered twice, and each is seated once",
109
+ "No table has more than 10 people and no extra table or 11th cover is added",
110
+ "All four wheelchair users (Ulric Greythorn, Isolde Eastwick, Fintan Oakshott, Kalinda Pilbeam) are at tables 13, 14 or 15, with no more than two wheelchair users at any one table",
111
+ "Platform Engineering (10 including plus-ones, among them Ulric Greythorn) and Leeds Support (9 including plus-ones, among them Isolde Eastwick) are each seated whole at one of the accessible tables 13-15",
112
+ "Every sit-together group in seating_requests.txt is at a single table: the six named teams, each client party with its account manager, and every plus-one with the person who brought them",
113
+ "Every keep-apart pair is at different tables, including the competing clients Yusuf Ravensworth / Chidi Fujimoto and Noor Drummond / Bram Quarrie",
114
+ "Draws the plan as the room: the 15 tables in the venue's layout and numbering with the stage, and the names at each table, and reports a check of the finished plan against the rules",
115
+ "Does not invent names for the three unnamed plus-ones (registered only as guests of Thaddeus Underhill, Rufaro Yelverton, Zelda Abernethy) and does not seat anyone who is not in the export"
116
+ ]
117
+ },
118
+ {
119
+ "id": 9,
120
+ "held_out": "2026-11-07",
121
+ "prompt": "I've done the table plan for my colleague Maureen's retirement party (table_plan.csv). The guest list is guest_list.csv and all the rules and Maureen's wishes are in notes.txt. Can you check it, sort out anything that's wrong and send it back ready to print? I'm printing the table cards first thing tomorrow.",
122
+ "assertions": [
123
+ "Catches that Hamish Moreau appears twice (Table 6 and Table 4) and leaves them at one table only",
124
+ "Catches that Table 2 has 11 people at a table for 10 and brings it back to 10 or fewer",
125
+ "Catches that Noor Underhill and Lysander Dunmore are at the same table (Table 8) despite the keep-apart note and separates them",
126
+ "Catches that Fintan Rendall, a wheelchair user, is at Table 9 on the stepped terrace and moves them to a step-free table (1-7)",
127
+ "Says plainly that Maureen's wish to have both Graham Petherick and Lorraine Petherick on the top table cannot be met because they are on the keep-apart list, takes one of them off Table 1 or asks which to keep, and does not present the plan as meeting every request",
128
+ "The returned plan seats all 83 guests on guest_list.csv exactly once, keeps every couple and family together and puts no one at a terrace table who uses a wheelchair",
129
+ "Returns a printable table plan (each table with its guests' names) and lists the changes it made, leaving guests who were already correctly seated where they were",
130
+ "Does not invent guests, seats or tables not in the files (no Table 10, no extra chair at the top table)"
131
+ ]
132
+ },
133
+ {
134
+ "id": 10,
135
+ "held_out": "2026-11-08",
136
+ "prompt": "We're running the Bramblecote Hospice quiz night on Saturday. Attached is the export from our ticketing site (quiz_night_registrations.csv) and the hall's notes (hall_notes.txt). Teams sit together, one team per table, and solo players go into teams that have space - no team over 8. Can you do the seating plan? I need something to hand the hall team for setting up and something for the chip shop, who deliver the suppers to the tables.",
137
+ "assertions": [
138
+ "Seats exactly the 65 guests with completed tickets, each once - Mungo Wadebridge's refunded solo ticket (order QN-2099) is not seated as a second person",
139
+ "Puts each team at its own table with no table over capacity, including table 10 which seats only 6, and no team over 8 after solo players are added",
140
+ "Puts solo player Gideon Youlden on The Know-It-Owls with their partner Hamish Youlden, and keeps Lorna Nethercott off the table of Selwyn Cundall (Quizzy Rascals)",
141
+ "Seats both wheelchair users - Wilf Rudge (Les Quizerables) and solo player Lorna Brockhurst - at step-free tables 1-6, not on the raised area",
142
+ "Gives the hall team a room plan or list by table number with the number of chairs at each table and the names at each table",
143
+ "Gives the chip shop per-table supper counts that add up to 45 fish, 12 halloumi and 8 tofu, and flags by table the coeliac (gluten-free batter), the severe nut allergy and the no-dairy guest",
144
+ "Leaves attendee emails and phone numbers out of both the hall and the chip-shop handouts",
145
+ "Does not invent guests, supper choices, dietary needs or tables not in the export or hall notes"
146
+ ]
147
+ },
148
+ {
149
+ "id": 11,
150
+ "held_out": "2026-11-08",
151
+ "prompt": "I'm social secretary at our rowing club and I've had a go at the table plan for our 50th anniversary dinner. Can you check table_plan_draft.csv against rsvp_list.csv and notes_for_the_plan.txt, fix what's wrong and send it back in the same format so I can forward it to the venue?",
152
+ "assertions": [
153
+ "Finds that Xander Vosper is seated twice (on Table 7 and on Table 3) and seats them once in the fix",
154
+ "Finds that Table 5 has 11 people against 10 seats and brings it to 10 or fewer by moving a whole booking",
155
+ "Finds that wheelchair user Callum Stallard and companion Mungo Stallard are on Table 8 on the balcony (stairs only) and moves them together to a ground-floor table 1-6",
156
+ "Finds that Greer Gascoigne and Ulrika Gascoigne (booking KR316) are split between Table 2 and Table 6, and reunites them",
157
+ "Names the clash between the President's wish for all five founders on the top table and the Welfare Officer's request to keep Piers Abernethy and Jolene Ivesley apart - both are on Table 1 in the draft - and does not quietly drop either one; it either leaves the choice to the secretary or says which it put first and why",
158
+ "The corrected plan seats all 76 people on the RSVP list exactly once, no table over 10, every booking together, and keeps Mungo Nancarrow and Gwenllian Oldroyd at different tables",
159
+ "Returns the plan in the same three-column format (Table, Name, Booking ref) as the draft",
160
+ "Does not invent guests, tables, seats or requests not in the input, such as a tenth table or an extra seat squeezed onto Table 1"
161
+ ]
162
+ }
163
+ ]
164
+ }
@@ -0,0 +1,31 @@
1
+ name,household,needs or diet
2
+ Hana Ito,Ito,
3
+ Ken Ito,Ito,
4
+ Yui Ito,Ito,vegetarian
5
+ Ola Berg,Berg,
6
+ Per Berg,Berg,gluten-free
7
+ Rosa Vega,Vega,wheelchair
8
+ Luis Vega,Vega,
9
+ Ana Vega,Vega,
10
+ Tito Vega,Vega,
11
+ Maya Fox,Fox,
12
+ Jude Fox,Fox,
13
+ Cal Reed,,
14
+ Ivy Lowe,,
15
+ Noel Hart,Hart,
16
+ Bea Hart,Hart,vegan
17
+ Finn Shaw,Shaw,
18
+ Gwen Shaw,Shaw,
19
+ Abe Kim,Kim,
20
+ Sol Kim,Kim,
21
+ Dev Rao,Rao,vegetarian
22
+ Mia Rao,Rao,
23
+ Lou Park,Park,
24
+ Kai Park,Park,
25
+ Ren Ota,Ota,
26
+ Eli Ota,Ota,
27
+ Tam Nye,,
28
+ Uri Ash,Ash,
29
+ Vic Ash,Ash,
30
+ Wes Dunn,,
31
+ Zia Moor,,
@@ -0,0 +1,13 @@
1
+ Bramblecote Village Hall - main hall, notes for hirers
2
+
3
+ Tables: 10 numbered tables. Tables 1-9 are round and seat 8. Table 10 is the small
4
+ rectangular table next to the quizmaster's desk and seats 6.
5
+
6
+ Layout: the stage is at the north end. Tables 1-6 are on the main floor, in two rows of
7
+ three - 1, 2, 3 nearest the entrance doors (south), 4, 5, 6 behind them. Tables 7-10 are
8
+ on the raised area in front of the stage, up two steps, with no ramp. Table 10 is at the
9
+ east end of the raised area. The bar is on the east wall; toilets (including the
10
+ accessible WC) are off the entrance lobby.
11
+
12
+ The hall team set up the tables to your plan on the afternoon of the event - please give
13
+ them a list of table numbers and how many chairs at each.
@@ -0,0 +1,67 @@
1
+ Order ID,Order date,Order status,Ticket type,Attendee first name,Attendee last name,Attendee email,Attendee phone,Team name,Supper choice,Dietary requirements,Access requirements,Notes
2
+ QN-2099,2026-10-01,Refunded,Solo player,Mungo,Wadebridge,mungo.wadebridge36@example.com,07700 900599,,Fish & chips,,,Refunded - joined a team instead
3
+ QN-2101,2026-10-06,Completed,Team place,Xander,Trevithick,xander.trevithick@post.example,07700 900869,The Know-It-Owls,Fish & chips,,,
4
+ QN-2101,2026-10-10,Completed,Team place,Piers,Nethercott,piers.nethercott@mail.example,07700 900292,The Know-It-Owls,Fish & chips,,,
5
+ QN-2101,2026-10-07,Completed,Team place,Dervla,Jarrold,dervla.jarrold56@example.com,,The Know-It-Owls,Fish & chips,,,
6
+ QN-2101,2026-10-24,Completed,Team place,Hector,Nethercott,hector.nethercott@example.com,07700 900167,The Know-It-Owls,Fish & chips,Coeliac - needs gluten-free batter,,
7
+ QN-2101,2026-10-10,Completed,Team place,Hamish,Youlden,hamish.youlden@post.example,07700 900954,The Know-It-Owls,Halloumi & chips (veggie),,,
8
+ QN-2101,2026-10-26,Completed,Team place,Malik,Jessop,malik.jessop58@post.example,07700 900404,The Know-It-Owls,Fish & chips,,,
9
+ QN-2102,2026-10-27,Completed,Team place,Clemmie,Dimmock,clemmie.dimmock@post.example,07700 900810,Les Quizerables,Fish & chips,,,
10
+ QN-2102,2026-10-21,Completed,Team place,Wilf,Ingleby,wilf.ingleby@post.example,07700 900265,Les Quizerables,Fish & chips,,,
11
+ QN-2102,2026-10-12,Completed,Team place,Wilf,Rudge,wilf.rudge32@mail.example,07700 900922,Les Quizerables,Fish & chips,,Wheelchair user,
12
+ QN-2102,2026-10-05,Completed,Team place,Idris,Trevithick,idris.trevithick@example.com,,Les Quizerables,Halloumi & chips (veggie),,,
13
+ QN-2102,2026-10-25,Completed,Team place,Vaughan,Rathbone,vaughan.rathbone@example.com,07700 900155,Les Quizerables,Halloumi & chips (veggie),,,
14
+ QN-2102,2026-10-16,Completed,Team place,Bethan,Youlden,bethan.youlden10@example.com,07700 900209,Les Quizerables,Battered tofu & chips (vegan),,,
15
+ QN-2102,2026-10-11,Completed,Team place,Eamon,Eversley,eamon.eversley@mail.example,07700 900365,Les Quizerables,Fish & chips,,,
16
+ QN-2103,2026-10-06,Completed,Team place,Saoirse,Venning,saoirse.venning@mail.example,07700 900795,Quizzy Rascals,Fish & chips,Severe nut allergy (carries an EpiPen),,
17
+ QN-2103,2026-10-16,Completed,Team place,Malik,Lanyon,malik.lanyon85@example.com,07700 900203,Quizzy Rascals,Fish & chips,,,
18
+ QN-2103,2026-10-20,Completed,Team place,Selwyn,Cundall,selwyn.cundall@mail.example,07700 900363,Quizzy Rascals,Fish & chips,,,
19
+ QN-2103,2026-10-10,Completed,Team place,Zachary,Venning,zachary.venning@post.example,,Quizzy Rascals,Fish & chips,,,
20
+ QN-2103,2026-10-19,Completed,Team place,Piers,Holloway,piers.holloway35@mail.example,07700 900822,Quizzy Rascals,Halloumi & chips (veggie),,,
21
+ QN-2104,2026-10-26,Completed,Team place,Dervla,Kettleborough,dervla.kettleborough@mail.example,07700 900571,The Smarty Pints,Halloumi & chips (veggie),,,
22
+ QN-2104,2026-10-22,Completed,Team place,Greer,Trevithick,greer.trevithick@post.example,07700 900502,The Smarty Pints,Fish & chips,,,
23
+ QN-2104,2026-10-26,Completed,Team place,Petra,Jessop,petra.jessop80@post.example,07700 900794,The Smarty Pints,Fish & chips,,,
24
+ QN-2104,2026-10-11,Completed,Team place,Zachary,Wadebridge,zachary.wadebridge@example.com,07700 900267,The Smarty Pints,Fish & chips,,,
25
+ QN-2104,2026-10-24,Completed,Team place,Niamh,Gascoigne,niamh.gascoigne@example.com,07700 900503,The Smarty Pints,Battered tofu & chips (vegan),,,
26
+ QN-2104,2026-10-18,Completed,Team place,Isolde,Ivesley,isolde.ivesley15@mail.example,,The Smarty Pints,Fish & chips,,,
27
+ QN-2104,2026-10-25,Completed,Team place,Piers,Wadebridge,piers.wadebridge@post.example,07700 900353,The Smarty Pints,Fish & chips,,,
28
+ QN-2104,2026-10-01,Completed,Team place,Mungo,Wadebridge,mungo.wadebridge36@example.com,07700 900599,The Smarty Pints,Fish & chips,,,
29
+ QN-2107,2026-10-08,Completed,Team place,Florian,Blackwood,florian.blackwood96@example.com,07700 900317,Universally Challenged,Fish & chips,,,
30
+ QN-2107,2026-10-05,Completed,Team place,Ulrika,Cundall,ulrika.cundall@post.example,07700 900584,Universally Challenged,Fish & chips,,,
31
+ QN-2107,2026-10-17,Completed,Team place,Lorna,Gorringe,lorna.gorringe@mail.example,07700 900011,Universally Challenged,Battered tofu & chips (vegan),,,
32
+ QN-2107,2026-10-26,Completed,Team place,Dorian,Mabbott,dorian.mabbott56@mail.example,07700 900823,Universally Challenged,Fish & chips,,,
33
+ QN-2111,2026-10-10,Completed,Team place,Esme,Blackwood,esme.blackwood@example.com,,Brain Drain,Fish & chips,,,
34
+ QN-2111,2026-10-15,Completed,Team place,Yasmin,Nancarrow,yasmin.nancarrow@mail.example,07700 900017,Brain Drain,Fish & chips,,,
35
+ QN-2111,2026-10-19,Completed,Team place,Greer,Nancarrow,greer.nancarrow30@post.example,07700 900291,Brain Drain,Fish & chips,,,
36
+ QN-2115,2026-10-11,Completed,Team place,Piers,Loveday,piers.loveday@example.com,07700 900477,Tequila Mockingbird,Battered tofu & chips (vegan),No dairy,,
37
+ QN-2115,2026-10-20,Completed,Team place,Florian,Stallard,florian.stallard@example.com,07700 900377,Tequila Mockingbird,Fish & chips,,,
38
+ QN-2115,2026-10-23,Completed,Team place,Rosheen,Wadebridge,rosheen.wadebridge33@example.com,07700 900062,Tequila Mockingbird,Fish & chips,,,
39
+ QN-2115,2026-10-01,Completed,Team place,Bethan,Vosper,bethan.vosper@mail.example,07700 900152,Tequila Mockingbird,Fish & chips,,,
40
+ QN-2115,2026-10-26,Completed,Team place,Callum,Underhill,callum.underhill@example.com,,Tequila Mockingbird,Fish & chips,,,
41
+ QN-2115,2026-10-05,Completed,Team place,Winifred,Vosper,winifred.vosper29@example.com,07700 900730,Tequila Mockingbird,Fish & chips,,,
42
+ QN-2119,2026-10-13,Completed,Team place,Hector,Hartnell,hector.hartnell@mail.example,07700 900222,The Quizzard of Oz,Fish & chips,,,
43
+ QN-2119,2026-10-28,Completed,Team place,Petra,Youlden,petra.youlden@example.com,07700 900998,The Quizzard of Oz,Fish & chips,,,
44
+ QN-2119,2026-10-19,Completed,Team place,Idris,Fenwick-Lowe,idris.fenwicklowe76@mail.example,07700 900717,The Quizzard of Oz,Fish & chips,,,
45
+ QN-2119,2026-10-26,Completed,Team place,Idris,Wadebridge,idris.wadebridge@example.com,07700 900894,The Quizzard of Oz,Fish & chips,,,
46
+ QN-2119,2026-10-05,Completed,Team place,Zelda,Trevithick,zelda.trevithick@mail.example,07700 900844,The Quizzard of Oz,Halloumi & chips (veggie),,,
47
+ QN-2122,2026-10-21,Completed,Team place,Mungo,Jarrold,mungo.jarrold73@post.example,,Beer Necessities,Halloumi & chips (veggie),,,
48
+ QN-2122,2026-10-12,Completed,Team place,Malik,Pengelly,malik.pengelly@mail.example,07700 900479,Beer Necessities,Fish & chips,,,
49
+ QN-2122,2026-10-11,Completed,Team place,Fergus,Holloway,fergus.holloway@post.example,07700 900871,Beer Necessities,Fish & chips,,,
50
+ QN-2122,2026-10-07,Completed,Team place,Saoirse,Rathbone,saoirse.rathbone29@example.com,07700 900150,Beer Necessities,Fish & chips,,,
51
+ QN-2122,2026-10-11,Completed,Team place,Zachary,Eversley,zachary.eversley@example.com,07700 900326,Beer Necessities,Battered tofu & chips (vegan),,,
52
+ QN-2122,2026-10-18,Completed,Team place,Rosheen,Lanyon,rosheen.lanyon@mail.example,07700 900923,Beer Necessities,Fish & chips,,,
53
+ QN-2122,2026-10-20,Completed,Team place,Saoirse,Tregenza,saoirse.tregenza95@example.com,07700 900764,Beer Necessities,Fish & chips,,,
54
+ QN-2122,2026-10-14,Completed,Team place,Verity,Upcott,verity.upcott@example.com,,Beer Necessities,Halloumi & chips (veggie),,,
55
+ QN-2123,2026-10-02,Completed,Team place,Florian,Mabbott,florian.mabbott@example.com,07700 900513,Spaced Invaders,Fish & chips,,,
56
+ QN-2123,2026-10-17,Completed,Team place,Idris,Fairweather,idris.fairweather10@example.com,07700 900592,Spaced Invaders,Battered tofu & chips (vegan),,,
57
+ QN-2123,2026-10-06,Completed,Team place,Ines,Dunmore,ines.dunmore@post.example,07700 900015,Spaced Invaders,Battered tofu & chips (vegan),,,
58
+ QN-2123,2026-10-20,Completed,Team place,Keturah,Blackwood,keturah.blackwood@example.com,07700 900488,Spaced Invaders,Battered tofu & chips (vegan),,,
59
+ QN-2123,2026-10-21,Completed,Team place,Ottilie,Nancarrow,ottilie.nancarrow62@mail.example,07700 900613,Spaced Invaders,Fish & chips,,,
60
+ QN-2123,2026-10-12,Completed,Team place,Lowri,Gascoigne,lowri.gascoigne@mail.example,07700 900809,Spaced Invaders,Fish & chips,,,
61
+ QN-2124,2026-10-26,Completed,Solo player,Gideon,Youlden,gideon.youlden@example.com,,,Halloumi & chips (veggie),,,Booked separately from my partner Hamish Youlden - please put me on their team
62
+ QN-2125,2026-10-10,Completed,Solo player,Lorna,Brockhurst,lorna.brockhurst48@post.example,07700 900134,,Fish & chips,,I use a wheelchair,
63
+ QN-2126,2026-10-02,Completed,Solo player,Lorna,Nethercott,lorna.nethercott@post.example,07700 900313,,Halloumi & chips (veggie),,,Please don't put me on a table with Selwyn Cundall (ex-husband)
64
+ QN-2130,2026-10-18,Completed,Solo player,Greer,Venning,greer.venning@mail.example,07700 900136,,Halloumi & chips (veggie),,,
65
+ QN-2134,2026-10-02,Completed,Solo player,Clemmie,Rudge,clemmie.rudge45@example.com,07700 900311,,Fish & chips,,,
66
+ QN-2136,2026-10-20,Completed,Solo player,Nerys,Penhaligon,nerys.penhaligon@post.example,07700 900428,,Halloumi & chips (veggie),Vegetarian,,
67
+ QN-2138,2026-10-15,Completed,Solo player,Verity,Dimmock,verity.dimmock@example.com,07700 900334,,Fish & chips,,,
@@ -0,0 +1,21 @@
1
+ Kestrel Reach Rowing Club - 50th Anniversary Dinner, Saturday 28 November
2
+ Notes for the table plan (from the social secretary)
3
+
4
+ Venue: the Boathouse function room. 9 tables, each seats 10, including the top table
5
+ (Table 1). Tables 1-6 are on the ground floor. Tables 7-9 are on the balcony, which is
6
+ up a flight of stairs - there is no lift.
7
+
8
+ Rules we always use:
9
+ - everyone on one booking sits at the same table
10
+ - anyone with access needs on the ground floor, with whoever they came with
11
+
12
+ From Verity (President):
13
+ "I'd love all five of our surviving founder members on the top table with Piers Gascoigne and me,
14
+ and our guest speaker - it's their night really."
15
+
16
+ From the Welfare Officer:
17
+ "Please make sure Piers Abernethy and Jolene Ivesley are not on the same table. I can't say
18
+ more than that, but it matters."
19
+ "Also keep Mungo Nancarrow and Gwenllian Oldroyd apart - the boat-shed dispute."
20
+
21
+ I've done a first go at the plan (table_plan_draft.csv). The RSVP list is rsvp_list.csv.
@@ -0,0 +1,77 @@
1
+ Booking ref,Name,Member / guest,Dietary,Access needs
2
+ KR303,Verity Gascoigne,Member (President),Vegetarian,
3
+ KR303,Piers Gascoigne,Guest,,
4
+ KR305,Xander Jessop,Founder member,,
5
+ KR306,Piers Abernethy,Founder member,,
6
+ KR307,Jethro Bellingham,Founder member,Gluten-free,
7
+ KR307,Selwyn Bellingham,Guest,No shellfish,
8
+ KR308,Jolene Ivesley,Founder member,Vegetarian,
9
+ KR308,Farah Ivesley,Guest,Vegan,
10
+ KR311,Xander Wadebridge,Founder member,,
11
+ KR312,Jethro Cundall,Guest speaker,,
12
+ KR314,Callum Stallard,Member,,Wheelchair user
13
+ KR314,Mungo Stallard,Guest,Vegan,Carer/companion of Callum Stallard
14
+ KR316,Greer Gascoigne,Member,,
15
+ KR316,Ulrika Gascoigne,Guest,Vegetarian,
16
+ KR317,Mungo Nancarrow,Member,,
17
+ KR317,Elspeth Nancarrow,Guest,Gluten-free,
18
+ KR319,Gwenllian Oldroyd,Member,,
19
+ KR322,Verity Kinsella,Member,,
20
+ KR322,Rhian Venning,Guest,,
21
+ KR325,Florian Loveday,Member,No shellfish,
22
+ KR325,Barnaby Loveday,Guest,Gluten-free,
23
+ KR328,Xander Vosper,Member,,
24
+ KR329,Clemmie Loveday,Member,Gluten-free,
25
+ KR329,Selwyn Lanyon,Guest,,
26
+ KR329,Yasmin Yelland,Guest,Vegetarian,
27
+ KR330,Idris Whitlock,Member,Vegan,
28
+ KR330,Idris Abernethy,Guest,Gluten-free,
29
+ KR331,Ottilie Jarrold,Member,,
30
+ KR331,Rosheen Eversley,Guest,,
31
+ KR331,Niamh Ivesley,Guest,Gluten-free,
32
+ KR331,Umar Cundall,Guest,Vegan,
33
+ KR334,Zelda Ingleby,Member,Vegetarian,
34
+ KR334,Bram Coldridge,Guest,Gluten-free,
35
+ KR337,Keturah Vosper,Member,No shellfish,
36
+ KR338,Callum Tregenza,Member,,
37
+ KR338,Cerys Tregenza,Guest,,
38
+ KR339,Oskar Kettleborough,Member,Gluten-free,
39
+ KR339,Greer Vosper,Guest,,
40
+ KR339,Dervla Quarrie,Guest,Vegetarian,
41
+ KR340,Rhian Loveday,Member,,
42
+ KR340,Elspeth Loveday,Guest,,
43
+ KR342,Oskar Pengelly,Member,,
44
+ KR342,Amara Tregenza,Guest,,
45
+ KR344,Lowri Abernethy,Member,,
46
+ KR346,Zelda Orchardson,Member,Gluten-free,
47
+ KR346,Dafydd Orchardson,Guest,Vegetarian,
48
+ KR347,Selwyn Penhaligon,Member,No shellfish,
49
+ KR347,Callum Bellingham,Guest,Vegan,
50
+ KR347,Isolde Trevithick,Guest,Gluten-free,
51
+ KR347,Dervla Kinsella,Guest,Vegetarian,
52
+ KR348,Hollie Jarrold,Member,Gluten-free,
53
+ KR348,Jethro Jarrold,Guest,,
54
+ KR349,Zachary Trevithick,Member,Vegan,
55
+ KR349,Rhian Trevithick,Guest,,
56
+ KR351,Petra Ashdown,Member,,
57
+ KR354,Bram Loveday,Member,Vegetarian,
58
+ KR354,Ines Loveday,Guest,Vegan,
59
+ KR356,Vaughan Whitlock,Member,,
60
+ KR356,Malik Oldroyd,Guest,,
61
+ KR356,Petra Fairweather,Guest,Vegan,
62
+ KR358,Clemmie Upcott,Member,No shellfish,
63
+ KR358,Orla Upcott,Guest,Vegan,
64
+ KR359,Petra Loveday,Member,,
65
+ KR359,Fergus Loveday,Guest,,
66
+ KR362,Saoirse Arkwright,Member,Gluten-free,
67
+ KR362,Xander Arkwright,Guest,Vegan,
68
+ KR363,Cerys Ingleby,Member,,
69
+ KR366,Fergus Ingleby,Member,,
70
+ KR366,Jago Abernethy,Guest,Vegan,
71
+ KR368,Gideon Kinsella,Member,,
72
+ KR368,Farah Kinsella,Guest,,
73
+ KR371,Lorna Etherington,Member,,
74
+ KR371,Malik Nethercott,Guest,Vegetarian,
75
+ KR371,Zelda Whitlock,Guest,,
76
+ KR372,Ines Quarrie,Member,,
77
+ KR372,Jethro Quarrie,Guest,Vegan,