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.


Table of contents