@mindflight/mindbrain-personal-studio 0.6.2 → 0.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +16 -8
  2. package/build/client/_app/immutable/chunks/{D0UIlUGZ.js → BjfgiHck.js} +1 -1
  3. package/build/client/_app/immutable/chunks/BjfgiHck.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BjfgiHck.js.gz +0 -0
  5. package/build/client/_app/immutable/entry/{app.CR-imLox.js → app.XgS1PoV0.js} +2 -2
  6. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.br +0 -0
  7. package/build/client/_app/immutable/entry/app.XgS1PoV0.js.gz +0 -0
  8. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js +1 -0
  9. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.br +2 -0
  10. package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.gz +0 -0
  11. package/build/client/_app/immutable/nodes/{1.CTEedoSY.js → 1.Cs3BmvHO.js} +1 -1
  12. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.br +3 -0
  13. package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.gz +0 -0
  14. package/build/client/_app/version.json +1 -1
  15. package/build/client/_app/version.json.br +0 -0
  16. package/build/client/_app/version.json.gz +0 -0
  17. package/build/handler.js +4 -4
  18. package/build/index.js +4 -4
  19. package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js → internal.js-BnebQ91H.js} +2 -2
  20. package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js.map → internal.js-BnebQ91H.js.map} +1 -1
  21. package/build/server/chunks/{handler-BIDedSZq.js → handler-B8M0DnFi.js} +3 -3
  22. package/build/server/chunks/{handler-BIDedSZq.js.map → handler-B8M0DnFi.js.map} +1 -1
  23. package/build/server/chunks/{index.js-YVPJa0so.js → index.js-qz9YZN7m.js} +2 -2
  24. package/build/server/chunks/{index.js-YVPJa0so.js.map → index.js-qz9YZN7m.js.map} +1 -1
  25. package/build/server/chunks/{manifest.js-aGRKuiqF.js → manifest.js-BxEwHoCX.js} +3 -3
  26. package/build/server/chunks/{manifest.js-aGRKuiqF.js.map → manifest.js-BxEwHoCX.js.map} +1 -1
  27. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js → 1.js-D3KAPgsF.js} +2 -2
  28. package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js.map → 1.js-D3KAPgsF.js.map} +1 -1
  29. package/examples/immeuble/ACCEPTANCE.yaml +82 -0
  30. package/examples/immeuble/BIM_LITE.md +15 -0
  31. package/examples/immeuble/CHECKLIST.md +128 -0
  32. package/examples/immeuble/README.md +121 -0
  33. package/examples/immeuble/bundle/immeuble.bundle.json +22786 -0
  34. package/examples/immeuble/contracts/answer_artifacts.seed.jsonl +34 -0
  35. package/examples/immeuble/contracts/business_capabilities.seed.jsonl +25 -0
  36. package/examples/immeuble/contracts/consumer_contract.yaml +131 -0
  37. package/examples/immeuble/contracts/immeuble_structured_import_model.json +310 -0
  38. package/examples/immeuble/contracts/mapping_external_to_canonical.json +375 -0
  39. package/examples/immeuble/contracts/mapping_external_to_canonical.yaml +55 -0
  40. package/examples/immeuble/contracts/mapping_external_to_canonical_ws.json +65 -0
  41. package/examples/immeuble/contracts/model_contract.json +943 -0
  42. package/examples/immeuble/contracts/projection_catalog.yaml +366 -0
  43. package/examples/immeuble/contracts/scenarios.yaml +27 -0
  44. package/examples/immeuble/contracts/semantic_proposal.golden.json +1 -0
  45. package/examples/immeuble/contracts/source_profile.yaml +38 -0
  46. package/examples/immeuble/fake_data/DeltaFinding.csv +20 -0
  47. package/examples/immeuble/fake_data/ProjectionResult.csv +13 -0
  48. package/examples/immeuble/fake_data/ag_meeting.csv +4 -0
  49. package/examples/immeuble/fake_data/agenda_item.csv +4 -0
  50. package/examples/immeuble/fake_data/architect.csv +3 -0
  51. package/examples/immeuble/fake_data/architecture_firm.csv +2 -0
  52. package/examples/immeuble/fake_data/bank_account.csv +3 -0
  53. package/examples/immeuble/fake_data/billing_group.csv +41 -0
  54. package/examples/immeuble/fake_data/block.csv +10 -0
  55. package/examples/immeuble/fake_data/budget_line.csv +3 -0
  56. package/examples/immeuble/fake_data/building.csv +6 -0
  57. package/examples/immeuble/fake_data/cellar.csv +41 -0
  58. package/examples/immeuble/fake_data/change_order.csv +2 -0
  59. package/examples/immeuble/fake_data/charge_call.csv +58 -0
  60. package/examples/immeuble/fake_data/claim.csv +4 -0
  61. package/examples/immeuble/fake_data/coda_entry.csv +49 -0
  62. package/examples/immeuble/fake_data/compliance_certificate.csv +10 -0
  63. package/examples/immeuble/fake_data/contractor.csv +4 -0
  64. package/examples/immeuble/fake_data/decision.csv +5 -0
  65. package/examples/immeuble/fake_data/defect_reserve.csv +3 -0
  66. package/examples/immeuble/fake_data/household.csv +41 -0
  67. package/examples/immeuble/fake_data/inspection.csv +3 -0
  68. package/examples/immeuble/fake_data/insurance_policy.csv +4 -0
  69. package/examples/immeuble/fake_data/intervention.csv +13 -0
  70. package/examples/immeuble/fake_data/invoice.csv +3 -0
  71. package/examples/immeuble/fake_data/lease_contract.csv +12 -0
  72. package/examples/immeuble/fake_data/maintenance_ticket.csv +13 -0
  73. package/examples/immeuble/fake_data/meter.csv +4 -0
  74. package/examples/immeuble/fake_data/meter_reading.csv +19 -0
  75. package/examples/immeuble/fake_data/milestone.csv +3 -0
  76. package/examples/immeuble/fake_data/organization.csv +12 -0
  77. package/examples/immeuble/fake_data/parking_space.csv +8 -0
  78. package/examples/immeuble/fake_data/permit.csv +3 -0
  79. package/examples/immeuble/fake_data/person.csv +85 -0
  80. package/examples/immeuble/fake_data/private_garden.csv +7 -0
  81. package/examples/immeuble/fake_data/progress_event.csv +2 -0
  82. package/examples/immeuble/fake_data/quote.csv +3 -0
  83. package/examples/immeuble/fake_data/receipt.csv +2 -0
  84. package/examples/immeuble/fake_data/reminder.csv +11 -0
  85. package/examples/immeuble/fake_data/service_contract.csv +4 -0
  86. package/examples/immeuble/fake_data/shared_equipment.csv +8 -0
  87. package/examples/immeuble/fake_data/shared_space.csv +10 -0
  88. package/examples/immeuble/fake_data/unit.csv +41 -0
  89. package/examples/immeuble/fake_data/work_package.csv +4 -0
  90. package/examples/immeuble/fake_data/worksite_project.csv +3 -0
  91. package/examples/immeuble/gap-rules/L0-patrimoine.json +57 -0
  92. package/examples/immeuble/gap-rules/L1-syndic-naive.json +36 -0
  93. package/examples/immeuble/gap-rules/L1-syndic.json +61 -0
  94. package/examples/immeuble/gap-rules/L2-chantier.json +87 -0
  95. package/examples/immeuble/gap-rules/L2-exploitation.json +87 -0
  96. package/examples/immeuble/gap-rules/L2-finance.json +48 -0
  97. package/examples/immeuble/gap-rules/L2-maintenance.json +107 -0
  98. package/examples/immeuble/gap-rules/L2-syndic-filtered.json +39 -0
  99. package/examples/immeuble/gap-rules/L3-full.json +332 -0
  100. package/examples/immeuble/gap-rules/closed-world-contract.md +76 -0
  101. package/examples/immeuble/gap-rules/demo.json +51 -0
  102. package/examples/immeuble/gap-rules/expected-findings.yaml +100 -0
  103. package/examples/immeuble/gap-rules/gap-scenarios.yaml +79 -0
  104. package/examples/immeuble/gap-rules/motifs.json +38 -0
  105. package/examples/immeuble/gap-rules/syndic.json +40 -0
  106. package/examples/immeuble/import_manifest.yaml +25 -0
  107. package/examples/immeuble/import_ready/graph_edges_import.csv +848 -0
  108. package/examples/immeuble/import_ready/mfo_facets_import.csv +559 -0
  109. package/examples/immeuble/index.md +140 -0
  110. package/examples/immeuble/model/immeuble_model.json +418 -0
  111. package/examples/immeuble/reports/01-model.validation.json +56 -0
  112. package/examples/immeuble/reports/02-mapping.validation.json +9 -0
  113. package/examples/immeuble/reports/acceptance.validation.json +161 -0
  114. package/examples/immeuble/reports/consumer_contract.validation.json +162 -0
  115. package/examples/immeuble/reports/graph_edges.jsonl +847 -0
  116. package/examples/immeuble/reports/graph_nodes.jsonl +558 -0
  117. package/examples/immeuble/reports/hybrid-compare.json +144 -0
  118. package/examples/immeuble/reports/immeuble-import-scenario.json +233 -0
  119. package/examples/immeuble/reports/live-artifacts-refresh.validation.json +51 -0
  120. package/examples/immeuble/reports/pipeline_audit.json +59 -0
  121. package/examples/immeuble/reports/projection_audit.json +69 -0
  122. package/examples/immeuble/reports/projection_audit_immeuble.json +257 -0
  123. package/examples/immeuble/reports/projection_audit_immeuble.md +122 -0
  124. package/examples/immeuble/reports/projection_candidates.json +1596 -0
  125. package/examples/immeuble/reports/projection_candidates.md +117 -0
  126. package/examples/immeuble/reports/projection_model_validation.md +115 -0
  127. package/examples/immeuble/reports/reindex.json +4 -0
  128. package/examples/immeuble/reports/reset-immeuble-workspace.json +32 -0
  129. package/examples/immeuble/reports/schema-id-prefix-check.json +5 -0
  130. package/examples/immeuble/scripts/audit-immeuble-projections.mjs +254 -0
  131. package/examples/immeuble/scripts/build-immeuble-model.mjs +308 -0
  132. package/examples/immeuble/scripts/compare-immeuble-snapshots.sh +227 -0
  133. package/examples/immeuble/scripts/enrich-immeuble-demo.mjs +1135 -0
  134. package/examples/immeuble/scripts/reset-immeuble-workspace.mjs +139 -0
  135. package/examples/immeuble/scripts/run-immeuble-backend.sh +164 -0
  136. package/examples/immeuble/scripts/run-immeuble-import.mjs +232 -0
  137. package/examples/immeuble/scripts/run-immeuble-live-lab.sh +439 -0
  138. package/examples/immeuble/scripts/seed-immeuble-gap-rules.mjs +103 -0
  139. package/examples/immeuble/scripts/start-immeuble-demo.sh +52 -0
  140. package/examples/immeuble/scripts/starterkit/analysis-lenses.mjs +181 -0
  141. package/examples/immeuble/scripts/starterkit/analyze-projection-candidates.mjs +714 -0
  142. package/examples/immeuble/scripts/starterkit/audit-ghostcrab-projections.mjs +674 -0
  143. package/examples/immeuble/scripts/starterkit/facet-prefix.mjs +166 -0
  144. package/examples/immeuble/scripts/starterkit/sqlite-utils.mjs +131 -0
  145. package/examples/immeuble/scripts/verify-immeuble-acceptance.mjs +284 -0
  146. package/examples/immeuble/scripts/verify-immeuble-live-artifacts.mjs +140 -0
  147. package/examples/immeuble/scripts/yaml-lite.mjs +96 -0
  148. package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites-immo-mcp.md +161 -0
  149. package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites.md +39 -0
  150. package/examples/immeuble/sources/agent-prompts/prompts/01-discovery-and-model-proposal.md +42 -0
  151. package/examples/immeuble/sources/agent-prompts/prompts/02-ontology-register.md +44 -0
  152. package/examples/immeuble/sources/agent-prompts/prompts/03-gap-rules-design.md +44 -0
  153. package/examples/immeuble/sources/agent-prompts/prompts/04-document-ingest.md +40 -0
  154. package/examples/immeuble/sources/agent-prompts/prompts/05-graph-extraction.md +44 -0
  155. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-immo-mcp.md +109 -0
  156. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-test-immo-mcp3.md +30 -0
  157. package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare.md +63 -0
  158. package/examples/immeuble/sources/checklists/gap-rules-checklist.md +42 -0
  159. package/examples/immeuble/sources/checklists/ontology-checklist.md +54 -0
  160. package/examples/immeuble/sources/documents/README.md +42 -0
  161. package/examples/immeuble/sources/documents/annexes-caves-garages-jardins.md +8 -0
  162. package/examples/immeuble/sources/documents/annexes-jardins-garages.md +1 -0
  163. package/examples/immeuble/sources/documents/baux-erables.md +1 -0
  164. package/examples/immeuble/sources/documents/baux-locatifs.md +11 -0
  165. package/examples/immeuble/sources/documents/coda-janvier-2026.md +10 -0
  166. package/examples/immeuble/sources/documents/composition-menages.md +1 -0
  167. package/examples/immeuble/sources/documents/composition-occupants.md +18 -0
  168. package/examples/immeuble/sources/documents/expected-coverage.json +70 -0
  169. package/examples/immeuble/sources/documents/extrait-coda-janvier-2026.md +1 -0
  170. package/examples/immeuble/sources/documents/groupes-facturation.md +30 -0
  171. package/examples/immeuble/sources/documents/manifest.json +79 -0
  172. package/examples/immeuble/sources/documents/note-architecte-chantier-erables.md +3 -0
  173. package/examples/immeuble/sources/documents/permis-urbanisme-erables.md +3 -0
  174. package/examples/immeuble/sources/documents/procedures-operationnelles.md +3 -0
  175. package/examples/immeuble/sources/documents/pv-ag-budget-2026.md +1 -0
  176. package/examples/immeuble/sources/documents/pv-reception-reserves-erables.md +3 -0
  177. package/examples/immeuble/sources/documents/registre-coproprietaires.md +24 -0
  178. package/examples/immeuble/sources/documents/reglement-copropriete-tilleuls.md +1 -0
  179. package/examples/immeuble/sources/documents/statuts-erables.md +22 -0
  180. package/examples/immeuble/sources/documents/statuts-tilleuls.md +19 -0
  181. package/examples/immeuble/sources/documents/succession-jean-dupont.md +3 -0
  182. package/examples/immeuble/sources/documents/titre-propriete-tilleuls-a3.md +1 -0
  183. package/examples/immeuble/sources/documents/trous-pedagogiques.md +3 -0
  184. package/examples/immeuble/sources/ontology/README.md +1 -0
  185. package/examples/immeuble/sources/ontology/core.yaml +444 -0
  186. package/examples/immeuble/success-criteria.yaml +35 -0
  187. package/fixtures/immeuble-demo.sqlite +0 -0
  188. package/package.json +11 -2
  189. package/scripts/lib/sqlite-runtime.mjs +1 -1
  190. package/scripts/load-immeuble-demo.sh +179 -0
  191. package/scripts/seed-immeuble-projections.mjs +75 -148
  192. package/scripts/verify-immeuble-demo-sources.mjs +93 -0
  193. package/scripts/verify-immeuble-demo.mjs +69 -0
  194. package/build/client/_app/immutable/chunks/D0UIlUGZ.js.br +0 -0
  195. package/build/client/_app/immutable/chunks/D0UIlUGZ.js.gz +0 -0
  196. package/build/client/_app/immutable/entry/app.CR-imLox.js.br +0 -0
  197. package/build/client/_app/immutable/entry/app.CR-imLox.js.gz +0 -0
  198. package/build/client/_app/immutable/entry/start.DV-AjeAB.js +0 -1
  199. package/build/client/_app/immutable/entry/start.DV-AjeAB.js.br +0 -2
  200. package/build/client/_app/immutable/entry/start.DV-AjeAB.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/1.CTEedoSY.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/1.CTEedoSY.js.gz +0 -0
@@ -0,0 +1,257 @@
1
+ {
2
+ "backend": "sqlite",
3
+ "db_path": "/tmp/immeuble-lab-starterkit-strict.sqlite",
4
+ "workspace_filter": "immeuble",
5
+ "model_path": "/home/dlamotte/Documents/mindflight/ghostcrab-personal-mcp/examples/immeuble/contracts/model_contract.json",
6
+ "answer_artifacts_seed": "/home/dlamotte/Documents/mindflight/ghostcrab-personal-mcp/examples/immeuble/contracts/answer_artifacts.seed.jsonl",
7
+ "generated_at": "2026-06-14T14:57:53.332Z",
8
+ "summary": {
9
+ "quality_score": 100,
10
+ "projection_count": 0,
11
+ "analysis_plan_row_count": 0,
12
+ "type_a_declared_projection_count": 0,
13
+ "answer_snapshot_count": 0,
14
+ "type_b_projection_result_count": 0,
15
+ "live_answer_view_count": 3,
16
+ "evidence_pack_count": 0,
17
+ "registry_analysis_plan_count": 1,
18
+ "stale_live_view_count": 3,
19
+ "planned_projection_count": 4,
20
+ "planned_materialized_count": 4,
21
+ "planned_missing_count": 0,
22
+ "planned_type_a_materialized_count": 4,
23
+ "planned_type_a_missing_count": 0,
24
+ "planned_analysis_plan_materialized_count": 4,
25
+ "planned_analysis_plan_missing_count": 0,
26
+ "planned_type_b_materialized_count": 0,
27
+ "planned_type_b_missing_count": 4,
28
+ "planned_answer_snapshot_materialized_count": 0,
29
+ "planned_answer_snapshot_missing_count": 4,
30
+ "planned_live_view_count": 3,
31
+ "planned_live_view_materialized_count": 3,
32
+ "planned_live_view_missing_count": 0,
33
+ "graph_entity_count": 131,
34
+ "graph_relation_count": 265,
35
+ "orphan_relation_count": 0,
36
+ "required_edge_type_gap_count": 0,
37
+ "required_schema_record_gap_count": 0,
38
+ "required_facet_observation_gap_count": 0,
39
+ "allowed_projection_type_count": 5,
40
+ "custom_projection_types": [],
41
+ "invalid_json_content_count": 0,
42
+ "expired_projection_count": 0,
43
+ "observed_facet_count": 217,
44
+ "observed_prefixed_facet_count": 175
45
+ },
46
+ "counts": {
47
+ "by_type": {},
48
+ "by_status": {},
49
+ "by_scope": {},
50
+ "graph_relations_by_type": {
51
+ "ALLOCATED_TO": 1,
52
+ "ASSIGNED_CELLAR": 13,
53
+ "ASSIGNED_GARAGE": 7,
54
+ "BILLS_TO": 13,
55
+ "CONTAINS": 69,
56
+ "DECIDED_BY": 2,
57
+ "HAS_MEMBER": 17,
58
+ "HOUSEHOLD_MEMBER": 27,
59
+ "LEASES": 5,
60
+ "MANAGES": 2,
61
+ "MATCHED_TO": 2,
62
+ "OCCUPIES": 27,
63
+ "OWNS": 17,
64
+ "PRIMARY_RESIDENCE_OF": 13,
65
+ "RECORDS": 3,
66
+ "RENTED_TO": 10,
67
+ "REPRESENTS": 2,
68
+ "REQUIRES_REVIEW": 1,
69
+ "TRIGGERED": 2,
70
+ "USES_COMMON": 26,
71
+ "USES_EXCLUSIVE": 6
72
+ },
73
+ "facets_by_schema": {
74
+ "immeuble:core:bank_account": 2,
75
+ "immeuble:core:billing_group": 13,
76
+ "immeuble:core:block": 3,
77
+ "immeuble:core:building": 2,
78
+ "immeuble:core:cellar": 13,
79
+ "immeuble:core:charge_call": 3,
80
+ "immeuble:core:coda_entry": 3,
81
+ "immeuble:core:decision": 1,
82
+ "immeuble:core:household": 13,
83
+ "immeuble:core:lease_contract": 5,
84
+ "immeuble:core:organization": 5,
85
+ "immeuble:core:parking_space": 7,
86
+ "immeuble:core:person": 30,
87
+ "immeuble:core:private_garden": 6,
88
+ "immeuble:core:receipt": 1,
89
+ "immeuble:core:reminder": 1,
90
+ "immeuble:core:shared_equipment": 4,
91
+ "immeuble:core:shared_space": 6,
92
+ "immeuble:core:unit": 13
93
+ }
94
+ },
95
+ "allowed_projection_types": [
96
+ {
97
+ "type_name": "FACT",
98
+ "compatibility_aliases": "[\"canonical\",\"proposition\"]",
99
+ "rank_bias": 1.3,
100
+ "pack_priority": 1,
101
+ "next_hop_multiplier": 1.2,
102
+ "structured": 1
103
+ },
104
+ {
105
+ "type_name": "GOAL",
106
+ "compatibility_aliases": "[\"canonical\",\"proposition\"]",
107
+ "rank_bias": 1.2,
108
+ "pack_priority": 1,
109
+ "next_hop_multiplier": 1.1,
110
+ "structured": 1
111
+ },
112
+ {
113
+ "type_name": "CONSTRAINT",
114
+ "compatibility_aliases": "[\"proposition\"]",
115
+ "rank_bias": 1,
116
+ "pack_priority": 2,
117
+ "next_hop_multiplier": 1,
118
+ "structured": 1
119
+ },
120
+ {
121
+ "type_name": "STEP",
122
+ "compatibility_aliases": "[\"proposition\"]",
123
+ "rank_bias": 0.9,
124
+ "pack_priority": 2,
125
+ "next_hop_multiplier": 0.9,
126
+ "structured": 1
127
+ },
128
+ {
129
+ "type_name": "NOTE",
130
+ "compatibility_aliases": "[\"raw\"]",
131
+ "rank_bias": 0.7,
132
+ "pack_priority": 3,
133
+ "next_hop_multiplier": 0.6,
134
+ "structured": 0
135
+ }
136
+ ],
137
+ "projections": [],
138
+ "answer_artifacts": [
139
+ {
140
+ "artifact_id": "analysis_plan__immeuble_competency_questions",
141
+ "slug": "immeuble_competency_questions",
142
+ "workspace_id": null,
143
+ "agent_id": "agent:immeuble",
144
+ "scope": "immeuble",
145
+ "artifact_kind": "analysis_plan",
146
+ "public_label": "Plan d'analyse immeuble",
147
+ "lifecycle": "active",
148
+ "state": "open",
149
+ "current_version": 1,
150
+ "legacy_ref": null
151
+ },
152
+ {
153
+ "artifact_id": "live_answer_view__annuaire_coproprietes",
154
+ "slug": "annuaire_coproprietes",
155
+ "workspace_id": "immeuble",
156
+ "agent_id": null,
157
+ "scope": null,
158
+ "artifact_kind": "live_answer_view",
159
+ "public_label": "Annuaire immeubles gérés",
160
+ "lifecycle": "stale",
161
+ "state": "dirty",
162
+ "current_version": 1,
163
+ "legacy_ref": null
164
+ },
165
+ {
166
+ "artifact_id": "live_answer_view__baux_actifs",
167
+ "slug": "baux_actifs",
168
+ "workspace_id": "immeuble",
169
+ "agent_id": null,
170
+ "scope": null,
171
+ "artifact_kind": "live_answer_view",
172
+ "public_label": "Baux locatifs actifs",
173
+ "lifecycle": "stale",
174
+ "state": "dirty",
175
+ "current_version": 1,
176
+ "legacy_ref": null
177
+ },
178
+ {
179
+ "artifact_id": "live_answer_view__quotites_par_immeuble",
180
+ "slug": "quotites_par_immeuble",
181
+ "workspace_id": "immeuble",
182
+ "agent_id": null,
183
+ "scope": null,
184
+ "artifact_kind": "live_answer_view",
185
+ "public_label": "Quotités par immeuble",
186
+ "lifecycle": "stale",
187
+ "state": "dirty",
188
+ "current_version": 1,
189
+ "legacy_ref": null
190
+ }
191
+ ],
192
+ "type_b_projection_results": [],
193
+ "quality_flags": {
194
+ "invalid_json_projection_ids": [],
195
+ "expired_projection_ids": [],
196
+ "custom_projection_types_not_registered": [],
197
+ "stale_live_answer_view_ids": [
198
+ "live_answer_view__annuaire_coproprietes",
199
+ "live_answer_view__baux_actifs",
200
+ "live_answer_view__quotites_par_immeuble"
201
+ ],
202
+ "missing_required_edge_types": [],
203
+ "required_schemas_without_records": [],
204
+ "required_facets_not_observed": [],
205
+ "orphan_relation_count": 0
206
+ },
207
+ "planned_projection_gap": {
208
+ "mode": "analysis_plan",
209
+ "legacy_mode": "type_a_declared_projections",
210
+ "planned_count": 4,
211
+ "materialized_count": 4,
212
+ "missing_count": 0,
213
+ "missing_by_ontology": {}
214
+ },
215
+ "analysis_plan_gap": {
216
+ "mode": "analysis_plan",
217
+ "planned_count": 4,
218
+ "materialized_count": 4,
219
+ "missing_count": 0,
220
+ "missing_by_ontology": {}
221
+ },
222
+ "type_b_projection_result_gap": {
223
+ "mode": "answer_snapshot",
224
+ "legacy_mode": "type_b_graph_projection_results",
225
+ "planned_count": 4,
226
+ "materialized_count": 0,
227
+ "missing_count": 4,
228
+ "available_projection_ids": [],
229
+ "missing_projection_ids": [
230
+ "immeuble_competency_questions",
231
+ "annuaire_coproprietes",
232
+ "baux_actifs",
233
+ "quotites_par_immeuble"
234
+ ]
235
+ },
236
+ "answer_snapshot_gap": {
237
+ "mode": "answer_snapshot",
238
+ "planned_count": 4,
239
+ "materialized_count": 0,
240
+ "missing_count": 4,
241
+ "available_projection_ids": [],
242
+ "missing_projection_ids": [
243
+ "immeuble_competency_questions",
244
+ "annuaire_coproprietes",
245
+ "baux_actifs",
246
+ "quotites_par_immeuble"
247
+ ]
248
+ },
249
+ "live_answer_view_gap": {
250
+ "mode": "live_answer_view",
251
+ "planned_count": 3,
252
+ "materialized_count": 3,
253
+ "missing_count": 0,
254
+ "missing_artifact_ids": [],
255
+ "note": "stale live_answer_view after import is expected until gcp brain artifact refresh"
256
+ }
257
+ }
@@ -0,0 +1,122 @@
1
+ # GhostCrab Projection and Graph Audit
2
+
3
+ - Backend: `sqlite`
4
+ - DB: `/tmp/immeuble-lab-starterkit-strict.sqlite`
5
+ - Workspace filter: `immeuble`
6
+ - Model: `/home/dlamotte/Documents/mindflight/ghostcrab-personal-mcp/examples/immeuble/contracts/model_contract.json`
7
+ - Answer artifacts seed: `/home/dlamotte/Documents/mindflight/ghostcrab-personal-mcp/examples/immeuble/contracts/answer_artifacts.seed.jsonl`
8
+ - Generated at: `2026-06-14T14:57:53.332Z`
9
+
10
+ ## Summary
11
+
12
+ - `quality_score`: 100
13
+ - `projection_count`: 0
14
+ - `analysis_plan_row_count`: 0
15
+ - `type_a_declared_projection_count`: 0
16
+ - `answer_snapshot_count`: 0
17
+ - `type_b_projection_result_count`: 0
18
+ - `live_answer_view_count`: 3
19
+ - `evidence_pack_count`: 0
20
+ - `registry_analysis_plan_count`: 1
21
+ - `stale_live_view_count`: 3
22
+ - `planned_projection_count`: 4
23
+ - `planned_materialized_count`: 4
24
+ - `planned_missing_count`: 0
25
+ - `planned_type_a_materialized_count`: 4
26
+ - `planned_type_a_missing_count`: 0
27
+ - `planned_analysis_plan_materialized_count`: 4
28
+ - `planned_analysis_plan_missing_count`: 0
29
+ - `planned_type_b_materialized_count`: 0
30
+ - `planned_type_b_missing_count`: 4
31
+ - `planned_answer_snapshot_materialized_count`: 0
32
+ - `planned_answer_snapshot_missing_count`: 4
33
+ - `planned_live_view_count`: 3
34
+ - `planned_live_view_materialized_count`: 3
35
+ - `planned_live_view_missing_count`: 0
36
+ - `graph_entity_count`: 131
37
+ - `graph_relation_count`: 265
38
+ - `orphan_relation_count`: 0
39
+ - `required_edge_type_gap_count`: 0
40
+ - `required_schema_record_gap_count`: 0
41
+ - `required_facet_observation_gap_count`: 0
42
+ - `allowed_projection_type_count`: 5
43
+ - `custom_projection_types`:
44
+ - `invalid_json_content_count`: 0
45
+ - `expired_projection_count`: 0
46
+ - `observed_facet_count`: 217
47
+ - `observed_prefixed_facet_count`: 175
48
+
49
+ ## Answer artifact taxonomy
50
+
51
+ | `artifact_kind` | Storage | Legacy |
52
+ |-----------------|---------|--------|
53
+ | `analysis_plan` | `projections` | Type A |
54
+ | `live_answer_view` | `mindbrain_answer_artifacts` | *(new)* |
55
+ | `answer_snapshot` | `graph_entity` (`ProjectionResult`) | Type B |
56
+ | `evidence_pack` | `mindbrain_answer_artifacts` | evidence links |
57
+
58
+ ## Personal operator commands
59
+
60
+ ```bash
61
+ gcp brain artifact list --workspace-id immeuble --kind analysis_plan
62
+ gcp brain artifact list --workspace-id immeuble --kind live_answer_view
63
+ gcp brain artifact refresh live_answer_view__<slug>
64
+ ```
65
+
66
+ ## Quality Flags
67
+
68
+ - `invalid_json_projection_ids`:
69
+ - `expired_projection_ids`:
70
+ - `custom_projection_types_not_registered`:
71
+ - `stale_live_answer_view_ids`: `live_answer_view__annuaire_coproprietes`, `live_answer_view__baux_actifs`, `live_answer_view__quotites_par_immeuble`
72
+ - `missing_required_edge_types`:
73
+ - `required_schemas_without_records`:
74
+ - `required_facets_not_observed`:
75
+ - `orphan_relation_count`: n/a
76
+
77
+ ## Graph Relation Coverage
78
+
79
+ - `ALLOCATED_TO`: 1
80
+ - `ASSIGNED_CELLAR`: 13
81
+ - `ASSIGNED_GARAGE`: 7
82
+ - `BILLS_TO`: 13
83
+ - `CONTAINS`: 69
84
+ - `DECIDED_BY`: 2
85
+ - `HAS_MEMBER`: 17
86
+ - `HOUSEHOLD_MEMBER`: 27
87
+ - `LEASES`: 5
88
+ - `MANAGES`: 2
89
+ - `MATCHED_TO`: 2
90
+ - `OCCUPIES`: 27
91
+ - `OWNS`: 17
92
+ - `PRIMARY_RESIDENCE_OF`: 13
93
+ - `RECORDS`: 3
94
+ - `RENTED_TO`: 10
95
+ - `REPRESENTS`: 2
96
+ - `REQUIRES_REVIEW`: 1
97
+ - `TRIGGERED`: 2
98
+ - `USES_COMMON`: 26
99
+ - `USES_EXCLUSIVE`: 6
100
+
101
+ ## analysis_plan rows (projections table)
102
+
103
+
104
+ ## Answer artifacts (mindbrain_answer_artifacts)
105
+
106
+ - `analysis_plan__immeuble_competency_questions` | `analysis_plan` | `active` | `open` | v1
107
+ - `live_answer_view__annuaire_coproprietes` | `live_answer_view` | `stale` | `dirty` | v1
108
+ - `live_answer_view__baux_actifs` | `live_answer_view` | `stale` | `dirty` | v1
109
+ - `live_answer_view__quotites_par_immeuble` | `live_answer_view` | `stale` | `dirty` | v1
110
+
111
+ ## Planned analysis_plan gap
112
+
113
+ - Planned: 4
114
+ - Materialized: 4
115
+ - Missing: 0
116
+
117
+ ## Planned live_answer_view gap
118
+
119
+ - Planned: 3
120
+ - Materialized: 3
121
+ - Missing: 0
122
+ - Note: stale live_answer_view after import is expected until gcp brain artifact refresh