@mindflight/mindbrain-personal-studio 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +16 -8
  2. package/build/client/_app/immutable/chunks/{D0UIlUGZ.js → BjfgiHck.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BjfgiHck.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BjfgiHck.js.gz +0 -0
  5. package/build/client/_app/immutable/entry/{app.CR-imLox.js → app.XgS1PoV0.js} +2 -2
  6. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.br +0 -0
  7. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.gz +0 -0
  8. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js +1 -0
  9. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.br +2 -0
  10. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.gz +0 -0
  11. package/build/client/_app/immutable/nodes/{1.CTEedoSY.js → 1.Cs3BmvHO.js} +1 -1
  12. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.br +3 -0
  13. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.gz +0 -0
  14. package/build/client/_app/version.json +1 -1
  15. package/build/client/_app/version.json.br +0 -0
  16. package/build/client/_app/version.json.gz +0 -0
  17. package/build/handler.js +4 -4
  18. package/build/index.js +4 -4
  19. package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js → internal.js-BnebQ91H.js} +2 -2
  20. package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js.map → internal.js-BnebQ91H.js.map} +1 -1
  21. package/build/server/chunks/{handler-BIDedSZq.js → handler-B8M0DnFi.js} +3 -3
  22. package/build/server/chunks/{handler-BIDedSZq.js.map → handler-B8M0DnFi.js.map} +1 -1
  23. package/build/server/chunks/{index.js-YVPJa0so.js → index.js-qz9YZN7m.js} +2 -2
  24. package/build/server/chunks/{index.js-YVPJa0so.js.map → index.js-qz9YZN7m.js.map} +1 -1
  25. package/build/server/chunks/{manifest.js-aGRKuiqF.js → manifest.js-BxEwHoCX.js} +3 -3
  26. package/build/server/chunks/{manifest.js-aGRKuiqF.js.map → manifest.js-BxEwHoCX.js.map} +1 -1
  27. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js → 1.js-D3KAPgsF.js} +2 -2
  28. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js.map → 1.js-D3KAPgsF.js.map} +1 -1
  29. package/examples/immeuble/ACCEPTANCE.yaml +82 -0
  30. package/examples/immeuble/BIM_LITE.md +15 -0
  31. package/examples/immeuble/CHECKLIST.md +128 -0
  32. package/examples/immeuble/README.md +121 -0
  33. package/examples/immeuble/bundle/immeuble.bundle.json +22786 -0
  34. package/examples/immeuble/contracts/answer_artifacts.seed.jsonl +34 -0
  35. package/examples/immeuble/contracts/business_capabilities.seed.jsonl +25 -0
  36. package/examples/immeuble/contracts/consumer_contract.yaml +131 -0
  37. package/examples/immeuble/contracts/immeuble_structured_import_model.json +310 -0
  38. package/examples/immeuble/contracts/mapping_external_to_canonical.json +375 -0
  39. package/examples/immeuble/contracts/mapping_external_to_canonical.yaml +55 -0
  40. package/examples/immeuble/contracts/mapping_external_to_canonical_ws.json +65 -0
  41. package/examples/immeuble/contracts/model_contract.json +943 -0
  42. package/examples/immeuble/contracts/projection_catalog.yaml +366 -0
  43. package/examples/immeuble/contracts/scenarios.yaml +27 -0
  44. package/examples/immeuble/contracts/semantic_proposal.golden.json +1 -0
  45. package/examples/immeuble/contracts/source_profile.yaml +38 -0
  46. package/examples/immeuble/fake_data/DeltaFinding.csv +20 -0
  47. package/examples/immeuble/fake_data/ProjectionResult.csv +13 -0
  48. package/examples/immeuble/fake_data/ag_meeting.csv +4 -0
  49. package/examples/immeuble/fake_data/agenda_item.csv +4 -0
  50. package/examples/immeuble/fake_data/architect.csv +3 -0
  51. package/examples/immeuble/fake_data/architecture_firm.csv +2 -0
  52. package/examples/immeuble/fake_data/bank_account.csv +3 -0
  53. package/examples/immeuble/fake_data/billing_group.csv +41 -0
  54. package/examples/immeuble/fake_data/block.csv +10 -0
  55. package/examples/immeuble/fake_data/budget_line.csv +3 -0
  56. package/examples/immeuble/fake_data/building.csv +6 -0
  57. package/examples/immeuble/fake_data/cellar.csv +41 -0
  58. package/examples/immeuble/fake_data/change_order.csv +2 -0
  59. package/examples/immeuble/fake_data/charge_call.csv +58 -0
  60. package/examples/immeuble/fake_data/claim.csv +4 -0
  61. package/examples/immeuble/fake_data/coda_entry.csv +49 -0
  62. package/examples/immeuble/fake_data/compliance_certificate.csv +10 -0
  63. package/examples/immeuble/fake_data/contractor.csv +4 -0
  64. package/examples/immeuble/fake_data/decision.csv +5 -0
  65. package/examples/immeuble/fake_data/defect_reserve.csv +3 -0
  66. package/examples/immeuble/fake_data/household.csv +41 -0
  67. package/examples/immeuble/fake_data/inspection.csv +3 -0
  68. package/examples/immeuble/fake_data/insurance_policy.csv +4 -0
  69. package/examples/immeuble/fake_data/intervention.csv +13 -0
  70. package/examples/immeuble/fake_data/invoice.csv +3 -0
  71. package/examples/immeuble/fake_data/lease_contract.csv +12 -0
  72. package/examples/immeuble/fake_data/maintenance_ticket.csv +13 -0
  73. package/examples/immeuble/fake_data/meter.csv +4 -0
  74. package/examples/immeuble/fake_data/meter_reading.csv +19 -0
  75. package/examples/immeuble/fake_data/milestone.csv +3 -0
  76. package/examples/immeuble/fake_data/organization.csv +12 -0
  77. package/examples/immeuble/fake_data/parking_space.csv +8 -0
  78. package/examples/immeuble/fake_data/permit.csv +3 -0
  79. package/examples/immeuble/fake_data/person.csv +85 -0
  80. package/examples/immeuble/fake_data/private_garden.csv +7 -0
  81. package/examples/immeuble/fake_data/progress_event.csv +2 -0
  82. package/examples/immeuble/fake_data/quote.csv +3 -0
  83. package/examples/immeuble/fake_data/receipt.csv +2 -0
  84. package/examples/immeuble/fake_data/reminder.csv +11 -0
  85. package/examples/immeuble/fake_data/service_contract.csv +4 -0
  86. package/examples/immeuble/fake_data/shared_equipment.csv +8 -0
  87. package/examples/immeuble/fake_data/shared_space.csv +10 -0
  88. package/examples/immeuble/fake_data/unit.csv +41 -0
  89. package/examples/immeuble/fake_data/work_package.csv +4 -0
  90. package/examples/immeuble/fake_data/worksite_project.csv +3 -0
  91. package/examples/immeuble/gap-rules/L0-patrimoine.json +57 -0
  92. package/examples/immeuble/gap-rules/L1-syndic-naive.json +36 -0
  93. package/examples/immeuble/gap-rules/L1-syndic.json +61 -0
  94. package/examples/immeuble/gap-rules/L2-chantier.json +87 -0
  95. package/examples/immeuble/gap-rules/L2-exploitation.json +87 -0
  96. package/examples/immeuble/gap-rules/L2-finance.json +48 -0
  97. package/examples/immeuble/gap-rules/L2-maintenance.json +107 -0
  98. package/examples/immeuble/gap-rules/L2-syndic-filtered.json +39 -0
  99. package/examples/immeuble/gap-rules/L3-full.json +332 -0
  100. package/examples/immeuble/gap-rules/closed-world-contract.md +76 -0
  101. package/examples/immeuble/gap-rules/demo.json +51 -0
  102. package/examples/immeuble/gap-rules/expected-findings.yaml +100 -0
  103. package/examples/immeuble/gap-rules/gap-scenarios.yaml +79 -0
  104. package/examples/immeuble/gap-rules/motifs.json +38 -0
  105. package/examples/immeuble/gap-rules/syndic.json +40 -0
  106. package/examples/immeuble/import_manifest.yaml +25 -0
  107. package/examples/immeuble/import_ready/graph_edges_import.csv +848 -0
  108. package/examples/immeuble/import_ready/mfo_facets_import.csv +559 -0
  109. package/examples/immeuble/index.md +140 -0
  110. package/examples/immeuble/model/immeuble_model.json +418 -0
  111. package/examples/immeuble/reports/01-model.validation.json +56 -0
  112. package/examples/immeuble/reports/02-mapping.validation.json +9 -0
  113. package/examples/immeuble/reports/acceptance.validation.json +161 -0
  114. package/examples/immeuble/reports/consumer_contract.validation.json +162 -0
  115. package/examples/immeuble/reports/graph_edges.jsonl +847 -0
  116. package/examples/immeuble/reports/graph_nodes.jsonl +558 -0
  117. package/examples/immeuble/reports/hybrid-compare.json +144 -0
  118. package/examples/immeuble/reports/immeuble-import-scenario.json +233 -0
  119. package/examples/immeuble/reports/live-artifacts-refresh.validation.json +51 -0
  120. package/examples/immeuble/reports/pipeline_audit.json +59 -0
  121. package/examples/immeuble/reports/projection_audit.json +69 -0
  122. package/examples/immeuble/reports/projection_audit_immeuble.json +257 -0
  123. package/examples/immeuble/reports/projection_audit_immeuble.md +122 -0
  124. package/examples/immeuble/reports/projection_candidates.json +1596 -0
  125. package/examples/immeuble/reports/projection_candidates.md +117 -0
  126. package/examples/immeuble/reports/projection_model_validation.md +115 -0
  127. package/examples/immeuble/reports/reindex.json +4 -0
  128. package/examples/immeuble/reports/reset-immeuble-workspace.json +32 -0
  129. package/examples/immeuble/reports/schema-id-prefix-check.json +5 -0
  130. package/examples/immeuble/scripts/audit-immeuble-projections.mjs +254 -0
  131. package/examples/immeuble/scripts/build-immeuble-model.mjs +308 -0
  132. package/examples/immeuble/scripts/compare-immeuble-snapshots.sh +227 -0
  133. package/examples/immeuble/scripts/enrich-immeuble-demo.mjs +1135 -0
  134. package/examples/immeuble/scripts/reset-immeuble-workspace.mjs +139 -0
  135. package/examples/immeuble/scripts/run-immeuble-backend.sh +164 -0
  136. package/examples/immeuble/scripts/run-immeuble-import.mjs +232 -0
  137. package/examples/immeuble/scripts/run-immeuble-live-lab.sh +439 -0
  138. package/examples/immeuble/scripts/seed-immeuble-gap-rules.mjs +103 -0
  139. package/examples/immeuble/scripts/start-immeuble-demo.sh +52 -0
  140. package/examples/immeuble/scripts/starterkit/analysis-lenses.mjs +181 -0
  141. package/examples/immeuble/scripts/starterkit/analyze-projection-candidates.mjs +714 -0
  142. package/examples/immeuble/scripts/starterkit/audit-ghostcrab-projections.mjs +674 -0
  143. package/examples/immeuble/scripts/starterkit/facet-prefix.mjs +166 -0
  144. package/examples/immeuble/scripts/starterkit/sqlite-utils.mjs +131 -0
  145. package/examples/immeuble/scripts/verify-immeuble-acceptance.mjs +284 -0
  146. package/examples/immeuble/scripts/verify-immeuble-live-artifacts.mjs +140 -0
  147. package/examples/immeuble/scripts/yaml-lite.mjs +96 -0
  148. package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites-immo-mcp.md +161 -0
  149. package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites.md +39 -0
  150. package/examples/immeuble/sources/agent-prompts/prompts/01-discovery-and-model-proposal.md +42 -0
  151. package/examples/immeuble/sources/agent-prompts/prompts/02-ontology-register.md +44 -0
  152. package/examples/immeuble/sources/agent-prompts/prompts/03-gap-rules-design.md +44 -0
  153. package/examples/immeuble/sources/agent-prompts/prompts/04-document-ingest.md +40 -0
  154. package/examples/immeuble/sources/agent-prompts/prompts/05-graph-extraction.md +44 -0
  155. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-immo-mcp.md +109 -0
  156. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-test-immo-mcp3.md +30 -0
  157. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare.md +63 -0
  158. package/examples/immeuble/sources/checklists/gap-rules-checklist.md +42 -0
  159. package/examples/immeuble/sources/checklists/ontology-checklist.md +54 -0
  160. package/examples/immeuble/sources/documents/README.md +42 -0
  161. package/examples/immeuble/sources/documents/annexes-caves-garages-jardins.md +8 -0
  162. package/examples/immeuble/sources/documents/annexes-jardins-garages.md +1 -0
  163. package/examples/immeuble/sources/documents/baux-erables.md +1 -0
  164. package/examples/immeuble/sources/documents/baux-locatifs.md +11 -0
  165. package/examples/immeuble/sources/documents/coda-janvier-2026.md +10 -0
  166. package/examples/immeuble/sources/documents/composition-menages.md +1 -0
  167. package/examples/immeuble/sources/documents/composition-occupants.md +18 -0
  168. package/examples/immeuble/sources/documents/expected-coverage.json +70 -0
  169. package/examples/immeuble/sources/documents/extrait-coda-janvier-2026.md +1 -0
  170. package/examples/immeuble/sources/documents/groupes-facturation.md +30 -0
  171. package/examples/immeuble/sources/documents/manifest.json +79 -0
  172. package/examples/immeuble/sources/documents/note-architecte-chantier-erables.md +3 -0
  173. package/examples/immeuble/sources/documents/permis-urbanisme-erables.md +3 -0
  174. package/examples/immeuble/sources/documents/procedures-operationnelles.md +3 -0
  175. package/examples/immeuble/sources/documents/pv-ag-budget-2026.md +1 -0
  176. package/examples/immeuble/sources/documents/pv-reception-reserves-erables.md +3 -0
  177. package/examples/immeuble/sources/documents/registre-coproprietaires.md +24 -0
  178. package/examples/immeuble/sources/documents/reglement-copropriete-tilleuls.md +1 -0
  179. package/examples/immeuble/sources/documents/statuts-erables.md +22 -0
  180. package/examples/immeuble/sources/documents/statuts-tilleuls.md +19 -0
  181. package/examples/immeuble/sources/documents/succession-jean-dupont.md +3 -0
  182. package/examples/immeuble/sources/documents/titre-propriete-tilleuls-a3.md +1 -0
  183. package/examples/immeuble/sources/documents/trous-pedagogiques.md +3 -0
  184. package/examples/immeuble/sources/ontology/README.md +1 -0
  185. package/examples/immeuble/sources/ontology/core.yaml +444 -0
  186. package/examples/immeuble/success-criteria.yaml +35 -0
  187. package/fixtures/immeuble-demo.sqlite +0 -0
  188. package/package.json +11 -2
  189. package/scripts/lib/sqlite-runtime.mjs +1 -1
  190. package/scripts/load-immeuble-demo.sh +179 -0
  191. package/scripts/seed-immeuble-projections.mjs +75 -148
  192. package/scripts/verify-immeuble-demo-sources.mjs +93 -0
  193. package/scripts/verify-immeuble-demo.mjs +69 -0
  194. package/build/client/_app/immutable/chunks/D0UIlUGZ.js.br +0 -0
  195. package/build/client/_app/immutable/chunks/D0UIlUGZ.js.gz +0 -0
  196. package/build/client/_app/immutable/entry/app.CR-imLox.js.br +0 -0
  197. package/build/client/_app/immutable/entry/app.CR-imLox.js.gz +0 -0
  198. package/build/client/_app/immutable/entry/start.DV-AjeAB.js +0 -1
  199. package/build/client/_app/immutable/entry/start.DV-AjeAB.js.br +0 -2
  200. package/build/client/_app/immutable/entry/start.DV-AjeAB.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/1.CTEedoSY.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/1.CTEedoSY.js.gz +0 -0
