@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
@@ -10,10 +10,10 @@ return {
10
10
  assets: new Set(["robots.txt"]),
11
11
  mimeTypes: {".txt":"text/plain"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.DV-AjeAB.js",app:"_app/immutable/entry/app.CR-imLox.js",imports:["_app/immutable/entry/start.DV-AjeAB.js","_app/immutable/chunks/D0UIlUGZ.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/BNUkRZqg.js","_app/immutable/entry/app.CR-imLox.js","_app/immutable/chunks/nnWk1BBo.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/D4SoBmS0.js","_app/immutable/chunks/D0daF8Eh.js","_app/immutable/chunks/NXeHtWpC.js","_app/immutable/chunks/BNUkRZqg.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.Dtz8dQFZ.js",app:"_app/immutable/entry/app.XgS1PoV0.js",imports:["_app/immutable/entry/start.Dtz8dQFZ.js","_app/immutable/chunks/BjfgiHck.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/BNUkRZqg.js","_app/immutable/entry/app.XgS1PoV0.js","_app/immutable/chunks/nnWk1BBo.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/D4SoBmS0.js","_app/immutable/chunks/D0daF8Eh.js","_app/immutable/chunks/NXeHtWpC.js","_app/immutable/chunks/BNUkRZqg.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
15
  __memo(() => import('./nodes/0.js-87v83UX9.js')),
16
- __memo(() => import('./nodes/1.js-Dhh3ErZY.js')),
16
+ __memo(() => import('./nodes/1.js-D3KAPgsF.js')),
17
17
  __memo(() => import('./nodes/2.js-D9-B_qyX.js'))
18
18
  ],
19
19
  remotes: {
@@ -88,4 +88,4 @@ return {
88
88
  })();
89
89
 
90
90
  export { manifest as m };
91
- //# sourceMappingURL=manifest.js-aGRKuiqF.js.map
91
+ //# sourceMappingURL=manifest.js-BxEwHoCX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js-aGRKuiqF.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DV-AjeAB.js\",app:\"_app/immutable/entry/app.CR-imLox.js\",imports:[\"_app/immutable/entry/start.DV-AjeAB.js\",\"_app/immutable/chunks/D0UIlUGZ.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/BNUkRZqg.js\",\"_app/immutable/entry/app.CR-imLox.js\",\"_app/immutable/chunks/nnWk1BBo.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/D4SoBmS0.js\",\"_app/immutable/chunks/D0daF8Eh.js\",\"_app/immutable/chunks/NXeHtWpC.js\",\"_app/immutable/chunks/BNUkRZqg.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/brain/health\",\n\t\t\t\tpattern: /^\\/api\\/brain\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/brain/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/brain/[...path]\",\n\t\t\t\tpattern: /^\\/api\\/brain(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/brain/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/count\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/count\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/count/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/ontologies\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/ontologies\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/ontologies/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/schema-registry\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/schema-registry\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/schema-registry/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/projections/catalog\",\n\t\t\t\tpattern: /^\\/api\\/projections\\/catalog\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/projections/catalog/_server.ts.js'))\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js-BxEwHoCX.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"robots.txt\"]),\n\tmimeTypes: {\".txt\":\"text/plain\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Dtz8dQFZ.js\",app:\"_app/immutable/entry/app.XgS1PoV0.js\",imports:[\"_app/immutable/entry/start.Dtz8dQFZ.js\",\"_app/immutable/chunks/BjfgiHck.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/BNUkRZqg.js\",\"_app/immutable/entry/app.XgS1PoV0.js\",\"_app/immutable/chunks/nnWk1BBo.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/D4SoBmS0.js\",\"_app/immutable/chunks/D0daF8Eh.js\",\"_app/immutable/chunks/NXeHtWpC.js\",\"_app/immutable/chunks/BNUkRZqg.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/brain/health\",\n\t\t\t\tpattern: /^\\/api\\/brain\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/brain/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/brain/[...path]\",\n\t\t\t\tpattern: /^\\/api\\/brain(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/brain/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/count\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/count\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/count/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/ontologies\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/ontologies\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/ontologies/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/graph/schema-registry\",\n\t\t\t\tpattern: /^\\/api\\/graph\\/schema-registry\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/graph/schema-registry/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/projections/catalog\",\n\t\t\t\tpattern: /^\\/api\\/projections\\/catalog\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/projections/catalog/_server.ts.js'))\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  const index = 1;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-B7V4yZjo.js')).default;
4
- const imports = ["_app/immutable/nodes/1.CTEedoSY.js","_app/immutable/chunks/NXeHtWpC.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/D0daF8Eh.js","_app/immutable/chunks/D0UIlUGZ.js","_app/immutable/chunks/BNUkRZqg.js"];
4
+ const imports = ["_app/immutable/nodes/1.Cs3BmvHO.js","_app/immutable/chunks/NXeHtWpC.js","_app/immutable/chunks/BnkCgNCx.js","_app/immutable/chunks/D0daF8Eh.js","_app/immutable/chunks/BjfgiHck.js","_app/immutable/chunks/BNUkRZqg.js"];
5
5
  const stylesheets = [];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1.js-Dhh3ErZY.js.map
9
+ //# sourceMappingURL=1.js-D3KAPgsF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1.js-Dhh3ErZY.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.CTEedoSY.js\",\"_app/immutable/chunks/NXeHtWpC.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/D0daF8Eh.js\",\"_app/immutable/chunks/D0UIlUGZ.js\",\"_app/immutable/chunks/BNUkRZqg.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1.js-D3KAPgsF.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.Cs3BmvHO.js\",\"_app/immutable/chunks/NXeHtWpC.js\",\"_app/immutable/chunks/BnkCgNCx.js\",\"_app/immutable/chunks/D0daF8Eh.js\",\"_app/immutable/chunks/BjfgiHck.js\",\"_app/immutable/chunks/BNUkRZqg.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
@@ -0,0 +1,82 @@
1
+ # Definition of Done - workspace immeuble
2
+ workspace_id: immeuble
3
+ ontology_id: immeuble::core
4
+ schema_id_prefix: "immeuble:"
5
+
6
+ import_ready:
7
+ facet_rows_min: 400
8
+ edge_rows_min: 800
9
+ fake_data_csv_min: 35
10
+ entity_type_counts_min:
11
+ building: 5
12
+ block: 9
13
+ unit: 40
14
+ household: 40
15
+ cellar: 40
16
+ person: 80
17
+ charge_call: 50
18
+ coda_entry: 35
19
+ maintenance_ticket: 10
20
+ worksite_project: 2
21
+
22
+ db_after_import:
23
+ agent_facts_min: 400
24
+ relations_raw_min: 800
25
+ graph_entity_min: 400
26
+ schema_id_violations: 0
27
+
28
+ hybrid_compare:
29
+ required: false
30
+ max_deltas:
31
+ facets_inserted: 0
32
+ edges_inserted: 0
33
+ entities_upserted: 0
34
+
35
+ projections:
36
+ analysis_plan_min: 1
37
+ live_answer_view_min: 25
38
+ answer_snapshot_min: 8
39
+
40
+ consumer_contract:
41
+ facet_queries_min: 3
42
+ graph_traversals_min: 2
43
+ answer_artifacts_min: 25
44
+
45
+ business_capabilities:
46
+ active_min: 25
47
+ required_artifact_ids:
48
+ - live_answer_view__lots_sans_proprietaire
49
+ - live_answer_view__coda_a_rapprocher
50
+ - live_answer_view__interventions_en_retard
51
+ - live_answer_view__chantier_actif
52
+
53
+ starterkit_projection_audit:
54
+ quality_score_min: 70
55
+ required_facet_observation_gap_max: 0
56
+ required_schema_record_gap_max: 0
57
+ required_edge_type_gap_max: 0
58
+ planned_missing_count_max: 0
59
+ strict_only: true
60
+
61
+ bundle:
62
+ path: bundle/immeuble.bundle.json
63
+ documents_raw_min: 20
64
+ entities_raw_min: 400
65
+ relations_raw_min: 800
66
+ answer_artifacts_min: 33
67
+
68
+ graph_search_min:
69
+ query: appartement
70
+ min_hits: 40
71
+
72
+ construction_lite:
73
+ entity_types_min: 14
74
+ graph_entities_min: 30
75
+ live_answer_views_min: 6
76
+ projection_results_min: 8
77
+ delta_findings_min: 12
78
+ gap_rules_min: 25
79
+
80
+ expected_findings:
81
+ file: gap-rules/expected-findings.yaml
82
+ min_count: 12
@@ -0,0 +1,15 @@
1
+
2
+ # BIM Lite
3
+
4
+ La couche `construction_lite` s'inspire de DiCon/BOT/IFC sans importer ces ontologies.
5
+ Elle sert de vocabulaire métier lisible pour la démo GhostCrab Studio.
6
+
7
+ | Concept local | Inspiration indicative |
8
+ | --- | --- |
9
+ | `worksite_project` | `dicp:Project` |
10
+ | `work_package` | `dicp:Activity` |
11
+ | `architect`, `contractor` | `dica:Agent` |
12
+ | `permit`, `quote`, `invoice` | `dici:Information` |
13
+ | `building`, `unit`, `shared_space` | BOT/IFC spatial and asset notions |
14
+
15
+ Ces mappings sont documentaires. Ils ne créent aucune dépendance RDF externe et ne prétendent pas garantir une conformité BIM.
@@ -0,0 +1,128 @@
1
+ # Immeuble — checklist exécutable
2
+
3
+ Prérequis : backend MindBrain joignable (`ghostcrab_status` OK), Node ≥ 20, `sqlite3` CLI optionnel (checks DB).
4
+
5
+ Variables :
6
+
7
+ ```bash
8
+ export GHOSTCRAB_SQLITE_PATH="$PWD/data/immeuble.sqlite"
9
+ export GHOSTCRAB_MINDBRAIN_URL="${GHOSTCRAB_MINDBRAIN_URL:-http://127.0.0.1:8091}"
10
+ ```
11
+
12
+ Critères chiffrés : [`ACCEPTANCE.yaml`](ACCEPTANCE.yaml)
13
+ Vérification auto : `npm run immeuble:verify`
14
+
15
+ ---
16
+
17
+ ## Phase 0 — Préconditions
18
+
19
+ | # | Action | Post-condition OK | KO si |
20
+ |---|--------|-------------------|-------|
21
+ | 0.1 | `ghostcrab_status` | `ok: true`, tools visibles | backend down |
22
+ | 0.2 | Branche + submodule | `vendor/mindbrain` ≥ 549c39f | mismatch binaire |
23
+
24
+ ---
25
+
26
+ ## Phase 1 — Build (filesystem only)
27
+
28
+ | # | Commande | Artefacts | Post-condition |
29
+ |---|----------|-----------|----------------|
30
+ | 1.1 | `npm run immeuble:build` | `fake_data/*.csv` (≥19), `import_ready/*`, `reports/01-model.validation.json` | `pipeline_audit.ok=true`, facet_rows=131, edge_rows=265 |
31
+ | 1.2 | `npm run immeuble:verify` | `reports/acceptance.validation.json` | all checks ok (sans DB) |
32
+
33
+ **Tables DB touchées :** aucune
34
+
35
+ ---
36
+
37
+ ## Phase 2 — Dry-run import
38
+
39
+ | # | Commande | Post-condition |
40
+ |---|----------|----------------|
41
+ | 2.1 | `node examples/immeuble/scripts/run-immeuble-import.mjs --skip-preflight --skip-provenance-validation` | plan summary facet_rows>0, edge_rows>0 |
42
+
43
+ **Tables DB :** aucune écriture
44
+
45
+ ---
46
+
47
+ ## Phase 3 — Reset + apply (workspace propre)
48
+
49
+ | # | Commande | Post-condition |
50
+ |---|----------|----------------|
51
+ | 3.1 | `npm run immeuble:reset -- --db /tmp/immeuble-test/immeuble.sqlite` | DB fraîche isolée (recommandé si backend actif) |
52
+ | 3.1b | `npm run immeuble:reset` | DB `data/immeuble.sqlite` (requiert `--force` si backend sur même fichier) |
53
+
54
+ **Post-conditions DB (`ACCEPTANCE.yaml`) :**
55
+
56
+ - `agent_facts` ≥ 131, tous `schema_id` préfixés `immeuble:`
57
+ - `relations_raw` ≥ 265
58
+ - `graph_entity` > 0 après reindex
59
+
60
+ ---
61
+
62
+ ## Phase 4 — Hybrid compare (optionnel CI)
63
+
64
+ ```bash
65
+ node examples/immeuble/scripts/run-immeuble-import.mjs \
66
+ --apply --engine both --skip-preflight --skip-provenance-validation \
67
+ --db /tmp/immeuble-hybrid.sqlite \
68
+ --compare-output examples/immeuble/reports/hybrid-compare.json
69
+ npm run immeuble:verify -- --require-hybrid
70
+ ```
71
+
72
+ **OK si :** deltas legacy/hybrid = 0 sur facets/edges/entities
73
+
74
+ ---
75
+
76
+ ## Phase 5 — Projections (surface minimale garantie)
77
+
78
+ Surface documentée dans `ACCEPTANCE.yaml` → section `projections` :
79
+
80
+ | artifact_id | kind |
81
+ |-------------|------|
82
+ | `analysis_plan__immeuble_competency_questions` | analysis_plan |
83
+ | `live_answer_view__annuaire_coproprietes` | live_answer_view |
84
+ | `live_answer_view__baux_actifs` | live_answer_view |
85
+ | `live_answer_view__quotites_par_immeuble` | live_answer_view |
86
+
87
+ | # | Commande | Post-condition |
88
+ |---|----------|----------------|
89
+ | 5.1 | `npm run immeuble:reset -- --with-artifact-seed` | seeds chargés |
90
+ | 5.2 | `gcp brain artifact list --workspace-id immeuble --kind live_answer_view` | ≥3 ids listés |
91
+ | 5.3 | `gcp brain artifact refresh live_answer_view__annuaire_coproprietes` | POST 200, lifecycle mis à jour |
92
+ | 5.4 | `node examples/immeuble/scripts/starterkit/analyze-projection-candidates.mjs --db data/immeuble.sqlite --workspace immeuble --projection-catalog contracts/projection_catalog.yaml --model-contract contracts/model_contract.json --output-dir reports --include-blind-spots --include-jtbd` | report `projection_candidates.json` généré |
93
+ | 5.5 | `node examples/immeuble/scripts/starterkit/audit-ghostcrab-projections.mjs --db data/immeuble.sqlite --workspace immeuble --model contracts/model_contract.json --answer-artifacts-seed contracts/answer_artifacts.seed.jsonl --output-dir reports` | `projection_audit_immeuble.json` généré, coverage conforme `ACCEPTANCE.yaml` |
94
+
95
+ ---
96
+
97
+ ## Phase 6 — Bundle reload
98
+
99
+ ```bash
100
+ npm run immeuble:reset -- --with-bundle-load --keep-db
101
+ # ou
102
+ node bin/gcp.mjs load examples/immeuble/bundle/immeuble.bundle.json \
103
+ --workspace immeuble --reindex all
104
+ npm run immeuble:verify -- --require-bundle
105
+ ```
106
+
107
+ **OK si :** counts bundle = counts post-import (entities ≥131, documents=7)
108
+
109
+ ---
110
+
111
+ ## Rollback local
112
+
113
+ ```bash
114
+ git restore --worktree --source=HEAD .
115
+ # artefacts : reports/*.json datés, DB : rm data/immeuble.sqlite
116
+ ```
117
+
118
+ Legacy fallback : `--engine legacy` (défaut) ; hybrid via `--engine both` sans supprimer legacy.
119
+
120
+ ---
121
+
122
+ ## Definition of Done (résumé)
123
+
124
+ - [x] `npm run immeuble:build && npm run immeuble:verify` → ok
125
+ - [x] `npm run immeuble:reset` → ok
126
+ - [x] `--engine both` → hybrid deltas 0 (CI)
127
+ - [x] 3 live_answer_view + 1 analysis_plan seedés/listés + refresh live (`immeuble:verify:live`)
128
+ - [ ] bundle reload → counts stables
@@ -0,0 +1,121 @@
1
+ # Immeuble — exemple canonique GhostCrab
2
+
3
+ Unique domain example for the GhostCrab Personal methodology. Structure mirrors [MVP_Serenity_2](https://github.com/mindflight-orchestrator/ghostcrab-personal-mcp) (model → CSV → import_ready → reports → bundle).
4
+
5
+ **Workspace:** `immeuble`
6
+ **Ontology:** `immeuble::core` ([`ontologies/immeuble/core.yaml`](../../ontologies/immeuble/core.yaml))
7
+
8
+ ## Quick start
9
+
10
+ ```bash
11
+ # 1) Generate fake_data, import_ready, reports from bundle
12
+ npm run immeuble:build
13
+
14
+ # 2) Dry-run structured import
15
+ node examples/immeuble/scripts/run-immeuble-import.mjs --skip-preflight --skip-provenance-validation
16
+
17
+ # 3) Apply + reindex + prefix checks
18
+ npm run immeuble:import
19
+
20
+ # 4) Load full bundle (documents + graph + projections seed)
21
+ export GHOSTCRAB_SQLITE_PATH="$PWD/data/immeuble.sqlite"
22
+ node bin/gcp.mjs load examples/immeuble/bundle/immeuble.bundle.json \
23
+ --workspace immeuble --reindex all
24
+
25
+ # 5) Audit projections registry
26
+ npm run immeuble:verify # acceptance criteria (filesystem + optional --db)
27
+ npm run immeuble:reset -- --db /tmp/immeuble-test/immeuble.sqlite # workspace propre
28
+ ```
29
+
30
+ Pour le mode live (backend+snapshots), il existe un wrapper dédié :
31
+ ```bash
32
+ npm run immeuble:backend:run -- \
33
+ --db /tmp/immeuble-lab/immeuble.sqlite \
34
+ --ready-timeout 40
35
+ ```
36
+ Ou directement :
37
+ ```bash
38
+ bash examples/immeuble/scripts/run-immeuble-backend.sh \
39
+ --db /tmp/immeuble-lab/immeuble.sqlite \
40
+ --ready-timeout 40
41
+ ```
42
+ Il lance le binaire `ghostcrab-backend` en standalone HTTP (via `env GHOSTCRAB_*=...`),
43
+ retourne `BACKEND_PID`, `BACKEND_URL` et `BACKEND_LOG`, puis laisse le processus tourner.
44
+
45
+ Hybrid legacy/compare:
46
+
47
+ ```bash
48
+ node examples/immeuble/scripts/run-immeuble-import.mjs \
49
+ --apply --engine both --skip-preflight --skip-provenance-validation \
50
+ --compare-output examples/immeuble/reports/hybrid-compare.json
51
+ ```
52
+
53
+ ### Orchestrer tout le pipeline avec DB fraîche + backups de progression
54
+
55
+ ```bash
56
+ bash examples/immeuble/scripts/run-immeuble-live-lab.sh \
57
+ --db /tmp/immeuble-lab/immeuble.sqlite \
58
+ --engine both \
59
+ --with-projection-plan \
60
+ --projection-strict \
61
+ --with-artifact-seed \
62
+ --with-live-verify \
63
+ --stop-after live_verify
64
+ ```
65
+
66
+ Le script :
67
+ - démarre le backend local `ghostcrab-backend` en mode standalone HTTP (`:8091` par défaut),
68
+ - exécute les étapes `build → projection_plan → import → artifact_seed → audit (StarterKit) → verify → live_verify` (et `bundle` si demandé),
69
+ - fait un snapshot SQLite après chaque étape (`.sqlite`, `-.wal`, `-.shm` quand présents),
70
+ - permet d’évaluer la progression entre chaque snapshot.
71
+
72
+ C’est bien un pipeline via les outils **HTTP (gcp + scripts Immeuble)** contre un backend en marche, pas des appels standalone directs sur sqlite depuis les scripts.
73
+
74
+ Comparer deux snapshots :
75
+
76
+ ```bash
77
+ npm run immeuble:compare:snapshots -- \
78
+ --from data/immeuble-lab-backups/20260614-120101-00-start.sqlite \
79
+ --to data/immeuble-lab-backups/20260614-120223-import.sqlite \
80
+ --workspace immeuble \
81
+ --label-a start --label-b import
82
+ ```
83
+
84
+ Version JSON (utile pour rapporter l’évolution dans un script CI) :
85
+
86
+ ```bash
87
+ npm run immeuble:compare:snapshots -- \
88
+ --from data/immeuble-lab-backups/20260614-120101-00-start.sqlite \
89
+ --to data/immeuble-lab-backups/20260614-120223-import.sqlite \
90
+ --workspace immeuble \
91
+ --json --out /tmp/immeuble-compare.json
92
+ ```
93
+
94
+ ## Layout
95
+
96
+ | Path | Role |
97
+ |------|------|
98
+ | [`sources/documents/`](sources/documents/) | Raw markdown corpus (Tilleuls / Érables narrative) |
99
+ | [`sources/agent-prompts/`](sources/agent-prompts/) | Optional agent reconstruction prompts |
100
+ | [`model/immeuble_model.json`](model/immeuble_model.json) | Global entity/edge contract |
101
+ | [`contracts/`](contracts/) | Mapping, consumer contract, projection catalog, answer seeds |
102
+ | [`fake_data/`](fake_data/) | One CSV per entity type (generated) |
103
+ | [`import_ready/`](import_ready/) | `mfo_facets_import.csv` + `graph_edges_import.csv` |
104
+ | [`reports/`](reports/) | Step checkpoints (JSON/JSONL) |
105
+ | [`bundle/immeuble.bundle.json`](bundle/immeuble.bundle.json) | Importable workspace snapshot |
106
+ | [`gap-rules/`](gap-rules/) | Gap diagnostics curriculum (optional) |
107
+ | [`scripts/`](scripts/) | Build, import, audit runners |
108
+
109
+ ## Methodology
110
+
111
+ Step-by-step walkthrough: [`index.md`](index.md)
112
+ Voir aussi : [`CHECKLIST.md`](CHECKLIST.md) · [`ACCEPTANCE.yaml`](ACCEPTANCE.yaml)
113
+
114
+ ## Success criteria
115
+
116
+ Counts and graph checks: [`success-criteria.yaml`](success-criteria.yaml)
117
+ ## BIM Lite / chantier
118
+
119
+ La démo inclut maintenant un scénario `construction_lite` : chantier toiture/façades de la Résidence Les Érables, architecte, entreprises, lots de travaux, permis, budget, planning, inspection et réserves.
120
+
121
+ Ce profil s'inspire de DiCon/BOT/IFC uniquement comme vocabulaire de conception. La démo n'importe pas IFC, ifcOWL, BOT ou DiCon en entier. Voir [BIM_LITE.md](BIM_LITE.md).