# Immeuble MCP lab — comparison report (`test-immo-mcp2`)

## Summary

- **Status:** partial pass (core L2 met; golden parity gaps on billing/shared spaces)
- **SQLite:** `/home/dlamotte/Documents/ghostcrab-personal-mcp/data/ghostcrab.sqlite`
- **Process workspace:** `test-immo-mcp2` (corpus extraction, no bundle load)
- **Reference workspace:** `immeuble-demo` (golden `bundle.json`)
- **Config fixes applied:** `default_ontology_id=test-immo-mcp2::core`, `domain_profile=syndic`

## Entity counts

| type | criteria | test-immo-mcp2 | immeuble-demo | test-immo-mcp2 ok |
|------|----------|----------------|---------------|-------------------|
| buildings | 2 | 2 | 2 | yes |
| blocks | 3 | 2 | 3 | no |
| units | 13 | 13 | 13 | yes |
| households | 13 | 13 | 13 | yes |
| cellars | 13 | 13 | 13 | yes |
| private_gardens | 6 | 6 | 6 | yes |
| lease_contracts | 5 | 5 | 5 | yes |
| coda_entries | 3 | 3 | 3 | yes |
| billing_group | — (golden) | 0 | 13 | no |
| shared_space | — (golden) | 0 | 6 | no |
| shared_equipment | — (golden) | 0 | 4 | no |
| graph relations | — | 129 | 265 | — |

## Relation / search / diagnostics

| check | criteria | test-immo-mcp2 | immeuble-demo | test-immo-mcp2 ok |
|-------|----------|----------------|---------------|-------------------|
| graph_search « appartement » | ≥ 13 | 13 | 20 | yes |
| L2 missing_required_relations | ≤ 0 | 0 | 0 | yes |
| relation_type_mismatch | — | 28 | — | review |
| ontology Modèle tab | 24 classes | yes (`::core`) | yes | yes (after config fix) |

## Gaps on test-immo-mcp2 (max 3)

1. **Billing groups (13)** — corpus had only one mention in PV AG; no `billing_group` / `bills_to` entities extracted.
2. **Shared spaces & equipment (6 + 4)** — prose exists in statuts + annexes; LLM did not materialize `shared_space`, `shared_equipment`, or `uses_common`.
3. **Edge vocabulary drift** — extraction emitted `block_contains_unit` (13) alongside `contains` (13); golden uses ontology-aligned edge names including `bills_to`.

## Remediation (plan Part B + C)

- Add doc 9 `groupes-facturation.md` with explicit billing registry.
- Full retry on `test-immo-mcp3` with process guards (`default_ontology_id=::core`, live extract, post-normalize edges).
