skilldrop-cli 1.7.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 (40) hide show
  1. package/README.md +1 -0
  2. package/catalogue.json +8 -1
  3. package/model-routing.json +4 -0
  4. package/package.json +1 -1
  5. package/packs/event-planner/skills/run-of-show/SKILL.md +6 -3
  6. package/packs/event-planner/skills/run-of-show/manifest.json +1 -1
  7. package/packs/event-planner/skills/seating-plan/SKILL.md +6 -3
  8. package/packs/event-planner/skills/seating-plan/evals/evals.json +30 -0
  9. package/packs/event-planner/skills/seating-plan/evals/files/10/hall_notes.txt +13 -0
  10. package/packs/event-planner/skills/seating-plan/evals/files/10/quiz_night_registrations.csv +67 -0
  11. package/packs/event-planner/skills/seating-plan/evals/files/11/notes_for_the_plan.txt +21 -0
  12. package/packs/event-planner/skills/seating-plan/evals/files/11/rsvp_list.csv +77 -0
  13. package/packs/event-planner/skills/seating-plan/evals/files/11/table_plan_draft.csv +78 -0
  14. package/packs/event-planner/skills/seating-plan/manifest.json +1 -1
  15. package/packs/interior-designer/pack.json +60 -0
  16. package/packs/interior-designer/skills/furniture-layout/SKILL.md +182 -0
  17. package/packs/interior-designer/skills/furniture-layout/evals/eval_queries.json +11 -0
  18. package/packs/interior-designer/skills/furniture-layout/evals/evals.json +133 -0
  19. package/packs/interior-designer/skills/furniture-layout/evals/files/2/living-room-notes.md +24 -0
  20. package/packs/interior-designer/skills/furniture-layout/evals/files/3/office-brief.md +18 -0
  21. package/packs/interior-designer/skills/furniture-layout/evals/files/4/furniture_schedule.csv +15 -0
  22. package/packs/interior-designer/skills/furniture-layout/evals/files/4/site_survey.txt +22 -0
  23. package/packs/interior-designer/skills/furniture-layout/evals/files/5/layout_v2.csv +14 -0
  24. package/packs/interior-designer/skills/furniture-layout/evals/files/5/measurements.txt +16 -0
  25. package/packs/interior-designer/skills/furniture-layout/evals/files/6/access_consultant_email.txt +19 -0
  26. package/packs/interior-designer/skills/furniture-layout/evals/files/6/furniture_stock.csv +5 -0
  27. package/packs/interior-designer/skills/furniture-layout/evals/files/6/site_measurements.txt +14 -0
  28. package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_214_layout.csv +11 -0
  29. package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_and_brand_standard.txt +20 -0
  30. package/packs/interior-designer/skills/furniture-layout/evals/files/8/email_from_practice_manager.txt +44 -0
  31. package/packs/interior-designer/skills/furniture-layout/evals/files/8/furniture_we_are_keeping.csv +10 -0
  32. package/packs/interior-designer/skills/furniture-layout/evals/files/9/reading_room_schedule.csv +15 -0
  33. package/packs/interior-designer/skills/furniture-layout/evals/files/9/room_notes.txt +23 -0
  34. package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.md +121 -0
  35. package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.svg +57 -0
  36. package/packs/interior-designer/skills/furniture-layout/manifest.json +44 -0
  37. package/packs/interior-designer/skills/furniture-layout/scripts/layout_check.py +1130 -0
  38. package/packs/interior-designer/skills/furniture-layout/templates/layout.json +26 -0
  39. package/packs/operations-manager/skills/shift-roster/SKILL.md +6 -3
  40. package/packs/operations-manager/skills/shift-roster/manifest.json +1 -1
package/README.md CHANGED
@@ -76,6 +76,7 @@ Install one pack. Every role pack also brings `core` (intake, critique, review c
76
76
  - **Designing buildings:** `civil-architect` — a dimensioned concept floor plan from a room list and a footprint, checked for overlapping rooms, doors on no wall and rooms no one can reach. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/civil-architect/)
