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.
- package/README.md +1 -0
- package/catalogue.json +8 -1
- package/model-routing.json +4 -0
- package/package.json +1 -1
- package/packs/event-planner/skills/run-of-show/SKILL.md +6 -3
- package/packs/event-planner/skills/run-of-show/manifest.json +1 -1
- package/packs/event-planner/skills/seating-plan/SKILL.md +6 -3
- package/packs/event-planner/skills/seating-plan/evals/evals.json +30 -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/manifest.json +1 -1
- 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/skills/shift-roster/SKILL.md +6 -3
- package/packs/operations-manager/skills/shift-roster/manifest.json +1 -1
|
@@ -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
|
+
}
|