Skip to content

Latest commit

 

History

History
67 lines (50 loc) · 5.84 KB

File metadata and controls

67 lines (50 loc) · 5.84 KB

Implementation Notes, House Design Studio

Project: a branded Claude Code plugin that turns reference images of houses into a design, drawings and a schedule of accommodation. No financials.

Decisions

D1. Product is a design-from-references tool, not a feasibility tool

  • Decision: the product takes pictures and sketches of houses the user likes and produces a design in that style. The money, appraisal and go/no-go elements are removed.
  • Reasoning: Sanjiv corrected the direction. The real use case is taste-led design (matches his opening message about having elevations of a house he likes), not commercial appraisal.
  • Alternatives considered: feasibility and go/no-go engine (rejected by user); full lifecycle product (rejected as too large).

D2. Delivery as a Claude Code skill pack

  • Decision: ship as a branded Claude Code plugin with one orchestrating command, run inside Claude Code.
  • Reasoning: user chose "skill pack only" for lowest build and fastest path, accepting that the team uses Claude Code.
  • Alternatives: branded web app (deferred, possible later for resale); configured Claude agent or Project (rejected, looser output).

D3. Outputs kept = scheme + schedule of accommodation, plus drawings

  • Decision: keep outputs 1 (scheme) and 2 (schedule of accommodation) from the original five, drop 3 (appraisal), 4 (planning check) and 5 (go/no-go). Add visual drawings (elevations, plans, 3D) as a core output.
  • Reasoning: user said "remove the money bit, but 1 and 2", and the whole point is producing the design they can see.

D4. Drawing output = both styled images and line drawings (default)

  • Decision: produce styled exterior elevation images (the look) and simple floor-plan line drawings, plus a basic 3D model.
  • Reasoning: "copy the houses they like" implies the output should resemble the references (favours image generation), while a usable design also needs plans (favours line drawings). Both serve the brief.
  • Status: Open Question OQ2, default chosen so the build is not blocked.

D5. Tooling

  • Decision: Claude vision to read references; existing AEC skills for analysis and layout; Higgsfield generate_image MCP for styled images; a small SVG/DXF script for plans (DXF gives a real CAD file); Blender MCP or existing SketchUp script for 3D; xlsx skill for the schedule.
  • Reasoning: uses what is already installed and tested. DXF via ezdxf answers the user's CAD question with a genuine CAD output at schematic quality.
  • Alternatives: ecosystem skills (eachlabs floor-plan-generation, interior-design-visualization) noted as future options.

D6. Project location

  • Decision: ~/Documents/Claude/Code/house-design-studio (code location per user rules; never the Desktop).
  • Reasoning: it is code. Business entity not yet confirmed, see OQ1; can be moved or re-homed later.

D7. Relaxed dependency pins for Python 3.14

  • Decision: requirements.txt uses minimum pins (ezdxf>=1.3, openpyxl>=3.1, pytest>=8.0) rather than exact pins.
  • Reasoning: the machine runs Python 3.14.4, which is newer than the spec's exact pins. Minimum pins let pip pick 3.14-compatible wheels. Installed clean: ezdxf 1.4.4, openpyxl 3.1.5, pytest 9.0.3 (all pure-Python wheels, no build step).
  • Alternatives: exact pins (rejected, risk of missing 3.14 wheels and a Cython build failure for ezdxf).

D8. SVG title sized to fit the canvas

  • Decision: the floor-plan SVG widens its canvas to fit the heading and uses a 13px title, instead of a fixed plan-width canvas with a 16px title.
  • Reasoning: at the eyeball step the heading overflowed the right edge on narrow plans. Visual quality is the point of this product, so the heading must stay on-canvas. Tests are unaffected (they assert room rectangles and labels, not the title metrics).

D9. Scope expansion: full M&E module added (Phase 2)

  • Decision: add a full M&E module (electrical + plumbing + heating/ventilation) that produces schematic services layouts (SVG + DXF) per unit and level, plus M&E schedules, driven by the building-services skill. Built after the design MVP, drawn on top of the existing floor-plan engine.
  • Reasoning: client asked for "all the electrical plans, everything"; Sanjiv chose options 1 and 2 (electrical now + full M&E now). Electrical and other services layouts are drawn on the floor plans, so the existing plan engine is the base layer.
  • Depth: schematic, design-and-spec stage only. Not certified construction or Part P drawings; an M&E engineer or electrician develops and certifies them. Stated in the pack's limits note.
  • Architecture: one shared services framework (hds/services.py) classifies rooms and returns placed M&E items tagged by discipline; one parameterised SVG renderer, one DXF renderer, and one schedule module filter by discipline. Not three separate copies.
  • Alternatives: electrical only (superseded by "1 and 2"); defer M&E to a much later phase (rejected, client wants it now).

Open Questions

  • OQ1: Product and brand name, and which business it sits under. Needs Sanjiv.
  • OQ2: Drawing style, styled images vs line drawings vs both. Default: both.
  • OQ3: One bespoke house vs several of one house type on a site. Default: support both, ask at intake.
  • OQ4: Approve use of the Higgsfield image MCP (costs credits). Default: yes.

Copyright note

"Copy" is implemented as "in the style of". The tool takes inspiration and adapts; it does not reproduce a specific protected house design exactly. Flag to revisit if the client wants closer replication.

Session summary (13/06/2026)

  • Completed: brainstormed the concept through the brainstorming skill; agreed a design-from-references house tool delivered as a Claude Code skill pack; wrote this spec and notes.
  • In progress: spec written, awaiting Sanjiv's review.
  • Blocked: none. Four open questions have working defaults so a plan can proceed.
  • Next: Sanjiv reviews the spec, then move to the implementation plan (writing-plans skill).