← LibreJusticeCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to LibreJustice
Snapshot Sep 30, 2026 · 22:52 UTC · version 1.0.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "recherche-normes",
"description": "Find and quote statutory and regulatory law with the LibreJustice MCP tools — French codes at any date, EU law, treaties and bilateral accords, foreign codes (59 countries), collective agreements, BOFiP, circulaires. Use whenever the user asks what a text says or said at a given date, which version or which text applies to a situation, needs the exact wording of a provision for a brief, or works with foreign or international law in French litigation, even if they never mention LibreJustice.",
"included_files": [
{
"relative_path": "references/corpus.md",
"size_in_bytes": 3105
},
{
"relative_path": "references/external-sources.md",
"size_in_bytes": 4269
},
{
"relative_path": "references/foreign-law.md",
"size_in_bytes": 4816
},
{
"relative_path": "references/traps.md",
"size_in_bytes": 3747
}
],
"skill_md_contents": "---\nname: recherche-normes\ndescription: Find and quote statutory and regulatory law with the LibreJustice MCP tools — French codes at any date, EU law, treaties and bilateral accords, foreign codes (59 countries), collective agreements, BOFiP, circulaires. Use whenever the user asks what a text says or said at a given date, which version or which text applies to a situation, needs the exact wording of a provision for a brief, or works with foreign or international law in French litigation, even if they never mention LibreJustice.\n---\n\n# Statutory research (LibreJustice)\n\nThe user is typically a litigator: they need the exact provision, in\nthe version in force at the legally relevant date, linked and quoted\nverbatim. A paraphrase from memory is not a deliverable — models\nmisremember article numbers and miss amendments; every quoted\nprovision comes from `get_legal_text`.\n\nThe referential goes far beyond French codes: EU law, international\ntreaties (including bilateral accords), the codes of 59 foreign\ncountries, collective agreements, BOFiP. Map and counts:\n[references/corpus.md](references/corpus.md). Observed failure modes:\n[references/traps.md](references/traps.md). Foreign and international\nlaw: [references/foreign-law.md](references/foreign-law.md).\n\n## Iron rules\n\n1. **Never quote a provision from memory.** Fetch it with\n `get_legal_text`, quote verbatim, link the article\n (`[Article 7 bis de l'Accord franco-algérien du 27 décembre\n 1968](https://librejustice.fr/texte/…)` — the `url` verbatim).\n2. **Date before text.** Identify the legally relevant date first —\n the attacked decision, the facts, the contract — pass it as\n `date`, and say which version you quote (its validity window is in\n the response). The version in force today is the wrong one for\n most litigation.\n3. **Name texts by their official name.** The `code` filter resolves\n slugs and exact official names, not usual names — « CEDH » and\n « Convention européenne des droits de l'homme » fail where\n « Convention de sauvegarde des droits de l'homme et des libertés\n fondamentales » works. When unsure, recover the slug from\n `facets.code` or from an inline `/texte/` link in a decision.\n\nA `get_legal_text` response may also carry `commentaires` — doctrine\nanchored on the article, served inline (`body`) or as outbound links\n(`url`). Context, never the norm: only the article text quotes as the\nprovision.\n\n## Three access paths, cheapest first\n\n1. **Text and article known** — compose the URL directly:\n `https://librejustice.fr/texte/{code-slug}/{article-key}`\n (`code-civil`/`47`, `code-de-la-famille-sen`/`40`,\n `accord-franco-algerien-du-27-decembre-1968`/`7-bis`; keys are\n lowercase, `l761-1` for L. 761-1). A wrong slug errors back with\n the closest ones — guessing then correcting is one call, a search\n is two.\n2. **Text known, article unknown** — `search_legal_texts` with the\n `code` filter (slug or exact name) and a descriptive French query\n on the subject. Within one named text, ranking is reliable.\n3. **Text unknown** — descriptive query plus the `jurisdiction`\n filter (`FR`, `UE`, `INTL`, or an ISO country code `SN`, `DZ`,\n `BE`…), then read `facets.code` to see which texts concentrate the\n matches and re-query with the winner. Ranking is domestic-first: a\n bare descriptive query ranks French, EU and treaty law above the\n 59 foreign corpora, and naming the country in the query (« divorce\n au sénégal ») scopes it to that country's law instead. A query\n that IS a text's name — official or usual (« code civil du\n sénégal ») — returns the text itself as a num-less first hit whose\n `url` is the `/texte/{slug}` entry point: the cheapest way to\n recover a slug. Still **don't trust a bare descriptive search\n beyond its top hits**: the corpus is ~2 million articles dominated\n by circulaires and arrêtés, the `total` is OR-matched noise, and\n body-text sources keep crowding treaty searches — the\n `jurisdiction` and `code` filters remain the robust path.\n\n## Versions, renumbering, silence\n\n- The response carries the full version timeline. When a text was\n recodified or an article renumbered (CESEDA 2021: L. 313-11 →\n L. 423-23; code du travail 2008), **query both numbers** — each key\n has its own timeline and the decisive one depends on your date.\n- « Not found » with a `date` means no version in force at that date\n under that key — not that the rule did not exist. Re-fetch without\n `date` to see the timeline, then chase the earlier numbering.\n- Abrogated texts stay served: the code de la nationalité française\n or an old CESEDA article at its date is one `date` away.\n- Hits may repeat one article once per version — deduplicate by URL.\n\n## Legal orders and hierarchy\n\nState which legal order a provision belongs to, and flag the\nhierarchy when orders collide: a bilateral accord is lex specialis\n(the accord franco-algérien governs Algerian residence permits and\nderogates from the CESEDA), EU law primes national law in its field,\nthe Convention de sauvegarde primes statute. When the question spans\norders, fetch the provisions on each side — never assume the code\ntells the whole story.\n\n## Chain with case law\n\nBoth directions, and always both in a dispute:\n\n- Text → decisions: `search_decisions` with `legal_instrument` (any\n slug: a French code, a treaty, a foreign code) or `legal_article`\n (`accord-franco-algerien-du-27-decembre-1968|7-bis`) finds the\n decisions applying the provision — then the recherche-jurisprudence\n skill takes over.\n- Decision → texts: decision full texts carry inline `/texte/` links on\n every cited provision; open them with `get_legal_text` rather than\n searching again.\n\n## Present each provision\n\n- The linked citation with the official text name and article number,\n `url` verbatim as the link target.\n- Which version: validity dates, and why that version governs the\n case (rule 2).\n- The verbatim excerpt — never truncate a sentence in a way that\n drops a condition or a negation.\n- For foreign and aggregated sources, the provenance when reliability\n matters: each hit carries a `source` field (official publishers\n like legifrance, eur-lex, fedlex, dri.gouv.sn vs aggregators like\n jafbase or archive.org — see corpus.md).\n\n## Don't waste calls\n\n- Known article → compose the URL, skip the search.\n- The version timeline arrives with every fetch — no second call to\n ask « since when ».\n- One search with the right filter beats five filterless\n reformulations; after two queries with no new candidate, change the\n filter (code, jurisdiction), not the synonyms.\n"
}SHA-256: b6850d80cb11c070e1c6ff58ed2ffb8a2700a1240860cce879f29ef3aa40d5e0