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.
- package/README.md +3 -0
- package/catalogue.json +25 -2
- package/model-routing.json +20 -0
- package/package.json +1 -1
- package/packs/event-planner/pack.json +61 -0
- package/packs/event-planner/skills/run-of-show/SKILL.md +144 -0
- package/packs/event-planner/skills/run-of-show/evals/eval_queries.json +30 -0
- package/packs/event-planner/skills/run-of-show/evals/evals.json +103 -0
- package/packs/event-planner/skills/run-of-show/evals/files/1/agenda.md +16 -0
- package/packs/event-planner/skills/run-of-show/evals/files/2/schedule.csv +8 -0
- package/packs/event-planner/skills/run-of-show/evals/files/3/notes.txt +3 -0
- package/packs/event-planner/skills/run-of-show/evals/files/4/sessions_export.csv +25 -0
- package/packs/event-planner/skills/run-of-show/evals/files/4/venue_and_crew.txt +27 -0
- package/packs/event-planner/skills/run-of-show/evals/files/5/runsheet_v4.csv +28 -0
- package/packs/event-planner/skills/run-of-show/evals/files/5/venue_and_suppliers.txt +22 -0
- package/packs/event-planner/skills/run-of-show/evals/files/6/acts_from_booker.csv +26 -0
- package/packs/event-planner/skills/run-of-show/evals/files/6/venue_rooms_and_crew.txt +14 -0
- package/packs/event-planner/skills/run-of-show/evals/files/7/runsheet_draft_v4.csv +25 -0
- package/packs/event-planner/skills/run-of-show/evals/files/7/venue_and_fixed_times.txt +24 -0
- package/packs/event-planner/skills/run-of-show/examples/product-launch.md +77 -0
- package/packs/event-planner/skills/run-of-show/examples/product-launch.svg +58 -0
- package/packs/event-planner/skills/run-of-show/manifest.json +44 -0
- package/packs/event-planner/skills/run-of-show/scripts/show_check.py +295 -0
- package/packs/event-planner/skills/run-of-show/templates/show.json +15 -0
- package/packs/event-planner/skills/seating-plan/SKILL.md +155 -0
- package/packs/event-planner/skills/seating-plan/evals/eval_queries.json +30 -0
- package/packs/event-planner/skills/seating-plan/evals/evals.json +164 -0
- package/packs/event-planner/skills/seating-plan/evals/files/1/guests.csv +31 -0
- package/packs/event-planner/skills/seating-plan/evals/files/10/hall_notes.txt +13 -0
- package/packs/event-planner/skills/seating-plan/evals/files/10/quiz_night_registrations.csv +67 -0
- package/packs/event-planner/skills/seating-plan/evals/files/11/notes_for_the_plan.txt +21 -0
- package/packs/event-planner/skills/seating-plan/evals/files/11/rsvp_list.csv +77 -0
- package/packs/event-planner/skills/seating-plan/evals/files/11/table_plan_draft.csv +78 -0
- package/packs/event-planner/skills/seating-plan/evals/files/2/table-plan.txt +8 -0
- package/packs/event-planner/skills/seating-plan/evals/files/3/brief.txt +4 -0
- package/packs/event-planner/skills/seating-plan/evals/files/3/guests.csv +49 -0
- package/packs/event-planner/skills/seating-plan/evals/files/4/rsvp_export.csv +127 -0
- package/packs/event-planner/skills/seating-plan/evals/files/4/seating_notes.txt +21 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/organiser_notes.txt +10 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/registrations.csv +93 -0
- package/packs/event-planner/skills/seating-plan/evals/files/5/table_plan_v3.csv +94 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/bridgets_notes.txt +30 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/ticket_export.csv +117 -0
- package/packs/event-planner/skills/seating-plan/evals/files/6/venue_floorplan_notes.txt +14 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/keep_apart_CONFIDENTIAL.txt +9 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/prom_seating_v3.csv +101 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/ticket_list.csv +101 -0
- package/packs/event-planner/skills/seating-plan/evals/files/7/venue_info.txt +16 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/registrations_export.csv +147 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/room_layout.md +22 -0
- package/packs/event-planner/skills/seating-plan/evals/files/8/seating_requests.txt +31 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/guest_list.csv +84 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/notes.txt +16 -0
- package/packs/event-planner/skills/seating-plan/evals/files/9/table_plan.csv +85 -0
- package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.md +61 -0
- package/packs/event-planner/skills/seating-plan/examples/wedding-dinner.svg +39 -0
- package/packs/event-planner/skills/seating-plan/manifest.json +44 -0
- package/packs/event-planner/skills/seating-plan/scripts/seating_check.py +324 -0
- package/packs/event-planner/skills/seating-plan/templates/seating.json +28 -0
- package/packs/experience-design/pack.json +5 -0
- package/packs/experience-design/skills/locale-check/SKILL.md +139 -0
- package/packs/experience-design/skills/locale-check/evals/eval_queries.json +38 -0
- package/packs/experience-design/skills/locale-check/evals/evals.json +104 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/budget.json +1 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/ar.json +16 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/de.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/en.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/1/locales/pl.json +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values/strings.xml +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-es/strings.xml +11 -0
- package/packs/experience-design/skills/locale-check/evals/files/2/app/src/main/res/values-fr/strings.xml +12 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/ja.po +20 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/messages.pot +23 -0
- package/packs/experience-design/skills/locale-check/evals/files/3/po/ru.po +22 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/budgets.json +15 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/ar.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/de.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/en.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/fr.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/4/locales/pl.json +265 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values/strings.xml +77 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-es/strings.xml +63 -0
- package/packs/experience-design/skills/locale-check/evals/files/5/app/src/main/res/values-ja/strings.xml +61 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/cs.po +605 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/marlin.pot +602 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/pt_BR.po +602 -0
- package/packs/experience-design/skills/locale-check/evals/files/6/po/ru.po +608 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/en.lproj/Localizable.stringsdict +70 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.strings +157 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/he.lproj/Localizable.stringsdict +86 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/it.lproj/Localizable.stringsdict +68 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.strings +160 -0
- package/packs/experience-design/skills/locale-check/evals/files/7/Tidewatch/Resources/ko.lproj/Localizable.stringsdict +62 -0
- package/packs/experience-design/skills/locale-check/examples/settings-release.md +107 -0
- package/packs/experience-design/skills/locale-check/manifest.json +45 -0
- package/packs/experience-design/skills/locale-check/scripts/locale_check.py +1105 -0
- package/packs/interior-designer/pack.json +60 -0
- package/packs/interior-designer/skills/furniture-layout/SKILL.md +182 -0
- package/packs/interior-designer/skills/furniture-layout/evals/eval_queries.json +11 -0
- package/packs/interior-designer/skills/furniture-layout/evals/evals.json +133 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/2/living-room-notes.md +24 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/3/office-brief.md +18 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/4/furniture_schedule.csv +15 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/4/site_survey.txt +22 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/5/layout_v2.csv +14 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/5/measurements.txt +16 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/6/access_consultant_email.txt +19 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/6/furniture_stock.csv +5 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/6/site_measurements.txt +14 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_214_layout.csv +11 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/7/room_and_brand_standard.txt +20 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/8/email_from_practice_manager.txt +44 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/8/furniture_we_are_keeping.csv +10 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/9/reading_room_schedule.csv +15 -0
- package/packs/interior-designer/skills/furniture-layout/evals/files/9/room_notes.txt +23 -0
- package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.md +121 -0
- package/packs/interior-designer/skills/furniture-layout/examples/king-bed-bedroom.svg +57 -0
- package/packs/interior-designer/skills/furniture-layout/manifest.json +44 -0
- package/packs/interior-designer/skills/furniture-layout/scripts/layout_check.py +1130 -0
- package/packs/interior-designer/skills/furniture-layout/templates/layout.json +26 -0
- package/packs/operations-manager/pack.json +60 -0
- package/packs/operations-manager/skills/shift-roster/SKILL.md +169 -0
- package/packs/operations-manager/skills/shift-roster/evals/eval_queries.json +38 -0
- package/packs/operations-manager/skills/shift-roster/evals/evals.json +135 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/1/shifts.csv +3 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/1/staff.csv +8 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/2/rota.csv +22 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/2/staff.csv +6 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/3/team.md +14 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/4/availability_export_wk47.csv +23 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/4/rota_notes.txt +20 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/5/rota_draft_16-29nov.csv +107 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/5/staff_list.csv +17 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/availability_notes.txt +24 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/peoplehub_staff_export.csv +14 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/6/rota_template.csv +25 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/leave_and_availability.txt +18 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/rota_wc_30nov.csv +47 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/7/staff_list.csv +15 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/availability_form_responses.csv +22 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/cover_requirements.csv +15 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/8/staff_export.csv +29 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/leave_and_restrictions.txt +16 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/rota_export_07-13Dec.csv +85 -0
- package/packs/operations-manager/skills/shift-roster/evals/files/9/staff_list.csv +27 -0
- package/packs/operations-manager/skills/shift-roster/examples/cafe-week.md +72 -0
- package/packs/operations-manager/skills/shift-roster/examples/cafe-week.svg +123 -0
- package/packs/operations-manager/skills/shift-roster/manifest.json +34 -0
- package/packs/operations-manager/skills/shift-roster/scripts/roster_check.py +633 -0
- package/packs/operations-manager/skills/shift-roster/templates/roster.json +22 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
From: Joanne Pellow <practice.manager@hollinlane-dental.example>
|
|
2
|
+
To: studio@pinfold-interiors.example
|
|
3
|
+
Subject: Waiting room re-arrange - measurements and the access audit bits
|
|
4
|
+
|
|
5
|
+
Hi,
|
|
6
|
+
|
|
7
|
+
As promised, the measurements for the waiting room. I measured it myself with a laser
|
|
8
|
+
so they should be right to the centimetre.
|
|
9
|
+
|
|
10
|
+
The room is 6.8 m along the front (street) wall, left to right as you come in, and
|
|
11
|
+
5.4 m from the front wall to the back wall. Flat floor, no steps, no columns.
|
|
12
|
+
|
|
13
|
+
Doors:
|
|
14
|
+
- Entrance from the street is in the front wall. The opening runs from 2.8 m to 3.8 m
|
|
15
|
+
measured from the left-hand wall (so it's a 1 m door). It opens into the waiting room,
|
|
16
|
+
hinged on the left.
|
|
17
|
+
- Corridor door to the surgeries is in the back wall, from 0.3 m to 1.2 m from the
|
|
18
|
+
left-hand wall. It opens away from us into the corridor.
|
|
19
|
+
- The accessible WC door is in the right-hand wall, from 0.7 m to 1.6 m measured from
|
|
20
|
+
the front wall. It opens OUT into the waiting room, hinged at the front end.
|
|
21
|
+
|
|
22
|
+
Window: left-hand wall, 1.5 m to 3.7 m from the front wall, sill at 850 mm, so chairs
|
|
23
|
+
can go under it.
|
|
24
|
+
|
|
25
|
+
Reception counter: built in against the back wall, from 4.0 m to 5.8 m from the
|
|
26
|
+
left-hand wall, 800 mm deep. The lowered (wheelchair height) part is the left-hand
|
|
27
|
+
900 mm as you face the counter. That counter isn't moving.
|
|
28
|
+
|
|
29
|
+
From the access audit we had in September, we have to:
|
|
30
|
+
1. keep a clear 1500 x 1500 turning space directly in front of the accessible WC door,
|
|
31
|
+
2. keep a clear 1500 x 1500 space in front of the lowered part of the counter,
|
|
32
|
+
3. keep clear routes at least 1200 wide from the entrance to the counter, to the WC
|
|
33
|
+
and to the corridor door,
|
|
34
|
+
4. have one wheelchair waiting space (900 x 1400) beside the other seats, not in a
|
|
35
|
+
walkway,
|
|
36
|
+
5. keep both door swings clear.
|
|
37
|
+
|
|
38
|
+
We're keeping all our own furniture (list attached) and not buying anything new this
|
|
39
|
+
year. We'd like to seat as many people as that list allows.
|
|
40
|
+
|
|
41
|
+
Can you send me a plan with the sizes on so I can show the partners?
|
|
42
|
+
|
|
43
|
+
Thanks,
|
|
44
|
+
Joanne
|
package/packs/interior-designer/skills/furniture-layout/evals/files/8/furniture_we_are_keeping.csv
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
Item,Qty,Width (cm),Depth (cm),Notes
|
|
2
|
+
Waiting chair with arms,8,58,60,"grey vinyl, stackable"
|
|
3
|
+
Two-seat sofa,1,140,75,
|
|
4
|
+
Bariatric chair,1,76,70,"wider seat, keep near the front if poss"
|
|
5
|
+
Coffee table,1,100,50,magazines
|
|
6
|
+
Children's play table,1,60,60,bead maze on top
|
|
7
|
+
Toy box,1,60,40,
|
|
8
|
+
Leaflet bookcase,1,90,30,"NHS leaflets, can go on any wall"
|
|
9
|
+
Water cooler,1,33,33,needs a socket - sockets on every wall
|
|
10
|
+
Plant in pot,1,45,45,"round pot, 45 across"
|
package/packs/interior-designer/skills/furniture-layout/evals/files/9/reading_room_schedule.csv
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Ref,Description,Size E-W (mm),Size N-S (mm),X from west wall (mm),Y from south wall (mm),Fixed?,Supplier,Notes
|
|
2
|
+
S1,"Wall shelving range, single-sided (window bay south side)",2400,350,0,1650,Yes,,bolted to floor and wall
|
|
3
|
+
S2,"Wall shelving range, single-sided (window bay north side)",2400,350,0,3300,Yes,,bolted to floor and wall
|
|
4
|
+
T5,"Accessible study table, height adjustable",800,1200,0,2050,Yes,Oakcroft Library Supply,on the floor box (power/data) - can't move
|
|
5
|
+
RT1,"Reading table, 6 seats",1800,900,800,4900,No,Oakcroft Library Supply,3 chairs each long side
|
|
6
|
+
RT2,"Reading table, 6 seats",1800,900,5600,900,No,Oakcroft Library Supply,3 chairs each long side
|
|
7
|
+
RT3,"Reading table, 6 seats",1800,900,7900,1200,No,Oakcroft Library Supply,3 chairs each long side
|
|
8
|
+
R3,"Mobile shelving range, double-sided",600,2800,6000,2700,No,Brackenfold Shelving,non-fiction 000-399
|
|
9
|
+
R4,"Mobile shelving range, double-sided",600,2800,7400,2700,No,Brackenfold Shelving,non-fiction 400-799
|
|
10
|
+
R5,"Wall shelving range, single-sided",350,2800,9650,2700,No,Brackenfold Shelving,non-fiction 800-999
|
|
11
|
+
LC1,Lounge armchair,800,800,400,300,No,,
|
|
12
|
+
LC2,Lounge armchair,800,800,2100,300,No,,
|
|
13
|
+
LT1,Low table,600,600,1350,400,No,,
|
|
14
|
+
DS1,Newspaper display stand,1200,450,6000,6300,No,Brackenfold Shelving,
|
|
15
|
+
TR1,Returns trolley,900,500,3950,200,No,,on castors
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Reading room - Ashby Moor Library - notes for the furniture re-plan
|
|
2
|
+
(Rosalind Achebe, branch librarian, Nov 2026)
|
|
3
|
+
|
|
4
|
+
Room: 10.0 m west to east, 7.2 m south to north, rectangular, no columns.
|
|
5
|
+
X and Y in the schedule are to the south-west corner of each piece, from the west
|
|
6
|
+
wall and the south wall. Sizes are as the piece sits in the room.
|
|
7
|
+
|
|
8
|
+
Main door: south wall, opening from 4000 to 4900 mm from the west wall. Opens into the
|
|
9
|
+
room, hinged at the west side.
|
|
10
|
+
Fire exit: east wall, opening from 5800 to 6700 mm from the south wall. Opens outward.
|
|
11
|
+
Window bay: west wall between S1 and S2 (2000 to 3300 mm from the south wall).
|
|
12
|
+
|
|
13
|
+
S1 and S2 are bolted to the floor and wall and are staying. T5 stays where it is - the
|
|
14
|
+
only floor box with power and data for it is under it.
|
|
15
|
+
|
|
16
|
+
Our standards (from the county's library design guide):
|
|
17
|
+
- main routes (main door to the fire exit, and main door to T5) at least 1200 clear
|
|
18
|
+
- at least 1000 between shelving ranges
|
|
19
|
+
- 900 clear behind the chairs on the long sides of a reading table, to pull the chair
|
|
20
|
+
out (measure from the table edge)
|
|
21
|
+
- nothing in the swing of the main door
|
|
22
|
+
- a 1500 x 1500 turning space for the wheelchair user at T5, in front of T5 in the
|
|
23
|
+
window bay, so they aren't sitting out in the walkway
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Worked example: a king bed that "fits" by area
|
|
2
|
+
|
|
3
|
+
Input → output oracle for `furniture-layout`. The room passes an area check easily: 11.9 m²
|
|
4
|
+
of floor for 5.2 m² of furniture. It fails twice on geometry before it passes. The first draft
|
|
5
|
+
puts the desk in the door's swing. The second leaves a 0.81 m diagonal between the desk and
|
|
6
|
+
the bed, under the 0.9 m walkway, so the wardrobe can't be reached. The answer keeps the king
|
|
7
|
+
bed and changes the one piece that can give: the desk.
|
|
8
|
+
|
|
9
|
+
## Input
|
|
10
|
+
|
|
11
|
+
> Lay out our bedroom: 3.6 m wide × 3.3 m deep, door at the right end of the south wall
|
|
12
|
+
> opening in, window centred on the north wall with a 0.9 m sill. Furniture: a king bed
|
|
13
|
+
> (1.8 × 2.0 m), two nightstands, a 1.2 m wardrobe with hinged doors, and a small desk with
|
|
14
|
+
> a chair.
|
|
15
|
+
|
|
16
|
+
## The zoning
|
|
17
|
+
|
|
18
|
+
- The bed's head goes on the north wall, under the window: it is the only wall long enough to
|
|
19
|
+
give the bed 0.6 m on both sides.
|
|
20
|
+
- The wardrobe takes the west wall beside the bed, so its doors open into the bed's own side
|
|
21
|
+
clearance, not into the route.
|
|
22
|
+
- The desk takes the south-west corner, away from the door's swing.
|
|
23
|
+
- The route runs from the door along the foot of the bed to both bed sides and the wardrobe.
|
|
24
|
+
|
|
25
|
+
## What the checker caught
|
|
26
|
+
|
|
27
|
+
**Draft 1** had the bed centred, the wardrobe on the west wall by the door, and the desk on the
|
|
28
|
+
east wall by the door:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
FAIL Desk is in the swing of Door: the door can't open fully
|
|
32
|
+
FAIL nothing 0.90 m wide clears the way in at Door
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**Draft 2** moved the bed 0.3 m east and the desk into the south-west corner, still at the
|
|
36
|
+
standard small-desk size of 1.0 × 0.5 m:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
FAIL no clear 0.90 m route from the entrance reaches Wardrobe (its front side)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The desk's corner at (1.0, 0.5) and the bed's foot corner at (1.2, 1.3) leave a diagonal of
|
|
43
|
+
0.81 m. That's enough to squeeze past, but not the 0.9 m walkway. A 0.9 × 0.45 m desk
|
|
44
|
+
opens the gap to 0.94 m.
|
|
45
|
+
|
|
46
|
+
## The layout that passes
|
|
47
|
+
|
|
48
|
+
`layout.json` (excerpt):
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"title": "Bedroom, 3.6 × 3.3 m: king bed, wardrobe and desk",
|
|
53
|
+
"units": "m", "size": [3.6, 3.3],
|
|
54
|
+
"doors": [{"name": "Door", "at": [3.1, 0], "width": 0.8, "hinge": "left", "swing": "in", "entrance": true}],
|
|
55
|
+
"windows": [{"at": [1.8, 3.3], "width": 1.2, "sill": 0.9}],
|
|
56
|
+
"furniture": [
|
|
57
|
+
{"name": "King bed", "type": "bed", "width": 1.8, "depth": 2.0, "at": [1.2, 1.3], "facing": "S"},
|
|
58
|
+
{"name": "Left nightstand", "type": "nightstand", "width": 0.45, "depth": 0.4, "at": [0.75, 2.9]},
|
|
59
|
+
{"name": "Right nightstand", "type": "nightstand", "width": 0.45, "depth": 0.4, "at": [3.0, 2.9]},
|
|
60
|
+
{"name": "Wardrobe", "type": "wardrobe", "width": 1.2, "depth": 0.6, "at": [0, 1.6], "facing": "E"},
|
|
61
|
+
{"name": "Desk", "type": "desk", "width": 0.9, "depth": 0.45, "at": [0, 0], "facing": "N"}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
| King bed | bed | 1.8 × 2 | 1.2, 1.3 | S | front 0.6, left 0.6, right 0.6 |
|
|
68
|
+
| Left nightstand | nightstand | 0.45 × 0.4 | 0.75, 2.9 | S | none |
|
|
69
|
+
| Right nightstand | nightstand | 0.45 × 0.4 | 3, 2.9 | S | none |
|
|
70
|
+
| Wardrobe | wardrobe | 1.2 × 0.6 | 0, 1.6 | E | front 0.6 |
|
|
71
|
+
| Desk | desk | 0.9 × 0.45 | 0, 0 | N | front 0.9 |
|
|
72
|
+
|
|
73
|
+
Floor 11.88 m² · furniture 5.09 m² (43 %) · walkway 0.90 m
|
|
74
|
+
|
|
75
|
+
PASS no overlaps, every piece in the room, no door swing blocked, every clearance clear,
|
|
76
|
+
every piece reached at the walkway width.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The drawing is [`king-bed-bedroom.svg`](king-bed-bedroom.svg).
|
|
80
|
+
|
|
81
|
+
## The reply
|
|
82
|
+
|
|
83
|
+
> **The plan is in `bedroom.svg`.** The king bed sits against the north wall under the
|
|
84
|
+
> window, the wardrobe on the west wall beside it, and the desk in the south-west corner.
|
|
85
|
+
> From the door there's a clear 0.9 m route along the foot of the bed to both sides and the
|
|
86
|
+
> wardrobe.
|
|
87
|
+
>
|
|
88
|
+
> | Piece | Size | Where |
|
|
89
|
+
> |---|---|---|
|
|
90
|
+
> | King bed | 1.8 × 2.0 m | head on the north wall, 1.2 m from the west wall |
|
|
91
|
+
> | Nightstands | 0.45 × 0.4 m | either side of the bed's head |
|
|
92
|
+
> | Wardrobe | 1.2 × 0.6 m | west wall, doors opening east beside the bed |
|
|
93
|
+
> | Desk | 0.9 × 0.45 m | south-west corner, chair facing the wall |
|
|
94
|
+
>
|
|
95
|
+
> **One change from what you asked:** the desk is 0.9 × 0.45 m, not a standard 1.0 × 0.5 m.
|
|
96
|
+
> At the standard size, its corner comes within 0.81 m of the bed's foot. You could squeeze
|
|
97
|
+
> past, but not walk through, to the wardrobe. If you'd rather keep a full-size desk, a
|
|
98
|
+
> queen bed (1.5 × 2.0 m) in the same place, its left edge 0.3 m further east, leaves room
|
|
99
|
+
> for it; that layout passes the same checks.
|
|
100
|
+
>
|
|
101
|
+
> **Assumed:** nightstands 0.45 × 0.4 m. The door is hinged on the east side as you face it
|
|
102
|
+
> from inside, swinging into the room.
|
|
103
|
+
>
|
|
104
|
+
> **This is a schematic.** It meets the clearances set here: 0.6 m beside and at the foot of
|
|
105
|
+
> the bed, 0.6 m in front of the wardrobe, 0.9 m behind the desk, and a 0.9 m route. It isn't
|
|
106
|
+
> a check against any building or accessibility code. Measure the real room, and the
|
|
107
|
+
> wardrobe's door width, before you buy.
|
|
108
|
+
|
|
109
|
+
## Why this is the oracle
|
|
110
|
+
|
|
111
|
+
- **Area is not fit.** 43 % coverage looks comfortable. The failures are a door swing and a
|
|
112
|
+
0.81 m diagonal, which no area sum shows.
|
|
113
|
+
- **A layout is shown only after it passes,** and when the list doesn't fit as given, the
|
|
114
|
+
reply names the piece, the number (0.81 m, not 0.9) and the smallest change that works.
|
|
115
|
+
- **The reply is for the client.** It gives a plan, a table, one change with its reason,
|
|
116
|
+
the assumptions and what the plan is not. It never mentions the checker, the JSON or
|
|
117
|
+
where the file was written from.
|
|
118
|
+
|
|
119
|
+
A cheaper pass answers "yes, it all fits: 5 m² of furniture in a 12 m² room". It then puts
|
|
120
|
+
the desk by the door, where the door hits it on every opening. Or it puts the full-size desk
|
|
121
|
+
in the corner and leaves a gap you turn sideways to get through to the wardrobe.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="920" height="890" viewBox="0 0 920 890" font-family="Helvetica, Arial, sans-serif" font-size="11">
|
|
2
|
+
<rect width="920" height="890" fill="#fff"/>
|
|
3
|
+
<text x="20" y="28" font-size="16" font-weight="bold">Bedroom, 3.6 × 3.3 m: king bed, wardrobe and desk</text>
|
|
4
|
+
<text x="20" y="46" fill="#444">Floor 11.88 m² · walkway 0.90 m · checked: passes · schematic</text>
|
|
5
|
+
<polygon points="80.0,780.0 800.0,780.0 800.0,120.0 80.0,120.0" fill="#faf8f4"/>
|
|
6
|
+
<rect x="320.0" y="520.0" width="360.0" height="120.0" fill="#7fb3d5" fill-opacity="0.18" stroke="#5d8fb0" stroke-width="0.6" stroke-dasharray="3 2"/>
|
|
7
|
+
<rect x="200.0" y="230.0" width="120.0" height="290.0" fill="#7fb3d5" fill-opacity="0.18" stroke="#5d8fb0" stroke-width="0.6" stroke-dasharray="3 2"/>
|
|
8
|
+
<rect x="680.0" y="230.0" width="120.0" height="290.0" fill="#7fb3d5" fill-opacity="0.18" stroke="#5d8fb0" stroke-width="0.6" stroke-dasharray="3 2"/>
|
|
9
|
+
<rect x="200.0" y="220.0" width="120.0" height="240.0" fill="#7fb3d5" fill-opacity="0.18" stroke="#5d8fb0" stroke-width="0.6" stroke-dasharray="3 2"/>
|
|
10
|
+
<rect x="80.0" y="510.0" width="180.0" height="180.0" fill="#7fb3d5" fill-opacity="0.18" stroke="#5d8fb0" stroke-width="0.6" stroke-dasharray="3 2"/>
|
|
11
|
+
<polyline points="700.0,780.0 697.5,687.5 382.5,687.5 332.5,637.5 332.5,637.5" fill="none" stroke="#2e8b57" stroke-width="1.6" stroke-dasharray="6 3" stroke-linecap="round"/>
|
|
12
|
+
<polyline points="700.0,780.0 697.5,687.5 387.5,687.5 227.5,542.5 227.5,520.0" fill="none" stroke="#2e8b57" stroke-width="1.6" stroke-dasharray="6 3" stroke-linecap="round"/>
|
|
13
|
+
<polyline points="700.0,780.0 707.5,602.5 707.5,520.0" fill="none" stroke="#2e8b57" stroke-width="1.6" stroke-dasharray="6 3" stroke-linecap="round"/>
|
|
14
|
+
<polyline points="700.0,780.0 697.5,687.5 387.5,687.5 227.5,542.5 227.5,460.0" fill="none" stroke="#2e8b57" stroke-width="1.6" stroke-dasharray="6 3" stroke-linecap="round"/>
|
|
15
|
+
<polyline points="700.0,780.0 697.5,687.5 387.5,687.5 302.5,607.5 167.5,602.5 167.5,602.5" fill="none" stroke="#2e8b57" stroke-width="1.6" stroke-dasharray="6 3" stroke-linecap="round"/>
|
|
16
|
+
<rect x="320.0" y="120.0" width="360.0" height="400.0" fill="#e9e4dc" stroke="#4a4a4a" stroke-width="1.2"/>
|
|
17
|
+
<line x1="320.0" y1="520.0" x2="680.0" y2="520.0" stroke="#1f1f1f" stroke-width="2.4"/>
|
|
18
|
+
<text x="500.0" y="318.0" text-anchor="middle" font-weight="bold" font-size="11">King bed</text>
|
|
19
|
+
<text x="500.0" y="331.0" text-anchor="middle" font-size="10" fill="#444">1.8×2</text>
|
|
20
|
+
<rect x="230.0" y="120.0" width="90.0" height="80.0" fill="#e9e4dc" stroke="#4a4a4a" stroke-width="1.2"/>
|
|
21
|
+
<line x1="230.0" y1="200.0" x2="320.0" y2="200.0" stroke="#1f1f1f" stroke-width="2.4"/>
|
|
22
|
+
<text x="275.0" y="158.0" text-anchor="middle" font-weight="bold" font-size="11">Left nightstand</text>
|
|
23
|
+
<text x="275.0" y="171.0" text-anchor="middle" font-size="10" fill="#444">0.45×0.4</text>
|
|
24
|
+
<rect x="680.0" y="120.0" width="90.0" height="80.0" fill="#e9e4dc" stroke="#4a4a4a" stroke-width="1.2"/>
|
|
25
|
+
<line x1="680.0" y1="200.0" x2="770.0" y2="200.0" stroke="#1f1f1f" stroke-width="2.4"/>
|
|
26
|
+
<text x="725.0" y="158.0" text-anchor="middle" font-weight="bold" font-size="11">Right nightstand</text>
|
|
27
|
+
<text x="725.0" y="171.0" text-anchor="middle" font-size="10" fill="#444">0.45×0.4</text>
|
|
28
|
+
<rect x="80.0" y="220.0" width="120.0" height="240.0" fill="#e9e4dc" stroke="#4a4a4a" stroke-width="1.2"/>
|
|
29
|
+
<line x1="200.0" y1="460.0" x2="200.0" y2="220.0" stroke="#1f1f1f" stroke-width="2.4"/>
|
|
30
|
+
<text x="140.0" y="338.0" text-anchor="middle" font-weight="bold" font-size="11">Wardrobe</text>
|
|
31
|
+
<text x="140.0" y="351.0" text-anchor="middle" font-size="10" fill="#444">1.2×0.6</text>
|
|
32
|
+
<rect x="80.0" y="690.0" width="180.0" height="90.0" fill="#e9e4dc" stroke="#4a4a4a" stroke-width="1.2"/>
|
|
33
|
+
<line x1="80.0" y1="690.0" x2="260.0" y2="690.0" stroke="#1f1f1f" stroke-width="2.4"/>
|
|
34
|
+
<text x="170.0" y="733.0" text-anchor="middle" font-weight="bold" font-size="11">Desk</text>
|
|
35
|
+
<text x="170.0" y="746.0" text-anchor="middle" font-size="10" fill="#444">0.9×0.45</text>
|
|
36
|
+
<polygon points="80.0,780.0 800.0,780.0 800.0,120.0 80.0,120.0" fill="none" stroke="#111" stroke-width="24.0" stroke-linejoin="miter"/>
|
|
37
|
+
<line x1="320.0" y1="120.0" x2="560.0" y2="120.0" stroke="#fff" stroke-width="25.0"/>
|
|
38
|
+
<line x1="320.0" y1="112.0" x2="560.0" y2="112.0" stroke="#2b6cb0" stroke-width="1"/>
|
|
39
|
+
<line x1="320.0" y1="120.0" x2="560.0" y2="120.0" stroke="#2b6cb0" stroke-width="1"/>
|
|
40
|
+
<line x1="320.0" y1="128.0" x2="560.0" y2="128.0" stroke="#2b6cb0" stroke-width="1"/>
|
|
41
|
+
<line x1="620.0" y1="780.0" x2="780.0" y2="780.0" stroke="#fff" stroke-width="25.0"/>
|
|
42
|
+
<line x1="780.0" y1="780.0" x2="780.0" y2="620.0" stroke="#b5531a" stroke-width="1.6"/>
|
|
43
|
+
<path d="M 780.0 620.0 A 160.0 160.0 0 0 0 620.0 780.0" fill="none" stroke="#b5531a" stroke-width="0.8" stroke-dasharray="3 2"/>
|
|
44
|
+
<text x="700.0" y="853.0" text-anchor="middle" font-size="9" fill="#b5531a">Door</text>
|
|
45
|
+
<line x1="80.0" y1="810.0" x2="800.0" y2="810.0" stroke="#555" stroke-width="0.8"/>
|
|
46
|
+
<line x1="76.0" y1="814.0" x2="84.0" y2="806.0" stroke="#555" stroke-width="1.2"/>
|
|
47
|
+
<line x1="796.0" y1="814.0" x2="804.0" y2="806.0" stroke="#555" stroke-width="1.2"/>
|
|
48
|
+
<text x="440.0" y="805.0" text-anchor="middle">3.6 m</text>
|
|
49
|
+
<line x1="50.0" y1="780.0" x2="50.0" y2="120.0" stroke="#555" stroke-width="0.8"/>
|
|
50
|
+
<line x1="46.0" y1="784.0" x2="54.0" y2="776.0" stroke="#555" stroke-width="1.2"/>
|
|
51
|
+
<line x1="46.0" y1="124.0" x2="54.0" y2="116.0" stroke="#555" stroke-width="1.2"/>
|
|
52
|
+
<text x="44.0" y="450.0" text-anchor="middle" transform="rotate(-90 44.0 450.0)">3.3 m</text>
|
|
53
|
+
<g transform="translate(880 40) rotate(0.0)"><polygon points="0,-20 7,9 0,4 -7,9" fill="#111"/><text x="0" y="-25" text-anchor="middle" font-weight="bold">N</text></g>
|
|
54
|
+
<rect x="80" y="866.0" width="100.0" height="6" fill="#111"/>
|
|
55
|
+
<rect x="180.0" y="866.0" width="100.0" height="6" fill="#fff" stroke="#111"/>
|
|
56
|
+
<text x="286.0" y="872.0">1 m</text>
|
|
57
|
+
</svg>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "furniture-layout",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Lay out the furniture in a room at real sizes and draw it as a dimensioned SVG, with a script that fails the layout when pieces overlap or leave the room, block a door's swing, or leave a walkway, bed side, chair pull-back or wheelchair turning space narrower than it needs. Use when a designer or homeowner asks to \"lay out this living room\", \"will a king bed fit\", \"arrange the furniture\", \"plan this office for 8 desks\", \"check the clearances\", or has a room's size, its doors and windows and a list of furniture.",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"floor-plan-layout"
|
|
16
|
+
],
|
|
17
|
+
"handoff": [
|
|
18
|
+
{
|
|
19
|
+
"to": "floor-plan-layout",
|
|
20
|
+
"when": "the room's size or its walls aren't settled yet, or the person wants the whole floor planned",
|
|
21
|
+
"purpose": "Plan the rooms and their doors first, so each room has a size to furnish.",
|
|
22
|
+
"fallback": "If floor-plan-layout is absent, ask for the room's width, depth and door positions, or take them from a drawing the person has, before placing any furniture."
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"tags": [
|
|
26
|
+
"interior-design",
|
|
27
|
+
"furniture",
|
|
28
|
+
"layout",
|
|
29
|
+
"clearances",
|
|
30
|
+
"space-planning",
|
|
31
|
+
"svg",
|
|
32
|
+
"dimensions"
|
|
33
|
+
],
|
|
34
|
+
"permissions": {
|
|
35
|
+
"network": [],
|
|
36
|
+
"commands": [],
|
|
37
|
+
"files": "named-paths",
|
|
38
|
+
"notes": "Reads the layout.json it is given and writes the SVG to the path passed with --svg."
|
|
39
|
+
},
|
|
40
|
+
"model": {
|
|
41
|
+
"tier": "heavy",
|
|
42
|
+
"rationale": "Furnishing a room is design judgment: zones, focal wall and circulation traded against clearances, with a checker to iterate against."
|
|
43
|
+
}
|
|
44
|
+
}
|