77
77
  - **Running a team on shifts:** `operations-manager` — a weekly rota checked for cover, hours, rest between shifts and days in a row, handed back in your own sheet. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/operations-manager/)
78
78
  - **Running events:** `event-planner` — a seating plan where every together, keep-apart and access request holds, and a run of show with no room or person booked twice, both checked and drawn. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/event-planner/)
79
+ - **Furnishing rooms:** `interior-designer` — a dimensioned furniture plan for one room, checked for door swings, bed and chair clearances, a clear route to everything and turning space where it's required. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/interior-designer/)
79
80
  - **Everyone:** `core` on its own. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/core/)
80
81
 
81
82
  </details>
package/catalogue.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$comment": "RFC-0034. The catalogue index: pack display order and the outcome browse axis (RFC-0026). Pack metadata lives in packs/<pack>/pack.json; membership is the folders — a skill is in a pack because it sits at packs/<pack>/skills/<name>/.",
3
3
  "version": "1.0.0",
4
- "packs": ["core", "solution-architect", "product-manager", "dev-team", "sre-oncall", "stakeholder-comms", "design", "ai-engineering", "api-builder", "converters", "experience-design", "research", "trackers", "data-analytics", "grc", "infra-as-code", "frontend", "skill-engineering", "career", "civil-architect", "operations-manager", "event-planner"],
4
+ "packs": ["core", "solution-architect", "product-manager", "dev-team", "sre-oncall", "stakeholder-comms", "design", "ai-engineering", "api-builder", "converters", "experience-design", "research", "trackers", "data-analytics", "grc", "infra-as-code", "frontend", "skill-engineering", "career", "civil-architect", "operations-manager", "event-planner", "interior-designer"],
5
5
  "outcomes": {
6
6
  "decide-what-to-build": {
7
7
  "for": "Product managers · founders · strategists",
@@ -228,6 +228,13 @@
228
228
  "seating-plan",
229
229
  "run-of-show"
230
230
  ]
231
+ },
232
+ "furnish-a-room": {
233
+ "for": "Interior designers · homeowners · office managers",
234
+ "description": "Fit a room's furniture at real sizes with every door, bed side, chair and route clear, and each turning space where it's needed, drawn to scale and checked.",
235
+ "skills": [
236
+ "furniture-layout"
237
+ ]
231
238
  }
232
239
  },
233
240
  "retired": {
@@ -303,6 +303,10 @@
303
303
  "tier": "standard",
304
304
  "rationale": "The script finds every mechanical defect; the model ranks them by what breaks first, writes the mechanical fixes and reads reordered and named-screen strings for meaning."
305
305
  },
