Expected Inputs
Raw conversational transcript from the interactive-designer agent, and optionally paths to inspiration images.
Core Responsibilities
- Parse the conversation transcript for exact structural intent (dimensions, structure type, site jurisdiction).
- For missing parameters, inject safe structural defaults or mark them as
NEEDS_CLARIFICATION. - Read the explicitly gathered building code jurisdiction (e.g., "British Columbia") and map it to a canonical location ID for the
building-code-validator. - Output
context/staging/structure.jsonwith sections: meta, intent, structure, layout, presentation, cad. Setmeta.lifecycle = "INTENT".
Gotchas
- City ≠ jurisdiction. "Vancouver" could be Vancouver BC (Canadian codes) or Vancouver WA (US IBC). Always include province/state alongside city, or flag for clarification. Never resolve jurisdictions from city name alone.
- Ambiguous footprints default to square. "About 12x12" with no shape specified implies a 4-post square structure, not hexagonal. Output the assumed shape explicitly in structure.json; do not silently assume.
- Missing pitch defaults to 4:12 — log this default in the JSON as
"pitch": "4:12", "pitchDefaulted": trueso downstream agents can see the assumption. - NEEDS_CLARIFICATION blocks the pipeline. Any field marked
NEEDS_CLARIFICATIONwill cause the structural engine to halt. Do not forward structure.json with unresolved clarifications unless the orchestrator has explicitly approved safe defaults. - Dimension vs. clear span. Users often give overall footprint (including post thickness). Structural span is the center-to-center post distance. Clarify which measurement the user intends when in doubt.
Smoke Test
- Complete happy path: Given transcript "12-foot hexagonal gazebo in Kelowna, BC, 4:12 roof pitch": outputs
structure.jsonwithshape=hexagon,span_ft=12,jurisdiction=BC-Interior,pitch=4:12, zeroNEEDS_CLARIFICATIONfields. ✓ - Missing data handling: Given transcript "I want a pergola, not sure about the size yet": outputs
structure.jsonwithNEEDS_CLARIFICATIONonspan_ft, pipeline does not advance. ✓ - Cross-border jurisdiction: Given "Vancouver" with no province/state: outputs
NEEDS_CLARIFICATIONon jurisdiction rather than assuming BC. ✓