You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -197,7 +198,7 @@ To add a new SPM type to `set_setpoint_manager_properties`:
197
198
198
199
## Rules
199
200
1. Keep files small where practical — aim for under 250 lines, but don't split artificially just to hit a number
200
-
2. Every MCP tool must have a test in `tests/skills/` (Phase 2+) or `tests/` (existing)
201
+
2. Every MCP tool must have a test in `tests/skills/` (Phase 2+) or `tests/` (existing). New behavior, bug fixes, and security hardening must also have integration tests — not just the happy path.
201
202
3.**Integration tests must be added to `.github/workflows/ci.yml`** — add a new step following the existing pattern
202
203
4. Operations return dicts with `{"ok": True/False, ...}` — never raise through MCP
Copy file name to clipboardExpand all lines: README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -342,7 +342,7 @@ List HVAC components via `list_model_objects("BoilerHotWater")`, loop detail too
342
342
343
343
### Measure Authoring (4 tools)
344
344
345
-
Create custom OpenStudio measures with AI-generated code, test them, and apply to models. See [Example 1](docs/examples/01_custom_measure_lighting.md) and [Example 2](docs/examples/02_custom_measure_hvac.md).
345
+
Create custom OpenStudio measures with AI-generated code, test them, and apply to models. See [Example 1](docs/examples/01_custom_measure_lighting.md), [Example 2](docs/examples/02_custom_measure_hvac.md), and [Example 19](docs/examples/19_systemd_fourpipebeam_retrofit.md) (full E2E retrofit).
346
346
347
347
| Tool | Description |
348
348
|------|-------------|
@@ -424,7 +424,7 @@ The component properties tools can query and modify these 15 HVAC component type
424
424
425
425
## Examples
426
426
427
-
18 worked examples with full tool-call sequences — click to expand:
427
+
19 worked examples with full tool-call sequences — click to expand:
428
428
429
429
| # | Example | Description |
430
430
|---|---------|-------------|
@@ -446,6 +446,7 @@ The component properties tools can query and modify these 15 HVAC component type
446
446
| 16 |[`/new-building`](docs/examples/16_new_building.md)| Full model creation from scratch |
Copy file name to clipboardExpand all lines: docs/examples/02_custom_measure_hvac.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,6 +84,7 @@ The AI compares:
84
84
-`edit_measure` can fix issues without recreating from scratch
85
85
- Chilled beams are AIR TERMINALS (connected via `addBranchForZone`), NOT zone equipment
86
86
87
-
## Integration Test
87
+
## Integration Tests
88
88
89
-
See `tests/llm/test_04_workflows.py::test_workflow[measure_replace_terminals_full_chain]`
89
+
-`tests/llm/test_04_workflows.py::test_workflow[measure_replace_terminals_full_chain]` — explicit prompt with API hints
90
+
-`tests/llm/test_04_workflows.py::test_workflow[systemd_fourpipebeam_e2e]` — natural-language prompt on 44-zone model (see [Example 19](19_systemd_fourpipebeam_retrofit.md))
# Example 19: End-to-End Retrofit — Four-Pipe Chilled Beams on Complex Model
2
+
3
+
Real-world workflow: load an existing 44-zone model, set weather, run baseline, author a custom measure, apply it, re-simulate, and compare results.
4
+
5
+
## Scenario
6
+
7
+
A modeler has an existing SystemD building (44 zones, 2 DOAS air loops, CHW/HW/SWH plant loops) and wants to evaluate replacing the constant-volume no-reheat terminals with 4-pipe active chilled beams. They provide a natural-language request with no tool names or API hints.
8
+
9
+
## Prompt
10
+
11
+
> I have a model at /inputs/SystemD_baseline.osm. I want you to run the model with Boston-Logan weather file — files are in the same directory. After that, create a measure for me that changes the air terminals to 4-pipe chilled beams, apply that measure to the model, run the model, and compare the results for me. Save the measure in the same location as the model so I have a copy.
| Measure export | Not saved | Copied to /inputs for reuse |
85
+
| Tool calls |~16 |~35 |
86
+
87
+
## Common Pitfalls
88
+
89
+
-**Weather file not found**: The model may reference a different EPW (e.g. Baltimore). `change_building_location` must be called before `run_simulation` and again after `load_osm_model` reload.
90
+
-**Plant loop names**: The measure must find loops by name substring ("Chilled Water", "Hot Water") — exact names vary by model.
91
+
-**Polling frequency**: `get_run_status` should wait 1-2 minutes between calls. Complex models take 60-140s to simulate.
92
+
93
+
## Integration Test
94
+
95
+
See `tests/llm/test_04_workflows.py::test_workflow[systemd_fourpipebeam_e2e]`
0 commit comments