@mindflight/mindbrain-personal-studio 0.6.2 → 0.6.3

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 → CIErFlYG.js} +1 -1
  3. package/build/client/_app/immutable/chunks/CIErFlYG.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/CIErFlYG.js.gz +0 -0
  5. package/build/client/_app/immutable/entry/{app.CR-imLox.js → app.mURYm8o_.js} +2 -2
  6. package/build/client/_app/immutable/entry/app.mURYm8o_.js.br +0 -0
  7. package/build/client/_app/immutable/entry/app.mURYm8o_.js.gz +0 -0
  8. package/build/client/_app/immutable/entry/start.D4M9ZeGO.js +1 -0
  9. package/build/client/_app/immutable/entry/start.D4M9ZeGO.js.br +2 -0
  10. package/build/client/_app/immutable/entry/start.D4M9ZeGO.js.gz +0 -0
  11. package/build/client/_app/immutable/nodes/{1.CTEedoSY.js → 1.DHKtMeFI.js} +1 -1
  12. package/build/client/_app/immutable/nodes/1.DHKtMeFI.js.br +1 -0
  13. package/build/client/_app/immutable/nodes/1.DHKtMeFI.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-C3tV0XXj.js} +2 -2
  20. package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js.map → internal.js-C3tV0XXj.js.map} +1 -1
  21. package/build/server/chunks/{handler-BIDedSZq.js → handler-DlaCCnxx.js} +3 -3
  22. package/build/server/chunks/{handler-BIDedSZq.js.map → handler-DlaCCnxx.js.map} +1 -1
  23. package/build/server/chunks/{index.js-YVPJa0so.js → index.js-BGfKWHak.js} +2 -2
  24. package/build/server/chunks/{index.js-YVPJa0so.js.map → index.js-BGfKWHak.js.map} +1 -1
  25. package/build/server/chunks/{manifest.js-aGRKuiqF.js → manifest.js-CnmaNf5D.js} +3 -3
  26. package/build/server/chunks/{manifest.js-aGRKuiqF.js.map → manifest.js-CnmaNf5D.js.map} +1 -1
  27. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js → 1.js-BypjwBYB.js} +2 -2
  28. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js.map → 1.js-BypjwBYB.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 +69 -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 +103 -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,366 @@