306
+ "furniture-layout": {
307
+ "tier": "heavy",
308
+ "rationale": "Furnishing a room is design judgment: zones, focal wall and circulation traded against clearances, with a checker that tests each requirement where it applies."
309
+ },
306
310
  "floor-plan-layout": {
307
311
  "tier": "heavy",
308
312
  "rationale": "Spatial layout is design judgment: zoning, adjacencies, daylight and circulation traded against areas, with a checker to iterate against."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skilldrop-cli",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "Portable AI-agent skills, measured against the agent without them. ADRs, PRDs, runbooks, decks and reviews, installable into Claude Code, Cursor, Kiro, and any IDE that takes custom instructions. One command per skill or per role-based pack.",
5
5
  "author": {
6
6
  "name": "Sanjay Ananthanarayan",
@@ -22,7 +22,7 @@ clash is found in the plan, not on the day.
22
22
  deliverable the request names: a minute-by-minute per room, a crew sheet with turnarounds,
23
23
  resets and host notes, a speaker call sheet.
24
24
  - **Working files stay out of sight.** The checker's input and any intermediate file go in a
25
- temporary folder outside the working directory, or are deleted before you reply. Draw the
25
+ private temporary folder made for this run alone (`mktemp -d`, never a fixed path such as `/tmp/show`, 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
26
26
  timeline only when a drawing is asked for, and then once. Never leave anything running in
27
27
  the background.
28
28
  - **Carry every field through.** Every column or note the person gave per item (crew, cues,
@@ -58,10 +58,11 @@ clash is found in the plan, not on the day.
58
58
  `run-of-show.svg`, never inside this folder.
59
59
 
60
60
  ```bash
61
+ work=$(mktemp -d 2>/dev/null || mktemp -d ./.work.XXXXXX) # a private folder for this run only
61
62
  # Claude Code
62
- python3 "${CLAUDE_SKILL_DIR}/scripts/show_check.py" "$TMPDIR/show.json"
63
+ python3 "${CLAUDE_SKILL_DIR}/scripts/show_check.py" "$work/show.json"
63
64
  # Other IDEs (from the skill folder); add --svg only when a drawing is wanted
64
- python3 scripts/show_check.py /tmp/show/show.json --svg run-of-show.svg
65
+ python3 scripts/show_check.py "$work/show.json" --svg run-of-show.svg
65
66
  ```
66
67
 
67
68
  Exit 0 means no clashes; 1 means a clash (an overlap in a room, a person in two places or
@@ -138,4 +139,6 @@ Who sits where at the dinner belongs to `seating-plan`.
138
139
  - ❌ **Re-timing the whole day unasked** when one move fixes the clash.
139
140
  - ❌ **One merged table when they asked for a sheet per room.** The crew in room B needs room B's sheet.
140
141
  - ❌ **Describing the fixes instead of making them.** Hand back the corrected runsheet.
142
+ - ❌ **A fixed temporary path.** Two sessions at once share it, and one plan leaks into the other.
143
+ - ❌ **Overwriting the person's own file.** They lose the version they sent.
141
144
  - ❌ **A JSON file and a drawing nobody asked for** left beside their files.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run-of-show",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Turn an event's agenda into a timed run of show — every session, speaker, changeover and break with its start, end, room and who's needed — and check it with a script for two things in one room at once, a speaker booked in two places, changeovers shorter than the turnaround and anything outside venue hours, drawn as a timeline per room. Use when an organiser asks for \"a run of show\", \"a running order\", \"the minute-by-minute for the day\", \"check the agenda for clashes\", or has sessions, speakers and rooms for a conference, launch, festival or wedding day.",
5
5
  "entrypoint": "SKILL.md",
6
6
  "deps": {
@@ -24,7 +24,7 @@ room, so a broken request is found before the organiser prints place cards.
24
24
  column, only when they ask for one. Given a pasted list, reply with a table. Write every
25
25
  deliverable the request names, such as place-card order or the caterer's list.
26
26
  - **Working files stay out of sight.** The checker's input and any intermediate file go in a
27
- temporary folder outside the working directory, or are deleted before you reply. Draw the
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
28
  room only when a drawing is asked for or the venue needs a floor plan, and then once. Never
29
29
  leave anything running in the background.
30
30
  - **Carry every field through, without reshaping their file.** Every detail the person gave
@@ -65,10 +65,11 @@ room, so a broken request is found before the organiser prints place cards.
65
65
  `seating-plan.svg`, never inside this folder.
66
66
 
67
67
  ```bash
68
+ work=$(mktemp -d 2>/dev/null || mktemp -d ./.work.XXXXXX) # a private folder for this run only
68
69
  # Claude Code
69
- python3 "${CLAUDE_SKILL_DIR}/scripts/seating_check.py" "$TMPDIR/seating.json"
70
+ python3 "${CLAUDE_SKILL_DIR}/scripts/seating_check.py" "$work/seating.json"
70
71
  # Other IDEs (from the skill folder); add --svg only when a drawing is wanted
71
- python3 scripts/seating_check.py /tmp/seating/seating.json --svg seating-plan.svg
72
+ python3 scripts/seating_check.py "$work/seating.json" --svg seating-plan.svg
72
73
  ```
73
74
 
74
75
  Exit 0 means every rule holds; 1 means one is broken; 2 means the file is malformed. Move
@@ -148,5 +149,7 @@ The order-of-the-day timings, the speeches and the changeovers belong to `run-of
148
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.
149
150
  - ❌ **Treating dietary needs as a seating rule.** They go to the caterer, per guest and table.
150
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.
151
154
  - ❌ **A JSON file and a drawing nobody asked for** left beside their guest list.
152
155
  - ❌ **Telling them the fixes instead of making them.** Hand back the corrected file.
@@ -129,6 +129,36 @@
129
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
130
  "Does not invent guests, seats or tables not in the files (no Table 10, no extra chair at the top table)"
131
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
+ ]
132
162
  }
133
163
  ]
134
164
  }
@@ -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,
@@ -0,0 +1,78 @@
1
+ Table,Name,Booking ref
2
+ 1,Verity Gascoigne,KR303
3
+ 1,Piers Gascoigne,KR303
4
+ 1,Xander Jessop,KR305
5
+ 1,Piers Abernethy,KR306
6
+ 1,Jethro Bellingham,KR307
7
+ 1,Selwyn Bellingham,KR307
8
+ 1,Jolene Ivesley,KR308
9
+ 1,Farah Ivesley,KR308
10
+ 1,Xander Wadebridge,KR311
11
+ 1,Jethro Cundall,KR312
12
+ 2,Greer Gascoigne,KR316
13
+ 2,Verity Kinsella,KR322
14
+ 2,Rhian Venning,KR322
15
+ 2,Florian Loveday,KR325
16
+ 2,Barnaby Loveday,KR325
17
+ 3,Mungo Nancarrow,KR317
18
+ 3,Elspeth Nancarrow,KR317
19
+ 3,Xander Vosper,KR328
20
+ 3,Clemmie Loveday,KR329
21
+ 3,Selwyn Lanyon,KR329
22
+ 3,Yasmin Yelland,KR329
23
+ 3,Idris Whitlock,KR330
24
+ 3,Idris Abernethy,KR330
25
+ 4,Ottilie Jarrold,KR331
26
+ 4,Rosheen Eversley,KR331
27
+ 4,Niamh Ivesley,KR331
28
+ 4,Umar Cundall,KR331
29
+ 4,Zelda Ingleby,KR334
30
+ 4,Bram Coldridge,KR334
31
+ 4,Callum Tregenza,KR338
32
+ 4,Cerys Tregenza,KR338
33
+ 4,Lowri Abernethy,KR344
34
+ 5,Oskar Kettleborough,KR339
35
+ 5,Greer Vosper,KR339
36
+ 5,Dervla Quarrie,KR339
37
+ 5,Rhian Loveday,KR340
38
+ 5,Elspeth Loveday,KR340
39
+ 5,Oskar Pengelly,KR342
40
+ 5,Amara Tregenza,KR342
41
+ 5,Zelda Orchardson,KR346
42
+ 5,Dafydd Orchardson,KR346
43
+ 5,Petra Ashdown,KR351
44
+ 5,Keturah Vosper,KR337
45
+ 6,Gwenllian Oldroyd,KR319
46
+ 6,Selwyn Penhaligon,KR347
47
+ 6,Callum Bellingham,KR347
48
+ 6,Isolde Trevithick,KR347
49
+ 6,Dervla Kinsella,KR347
50
+ 6,Hollie Jarrold,KR348
51
+ 6,Jethro Jarrold,KR348
52
+ 6,Zachary Trevithick,KR349
53
+ 6,Rhian Trevithick,KR349
54
+ 6,Ulrika Gascoigne,KR316
55
+ 7,Bram Loveday,KR354
56
+ 7,Ines Loveday,KR354
57
+ 7,Vaughan Whitlock,KR356
58
+ 7,Malik Oldroyd,KR356
59
+ 7,Petra Fairweather,KR356
60
+ 7,Clemmie Upcott,KR358
61
+ 7,Orla Upcott,KR358
62
+ 7,Petra Loveday,KR359
63
+ 7,Fergus Loveday,KR359
64
+ 7,Xander Vosper,KR328
65
+ 8,Saoirse Arkwright,KR362
66
+ 8,Xander Arkwright,KR362
67
+ 8,Cerys Ingleby,KR363
68
+ 8,Fergus Ingleby,KR366
69
+ 8,Jago Abernethy,KR366
70
+ 8,Gideon Kinsella,KR368
71
+ 8,Farah Kinsella,KR368
72
+ 8,Callum Stallard,KR314
73
+ 8,Mungo Stallard,KR314
74
+ 9,Lorna Etherington,KR371
75
+ 9,Malik Nethercott,KR371
76
+ 9,Zelda Whitlock,KR371
77
+ 9,Ines Quarrie,KR372
78
+ 9,Jethro Quarrie,KR372
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seating-plan",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "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.",
5
5
  "entrypoint": "SKILL.md",
6
6
  "deps": {
@@ -0,0 +1,60 @@
1
+ {
2
+ "description": "Furniture plans for one room: every piece at its real size and facing the way it's used, drawn as a dimensioned SVG, and shown only once a script has checked it for overlaps, pieces in a door's swing, blocked bed sides, chair pull-backs and wardrobe doors, and a clear walking route to everything.",
3
+ "display_name": "Interior designer",
4
+ "keywords": [
5
+ "interior design",
6
+ "furniture",
7
+ "layout",
8
+ "space planning",
9
+ "clearances",
10
+ "room plan",
11
+ "bedroom",
12
+ "living room",
13
+ "office fit-out"
14
+ ],
15
+ "links": {
16
+ "documentation": "https://sananthanarayan.github.io/skilldrop/packs/interior-designer/"
17
+ },
18
+ "maintainers": [
19
+ {
20
+ "name": "sananthanarayan"
21
+ }
22
+ ],
23
+ "first-value": {
24
+ "audience-posture": "non-technical",
25
+ "prerequisites": [
26
+ "The room's width and depth, where its door and windows are, and the furniture you want in it",
27
+ "Python 3 on the machine, which the checker and drawing script run on"
28
+ ],
29
+ "starter-task": "Get a checked, dimensioned furniture plan for one room",
30
+ "starter-prompt": "Lay out our bedroom: 3.6 m wide × 3.3 m deep, door at the right end of the south wall opening in, window centred on the north wall with a 0.9 m sill. Furniture: a king bed (1.8 × 2.0 m), two nightstands, a 1.2 m wardrobe with hinged doors, and a small desk with a chair.",
31
+ "verification": "furniture-layout states its zoning in a few lines, writes an SVG plan with the room's dimensions, every piece with its size, its clearances shaded and the walking route drawn, and says plainly what it changed or couldn't fit.",
32
+ "recovery": "If furniture-layout does not activate, ask for it by name (\"use furniture-layout\"). If a piece won't fit, ask for the best smaller option, or say which piece may go."
33
+ },
34
+ "requires": [
35
+ "core"
36
+ ],
37
+ "journey": {
38
+ "when": "You have a room and a list of furniture, and want to know what fits and where.",
39
+ "you_bring": [
40
+ "the room's width and depth, or its corner measurements if it isn't a rectangle",
41
+ "the doors (which way they open) and the windows",
42
+ "the furniture, with sizes if you know them",
43
+ "anything that must stay clear, such as a radiator or a balcony door"
44
+ ],
45
+ "steps": [
46
+ {
47
+ "skill": "furniture-layout",
48
+ "you_do": "Give it the room, its doors and windows, and the furniture list.",
49
+ "you_get": "Zoning in a few lines, then a dimensioned SVG plan that has passed the clearance check, with every piece's size and where it goes.",
50
+ "decide": "Keep the plan, or ask for another arrangement."
51
+ },
52
+ {
53
+ "skill": "furniture-layout",
54
+ "you_do": "Ask for a variant: a bigger bed, a desk added, a wheelchair-turning space.",
55
+ "you_get": "Another checked plan, or the exact number that keeps a piece out and the best option that fits."
56
+ }
57
+ ],
58
+ "you_end_with": "A furniture plan that fits, ready to measure against the real room."
59
+ }
60
+ }