@@ -0,0 +1,140 @@
1
+ # Immeuble — parcours pas à pas
2
+
3
+ Analytical walkthrough from raw documents to importable workspace. Each step lists **filesystem artifacts**, **DB tables**, and **verification**.
4
+
5
+ Cross-reference: [méthode StarterKit](../../docs/explanation/methode-starterkit/README.md) · [CHECKLIST exécutable](CHECKLIST.md) · [ACCEPTANCE.yaml](ACCEPTANCE.yaml)
6
+
7
+ ## Étape 0 — Runtime
8
+
9
+ | Filesystem | DB | Vérification |
10
+ |------------|-----|--------------|
11
+ | — | — | `ghostcrab_status` → backend OK, workspace routable |
12
+
13
+ ## Étape 1 — Modèle métier
14
+
15
+ **Input:** [`sources/documents/`](sources/documents/) (corpus markdown syndic)
16
+
17
+ **Commande:**
18
+
19
+ ```bash
20
+ npm run immeuble:build
21
+ ```
22
+
23
+ | Filesystem | DB | Vérification |
24
+ |------------|-----|--------------|
25
+ | `model/immeuble_model.json` | — | 19+ entity types, `schema_id` prefix `immeuble:` |
26
+ | `reports/01-model.validation.json` | — | `ok: true`, zero prefix violations |
27
+ | `fake_data/*.csv` | — | one CSV per entity type |
28
+
29
+ ## Étape 2 — Ontologie LinkML
30
+
31
+ **Source:** [`ontologies/immeuble/core.yaml`](../../ontologies/immeuble/core.yaml)
32
+
33
+ ```bash
34
+ node bin/gcp.mjs brain ontology compile \
35
+ --workspace-id immeuble \
36
+ --ontology-id immeuble::core \
37
+ --input ontologies/immeuble/core.yaml \
38
+ --apply
39
+ ```
40
+
41
+ | Filesystem | DB | Vérification |
42
+ |------------|-----|--------------|
43
+ | compile slice JSON (temp) | `ontologies`, `ontology_*` | `ghostcrab_coverage` |
44
+
45
+ ## Étape 3 — Mapping + dry-run (gates 2–4)
46
+
47
+ | Filesystem | DB | Vérification |
48
+ |------------|-----|--------------|
49
+ | `contracts/mapping_external_to_canonical.json` | **aucune écriture** | taxonomies dans mapping |
50
+ | `reports/02-mapping.validation.json` | — | facet/edge row counts |
51
+ | `reports/graph_nodes.jsonl`, `graph_edges.jsonl` | — | parseable JSONL |
52
+ | `reports/pipeline_audit.json` | — | all gates `ok` |
53
+
54
+ ```bash
55
+ node examples/immeuble/scripts/run-immeuble-import.mjs \
56
+ --skip-preflight --skip-provenance-validation
57
+ ```
58
+
59
+ ## Étape 4 — Apply import (gates 5–6)
60
+
61
+ ```bash
62
+ npm run immeuble:import
63
+ ```
64
+
65
+ | Filesystem | DB | Vérification |
66
+ |------------|-----|--------------|
67
+ | `import_ready/mfo_facets_import.csv` | `agent_facts` | `schema_id` starts with `immeuble:` |
68
+ | `import_ready/graph_edges_import.csv` | `entities_raw`, `relations_raw` | counts > 0 |
69
+ | `reports/schema-id-prefix-check.json` | — | `ok: true` |
70
+ | `reports/immeuble-import-scenario.json` | — | full scenario evidence |
71
+
72
+ Expected counts (narrative Tilleuls/Érables): see [`success-criteria.yaml`](success-criteria.yaml).
73
+
74
+ ## Étape 5 — Reindex
75
+
76
+ | Filesystem | DB | Vérification |
77
+ |------------|-----|--------------|
78
+ | `reports/reindex.json` | `graph_entity`, `graph_relation`, facet postings | `graph_projected > 0` |
79
+ | — | BM25 / facet indexes | `ghostcrab_graph_search` query `appartement` ≥ 13 |
80
+
81
+ ## Étape 6 — Projections
82
+
83
+ | Filesystem | DB | Vérification |
84
+ |------------|-----|--------------|
85
+ | `contracts/projection_catalog.yaml` | — | 1 analysis_plan + 3 live_answer_view |
86
+ | `contracts/answer_artifacts.seed.jsonl` | `mindbrain_answer_artifacts` (after load) | artifact ids listed |
87
+ | `contracts/business_capabilities.seed.jsonl` | `agent_facts` (`ghostcrab:business-capability`) | router live routes (see below) |
88
+ | `reports/projection_audit_immeuble.json` | — | registry matches catalog + coverage facets/edges/schemas |
89
+
90
+ ```bash
91
+ node examples/immeuble/scripts/starterkit/analyze-projection-candidates.mjs --db "$GHOSTCRAB_SQLITE_PATH" --workspace immeuble --projection-catalog contracts/projection_catalog.yaml --model-contract contracts/model_contract.json --output-dir reports --include-blind-spots --include-jtbd
92
+ node examples/immeuble/scripts/starterkit/audit-ghostcrab-projections.mjs --db "$GHOSTCRAB_SQLITE_PATH" --workspace immeuble --model contracts/model_contract.json --answer-artifacts-seed contracts/answer_artifacts.seed.jsonl --output-dir reports
93
+ gcp brain artifact list --workspace-id immeuble --kind live_answer_view
94
+ gcp brain artifact refresh live_answer_view__annuaire_coproprietes
95
+ ```
96
+
97
+ ### Business query router (Option A)
98
+
99
+ Load registered capabilities so `ghostcrab_business_query_answer` can route immeuble questions in SQLite-only mode (without relying on `mindbrain_answer_artifacts`):
100
+
101
+ ```bash
102
+ node bin/gcp.mjs load examples/immeuble/contracts/business_capabilities.seed.jsonl --workspace immeuble
103
+ # or via reset / live lab:
104
+ node examples/immeuble/scripts/reset-immeuble-workspace.mjs --with-business-capabilities
105
+ examples/immeuble/scripts/run-immeuble-live-lab.sh --with-business-capabilities
106
+ pnpm test:integration -- tests/integration/immeuble-business-query.test.ts
107
+ ```
108
+
109
+ Convention: each record requires `workspace_id`, `availability` (`live_answer_view`), and `activation_status` (`active`) in `facets`. Verification: `tests/integration/immeuble-business-query.test.ts`.
110
+
111
+ For a future `live_query` path (Option B — core router + model facets), see [plan détaillé](../../docs/plan/2026-06-14-plan-adaptation-demo-immeuble-business-query.md#4-plan-dimplémentation--option-b-suivi-pour-atteindre-live_query).
112
+
113
+ ## Étape 7 — Bundle final
114
+
115
+ ```bash
116
+ export GHOSTCRAB_SQLITE_PATH="$PWD/data/immeuble.sqlite"
117
+ node bin/gcp.mjs load examples/immeuble/bundle/immeuble.bundle.json \
118
+ --workspace immeuble --reindex all
119
+ ```
120
+
121
+ | Filesystem | DB | Vérification |
122
+ |------------|-----|--------------|
123
+ | `bundle/immeuble.bundle.json` | full workspace reload | same entity counts as step 4 |
124
+ | `reports/consumer_contract.validation.json` | — | consumer workspace = `immeuble` |
125
+
126
+ ## Hybrid engine compare (CI)
127
+
128
+ ```bash
129
+ node examples/immeuble/scripts/run-immeuble-import.mjs \
130
+ --apply --engine both --skip-preflight --skip-provenance-validation \
131
+ --compare-output examples/immeuble/reports/hybrid-compare.json
132
+ ```
133
+
134
+ Expect `compare.deltas` = 0 on facet/edge counters.
135
+
136
+ ## Agent path (optional)
137
+
138
+ Prompts for MCP-driven reconstruction: [`sources/agent-prompts/prompts/`](sources/agent-prompts/prompts/)
139
+
140
+ Same success thresholds: [`success-criteria.yaml`](success-criteria.yaml)
@@ -0,0 +1,418 @@
1
+ {
2
+ "workspace_id": "immeuble",
3
+ "ontology_id": "immeuble::core",
4
+ "label": "Immeuble syndic reference model",
5
+ "version": "2026-06-14",
6
+ "closed_edge_labels": [
7
+ "CONTAINS",
8
+ "OWNS",
9
+ "OCCUPIES",
10
+ "HOUSEHOLD_MEMBER",
11
+ "PRIMARY_RESIDENCE_OF",
12
+ "LEASES",
13
+ "RENTED_TO",
14
+ "ASSIGNED_CELLAR",
15
+ "ASSIGNED_GARAGE",
16
+ "USES_EXCLUSIVE",
17
+ "USES_COMMON",
18
+ "MATCHED_TO",
19
+ "ALLOCATED_TO",
20
+ "REQUIRES_REVIEW",
21
+ "DOCUMENTS",
22
+ "MEMBER_OF",
23
+ "HAS_MEMBER",
24
+ "BILLS_TO",
25
+ "LINKED_TO",
26
+ "MANAGES",
27
+ "REPRESENTS",
28
+ "RECORDS",
29
+ "TRIGGERED",
30
+ "DECIDED_BY",
31
+ "MANAGES_PROJECT",
32
+ "DESIGNS_FOR",
33
+ "HAS_WORK_PACKAGE",
34
+ "EXECUTES_WORK_PACKAGE",
35
+ "HAS_MILESTONE",
36
+ "AUTHORIZED_BY",
37
+ "BASED_ON_QUOTE",
38
+ "HAS_BUDGET_LINE",
39
+ "INVOICED_BY",
40
+ "AFFECTS_ASSET",
41
+ "REPORTED_BY",
42
+ "HAS_RESERVE",
43
+ "EVIDENCED_BY",
44
+ "COVERS_ASSET",
45
+ "PROVIDED_BY",
46
+ "CONCERNS_ASSET",
47
+ "HAS_INTERVENTION",
48
+ "COVERED_BY",
49
+ "CERTIFIES_ASSET",
50
+ "MEASURES_ASSET",
51
+ "RECORDS_READING",
52
+ "HAS_AGENDA_ITEM",
53
+ "FLAGS_ENTITY"
54
+ ],
55
+ "entity_types": [
56
+ {
57
+ "name": "DeltaFinding",
58
+ "label": "DeltaFinding",
59
+ "schema_id": "immeuble:core:DeltaFinding",
60
+ "ontology": "core",
61
+ "node_type": "DeltaFinding",
62
+ "record_id_pattern": "DeltaFinding:<stable-key>"
63
+ },
64
+ {
65
+ "name": "ProjectionResult",
66
+ "label": "ProjectionResult",
67
+ "schema_id": "immeuble:core:ProjectionResult",
68
+ "ontology": "core",
69
+ "node_type": "ProjectionResult",
70
+ "record_id_pattern": "ProjectionResult:<stable-key>"
71
+ },
72
+ {
73
+ "name": "ag_meeting",
74
+ "label": "ag_meeting",
75
+ "schema_id": "immeuble:core:ag_meeting",
76
+ "ontology": "core",
77
+ "node_type": "ag_meeting",
78
+ "record_id_pattern": "ag_meeting:<stable-key>"
79
+ },
80
+ {
81
+ "name": "agenda_item",
82
+ "label": "agenda_item",
83
+ "schema_id": "immeuble:core:agenda_item",
84
+ "ontology": "core",
85
+ "node_type": "agenda_item",
86
+ "record_id_pattern": "agenda_item:<stable-key>"
87
+ },
88
+ {
89
+ "name": "architect",
90
+ "label": "architect",
91
+ "schema_id": "immeuble:core:architect",
92
+ "ontology": "core",
93
+ "node_type": "architect",
94
+ "record_id_pattern": "architect:<stable-key>"
95
+ },
96
+ {
97
+ "name": "architecture_firm",
98
+ "label": "architecture_firm",
99
+ "schema_id": "immeuble:core:architecture_firm",
100
+ "ontology": "core",
101
+ "node_type": "architecture_firm",
102
+ "record_id_pattern": "architecture_firm:<stable-key>"
103
+ },
104
+ {
105
+ "name": "bank_account",
106
+ "label": "bank_account",
107
+ "schema_id": "immeuble:core:bank_account",
108
+ "ontology": "core",
109
+ "node_type": "bank_account",
110
+ "record_id_pattern": "bank_account:<stable-key>"
111
+ },
112
+ {
113
+ "name": "billing_group",
114
+ "label": "billing_group",
115
+ "schema_id": "immeuble:core:billing_group",
116
+ "ontology": "core",
117
+ "node_type": "billing_group",
118
+ "record_id_pattern": "billing_group:<stable-key>"
119
+ },
120
+ {
121
+ "name": "block",
122
+ "label": "block",
123
+ "schema_id": "immeuble:core:block",
124
+ "ontology": "core",
125
+ "node_type": "block",
126
+ "record_id_pattern": "block:<stable-key>"
127
+ },
128
+ {
129
+ "name": "budget_line",
130
+ "label": "budget_line",
131
+ "schema_id": "immeuble:core:budget_line",
132
+ "ontology": "core",
133
+ "node_type": "budget_line",
134
+ "record_id_pattern": "budget_line:<stable-key>"
135
+ },
136
+ {
137
+ "name": "building",
138
+ "label": "building",
139
+ "schema_id": "immeuble:core:building",
140
+ "ontology": "core",
141
+ "node_type": "building",
142
+ "record_id_pattern": "building:<stable-key>"
143
+ },
144
+ {
145
+ "name": "cellar",
146
+ "label": "cellar",
147
+ "schema_id": "immeuble:core:cellar",
148
+ "ontology": "core",
149
+ "node_type": "cellar",
150
+ "record_id_pattern": "cellar:<stable-key>"
151
+ },
152
+ {
153
+ "name": "change_order",
154
+ "label": "change_order",
155
+ "schema_id": "immeuble:core:change_order",
156
+ "ontology": "core",
157
+ "node_type": "change_order",
158
+ "record_id_pattern": "change_order:<stable-key>"
159
+ },
160
+ {
161
+ "name": "charge_call",
162
+ "label": "charge_call",
163
+ "schema_id": "immeuble:core:charge_call",
164
+ "ontology": "core",
165
+ "node_type": "charge_call",
166
+ "record_id_pattern": "charge_call:<stable-key>"
167
+ },
168
+ {
169
+ "name": "claim",
170
+ "label": "claim",
171
+ "schema_id": "immeuble:core:claim",
172
+ "ontology": "core",
173
+ "node_type": "claim",
174
+ "record_id_pattern": "claim:<stable-key>"
175
+ },
176
+ {
177
+ "name": "coda_entry",
178
+ "label": "coda_entry",
179
+ "schema_id": "immeuble:core:coda_entry",
180
+ "ontology": "core",
181
+ "node_type": "coda_entry",
182
+ "record_id_pattern": "coda_entry:<stable-key>"
183
+ },
184
+ {
185
+ "name": "compliance_certificate",
186
+ "label": "compliance_certificate",
187
+ "schema_id": "immeuble:core:compliance_certificate",
188
+ "ontology": "core",
189
+ "node_type": "compliance_certificate",
190
+ "record_id_pattern": "compliance_certificate:<stable-key>"
191
+ },
192
+ {
193
+ "name": "contractor",
194
+ "label": "contractor",
195
+ "schema_id": "immeuble:core:contractor",
196
+ "ontology": "core",
197
+ "node_type": "contractor",
198
+ "record_id_pattern": "contractor:<stable-key>"
199
+ },
200
+ {
201
+ "name": "decision",
202
+ "label": "decision",
203
+ "schema_id": "immeuble:core:decision",
204
+ "ontology": "core",
205
+ "node_type": "decision",
206
+ "record_id_pattern": "decision:<stable-key>"
207
+ },
208
+ {
209
+ "name": "defect_reserve",
210
+ "label": "defect_reserve",
211
+ "schema_id": "immeuble:core:defect_reserve",
212
+ "ontology": "core",
213
+ "node_type": "defect_reserve",
214
+ "record_id_pattern": "defect_reserve:<stable-key>"
215
+ },
216
+ {
217
+ "name": "household",
218
+ "label": "household",
219
+ "schema_id": "immeuble:core:household",
220
+ "ontology": "core",
221
+ "node_type": "household",
222
+ "record_id_pattern": "household:<stable-key>"
223
+ },
224
+ {
225
+ "name": "inspection",
226
+ "label": "inspection",
227
+ "schema_id": "immeuble:core:inspection",
228
+ "ontology": "core",
229
+ "node_type": "inspection",
230
+ "record_id_pattern": "inspection:<stable-key>"
231
+ },
232
+ {
233
+ "name": "insurance_policy",
234
+ "label": "insurance_policy",
235
+ "schema_id": "immeuble:core:insurance_policy",
236
+ "ontology": "core",
237
+ "node_type": "insurance_policy",
238
+ "record_id_pattern": "insurance_policy:<stable-key>"
239
+ },
240
+ {
241
+ "name": "intervention",
242
+ "label": "intervention",
243
+ "schema_id": "immeuble:core:intervention",
244
+ "ontology": "core",
245
+ "node_type": "intervention",
246
+ "record_id_pattern": "intervention:<stable-key>"
247
+ },
248
+ {
249
+ "name": "invoice",
250
+ "label": "invoice",
251
+ "schema_id": "immeuble:core:invoice",
252
+ "ontology": "core",
253
+ "node_type": "invoice",
254
+ "record_id_pattern": "invoice:<stable-key>"
255
+ },
256
+ {
257
+ "name": "lease_contract",
258
+ "label": "lease_contract",
259
+ "schema_id": "immeuble:core:lease_contract",
260
+ "ontology": "core",
261
+ "node_type": "lease_contract",
262
+ "record_id_pattern": "lease_contract:<stable-key>"
263
+ },
264
+ {
265
+ "name": "maintenance_ticket",
266
+ "label": "maintenance_ticket",
267
+ "schema_id": "immeuble:core:maintenance_ticket",
268
+ "ontology": "core",
269
+ "node_type": "maintenance_ticket",
270
+ "record_id_pattern": "maintenance_ticket:<stable-key>"
271
+ },
272
+ {
273
+ "name": "meter",
274
+ "label": "meter",
275
+ "schema_id": "immeuble:core:meter",
276
+ "ontology": "core",
277
+ "node_type": "meter",
278
+ "record_id_pattern": "meter:<stable-key>"
279
+ },
280
+ {
281
+ "name": "meter_reading",
282
+ "label": "meter_reading",
283
+ "schema_id": "immeuble:core:meter_reading",
284
+ "ontology": "core",
285
+ "node_type": "meter_reading",
286
+ "record_id_pattern": "meter_reading:<stable-key>"
287
+ },
288
+ {
289
+ "name": "milestone",
290
+ "label": "milestone",
291
+ "schema_id": "immeuble:core:milestone",
292
+ "ontology": "core",
293
+ "node_type": "milestone",
294
+ "record_id_pattern": "milestone:<stable-key>"
295
+ },
296
+ {
297
+ "name": "organization",
298
+ "label": "organization",
299
+ "schema_id": "immeuble:core:organization",
300
+ "ontology": "core",
301
+ "node_type": "organization",
302
+ "record_id_pattern": "organization:<stable-key>"
303
+ },
304
+ {
305
+ "name": "parking_space",
306
+ "label": "parking_space",
307
+ "schema_id": "immeuble:core:parking_space",
308
+ "ontology": "core",
309
+ "node_type": "parking_space",
310
+ "record_id_pattern": "parking_space:<stable-key>"
311
+ },
312
+ {
313
+ "name": "permit",
314
+ "label": "permit",
315
+ "schema_id": "immeuble:core:permit",
316
+ "ontology": "core",
317
+ "node_type": "permit",
318
+ "record_id_pattern": "permit:<stable-key>"
319
+ },
320
+ {
321
+ "name": "person",
322
+ "label": "person",
323
+ "schema_id": "immeuble:core:person",
324
+ "ontology": "core",
325
+ "node_type": "person",
326
+ "record_id_pattern": "person:<stable-key>"
327
+ },
328
+ {
329
+ "name": "private_garden",
330
+ "label": "private_garden",
331
+ "schema_id": "immeuble:core:private_garden",
332
+ "ontology": "core",
333
+ "node_type": "private_garden",
334
+ "record_id_pattern": "private_garden:<stable-key>"
335
+ },
336
+ {
337
+ "name": "progress_event",
338
+ "label": "progress_event",
339
+ "schema_id": "immeuble:core:progress_event",
340
+ "ontology": "core",
341
+ "node_type": "progress_event",
342
+ "record_id_pattern": "progress_event:<stable-key>"
343
+ },
344
+ {
345
+ "name": "quote",
346
+ "label": "quote",
347
+ "schema_id": "immeuble:core:quote",
348
+ "ontology": "core",
349
+ "node_type": "quote",
350
+ "record_id_pattern": "quote:<stable-key>"
351
+ },
352
+ {
353
+ "name": "receipt",
354
+ "label": "receipt",
355
+ "schema_id": "immeuble:core:receipt",
356
+ "ontology": "core",
357
+ "node_type": "receipt",
358
+ "record_id_pattern": "receipt:<stable-key>"
359
+ },
360
+ {
361
+ "name": "reminder",
362
+ "label": "reminder",
363
+ "schema_id": "immeuble:core:reminder",
364
+ "ontology": "core",
365
+ "node_type": "reminder",
366
+ "record_id_pattern": "reminder:<stable-key>"
367
+ },
368
+ {
369
+ "name": "service_contract",
370
+ "label": "service_contract",
371
+ "schema_id": "immeuble:core:service_contract",
372
+ "ontology": "core",
373
+ "node_type": "service_contract",
374
+ "record_id_pattern": "service_contract:<stable-key>"
375
+ },
376
+ {
377
+ "name": "shared_equipment",
378
+ "label": "shared_equipment",
379
+ "schema_id": "immeuble:core:shared_equipment",
380
+ "ontology": "core",
381
+ "node_type": "shared_equipment",
382
+ "record_id_pattern": "shared_equipment:<stable-key>"
383
+ },
384
+ {
385
+ "name": "shared_space",
386
+ "label": "shared_space",
387
+ "schema_id": "immeuble:core:shared_space",
388
+ "ontology": "core",
389
+ "node_type": "shared_space",
390
+ "record_id_pattern": "shared_space:<stable-key>"
391
+ },
392
+ {
393
+ "name": "unit",
394
+ "label": "unit",
395
+ "schema_id": "immeuble:core:unit",
396
+ "ontology": "core",
397
+ "node_type": "unit",
398
+ "record_id_pattern": "unit:<stable-key>"
399
+ },
400
+ {
401
+ "name": "work_package",
402
+ "label": "work_package",
403
+ "schema_id": "immeuble:core:work_package",
404
+ "ontology": "core",
405
+ "node_type": "work_package",
406
+ "record_id_pattern": "work_package:<stable-key>"
407
+ },
408
+ {
409
+ "name": "worksite_project",
410
+ "label": "worksite_project",
411
+ "schema_id": "immeuble:core:worksite_project",
412
+ "ontology": "core",
413
+ "node_type": "worksite_project",
414
+ "record_id_pattern": "worksite_project:<stable-key>"
415
+ }
416
+ ],
417
+ "contract_relations": []
418
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "ok": true,
3
+ "workspace_id": "immeuble",
4
+ "ontology_id": "immeuble::core",
5
+ "entity_type_count": 45,
6
+ "entity_types": [
7
+ "DeltaFinding",
8
+ "ProjectionResult",
9
+ "ag_meeting",
10
+ "agenda_item",
11
+ "architect",
12
+ "architecture_firm",
13
+ "bank_account",
14
+ "billing_group",
15
+ "block",
16
+ "budget_line",
17
+ "building",
18
+ "cellar",
19
+ "change_order",
20
+ "charge_call",
21
+ "claim",
22
+ "coda_entry",
23
+ "compliance_certificate",
24
+ "contractor",
25
+ "decision",
26
+ "defect_reserve",
27
+ "household",
28
+ "inspection",
29
+ "insurance_policy",
30
+ "intervention",
31
+ "invoice",
32
+ "lease_contract",
33
+ "maintenance_ticket",
34
+ "meter",
35
+ "meter_reading",
36
+ "milestone",
37
+ "organization",
38
+ "parking_space",
39
+ "permit",
40
+ "person",
41
+ "private_garden",
42
+ "progress_event",
43
+ "quote",
44
+ "receipt",
45
+ "reminder",
46
+ "service_contract",
47
+ "shared_equipment",
48
+ "shared_space",
49
+ "unit",
50
+ "work_package",
51
+ "worksite_project"
52
+ ],
53
+ "schema_id_prefix": "immeuble:",
54
+ "prefix_violations": 0,
55
+ "generated_at": "2026-07-02T17:47:41.155Z"
56
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "ok": true,
3
+ "workspace_id": "immeuble",
4
+ "mapped_entity_types": 45,
5
+ "facet_rows": 558,
6
+ "edge_rows": 847,
7
+ "all_schema_ids_prefixed": true,
8
+ "generated_at": "2026-07-02T17:47:41.155Z"
9
+ }