See also: consumer / route matrix (DM-06) · tenant storage honesty (DM-05) · ADR data model graph.
Haystack modeling
Open-FDD uses Project Haystack semantics for sites, equipment, and points. Driver raw IDs map to Haystack refs through the assignment graph. Analytics and FDD rules consume mapped SQL roles after package ingest — not vendor point names.
A ZIP that imports successfully is not necessarily commissioning-grade. Empty Overview / Inspect / health matrices almost always mean missing roles in the package, not a broken engine. See Package authoring.
Guides
| Guide | Content |
|---|---|
| SQL rules → Haystack map | All production SQL rules + Haystack tags / SQL roles for the data model |
| Package schema | Compact ingest maps vs rich (SCAFFOLD) evidence |
| Heat-pump buildings | WSHP topology, role tiers, anti-patterns |
| Zone terminals / FCU / UV | Haystack multi-tag (equip + fanCoilUnit + zone, point roles) collapses to a stamp plus mapped roles; UV = CV AHU |
| Tenant storage honesty | DM-05 hub-root paths vs optional tenants/{tid}/ |
| Rule readiness | Runnable / missing / not applicable |
| Haystack model | Sites, equipment, points, RDF APIs |
| Engineering quantities | EQ-VOCAB capacities for ECM adapters |
| RDF vocabulary notes | DM-10 projection honesty (no false markers) |
| Haystack RDF profile | ofdd_haystack_projection_v1 strict interchange (C1 spec) |
| JSON / RDF crosswalk | openfdd_data_model_v1 ↔ native TTL ↔ strict Haystack |
| Haystack RDF evidence matrix (C1) | HR/S5 reconciliation; Soft-OPEN rows stay open |
| Assignments | Bind drivers → Haystack → FDD |
SQL FDD ↔ data model
Commissioning-grade packages must map points so every rule you care about has its required Haystack tags (or package columns) → SQL roles. Full registry table:
→ SQL rules → Haystack map (live count from sql_rules/registry.yaml)
Rule recipes live in the Rule Cookbook (/rules/ permalink is stable).
Agent entry points (repo)
- Law:
AGENTS.md - Authoring:
docs/agent/PACKAGE_AUTHORING.md - Role aliases:
docs/migration/vibe19/ROLE_MAPPING_PARITY.md - Ingest (read source):
edge/src/csv_ingest/package.rs - SQL roles:
crates/fdd_core/src/columns.rs - Equipment typing:
edge/src/equipment_types.rs - Rules:
sql_rules/registry.yaml
BUILDING_100-style AHU/VAV archives are richness references only — do not copy that topology onto water-source heat-pump buildings.