Decode, track, and guide through furniture assembly instructions from step diagrams. Manages parts inventory, tracks assembly progress, identifies the current step from a photo, and warns about common mistakes. Use when assembling flat-pack furniture or following visual-only instruction manuals.
Coding
furniture-fit-checker
Try itCheck if furniture fits a room and the delivery path before buying or moving: computes doorway/hallway/stair clearance with diagonal-tilt geometry (the moving-industry standard), room layout fit with walkway widths, and draws an ASCII floorplan preview. Use when the user asks if a sofa/desk/bed/mattress will fit through a door, up stairs, around a corner, or in a room — preventing the classic bought-it-can't-move-it disaster.
What it does
Check if furniture fits a room and the delivery path before buying or moving: computes doorway/hallway/stair clearance with diagonal-tilt geometry (the moving-industry standard), room layout fit with walkway widths, and draws an ASCII floorplan preview. Use when the user asks if a sofa/desk/bed/mattress will fit through a door, up stairs, around a corner, or in a room — preventing the classic bought-it-can't-move-it disaster.
The skill document
Furniture Fit Checker 🛋️📏
The classic disaster: sofa bought online, delivery guys arrive, it doesn't make the corner at the top of the stairs — now you own a return-shipping nightmare. Or: desk fits the wall but blocks the door swing. This skill runs the geometry before money changes hands.
Overview
Three checks, one tool (scripts/fit_checker.py):
- Path check — can the item pass a doorway/corridor/stairs?
The moving-industry insight: a rigid box passes through an opening if it
can be tilted diagonally. For a rectangular item (W×H×D) and a
doorway (w×h), the effective clearance is the diagonal
√(W²+D²) compared against the door width — plus corner-turning between
corridor walls with the inner-diagonal trick. Handles:
- doorway width vs item diagonal (item height vs door height)
- L-shaped corner between corridors (inner-corner + outer-wall check)
- straight staircase width vs diagonal, landing 180° turns
- elevator cab diagonal (door + interior)
- Room fit — does it fit where you want it, with walkways ≥ 30 in / 75 cm (interior-design standards: 75-90cm paths, 90+ around dining)? Checks wall-length fit, walkway to opposing furniture/door, door-swing clearance, and radiator/vent obstruction warnings.
- Floorplan preview — ASCII render of the room with the furniture placed, so you can see the walkways before committing.
Everything in metric or imperial (auto-detected per value with explicit unit suffixes).
When to Use
- "Will this sofa (86×37×35 in) fit through my 32-inch door?"
- "Can a king mattress go up my staircase with a landing?"
- "Will the desk fit in the bedroom without blocking the closet door?"
- "Does the dining table leave room to pull chairs out?"
- Pre-purchase sanity check before ordering big furniture online
- Moving-day planning: order of items through each door
Don't use for: architectural planning (load bearing, code compliance), non-rectangular complex items (L-shaped sectionals — approximate as their bounding boxes per section), or piano moving (hire pros, seriously).
How It Works — Steps
- Measure (a tape measure, 5 minutes): item W×D×H; door width × height (door open 90°, measure the frame minus trim); corridor widths if any; room dimensions; where you want it.
- Path check:
python3 scripts/fit_checker.py path --item 86x37x35in --door 32x80in - Corner / stairs if the route has them:
python3 scripts/fit_checker.py corner --item 86x37x35in --hall-a 36in --hall-b 36in python3 scripts/fit_checker.py stairs --item 76x16x12in --width 36in --landing - Room fit:
python3 scripts/fit_checker.py room --item 86x37in --room 14x11ft \ --other 60x30in --floorplan - Look at the floorplan the tool prints; adjust and re-run.
The Geometry (exact rules)
- Doorway: item passes iff
item diagonal √(W²+D²) ≤ door widthANDitem min(W,D,H) ≤ door height(tilt through). Sofas: use arm-to-arm width and seat depth; add nothing — but if legs/arms removable, measure without them. - Corner (two corridors): moving trick — the item must satisfy
inner diagonal check: for item length L and widths, at the critical angle θ where it simultaneously touches both outer walls and the inner corner: passes iff(L·sinθ + W·cosθ) ≤ min hall widthfor no θ... computed numerically over θ ∈ [0°, 90°] in 0.5° steps (exact for practical purposes). - Stairs: straight run — diagonal check vs stair width at the
narrowest point (handrail, radiator, turn). With a 180° landing: the
item must pivot on the landing; needs
landing depth ≥ item diagonal × 0.75(empirical moving rule; tight pivots need pros' experience). - Room walkways: distance from furniture edge to the nearest obstruction (wall, other furniture, door swing arc) ≥ 75cm/30in; dining-table chairs need +90cm/36in on chair sides.
Worked Example
Sofa 86×37×35in, door 32×80in:
diagonal = √(86²+37²) = 93.6in > 32in → cannot pass flat
BUT min(86,37,35)=35in... height check: 35in ≤ 80in ✓
tilt geometry: sofa tilted on end, needs √(86²+35²)=92.9in vertical —
exceeds 80in door height → FAIL flat-on-end
workaround: angle-entry (two-person tilt) marginally possible —
tool says TIGHT, remove door if hinge-pinned, or sofa legs off.
Common Pitfalls
- Measuring the door slab, not the opening. A "34-inch door" is the slab; the clear opening with the door open 90° is ~2in less (trim, hinges). Measure the gap.
- Forgetting the door swings IN. An entry door opening inward eats ~door-width of maneuvering room on the delivery side; remove the door (pop the hinge pins) for tight items.
- Ignoring ceiling height on stairs. Low ceilings above stairwells (under stairs, sloped) block items that pass the width check — the minimum above-step clearance matters as much as width.
- Using overall sofa dims when legs come off. 4in of legs = the difference between fail and pass. Always check removable feet first.
- Hallway lights, radiators, baseboards narrow the nominal width by 2-6in at the critical point. Measure at the narrowest point, not the average.
- Elevator: interior diagonal ≠ door diagonal. The cab is bigger than its door; the binding constraint is the door, then cab depth.
- Box springs don't bend. A king mattress flexes around corners; a box spring/rigid base does not — that's what "split king" bases exist for.
Verification Checklist
- All measurements taken at the narrowest point of the path
- Door measured as clear opening (90° open, minus trim)
- Item height-vs-doorway-height check done, not just width diagonal
- Walkway check ≥ 75cm (30in) for every side you walk past
- Door-swing arcs drawn on the floorplan output
- Removable legs/arms measured without, noted in the decision
One-Shot Recipes
Online sofa listing sanity check:
python3 scripts/fit_checker.py path --item 213x94x89cm --door 81x203cm --report
Full route audit (door → hall → corner → stairs):
python3 scripts/fit_checker.py path --item 86x37x35in --door 32x80in
python3 scripts/fit_checker.py corner --item 86x37x35in --hall-a 40in --hall-b 36in
python3 scripts/fit_checker.py stairs --item 86x37x35in --width 36in --landing 36in
Will the bed + desk both fit?
python3 scripts/fit_checker.py room --item 60x80in --room 12x11ft \
--other 48x24in --floorplan
Related skills
Creates a comfort-focused room airflow map, timing routine, and weekly review checklist for stuffy rooms without HVAC diagnosis, repair advice, allergy guida...
Room redesign planning companion that turns interior design goals, constraints, and photos or text notes into palettes, layouts, lighting plans, AI image pro...
Plan user flows and screen states for a Figma design before any designing starts. Use when asked to plan a user flow, map out screens for a feature, define s...
Runs a structured PM design review against product requirements. Use when asked to review a Figma design, check a design against requirements, or assess whet...
Calculate, validate, and visualize wall-mounted faucet installation geometry, especially faucet reach L and outlet height H1 for product selection. Use when...