Skip to content

future: kits/home-construction (multi-domain composition; the proof-test) #37

Description

@the-simian

Motivation

kits/home-construction is the proof-test for the foundational/composition kit pattern the library is establishing in the feat/core-kits arc. It's a future kit; this issue exists upfront so future work has a target shape to work toward.

Scope: a working US-context home-remodel kit. Bounded by "what's on the labels at Home Depot." Not a global construction reference; not a code-compliance database; not a contractor estimating tool. Composition over invention — most of the kit is cherry-picks from core foundational kits; the kit's own original surface is small.

Bounded context

US home remodel — pounds and gallons and inches and Fahrenheit, plus the millimeters that show up on machine-screw labels and the meters that show up on dimensional lumber spec sheets. Korean construction standards, EU CE-mark electrical, AU TPS-cabling rules: out of scope. A future kits/home-construction-eu or similar handles those.

Why this kit is the proof-test

It dips into LOTS of domains:

  • mass (lb, oz; kg for international fasteners)
  • length (in, ft, yd; mm for fasteners and metric thread pitches; m for sheet stock)
  • area (sq ft for flooring/drywall/roofing)
  • volume (gal for paint and water; L for international paint products)
  • temperature (°F for HVAC setpoints, paint/adhesive cure ranges; °C alongside)
  • electricity (future kit) — V, A, W, kWh for service panel, breakers, runtimes
  • hydro / flow (future kit) — gpm, psi, water column, gph for plumbing fixtures and supply lines
  • light (future kit, maybe) — lumens, CRI, color temperature K, u-factor, visible transmittance, air-leakage rate for windows / fenestration

The construction kit's own contribution is small: pack sizes that exist mostly in this domain (the standard 2×4×8 dimensional lumber sku; the 4×8 sheet of drywall or plywood; the 5-gallon bucket of paint; the 50-lb bag of concrete mix; the standard breaker amperages 15A / 20A / 30A / 50A as a tagged set). Maybe a handful of construction-specific composite conversions (board feet from length+width+thickness; drywall sheets to cover N square feet; concrete bags to fill N cubic feet at a given thickness).

Most of the source file will be export { ... } from '../<core-kit>' statements. That's the point.

Acceptance criteria for the FUTURE PR (not this issue's scope)

  • Lives at unitforge/kits/home-construction
  • No unit redeclared that already lives in a core kit; everything cross-imports
  • US-bounded; metric units present only where they actually show up at Home Depot (machine-screw threading, some international paint)
  • Domain-specific surface ≤ 10 units, ≤ 5 conversions
  • Demo: at least one composite calculation (e.g., "X drywall sheets for a room of these dimensions" using the imported length + area kits plus the kit's drywall pack-size unit)
  • Verifies the foundational/composition pattern works for real

Sequencing

Comes after the foundational layer is complete. Today's feat/core-kits arc establishes mass, temperature, volume, length as foundational. The next foundational kits needed for home-construction are electricity and hydro/flow (and maybe light). Once those exist, home-construction is mostly an assembly + small domain-specific surface.

We're working up to this. Do not implement this kit until the foundational dependencies exist. This issue is the target shape so the foundational kits get built with the right design in mind (specifically: cross-kit Unit re-exports must preserve JS identity so forge(home.foot, length.foot) is forge(foot, foot)).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions