@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.
- package/README.md +16 -8
- package/build/client/_app/immutable/chunks/{D0UIlUGZ.js → BjfgiHck.js} +1 -1
- package/build/client/_app/immutable/chunks/BjfgiHck.js.br +0 -0
- package/build/client/_app/immutable/chunks/BjfgiHck.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CR-imLox.js → app.XgS1PoV0.js} +2 -2
- package/build/client/_app/immutable/entry/app.XgS1PoV0.js.br +0 -0
- package/build/client/_app/immutable/entry/app.XgS1PoV0.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js +1 -0
- package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.br +2 -0
- package/build/client/_app/immutable/entry/start.Dtz8dQFZ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.CTEedoSY.js → 1.Cs3BmvHO.js} +1 -1
- package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.br +3 -0
- package/build/client/_app/immutable/nodes/1.Cs3BmvHO.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js → internal.js-BnebQ91H.js} +2 -2
- package/build/server/chunks/chunks/{internal.js-WOmQXGMa.js.map → internal.js-BnebQ91H.js.map} +1 -1
- package/build/server/chunks/{handler-BIDedSZq.js → handler-B8M0DnFi.js} +3 -3
- package/build/server/chunks/{handler-BIDedSZq.js.map → handler-B8M0DnFi.js.map} +1 -1
- package/build/server/chunks/{index.js-YVPJa0so.js → index.js-qz9YZN7m.js} +2 -2
- package/build/server/chunks/{index.js-YVPJa0so.js.map → index.js-qz9YZN7m.js.map} +1 -1
- package/build/server/chunks/{manifest.js-aGRKuiqF.js → manifest.js-BxEwHoCX.js} +3 -3
- package/build/server/chunks/{manifest.js-aGRKuiqF.js.map → manifest.js-BxEwHoCX.js.map} +1 -1
- package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js → 1.js-D3KAPgsF.js} +2 -2
- package/build/server/chunks/nodes/{1.js-Dhh3ErZY.js.map → 1.js-D3KAPgsF.js.map} +1 -1
- package/examples/immeuble/ACCEPTANCE.yaml +82 -0
- package/examples/immeuble/BIM_LITE.md +15 -0
- package/examples/immeuble/CHECKLIST.md +128 -0
- package/examples/immeuble/README.md +121 -0
- package/examples/immeuble/bundle/immeuble.bundle.json +22786 -0
- package/examples/immeuble/contracts/answer_artifacts.seed.jsonl +34 -0
- package/examples/immeuble/contracts/business_capabilities.seed.jsonl +25 -0
- package/examples/immeuble/contracts/consumer_contract.yaml +131 -0
- package/examples/immeuble/contracts/immeuble_structured_import_model.json +310 -0
- package/examples/immeuble/contracts/mapping_external_to_canonical.json +375 -0
- package/examples/immeuble/contracts/mapping_external_to_canonical.yaml +55 -0
- package/examples/immeuble/contracts/mapping_external_to_canonical_ws.json +65 -0
- package/examples/immeuble/contracts/model_contract.json +943 -0
- package/examples/immeuble/contracts/projection_catalog.yaml +366 -0
- package/examples/immeuble/contracts/scenarios.yaml +27 -0
- package/examples/immeuble/contracts/semantic_proposal.golden.json +1 -0
- package/examples/immeuble/contracts/source_profile.yaml +38 -0
- package/examples/immeuble/fake_data/DeltaFinding.csv +20 -0
- package/examples/immeuble/fake_data/ProjectionResult.csv +13 -0
- package/examples/immeuble/fake_data/ag_meeting.csv +4 -0
- package/examples/immeuble/fake_data/agenda_item.csv +4 -0
- package/examples/immeuble/fake_data/architect.csv +3 -0
- package/examples/immeuble/fake_data/architecture_firm.csv +2 -0
- package/examples/immeuble/fake_data/bank_account.csv +3 -0
- package/examples/immeuble/fake_data/billing_group.csv +41 -0
- package/examples/immeuble/fake_data/block.csv +10 -0
- package/examples/immeuble/fake_data/budget_line.csv +3 -0
- package/examples/immeuble/fake_data/building.csv +6 -0
- package/examples/immeuble/fake_data/cellar.csv +41 -0
- package/examples/immeuble/fake_data/change_order.csv +2 -0
- package/examples/immeuble/fake_data/charge_call.csv +58 -0
- package/examples/immeuble/fake_data/claim.csv +4 -0
- package/examples/immeuble/fake_data/coda_entry.csv +49 -0
- package/examples/immeuble/fake_data/compliance_certificate.csv +10 -0
- package/examples/immeuble/fake_data/contractor.csv +4 -0
- package/examples/immeuble/fake_data/decision.csv +5 -0
- package/examples/immeuble/fake_data/defect_reserve.csv +3 -0
- package/examples/immeuble/fake_data/household.csv +41 -0
- package/examples/immeuble/fake_data/inspection.csv +3 -0
- package/examples/immeuble/fake_data/insurance_policy.csv +4 -0
- package/examples/immeuble/fake_data/intervention.csv +13 -0
- package/examples/immeuble/fake_data/invoice.csv +3 -0
- package/examples/immeuble/fake_data/lease_contract.csv +12 -0
- package/examples/immeuble/fake_data/maintenance_ticket.csv +13 -0
- package/examples/immeuble/fake_data/meter.csv +4 -0
- package/examples/immeuble/fake_data/meter_reading.csv +19 -0
- package/examples/immeuble/fake_data/milestone.csv +3 -0
- package/examples/immeuble/fake_data/organization.csv +12 -0
- package/examples/immeuble/fake_data/parking_space.csv +8 -0
- package/examples/immeuble/fake_data/permit.csv +3 -0
- package/examples/immeuble/fake_data/person.csv +85 -0
- package/examples/immeuble/fake_data/private_garden.csv +7 -0
- package/examples/immeuble/fake_data/progress_event.csv +2 -0
- package/examples/immeuble/fake_data/quote.csv +3 -0
- package/examples/immeuble/fake_data/receipt.csv +2 -0
- package/examples/immeuble/fake_data/reminder.csv +11 -0
- package/examples/immeuble/fake_data/service_contract.csv +4 -0
- package/examples/immeuble/fake_data/shared_equipment.csv +8 -0
- package/examples/immeuble/fake_data/shared_space.csv +10 -0
- package/examples/immeuble/fake_data/unit.csv +41 -0
- package/examples/immeuble/fake_data/work_package.csv +4 -0
- package/examples/immeuble/fake_data/worksite_project.csv +3 -0
- package/examples/immeuble/gap-rules/L0-patrimoine.json +57 -0
- package/examples/immeuble/gap-rules/L1-syndic-naive.json +36 -0
- package/examples/immeuble/gap-rules/L1-syndic.json +61 -0
- package/examples/immeuble/gap-rules/L2-chantier.json +87 -0
- package/examples/immeuble/gap-rules/L2-exploitation.json +87 -0
- package/examples/immeuble/gap-rules/L2-finance.json +48 -0
- package/examples/immeuble/gap-rules/L2-maintenance.json +107 -0
- package/examples/immeuble/gap-rules/L2-syndic-filtered.json +39 -0
- package/examples/immeuble/gap-rules/L3-full.json +332 -0
- package/examples/immeuble/gap-rules/closed-world-contract.md +76 -0
- package/examples/immeuble/gap-rules/demo.json +51 -0
- package/examples/immeuble/gap-rules/expected-findings.yaml +100 -0
- package/examples/immeuble/gap-rules/gap-scenarios.yaml +79 -0
- package/examples/immeuble/gap-rules/motifs.json +38 -0
- package/examples/immeuble/gap-rules/syndic.json +40 -0
- package/examples/immeuble/import_manifest.yaml +25 -0
- package/examples/immeuble/import_ready/graph_edges_import.csv +848 -0
- package/examples/immeuble/import_ready/mfo_facets_import.csv +559 -0
- package/examples/immeuble/index.md +140 -0
- package/examples/immeuble/model/immeuble_model.json +418 -0
- package/examples/immeuble/reports/01-model.validation.json +56 -0
- package/examples/immeuble/reports/02-mapping.validation.json +9 -0
- package/examples/immeuble/reports/acceptance.validation.json +161 -0
- package/examples/immeuble/reports/consumer_contract.validation.json +162 -0
- package/examples/immeuble/reports/graph_edges.jsonl +847 -0
- package/examples/immeuble/reports/graph_nodes.jsonl +558 -0
- package/examples/immeuble/reports/hybrid-compare.json +144 -0
- package/examples/immeuble/reports/immeuble-import-scenario.json +233 -0
- package/examples/immeuble/reports/live-artifacts-refresh.validation.json +51 -0
- package/examples/immeuble/reports/pipeline_audit.json +59 -0
- package/examples/immeuble/reports/projection_audit.json +69 -0
- package/examples/immeuble/reports/projection_audit_immeuble.json +257 -0
- package/examples/immeuble/reports/projection_audit_immeuble.md +122 -0
- package/examples/immeuble/reports/projection_candidates.json +1596 -0
- package/examples/immeuble/reports/projection_candidates.md +117 -0
- package/examples/immeuble/reports/projection_model_validation.md +115 -0
- package/examples/immeuble/reports/reindex.json +4 -0
- package/examples/immeuble/reports/reset-immeuble-workspace.json +32 -0
- package/examples/immeuble/reports/schema-id-prefix-check.json +5 -0
- package/examples/immeuble/scripts/audit-immeuble-projections.mjs +254 -0
- package/examples/immeuble/scripts/build-immeuble-model.mjs +308 -0
- package/examples/immeuble/scripts/compare-immeuble-snapshots.sh +227 -0
- package/examples/immeuble/scripts/enrich-immeuble-demo.mjs +1135 -0
- package/examples/immeuble/scripts/reset-immeuble-workspace.mjs +139 -0
- package/examples/immeuble/scripts/run-immeuble-backend.sh +164 -0
- package/examples/immeuble/scripts/run-immeuble-import.mjs +232 -0
- package/examples/immeuble/scripts/run-immeuble-live-lab.sh +439 -0
- package/examples/immeuble/scripts/seed-immeuble-gap-rules.mjs +103 -0
- package/examples/immeuble/scripts/start-immeuble-demo.sh +52 -0
- package/examples/immeuble/scripts/starterkit/analysis-lenses.mjs +181 -0
- package/examples/immeuble/scripts/starterkit/analyze-projection-candidates.mjs +714 -0
- package/examples/immeuble/scripts/starterkit/audit-ghostcrab-projections.mjs +674 -0
- package/examples/immeuble/scripts/starterkit/facet-prefix.mjs +166 -0
- package/examples/immeuble/scripts/starterkit/sqlite-utils.mjs +131 -0
- package/examples/immeuble/scripts/verify-immeuble-acceptance.mjs +284 -0
- package/examples/immeuble/scripts/verify-immeuble-live-artifacts.mjs +140 -0
- package/examples/immeuble/scripts/yaml-lite.mjs +96 -0
- package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites-immo-mcp.md +161 -0
- package/examples/immeuble/sources/agent-prompts/prompts/00-prerequisites.md +39 -0
- package/examples/immeuble/sources/agent-prompts/prompts/01-discovery-and-model-proposal.md +42 -0
- package/examples/immeuble/sources/agent-prompts/prompts/02-ontology-register.md +44 -0
- package/examples/immeuble/sources/agent-prompts/prompts/03-gap-rules-design.md +44 -0
- package/examples/immeuble/sources/agent-prompts/prompts/04-document-ingest.md +40 -0
- package/examples/immeuble/sources/agent-prompts/prompts/05-graph-extraction.md +44 -0
- package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-immo-mcp.md +109 -0
- package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-test-immo-mcp3.md +30 -0
- package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare.md +63 -0
- package/examples/immeuble/sources/checklists/gap-rules-checklist.md +42 -0
- package/examples/immeuble/sources/checklists/ontology-checklist.md +54 -0
- package/examples/immeuble/sources/documents/README.md +42 -0
- package/examples/immeuble/sources/documents/annexes-caves-garages-jardins.md +8 -0
- package/examples/immeuble/sources/documents/annexes-jardins-garages.md +1 -0
- package/examples/immeuble/sources/documents/baux-erables.md +1 -0
- package/examples/immeuble/sources/documents/baux-locatifs.md +11 -0
- package/examples/immeuble/sources/documents/coda-janvier-2026.md +10 -0
- package/examples/immeuble/sources/documents/composition-menages.md +1 -0
- package/examples/immeuble/sources/documents/composition-occupants.md +18 -0
- package/examples/immeuble/sources/documents/expected-coverage.json +70 -0
- package/examples/immeuble/sources/documents/extrait-coda-janvier-2026.md +1 -0
- package/examples/immeuble/sources/documents/groupes-facturation.md +30 -0
- package/examples/immeuble/sources/documents/manifest.json +79 -0
- package/examples/immeuble/sources/documents/note-architecte-chantier-erables.md +3 -0
- package/examples/immeuble/sources/documents/permis-urbanisme-erables.md +3 -0
- package/examples/immeuble/sources/documents/procedures-operationnelles.md +3 -0
- package/examples/immeuble/sources/documents/pv-ag-budget-2026.md +1 -0
- package/examples/immeuble/sources/documents/pv-reception-reserves-erables.md +3 -0
- package/examples/immeuble/sources/documents/registre-coproprietaires.md +24 -0
- package/examples/immeuble/sources/documents/reglement-copropriete-tilleuls.md +1 -0
- package/examples/immeuble/sources/documents/statuts-erables.md +22 -0
- package/examples/immeuble/sources/documents/statuts-tilleuls.md +19 -0
- package/examples/immeuble/sources/documents/succession-jean-dupont.md +3 -0
- package/examples/immeuble/sources/documents/titre-propriete-tilleuls-a3.md +1 -0
- package/examples/immeuble/sources/documents/trous-pedagogiques.md +3 -0
- package/examples/immeuble/sources/ontology/README.md +1 -0
- package/examples/immeuble/sources/ontology/core.yaml +444 -0
- package/examples/immeuble/success-criteria.yaml +35 -0
- package/fixtures/immeuble-demo.sqlite +0 -0
- package/package.json +11 -2
- package/scripts/lib/sqlite-runtime.mjs +1 -1
- package/scripts/load-immeuble-demo.sh +179 -0
- package/scripts/seed-immeuble-projections.mjs +75 -148
- package/scripts/verify-immeuble-demo-sources.mjs +93 -0
- package/scripts/verify-immeuble-demo.mjs +69 -0
- package/build/client/_app/immutable/chunks/D0UIlUGZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/D0UIlUGZ.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CR-imLox.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CR-imLox.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DV-AjeAB.js +0 -1
- package/build/client/_app/immutable/entry/start.DV-AjeAB.js.br +0 -2
- package/build/client/_app/immutable/entry/start.DV-AjeAB.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.CTEedoSY.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.CTEedoSY.js.gz +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Validate and compare — workspace `immo-mcp`
|
|
2
|
+
|
|
3
|
+
**Phase 6 — compare MCP reconstruction vs golden reference (same SQLite, two workspaces).**
|
|
4
|
+
|
|
5
|
+
Adapted from [`06-validate-and-compare.md`](06-validate-and-compare.md).
|
|
6
|
+
|
|
7
|
+
## Two workspaces, one SQLite file
|
|
8
|
+
|
|
9
|
+
Cursor MCP (`.cursor/mcp.json`) uses a **single** database:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
/home/dlamotte/Documents/ghostcrab-personal-mcp/data/ghostcrab.sqlite
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
| Workspace | Role | How it is populated |
|
|
16
|
+
|-----------|------|---------------------|
|
|
17
|
+
| **`immo-mcp`** | **Process** — what GhostCrab MCP built from the 8 corpus docs (phases 2–5) | Agent + CLI on this workspace only |
|
|
18
|
+
| **`immeuble`** | **Reference** — expected golden snapshot | Load `bundle/immeuble.bundle.json` **once** for comparison (never into `immo-mcp`) |
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart TB
|
|
22
|
+
subgraph sameDb ["ghostcrab.sqlite (MCP --db)"]
|
|
23
|
+
ImmoMCP["workspace immo-mcp\n=MCP lab result"]
|
|
24
|
+
Golden["workspace immeuble\n=bundle.json golden"]
|
|
25
|
+
end
|
|
26
|
+
Corpus[corpus 8 md] --> ImmoMCP
|
|
27
|
+
Bundle[bundle/immeuble.bundle.json] --> Golden
|
|
28
|
+
ImmoMCP --> Compare[Phase 6 diff]
|
|
29
|
+
Golden --> Compare
|
|
30
|
+
Criteria[contracts/success-criteria.yaml] --> Compare
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Pre-step — load golden (human or agent, before compare)
|
|
34
|
+
|
|
35
|
+
Same `--db` as MCP. **Do not** change SQLite file between workspaces.
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
export GHOSTCRAB_SQLITE_PATH="/home/dlamotte/Documents/ghostcrab-personal-mcp/data/ghostcrab.sqlite"
|
|
39
|
+
|
|
40
|
+
node bin/gcp.mjs load examples/immeuble/bundle/immeuble.bundle.json \
|
|
41
|
+
--workspace immeuble \
|
|
42
|
+
--reindex all \
|
|
43
|
+
--db "$GHOSTCRAB_SQLITE_PATH"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Tools
|
|
47
|
+
|
|
48
|
+
- `ghostcrab_graph_diagnostics` (workspace_id per side)
|
|
49
|
+
- `ghostcrab_graph_search` / `ghostcrab_graph_gap_rules`
|
|
50
|
+
- `ghostcrab_count` / `ghostcrab_combined_search` where useful
|
|
51
|
+
- Optional: `ghostcrab_tool_search` → extended graph tools
|
|
52
|
+
|
|
53
|
+
Pass `workspace_id` explicitly on every call (`immo-mcp` vs `immeuble`).
|
|
54
|
+
|
|
55
|
+
## Agent prompt (copy-paste)
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
Phase 6 — compare MCP lab result vs golden (same SQLite, two workspaces).
|
|
59
|
+
|
|
60
|
+
SQLite: /home/dlamotte/Documents/ghostcrab-personal-mcp/data/ghostcrab.sqlite
|
|
61
|
+
Process workspace: immo-mcp (what we built from corpus)
|
|
62
|
+
Reference workspace: immeuble (bundle.json golden — load if missing)
|
|
63
|
+
|
|
64
|
+
1. Confirm `immeuble` is loaded. If graph_entity count is 0, stop and ask human to run bundle load (see 06-validate-and-compare-immo-mcp.md).
|
|
65
|
+
|
|
66
|
+
2. On immo-mcp — run checks from `success-criteria.yaml`:
|
|
67
|
+
- entity counts (buildings=2, units=13, cellars=13, lease_contracts=5, coda_entries=3, …)
|
|
68
|
+
- ghostcrab_graph_search query "appartement" (≥13)
|
|
69
|
+
- ghostcrab_graph_diagnostics ontology immeuble::core → missing_required_relations ≤ 0
|
|
70
|
+
|
|
71
|
+
3. On immeuble — same counts (sanity: golden should match criteria).
|
|
72
|
+
|
|
73
|
+
4. Comparison table — immo-mcp vs immeuble vs success-criteria thresholds:
|
|
74
|
+
| Metric | criteria | immo-mcp | immeuble | immo-mcp OK? |
|
|
75
|
+
|
|
76
|
+
5. Drill-down max 3 gaps on immo-mcp (traverse / graph_search).
|
|
77
|
+
|
|
78
|
+
Deliverable: markdown report with pass/fail on immo-mcp; immeuble is the expected column, not the process under test.
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Report template
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Immeuble MCP lab — comparison report (immo-mcp)
|
|
85
|
+
|
|
86
|
+
## Summary
|
|
87
|
+
- Status: pass | fail
|
|
88
|
+
- SQLite: ghostcrab.sqlite (Cursor MCP --db)
|
|
89
|
+
- Process workspace: immo-mcp
|
|
90
|
+
- Reference workspace: immeuble (bundle golden)
|
|
91
|
+
|
|
92
|
+
## Entity counts
|
|
93
|
+
| type | criteria | immo-mcp | immeuble | immo-mcp ok |
|
|
94
|
+
|
|
95
|
+
## Relation / search / diagnostics
|
|
96
|
+
| check | criteria | immo-mcp | immeuble | immo-mcp ok |
|
|
97
|
+
|
|
98
|
+
## Gaps on immo-mcp (max 3)
|
|
99
|
+
1. …
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Rules
|
|
103
|
+
|
|
104
|
+
- **Never** load `bundle.json` into workspace `immo-mcp`.
|
|
105
|
+
- `success-criteria.yaml` thresholds apply to **`immo-mcp`**; `immeuble` is the structural reference column.
|
|
106
|
+
|
|
107
|
+
## Done
|
|
108
|
+
|
|
109
|
+
Lab complete when `immo-mcp` meets `success-criteria.yaml` thresholds (or gaps documented with remediation).
|
package/examples/immeuble/sources/agent-prompts/prompts/06-validate-and-compare-test-immo-mcp3.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Validate and compare — workspace `test-immo-mcp3`
|
|
2
|
+
|
|
3
|
+
**Phase 6 — compare MCP lab retry vs golden reference (same SQLite, two workspaces).**
|
|
4
|
+
|
|
5
|
+
Baseline report: `../reports/06-compare-test-immo-mcp2.md`.
|
|
6
|
+
|
|
7
|
+
## Workspaces
|
|
8
|
+
|
|
9
|
+
| Workspace | Role |
|
|
10
|
+
|-----------|------|
|
|
11
|
+
| **`test-immo-mcp3`** | Process — 9 corpus docs, live extract, no bundle |
|
|
12
|
+
| **`immeuble`** | Reference — golden bundle |
|
|
13
|
+
|
|
14
|
+
## Agent prompt (copy-paste)
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Phase 6 — compare test-immo-mcp3 vs immeuble vs success-criteria.yaml.
|
|
18
|
+
|
|
19
|
+
SQLite: /home/dlamotte/Documents/ghostcrab-personal-mcp/data/ghostcrab.sqlite
|
|
20
|
+
Process: test-immo-mcp3 (9 docs including groupes-facturation.md)
|
|
21
|
+
Reference: immeuble
|
|
22
|
+
|
|
23
|
+
Checks:
|
|
24
|
+
- Entity counts vs success-criteria.yaml core + golden_stretch (billing_group, shared_space)
|
|
25
|
+
- ghostcrab_graph_search "appartement" ≥ 13
|
|
26
|
+
- ghostcrab_graph_diagnostics ontology test-immo-mcp3::core → missing_required_relations ≤ 0
|
|
27
|
+
- Document gaps: billing_group, shared_space, edge vocabulary
|
|
28
|
+
|
|
29
|
+
Deliverable: reports/06-compare-test-immo-mcp3.md
|
|
30
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Validate and compare
|
|
2
|
+
|
|
3
|
+
**Phase 6 — compare LLM workspace against reference (controlled parity).**
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
- `ghostcrab_graph_diagnostics`
|
|
8
|
+
- `ghostcrab_graph_search`
|
|
9
|
+
- `ghostcrab_traverse`
|
|
10
|
+
- `ghostcrab_count` (if available)
|
|
11
|
+
|
|
12
|
+
## Agent prompt
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Compare le workspace `immeuble` contre les seuils dans `examples/immeuble/success-criteria.yaml`
|
|
16
|
+
et la référence `examples/immeuble/bundle/immeuble.bundle.json` (workspace immeuble).
|
|
17
|
+
|
|
18
|
+
Checks :
|
|
19
|
+
1. Entity counts par type (buildings=2, units=13, cellars=13, lease_contracts=5, …)
|
|
20
|
+
2. Relation counts par edge_type (contains, owns, occupies, leases, assigned_cellar, …)
|
|
21
|
+
3. Quotités = 1000 par immeuble
|
|
22
|
+
4. graph_search : appartement (≥13), Dupont, bail, CODA, jardin
|
|
23
|
+
5. ghostcrab_graph_diagnostics avec `examples/immeuble/gap-rules/L2-syndic-filtered.json`
|
|
24
|
+
(adapter workspace_id à `immeuble`) → missing_required_relations ≤ 0 si graphe complet
|
|
25
|
+
|
|
26
|
+
Rapport markdown :
|
|
27
|
+
| Check | Expected | Actual | Status (OK/GAP/FP) |
|
|
28
|
+
Drill-down traverse sur max 3 écarts.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Report template
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# Immeuble MCP lab — comparison report
|
|
35
|
+
|
|
36
|
+
## Summary
|
|
37
|
+
- Status: pass | fail
|
|
38
|
+
- Workspace: immeuble
|
|
39
|
+
- Golden ref: immeuble
|
|
40
|
+
|
|
41
|
+
## Entity counts
|
|
42
|
+
| type | expected | actual | ok |
|
|
43
|
+
|
|
44
|
+
## Relation counts
|
|
45
|
+
| edge | expected | actual | ok |
|
|
46
|
+
|
|
47
|
+
## Diagnostics (L2)
|
|
48
|
+
- missing_required_relations: …
|
|
49
|
+
|
|
50
|
+
## Gaps (max 3)
|
|
51
|
+
1. …
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Automated alternative
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node scripts/import-immeuble-demo-llm.mjs --mode mock --reset
|
|
58
|
+
# → reports/immeuble-demo-llm/<timestamp>/report.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Done
|
|
62
|
+
|
|
63
|
+
Lab complete when success-criteria thresholds pass or gaps are documented with remediation plan.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Gap rules checklist — MCP lab reference
|
|
2
|
+
|
|
3
|
+
Progressive closed-world rules the agent should produce. Compare imports against these packs.
|
|
4
|
+
|
|
5
|
+
## L0 — Patrimoine
|
|
6
|
+
|
|
7
|
+
File: [`../gap-rules/L0-patrimoine.json`](../gap-rules/L0-patrimoine.json)
|
|
8
|
+
|
|
9
|
+
| rule_id | Check |
|
|
10
|
+
|---------|-------|
|
|
11
|
+
| unit-one-cellar | each unit → exactly one assigned_cellar |
|
|
12
|
+
| unit-in-building | each unit → inbound contains from building/block |
|
|
13
|
+
| garage-at-most-one-unit | parking not shared across units |
|
|
14
|
+
|
|
15
|
+
## L1 — Syndic naïf (pedagogy)
|
|
16
|
+
|
|
17
|
+
File: [`../gap-rules/L1-syndic-naive.json`](../gap-rules/L1-syndic-naive.json)
|
|
18
|
+
|
|
19
|
+
Unfiltered `unit-has-owner` → false positive on **Érables Appartement A4** (`vacant_works`).
|
|
20
|
+
|
|
21
|
+
## L2 — Syndic filtré (target for MCP lab + reference)
|
|
22
|
+
|
|
23
|
+
Files:
|
|
24
|
+
|
|
25
|
+
- [`../gap-rules/L2-syndic-filtered.json`](../gap-rules/L2-syndic-filtered.json)
|
|
26
|
+
- [`../../gap-rules/syndic.json`](../../gap-rules/syndic.json) (syndic L2 for workspace `immeuble`)
|
|
27
|
+
|
|
28
|
+
| rule_id | Filter |
|
|
29
|
+
|---------|--------|
|
|
30
|
+
| unit-has-owner | usage_status ∉ {vacant, vacant_works} |
|
|
31
|
+
| occupied-unit-has-occupant | same |
|
|
32
|
+
| tenant-occupied-has-lease | usage_status ∈ {tenant_occupied, owner_abroad_tenant} |
|
|
33
|
+
|
|
34
|
+
## L3 — Finance + motifs
|
|
35
|
+
|
|
36
|
+
File: [`../gap-rules/L3-full.json`](../gap-rules/L3-full.json) + [`motifs.json`](../gap-rules/motifs.json)
|
|
37
|
+
|
|
38
|
+
Optional for MCP lab; required for training module B3.
|
|
39
|
+
|
|
40
|
+
## Axioms (human-readable)
|
|
41
|
+
|
|
42
|
+
See [`../gap-rules/closed-world-contract.md`](../gap-rules/closed-world-contract.md).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Ontology checklist — MCP lab reference
|
|
2
|
+
|
|
3
|
+
Read-only target for agent validation. Canonical source: [`ontologies/immeuble/core.yaml`](../../../ontologies/immeuble/core.yaml).
|
|
4
|
+
|
|
5
|
+
## Entity types (minimum)
|
|
6
|
+
|
|
7
|
+
| Type | Expected count (approx.) | Notes |
|
|
8
|
+
|------|--------------------------|-------|
|
|
9
|
+
| building | 2 | Tilleuls, Érables |
|
|
10
|
+
| block | 3 | 1 + 2 |
|
|
11
|
+
| unit | 13 | 5 + 8 |
|
|
12
|
+
| person | ~30 | owners, occupants, tenants, children |
|
|
13
|
+
| household | 13 | one per unit |
|
|
14
|
+
| lease_contract | 5 | tenant units |
|
|
15
|
+
| cellar | 13 | one per unit |
|
|
16
|
+
| parking_space | 7 | garages assignés |
|
|
17
|
+
| private_garden | 6 | RDC units |
|
|
18
|
+
| coda_entry | 3 | payment cases |
|
|
19
|
+
| billing_group | 2+ | per building |
|
|
20
|
+
| organization | 2+ | syndic, landlords |
|
|
21
|
+
|
|
22
|
+
## Edge types (minimum)
|
|
23
|
+
|
|
24
|
+
| Edge | Role |
|
|
25
|
+
|------|------|
|
|
26
|
+
| contains | building → block → unit |
|
|
27
|
+
| owns | person → unit |
|
|
28
|
+
| occupies | person → unit |
|
|
29
|
+
| household_member | person → household |
|
|
30
|
+
| primary_residence_of | household → unit |
|
|
31
|
+
| leases | lease_contract → unit |
|
|
32
|
+
| rented_to | person → lease_contract |
|
|
33
|
+
| assigned_cellar | unit → cellar |
|
|
34
|
+
| assigned_garage | unit → parking_space |
|
|
35
|
+
| uses_exclusive | unit → private_garden |
|
|
36
|
+
| uses_common | unit → shared space |
|
|
37
|
+
| matched_to | coda_entry → payment |
|
|
38
|
+
| allocated_to | payment → billing_group |
|
|
39
|
+
| represents | person → organization (syndic staff) |
|
|
40
|
+
|
|
41
|
+
## Facet dimensions (documents)
|
|
42
|
+
|
|
43
|
+
| Namespace | Dimension | Example values |
|
|
44
|
+
|-----------|-----------|----------------|
|
|
45
|
+
| source | document_type | statuts_copropriete, bail, pv_ag, extrait_coda, … |
|
|
46
|
+
| domain | building | Résidence Les Tilleuls, Résidence Les Érables |
|
|
47
|
+
| domain | unit | Tilleuls Appartement A1, … |
|
|
48
|
+
| domain | role | coproprietaire, locataire, occupant |
|
|
49
|
+
| domain | scenario | scenario:tenant-lease, … |
|
|
50
|
+
| finance | payment_status | complete, partial, review |
|
|
51
|
+
|
|
52
|
+
## Competency questions
|
|
53
|
+
|
|
54
|
+
See [`../reference/scenarios.yaml`](../reference/scenarios.yaml).
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# MCP lab corpus
|
|
2
|
+
|
|
3
|
+
Raw-ish source documents for reconstructing the syndic demo via the MCP agent workflow.
|
|
4
|
+
|
|
5
|
+
Separate from the bundled golden corpus (`../bundle/immeuble.bundle.json`).
|
|
6
|
+
|
|
7
|
+
**Agent entry:** [`../README.md`](../README.md) → [`../prompts/00-prerequisites.md`](../prompts/00-prerequisites.md)
|
|
8
|
+
|
|
9
|
+
## Import target
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
export GHOSTCRAB_SQLITE_PATH="$PWD/data/immeuble.sqlite"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Scripted flow (mock CI)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/import-immeuble.mjs --mode mock --reset
|
|
19
|
+
node scripts/import-immeuble.mjs --reset --limit-docs 1 --debug-prompts
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Manual equivalent
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node bin/gcp.mjs brain ontology compile \
|
|
26
|
+
--workspace-id immeuble \
|
|
27
|
+
--ontology-id immeuble::core \
|
|
28
|
+
--input ontologies/immeuble/core.yaml \
|
|
29
|
+
--import-db \
|
|
30
|
+
--db "$GHOSTCRAB_SQLITE_PATH"
|
|
31
|
+
|
|
32
|
+
while read -r doc_id filename; do
|
|
33
|
+
node bin/gcp.mjs brain document --force document-profile-enqueue \
|
|
34
|
+
--content-file "examples/immeuble/sources/documents/$filename" \
|
|
35
|
+
--workspace-id immeuble \
|
|
36
|
+
--collection-id immeuble::docs \
|
|
37
|
+
--doc-id "$doc_id" \
|
|
38
|
+
--language fr
|
|
39
|
+
done < <(node -e 'const m=require("./examples/immeuble/sources/documents/manifest.json"); for (const f of m.files) console.log(f.doc_id, f.filename)')
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Coverage expectations: `expected-coverage.json` and [`../success-criteria.yaml`](../success-criteria.yaml).
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Inventaire fictif des annexes et parties communes
|
|
2
|
+
|
|
3
|
+
Inventaire fictif des caves, garages, jardins privatifs et parties communes.
|
|
4
|
+
|
|
5
|
+
Tous les appartements des residences Les Tilleuls et Les Erables disposent d'une cave identifiee au meme lot.
|
|
6
|
+
Garages attribues: Tilleuls A1, Tilleuls A3, Tilleuls A5, Erables A1, Erables A4, Erables B1, Erables B4.
|
|
7
|
+
Jardins privatifs a usage exclusif: tous les lots du rez-de-chaussee, soit Tilleuls A1, Tilleuls A2, Erables A1, Erables A2, Erables B1 et Erables B2.
|
|
8
|
+
Parties communes: buanderie, machines a laver, jardins communs, locaux techniques. Les menages utilisent les parties communes de leur immeuble.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Les appartements du rez-de-chaussée disposent d'un jardin privatif à usage exclusif. Chaque appartement dispose d'une cave. Les garages sont attachés à certains lots selon l'acte de base.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Les lots Érables A2, B2, B3 et B4 sont occupés par des locataires sous bail écrit. Les baux relient le bailleur, le ménage locataire, le lot, la date de début et le loyer mensuel.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Synthese fictive des baux locatifs
|
|
2
|
+
|
|
3
|
+
Synthese fictive fournie au syndic pour identifier les lots occupes par locataires.
|
|
4
|
+
|
|
5
|
+
| Bail | Lot | Bailleur | Menage locataire | Date debut | Loyer mensuel |
|
|
6
|
+
| --- | --- | --- | --- | --- | --- |
|
|
7
|
+
| Bail Tilleuls A4 - Karim Benali | Tilleuls Appartement A4 | Immo Invest SRL | Menage Karim Benali | 2025-09-01 | 835 EUR |
|
|
8
|
+
| Bail Erables A2 - Famille Legrand | Erables Appartement A2 | Patrimoine Nord SRL | Menage Legrand | 2024-07-01 | 1120 EUR |
|
|
9
|
+
| Bail Erables B2 - Famille El Idrissi | Erables Appartement B2 | Immo Invest SRL | Menage El Idrissi | 2025-02-01 | 1040 EUR |
|
|
10
|
+
| Bail Erables B3 - Famille Klein | Erables Appartement B3 | Patrimoine Nord SRL | Menage Klein | 2023-11-01 | 990 EUR |
|
|
11
|
+
| Bail Erables B4 - Colocation | Erables Appartement B4 | Marta Rossi | Menage colocation Laurent-Vermeulen | 2026-01-01 | 1250 EUR |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Extrait CODA fictif janvier 2026
|
|
2
|
+
|
|
3
|
+
Extrait CODA fictif pour les comptes ACP.
|
|
4
|
+
|
|
5
|
+
Compte CODA ACP Tilleuls: IBAN BE12000000000001.
|
|
6
|
+
05/01/2026: virement 1847,23 EUR. Communication: CP LOT A3 CHGE JANV. Statut attendu: paiement complet, a matcher avec Appel charges Tilleuls janvier 2026 et Groupe facturation Tilleuls A3.
|
|
7
|
+
08/01/2026: virement 650,00 EUR. Communication: VIR INCONNU. Statut attendu: revue manuelle, rapprochement possible avec Appel charges Tilleuls fevrier 2026.
|
|
8
|
+
|
|
9
|
+
Compte CODA ACP Erables: IBAN BE12000000000002.
|
|
10
|
+
07/01/2026: virement 500,00 EUR. Communication: LOT B2 PARTIEL. Statut attendu: paiement partiel, a rapprocher de l'appel Erables janvier 2026 et du groupe de facturation Erables B2 bailleur.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Les Tilleuls A1 sont occupés par Henri et Madeleine Dupont. Les Tilleuls A3 sont occupés par Nicolas, Pauline, Lina et Tom Dupont. Les Érables B2 sont loués à la famille El Idrissi.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Composition fictive des occupants
|
|
2
|
+
|
|
3
|
+
Etat fictif des occupants communique au syndic pour la repartition operationnelle des avis.
|
|
4
|
+
|
|
5
|
+
Tilleuls Appartement A1: Henri Dupont et Madeleine Dupont, couple senior, occupants proprietaires au rez-de-chaussee.
|
|
6
|
+
Tilleuls Appartement A2: Sofia Martin, personne seule, occupante proprietaire.
|
|
7
|
+
Tilleuls Appartement A3: Nicolas Dupont, Pauline Dupont, Lina Dupont et Tom Dupont; Nicolas est le fils du couple Dupont du lot A1.
|
|
8
|
+
Tilleuls Appartement A4: Karim Benali, locataire personne seule.
|
|
9
|
+
Tilleuls Appartement A5: Lena Peeters, Noah De Smet et Mila De Smet, menage avec enfant.
|
|
10
|
+
|
|
11
|
+
Erables Appartement A1: Alice Bernard, occupante proprietaire.
|
|
12
|
+
Erables Appartement A2: Marc Legrand, Eva Legrand et Nora Legrand, menage locataire.
|
|
13
|
+
Erables Appartement A3: Victor Moreau, occupant proprietaire.
|
|
14
|
+
Erables Appartement A4: lot vacant pour travaux, proprietaire Claire Dubois.
|
|
15
|
+
Erables Appartement B1: Olivier Renard et Julie Renard, situation succession avec usufruit et nue-propriete.
|
|
16
|
+
Erables Appartement B2: Fatima El Idrissi, Samir El Idrissi, Yanis El Idrissi et Amel El Idrissi, menage locataire.
|
|
17
|
+
Erables Appartement B3: Thomas Klein, Sarah Klein et Eliott Klein, menage locataire.
|
|
18
|
+
Erables Appartement B4: Camille Laurent et Jonas Vermeulen, colocation sous bail; proprietaire Marta Rossi a l'etranger.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"workspace_id": "immeuble",
|
|
3
|
+
"golden_workspace_id": "immeuble",
|
|
4
|
+
"buildings": [
|
|
5
|
+
{
|
|
6
|
+
"name": "Résidence Les Tilleuls",
|
|
7
|
+
"blocks": 1,
|
|
8
|
+
"units": 5,
|
|
9
|
+
"quota_total": 1000
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "Résidence Les Érables",
|
|
13
|
+
"blocks": 2,
|
|
14
|
+
"units": 8,
|
|
15
|
+
"quota_total": 1000
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"counts": {
|
|
19
|
+
"buildings": 2,
|
|
20
|
+
"blocks": 3,
|
|
21
|
+
"units": 13,
|
|
22
|
+
"households": 13,
|
|
23
|
+
"cellars": 13,
|
|
24
|
+
"private_gardens": 6,
|
|
25
|
+
"lease_contracts": 5,
|
|
26
|
+
"coda_entries": 3,
|
|
27
|
+
"billing_group": 13,
|
|
28
|
+
"shared_space": 6,
|
|
29
|
+
"shared_equipment": 4
|
|
30
|
+
},
|
|
31
|
+
"unit_checks": {
|
|
32
|
+
"all_units_have_cellar": true,
|
|
33
|
+
"ground_floor_units_have_private_garden": true
|
|
34
|
+
},
|
|
35
|
+
"relation_edges": [
|
|
36
|
+
"contains",
|
|
37
|
+
"owns",
|
|
38
|
+
"occupies",
|
|
39
|
+
"household_member",
|
|
40
|
+
"primary_residence_of",
|
|
41
|
+
"leases",
|
|
42
|
+
"rented_to",
|
|
43
|
+
"assigned_cellar",
|
|
44
|
+
"assigned_garage",
|
|
45
|
+
"uses_exclusive",
|
|
46
|
+
"uses_common",
|
|
47
|
+
"matched_to",
|
|
48
|
+
"allocated_to",
|
|
49
|
+
"requires_review"
|
|
50
|
+
],
|
|
51
|
+
"search_terms": [
|
|
52
|
+
"appartement",
|
|
53
|
+
"Dupont",
|
|
54
|
+
"bail",
|
|
55
|
+
"CODA",
|
|
56
|
+
"jardin"
|
|
57
|
+
],
|
|
58
|
+
"document_facets": {
|
|
59
|
+
"source.document_type": [
|
|
60
|
+
"statuts_copropriete",
|
|
61
|
+
"registre_coproprietaires",
|
|
62
|
+
"composition_menage",
|
|
63
|
+
"bail",
|
|
64
|
+
"pv_ag",
|
|
65
|
+
"extrait_coda",
|
|
66
|
+
"annexe_lot",
|
|
67
|
+
"registre_facturation"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
05/01/2026: virement 1847,23 EUR avec communication CP LOT A3 CHGE JANV. 07/01/2026: virement 500,00 EUR LOT B2 PARTIEL. 08/01/2026: virement 650,00 EUR VIR INCONNU.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Registre fictif des groupes de facturation
|
|
2
|
+
|
|
3
|
+
Registre tenu par le syndic pour les appels de charges des ACP Les Tilleuls et Les Erables.
|
|
4
|
+
|
|
5
|
+
Chaque lot possede un **groupe de facturation** unique. Le syndic emet les appels de charges vers ce groupe ; la relation **`bills_to`** lie le groupe au lot concerne et indique qui recoit la facture (coproprietaires, bailleur, mandataire, etc.).
|
|
6
|
+
|
|
7
|
+
## Residence Les Tilleuls
|
|
8
|
+
|
|
9
|
+
| Lot | Groupe facturation | Destinataire appels | Mode repartition | Relation |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| Tilleuls Appartement A1 | Groupe facturation Tilleuls A1 | Henri Dupont ; Madeleine Dupont | 50% / 50% | bills_to → lot A1 |
|
|
12
|
+
| Tilleuls Appartement A2 | Groupe facturation Tilleuls A2 | Sofia Martin | 100% | bills_to → lot A2 |
|
|
13
|
+
| Tilleuls Appartement A3 | Groupe facturation Tilleuls A3 | Nicolas Dupont ; Pauline Dupont | 50% / 50% | bills_to → lot A3 |
|
|
14
|
+
| Tilleuls Appartement A4 | Groupe facturation Tilleuls A4 bailleur | Immo Invest SRL (bailleur) | bailleur | bills_to → lot A4 |
|
|
15
|
+
| Tilleuls Appartement A5 | Groupe facturation Tilleuls A5 | Lena Peeters ; Noah De Smet | 50% / 50% | bills_to → lot A5 |
|
|
16
|
+
|
|
17
|
+
## Residence Les Erables
|
|
18
|
+
|
|
19
|
+
| Lot | Groupe facturation | Destinataire appels | Mode repartition | Relation |
|
|
20
|
+
| --- | --- | --- | --- | --- |
|
|
21
|
+
| Erables Appartement A1 | Groupe facturation Erables A1 | Alice Bernard | 100% | bills_to → lot A1 |
|
|
22
|
+
| Erables Appartement A2 | Groupe facturation Erables A2 bailleur | Patrimoine Nord SRL (bailleur) | bailleur | bills_to → lot A2 |
|
|
23
|
+
| Erables Appartement A3 | Groupe facturation Erables A3 | Victor Moreau | 100% | bills_to → lot A3 |
|
|
24
|
+
| Erables Appartement A4 | Groupe facturation Erables A4 travaux | Claire Dubois (travaux en cours) | travaux | bills_to → lot A4 |
|
|
25
|
+
| Erables Appartement B1 | Groupe facturation Erables B1 succession | Olivier Renard (usufruit) ; Julie Renard (nue-propriete) | usufruit / nue-propriete | bills_to → lot B1 |
|
|
26
|
+
| Erables Appartement B2 | Groupe facturation Erables B2 bailleur | Immo Invest SRL (bailleur) | bailleur | bills_to → lot B2 |
|
|
27
|
+
| Erables Appartement B3 | Groupe facturation Erables B3 bailleur | Patrimoine Nord SRL (bailleur) | bailleur | bills_to → lot B3 |
|
|
28
|
+
| Erables Appartement B4 | Groupe facturation Erables B4 mandataire | Marta Rossi (mandataire pour proprietaire a l'etranger) | mandataire | bills_to → lot B4 |
|
|
29
|
+
|
|
30
|
+
Note syndic : les appels mensuels CODA et les quittances automatiques referent au groupe de facturation du lot concerne.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"workspace_id": "immeuble",
|
|
3
|
+
"collection_id": "immeuble::docs",
|
|
4
|
+
"ontology_id": "immeuble::core",
|
|
5
|
+
"language": "fr",
|
|
6
|
+
"source_kind": "fictional_realistic_belgian_syndic",
|
|
7
|
+
"generated_from": "examples/immeuble/scripts/build-immeuble-model.mjs",
|
|
8
|
+
"files": [
|
|
9
|
+
{
|
|
10
|
+
"doc_id": 1,
|
|
11
|
+
"filename": "statuts-tilleuls.md",
|
|
12
|
+
"title": "Statuts fictifs - ACP Residence Les Tilleuls",
|
|
13
|
+
"document_type": "statuts_copropriete"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"doc_id": 2,
|
|
17
|
+
"filename": "statuts-erables.md",
|
|
18
|
+
"title": "Statuts fictifs - ACP Residence Les Erables",
|
|
19
|
+
"document_type": "statuts_copropriete"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"doc_id": 3,
|
|
23
|
+
"filename": "registre-coproprietaires.md",
|
|
24
|
+
"title": "Registre fictif des coproprietaires",
|
|
25
|
+
"document_type": "registre_coproprietaires"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"doc_id": 4,
|
|
29
|
+
"filename": "composition-occupants.md",
|
|
30
|
+
"title": "Composition fictive des occupants",
|
|
31
|
+
"document_type": "composition_menage"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"doc_id": 5,
|
|
35
|
+
"filename": "baux-locatifs.md",
|
|
36
|
+
"title": "Synthese fictive des baux locatifs",
|
|
37
|
+
"document_type": "bail"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"doc_id": 6,
|
|
41
|
+
"filename": "pv-ag-budget-2026.md",
|
|
42
|
+
"title": "Proces-verbal fictif AG budget 2026",
|
|
43
|
+
"document_type": "pv_ag"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"doc_id": 7,
|
|
47
|
+
"filename": "coda-janvier-2026.md",
|
|
48
|
+
"title": "Extrait CODA fictif janvier 2026",
|
|
49
|
+
"document_type": "extrait_coda"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"doc_id": 8,
|
|
53
|
+
"filename": "annexes-caves-garages-jardins.md",
|
|
54
|
+
"title": "Inventaire fictif des annexes et parties communes",
|
|
55
|
+
"document_type": "annexe_lot"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"doc_id": 9,
|
|
59
|
+
"filename": "groupes-facturation.md",
|
|
60
|
+
"title": "Registre fictif des groupes de facturation",
|
|
61
|
+
"document_type": "registre_facturation"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"filename": "note-architecte-chantier-erables.md",
|
|
65
|
+
"title": "Note architecte chantier Érables",
|
|
66
|
+
"domain": "construction_lite"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"filename": "permis-urbanisme-erables.md",
|
|
70
|
+
"title": "Permis urbanisme Érables",
|
|
71
|
+
"domain": "construction_lite"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"filename": "pv-reception-reserves-erables.md",
|
|
75
|
+
"title": "PV réception réserves Érables",
|
|
76
|
+
"domain": "construction_lite"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
L'assemblée générale de l'ACP Résidence Les Tilleuls du 12 décembre 2025 approuve le budget 2026 et les appels de charges mensuels.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Registre fictif des coproprietaires
|
|
2
|
+
|
|
3
|
+
Registre fictif tenu par le syndic pour les ACP Les Tilleuls et Les Erables.
|
|
4
|
+
|
|
5
|
+
Residence Les Tilleuls:
|
|
6
|
+
| Lot | Titulaire(s) | Droit | Quote-part |
|
|
7
|
+
| --- | --- | --- | --- |
|
|
8
|
+
| Tilleuls Appartement A1 | Henri Dupont; Madeleine Dupont | pleine_propriete | 50%; 50% |
|
|
9
|
+
| Tilleuls Appartement A2 | Sofia Martin | pleine_propriete | 100% |
|
|
10
|
+
| Tilleuls Appartement A3 | Nicolas Dupont; Pauline Dupont | pleine_propriete | 50%; 50% |
|
|
11
|
+
| Tilleuls Appartement A4 | Immo Invest SRL | pleine_propriete | 100% |
|
|
12
|
+
| Tilleuls Appartement A5 | Lena Peeters; Noah De Smet | pleine_propriete | 50%; 50% |
|
|
13
|
+
|
|
14
|
+
Residence Les Erables:
|
|
15
|
+
| Lot | Titulaire(s) | Droit | Quote-part |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| Erables Appartement A1 | Alice Bernard | pleine_propriete | 100% |
|
|
18
|
+
| Erables Appartement A2 | Patrimoine Nord SRL | pleine_propriete | 100% |
|
|
19
|
+
| Erables Appartement A3 | Victor Moreau | pleine_propriete | 100% |
|
|
20
|
+
| Erables Appartement A4 | Claire Dubois | pleine_propriete | 100% |
|
|
21
|
+
| Erables Appartement B1 | Olivier Renard; Julie Renard | usufruit; nue_propriete | 100%; 100% |
|
|
22
|
+
| Erables Appartement B2 | Immo Invest SRL | pleine_propriete | 100% |
|
|
23
|
+
| Erables Appartement B3 | Patrimoine Nord SRL | pleine_propriete | 100% |
|
|
24
|
+
| Erables Appartement B4 | Marta Rossi | pleine_propriete | 100% |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
La résidence Les Tilleuls comprend un bloc A, cinq appartements, une buanderie, un jardin commun et des jardins privatifs au rez-de-chaussée. Chaque lot possède une cave; certains lots disposent d'un garage.
|