1
+ workspace_id: immeuble
2
+ projections:
3
+ - name: immeuble_competency_questions
4
+ label: "Plan d'analyse immeuble - questions operationnelles"
5
+ description: "Quelles procedures operationnelles le workspace immeuble doit-il couvrir ?"
6
+ business_question: "Quelles procedures operationnelles le workspace immeuble doit-il couvrir ?"
7
+ artifact_kind: analysis_plan
8
+ scope: immeuble:competency:questions
9
+ procedure_id: procedure_catalogue
10
+ procedure_area: pilotage
11
+ expected_output: "Catalogue des questions et projections attendues."
12
+ required_schemas: [building, unit, charge_call, maintenance_ticket, worksite_project]
13
+ required_facets: [building.name, unit.usage_status, charge_call.status]
14
+ required_edges: [CONTAINS, OWNS, BILLS_TO, HAS_WORK_PACKAGE]
15
+ gap_rule_ids: []
16
+ retrieval_jobs: [summary]
17
+ - name: annuaire_coproprietes
18
+ label: "Annuaire immeubles geres"
19
+ description: "Quels immeubles sont geres et ou sont-ils situes ?"
20
+ business_question: "Quels immeubles sont geres et ou sont-ils situes ?"
21
+ artifact_kind: live_answer_view
22
+ scope: immeuble:operations:annuaire_coproprietes
23
+ procedure_id: procedure_portefeuille
24
+ procedure_area: portefeuille
25
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
26
+ required_schemas: [building, block]
27
+ required_facets: [building.name, block.name]
28
+ required_edges: [CONTAINS]
29
+ gap_rule_ids: []
30
+ retrieval_jobs: [summary, graph_focus]
31
+ - name: lots_sans_proprietaire
32
+ label: "Lots sans proprietaire"
33
+ description: "Quels lots actifs n'ont pas de proprietaire declare ?"
34
+ business_question: "Quels lots actifs n'ont pas de proprietaire declare ?"
35
+ artifact_kind: live_answer_view
36
+ scope: immeuble:operations:lots_sans_proprietaire
37
+ procedure_id: procedure_proprietaires
38
+ procedure_area: proprietaires
39
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
40
+ required_schemas: [unit, person]
41
+ required_facets: [unit.name, person.name]
42
+ required_edges: [OWNS]
43
+ gap_rule_ids: []
44
+ retrieval_jobs: [summary, graph_focus]
45
+ - name: occupants_sans_titre
46
+ label: "Occupants sans titre"
47
+ description: "Quels lots sont occupes sans occupant, bail ou residence principale coherente ?"
48
+ business_question: "Quels lots sont occupes sans occupant, bail ou residence principale coherente ?"
49
+ artifact_kind: live_answer_view
50
+ scope: immeuble:operations:occupants_sans_titre
51
+ procedure_id: procedure_occupation
52
+ procedure_area: occupation
53
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
54
+ required_schemas: [unit, person, household, lease_contract]
55
+ required_facets: [unit.name, person.name, household.name, lease_contract.name]
56
+ required_edges: [OCCUPIES, LEASES, PRIMARY_RESIDENCE_OF]
57
+ gap_rule_ids: []
58
+ retrieval_jobs: [summary, graph_focus]
59
+ - name: baux_actifs
60
+ label: "Baux locatifs actifs"
61
+ description: "Quels appartements sont loues, a qui, depuis quelle date et par quel bailleur ?"
62
+ business_question: "Quels appartements sont loues, a qui, depuis quelle date et par quel bailleur ?"
63
+ artifact_kind: live_answer_view
64
+ scope: immeuble:operations:baux_actifs
65
+ procedure_id: procedure_baux
66
+ procedure_area: baux
67
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
68
+ required_schemas: [unit, lease_contract, person]
69
+ required_facets: [unit.name, lease_contract.name, person.name]
70
+ required_edges: [LEASES, RENTED_TO, OCCUPIES]
71
+ gap_rule_ids: []
72
+ retrieval_jobs: [summary, graph_focus]
73
+ - name: baux_echeance_90j
74
+ label: "Baux a echeance 90 jours"
75
+ description: "Quels baux arrivent a echeance dans les 90 prochains jours ?"
76
+ business_question: "Quels baux arrivent a echeance dans les 90 prochains jours ?"
77
+ artifact_kind: live_answer_view
78
+ scope: immeuble:operations:baux_echeance_90j
79
+ procedure_id: procedure_baux
80
+ procedure_area: baux
81
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
82
+ required_schemas: [lease_contract, unit]
83
+ required_facets: [lease_contract.name, unit.name]
84
+ required_edges: [LEASES]
85
+ gap_rule_ids: []
86
+ retrieval_jobs: [summary, graph_focus]
87
+ - name: quotites_par_immeuble
88
+ label: "Quotites par immeuble"
89
+ description: "Les quotites de chaque immeuble totalisent-elles 1000 ?"
90
+ business_question: "Les quotites de chaque immeuble totalisent-elles 1000 ?"
91
+ artifact_kind: live_answer_view
92
+ scope: immeuble:operations:quotites_par_immeuble
93
+ procedure_id: procedure_quotites
94
+ procedure_area: quotites
95
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
96
+ required_schemas: [building, unit]
97
+ required_facets: [building.name, unit.name]
98
+ required_edges: [CONTAINS]
99
+ gap_rule_ids: []
100
+ retrieval_jobs: [summary, graph_focus]
101
+ - name: annexes_par_lot
102
+ label: "Annexes par lot"
103
+ description: "Quelle cave, garage ou jardin est rattache a chaque lot ?"
104
+ business_question: "Quelle cave, garage ou jardin est rattache a chaque lot ?"
105
+ artifact_kind: live_answer_view
106
+ scope: immeuble:operations:annexes_par_lot
107
+ procedure_id: procedure_annexes
108
+ procedure_area: annexes
109
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
110
+ required_schemas: [unit, cellar, parking_space, private_garden]
111
+ required_facets: [unit.name, cellar.name, parking_space.name, private_garden.name]
112
+ required_edges: [ASSIGNED_CELLAR, ASSIGNED_GARAGE, USES_EXCLUSIVE]
113
+ gap_rule_ids: []
114
+ retrieval_jobs: [summary, graph_focus]
115
+ - name: appels_charges_ouverts
116
+ label: "Appels de charges ouverts"
117
+ description: "Quels appels de charges restent ouverts ou partiellement payes ?"
118
+ business_question: "Quels appels de charges restent ouverts ou partiellement payes ?"
119
+ artifact_kind: live_answer_view
120
+ scope: immeuble:operations:appels_charges_ouverts
121
+ procedure_id: procedure_finance
122
+ procedure_area: finance
123
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
124
+ required_schemas: [charge_call, billing_group]
125
+ required_facets: [charge_call.name, billing_group.name]
126
+ required_edges: [BILLS_TO]
127
+ gap_rule_ids: []
128
+ retrieval_jobs: [summary, graph_focus]
129
+ - name: coda_a_rapprocher
130
+ label: "CODA a rapprocher"
131
+ description: "Quelles lignes CODA doivent etre investiguees ?"
132
+ business_question: "Quelles lignes CODA doivent etre investiguees ?"
133
+ artifact_kind: live_answer_view
134
+ scope: immeuble:operations:coda_a_rapprocher
135
+ procedure_id: procedure_coda
136
+ procedure_area: coda
137
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
138
+ required_schemas: [coda_entry, charge_call]
139
+ required_facets: [coda_entry.name, charge_call.name]
140
+ required_edges: [MATCHED_TO, REQUIRES_REVIEW]
141
+ gap_rule_ids: []
142
+ retrieval_jobs: [summary, graph_focus]
143
+ - name: relances_a_lancer
144
+ label: "Relances a lancer"
145
+ description: "Quelles relances doivent etre envoyees aujourd'hui ?"
146
+ business_question: "Quelles relances doivent etre envoyees aujourd'hui ?"
147
+ artifact_kind: live_answer_view
148
+ scope: immeuble:operations:relances_a_lancer
149
+ procedure_id: procedure_relances
150
+ procedure_area: relances
151
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
152
+ required_schemas: [charge_call, reminder]
153
+ required_facets: [charge_call.name, reminder.name]
154
+ required_edges: [TRIGGERED]
155
+ gap_rule_ids: []
156
+ retrieval_jobs: [summary, graph_focus]
157
+ - name: soldes_coproprietaires
158
+ label: "Soldes coproprietaires"
159
+ description: "Quels coproprietaires ont des impayes ou relances actives ?"
160
+ business_question: "Quels coproprietaires ont des impayes ou relances actives ?"
161
+ artifact_kind: live_answer_view
162
+ scope: immeuble:operations:soldes_coproprietaires
163
+ procedure_id: procedure_finance
164
+ procedure_area: finance
165
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
166
+ required_schemas: [person, unit, charge_call, reminder]
167
+ required_facets: [person.name, unit.name, charge_call.name, reminder.name]
168
+ required_edges: [OWNS, BILLS_TO, TRIGGERED]
169
+ gap_rule_ids: []
170
+ retrieval_jobs: [summary, graph_focus]
171
+ - name: decisions_ag_a_executer
172
+ label: "Decisions AG a executer"
173
+ description: "Quelles decisions AG attendent une action de suivi ?"
174
+ business_question: "Quelles decisions AG attendent une action de suivi ?"
175
+ artifact_kind: live_answer_view
176
+ scope: immeuble:operations:decisions_ag_a_executer
177
+ procedure_id: procedure_ag
178
+ procedure_area: ag
179
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
180
+ required_schemas: [ag_meeting, agenda_item, decision]
181
+ required_facets: [ag_meeting.name, agenda_item.name, decision.name]
182
+ required_edges: [HAS_AGENDA_ITEM, DECIDED_BY]
183
+ gap_rule_ids: []
184
+ retrieval_jobs: [summary, graph_focus]
185
+ - name: documents_obligatoires_manquants
186
+ label: "Documents obligatoires manquants"
187
+ description: "Quels documents obligatoires manquent par immeuble ou procedure ?"
188
+ business_question: "Quels documents obligatoires manquent par immeuble ou procedure ?"
189
+ artifact_kind: live_answer_view
190
+ scope: immeuble:operations:documents_obligatoires_manquants
191
+ procedure_id: procedure_documents
192
+ procedure_area: documents
193
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
194
+ required_schemas: [document, building]
195
+ required_facets: [document.name, building.name]
196
+ required_edges: [EVIDENCED_BY]
197
+ gap_rule_ids: []
198
+ retrieval_jobs: [summary, graph_focus]
199
+ - name: contrats_maintenance_echeance
200
+ label: "Contrats maintenance a echeance"
201
+ description: "Quels contrats de maintenance expirent ou n'ont pas de prestataire ?"
202
+ business_question: "Quels contrats de maintenance expirent ou n'ont pas de prestataire ?"
203
+ artifact_kind: live_answer_view
204
+ scope: immeuble:operations:contrats_maintenance_echeance
205
+ procedure_id: procedure_maintenance
206
+ procedure_area: maintenance
207
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
208
+ required_schemas: [service_contract, organization, shared_equipment]
209
+ required_facets: [service_contract.name, organization.name, shared_equipment.name]
210
+ required_edges: [COVERS_ASSET, PROVIDED_BY]
211
+ gap_rule_ids: []
212
+ retrieval_jobs: [summary, graph_focus]
213
+ - name: interventions_en_retard
214
+ label: "Interventions en retard"
215
+ description: "Quelles interventions sont en retard ou sans prestataire ?"
216
+ business_question: "Quelles interventions sont en retard ou sans prestataire ?"
217
+ artifact_kind: live_answer_view
218
+ scope: immeuble:operations:interventions_en_retard
219
+ procedure_id: procedure_interventions
220
+ procedure_area: interventions
221
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
222
+ required_schemas: [maintenance_ticket, intervention, organization]
223
+ required_facets: [maintenance_ticket.name, intervention.name, organization.name]
224
+ required_edges: [HAS_INTERVENTION, PROVIDED_BY]
225
+ gap_rule_ids: []
226
+ retrieval_jobs: [summary, graph_focus]
227
+ - name: certificats_conformite
228
+ label: "Certificats conformite"
229
+ description: "Quels certificats sont expires, manquants ou non relies a un asset ?"
230
+ business_question: "Quels certificats sont expires, manquants ou non relies a un asset ?"
231
+ artifact_kind: live_answer_view
232
+ scope: immeuble:operations:certificats_conformite
233
+ procedure_id: procedure_conformite
234
+ procedure_area: conformite
235
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
236
+ required_schemas: [compliance_certificate, building]
237
+ required_facets: [compliance_certificate.name, building.name]
238
+ required_edges: [CERTIFIES_ASSET]
239
+ gap_rule_ids: []
240
+ retrieval_jobs: [summary, graph_focus]
241
+ - name: sinistres_ouverts
242
+ label: "Sinistres ouverts"
243
+ description: "Quels sinistres sont ouverts et quelles preuves ou polices manquent ?"
244
+ business_question: "Quels sinistres sont ouverts et quelles preuves ou polices manquent ?"
245
+ artifact_kind: live_answer_view
246
+ scope: immeuble:operations:sinistres_ouverts
247
+ procedure_id: procedure_sinistres
248
+ procedure_area: sinistres
249
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
250
+ required_schemas: [claim, insurance_policy, document]
251
+ required_facets: [claim.name, insurance_policy.name, document.name]
252
+ required_edges: [COVERED_BY, EVIDENCED_BY]
253
+ gap_rule_ids: []
254
+ retrieval_jobs: [summary, graph_focus]
255
+ - name: compteurs_releves
256
+ label: "Compteurs et releves"
257
+ description: "Quels compteurs ont des releves manquants ou non valides ?"
258
+ business_question: "Quels compteurs ont des releves manquants ou non valides ?"
259
+ artifact_kind: live_answer_view
260
+ scope: immeuble:operations:compteurs_releves
261
+ procedure_id: procedure_compteurs
262
+ procedure_area: compteurs
263
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
264
+ required_schemas: [meter, meter_reading]
265
+ required_facets: [meter.name, meter_reading.name]
266
+ required_edges: [RECORDS_READING]
267
+ gap_rule_ids: []
268
+ retrieval_jobs: [summary, graph_focus]
269
+ - name: chantier_actif
270
+ label: "Chantier actif"
271
+ description: "Quel est l'etat des chantiers actifs et qui en est responsable ?"
272
+ business_question: "Quel est l'etat des chantiers actifs et qui en est responsable ?"
273
+ artifact_kind: live_answer_view
274
+ scope: immeuble:operations:chantier_actif
275
+ procedure_id: procedure_chantier
276
+ procedure_area: chantier
277
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
278
+ required_schemas: [worksite_project, architect, contractor, work_package]
279
+ required_facets: [worksite_project.name, architect.name, contractor.name, work_package.name]
280
+ required_edges: [MANAGES_PROJECT, DESIGNS_FOR, HAS_WORK_PACKAGE, EXECUTES_WORK_PACKAGE]
281
+ gap_rule_ids: []
282
+ retrieval_jobs: [summary, graph_focus]
283
+ - name: planning_chantier
284
+ label: "Planning chantier"
285
+ description: "Quels jalons chantier sont en retard ou ouverts ?"
286
+ business_question: "Quels jalons chantier sont en retard ou ouverts ?"
287
+ artifact_kind: live_answer_view
288
+ scope: immeuble:operations:planning_chantier
289
+ procedure_id: procedure_chantier
290
+ procedure_area: chantier
291
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
292
+ required_schemas: [worksite_project, milestone, progress_event]
293
+ required_facets: [worksite_project.name, milestone.name, progress_event.name]
294
+ required_edges: [HAS_MILESTONE]
295
+ gap_rule_ids: []
296
+ retrieval_jobs: [summary, graph_focus]
297
+ - name: budget_travaux
298
+ label: "Budget travaux"
299
+ description: "Le budget travaux vote couvre-t-il les devis, factures et avenants ?"
300
+ business_question: "Le budget travaux vote couvre-t-il les devis, factures et avenants ?"
301
+ artifact_kind: live_answer_view
302
+ scope: immeuble:operations:budget_travaux
303
+ procedure_id: procedure_chantier
304
+ procedure_area: chantier
305
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
306
+ required_schemas: [budget_line, quote, invoice, change_order]
307
+ required_facets: [budget_line.name, quote.name, invoice.name, change_order.name]
308
+ required_edges: [HAS_BUDGET_LINE, BASED_ON_QUOTE, INVOICED_BY]
309
+ gap_rule_ids: []
310
+ retrieval_jobs: [summary, graph_focus]
311
+ - name: lots_impactes
312
+ label: "Lots et espaces impactes"
313
+ description: "Quels batiments, blocs, lots ou espaces sont impactes par les travaux ?"
314
+ business_question: "Quels batiments, blocs, lots ou espaces sont impactes par les travaux ?"
315
+ artifact_kind: live_answer_view
316
+ scope: immeuble:operations:lots_impactes
317
+ procedure_id: procedure_chantier
318
+ procedure_area: chantier
319
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
320
+ required_schemas: [work_package, building, block, unit, shared_space]
321
+ required_facets: [work_package.name, building.name, block.name, unit.name, shared_space.name]
322
+ required_edges: [AFFECTS_ASSET]
323
+ gap_rule_ids: []
324
+ retrieval_jobs: [summary, graph_focus]
325
+ - name: permis_reglementaires
326
+ label: "Permis et pieces reglementaires"
327
+ description: "Quelles pieces reglementaires autorisent le chantier ?"
328
+ business_question: "Quelles pieces reglementaires autorisent le chantier ?"
329
+ artifact_kind: live_answer_view
330
+ scope: immeuble:operations:permis_reglementaires
331
+ procedure_id: procedure_chantier
332
+ procedure_area: chantier
333
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
334
+ required_schemas: [permit, worksite_project, document]
335
+ required_facets: [permit.name, worksite_project.name, document.name]
336
+ required_edges: [AUTHORIZED_BY, EVIDENCED_BY]
337
+ gap_rule_ids: []
338
+ retrieval_jobs: [summary, graph_focus]
339
+ - name: reserves_reception
340
+ label: "Reserves de reception"
341
+ description: "Quelles reserves restent ouvertes apres inspection ?"
342
+ business_question: "Quelles reserves restent ouvertes apres inspection ?"
343
+ artifact_kind: live_answer_view
344
+ scope: immeuble:operations:reserves_reception
345
+ procedure_id: procedure_chantier
346
+ procedure_area: chantier
347
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
348
+ required_schemas: [inspection, defect_reserve, document]
349
+ required_facets: [inspection.name, defect_reserve.name, document.name]
350
+ required_edges: [HAS_RESERVE, REPORTED_BY, EVIDENCED_BY]
351
+ gap_rule_ids: []
352
+ retrieval_jobs: [summary, graph_focus]
353
+ - name: priorites_gestionnaire
354
+ label: "Priorites gestionnaire"
355
+ description: "Quelles 3 a 5 actions doivent remonter au gestionnaire aujourd'hui ?"
356
+ business_question: "Quelles 3 a 5 actions doivent remonter au gestionnaire aujourd'hui ?"
357
+ artifact_kind: live_answer_view
358
+ scope: immeuble:operations:priorites_gestionnaire
359
+ procedure_id: procedure_priorites
360
+ procedure_area: priorites
361
+ expected_output: "Tableau operationnel avec entites sources, anomalies ouvertes et action conseillee."
362
+ required_schemas: [DeltaFinding, maintenance_ticket, charge_call]
363
+ required_facets: [DeltaFinding.name, maintenance_ticket.name, charge_call.name]
364
+ required_edges: [FLAGS_ENTITY]
365
+ gap_rule_ids: []
366
+ retrieval_jobs: [summary, graph_focus]
@@ -0,0 +1,27 @@
1
+ workspace_id: immeuble
2
+ ontology_id: immeuble::core
3
+ scenarios:
4
+ - id: scenario:tilleuls-family-stack
5
+ title: "Famille multi-génération Tilleuls"
6
+ competency_question: "Quels liens existent entre le vieux couple du rez-de-chaussée et le ménage du fils au premier étage ?"
7
+ - id: scenario:tenant-lease
8
+ title: "Baux et locataires"
9
+ competency_question: "Quels appartements sont loués, à qui, depuis quelle date et par quel bailleur ?"
10
+ - id: scenario:quota-check
11
+ title: "Quotités par immeuble"
12
+ competency_question: "Les quotités de chaque immeuble totalisent-elles 1000 ?"
13
+ - id: scenario:annexes
14
+ title: "Annexes privatives et communes"
15
+ competency_question: "Quelle cave, garage, jardin privatif et partie commune est accessible depuis chaque lot ?"
16
+ - id: scenario:coda-complete-payment
17
+ title: "Paiement CODA complet"
18
+ competency_question: "Quel paiement CODA a soldé l'appel de charges Tilleuls janvier 2026 ?"
19
+ - id: scenario:coda-partial-reminder
20
+ title: "Paiement partiel et relance"
21
+ competency_question: "Quel paiement partiel déclenche une relance ?"
22
+ - id: scenario:chantier-erables
23
+ title: "Chantier Érables toiture et façades"
24
+ competency_question: "Quel est l'état du chantier Érables, son budget, son planning et ses réserves ouvertes ?"
25
+ - id: scenario:chantier-budget
26
+ title: "Budget travaux et avenants"
27
+ competency_question: "Le budget voté couvre-t-il les devis, factures et avenants du chantier ?"
@@ -0,0 +1 @@
1
+ {"table_semantics":[{"table_schema":"structured","table_name":"copropriete","business_role":"entity","generation_strategy":"structured_import","emit_facets":true,"emit_graph_entity":true,"emit_graph_relation":true,"notes":"{\"source\":\"structured_import\",\"schema_id\":\"immeuble-structured-import:core:copropriete\",\"entity_family\":\"core\"}","key_column":"record_id","content_column":"nom_usuel"},{"table_schema":"structured","table_name":"personne","business_role":"entity","generation_strategy":"structured_import","emit_facets":true,"emit_graph_entity":true,"emit_graph_relation":true,"notes":"{\"source\":\"structured_import\",\"schema_id\":\"immeuble-structured-import:core:personne\",\"entity_family\":\"core\"}","key_column":"record_id","content_column":"nom"},{"table_schema":"structured","table_name":"lot","business_role":"entity","generation_strategy":"structured_import","emit_facets":true,"emit_graph_entity":true,"emit_graph_relation":true,"notes":"{\"source\":\"structured_import\",\"schema_id\":\"immeuble-structured-import:core:lot\",\"entity_family\":\"core\"}","key_column":"record_id","content_column":"numero_lot"}],"column_semantics":[{"table_schema":"structured","table_name":"copropriete","column_name":"record_id","column_role":"id","public_column_role":"id","semantic_type":"string","facet_key":"record_id","is_nullable":false},{"table_schema":"structured","table_name":"copropriete","column_name":"code_abrege","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"code_abrege","is_nullable":false},{"table_schema":"structured","table_name":"copropriete","column_name":"nom_usuel","column_role":"label","public_column_role":"label","semantic_type":"string","facet_key":"nom_usuel","is_nullable":false},{"table_schema":"structured","table_name":"copropriete","column_name":"numero_bce","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"numero_bce","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"adresse_siege","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"adresse_siege","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"nombre_lots","column_role":"label","public_column_role":"label","semantic_type":"integer","facet_key":"nombre_lots","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"date_creation_acp","column_role":"attribute","public_column_role":"attribute","semantic_type":"date","facet_key":"date_creation_acp","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"date_personnalite_juridique","column_role":"attribute","public_column_role":"attribute","semantic_type":"date","facet_key":"date_personnalite_juridique","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"langue_gestion","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"langue_gestion","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"email_copropriete","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"email_copropriete","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"site_internet","column_role":"attribute","public_column_role":"attribute","semantic_type":"url","facet_key":"site_internet","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"dossier_annexes_mutation","column_role":"attribute","public_column_role":"attribute","semantic_type":"url","facet_key":"dossier_annexes_mutation","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"statut","column_role":"status","public_column_role":"status","semantic_type":"enum","facet_key":"statut","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"date_debut_gestion","column_role":"attribute","public_column_role":"attribute","semantic_type":"date","facet_key":"date_debut_gestion","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"date_fin_gestion","column_role":"attribute","public_column_role":"attribute","semantic_type":"date","facet_key":"date_fin_gestion","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"exercice_comptable_standard","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"exercice_comptable_standard","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"reglement_copropriete_doc","column_role":"attribute","public_column_role":"attribute","semantic_type":"document","facet_key":"reglement_copropriete_doc","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"acte_base_doc","column_role":"attribute","public_column_role":"attribute","semantic_type":"document","facet_key":"acte_base_doc","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"roi_doc","column_role":"attribute","public_column_role":"attribute","semantic_type":"document","facet_key":"roi_doc","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"banque_id","column_role":"fk","public_column_role":"fk","semantic_type":"ref","facet_key":"banque_id","is_nullable":true,"graph_usage":"ref:personne"},{"table_schema":"structured","table_name":"copropriete","column_name":"compte_bancaire_principal_iban","column_role":"attribute","public_column_role":"attribute","semantic_type":"iban","facet_key":"compte_bancaire_principal_iban","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"prestataire_decompte_energie_id","column_role":"fk","public_column_role":"fk","semantic_type":"ref","facet_key":"prestataire_decompte_energie_id","is_nullable":true,"graph_usage":"ref:personne"},{"table_schema":"structured","table_name":"copropriete","column_name":"associations_partielles","column_role":"attribute","public_column_role":"attribute","semantic_type":"boolean","facet_key":"associations_partielles","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"periode_ag_ordinaire","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"periode_ag_ordinaire","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"date_prochaine_ag","column_role":"attribute","public_column_role":"attribute","semantic_type":"date","facet_key":"date_prochaine_ag","is_nullable":true},{"table_schema":"structured","table_name":"copropriete","column_name":"conseil_copropriete_obligatoire","column_role":"attribute","public_column_role":"attribute","semantic_type":"boolean","facet_key":"conseil_copropriete_obligatoire","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"record_id","column_role":"id","public_column_role":"id","semantic_type":"string","facet_key":"record_id","is_nullable":false},{"table_schema":"structured","table_name":"personne","column_name":"type","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"type","is_nullable":false},{"table_schema":"structured","table_name":"personne","column_name":"civilite","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"civilite","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"nom","column_role":"label","public_column_role":"label","semantic_type":"string","facet_key":"nom","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"prenom","column_role":"label","public_column_role":"label","semantic_type":"string","facet_key":"prenom","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"denomination_sociale","column_role":"label","public_column_role":"label","semantic_type":"string","facet_key":"denomination_sociale","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"representant_legal_id","column_role":"fk","public_column_role":"fk","semantic_type":"ref","facet_key":"representant_legal_id","is_nullable":true,"graph_usage":"ref:personne"},{"table_schema":"structured","table_name":"personne","column_name":"numero_registre_national","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"numero_registre_national","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"numero_bce","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"numero_bce","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"adresse_domicile","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"adresse_domicile","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"telephone","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"telephone","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"email","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"email","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"langue","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"langue","is_nullable":true},{"table_schema":"structured","table_name":"personne","column_name":"statut","column_role":"status","public_column_role":"status","semantic_type":"enum","facet_key":"statut","is_nullable":true},{"table_schema":"structured","table_name":"lot","column_name":"record_id","column_role":"id","public_column_role":"id","semantic_type":"string","facet_key":"record_id","is_nullable":false},{"table_schema":"structured","table_name":"lot","column_name":"numero_lot","column_role":"attribute","public_column_role":"attribute","semantic_type":"string","facet_key":"numero_lot","is_nullable":false},{"table_schema":"structured","table_name":"lot","column_name":"type","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"type","is_nullable":true},{"table_schema":"structured","table_name":"lot","column_name":"copropriete_id","column_role":"fk","public_column_role":"fk","semantic_type":"ref","facet_key":"copropriete_id","is_nullable":false,"graph_usage":"ref:copropriete"},{"table_schema":"structured","table_name":"lot","column_name":"statut_occupation","column_role":"status","public_column_role":"status","semantic_type":"enum","facet_key":"statut_occupation","is_nullable":true},{"table_schema":"structured","table_name":"lot","column_name":"destination_actuelle","column_role":"attribute","public_column_role":"attribute","semantic_type":"enum","facet_key":"destination_actuelle","is_nullable":true}],"relation_semantics":[{"from_schema":"structured","from_table":"copropriete","to_schema":"structured","to_table":"lot","fk_column":"copropriete_id","relation_kind":"many_to_one","graph_label":"CONTAINS"}],"source_mappings":[{"source_key":"immeuble-structured-import:fake_data/copropriete.csv","source_kind":"structured_import_facet_graph","target_table":"copropriete","metadata_json":"{\"pipeline\":\"structured-import\"}"},{"source_key":"immeuble-structured-import:fake_data/personne.csv","source_kind":"structured_import_facet_graph","target_table":"personne","metadata_json":"{\"pipeline\":\"structured-import\"}"},{"source_key":"immeuble-structured-import:fake_data/lot.csv","source_kind":"structured_import_facet_graph","target_table":"lot","metadata_json":"{\"pipeline\":\"structured-import\"}"},{"source_key":"immeuble-structured-import:import_ready:facets","source_kind":"structured_import_ready","metadata_json":"{\"path\":\"import_ready/mfo_facets_import.csv\"}"}]}
@@ -0,0 +1,38 @@
1
+ workspace_id: immeuble
2
+ ontology_id: immeuble::core
3
+ source_tag: structured_import
4
+ data_plane: import_ready
5
+
6
+ import_ready:
7
+ facets_csv: import_ready/mfo_facets_import.csv
8
+ edges_csv: import_ready/graph_edges_import.csv
9
+
10
+ sources:
11
+ - id: fake_data_building
12
+ kind: csv
13
+ path: fake_data/building.csv
14
+ entity: building
15
+ - id: fake_data_unit
16
+ kind: csv
17
+ path: fake_data/unit.csv
18
+ entity: unit
19
+ - id: fake_data_person
20
+ kind: csv
21
+ path: fake_data/person.csv
22
+ entity: person
23
+ - id: fake_data_lease_contract
24
+ kind: csv
25
+ path: fake_data/lease_contract.csv
26
+ entity: lease_contract
27
+ - id: import_ready_facets
28
+ kind: csv
29
+ path: import_ready/mfo_facets_import.csv
30
+ role: facets_bundle
31
+ - id: import_ready_edges
32
+ kind: csv
33
+ path: import_ready/graph_edges_import.csv
34
+ role: graph_bundle
35
+
36
+ notes: >
37
+ Canonical workspace profile for the `immeuble` example.
38
+ Legacy structured-import profiles can be regenerated from mapping_external_to_canonical.json.
@@ -0,0 +1,20 @@
1
+ record_id,name,entity_type,entity_id,confidence,metric,status,expected_total,forecast_total,planned_date,actual_date,due_date,finding_id,rule_id,severity,expected,observed,procedure_id,generated_by
2
+ DeltaFinding:1022,Dépassement prévisionnel budget chantier,DeltaFinding,1022,1,chantier_erables_budget,warning,125000,132000,,,,,,,,,,
3
+ DeltaFinding:1023,Jalon démarrage chantier en retard,DeltaFinding,1023,1,chantier_erables_planning,warning,,,2026-03-02,2026-03-04,,,,,,,,
4
+ DeltaFinding:1024,Réserve sécurité non levée,DeltaFinding,1024,1,chantier_erables_reserves,open,,,,,2026-03-15,,,,,,,
5
+ DeltaFinding:2386,Lot sans proprietaire,DeltaFinding,2386,1,,open,,,,,,df_unit_owner_missing,unit-has-owner,error,1 owner,0 owner,procedure_proprietaires,portfolio_v2
6
+ DeltaFinding:2387,Lot occupe sans occupant,DeltaFinding,2387,1,,open,,,,,,df_unit_occupant_missing,occupied-unit-has-occupant,error,1 occupant,0 occupant,procedure_occupation,portfolio_v2
7
+ DeltaFinding:2388,Lot loue sans bail lie,DeltaFinding,2388,1,,open,,,,,,df_lease_missing,tenant-occupied-has-lease,warning,1 lease,0 lease,procedure_baux,portfolio_v2
8
+ DeltaFinding:2389,Lot sans groupe facturation,DeltaFinding,2389,1,,open,,,,,,df_billing_missing,billing-group-bills-unit,warning,1 billing group,0 billing group,procedure_finance,portfolio_v2
9
+ DeltaFinding:2390,Cave non assignee,DeltaFinding,2390,1,,open,,,,,,df_cellar_missing,unit-one-cellar,error,1 cellar,0 cellar,procedure_annexes,portfolio_v2
10
+ DeltaFinding:2391,CODA en revue manuelle,DeltaFinding,2391,1,,open,,,,,,df_coda_unknown,coda-entry-reviewed,warning,matched or reviewed,manual_review,procedure_coda,portfolio_v2
11
+ DeltaFinding:2392,Relance sans preuve,DeltaFinding,2392,1,,open,,,,,,df_reminder_missing,open-charge-has-reminder,warning,sent reminder,missing_send_proof,procedure_relances,portfolio_v2
12
+ DeltaFinding:2393,Decision AG sans action,DeltaFinding,2393,1,,open,,,,,,df_ag_action_missing,agenda-item-has-decision,warning,decision/action,missing_action,procedure_ag,portfolio_v2
13
+ DeltaFinding:2394,Contrat sans prestataire,DeltaFinding,2394,1,,open,,,,,,df_contract_provider_missing,service-contract-has-provider,error,provider,0 provider,procedure_maintenance,portfolio_v2
14
+ DeltaFinding:2395,Intervention sans prestataire,DeltaFinding,2395,1,,open,,,,,,df_intervention_provider_missing,intervention-has-provider,warning,provider,0 provider,procedure_interventions,portfolio_v2
15
+ DeltaFinding:2396,Certificat incendie expire,DeltaFinding,2396,1,,open,,,,,,df_certificate_expired,certificate-valid,error,valid certificate,expired,procedure_conformite,portfolio_v2
16
+ DeltaFinding:2397,Sinistre sans police,DeltaFinding,2397,1,,open,,,,,,df_claim_policy_missing,claim-covered-by-policy,error,policy link,0 policy,procedure_sinistres,portfolio_v2
17
+ DeltaFinding:2398,Budget chantier depasse,DeltaFinding,2398,1,,open,,,,,,df_worksite_budget_over,worksite-has-budget-line,warning,forecast <= approved,forecast > approved,procedure_chantier,portfolio_v2
18
+ DeltaFinding:2399,Facture chantier sans budget,DeltaFinding,2399,1,,open,,,,,,df_invoice_budget_missing,invoice-linked-to-work-package,warning,work package link,partial link only,procedure_chantier,portfolio_v2
19
+ DeltaFinding:2400,Reserve reception ouverte,DeltaFinding,2400,1,,open,,,,,,df_reserve_open,reserve-linked-to-inspection,error,closed reserve,open,procedure_chantier,portfolio_v2
20
+ DeltaFinding:2401,Releve compteur non valide,DeltaFinding,2401,1,,open,,,,,,df_meter_reading_unvalidated,meter-has-recent-reading,warning,validated,missing_validation,procedure_compteurs,portfolio_v2
@@ -0,0 +1,13 @@
1
+ record_id,name,entity_type,entity_id,confidence,projection_id,collection_id,metric,summary,generated_by
2
+ ProjectionResult:1018,Synthèse chantier Érables,ProjectionResult,1018,1,chantier_erables_synthese,immeuble,worksite_summary,"Chantier actif avec deux lots, un jalon en retard et une réserve ouverte.",
3
+ ProjectionResult:1019,Budget travaux Érables,ProjectionResult,1019,1,chantier_erables_budget,immeuble,worksite_budget,"Budget voté 125000 EUR, prévision 132000 EUR après avenant zinguerie.",
4
+ ProjectionResult:1020,Planning chantier Érables,ProjectionResult,1020,1,chantier_erables_planning,immeuble,worksite_schedule,Démarrage réel en retard de deux jours; réception provisoire ouverte.,
5
+ ProjectionResult:1021,Réserves chantier Érables,ProjectionResult,1021,1,chantier_erables_reserves,immeuble,worksite_reserves,Une réserve sécurité ouverte sur garde-corps échafaudage.,
6
+ ProjectionResult:2378,Sante portefeuille,ProjectionResult,2378,1,portfolio_health,immeuble,portfolio_health,"Vue consolidee portefeuille, charges, maintenance et conformite.",portfolio_v2
7
+ ProjectionResult:2379,Trous proprietaires,ProjectionResult,2379,1,owner_gaps,immeuble,owner_gap_count,Lots sans proprietaire ou occupant detectes.,portfolio_v2
8
+ ProjectionResult:2380,Risque finance,ProjectionResult,2380,1,finance_risk,immeuble,open_finance_risk,"Appels ouverts, relances et CODA a rapprocher.",portfolio_v2
9
+ ProjectionResult:2381,Backlog maintenance,ProjectionResult,2381,1,maintenance_backlog,immeuble,maintenance_backlog,Tickets en retard et prestataires manquants.,portfolio_v2
10
+ ProjectionResult:2382,Risque conformite,ProjectionResult,2382,1,compliance_risk,immeuble,compliance_risk,Certificats expires ou non rattaches.,portfolio_v2
11
+ ProjectionResult:2383,Sinistres ouverts,ProjectionResult,2383,1,claims_open,immeuble,claims_open,Sinistres sans police ou preuve documentaire.,portfolio_v2
12
+ ProjectionResult:2384,Synthese chantier Erables,ProjectionResult,2384,1,chantier_erables_synthese,immeuble,worksite_summary,"Chantier Erables avec budget, planning et reserves.",portfolio_v2
13
+ ProjectionResult:2385,Budget chantier Platanes,ProjectionResult,2385,1,chantier_platanes_budget,immeuble,worksite_budget,Ventilation parking Platanes au-dessus du budget vote.,portfolio_v2
@@ -0,0 +1,4 @@
1
+ record_id,name,entity_type,entity_id,confidence,held_on,status,generated_by
2
+ ag_meeting:2120,AG ordinaire Residence Les Platanes 2026,ag_meeting,2120,1,2026-05-20,scheduled,portfolio_v2
3
+ ag_meeting:2243,AG ordinaire Residence Le Canal 2026,ag_meeting,2243,1,2026-05-20,scheduled,portfolio_v2
4
+ ag_meeting:2366,AG ordinaire Residence Saint-Lambert 2026,ag_meeting,2366,1,2026-05-20,scheduled,portfolio_v2
@@ -0,0 +1,4 @@
1
+ record_id,name,entity_type,entity_id,confidence,topic,status,generated_by
2
+ agenda_item:2121,Point AG maintenance Residence Les Platanes,agenda_item,2121,1,maintenance,open,portfolio_v2
3
+ agenda_item:2244,Point AG maintenance Residence Le Canal,agenda_item,2244,1,maintenance,open,portfolio_v2
4
+ agenda_item:2367,Point AG maintenance Residence Saint-Lambert,agenda_item,2367,1,maintenance,without_decision,portfolio_v2
@@ -0,0 +1,3 @@
1
+ record_id,name,entity_type,entity_id,confidence,role,registration,generated_by
2
+ architect:1002,Claire Delvaux,architect,1002,1,architecte_responsable,A-BE-1842,
3
+ architect:2370,Nadia Claes,architect,2370,1,architecte_responsable,A-BE-2201,portfolio_v2
@@ -0,0 +1,2 @@
1
+ record_id,name,entity_type,entity_id,confidence,city,approval_ref
2
+ architecture_firm:1001,Atelier Delvaux Architecture,architecture_firm,1001,1,Namur,ORDRE-ARCHI-BE-1842
@@ -0,0 +1,3 @@
1
+ record_id,name,entity_type,entity_id,confidence,iban
2
+ bank_account:900,Compte CODA ACP Tilleuls,bank_account,900,1,BE12000000000001
3
+ bank_account:901,Compte CODA ACP Érables,bank_account,901,1,BE12000000000002
@@ -0,0 +1,41 @@
1
+ record_id,name,entity_type,entity_id,confidence,unit_id,status,split,generated_by
2
+ billing_group:400,Groupe facturation Tilleuls A1,billing_group,400,1,100,active,50/50,
3
+ billing_group:401,Groupe facturation Tilleuls A2,billing_group,401,1,101,active,single,
4
+ billing_group:402,Groupe facturation Tilleuls A3,billing_group,402,1,102,active,50/50,
5
+ billing_group:403,Groupe facturation Tilleuls A4 bailleur,billing_group,403,1,103,active,landlord,
6
+ billing_group:404,Groupe facturation Tilleuls A5,billing_group,404,1,104,active,50/50,
7
+ billing_group:405,Groupe facturation Érables A1,billing_group,405,1,110,active,single,
8
+ billing_group:406,Groupe facturation Érables A2 bailleur,billing_group,406,1,111,active,landlord,
9
+ billing_group:407,Groupe facturation Érables A3,billing_group,407,1,112,active,single,
10
+ billing_group:408,Groupe facturation Érables A4 travaux,billing_group,408,1,113,active,works,
11
+ billing_group:409,Groupe facturation Érables B1 succession,billing_group,409,1,120,active,usufruit_nue_propriete,
12
+ billing_group:410,Groupe facturation Érables B2 bailleur,billing_group,410,1,121,active,landlord,
13
+ billing_group:411,Groupe facturation Érables B3 bailleur,billing_group,411,1,122,active,landlord,
14
+ billing_group:412,Groupe facturation Érables B4 mandataire,billing_group,412,1,123,active,owner_abroad,
15
+ billing_group:2012,Groupe facturation Residence Les Platanes A1,billing_group,2012,1,2010,active,,portfolio_v2
16
+ billing_group:2023,Groupe facturation Residence Les Platanes A2,billing_group,2023,1,2021,active,,portfolio_v2
17
+ billing_group:2033,Groupe facturation Residence Les Platanes A3,billing_group,2033,1,2031,active,,portfolio_v2
18
+ billing_group:2043,Groupe facturation Residence Les Platanes A4,billing_group,2043,1,2041,active,,portfolio_v2
19
+ billing_group:2053,Groupe facturation Residence Les Platanes A5,billing_group,2053,1,2051,missing_recipient,,portfolio_v2
20
+ billing_group:2063,Groupe facturation Residence Les Platanes B6,billing_group,2063,1,2061,active,,portfolio_v2
21
+ billing_group:2074,Groupe facturation Residence Les Platanes B7,billing_group,2074,1,2072,active,,portfolio_v2
22
+ billing_group:2084,Groupe facturation Residence Les Platanes B8,billing_group,2084,1,2082,active,,portfolio_v2
23
+ billing_group:2094,Groupe facturation Residence Les Platanes B9,billing_group,2094,1,2092,active,,portfolio_v2
24
+ billing_group:2135,Groupe facturation Residence Le Canal A1,billing_group,2135,1,2133,active,,portfolio_v2
25
+ billing_group:2146,Groupe facturation Residence Le Canal A2,billing_group,2146,1,2144,active,,portfolio_v2
26
+ billing_group:2156,Groupe facturation Residence Le Canal A3,billing_group,2156,1,2154,active,,portfolio_v2
27
+ billing_group:2166,Groupe facturation Residence Le Canal A4,billing_group,2166,1,2164,active,,portfolio_v2
28
+ billing_group:2176,Groupe facturation Residence Le Canal A5,billing_group,2176,1,2174,missing_recipient,,portfolio_v2
29
+ billing_group:2186,Groupe facturation Residence Le Canal B6,billing_group,2186,1,2184,active,,portfolio_v2
30
+ billing_group:2197,Groupe facturation Residence Le Canal B7,billing_group,2197,1,2195,active,,portfolio_v2
31
+ billing_group:2207,Groupe facturation Residence Le Canal B8,billing_group,2207,1,2205,active,,portfolio_v2
32
+ billing_group:2217,Groupe facturation Residence Le Canal B9,billing_group,2217,1,2215,active,,portfolio_v2
33
+ billing_group:2258,Groupe facturation Residence Saint-Lambert A1,billing_group,2258,1,2256,active,,portfolio_v2
34
+ billing_group:2269,Groupe facturation Residence Saint-Lambert A2,billing_group,2269,1,2267,active,,portfolio_v2
35
+ billing_group:2279,Groupe facturation Residence Saint-Lambert A3,billing_group,2279,1,2277,active,,portfolio_v2
36
+ billing_group:2289,Groupe facturation Residence Saint-Lambert A4,billing_group,2289,1,2287,active,,portfolio_v2
37
+ billing_group:2299,Groupe facturation Residence Saint-Lambert A5,billing_group,2299,1,2297,missing_recipient,,portfolio_v2
38
+ billing_group:2309,Groupe facturation Residence Saint-Lambert B6,billing_group,2309,1,2307,active,,portfolio_v2
39
+ billing_group:2320,Groupe facturation Residence Saint-Lambert B7,billing_group,2320,1,2318,active,,portfolio_v2
40
+ billing_group:2330,Groupe facturation Residence Saint-Lambert B8,billing_group,2330,1,2328,active,,portfolio_v2
41
+ billing_group:2340,Groupe facturation Residence Saint-Lambert B9,billing_group,2340,1,2338,active,,portfolio_v2
@@ -0,0 +1,10 @@
1
+ record_id,name,entity_type,entity_id,confidence,building_id,building,block,generated_by
2
+ block:10,Tilleuls Bloc A,block,10,1,1,Résidence Les Tilleuls,,
3
+ block:20,Érables Bloc A,block,20,1,2,Résidence Les Érables,,
4
+ block:21,Érables Bloc B,block,21,1,2,Résidence Les Érables,,
5
+ block:2002,Residence Les Platanes Bloc A,block,2002,1,2000,Residence Les Platanes,A,portfolio_v2
6
+ block:2003,Residence Les Platanes Bloc B,block,2003,1,2000,Residence Les Platanes,B,portfolio_v2
7
+ block:2125,Residence Le Canal Bloc A,block,2125,1,2123,Residence Le Canal,A,portfolio_v2
8
+ block:2126,Residence Le Canal Bloc B,block,2126,1,2123,Residence Le Canal,B,portfolio_v2
9
+ block:2248,Residence Saint-Lambert Bloc A,block,2248,1,2246,Residence Saint-Lambert,A,portfolio_v2
10
+ block:2249,Residence Saint-Lambert Bloc B,block,2249,1,2246,Residence Saint-Lambert,B,portfolio_v2
@@ -0,0 +1,3 @@
1
+ record_id,name,entity_type,entity_id,confidence,approved_amount_eur,forecast_amount_eur,status,generated_by
2
+ budget_line:1012,Budget chantier Érables voté AG,budget_line,1012,1,125000,132000,over_forecast,
3
+ budget_line:2375,Budget ventilation Platanes,budget_line,2375,1,39000,41000,over_forecast,portfolio_v2
@@ -0,0 +1,6 @@
1
+ record_id,name,entity_type,entity_id,confidence,address,quota_basis,city,portfolio_segment,generated_by
2
+ building:1,Résidence Les Tilleuls,building,1,1,"12 rue des Tilleuls, 5000 Namur",1000,,,
3
+ building:2,Résidence Les Érables,building,2,1,"8 avenue des Érables, 1300 Wavre",1000,,,
4
+ building:2000,Residence Les Platanes,building,2000,1,"4 avenue des Platanes, 1300 Wavre",1000,Wavre,medium_demo,portfolio_v2
5
+ building:2123,Residence Le Canal,building,2123,1,"18 quai du Canal, 1000 Bruxelles",1000,Bruxelles,medium_demo,portfolio_v2
6
+ building:2246,Residence Saint-Lambert,building,2246,1,"7 rue Saint-Lambert, 4000 Liege",1000,Liege,medium_demo,portfolio_v2