This repository was archived by the owner on Jun 6, 2026. It is now read-only.
Commit e18c8c0
authored
Part 2 of 4 for issue #40. Depends on PR 1/4 (#47, now merged). Adds the
France corridor: 2 French sources, 2 French institutions, and the LU–FR
corridor scenario.
---
## Context
France is the largest frontalier corridor for Luxembourg — approximately
120,000 workers cross the border daily. This PR encodes the sources and
institutions a Luxembourg-connected family with French ties would
interact with, and wires them into a corridor scenario that references
the cross-border conditions and EU regulations from PR 1.
---
## Files added
### `data/sources/fr/service-public-deces.yaml`
**URL verified:**
https://www.service-public.fr/particuliers/vosdroits/F16507 — loads
correctly, title confirmed as "Un proche est décédé". Last verified on
service-public.fr: 01 janvier 2026.
- `source_type: government_portal`
- `verification_status: source-checked`
- Covers the full French bereavement journey: funeral organisation,
institution notifications, succession steps, and time-sensitive
obligations
---
### `data/sources/fr/info-retraite-reversion.yaml`
**URL verified:** https://www.info-retraite.fr — loads correctly. GIP
Union Retraite official portal.
- `source_type: institutional_page`
- `verification_status: source-checked`
- Key research finding documented in notes: if the survivor pension
(pension de réversion) is filed within 1 year of death, the start date
is the first day of the month after death. A single online request
covers all French base and complementary schemes.
---
### `data/institutions/fr/carsat.yaml`
**URL verified:** https://www.carsat-alsacemoselle.fr — loads correctly.
- `id: institution:fr:carsat-alsace-moselle` — deliberately the
Alsace-Moselle CARSAT, not a generic CARSAT record, because this CARSAT
directly borders Luxembourg and specifically handles Luxembourg
frontalier pension coordination
- Documents the 2026 "mixed career" form (formulaire carrière mixte)
introduced to expedite coordination with CNAP via form P5000
- Organises personalised advisory sessions with Luxembourg CNAP
representatives
---
### `data/institutions/fr/scec.yaml`
**URL verified:**
https://www.diplomatie.gouv.fr/fr/services-aux-francais/etat-civil-et-nationalite-francaise/
— loads correctly (general civil status section).
- `id: institution:fr:scec`
- `verification_status: discovered` — the specific SCEC transcription
page content was not fully verified; honest status applied
- Documents that for a French national who dies in Luxembourg, the
family must request transcription of the Luxembourg death certificate
through SCEC for French civil registry records and succession procedures
- SCEC is located in Nantes and operates under the Ministry of Europe
and Foreign Affairs
---
### `data/scenarios/corridor-lu-fr.yaml`
- `scenario_type: corridor`
- `countries: [LU, FR]`
- `publication_status: draft`
- References all 5 conditions from PR 1: `deceased-is-foreign-national`,
`deceased-is-frontalier`, `survivor-resides-abroad`,
`assets-in-multiple-jurisdictions`, `repatriation-of-remains`
- References both EU sources from PR 1 and both FR sources from this PR
**Key corridor facts documented in notes:**
- Survivor pension filed via Info Retraite (single request, all French
schemes)
- CARSAT Alsace-Moselle coordinates with CNAP via P5000 form
- Luxembourg death certificate requires SCEC transcription for French
civil registry
- Succession governed by Brussels IV habitual residence rule
---
## Schema compliance
- Read all schemas before writing — `additionalProperties: false`
respected throughout
- Institution `official_site` field confirmed loading for all records
- `source_ids` in institutions reference sources created in this same PR
- Scenario `condition_ids` reference conditions merged in PR 1 —
dependency respected
---
## What PR 3 will add
- `scenario:corridor-lu-de` + 2 DE sources (DRV pages) + 1 DE
institution (DRV)
---
## Verified
- `python3 scripts/validate.py` — passes (24 data files, up from 19)
- All 5 trailing newlines confirmed `0a`
- 5 new files, 0 existing files modified
- All source and institution URLs verified loading in browser before
writing
- `git status` confirmed no unintended changes
1 parent d03d54b commit e18c8c0
5 files changed
Lines changed: 126 additions & 0 deletions
File tree
- data
- institutions/fr
- scenarios
- sources/fr
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
0 commit comments